浏览代码

Merge remote-tracking branch 'origin/master'

caozj 1 年之前
父节点
当前提交
a43047090d

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/Contract.java

@@ -391,4 +391,9 @@ public class Contract extends BasePo {
     @TableField(exist = false)
     private Long upId;
 
+    /**
+     * 流程id
+     */
+    private Long flowId;
+
 }

+ 0 - 5
hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractVo.java

@@ -126,11 +126,6 @@ public class ContractVo extends Contract {
 
     private BigDecimal refundMoney;
 
-    /**
-     * 流程id
-     */
-    private Long flowId;
-
     public BigDecimal getRefundMoney() {
         return sumClaimMoney;
     }

+ 3 - 0
hx-sale/src/main/java/com/fjhx/sale/flow/ContractFlow.java

@@ -79,6 +79,9 @@ public class ContractFlow extends FlowDelegate {
     @Override
     public Long start(Long flowId, JSONObject submitData) {
         ContractDto contract = submitData.toJavaObject(ContractDto.class);
+
+        contract.setFlowId(flowId);
+
         if(StringUtils.isEmpty(contract.getCurrency())){
             throw new ServiceException("币种不能为空");
         }

+ 36 - 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;
@@ -79,6 +68,9 @@ public class ContractUpdateFlow extends FlowDelegate {
 
         ContractDto contract = submitData.toJavaObject(ContractDto.class);
 
+        //赋值流程id
+        contract.setFlowId(flowId);
+
         //判断合同是否在变更中,防止用户缓存导致重复变更
         Contract byId = contractService.getById(contract.getOldContractId());
         Assert.notEmpty(byId, "查询不到合同信息");
@@ -93,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("查询不到原合同信息");
         }
         //更新原样品单状态为变更中
@@ -101,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("变更合同产品不能为空");
         }
         /**
@@ -124,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());
                 }
@@ -164,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("原合同不存在");
@@ -184,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());
 
 
         /**
@@ -206,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));
         }
 
         /**
@@ -228,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
      */

+ 12 - 9
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -38,6 +38,7 @@ import com.fjhx.customer.entity.customer.po.Customer;
 import com.fjhx.customer.service.customer.CustomerService;
 import com.fjhx.file.entity.FileInfoVo;
 import com.fjhx.file.utils.ObsFileUtil;
+import com.fjhx.flow.entity.flow.po.FlowExample;
 import com.fjhx.flow.service.flow.FlowExampleService;
 import com.fjhx.item.entity.product.dto.ProductInfoSelectDto;
 import com.fjhx.item.entity.product.po.ProductInfo;
@@ -243,9 +244,9 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     public Page<ContractVo> getPage(ContractSelectDto dto) {
         IWrapper<Contract> wrapper = getWrapper();
         SysUser sysUser = UserUtil.getUserInfo();
-        if(StringUtils.isEmpty(sysUser.getUserCode())){//不是业务员看所有
+        if (StringUtils.isEmpty(sysUser.getUserCode())) {//不是业务员看所有
             return pageCommon(dto, wrapper);
-        }else{//是业务员
+        } else {//是业务员
             List<Long> authIdList = customerService.getAuthIdList();
             if (authIdList.size() == 0) {
                 return new Page<>();
@@ -270,7 +271,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     private Page<ContractVo> pageCommon(ContractSelectDto dto, IWrapper<Contract> wrapper) {
         wrapper.orderByDesc("t1", Contract::getCreateTime);
         wrapper.eq("t1", Contract::getIsChange, "0");//列表只展示未变更得数据
-        wrapper.ne("t1",Contract::getIsShow,1);
+        wrapper.ne("t1", Contract::getIsShow, 1);
         wrapper.between("t1", Contract::getStatus, FlowStatusEnum1.DRAFT.getKey(), FlowStatusEnum1.CANCELLATION.getKey() - 1);
         if (StringUtils.isNotEmpty(dto.getStatus())) {
             wrapper.eq("t1", Contract::getStatus, dto.getStatus());
@@ -290,7 +291,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
             List<Long> customerIds = customerService.listObject(Customer::getId, q -> q.like(Customer::getName, dto.getKeyword()));
             wrapper.and(q -> q
                     .like("t1", Contract::getCode, dto.getKeyword())
-                    .or().like("t1",Contract::getUserName,dto.getUserName())
+                    .or().like("t1", Contract::getUserName, dto.getUserName())
                     .or().in("t1", Contract::getSellCorporationId, corporationIds)
                     .or().in("t1", Contract::getBuyCorporationId, customerIds)
             );
@@ -348,7 +349,8 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
             }
 
             // 赋值流程id
-            flowExampleService.setFlowId(list, ContractVo::setFlowId);
+            List<ContractVo> collect = list.stream().filter(item -> Objects.isNull(item.getFlowId())).collect(Collectors.toList());
+            flowExampleService.setFlowId(collect, ContractVo::setFlowId);
             //赋值原卖方公司名称 多公司
             corporationService.attributeAssign(list, ContractVo::getSellCorporationId, (item, corporation) -> {
                 item.setSellCorporationName(corporation.getName());
@@ -625,7 +627,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         List<EhsdPurchaseProduct> purchaseProducts = ehsdPurchaseProductService.getPurchaseProductByContractProductIds(contractProductIds);
         if (ObjectUtil.isNotEmpty(purchaseProducts)) {
             Map<Long, List<EhsdPurchaseProduct>> collect = purchaseProducts.stream()
-                    .filter(item->ObjectUtil.isNotEmpty(item.getDataResourceId()))
+                    .filter(item -> ObjectUtil.isNotEmpty(item.getDataResourceId()))
                     .collect(Collectors.groupingBy(EhsdPurchaseProduct::getDataResourceId));
             for (ContractProduct contractProduct : contractProductList) {
                 List<EhsdPurchaseProduct> ehsdPurchaseProductList = collect.get(contractProduct.getId());
@@ -1287,12 +1289,12 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
 
         IWrapper<Contract> wrapper = IWrapper.getWrapper();
         SysUser sysUser = UserUtil.getUserInfo();
-        if(StringUtils.isNotEmpty(sysUser.getUserCode())){//是业务员
+        if (StringUtils.isNotEmpty(sysUser.getUserCode())) {//是业务员
             List<Long> authIdList = customerService.getAuthIdList();
             if (authIdList.size() == 0) {
                 return new Page<>();
             }
-            wrapper.in( Contract::getBuyCorporationId, authIdList);
+            wrapper.in(Contract::getBuyCorporationId, authIdList);
         }
 //        //销售跟单权限过滤
 //        List<Long> authUserIdList = UserUtil.getAuthUserIdList();
@@ -1792,7 +1794,8 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         }
         List<ContractVo> contractVos = BeanUtil.copyToList(contractList, ContractVo.class);
         // 赋值流程id
-        flowExampleService.setFlowId(contractVos, ContractVo::setFlowId);
+        List<ContractVo> collect = contractVos.stream().filter(item -> Objects.isNull(item.getFlowId())).collect(Collectors.toList());
+        flowExampleService.setFlowId(collect, ContractVo::setFlowId);
         return contractVos;
     }