From 7278054615d1fc15d398312d3c457de76a8da7c6 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 30 七月 2025 14:42:13 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java |  150 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 119 insertions(+), 31 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 4ede0a7..013a2ca 100644
--- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
@@ -11,6 +11,7 @@
 import com.zy.asrs.utils.MatUtils;
 import com.zy.nc.SendUtil;
 import com.zy.nc.entity.*;
+import com.zy.nc.service.NccSaleDbddWmsService;
 import com.zy.nc.service.NccSaleXsfhmxWmsService;
 import com.zy.nc.service.NccScPcdaWmsService;
 import com.zy.nc.util.NcResultMessage;
@@ -49,6 +50,8 @@
 
     @Autowired
     private NccSaleXsfhmxWmsService nccSaleXsfhmxWmsService;
+    @Autowired
+    private NccSaleDbddWmsService  nccSaleDbddWmsService;
 
     @Value("${NYNC.ip}")
     private String nyncIp;
@@ -86,6 +89,7 @@
         Object process2 = null;
         String memo = order.getMemo();
         String remark = "";
+        boolean success = false;
         log.info("璁㈠崟寮�濮嬩笂鎶�:{}", JSON.toJSONString(order));
         try {
             switch (order.getDocType$().toString()) {
@@ -96,6 +100,7 @@
                     if (!Cools.isEmpty(response) && response.isSuccess()) {
                         log.info("閿�鍞彂璐esponse:{}", response);
                         step = 10;
+                        success = true;
                     } else {
                         remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                     }
@@ -107,6 +112,7 @@
                     if (!Cools.isEmpty(response) && response.isSuccess()) {
                         log.info("閿�鍞彂璐esponse:{}", response);
                         step = 10;
+                        success = true;
                     } else {
                         remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                     }
@@ -118,6 +124,7 @@
                     if (!Cools.isEmpty(response) && response.isSuccess()) {
                         log.info("杞簱-鍏ュ簱response:{}", response);
                         step = 10;
+                        success = true;
                     } else {
                         remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                     }
@@ -147,6 +154,7 @@
                         if (!Cools.isEmpty(response) && response.isSuccess()) {
                             log.info("杞簱-鍑哄簱2response:{}", response);
                             step = 10;
+                            success = true;
                         } else {
                             remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                         }
@@ -169,6 +177,7 @@
                             if (!Cools.isEmpty(response) && response.isSuccess()) {
                                 log.info("杞簱-鍑哄簱2response:{}", response);
                                 step = 10;
+                                success = true;
                             } else {
                                 remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                             }
@@ -182,6 +191,7 @@
                     if (!Cools.isEmpty(response) && response.isSuccess()) {
                         log.info("闆嗗洟鍐呴儴璋冩嫧response:{}", response);
                         step = 10;
+                        success = true;
                     } else {
                         remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                     }
@@ -204,24 +214,52 @@
             e.printStackTrace();
             throw new CoolException("璋冪敤鎺ュ彛鎶ラ敊锛岃鑱旂郴绠$悊鍛�");
         } finally {
-            reportApiLog(response, order.getDocType$(), nyncIp, saveRefDelivery);
+            reportApiLog(order, process1, process2, response, order.getDocType$(), nyncIp, saveRefDelivery, success);
         }
 
     }
 
     @Override
     public boolean reportTkrk(String matnr, String batch, String orderNo, Double anfme) {
-        Object process1 = processTKRK(matnr, batch, orderNo, anfme);
-        //鍙戦�佽姹�
-        NcResultMessage response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, 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;
+        Object process1 = null;
+        NcResultMessage response1 = null;
+        boolean success1 = false;
+        try {
+            process1 = processTKRK(matnr, batch, orderNo, anfme);
+            //鍙戦�佽姹�
+            response1 = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1));
+            log.info("閫�搴撳叆搴搑esponse:{}", response1);
+            if (!Cools.isEmpty(response1) && response1.isSuccess()) {
+                log.info("閫�搴撳叆搴搑esponse:{}", response1);
+                success1 = true;
+                return true;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            reportApiLog(null, process1, process1, response1, "TKRK", nyncIp, saveRefDelivery, success1);
         }
+
+        Object process2 = null;
+        NcResultMessage response2 = null;
+        boolean success2 = false;
+        try {
+            process2 = processDBTK(matnr, batch, orderNo, anfme);
+            //鍙戦�佽姹�
+            response2 = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, dbdd, JSONObject.toJSONString(process2));
+            log.info("閫�搴撳叆搴搑esponse:{}", response2);
+            if (!Cools.isEmpty(response2) && response2.isSuccess()) {
+                log.info("閫�搴撳叆搴搑esponse:{}", response2);
+                success2 = true;
+                return true;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            reportApiLog(null, process2, process2, response2, "DBRK", nyncIp, dbdd, success2);
+        }
+
+        return false;
     }
 
     @Override
