Commit f3af908f705af64affd5c0a2f022dfa8bcac1ba1

Authored by 杨鸣坤
1 parent a5e7d539

楚江ERP:合同增加合同名称

@@ -130,6 +130,7 @@ create table if not exists `tbl_contract_distributor_standard` @@ -130,6 +130,7 @@ create table if not exists `tbl_contract_distributor_standard`
130 `signed_contract_file_name` VARCHAR(255) COMMENT '双方盖章合同名称', 130 `signed_contract_file_name` VARCHAR(255) COMMENT '双方盖章合同名称',
131 `formalized_at` datetime comment '转为正式合同时间', 131 `formalized_at` datetime comment '转为正式合同时间',
132 `standardized_at` datetime comment '转为标准合同时间', 132 `standardized_at` datetime comment '转为标准合同时间',
  133 + `title` varchar(20) comment '合同名称(销售合同、销售订单)',
133 `create_by_id` varchar(32) not null comment '创建人ID', 134 `create_by_id` varchar(32) not null comment '创建人ID',
134 `create_by` varchar(20) not null comment '创建人', 135 `create_by` varchar(20) not null comment '创建人',
135 `update_by_id` varchar(32) not null comment '更新人ID', 136 `update_by_id` varchar(32) not null comment '更新人ID',
@@ -407,6 +407,12 @@ public class GetContractDistributorStandardBo extends BaseBo<ContractDistributor @@ -407,6 +407,12 @@ public class GetContractDistributorStandardBo extends BaseBo<ContractDistributor
407 @ApiModelProperty(value = "是否已完成锁价/锁规") 407 @ApiModelProperty(value = "是否已完成锁价/锁规")
408 private Boolean priceSpecLocked; 408 private Boolean priceSpecLocked;
409 409
  410 + /**
  411 + * 合同名称(销售合同、销售订单)
  412 + */
  413 + @ApiModelProperty(value = "合同名称(销售合同、销售订单)")
  414 + private String title;
  415 +
410 public GetContractDistributorStandardBo() { 416 public GetContractDistributorStandardBo() {
411 417
412 } 418 }
@@ -105,8 +105,6 @@ public class ContractDistributorStandardController extends DefaultBaseController @@ -105,8 +105,6 @@ public class ContractDistributorStandardController extends DefaultBaseController
105 @Autowired 105 @Autowired
106 private ContractFrameworkService contractFrameworkService; 106 private ContractFrameworkService contractFrameworkService;
107 @Autowired 107 @Autowired
108 - private ProductVarietyService productVarietyService;  
109 - @Autowired  
110 private ContractStdProcessingLineService contractStdProcessingLineService; 108 private ContractStdProcessingLineService contractStdProcessingLineService;
111 109
112 110
@@ -636,32 +634,6 @@ public class ContractDistributorStandardController extends DefaultBaseController @@ -636,32 +634,6 @@ public class ContractDistributorStandardController extends DefaultBaseController
636 // 设置响应头 634 // 设置响应头
637 setupResponse(response, data.getCode() + "_" + data.getBuyerName() + "-合同打印.xls"); 635 setupResponse(response, data.getCode() + "_" + data.getBuyerName() + "-合同打印.xls");
638 636
639 - Wrapper<ContractFramework> contractFrameworkWrapper = Wrappers.lambdaQuery(ContractFramework.class)  
640 - .eq(ContractFramework::getCustomerId, data.getBuyer())  
641 - .ge(ContractFramework::getValidityTime, LocalDate.now())  
642 - .ge(ContractFramework::getCompany, data.getSupplier())  
643 - .eq(ContractFramework::getHasFrameworkAgreement, true);  
644 - List<ContractFramework> contractFrameworkList = contractFrameworkService.list(contractFrameworkWrapper);  
645 - List<String> productNameList = new ArrayList<>();  
646 - if (CollectionUtils.isNotEmpty(contractFrameworkList)) {  
647 - List<String> materialTypeIdList = contractFrameworkList.stream()  
648 - .filter(bo -> StringUtils.isNotBlank(bo.getMaterialTypeId()))  
649 - .flatMap(bo -> Arrays.stream(bo.getMaterialTypeId().split(",")))  
650 - .map(String::trim)  
651 - .filter(StringUtils::isNotBlank)  
652 - .distinct()  
653 - .collect(Collectors.toList());  
654 - List<ProductVariety> productVarietyList = productVarietyService.listByIds(materialTypeIdList);  
655 - CollectionUtils.emptyIfNull(productVarietyList).forEach(productVariety -> {  
656 - if (productVariety == null || StringUtils.isBlank(productVariety.getName())) {  
657 - return;  
658 - }  
659 -  
660 - productNameList.add(productVariety.getName().substring(0, 2));  
661 - });  
662 - }  
663 -  
664 -  
665 String templatePath = "templates/standardContractTemplate.xls"; 637 String templatePath = "templates/standardContractTemplate.xls";
666 if ("INTL_STD_CONTRACT".equals(data.getType()) 638 if ("INTL_STD_CONTRACT".equals(data.getType())
667 || "INTL_INVENTORY_AGMT".equals(data.getType()) 639 || "INTL_INVENTORY_AGMT".equals(data.getType())
@@ -688,6 +660,8 @@ public class ContractDistributorStandardController extends DefaultBaseController @@ -688,6 +660,8 @@ public class ContractDistributorStandardController extends DefaultBaseController
688 contractTitle = "销售订单(外贸)"; 660 contractTitle = "销售订单(外贸)";
689 } 661 }
690 662
  663 + List<String> productNameList = contractFrameworkService.getCustomerFrameworkProductNameList(data.getBuyer(), data.getSupplier());
  664 +
