yzc 1 рік тому
батько
коміт
323f623704

+ 33 - 43
hx-sale/src/main/java/com/fjhx/sale/flow/ContractUpdateFlow.java

@@ -2,41 +2,30 @@ package com.fjhx.sale.flow;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.toolkit.*;
 import com.fjhx.area.utils.CustomizeAreaUtil;
 import com.fjhx.common.enums.FlowStatusEnum1;
 import com.fjhx.common.utils.Assert;
 import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.flow.core.FlowDelegate;
-import com.fjhx.item.entity.product.po.ProductInfoEhsdJson;
 import com.fjhx.sale.entity.contract.dto.ContractDto;
 import com.fjhx.sale.entity.contract.po.Contract;
 import com.fjhx.sale.entity.contract.po.ContractProduct;
 import com.fjhx.sale.entity.contract.po.ContractProject;
 import com.fjhx.sale.entity.contract.po.ContractShipment;
-import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
-import com.fjhx.sale.entity.sample.po.Sample;
-import com.fjhx.sale.entity.sample.po.SampleProduct;
-import com.fjhx.sale.entity.sample.po.SampleProject;
-import com.fjhx.sale.entity.sample.po.SampleShipment;
 import com.fjhx.sale.service.contract.ContractProductService;
 import com.fjhx.sale.service.contract.ContractProjectService;
 import com.fjhx.sale.service.contract.ContractService;
 import com.fjhx.sale.service.contract.ContractShipmentService;
-import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.math.BigDecimal;
-import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import java.util.function.Function;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -96,7 +85,7 @@ public class ContractUpdateFlow extends FlowDelegate {
         }
         //查询原合同
         Contract oldContract = contractService.getById(contract.getOldContractId());
