浏览代码

问题处理

yzc 1 年之前
父节点
当前提交
06f9cd7e31

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

@@ -245,9 +245,13 @@ public class ContractFlow extends FlowDelegate {
                 .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
         );
 
+        contractCancelEditAvailableQuantity(contract);
+
     }
 
-    //合同作废修改可用库存
+    /**
+     * 合同作废修改可用库存
+     */
     private void contractCancelEditAvailableQuantity(Contract contract) {
         Long businessId = contract.getId();
         //可用库存=可用库存-((待采购量-已采购量)-合同量)

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

@@ -232,27 +232,7 @@ public class EhsdPurchaseFlow extends FlowDelegate {
         purchaseService.updateById(purchase);
 
         //修改申购明细状态
-        List<Long> subscribeDetailIds = purchaseProductService.listObject(EhsdPurchaseProduct::getSubscribeDetailId, q -> q
-                .eq(EhsdPurchaseProduct::getPurchaseId, businessId)
-        );
-        //获取已采购数量
-        List<SubscribeDetail> purchaseCountByIds = subscribeDetailMapper.getPurchaseCountByIds(subscribeDetailIds);
-        Map<Long, BigDecimal> purchaseCountMap = purchaseCountByIds.stream().collect(Collectors.toMap(SubscribeDetail::getId, SubscribeDetail::getCount));
-        //修改状态
-        List<SubscribeDetail> subscribeDetails = subscribeDetailService.listByIds(subscribeDetailIds);
-        for (SubscribeDetail subscribeDetail : subscribeDetails) {
-            //获取已采购数并计算状态
-            BigDecimal count = purchaseCountMap.getOrDefault(subscribeDetail.getId(), BigDecimal.ZERO);
-            if (count.compareTo(subscribeDetail.getCount()) >= 0) {
-                //修改为已采购
-                subscribeDetail.setStatus(SubscribeDetailStatusEnum.PURCHASED.getKey());
-            } else {
-                //修改为部分采购
-                subscribeDetail.setStatus(SubscribeDetailStatusEnum.LITT_PAID_AMOUNT.getKey());
-            }
-        }
-        subscribeDetailService.updateBatchById(subscribeDetails);
-
+        updateSubscribeStatus(businessId);
 
         List<InOutBo> inOutBoList = new ArrayList<>();
         for (EhsdPurchaseProduct purchaseProduct : purchaseProductList) {
@@ -349,5 +329,36 @@ public class EhsdPurchaseFlow extends FlowDelegate {
             }
         }
         productInfoService.editAvailableQuantity(inOutBoList, InOutType.OUT, businessId, ProductAvailableRecordType.PURCHASE_CANCEL, purchase.getCompanyId());
+
+        //修改申购明细状态
+        updateSubscribeStatus(businessId);
+    }
+
+
+    /**
+     * 修改申购明细状态
+     */
+    private void updateSubscribeStatus(Long businessId) {
+        //修改申购明细状态
+        List<Long> subscribeDetailIds = purchaseProductService.listObject(EhsdPurchaseProduct::getSubscribeDetailId, q -> q
+                .eq(EhsdPurchaseProduct::getPurchaseId, businessId)
+        );
+        //获取已采购数量
+        List<SubscribeDetail> purchaseCountByIds = subscribeDetailMapper.getPurchaseCountByIds(subscribeDetailIds);
+        Map<Long, BigDecimal> purchaseCountMap = purchaseCountByIds.stream().collect(Collectors.toMap(SubscribeDetail::getId, SubscribeDetail::getCount));
+        //修改状态
+        List<SubscribeDetail> subscribeDetails = subscribeDetailService.listByIds(subscribeDetailIds);
+        for (SubscribeDetail subscribeDetail : subscribeDetails) {
+            //获取已采购数并计算状态
+            BigDecimal count = purchaseCountMap.getOrDefault(subscribeDetail.getId(), BigDecimal.ZERO);
+            if (count.compareTo(subscribeDetail.getCount()) >= 0) {
+                //修改为已采购
+                subscribeDetail.setStatus(SubscribeDetailStatusEnum.PURCHASED.getKey());
+            } else {
+                //修改为部分采购
+                subscribeDetail.setStatus(SubscribeDetailStatusEnum.LITT_PAID_AMOUNT.getKey());
+            }
+        }
+        subscribeDetailService.updateBatchById(subscribeDetails);
     }
 }