691 if (CollectionUtils.isNotEmpty(data.getContractDistributorLineList())) { 665 if (CollectionUtils.isNotEmpty(data.getContractDistributorLineList())) {
692 for (GetContractDistributorLineBo contractDistributorLineBo : data.getContractDistributorLineList()) { 666 for (GetContractDistributorLineBo contractDistributorLineBo : data.getContractDistributorLineList()) {
693 if (StringUtils.isNotBlank(contractDistributorLineBo.getProductName()) 667 if (StringUtils.isNotBlank(contractDistributorLineBo.getProductName())
@@ -39,7 +39,6 @@ import org.springframework.validation.annotation.Validated; @@ -39,7 +39,6 @@ import org.springframework.validation.annotation.Validated;
39 import org.springframework.web.bind.annotation.*; 39 import org.springframework.web.bind.annotation.*;
40 40
41 import javax.validation.constraints.NotBlank; 41 import javax.validation.constraints.NotBlank;
42 -import java.time.LocalDate;  
43 import java.util.List; 42 import java.util.List;
44 import java.util.Map; 43 import java.util.Map;
45 import java.util.function.Function; 44 import java.util.function.Function;
@@ -318,6 +318,10 @@ public class ContractDistributorStandard extends BaseEntity implements BaseDto { @@ -318,6 +318,10 @@ public class ContractDistributorStandard extends BaseEntity implements BaseDto {
318 */ 318 */
319 private LocalDateTime standardizedAt; 319 private LocalDateTime standardizedAt;
320 320
  321 + /**
  322 + * 合同名称(销售合同、销售订单)
  323 + */
  324 + private String title;
321 325
322 /** 326 /**
323 * 是否展示正式合同审核按钮(非持久化字段) 327 * 是否展示正式合同审核按钮(非持久化字段)
@@ -10,8 +10,10 @@ import com.lframework.starter.bpm.service.FlowInstanceWrapperService; @@ -10,8 +10,10 @@ import com.lframework.starter.bpm.service.FlowInstanceWrapperService;
10 import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo; 10 import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo;
11 import com.lframework.starter.common.utils.StringUtil; 11 import com.lframework.starter.common.utils.StringUtil;
12 import com.lframework.starter.web.core.components.security.SecurityUtil; 12 import com.lframework.starter.web.core.components.security.SecurityUtil;
13 -import com.lframework.xingyun.sc.entity.ContractDistributorLine;  
14 -import com.lframework.xingyun.sc.entity.ContractDistributorStandard; 13 +import com.lframework.starter.web.inner.entity.SysDataDicItem;
  14 +import com.lframework.starter.web.inner.service.system.SysDataDicItemService;
  15 +import com.lframework.xingyun.sc.controller.contract.ContractDistributorStandardController;
  16 +import com.lframework.xingyun.sc.entity.*;
15 import com.lframework.starter.web.core.impl.BaseMpServiceImpl; 17 import com.lframework.starter.web.core.impl.BaseMpServiceImpl;
16 import com.lframework.starter.web.core.utils.PageResultUtil; 18 import com.lframework.starter.web.core.utils.PageResultUtil;
17 import com.lframework.starter.web.core.utils.OpLogUtil; 19 import com.lframework.starter.web.core.utils.OpLogUtil;
@@ -23,12 +25,11 @@ import com.lframework.starter.web.inner.components.oplog.OtherOpLogType; @@ -23,12 +25,11 @@ import com.lframework.starter.web.inner.components.oplog.OtherOpLogType;
23 import com.lframework.starter.web.core.components.resp.PageResult; 25 import com.lframework.starter.web.core.components.resp.PageResult;
24 import com.lframework.starter.common.utils.ObjectUtil; 26 import com.lframework.starter.common.utils.ObjectUtil;
25 import com.lframework.starter.common.utils.Assert; 27 import com.lframework.starter.common.utils.Assert;
26 -import com.lframework.xingyun.sc.entity.ContractStdProcessingLine;  
27 -import com.lframework.xingyun.sc.entity.PurchaseOrderInfo;  
28 import com.lframework.xingyun.sc.enums.CustomerDevelopStatus; 28 import com.lframework.xingyun.sc.enums.CustomerDevelopStatus;
29 import com.lframework.xingyun.sc.mappers.ContractDistributorStandardMapper; 29 import com.lframework.xingyun.sc.mappers.ContractDistributorStandardMapper;
30 import com.lframework.xingyun.sc.service.contract.ContractDistributorLineService; 30 import com.lframework.xingyun.sc.service.contract.ContractDistributorLineService;
31 import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService; 31 import com.lframework.xingyun.sc.service.contract.ContractDistributorStandardService;
  32 +import com.lframework.xingyun.sc.service.contract.ContractFrameworkService;
32 import com.lframework.xingyun.sc.service.contract.ContractStdProcessingLineService; 33 import com.lframework.xingyun.sc.service.contract.ContractStdProcessingLineService;
33 import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService; 34 import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService;
34 import com.lframework.xingyun.sc.vo.contract.createVo.CreateContractDistributorLineVo; 35 import com.lframework.xingyun.sc.vo.contract.createVo.CreateContractDistributorLineVo;
@@ -76,7 +77,10 @@ public class ContractDistributorStandardServiceImpl extends @@ -76,7 +77,10 @@ public class ContractDistributorStandardServiceImpl extends
76 private ContractStdProcessingLineService contractStdProcessingLineService; 77 private ContractStdProcessingLineService contractStdProcessingLineService;
77 @Resource 78 @Resource
78 private PurchaseOrderInfoService purchaseOrderInfoService; 79 private PurchaseOrderInfoService purchaseOrderInfoService;
79 - 80 + @Resource
  81 + private ContractFrameworkService contractFrameworkService;
  82 + @Resource
  83 + private SysDataDicItemService sysDataDicItemService;
80 84
81 @Override 85 @Override
82 public PageResult<ContractDistributorStandard> query(Integer pageIndex, Integer pageSize, QueryContractDistributorStandardVo vo) { 86 public PageResult<ContractDistributorStandard> query(Integer pageIndex, Integer pageSize, QueryContractDistributorStandardVo vo) {
@@ -129,7 +133,22 @@ public class ContractDistributorStandardServiceImpl extends @@ -129,7 +133,22 @@ public class ContractDistributorStandardServiceImpl extends
129 @Transactional(rollbackFor = Exception.class) 133 @Transactional(rollbackFor = Exception.class)
130 @Override 134 @Override
131 public String create(CreateContractDistributorStandardVo vo) { 135 public String create(CreateContractDistributorStandardVo vo) {
  136 + List<String> productNameList = contractFrameworkService.getCustomerFrameworkProductNameList(vo.getBuyer(), vo.getSupplier());
  137 + String title = "销售订单";
  138 + List<SysDataDicItem> productDicItemList = sysDataDicItemService.findByDicCode(ContractDistributorStandardController.CONTRACT_PRODUCT_DIC_CODE);
  139 + Map<String, String> productCodeAndNameMap = productDicItemList.stream().collect(Collectors.toMap(SysDataDicItem::getCode, SysDataDicItem::getName));
  140 +
  141 + for (int i = 0; i < vo.getContractDistributorLineList().size(); i++) {
  142 + CreateContractDistributorLineVo createContractDistributorLineVo = vo.getContractDistributorLineList().get(i);
  143 + String productName = productCodeAndNameMap.get(createContractDistributorLineVo.getProductId());
  144 + if (StringUtils.isNotBlank(productName)
  145 + && !productNameList.contains(productName.substring(0, 2))) {
  146 + title = "销售合同";
  147 + break;
  148 + }
  149 + }
132 150
  151 + vo.setTitle(title);
133 ContractDistributorStandard data = createContractBase(vo); 152 ContractDistributorStandard data = createContractBase(vo);
134 153
135 OpLogUtil.setVariable("id", data.getId()); 154 OpLogUtil.setVariable("id", data.getId());
@@ -149,7 +168,22 @@ public class ContractDistributorStandardServiceImpl extends @@ -149,7 +168,22 @@ public class ContractDistributorStandardServiceImpl extends
149 @Transactional(rollbackFor = Exception.class) 168 @Transactional(rollbackFor = Exception.class)
150 @Override 169 @Override
151 public String createStdContract(CreateContractDistributorStandardVo vo) { 170 public String createStdContract(CreateContractDistributorStandardVo vo) {
  171 + List<String> productNameList = contractFrameworkService.getCustomerFrameworkProductNameList(vo.getBuyer(), vo.getSupplier());
  172 + String title = "销售订单";
  173 + List<SysDataDicItem> productDicItemList = sysDataDicItemService.findByDicCode(ContractDistributorStandardController.CONTRACT_PRODUCT_DIC_CODE);
  174 + Map<String, String> productCodeAndNameMap = productDicItemList.stream().collect(Collectors.toMap(SysDataDicItem::getCode, SysDataDicItem::getName));
152 175
  176 + for (int i = 0; i < vo.getContractStdProcessingLineList().size(); i++) {
  177 + CreateContractStdProcessingLineVo createContractStdProcessingLineVo = vo.getContractStdProcessingLineList().get(i);
  178 + String productName = productCodeAndNameMap.get(createContractStdProcessingLineVo.getProductId());
  179 + if (StringUtils.isNotBlank(productName)
  180 + && !productNameList.contains(productName.substring(0, 2))) {
  181 + title = "销售合同";
  182 + break;
  183 + }
  184 + }
  185 +
  186 + vo.setTitle(title);
153 ContractDistributorStandard data = createContractBase(vo); 187 ContractDistributorStandard data = createContractBase(vo);
154 188
155 OpLogUtil.setVariable("id", data.getId()); 189 OpLogUtil.setVariable("id", data.getId());
@@ -200,6 +234,7 @@ public class ContractDistributorStandardServiceImpl extends @@ -200,6 +234,7 @@ public class ContractDistributorStandardServiceImpl extends
200 data.setTotalQuantity(vo.getTotalQuantity()); 234 data.setTotalQuantity(vo.getTotalQuantity());
201 data.setParentId(vo.getParentId()); 235 data.setParentId(vo.getParentId());
202 data.setType(vo.getType()); 236 data.setType(vo.getType());
  237 + data.setTitle(vo.getTitle());
203 238
204 getBaseMapper().insert(data); 239 getBaseMapper().insert(data);
205 return data; 240 return data;
@@ -209,7 +244,33 @@ public class ContractDistributorStandardServiceImpl extends @@ -209,7 +244,33 @@ public class ContractDistributorStandardServiceImpl extends
209 @Transactional(rollbackFor = Exception.class) 244 @Transactional(rollbackFor = Exception.class)
210 @Override 245 @Override
211 public void update(UpdateContractDistributorStandardVo vo) { 246 public void update(UpdateContractDistributorStandardVo vo) {
  247 + List<String> productNameList = contractFrameworkService.getCustomerFrameworkProductNameList(vo.getBuyer(), vo.getSupplier());
  248 + String title = "销售订单";
  249 + List<SysDataDicItem> productDicItemList = sysDataDicItemService.findByDicCode(ContractDistributorStandardController.CONTRACT_PRODUCT_DIC_CODE);
  250 + Map<String, String> productCodeAndNameMap = productDicItemList.stream().collect(Collectors.toMap(SysDataDicItem::getCode, SysDataDicItem::getName));
  251 + if ("PROCESS_STD_AGMT".equals(vo.getType())) {
  252 + for (int i = 0; i < vo.getContractStdProcessingLineList().size(); i++) {
  253 + UpdateContractStdProcessingLineVo updateContractStdProcessingLineVo = vo.getContractStdProcessingLineList().get(i);
  254 + String productName = productCodeAndNameMap.get(updateContractStdProcessingLineVo.getProductId());
  255 + if (StringUtils.isNotBlank(productName)
  256 + && !productNameList.contains(productName.substring(0, 2))) {
  257 + title = "销售合同";
  258 + break;
  259 + }
  260 + }
  261 + } else {
  262 + for (int i = 0; i < vo.getContractDistributorLineList().size(); i++) {
  263 + UpdateContractDistributorLineVo updateContractDistributorLineVo = vo.getContractDistributorLineList().get(i);
  264 + String productName = productCodeAndNameMap.get(updateContractDistributorLineVo.getProductId());
  265 + if (StringUtils.isNotBlank(productName)
  266 + && !productNameList.contains(productName.substring(0, 2))) {
  267 + title = "销售合同";
  268 + break;
  269 + }
  270 + }
  271 + }
212 272
  273 + vo.setTitle(title);
213 ContractDistributorStandard data = getBaseMapper().selectById(vo.getId()); 274 ContractDistributorStandard data = getBaseMapper().selectById(vo.getId());
214 if (ObjectUtil.isNull(data)) { 275 if (ObjectUtil.isNull(data)) {
215 throw new DefaultClientException("合同不存在!"); 276 throw new DefaultClientException("合同不存在!");
@@ -247,6 +308,7 @@ public class ContractDistributorStandardServiceImpl extends @@ -247,6 +308,7 @@ public class ContractDistributorStandardServiceImpl extends
247 .set(ContractDistributorStandard::getTotalQuantity, vo.getTotalQuantity()) 308 .set(ContractDistributorStandard::getTotalQuantity, vo.getTotalQuantity())
248 .set(ContractDistributorStandard::getType, vo.getType()) 309 .set(ContractDistributorStandard::getType, vo.getType())
249 .set(ContractDistributorStandard::getParentId, vo.getParentId()) 310 .set(ContractDistributorStandard::getParentId, vo.getParentId())
  311 + .set(ContractDistributorStandard::getTitle, vo.getTitle())
250 .eq(ContractDistributorStandard::getId, vo.getId()); 312 .eq(ContractDistributorStandard::getId, vo.getId());
251 313
252 getBaseMapper().update(updateWrapper); 314 getBaseMapper().update(updateWrapper);
1 package com.lframework.xingyun.sc.impl.contract; 1 package com.lframework.xingyun.sc.impl.contract;
2 2
  3 +import com.baomidou.mybatisplus.core.conditions.Wrapper;
3 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 4 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
4 import com.baomidou.mybatisplus.core.toolkit.Wrappers; 5 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
5 import com.github.pagehelper.PageInfo; 6 import com.github.pagehelper.PageInfo;
@@ -14,23 +15,35 @@ import com.lframework.starter.web.core.utils.OpLogUtil; @@ -14,23 +15,35 @@ import com.lframework.starter.web.core.utils.OpLogUtil;
14 import com.lframework.starter.web.core.utils.PageHelperUtil; 15 import com.lframework.starter.web.core.utils.PageHelperUtil;
15 import com.lframework.starter.web.core.utils.PageResultUtil; 16 import com.lframework.starter.web.core.utils.PageResultUtil;
16 import com.lframework.starter.web.inner.components.oplog.OtherOpLogType; 17 import com.lframework.starter.web.inner.components.oplog.OtherOpLogType;
  18 +import com.lframework.xingyun.basedata.entity.ProductVariety;
  19 +import com.lframework.xingyun.basedata.service.product.ProductVarietyService;
17 import com.lframework.xingyun.sc.entity.ContractFramework; 20 import com.lframework.xingyun.sc.entity.ContractFramework;
18 import com.lframework.xingyun.sc.mappers.ContractFrameworkMapper; 21 import com.lframework.xingyun.sc.mappers.ContractFrameworkMapper;
19 import com.lframework.xingyun.sc.service.contract.ContractFrameworkService; 22 import com.lframework.xingyun.sc.service.contract.ContractFrameworkService;
20 import com.lframework.xingyun.sc.vo.contract.createVo.CreateContractFrameworkVo; 23 import com.lframework.xingyun.sc.vo.contract.createVo.CreateContractFrameworkVo;
21 import com.lframework.xingyun.sc.vo.contract.queryVo.QueryContractFrameworkVo; 24 import com.lframework.xingyun.sc.vo.contract.queryVo.QueryContractFrameworkVo;
22 import com.lframework.xingyun.sc.vo.contract.updateVo.UpdateContractFrameworkVo; 25 import com.lframework.xingyun.sc.vo.contract.updateVo.UpdateContractFrameworkVo;
  26 +import org.apache.commons.collections4.CollectionUtils;
  27 +import org.apache.commons.lang3.StringUtils;
  28 +import org.springframework.beans.factory.annotation.Autowired;
23 import org.springframework.cache.annotation.CacheEvict; 29 import org.springframework.cache.annotation.CacheEvict;
24 import org.springframework.cache.annotation.Cacheable; 30 import org.springframework.cache.annotation.Cacheable;
25 import org.springframework.stereotype.Service; 31 import org.springframework.stereotype.Service;
26 import org.springframework.transaction.annotation.Transactional; 32 import org.springframework.transaction.annotation.Transactional;
27 33
28 import java.io.Serializable; 34 import java.io.Serializable;
  35 +import java.time.LocalDate;
  36 +import java.util.ArrayList;
  37 +import java.util.Arrays;
29 import java.util.List; 38 import java.util.List;
  39 +import java.util.stream.Collectors;
30 40
31 @Service 41 @Service
32 public class ContractFrameworkServiceImpl extends BaseMpServiceImpl<ContractFrameworkMapper, ContractFramework> implements ContractFrameworkService { 42 public class ContractFrameworkServiceImpl extends BaseMpServiceImpl<ContractFrameworkMapper, ContractFramework> implements ContractFrameworkService {
33 43
  44 + @Autowired
  45 + private ProductVarietyService productVarietyService;
  46 +
34 @Override 47 @Override
35 public PageResult<ContractFramework> query(Integer pageIndex, Integer pageSize, QueryContractFrameworkVo vo) { 48 public PageResult<ContractFramework> query(Integer pageIndex, Integer pageSize, QueryContractFrameworkVo vo) {
36 49
@@ -102,6 +115,40 @@ public class ContractFrameworkServiceImpl extends BaseMpServiceImpl<ContractFram @@ -102,6 +115,40 @@ public class ContractFrameworkServiceImpl extends BaseMpServiceImpl<ContractFram
102 return data.getId(); 115 return data.getId();
103 } 116 }
104 117
  118 + @Override
  119 + public List<String> getCustomerFrameworkProductNameList(String customerId, String company) {
  120 + if (StringUtils.isBlank(customerId) || StringUtils.isBlank(customerId)) {
  121 + return new ArrayList<>(0);
  122 + }
  123 +
  124 + Wrapper<ContractFramework> contractFrameworkWrapper = Wrappers.lambdaQuery(ContractFramework.class)
  125 + .eq(ContractFramework::getCustomerId, customerId)
  126 + .ge(ContractFramework::getValidityTime, LocalDate.now())
  127 + .ge(ContractFramework::getCompany, company)
  128 + .eq(ContractFramework::getHasFrameworkAgreement, true);
  129 + List<ContractFramework> contractFrameworkList = list(contractFrameworkWrapper);
  130 + List<String> productNameList = new ArrayList<>();
  131 + if (CollectionUtils.isNotEmpty(contractFrameworkList)) {
  132 + List<String> materialTypeIdList = contractFrameworkList.stream()
  133 + .filter(bo -> StringUtils.isNotBlank(bo.getMaterialTypeId()))
  134 + .flatMap(bo -> Arrays.stream(bo.getMaterialTypeId().split(",")))
  135 + .map(String::trim)
  136 + .filter(StringUtils::isNotBlank)
  137 + .distinct()
  138 + .collect(Collectors.toList());
  139 + List<ProductVariety> productVarietyList = productVarietyService.listByIds(materialTypeIdList);
  140 + CollectionUtils.emptyIfNull(productVarietyList).forEach(productVariety -> {
  141 + if (productVariety == null || StringUtils.isBlank(productVariety.getName())) {
  142 + return;
  143 + }
  144 +
  145 + productNameList.add(productVariety.getName().substring(0, 2));
  146 + });
  147 + }
  148 +
  149 + return productNameList;
  150 + }
  151 +
105 @CacheEvict(value = ContractFramework.CACHE_NAME, key = "@cacheVariables.tenantId() + #key") 152 @CacheEvict(value = ContractFramework.CACHE_NAME, key = "@cacheVariables.tenantId() + #key")
106 @Override 153 @Override
107 public void cleanCacheByKey(Serializable key) { 154 public void cleanCacheByKey(Serializable key) {
@@ -120,5 +120,4 @@ public interface ContractDistributorStandardService extends BaseMpService<Contra @@ -120,5 +120,4 @@ public interface ContractDistributorStandardService extends BaseMpService<Contra
120 * @return 一年内未签订合同的企业 120 * @return 一年内未签订合同的企业
121 */ 121 */
122 List<String> getContractSigned(List<String> buyerList); 122 List<String> getContractSigned(List<String> buyerList);
123 -  
124 } 123 }
@@ -39,15 +39,22 @@ public interface ContractFrameworkService extends BaseMpService<ContractFramewor @@ -39,15 +39,22 @@ public interface ContractFrameworkService extends BaseMpService<ContractFramewor
39 39
40 /** 40 /**
41 * 修改 41 * 修改
  42 + *
42 * @param vo 43 * @param vo
43 */ 44 */
44 void update(UpdateContractFrameworkVo vo); 45 void update(UpdateContractFrameworkVo vo);
45 46
46 /** 47 /**
47 * 创建 48 * 创建
  49 + *
48 * @param vo 50 * @param vo
49 * @return 51 * @return
50 */ 52 */
51 String create(CreateContractFrameworkVo vo); 53 String create(CreateContractFrameworkVo vo);
52 54
  55 +
  56 + /**
  57 + * 获取指定客户框架合同的物料名称
  58 + */
  59 + List<String> getCustomerFrameworkProductNameList(String customerId, String company);
53 } 60 }
@@ -310,4 +310,10 @@ public class CreateContractDistributorStandardVo implements BaseVo, Serializable @@ -310,4 +310,10 @@ public class CreateContractDistributorStandardVo implements BaseVo, Serializable
310 */ 310 */
311 @ApiModelProperty(value = "标准合同是否审核完成(AUDIT:审核中,PASS:审核通过,REFUSE:已驳回,CANCEL:已取消)") 311 @ApiModelProperty(value = "标准合同是否审核完成(AUDIT:审核中,PASS:审核通过,REFUSE:已驳回,CANCEL:已取消)")
312 private String standardApproved; 312 private String standardApproved;
  313 +
  314 + /**
  315 + * 合同名称(销售合同、销售订单)
  316 + */
  317 + @ApiModelProperty(value = "合同名称(销售合同、销售订单)")
  318 + private String title;
313 } 319 }
@@ -349,4 +349,9 @@ public class UpdateContractDistributorStandardVo implements BaseVo, Serializable @@ -349,4 +349,9 @@ public class UpdateContractDistributorStandardVo implements BaseVo, Serializable
349 @ApiModelProperty(value = "双方盖章合同名称") 349 @ApiModelProperty(value = "双方盖章合同名称")
350 private String signedContractFileName; 350 private String signedContractFileName;
351 351
  352 + /**
  353 + * 合同名称(销售合同、销售订单)
  354 + */
  355 + @ApiModelProperty(value = "合同名称(销售合同、销售订单)")
  356 + private String title;
352 } 357 }
@@ -60,6 +60,7 @@ @@ -60,6 +60,7 @@
60 <result column="signed_contract_file_name" property="signedContractFileName"/> 60 <result column="signed_contract_file_name" property="signedContractFileName"/>
61 <result column="formalized_at" property="formalizedAt"/> 61 <result column="formalized_at" property="formalizedAt"/>
62 <result column="standardized_at" property="standardizedAt"/> 62 <result column="standardized_at" property="standardizedAt"/>
  63 + <result column="title" property="title"/>
63 </resultMap> 64 </resultMap>
64 65
65 <sql id="ContractDistributorStandard_sql"> 66 <sql id="ContractDistributorStandard_sql">
@@ -119,7 +120,8 @@ @@ -119,7 +120,8 @@
119 tb.signed_contract_file_id, 120 tb.signed_contract_file_id,
120 tb.signed_contract_file_name, 121 tb.signed_contract_file_name,
121 tb.formalized_at, 122 tb.formalized_at,
122 - tb.standardized_at 123 + tb.standardized_at,
  124 + tb.title
123 FROM tbl_contract_distributor_standard AS tb 125 FROM tbl_contract_distributor_standard AS tb
124 </sql> 126 </sql>
125 127