Bladeren bron

样品单、交接单变更逻辑更改.增加流程回退、驳回

caozj 1 jaar geleden
bovenliggende
commit
ec5f13d576

+ 14 - 8
hx-sale/src/main/java/com/fjhx/sale/flow/ContractUpdateFlow.java

@@ -116,7 +116,7 @@ public class ContractUpdateFlow extends FlowDelegate {
          * 计算新合同的剩余数量
          */
         for(ContractProduct newCp:newContractProductList){
-
+            newCp.setExpendQuantity(newCp.getQuantity());
             if(ObjectUtil.isNotEmpty(newCp.getId())){//如果新合同产品ID不为空
                 //取出旧合同
                 ContractProduct oldContractProduct = oldContractProductMap.getOrDefault(newCp.getId(),null).get(0);
@@ -160,18 +160,20 @@ public class ContractUpdateFlow extends FlowDelegate {
         if (oldContract == null) {
             throw new ServiceException("原合同不存在");
         }
-        long temOldId = IdWorker.getId();
+        //替换新数据ID为临时ID
         long temNewId = IdWorker.getId();
-        Contract temOldUpContract = new Contract();
-        temOldUpContract.setId(temOldId);
-        temOldUpContract.setUpId(oldContractId);
         Contract temNewUpContract = new Contract();
         temNewUpContract.setId(temNewId);
         temNewUpContract.setUpId(businessId);
-        //替换新旧数据ID为临时ID
-        contractService.updateContract(temOldUpContract);
         contractService.updateContract(temNewUpContract);
 
+        long temOldId = IdWorker.getId();
+        Contract temOldUpContract = new Contract();
+        temOldUpContract.setId(temOldId);
+        temOldUpContract.setUpId(oldContractId);
+        contractService.updateContract(temOldUpContract);
+
+
         //查询新数据产品、收费、出货
         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());
@@ -212,7 +214,7 @@ public class ContractUpdateFlow extends FlowDelegate {
         oldContract.setId(businessId);
         oldContract.setStatus(FlowStatusEnum1.UPDATE.getKey());
         oldContract.setIsChange("1");
-        newContract.setUpId(temOldId);
+        oldContract.setUpId(temOldId);
         contractService.updateContract(oldContract);
         //修改合同产品相关数据
         if(CollectionUtils.isNotEmpty(oldContractProductIds)){
@@ -228,6 +230,7 @@ public class ContractUpdateFlow extends FlowDelegate {
             //修改合同出货相关数据
             contractShipmentService.update(Wrappers.<ContractShipment>update().lambda().set(ContractShipment::getContractId,businessId).in(ContractShipment::getId,oldContractShipmentIds));
         }
+        ObsFileUtil.exchangeBusinessId(oldContractId,businessId);
     }
 
     /**
@@ -251,6 +254,7 @@ public class ContractUpdateFlow extends FlowDelegate {
         List<ContractProduct> contractProductList = contract.getContractProductList();
         if (CollectionUtils.isNotEmpty(contractProductList)) {
             for (ContractProduct c : contractProductList) {
+                c.setId(IdWorker.getId());
                 c.setContractId(contract.getId());
 //                ObsFileUtil.saveFile(c.getFileList(), c.getId());
             }
@@ -261,6 +265,7 @@ public class ContractUpdateFlow extends FlowDelegate {
         List<ContractProject> contractProjectList = contract.getContractProjectList();
         if (CollectionUtils.isNotEmpty(contractProjectList)) {
             for (ContractProject c : contractProjectList) {
+                c.setId(IdWorker.getId());
                 c.setContractId(contract.getId());
             }
             contractProjectService.saveBatch(contractProjectList);
@@ -270,6 +275,7 @@ public class ContractUpdateFlow extends FlowDelegate {
         List<ContractShipment> contractShipmentList = contract.getContractShipmentList();
         if (CollectionUtils.isNotEmpty(contractShipmentList)) {
             for (ContractShipment c : contractShipmentList) {
+                c.setId(IdWorker.getId());
                 c.setContractId(contract.getId());
             }
             contractShipmentService.saveBatch(contractShipmentList);

+ 1 - 6
hx-sale/src/main/java/com/fjhx/sale/flow/EhsdPurchaseFlow.java

@@ -152,12 +152,7 @@ public class EhsdPurchaseFlow extends FlowDelegate {
         List<EhsdPurchaseProductMountings> addMountingsList = new ArrayList<>();
         if (CollectionUtils.isNotEmpty(purchaseProductList)) {
             for (EhsdPurchaseProduct s : purchaseProductList) {//产品
-                long id ;
-                if(ObjectUtils.isNotEmpty(s.getId())){
-                    id = s.getId();
-                }else{
-                    id = IdWorker.getId();
-                }
+                long id = IdWorker.getId();
                 s.setId(id);
                 s.setPurchaseId(purchase.getId());
                 List<EhsdPurchaseProductMountings> purchaseProductMountingsList = s.getPurchaseProductMountingsList();

+ 2 - 2
hx-sale/src/main/java/com/fjhx/sale/flow/SampleUpdateFlow.java

@@ -105,7 +105,7 @@ public class SampleUpdateFlow extends FlowDelegate {
          * 计算新样品单的剩余数量
          */
         for(SampleProduct newCp:newSampleProductList){
-
+            newCp.setExpendQuantity(newCp.getQuantity());
             if(ObjectUtil.isNotEmpty(newCp.getId())){//如果新样品单产品ID不为空
                 //取出旧样品单
                 SampleProduct oldSampleProduct = oldSampleMap.getOrDefault(newCp.getId(),null).get(0);
@@ -212,7 +212,7 @@ public class SampleUpdateFlow extends FlowDelegate {
         if(CollectionUtils.isNotEmpty(oldSampleShipmentIds)){
             sampleShipmentService.update(Wrappers.<SampleShipment>update().lambda().set(SampleShipment::getSampleId,businessId).in(SampleShipment::getId,oldSampleShipmentIds));
         }
-
+        ObsFileUtil.exchangeBusinessId(oldSampleId,businessId);
     }
 
     /**

+ 1 - 0
hx-sale/src/main/resources/mapper/contract/ContractMapper.xml

@@ -288,6 +288,7 @@
         <set>
             <if test="id != null and id != '' ">id = #{id},</if>
             <if test="status != null and status != ''">status = #{status},</if>
+            <if test="isChange != null and isChange != ''">is_change = #{isChange},</if>
             <if test="approvedDate != null">approved_date = DATE_FORMAT(NOW(),'%Y-%m-%d %H:%m:%s'),</if>
             update_time = sysdate()
         </set>