소스 검색

Merge branch 'test' into dev

yzc 2 년 전
부모
커밋
60ce2754be
1개의 변경된 파일22개의 추가작업 그리고 0개의 파일을 삭제
  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

@@ -19,9 +19,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;
@@ -63,6 +66,8 @@ public class PurchaseFlow extends FlowDelegate {
 
     @Autowired
     private PurchaseOtherFeeService purchaseOtherFeeService;
+    @Autowired
+    private SubscribeDetailService subscribeDetailService;
 
     @Override
     public String getFlowKey() {
@@ -91,6 +96,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();