Showing
12 changed files
with
148 additions
and
36 deletions
| @@ -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', |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/bo/contract/GetContractDistributorStandardBo.java
| @@ -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 |