Ver Fonte

申购明细采购状态不变问题处理

yzc há 2 anos atrás
pai
commit
7899cae087
1 ficheiros alterados com 22 adições e 0 exclusões
  1. 22 0
      hx-sale/src/main/java/com/fjhx/sale/flow/PurchaseFlow.java

+ 22 - 0
hx-sale/src/main/java/com/fjhx/sale/flow/PurchaseFlow.java

@@ -17,9 +17,12 @@ import com.fjhx.purchase.entity.purchase.po.Purchase;
 import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import com.fjhx.purchase.entity.purchase.po.PurchaseOtherFee;
 import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
+import com.fjhx.purchase.entity.subscribe.enums.SubscribeDetailStatusEnum;
+import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
 import com.fjhx.purchase.service.purchase.PurchaseDetailService;
 import com.fjhx.purchase.service.purchase.PurchaseOtherFeeService;
 import com.fjhx.purchase.service.purchase.PurchaseService;
+import com.fjhx.purchase.service.subscribe.SubscribeDetailService;
 import com.fjhx.sale.entity.contract.po.ContractProduct;
 import com.fjhx.sale.entity.sample.po.SampleProduct;
 import com.fjhx.sale.service.contract.ContractProductService;
@@ -58,6 +61,8 @@ public class PurchaseFlow extends FlowDelegate {
     private CodingRuleService codingRuleService;
     @Autowired
     private PurchaseOtherFeeService purchaseOtherFeeService;
+    @Autowired
+    private SubscribeDetailService subscribeDetailService;
 
     @Override
     public String getFlowKey() {
@@ -86,6 +91,23 @@ public class PurchaseFlow extends FlowDelegate {
                 s.setPurchaseId(purchase.getId());
             }
             purchaseDetailService.saveBatch(purchaseDetailList);
+            //修改申购明细的采购状态
+            for (PurchaseDetail purchaseDetail : purchaseDetailList) {
+                //计算已经采购的数量
+                List<PurchaseDetail> purchaseDetails = purchaseDetailService.list(q -> q
+                        .eq(PurchaseDetail::getSubscribeDetailId, purchaseDetail.getSubscribeDetailId())
+                );
+                BigDecimal pdCount = purchaseDetails.stream().map(PurchaseDetail::getCount).reduce(BigDecimal.ZERO, BigDecimal::add);
+                SubscribeDetail subscribeDetail = subscribeDetailService.getById(purchaseDetail.getSubscribeDetailId());
+                if (pdCount.compareTo(subscribeDetail.getCount()) >= 0) {
+                    //修改为已采购
+                    subscribeDetail.setStatus(SubscribeDetailStatusEnum.PURCHASED.getKey());
+                } else {
+                    //修改为部分采购
+                    subscribeDetail.setStatus(SubscribeDetailStatusEnum.LITT_PAID_AMOUNT.getKey());
+                }
+                subscribeDetailService.updateById(subscribeDetail);
+            }
         }
         //保存其他费用信息
         List<PurchaseOtherFee> otherFeeList = purchase.getOtherFeeList();