Ver código fonte

采购合同重新发起

yzc 1 ano atrás
pai
commit
188c069bcb

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

@@ -221,7 +221,7 @@ public class EhsdPurchaseFlow extends FlowDelegate {
                 SampleProduct sampleProduct = sampleProductService.getById(p.getDataResourceId());
                 BigDecimal expendQuantity = sampleProduct.getExpendQuantity().subtract(p.getQuantity());
                 if (expendQuantity.compareTo(BigDecimal.ZERO) < 0) {//小于0不让继续执行
-                    throw new ServiceException("采购数量不得大于合同剩余采购数量,请驳回审批修改");
+//                    throw new ServiceException("采购数量不得大于合同剩余采购数量,请驳回审批修改");
                 }
                 sampleProduct.setExpendQuantity(expendQuantity);
                 upSampleProduct.add(sampleProduct);

+ 28 - 5
hx-sale/src/main/java/com/fjhx/sale/flow/EhsdPurchaseUpdateFlow.java

@@ -2,17 +2,23 @@ package com.fjhx.sale.flow;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.fjhx.common.utils.Assert;
 import com.fjhx.flow.core.FlowDelegate;
+import com.fjhx.purchase.entity.purchase.enums.PurchaseDataResourceEnum;
+import com.fjhx.sale.entity.contract.po.ContractProduct;
 import com.fjhx.sale.entity.purchase.dto.EhsdPurchaseDto;
 import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
 import com.fjhx.sale.entity.purchase.po.EhsdPurchaseArrival;
 import com.fjhx.sale.entity.purchase.po.EhsdPurchaseProduct;
 import com.fjhx.sale.entity.purchase.po.EhsdPurchaseProject;
+import com.fjhx.sale.entity.sample.po.SampleProduct;
+import com.fjhx.sale.service.contract.ContractProductService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseArrivalService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseProductService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseProjectService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseService;
+import com.fjhx.sale.service.sample.SampleProductService;
 import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -39,6 +45,10 @@ public class EhsdPurchaseUpdateFlow extends FlowDelegate {
     private EhsdPurchaseProjectService ehsdPurchaseProjectService;
     @Autowired
     private EhsdPurchaseArrivalService ehsdPurchaseArrivalService;
+    @Autowired
+    private ContractProductService contractProductService;
+    @Autowired
+    private SampleProductService sampleProductService;
 
     @Override
     public String getFlowKey() {
@@ -103,9 +113,22 @@ public class EhsdPurchaseUpdateFlow extends FlowDelegate {
         EhsdPurchase purchase = ehsdPurchaseService.getById(businessId);
         Assert.notEmpty(purchase, "采购单不存在,或已被删除");
 
-        //回滚旧合同的采购数量
-        EhsdPurchaseDto oldPurchase = submitData.toJavaObject(EhsdPurchaseDto.class);
-        List<EhsdPurchaseProduct> purchaseProductList = oldPurchase.getPurchaseProductList();
+        //回滚旧合同的已采购数量
+        List<EhsdPurchaseProduct> oldPurchaseProductList = ehsdPurchaseProductService.list(q -> q.eq(EhsdPurchaseProduct::getPurchaseId, purchase.getOldPurchaseId()));
+        for (EhsdPurchaseProduct ehsdPurchaseProduct : oldPurchaseProductList) {
+            if (ObjectUtils.isNotEmpty(ehsdPurchaseProduct.getDataResourceId()) && ehsdPurchaseProduct.getDataResource() == PurchaseDataResourceEnum.DATA_RESOURCE_1.getKey()) {//如果采购的是外销合同
+                ContractProduct contractProduct = contractProductService.getById(ehsdPurchaseProduct.getDataResourceId());
+                //回滚变更前待采购数量
+                contractProduct.setExpendQuantity(contractProduct.getExpendQuantity().add(ehsdPurchaseProduct.getQuantity()));
+                contractProductService.updateById(contractProduct);
+            }
+            if (ObjectUtils.isNotEmpty(ehsdPurchaseProduct.getDataResourceId()) && ehsdPurchaseProduct.getDataResource() == PurchaseDataResourceEnum.DATA_RESOURCE_2.getKey()) {//如果采购的是样品单
+                SampleProduct sampleProduct = sampleProductService.getById(ehsdPurchaseProduct.getDataResourceId());
+                //回滚变更前待采购数量
+                sampleProduct.setExpendQuantity(sampleProduct.getExpendQuantity().add(ehsdPurchaseProduct.getQuantity()));
+                sampleProductService.updateById(sampleProduct);
+            }
+        }
 
 
         //调用采购发起流程的结束方法
@@ -125,7 +148,7 @@ public class EhsdPurchaseUpdateFlow extends FlowDelegate {
         ehsdPurchaseService.update(q -> q
                 .eq(BaseIdPo::getId, oldPurchaseId)
                 .set(BaseIdPo::getId, businessId)
-                .set(EhsdPurchase::getOldPurchaseId,oldPurchaseId)
+                .set(EhsdPurchase::getOldPurchaseId, oldPurchaseId)
                 .set(BasePo::getUpdateTime, new Date())
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
         );
@@ -151,7 +174,7 @@ public class EhsdPurchaseUpdateFlow extends FlowDelegate {
         ehsdPurchaseService.update(q -> q
                 .eq(BaseIdPo::getId, tempId)
                 .set(BaseIdPo::getId, oldPurchaseId)
-                .set(EhsdPurchase::getOldPurchaseId,businessId)
+                .set(EhsdPurchase::getOldPurchaseId, businessId)
                 .set(BasePo::getUpdateTime, new Date())
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
         );