From 6d3b7e69524cdc6fd4c44fe9f37661a19a56c6ff Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期二, 03 六月 2025 21:08:32 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java |   91 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 65 insertions(+), 26 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 e668565..b00c233 100644
--- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
@@ -68,15 +69,30 @@
         NcResultMessage response = null;
         Object process1 = null;
         Object process2 = null;
+        String memo = order.getMemo();
+        String remark = "";
         try {
             switch (order.getDocType$().toString()) {
-                case "閿�鍞彂璐�":
-                    process1 = processXSFH(orderDetls);
+                case "閿�鍞��璐�":
+                    process1 = processXSFH(orderDetls, true);
                     //鍙戦�佽姹�
                     response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1));
                     if (!Cools.isEmpty(response) && response.isSuccess()) {
                         log.info("閿�鍞彂璐esponse:{}", response);
                         step = 10;
+                    } else {
+                        remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
+                    }
+                    break;
+                case "閿�鍞彂璐�":
+                    process1 = processXSFH(orderDetls, false);
+                    //鍙戦�佽姹�
+                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1));
+                    if (!Cools.isEmpty(response) && response.isSuccess()) {
+                        log.info("閿�鍞彂璐esponse:{}", response);
+                        step = 10;
+                    } else {
+                        remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                     }
                     break;
                 case "杞簱-鍏ュ簱":
@@ -86,6 +102,8 @@
                     if (!Cools.isEmpty(response) && response.isSuccess()) {
                         log.info("杞簱-鍏ュ簱response:{}", response);
                         step = 10;
+                    } else {
+                        remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                     }
                     break;
                 case "閲囪喘鍒拌揣":
@@ -97,11 +115,13 @@
                     if (!Cools.isEmpty(response) && response.isSuccess()) {
                         log.info("閲囪喘鍒拌揣response:{}", response);
                         step = 10;
+                    } else {
+                        remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                     }
                     break;
                 case "杞簱-鍑哄簱":
                     if (step == 1) {
-                        process2 = processGENERALOUT2(orderDetls);
+                        process2 = processGENERALOUT2(orderDetls, memo);
                         List<Object> zkck2 = new ArrayList<>();
                         zkck2.add(process2);
                         //鍙戦�佽姹�
@@ -109,6 +129,8 @@
                         if (!Cools.isEmpty(response) && response.isSuccess()) {
                             log.info("杞簱-鍑哄簱2response:{}", response);
                             step = 10;
+                        } else {
+                            remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                         }
                     } else {
                         process1 = processZKCK(order, orderDetls);
@@ -117,9 +139,11 @@
                         //鍙戦�佽姹�
                         response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, whstrans, JSONObject.toJSONString(zkck1));
                         if (!Cools.isEmpty(response) && response.isSuccess()) {
+                            step = 1;
                             log.info("杞簱-鍑哄簱1response:{}", response);
+                            memo = response.getData().toString();
 
-                            process2 = processGENERALOUT2(orderDetls);
+                            process2 = processGENERALOUT2(orderDetls, memo);
                             List<Object> zkck2 = new ArrayList<>();
                             zkck2.add(process2);
                             //鍙戦�佽姹�
@@ -127,9 +151,9 @@
                             if (!Cools.isEmpty(response) && response.isSuccess()) {
                                 log.info("杞簱-鍑哄簱2response:{}", response);
                                 step = 10;
+                            } else {
+                                remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                             }
-                        } else {
-                            step = 1;
                         }
                     }
                     break;
@@ -140,6 +164,8 @@
                     if (!Cools.isEmpty(response) && response.isSuccess()) {
                         log.info("闆嗗洟鍐呴儴璋冩嫧response:{}", response);
                         step = 10;
+                    } else {
+                        remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                     }
                     break;
                 default:
@@ -152,7 +178,7 @@
                 }
             } else if (step != 0) {
                 // 淇敼璁㈠崟鐘舵�� 鍋氭爣璁�
-                if (!orderService.updateSettleStep(order.getId(), 4L, null, step)) {
+                if (!orderService.updateSettleStep(order.getId(), 4L, null, step, memo, remark)) {
                     throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
                 }
             }
@@ -166,21 +192,23 @@
     }
 
 