-        if(ObjectUtil.isEmpty(oldContract)){
+        if (ObjectUtil.isEmpty(oldContract)) {
             throw new ServiceException("查询不到原合同信息");
         }
         //更新原样品单状态为变更中
@@ -104,12 +93,12 @@ public class ContractUpdateFlow extends FlowDelegate {
         contractService.updateById(oldContract);
         //查询旧合同的订单产品
         List<ContractProduct> oldContractProductList = contractProductService.list(q -> q.eq(ContractProduct::getContractId, oldContractId));
-        if(CollectionUtils.isEmpty(oldContractProductList)){
+        if (CollectionUtils.isEmpty(oldContractProductList)) {
             throw new ServiceException("原合同没有产品");
         }
-        Map<Long,List<ContractProduct>> oldContractProductMap = oldContractProductList.stream().collect(Collectors.groupingBy(ContractProduct::getId));
+        Map<Long, List<ContractProduct>> oldContractProductMap = oldContractProductList.stream().collect(Collectors.groupingBy(ContractProduct::getId));
         List<ContractProduct> newContractProductList = contract.getContractProductList();
-        if(CollectionUtils.isEmpty(newContractProductList)){
+        if (CollectionUtils.isEmpty(newContractProductList)) {
             throw new ServiceException("变更合同产品不能为空");
         }
         /**
@@ -127,24 +116,24 @@ public class ContractUpdateFlow extends FlowDelegate {
         /**
          * 计算新合同的剩余数量
          */
-        for(ContractProduct newCp:newContractProductList){
+        for (ContractProduct newCp : newContractProductList) {
             newCp.setExpendQuantity(newCp.getQuantity());
-            if(ObjectUtil.isNotEmpty(newCp.getId())){//如果新合同产品ID不为空
+            if (ObjectUtil.isNotEmpty(newCp.getId())) {//如果新合同产品ID不为空
                 //取出旧合同
-                ContractProduct oldContractProduct = oldContractProductMap.getOrDefault(newCp.getId(),null).get(0);
+                ContractProduct oldContractProduct = oldContractProductMap.getOrDefault(newCp.getId(), null).get(0);
                 //取出旧合同包装方式
                 JSONObject oldJson = JSONObject.parseObject(oldContractProduct.getEhsdJson());
-                String oldPackMethod = oldJson.getOrDefault("packMethod",null)==null?null:oldJson.getOrDefault("packMethod",null).toString();
+                String oldPackMethod = ObjectUtil.isEmpty(oldJson) ? null : oldJson.getString("packMethod");
                 //取出新合同包装方式
                 JSONObject newJson = JSONObject.parseObject(newCp.getEhsdJson());
-                String newPackMethod = newJson.getOrDefault("packMethod",null)==null?null:oldJson.getOrDefault("packMethod",null).toString();
+                String newPackMethod = ObjectUtil.isEmpty(newJson) ? null : newJson.getString("packMethod");
                 /**
                  * 商品英文名、尺寸、包装方式、数量 没有变更---取原本的剩余数量
                  */
-                if(oldContractProduct.getQuantity().compareTo(newCp.getQuantity())==0
+                if (oldContractProduct.getQuantity().compareTo(newCp.getQuantity()) == 0
                         && StringUtils.equals(oldContractProduct.getProductName(), newCp.getProductName())
-                        && StringUtils.equals(oldContractProduct.getProductModel(),newCp.getProductModel())
-                        && StringUtils.equals(oldPackMethod,newPackMethod)){
+                        && StringUtils.equals(oldContractProduct.getProductModel(), newCp.getProductModel())
+                        && StringUtils.equals(oldPackMethod, newPackMethod)) {
                     //取出旧的剩余数量
                     newCp.setExpendQuantity(oldContractProduct.getExpendQuantity());
                 }
@@ -167,7 +156,7 @@ public class ContractUpdateFlow extends FlowDelegate {
         if (ObjectUtils.isEmpty(newContract)) {
             throw new ServiceException("合同不存在");
         }
-        long  oldContractId = newContract.getOldContractId();//取出旧的合同ID
+        long oldContractId = newContract.getOldContractId();//取出旧的合同ID
         Contract oldContract = contractService.getById(oldContractId);
         if (oldContract == null) {
             throw new ServiceException("原合同不存在");
@@ -187,15 +176,15 @@ public class ContractUpdateFlow extends FlowDelegate {
 
 
         //查询新数据产品、收费、出货
-        List<Long> newContractProductIds = contractProductService.list(Wrappers.<ContractProduct>query().lambda().select(ContractProduct::getId).eq(ContractProduct::getContractId,businessId)).stream().map(ContractProduct::getId).collect(Collectors.toList());
-        List<Long> newContractProjectIds = contractProjectService.list(Wrappers.<ContractProject>query().lambda().select(ContractProject::getId).eq(ContractProject::getContractId,businessId)).stream().map(ContractProject::getId).collect(Collectors.toList());
-        List<Long> newContractShipmentIds = contractShipmentService.list(Wrappers.<ContractShipment>query().lambda().select(ContractShipment::getId).eq(ContractShipment::getContractId,businessId)).stream().map(ContractShipment::getId).collect(Collectors.toList());
+        List<Long> newContractProductIds = contractProductService.list(Wrappers.<ContractProduct>query().lambda().select(ContractProduct::getId).eq(ContractProduct::getContractId, businessId)).stream().map(ContractProduct::getId).collect(Collectors.toList());
+        List<Long> newContractProjectIds = contractProjectService.list(Wrappers.<ContractProject>query().lambda().select(ContractProject::getId).eq(ContractProject::getContractId, businessId)).stream().map(ContractProject::getId).collect(Collectors.toList());
+        List<Long> newContractShipmentIds = contractShipmentService.list(Wrappers.<ContractShipment>query().lambda().select(ContractShipment::getId).eq(ContractShipment::getContractId, businessId)).stream().map(ContractShipment::getId).collect(Collectors.toList());
 
 
         //查询旧数据产品、收费、出货
-        List<Long> oldContractProductIds = contractProductService.list(Wrappers.<ContractProduct>query().lambda().select(ContractProduct::getId).eq(ContractProduct::getContractId,oldContractId)).stream().map(ContractProduct::getId).collect(Collectors.toList());
-        List<Long> oldContractProjectIds = contractProjectService.list(Wrappers.<ContractProject>query().lambda().select(ContractProject::getId).eq(ContractProject::getContractId,oldContractId)).stream().map(ContractProject::getId).collect(Collectors.toList());
-        List<Long> oldContractShipmentIds = contractShipmentService.list(Wrappers.<ContractShipment>query().lambda().select(ContractShipment::getId).eq(ContractShipment::getContractId,oldContractId)).stream().map(ContractShipment::getId).collect(Collectors.toList());
+        List<Long> oldContractProductIds = contractProductService.list(Wrappers.<ContractProduct>query().lambda().select(ContractProduct::getId).eq(ContractProduct::getContractId, oldContractId)).stream().map(ContractProduct::getId).collect(Collectors.toList());
+        List<Long> oldContractProjectIds = contractProjectService.list(Wrappers.<ContractProject>query().lambda().select(ContractProject::getId).eq(ContractProject::getContractId, oldContractId)).stream().map(ContractProject::getId).collect(Collectors.toList());
+        List<Long> oldContractShipmentIds = contractShipmentService.list(Wrappers.<ContractShipment>query().lambda().select(ContractShipment::getId).eq(ContractShipment::getContractId, oldContractId)).stream().map(ContractShipment::getId).collect(Collectors.toList());
 
 
         /**
@@ -209,16 +198,16 @@ public class ContractUpdateFlow extends FlowDelegate {
         newContract.setIsShow(0);//显示新合同
         contractService.updateContract(newContract);
         //修改合同产品相关数据
-        if(CollectionUtils.isNotEmpty(newContractProductIds)){
-            contractProductService.update(Wrappers.<ContractProduct>update().lambda().set(ContractProduct::getContractId,oldContractId).in(ContractProduct::getId,newContractProductIds));
+        if (CollectionUtils.isNotEmpty(newContractProductIds)) {
+            contractProductService.update(Wrappers.<ContractProduct>update().lambda().set(ContractProduct::getContractId, oldContractId).in(ContractProduct::getId, newContractProductIds));
         }
         //修改合同收费相关数据
-        if(CollectionUtils.isNotEmpty(newContractProjectIds)){
-            contractProjectService.update(Wrappers.<ContractProject>update().lambda().set(ContractProject::getContractId,oldContractId).in(ContractProject::getId,newContractProjectIds));
+        if (CollectionUtils.isNotEmpty(newContractProjectIds)) {
+            contractProjectService.update(Wrappers.<ContractProject>update().lambda().set(ContractProject::getContractId, oldContractId).in(ContractProject::getId, newContractProjectIds));
         }
         //修改合同出货相关数据
-        if(CollectionUtils.isNotEmpty(newContractShipmentIds)){
-            contractShipmentService.update(Wrappers.<ContractShipment>update().lambda().set(ContractShipment::getContractId,oldContractId).in(ContractShipment::getId,newContractShipmentIds));
+        if (CollectionUtils.isNotEmpty(newContractShipmentIds)) {
+            contractShipmentService.update(Wrappers.<ContractShipment>update().lambda().set(ContractShipment::getContractId, oldContractId).in(ContractShipment::getId, newContractShipmentIds));
         }
 
         /**
@@ -231,24 +220,25 @@ public class ContractUpdateFlow extends FlowDelegate {
         oldContract.setIsShow(1);//隐藏旧合同
         contractService.updateContract(oldContract);
         //修改合同产品相关数据
-        if(CollectionUtils.isNotEmpty(oldContractProductIds)){
-            contractProductService.update(Wrappers.<ContractProduct>update().lambda().set(ContractProduct::getContractId,businessId).in(ContractProduct::getId,oldContractProductIds));
+        if (CollectionUtils.isNotEmpty(oldContractProductIds)) {
+            contractProductService.update(Wrappers.<ContractProduct>update().lambda().set(ContractProduct::getContractId, businessId).in(ContractProduct::getId, oldContractProductIds));
         }
         //修改合同出货相关数据
-        if(CollectionUtils.isNotEmpty(oldContractProjectIds)){
+        if (CollectionUtils.isNotEmpty(oldContractProjectIds)) {
             //修改合同收费相关数据
-            contractProjectService.update(Wrappers.<ContractProject>update().lambda().set(ContractProject::getContractId,businessId).in(ContractProject::getId,oldContractProjectIds));
+            contractProjectService.update(Wrappers.<ContractProject>update().lambda().set(ContractProject::getContractId, businessId).in(ContractProject::getId, oldContractProjectIds));
         }
         //修改合同出货相关数据
-        if(CollectionUtils.isNotEmpty(oldContractShipmentIds)){
+        if (CollectionUtils.isNotEmpty(oldContractShipmentIds)) {
             //修改合同出货相关数据
-            contractShipmentService.update(Wrappers.<ContractShipment>update().lambda().set(ContractShipment::getContractId,businessId).in(ContractShipment::getId,oldContractShipmentIds));
+            contractShipmentService.update(Wrappers.<ContractShipment>update().lambda().set(ContractShipment::getContractId, businessId).in(ContractShipment::getId, oldContractShipmentIds));
         }
-        ObsFileUtil.exchangeBusinessId(oldContractId,businessId);
+        ObsFileUtil.exchangeBusinessId(oldContractId, businessId);
     }
 
     /**
      * 变更
+     *
      * @param contract
      * @return
      */