From 1be7eccdb147f189de05d13777da8c79c5d0b9f2 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期二, 15 七月 2025 15:52:12 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java |  161 ++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 140 insertions(+), 21 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 507c554..4c21f9d 100644
--- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
@@ -6,14 +6,9 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
-import com.zy.asrs.entity.DocType;
-import com.zy.asrs.entity.Order;
-import com.zy.asrs.entity.OrderDetl;
-import com.zy.asrs.entity.StoreType;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.OrderService;
-import com.zy.asrs.service.ReportToThirdService;
-import com.zy.asrs.service.StoreTypeService;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.service.*;
+import com.zy.asrs.utils.MatUtils;
 import com.zy.nc.SendUtil;
 import com.zy.nc.entity.*;
 import com.zy.nc.service.NccSaleXsfhmxWmsService;
@@ -25,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;
@@ -36,9 +32,14 @@
 
     @Autowired
     private ApiLogService apiLogService;
-
     @Autowired
     private OrderService orderService;
+    @Autowired
+    private WrkDetlService wrkDetlService;
+    @Autowired
+    private InventoryCheckOrderService inventoryCheckOrderService;
+    @Autowired
+    private InventoryCheckOrderDetlService inventoryCheckOrderDetlService;
 
     @Autowired
     private StoreTypeService storeTypeService;
@@ -61,6 +62,9 @@
     @Value("${NYNC.saveRefWhsTrans}")
     private String saveRefWhsTrans;
 
+    @Value("${NYNC.invcountAdd}")
+    private String invcountAdd;
+
     @Value("${NYNC.purchasein}")
     private String purchasein;
 
@@ -82,6 +86,8 @@
         Object process2 = null;
         String memo = order.getMemo();
         String remark = "";
+        boolean success = false;
+        log.info("璁㈠崟寮�濮嬩笂鎶�:{}", JSON.toJSONString(order));
         try {
             switch (order.getDocType$().toString()) {
                 case "閿�鍞��璐�":
@@ -91,6 +97,7 @@
                     if (!Cools.isEmpty(response) && response.isSuccess()) {
                         log.info("閿�鍞彂璐esponse:{}", response);
                         step = 10;
+                        success = true;
                     } else {
                         remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                     }
@@ -102,6 +109,7 @@
                     if (!Cools.isEmpty(response) && response.isSuccess()) {
                         log.info("閿�鍞彂璐esponse:{}", response);
                         step = 10;
+                        success = true;
                     } else {
                         remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                     }
@@ -113,6 +121,7 @@
                     if (!Cools.isEmpty(response) && response.isSuccess()) {
                         log.info("杞簱-鍏ュ簱response:{}", response);
                         step = 10;
+                        success = true;
                     } else {
                         remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                     }
@@ -142,6 +151,7 @@
                         if (!Cools.isEmpty(response) && response.isSuccess()) {
                             log.info("杞簱-鍑哄簱2response:{}", response);
                             step = 10;
+                            success = true;
                         } else {
                             remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                         }
@@ -164,6 +174,7 @@
                             if (!Cools.isEmpty(response) && response.isSuccess()) {
                                 log.info("杞簱-鍑哄簱2response:{}", response);
                                 step = 10;
+                                success = true;
                             } else {
                                 remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                             }
@@ -177,6 +188,7 @@
                     if (!Cools.isEmpty(response) && response.isSuccess()) {
                         log.info("闆嗗洟鍐呴儴璋冩嫧response:{}", response);
                         step = 10;
+                        success = true;
                     } else {
                         remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                     }
@@ -199,7 +211,7 @@
             e.printStackTrace();
             throw new CoolException("璋冪敤鎺ュ彛鎶ラ敊锛岃鑱旂郴绠$悊鍛�");
         } finally {
-            reportApiLog(response, order.getDocType$(), nyncIp, saveRefDelivery);
+            reportApiLog(order, process1, process2, response, order.getDocType$(), nyncIp, saveRefDelivery, success);
         }
 
     }
@@ -217,6 +229,52 @@
 //            remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
             return false;
         }