-    private Object processXSFH(List<OrderDetl> orderDetls) {
+    private Object processXSFH(List<OrderDetl> orderDetls, Boolean flag) {
         //缁勮瀵硅薄鏁版嵁
         Map<String, Object> data = new HashMap<String, Object>();
         SaleOutHeadVO saleOutHeadVO = new SaleOutHeadVO();
         saleOutHeadVO.setPk_org("FYT");
-        saleOutHeadVO.setCwarehouseid("6101");
         SaleOutBodyVO saleOutBodyVO = null;
         List<SaleOutBodyVO> saleOutBodyVOList = new ArrayList<>();
         for (OrderDetl orderDetl : orderDetls) {
+            if (orderDetl.getQty() <= 0) {
+                continue;
+            }
             saleOutBodyVO = new SaleOutBodyVO();
             String remark = orderDetl.getRemark();
             if (!Cools.isEmpty(remark)) {
                 NccSaleXsfhmxWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleXsfhmxWms.class);
                 saleOutBodyVO.setCsourcetype("4331");
-                saleOutBodyVO.setClocationid("610101");
+                //saleOutBodyVO.setClocationid("610101");
                 saleOutBodyVO.setCsourcebillbid(nccSaleXsfhmxWms.getCdeliverybid());
                 saleOutBodyVO.setCsourcebillhid(nccSaleXsfhmxWms.getCdeliveryid());
                 saleOutHeadVO.setVdef2(nccSaleXsfhmxWms.getVdef2());
@@ -191,9 +219,11 @@
                 saleOutHeadVO.setVdef13(nccSaleXsfhmxWms.getVdef13());
                 saleOutHeadVO.setVdef14(nccSaleXsfhmxWms.getVdef14());
             }
+            saleOutHeadVO.setCwarehouseid(orderDetl.getStandby1());
+
             saleOutBodyVO.setVbatchcode(orderDetl.getBatch());
-            saleOutBodyVO.setNshouldnum(orderDetl.getAnfme());
-            saleOutBodyVO.setNnum(orderDetl.getQty());
+            saleOutBodyVO.setNshouldnum(flag ? -orderDetl.getQty() : orderDetl.getQty());
+            saleOutBodyVO.setNnum(flag ? -orderDetl.getQty() : orderDetl.getQty());
             saleOutBodyVOList.add(saleOutBodyVO);
         }
         data.put("SaleOutHeadVO", saleOutHeadVO);
@@ -206,7 +236,6 @@
         Map<String, Object> data = new HashMap<String, Object>();
         GeneralInHeadVO generalInHeadVO = new GeneralInHeadVO();
         generalInHeadVO.setPk_org("FYT");
-        generalInHeadVO.setCwarehouseid("6101");
         GeneralInBodyVO generalInBodyVO = null;
         List<GeneralInBodyVO> generalInBodyVOS = new ArrayList<>();
         for (OrderDetl orderDetl : orderDetls) {
@@ -220,7 +249,9 @@
                 generalInBodyVO.setNnum(orderDetl.getQty());
                 generalInBodyVO.setNshouldnum(orderDetl.getAnfme());
                 generalInBodyVO.setCsourcetype(nccScZkmxbWms.getZklxbm());
+
             }
+            generalInHeadVO.setCwarehouseid(orderDetl.getStandby1());
             generalInBodyVOS.add(generalInBodyVO);
         }
         data.put("GeneralInHeadVO", generalInHeadVO);
@@ -260,7 +291,7 @@
         Map<String, Object> data = new HashMap<String, Object>();
         WhsTransBillHeaderVO whsTransBillHeaderVO = new WhsTransBillHeaderVO();
         whsTransBillHeaderVO.setPk_org("FYT");
-        whsTransBillHeaderVO.setCwarehouseid(order.getItemId());
+        whsTransBillHeaderVO.setCotherwhid(order.getItemId());
         whsTransBillHeaderVO.setCtrantypeid("4K-01");
         WhsTransBillBodyVO whsTransBillBodyVO = null;
         List<WhsTransBillBodyVO> whsTransBillBodyVOS = new ArrayList<>();
