Эх сурвалжийг харах

采购,到货状态问题处理

yzc 2 жил өмнө
parent
commit
ec78835793

+ 1 - 1
hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalServiceImpl.java

@@ -254,7 +254,7 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
                     BigDecimal count = arrivalDetails.stream()
                             .map(ArrivalDetail::getCount)
                             .reduce(BigDecimal.ZERO, BigDecimal::add);
-                    if (purchaseDetail.getCount().compareTo(count) >= 0) {
+                    if (purchaseDetail.getCount().compareTo(count) == 0) {
                         flag++;
                     }
                 }

+ 8 - 2
hx-sale/src/main/java/com/fjhx/sale/flow/PurchaseFlowByWdly.java

@@ -125,8 +125,14 @@ public class PurchaseFlowByWdly extends FlowDelegate {
         List<Long> subscribeDetailIds = purchaseDetailList.stream().map(PurchaseDetail::getSubscribeDetailId).collect(Collectors.toList());
         List<SubscribeDetail> subscribeDetails = subscribeDetailService.listByIds(subscribeDetailIds);
         for (SubscribeDetail subscribeDetail : subscribeDetails) {
-            PurchaseDetail purchaseDetail = purchaseDetailMap.get(subscribeDetail.getId());
-            if(purchaseDetail.getCount()==subscribeDetail.getCount()){
+            //获取申购明细下的所有采购记录 计算已采购数
+            List<PurchaseDetail> purchaseDetails = purchaseDetailService.list(q -> q.eq(PurchaseDetail::getSubscribeDetailId,
+                    subscribeDetail.getId()).eq(PurchaseDetail::getBussinessId,subscribeDetail.getBussinessId()));
+            BigDecimal count = purchaseDetails.stream()
+                    .map(PurchaseDetail::getCount)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+//            PurchaseDetail purchaseDetail = purchaseDetailMap.get(subscribeDetail.getId());
+            if(count.compareTo(subscribeDetail.getCount())==0){
                 //修改为已采购
                 subscribeDetail.setStatus(SubscribeDetailStatusEnum.PURCHASED.getKey());
             }else{