Sfoglia il codice sorgente

已采购到货状态改为 入库后更改到货状态

yzc 1 anno fa
parent
commit
2ea7bc6f6d

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

@@ -37,7 +37,6 @@ import com.fjhx.purchase.service.purchase.PurchaseDetailService;
 import com.fjhx.purchase.service.purchase.PurchaseService;
 import com.fjhx.purchase.service.subscribe.SubscribeDetailService;
 import com.fjhx.purchase.service.subscribe.SubscribeService;
-import com.fjhx.supply.service.supplier.SupplierInfoService;
 import com.fjhx.wms.entity.stock.emums.StockWaitType;
 import com.fjhx.wms.entity.stock.po.StockWait;
 import com.fjhx.wms.entity.stock.po.StockWaitDetails;
@@ -94,8 +93,6 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
     @Autowired
     private CompanyInfoService companyInfoService;
     @Autowired
-    private SupplierInfoService supplierInfoService;
-    @Autowired
     private ProductInfoService productInfoService;
 
     @Autowired
@@ -308,32 +305,32 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
         DynamicDataSourceContextHolder.poll();
 
         //修改到货状态
-        Integer flag = 0;
-        List<PurchaseDetail> purchaseDetailsList1 = purchaseDetailService.list(q -> q.eq(PurchaseDetail::getPurchaseId, purchase.getId()));
-        if (ObjectUtil.isNotEmpty(purchaseDetailsList1)) {
-            List<Long> purchaseDetailsIds = purchaseDetailsList1.stream().map(PurchaseDetail::getId).collect(Collectors.toList());
-            List<ArrivalDetail> arrivalDetailsList1 = arrivalDetailService.list(q -> q.in(ArrivalDetail::getPurchaseDetailId, purchaseDetailsIds));
-            if (ObjectUtil.isNotEmpty(arrivalDetailsList1)) {
-                Map<Long, List<ArrivalDetail>> arrivalDetailsMap = arrivalDetailsList1.stream().collect(Collectors.groupingBy(ArrivalDetail::getPurchaseDetailId));
-                for (PurchaseDetail purchaseDetail : purchaseDetailsList1) {
-                    List<ArrivalDetail> arrivalDetails = arrivalDetailsMap.get(purchaseDetail.getId());
-                    BigDecimal count = arrivalDetails.stream()
-                            .map(ArrivalDetail::getCount)
-                            .reduce(BigDecimal.ZERO, BigDecimal::add);
-                    if (count.compareTo(purchaseDetail.getCount()) >= 0) {
-                        flag++;
-                    }
-                }
-                if (purchaseDetailsList1.size() == flag) {
-                    //完全到货
-                    purchase.setArrivalStatus(20);
-                } else {
-                    //部分到货
-                    purchase.setArrivalStatus(10);
-                }
-                purchaseService.updateById(purchase);
-            }
-        }
+//        Integer flag = 0;
+//        List<PurchaseDetail> purchaseDetailsList1 = purchaseDetailService.list(q -> q.eq(PurchaseDetail::getPurchaseId, purchase.getId()));
+//        if (ObjectUtil.isNotEmpty(purchaseDetailsList1)) {
+//            List<Long> purchaseDetailsIds = purchaseDetailsList1.stream().map(PurchaseDetail::getId).collect(Collectors.toList());
+//            List<ArrivalDetail> arrivalDetailsList1 = arrivalDetailService.list(q -> q.in(ArrivalDetail::getPurchaseDetailId, purchaseDetailsIds));
+//            if (ObjectUtil.isNotEmpty(arrivalDetailsList1)) {
+//                Map<Long, List<ArrivalDetail>> arrivalDetailsMap = arrivalDetailsList1.stream().collect(Collectors.groupingBy(ArrivalDetail::getPurchaseDetailId));
+//                for (PurchaseDetail purchaseDetail : purchaseDetailsList1) {
+//                    List<ArrivalDetail> arrivalDetails = arrivalDetailsMap.get(purchaseDetail.getId());
+//                    BigDecimal count = arrivalDetails.stream()
+//                            .map(ArrivalDetail::getCount)
+//                            .reduce(BigDecimal.ZERO, BigDecimal::add);
+//                    if (count.compareTo(purchaseDetail.getCount()) >= 0) {
+//                        flag++;
+//                    }
+//                }
+//                if (purchaseDetailsList1.size() == flag) {
+//                    //完全到货
+//                    purchase.setArrivalStatus(20);
+//                } else {
+//                    //部分到货
+//                    purchase.setArrivalStatus(10);
+//                }
+//                purchaseService.updateById(purchase);
+//            }
+//        }
     }
 
     @Override

+ 70 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/purServiceImpl.java