@@ -347,6 +385,43 @@
         return data;
     }
 
+    private Object processDBTK(String matnr, String batch, String orderNo, Double anfme) {
+        List<NccSaleDbddWms> nccSaleDbddWmsList = nccSaleDbddWmsService.selectList(new EntityWrapper<NccSaleDbddWms>()
+                .eq("wlbm", matnr)
+                .eq("vbillcode", orderNo)
+        );
+
+        if (nccSaleDbddWmsList.isEmpty()) {
+            throw new CoolException("璋冩嫧璁㈠崟ERP鏁版嵁涓虹┖");
+        }
+
+        NccSaleDbddWms nccSaleDbddWms = nccSaleDbddWmsList.get(0);
+
+        //缁勮瀵硅薄鏁版嵁
+        Map<String, Object> data = new HashMap<String, Object>();
+
+        List<IaIjBillB> bids = new ArrayList<>();
+        IaIjBillB iaIjBillB = new IaIjBillB();
+        NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>().eq("vbatchcode", batch).eq("wlbm", matnr));
+        if (nccScPcdaWms == null) {
+            throw new CoolException("鎵规[{}]鐗╂枡[{}]鏈壘鍒�" + batch + "-" + matnr);
+        }
+
+        Double weight = MatUtils.calcWeight(matnr, anfme);
+        iaIjBillB.setBid(nccSaleDbddWms.getCbill_bid());
+        iaIjBillB.setNassistnum(weight);
+        iaIjBillB.setNnum(anfme * -1);
+        iaIjBillB.setVbatchcode(batch);
+        iaIjBillB.setClocationid("");
+        iaIjBillB.setCstateid(nccScPcdaWms.getVcode());
+
+        bids.add(iaIjBillB);
+
+        data.put("hid", nccSaleDbddWms.getCbill_bid());
+        data.put("bids", bids);
+        return data;
+    }
+
     private Object processInvcount(String matnr, String batch, String cwarehouseid) {
         List<InventoryCheckOrderDetl> inventoryCheckOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
                 .eq("matnr", matnr)
@@ -434,26 +509,36 @@
     private Object processDBDD(List<OrderDetl> orderDetls) {
         //缁勮瀵硅薄鏁版嵁
         Map<String, Object> data = new HashMap<String, Object>();
-        IaIjBill iaIjBill = new IaIjBill();
-        iaIjBill.setPk_org("FYT");
-        //iaIjBill.setCwarehouseid("6101");
-        IaIjBillB iaIjBillB = null;
-        List<IaIjBillB> iaIjBillBS = new ArrayList<>();
+
+        String hid = "";
+        List<IaIjBillB> bids = new ArrayList<>();
         for (OrderDetl orderDetl : orderDetls) {
-            iaIjBillB = new IaIjBillB();
+            if (orderDetl.getQty() <= 0) {
+                continue;
+            }
+            IaIjBillB iaIjBillB = new IaIjBillB();
             String remark = orderDetl.getRemark();
             if (!Cools.isEmpty(remark)) {
-                NccSaleDbddWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleDbddWms.class);
-                iaIjBillB.setCinventoryid(nccSaleXsfhmxWms.getWlbm());
-                iaIjBillB.setCinventoryvid(nccSaleXsfhmxWms.getWlbm());
-                iaIjBillB.setCsrcid(nccSaleXsfhmxWms.getCbillid());
-                iaIjBillB.setNnum(orderDetl.getQty().intValue() + "");
-                iaIjBillB.setPk_org("FYT");
+                NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>().eq("vbatchcode", orderDetl.getBatch()).eq("wlbm", orderDetl.getMatnr()));
+                if (nccScPcdaWms == null) {
+                    throw new CoolException("鎵规[{}]鐗╂枡[{}]鏈壘鍒�" + orderDetl.getBatch() + "-" + orderDetl.getMatnr());
+                }
+
+                Double weight = MatUtils.calcWeight(orderDetl.getMatnr(), orderDetl.getQty());
+                NccSaleDbddWms nccSaleDbddWms = JSONObject.parseObject(remark, NccSaleDbddWms.class);
+                iaIjBillB.setBid(nccSaleDbddWms.getCbill_bid());
+                iaIjBillB.setNassistnum(weight);
+                iaIjBillB.setNnum(orderDetl.getQty());
+                iaIjBillB.setVbatchcode(orderDetl.getBatch());
+                iaIjBillB.setClocationid("");
+                iaIjBillB.setCstateid(nccScPcdaWms.getVcode());
+
+                hid = nccSaleDbddWms.getCbillid();
             }
-            iaIjBillBS.add(iaIjBillB);
+            bids.add(iaIjBillB);
         }
-        data.put("ia_ijbill", iaIjBill);
-        data.put("ia_ijbill_b", iaIjBillBS);
+        data.put("hid", hid);
+        data.put("bids", bids);
         return data;
     }
 
@@ -581,16 +666,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