+    }
+
+    @Override
+    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("order_no", orderNoList)
+                    .eq("status", 1)
+            );
+
+            for (InventoryCheckOrder inventoryCheckOrder : inventoryCheckOrders) {
+                inventoryCheckOrder.setStatus("2");
+                inventoryCheckOrderService.updateById(inventoryCheckOrder);
+            }
+        }
+        return result;
     }
 
     private Object processXSFH(List<OrderDetl> orderDetls, Boolean flag) {
@@ -294,6 +352,61 @@
         data.put("SaleOutHeadVO", saleOutHeadVO);
         data.put("SaleOutBodyVO", saleOutBodyVOList);
         return data;
+    }
+
+    private Object processInvcount(String matnr, String batch, String cwarehouseid) {
+        List<InventoryCheckOrderDetl> inventoryCheckOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
+                .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>();
+
+        List<InvCountBodyVO> invCountBodyVOList = new ArrayList<>();
+
+        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");
+        invCountHeaderVO.setCtrantypeid("4R-01");
+        invCountHeaderVO.setCwarehouseid(cwarehouseid);
+
+        data.put("InvCountHeaderVO", invCountHeaderVO);
+        data.put("InvCountBodyVO", invCountBodyVOList);
+        data.put("paper", "1");
+        data.put("splr", "0");
+
+        ArrayList<Map<String, Object>> list = new ArrayList<>();
+        list.add(data);
+        return list;
     }
 
     private Object processZKRK(List<OrderDetl> orderDetls) {
@@ -403,7 +516,7 @@
             }
 
             whsTransBillBodyVO = new WhsTransBillBodyVO();
-            whsTransBillBodyVO.setCstateid(nccScPcdaWms.getPkBatchcode());
+            whsTransBillBodyVO.setCstateid(nccScPcdaWms.getPkStorestate());
 
             String remark = orderDetl.getRemark();
             //if (!Cools.isEmpty(remark)) {
@@ -411,6 +524,7 @@
             whsTransBillBodyVO.setNnum(orderDetl.getQty());
             whsTransBillBodyVO.setCmaterialoid(orderDetl.getMatnr());
             whsTransBillBodyVO.setVbatchcode(orderDetl.getBatch());
+            whsTransBillBodyVO.setPk_batchcode(nccScPcdaWms.getPkBatchcode());
             //}
             whsTransBillHeaderVO.setCwarehouseid(orderDetl.getStandby1());
             whsTransBillBodyVOS.add(whsTransBillBodyVO);
@@ -442,10 +556,11 @@
         ic_generalout_b generalout_b = null;
         List<ic_generalout_b> ic_purchasein_bs = new ArrayList<>();
         for (int i = 0; i < orderDetls.size(); i++) {
-//            NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>().eq("vbatchcode", orderDetls.get(i).getBatch()).eq("wlbm", orderDetls.get(i).getMatnr()));
-//            if (nccScPcdaWms == null) {
-//                throw new CoolException("鎵规[{}]鐗╂枡[{}]鏈壘鍒�" + orderDetls.get(i).getBatch() + orderDetls.get(i).getMatnr());
-//            }
+            NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>().eq("vbatchcode", orderDetls.get(i).getBatch()).eq("wlbm", orderDetls.get(i).getMatnr()));
+            if (nccScPcdaWms == null) {
+                throw new CoolException("鎵规[{}]鐗╂枡[{}]鏈壘鍒�" + orderDetls.get(i).getBatch() + orderDetls.get(i).getMatnr());
+            }
+
             OrderDetl orderDetl = orderDetls.get(i);
             generalout_h.setCwarehouseid(orderDetl.getStandby1());
             generalout_b = new ic_generalout_b();
@@ -453,7 +568,8 @@
             generalout_b.setCsourcetype("4K-01");
             generalout_b.setCsourcebillhid(cspecialhid);
             generalout_b.setCmaterialvid(orderDetl.getMatnr());
-            //generalout_b.setCstateid(nccScPcdaWms.getVcode());
+            generalout_b.setCstateid(nccScPcdaWms.getPkStorestate());
+            generalout_b.setPk_batchcode(nccScPcdaWms.getPkBatchcode());
             StoreType storeType = storeTypeService.selectOne(new EntityWrapper<StoreType>().eq("store_id", orderDetl.getStandby1()));
             generalout_b.setCdptvid(storeType.getDepartmentId());
             generalout_b.setBillmaker(renyuan);
@@ -472,16 +588,19 @@
     }
 
 
-    private Boolean reportApiLog(Object data, String docType, String url, String path) {
-        String response = "";
-        boolean success = false;
+    private Boolean reportApiLog(Order order, Object process1, Object process2, Object response, String docType, String url, String path, Boolean success) {
+        HashMap<String, Object> request = new HashMap<>();
+        request.put("order", order);
+        request.put("process1", process1);
+        request.put("process2", process2);
+
         apiLogService.save(
                 docType,
                 url + path,
                 null,
                 "127.0.0.1",
-                JSON.toJSONString(data),
-                response,
+                JSON.toJSONString(request),
+                JSON.toJSONString(response),
                 success
         );
         return false;

--
Gitblit v1.9.1