@@ -0,0 +1,70 @@
+package com.fjhx.purchase.service;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
+import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
+import com.fjhx.purchase.service.arrival.ArrivalDetailService;
+import com.fjhx.purchase.service.purchase.PurchaseDetailService;
+import com.fjhx.purchase.service.purchase.PurchaseService;
+import com.fjhx.wms.entity.stock.po.StockWaitDetails;
+import com.fjhx.wms.service.PurService;
+import com.fjhx.wms.service.stock.StockWaitDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Service
+public class purServiceImpl implements PurService {
+    @Autowired
+    private PurchaseService purchaseService;
+    @Autowired
+    private PurchaseDetailService purchaseDetailService;
+    @Autowired
+    private ArrivalDetailService arrivalDetailService;
+    @Autowired
+    private StockWaitDetailsService stockWaitDetailsService;
+
+    /**
+     * 修改采购到货状态
+     */
+    @Override
+    public void updatePurchaseArrivalStatus(Long id) {
+        Purchase purchase = purchaseService.getById(id);
+        //修改到货状态
+        Integer flag = 0;
+        List<PurchaseDetail> purchaseDetailsList1 = purchaseDetailService.list(q -> q.eq(PurchaseDetail::getPurchaseId, purchase.getId()));
+        if (ObjectUtil.isNotEmpty(purchaseDetailsList1)) {
+            List<Long> purchaseDetailsIds = purchaseDetailsList1.stream().map(PurchaseDetail::getId).collect(Collectors.toList());
+            List<ArrivalDetail> arrivalDetailsList1 = arrivalDetailService.list(q -> q.in(ArrivalDetail::getPurchaseDetailId, purchaseDetailsIds));
+            if (ObjectUtil.isNotEmpty(arrivalDetailsList1)) {
+                Map<Long, List<ArrivalDetail>> arrivalDetailsMap = arrivalDetailsList1.stream().collect(Collectors.groupingBy(ArrivalDetail::getPurchaseDetailId));
+                for (PurchaseDetail purchaseDetail : purchaseDetailsList1) {
+                    //获取到货明细
+                    List<ArrivalDetail> arrivalDetails = arrivalDetailsMap.get(purchaseDetail.getId());
+                    List<Long> arrivalIds = arrivalDetails.stream().map(ArrivalDetail::getId).collect(Collectors.toList());
+                    //根据到货明细获取入库明细
+                    List<StockWaitDetails> stockWaitDetailsList = stockWaitDetailsService.list(q -> q.in(StockWaitDetails::getBusinessDetailsId, arrivalIds));
+                    BigDecimal count = stockWaitDetailsList.stream()
+                            .map(StockWaitDetails::getReceiptQuantity)
+                            .reduce(BigDecimal.ZERO, BigDecimal::add);
+                    if (count.compareTo(purchaseDetail.getCount()) >= 0) {
+                        flag++;
+                    }
+                }
+                if (purchaseDetailsList1.size() == flag) {
+                    //完全到货
+                    purchase.setArrivalStatus(20);
+                } else {
+                    //部分到货
+                    purchase.setArrivalStatus(10);
+                }
+                purchaseService.updateById(purchase);
+            }
+        }
+    }
+}

+ 8 - 0
hx-wms/src/main/java/com/fjhx/wms/service/PurService.java

@@ -0,0 +1,8 @@
+package com.fjhx.wms.service;
+
+public interface PurService {
+    /**
+     * 修改采购到货状态
+     */
+    void updatePurchaseArrivalStatus(Long id);
+}

+ 7 - 0
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

@@ -24,6 +24,7 @@ import com.fjhx.wms.entity.stock.vo.StockWaitDetailsVo;
 import com.fjhx.wms.entity.stock.vo.StockWaitVo;
 import com.fjhx.wms.entity.warehouse.po.Warehouse;
 import com.fjhx.wms.mapper.stock.StockWaitMapper;
+import com.fjhx.wms.service.PurService;
 import com.fjhx.wms.service.WmsService;
 import com.fjhx.wms.service.arrival.ArrivalStockRecordsDetailsService;
 import com.fjhx.wms.service.arrival.ArrivalStockRecordsService;
@@ -75,6 +76,8 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
     private WmsService wmsService;
     @Autowired
     private StockFrozenService stockFrozenService;
+    @Autowired
+    private PurService purService;
 
     @Override
     public Page<StockWaitVo> getPage(StockWaitSelectDto dto) {
@@ -300,6 +303,10 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
             }
             arrivalStockRecordsDetailsService.saveBatch(arrivalStockRecordsDetailsList);
         }
+        //如果是采购到货修改到货状态
+        if (StockWaitType.PURCHASE_ARRIVAL_IN.getDetailType().equals(businessType)) {
+            purService.updatePurchaseArrivalStatus(stockWait.getBusinessId());
+        }
 
         //销售订单出库
         if (StockWaitType.SALE_ORDER_OUT.getDetailType().equals(businessType)) {