@@ -273,7 +304,7 @@
             whsTransBillBodyVO.setCmaterialoid(orderDetl.getMatnr());
             whsTransBillBodyVO.setVbatchcode(orderDetl.getBatch());
             //}
-            whsTransBillHeaderVO.setCotherbizid(orderDetl.getStandby1());
+            whsTransBillHeaderVO.setCwarehouseid(orderDetl.getStandby1());
             whsTransBillBodyVOS.add(whsTransBillBodyVO);
         }
         data.put("WhsTransBillHeaderVO", whsTransBillHeaderVO);
@@ -298,7 +329,6 @@
                 NccCgCgdhdWms nccCgCgdhdWms = JSONObject.parseObject(remark, NccCgCgdhdWms.class);
                 ic_purchasein_h.setCvendorid(nccCgCgdhdWms.getGysbm());
                 ic_purchasein_h.setCtrantypeid(nccCgCgdhdWms.getDhlxbm());
-
 
                 ic_purchasein_b.setCsourcebillbid(nccCgCgdhdWms.getPkArriveorderB());
                 ic_purchasein_b.setCsourcebillhid(nccCgCgdhdWms.getPkArriveorder());
@@ -331,7 +361,7 @@
             String remark = orderDetl.getRemark();
             if (!Cools.isEmpty(remark)) {
                 NccSaleXsfhmxWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleXsfhmxWms.class);
-                generalout_b.setMaterialvid(orderDetl.getMatnr());
+                generalout_b.setCmaterialvid(orderDetl.getMatnr());
                 generalout_b.setNshouldassistnum(orderDetl.getQty());
                 generalout_b.setVbatchcode(orderDetl.getBatch());
             }
@@ -347,7 +377,16 @@
      * @param orderDetls
      * @return
      */
-    private Object processGENERALOUT2(List<OrderDetl> orderDetls) {
+    private Object processGENERALOUT2(List<OrderDetl> orderDetls, String memo) {
+        Object o = JSONObject.parseArray(memo).get(0);
+        JSONObject jsonObject = JSONObject.parseObject(o.toString());
+        String cspecialhid = JSONObject.parseObject(jsonObject.getString("ic.WhsTransBillHeaderVO")).getString("cspecialhid");
+        List<String> s = new ArrayList<>();
+        JSONArray objects = JSONObject.parseArray(jsonObject.getString("ic.WhsTransBillBodyVO"));
+        for (int i = 0; i < objects.size(); i++) {
+            s.add(objects.getJSONObject(i).getString("cspecialbid"));
+        }
+
         //缁勮瀵硅薄鏁版嵁
         Map<String, Object> data = new HashMap<String, Object>();
         ic_generalout_h generalout_h = new ic_generalout_h();
@@ -355,15 +394,15 @@
         generalout_h.setCwarehouseid("6101");
         ic_generalout_b generalout_b = null;
         List<ic_generalout_b> ic_purchasein_bs = new ArrayList<>();
-        for (OrderDetl orderDetl : orderDetls) {
+        for (int i = 0; i < orderDetls.size(); i++) {
+            OrderDetl orderDetl = orderDetls.get(i);
             generalout_b = new ic_generalout_b();
-            String remark = orderDetl.getRemark();
-            if (!Cools.isEmpty(remark)) {
-                NccSaleXsfhmxWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleXsfhmxWms.class);
-                generalout_b.setMaterialvid(orderDetl.getMatnr());
-                generalout_b.setNshouldassistnum(orderDetl.getQty());
-                generalout_b.setVbatchcode(orderDetl.getBatch());
-            }
+            generalout_b.setCsourcebillbid(s.get(i));
+            generalout_b.setCsourcetype("4K-01");
+            generalout_b.setCsourcebillhid(cspecialhid);
+            generalout_b.setCmaterialvid(orderDetl.getMatnr());
+            generalout_b.setNshouldassistnum(orderDetl.getQty());
+            generalout_b.setVbatchcode(orderDetl.getBatch());
             ic_purchasein_bs.add(generalout_b);
         }
         data.put("ic_generalout_h", generalout_h);

--
Gitblit v1.9.1