|
@@ -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())
|
|
|
);
|