From c82b47020ff5b0e76609454ab915afd0e27db199 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期二, 01 七月 2025 13:47:29 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java |  115 +++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 71 insertions(+), 44 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
index 57ce31b..6424df5 100644
--- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
@@ -20,6 +20,7 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -223,18 +224,49 @@
     }
 
     @Override
-    public boolean reportCheckOrder(InventoryCheckOrder checkOrder) {
-        Object process1 = processInvcount(checkOrder);
-        //鍙戦�佽姹�
-        NcResultMessage response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, invcountAdd, JSONObject.toJSONString(process1));
-        log.info("鐩樼偣鍗時esponse:{}", response);
-        if (!Cools.isEmpty(response) && response.isSuccess()) {
-            log.info("鐩樼偣鍗時esponse:{}", response);
-            return true;
-        } else {
-//            remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
-            return false;
+    public boolean reportCheckOrder(String matnr, String batch) {
+        List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
+                .eq("matnr", matnr)
+                .eq("batch", batch)
+        );
+
+        ArrayList<String> warehouseIdList = new ArrayList<>();
+        ArrayList<String> orderNoList = new ArrayList<>();
+        for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) {
+            if (!warehouseIdList.contains(checkOrderDetl.getCwarehouseid())) {
+                warehouseIdList.add(checkOrderDetl.getCwarehouseid());
+            }
+            if (!orderNoList.contains(checkOrderDetl.getOrderNo())) {
+                orderNoList.add(checkOrderDetl.getOrderNo());
+            }
         }
+
+        boolean result = true;
+        for (String cwarehouseid : warehouseIdList) {
+            Object process1 = processInvcount(matnr, batch, cwarehouseid);
+            //鍙戦�佽姹�
+            NcResultMessage response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, invcountAdd, JSONObject.toJSONString(process1));
+            log.info("鐩樼偣鍗時esponse:{}", response);
+            if (!Cools.isEmpty(response) && response.isSuccess()) {
+                log.info("鐩樼偣鍗時esponse:{}", response);
+            } else {
+                result = false;
+            }
+        }
+
+
+        if (result) {
+            List<InventoryCheckOrder> inventoryCheckOrders = inventoryCheckOrderService.selectList(new EntityWrapper<InventoryCheckOrder>()
+                    .in("orderNo", orderNoList)
+                    .eq("status", 1)
+            );
+
+            for (InventoryCheckOrder inventoryCheckOrder : inventoryCheckOrders) {
+                inventoryCheckOrder.setStatus("2");
+                inventoryCheckOrderService.updateById(inventoryCheckOrder);
+            }
+        }
+        return result;
     }
 
     private Object processXSFH(List<OrderDetl> orderDetls, Boolean flag) {
@@ -314,50 +346,45 @@
         return data;
     }
 
-    private Object processInvcount(InventoryCheckOrder checkOrder) {
+    private Object processInvcount(String matnr, String batch, String cwarehouseid) {
         List<InventoryCheckOrderDetl> inventoryCheckOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
-                .eq("order_no", checkOrder.getOrderNo()));
+                .eq("matnr", matnr)
+                .eq("batch", batch)
+                .eq("cwarehouseid", cwarehouseid)
+        );
         if (inventoryCheckOrderDetls.isEmpty()) {
             throw new CoolException("鐩樼偣鏄庣粏涓嶅瓨鍦�");
         }
 
+        //鍚堝苟鏁伴噺
+        BigDecimal checkAnfmeDecimal = new BigDecimal(0);
+        for (InventoryCheckOrderDetl checkOrderDetl : inventoryCheckOrderDetls) {
+            checkAnfmeDecimal = checkAnfmeDecimal.add(BigDecimal.valueOf(checkOrderDetl.getCheckAnfme()));
+        }
+
+        //璁$畻杈呮暟閲�
+        Double weight = MatUtils.calcWeight(matnr, checkAnfmeDecimal.doubleValue());
+
         //缁勮瀵硅薄鏁版嵁
         Map<String, Object> data = new HashMap<String, Object>();
 
-        //浠撳簱id
-        String cwarehouseid = null;
         List<InvCountBodyVO> invCountBodyVOList = new ArrayList<>();
-        for (InventoryCheckOrderDetl inventoryCheckOrderDetl : inventoryCheckOrderDetls) {
-            List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>()
-                    .eq("matnr", inventoryCheckOrderDetl.getMatnr())
-                    .eq("batch", inventoryCheckOrderDetl.getBatch())
-            );
-            if (wrkDetls.isEmpty()) {
-                throw new CoolException("宸ヤ綔妗f槑缁嗕笉瀛樺湪");
-            }
 
-            NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>()
-                    .eq("WLBM", inventoryCheckOrderDetl.getMatnr())
-                    .eq("VBATCHCODE", inventoryCheckOrderDetl.getBatch())
-            );
-            if(null == nccScPcdaWms) {
-                throw new CoolException("ERP鏁版嵁搴撴棤娉曟煡璇㈠埌鐩樼偣涓婃姤鏁版嵁");
-            }
-
-            cwarehouseid = wrkDetls.get(0).getStandby1();
-
-            //璁$畻杈呮暟閲�
-            Double weight = MatUtils.calcWeight(inventoryCheckOrderDetl.getMatnr(), inventoryCheckOrderDetl.getCheckAnfme());
-
-            InvCountBodyVO invCountBodyVO = new InvCountBodyVO();
-            invCountBodyVO.setCmaterialoid(inventoryCheckOrderDetl.getMatnr());
-            invCountBodyVO.setVbatchcode(inventoryCheckOrderDetl.getBatch());
-            invCountBodyVO.setNcountnum(inventoryCheckOrderDetl.getCheckAnfme());
-            invCountBodyVO.setNcountastnum(weight);
-            invCountBodyVO.setCstateid(nccScPcdaWms.getPkStorestate());
-            invCountBodyVO.setPk_batchcode(nccScPcdaWms.getPkBatchcode());
-            invCountBodyVOList.add(invCountBodyVO);
+        NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>()
+                .eq("WLBM", matnr)
+                .eq("VBATCHCODE", batch)
+        );
+        if (null == nccScPcdaWms) {
+            throw new CoolException("ERP鏁版嵁搴撴棤娉曟煡璇㈠埌鐩樼偣涓婃姤鏁版嵁");
         }
+        InvCountBodyVO invCountBodyVO = new InvCountBodyVO();
+        invCountBodyVO.setCmaterialoid(matnr);
+        invCountBodyVO.setVbatchcode(batch);
+        invCountBodyVO.setNcountnum(checkAnfmeDecimal.doubleValue());
+        invCountBodyVO.setNcountastnum(weight);
+        invCountBodyVO.setCstateid(nccScPcdaWms.getPkStorestate());
+        invCountBodyVO.setPk_batchcode(nccScPcdaWms.getPkBatchcode());
+        invCountBodyVOList.add(invCountBodyVO);
 
         InvCountHeaderVO invCountHeaderVO = new InvCountHeaderVO();
         invCountHeaderVO.setPk_org("FYT");

--
Gitblit v1.9.1