From b9d80dfdb1cef36c9edb8bf6b2fdf9e6e1708d2b Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期一, 26 五月 2025 16:18:24 +0800
Subject: [PATCH] 13

---
 src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java |  332 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 303 insertions(+), 29 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 d01e15d..e668565 100644
--- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
@@ -11,14 +11,18 @@
 import com.zy.asrs.service.OrderService;
 import com.zy.asrs.service.ReportToThirdService;
 import com.zy.nc.SendUtil;
+import com.zy.nc.entity.NccCgCgdhdWms;
+import com.zy.nc.entity.NccSaleDbddWms;
+import com.zy.nc.entity.NccSaleXsfhmxWms;
+import com.zy.nc.entity.NccScZkmxbWms;
 import com.zy.nc.util.NcResultMessage;
-import com.zy.nc.vo.SaleOutBodyVO;
-import com.zy.nc.vo.SaleOutHeadVO;
+import com.zy.nc.vo.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -42,55 +46,118 @@
     @Value("${NYNC.saveRefDelivery}")
     private String saveRefDelivery;
 
+    @Value("${NYNC.saveRefWhsTrans}")
+    private String saveRefWhsTrans;
+
+    @Value("${NYNC.purchasein}")
+    private String purchasein;
+
+    @Value("${NYNC.whstrans}")
+    private String whstrans;
+
+    @Value("${NYNC.generalout}")
+    private String generalout;
+
+    @Value("${NYNC.dbdd}")
+    private String dbdd;
+
 
     @Override
     public void report(Order order, List<OrderDetl> orderDetls, DocType docType) {
-        Boolean http = false;
+        int step = (Cools.isEmpty(order.getStep()) || order.getStep() == 0) ? 0 : order.getStep();
         NcResultMessage response = null;
+        Object process1 = null;
+        Object process2 = null;
         try {
-            switch (order.getDocType().toString()) {
+            switch (order.getDocType$().toString()) {
                 case "閿�鍞彂璐�":
-                    //缁勮瀵硅薄鏁版嵁
-                    Map<String, Object> data = new HashMap<String, Object>();
-                    SaleOutHeadVO saleOutHeadVO = new SaleOutHeadVO();
-                    saleOutHeadVO.setPk_org("FYT");
-                    saleOutHeadVO.setCwarehouseid("6101");
-                    SaleOutBodyVO saleOutBodyVO = null;
-                    for (OrderDetl orderDetl : orderDetls) {
-                        saleOutBodyVO = new SaleOutBodyVO();
-                        saleOutBodyVO.setCsourcebillhid("1001A1100000027XNSH2");
-                        saleOutBodyVO.setCsourcebillbid("1001A1100000027YFC8U");
-                        saleOutBodyVO.setCsourcetype("4331-01");
-                    }
-                    data.put("saleOutHeadVO", saleOutHeadVO);
-                    data.put("saleOutBodyVO", saleOutBodyVO);
+                    process1 = processXSFH(orderDetls);
                     //鍙戦�佽姹�
-                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + port, saveRefDelivery, JSONObject.toJSONString(data));
+                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1));
                     if (!Cools.isEmpty(response) && response.isSuccess()) {
-                        log.info("response:{}", response);
-                        http = true;
+                        log.info("閿�鍞彂璐esponse:{}", response);
+                        step = 10;
                     }
                     break;
-                case "浜ф垚鍝佸叆搴�":
+                case "杞簱-鍏ュ簱":
+                    process1 = processZKRK(orderDetls);
+                    //鍙戦�佽姹�
+                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefWhsTrans, JSONObject.toJSONString(process1));
+                    if (!Cools.isEmpty(response) && response.isSuccess()) {
+                        log.info("杞簱-鍏ュ簱response:{}", response);
+                        step = 10;
+                    }
                     break;
-                case "杈呮枡閲囪喘鍏ュ簱":
+                case "閲囪喘鍒拌揣":
+                    process1 = processCGDH(orderDetls);
+                    List<Object> cg = new ArrayList<>();
+                    cg.add(process1);
+                    //鍙戦�佽姹�
+                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, purchasein, JSONObject.toJSONString(cg));
+                    if (!Cools.isEmpty(response) && response.isSuccess()) {
+                        log.info("閲囪喘鍒拌揣response:{}", response);
+                        step = 10;
+                    }
                     break;
-                case "杈呮枡鍙婃垚鍝佽浆搴�":
+                case "杞簱-鍑哄簱":
+                    if (step == 1) {
+                        process2 = processGENERALOUT2(orderDetls);
+                        List<Object> zkck2 = new ArrayList<>();
+                        zkck2.add(process2);
+                        //鍙戦�佽姹�
+                        response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, generalout, JSONObject.toJSONString(zkck2));
+                        if (!Cools.isEmpty(response) && response.isSuccess()) {
+                            log.info("杞簱-鍑哄簱2response:{}", response);
+                            step = 10;
+                        }
+                    } else {
+                        process1 = processZKCK(order, orderDetls);
+                        List<Object> zkck1 = new ArrayList<>();
+                        zkck1.add(process1);
+                        //鍙戦�佽姹�
+                        response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, whstrans, JSONObject.toJSONString(zkck1));
+                        if (!Cools.isEmpty(response) && response.isSuccess()) {
+                            log.info("杞簱-鍑哄簱1response:{}", response);
+
+                            process2 = processGENERALOUT2(orderDetls);
+                            List<Object> zkck2 = new ArrayList<>();
+                            zkck2.add(process2);
+                            //鍙戦�佽姹�
+                            response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, generalout, JSONObject.toJSONString(zkck2));
+                            if (!Cools.isEmpty(response) && response.isSuccess()) {
+                                log.info("杞簱-鍑哄簱2response:{}", response);
+                                step = 10;
+                            }
+                        } else {
+                            step = 1;
+                        }
+                    }
                     break;
-                case "鑷姩鍖呰鍏ュ簱":
-                    break;
-                case "鍐呴儴璋冩嫧":
+                case "闆嗗洟鍐呴儴璋冩嫧":
+                    process1 = processDBDD(orderDetls);
+                    //鍙戦�佽姹�
+                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, dbdd, JSONObject.toJSONString(process1));
+                    if (!Cools.isEmpty(response) && response.isSuccess()) {
+                        log.info("闆嗗洟鍐呴儴璋冩嫧response:{}", response);
+                        step = 10;
+                    }
                     break;
                 default:
-                    break;
+                    throw new CoolException("涓嶈兘璇嗗埆鐨勫崟鎹被鍨�");
             }
-            if (http) {
+            if (step == 10) {
                 // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
                 if (!orderService.updateSettle(order.getId(), 6L, null)) {
                     throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
                 }
+            } else if (step != 0) {
+                // 淇敼璁㈠崟鐘舵�� 鍋氭爣璁�
+                if (!orderService.updateSettleStep(order.getId(), 4L, null, step)) {
+                    throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+                }
             }
         } catch (Exception e) {
+            e.printStackTrace();
             throw new CoolException("璋冪敤鎺ュ彛鎶ラ敊锛岃鑱旂郴绠$悊鍛�");
         } finally {
             reportApiLog(response, order.getDocType$(), nyncIp, saveRefDelivery);
@@ -98,6 +165,213 @@
 
     }
 
+
+    private Object processXSFH(List<OrderDetl> orderDetls) {
+        //缁勮瀵硅薄鏁版嵁
+        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) {
+            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.setCsourcebillbid(nccSaleXsfhmxWms.getCdeliverybid());
+                saleOutBodyVO.setCsourcebillhid(nccSaleXsfhmxWms.getCdeliveryid());
+                saleOutHeadVO.setVdef2(nccSaleXsfhmxWms.getVdef2());
+                saleOutHeadVO.setVdef3(nccSaleXsfhmxWms.getVdef3());
+                saleOutHeadVO.setVdef4(nccSaleXsfhmxWms.getVdef4());
+                saleOutHeadVO.setVdef7(nccSaleXsfhmxWms.getVdef7());
+                saleOutHeadVO.setVdef8(nccSaleXsfhmxWms.getVdef8());
+                saleOutHeadVO.setVdef13(nccSaleXsfhmxWms.getVdef13());
+                saleOutHeadVO.setVdef14(nccSaleXsfhmxWms.getVdef14());
+            }
+            saleOutBodyVO.setVbatchcode(orderDetl.getBatch());
+            saleOutBodyVO.setNshouldnum(orderDetl.getAnfme());
+            saleOutBodyVO.setNnum(orderDetl.getQty());
+            saleOutBodyVOList.add(saleOutBodyVO);
+        }
+        data.put("SaleOutHeadVO", saleOutHeadVO);
+        data.put("SaleOutBodyVO", saleOutBodyVOList);
+        return data;
+    }
+
+    private Object processZKRK(List<OrderDetl> orderDetls) {
+        //缁勮瀵硅薄鏁版嵁
+        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) {
+            generalInBodyVO = new GeneralInBodyVO();
+            String remark = orderDetl.getRemark();
+            if (!Cools.isEmpty(remark)) {
+                NccScZkmxbWms nccScZkmxbWms = JSONObject.parseObject(remark, NccScZkmxbWms.class);
+                generalInBodyVO.setCsourcebillbid(nccScZkmxbWms.getCspecialbid());
+                generalInBodyVO.setCsourcebillhid(nccScZkmxbWms.getCspecialhid());
+
+                generalInBodyVO.setNnum(orderDetl.getQty());
+                generalInBodyVO.setNshouldnum(orderDetl.getAnfme());
+                generalInBodyVO.setCsourcetype(nccScZkmxbWms.getZklxbm());
+            }
+            generalInBodyVOS.add(generalInBodyVO);
+        }
+        data.put("GeneralInHeadVO", generalInHeadVO);
+        data.put("GeneralInBodyVO", generalInBodyVOS);
+        return data;
+    }
+
+
+    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<>();
+        for (OrderDetl orderDetl : orderDetls) {
+            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");
+            }
+            iaIjBillBS.add(iaIjBillB);
+        }
+        data.put("ia_ijbill", iaIjBill);
+        data.put("ia_ijbill_b", iaIjBillBS);
+        return data;
+    }
+
+    private Object processZKCK(Order order, List<OrderDetl> orderDetls) {
+        //缁勮瀵硅薄鏁版嵁
+        Map<String, Object> data = new HashMap<String, Object>();
+        WhsTransBillHeaderVO whsTransBillHeaderVO = new WhsTransBillHeaderVO();
+        whsTransBillHeaderVO.setPk_org("FYT");
+        whsTransBillHeaderVO.setCwarehouseid(order.getItemId());
+        whsTransBillHeaderVO.setCtrantypeid("4K-01");
+        WhsTransBillBodyVO whsTransBillBodyVO = null;
+        List<WhsTransBillBodyVO> whsTransBillBodyVOS = new ArrayList<>();
+        for (OrderDetl orderDetl : orderDetls) {
+            whsTransBillBodyVO = new WhsTransBillBodyVO();
+            String remark = orderDetl.getRemark();
+            //if (!Cools.isEmpty(remark)) {
+            //NccSaleXsfhmxWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleXsfhmxWms.class);
+            whsTransBillBodyVO.setNnum(orderDetl.getQty());
+            whsTransBillBodyVO.setCmaterialoid(orderDetl.getMatnr());
+            whsTransBillBodyVO.setVbatchcode(orderDetl.getBatch());
+            //}
+            whsTransBillHeaderVO.setCotherbizid(orderDetl.getStandby1());
+            whsTransBillBodyVOS.add(whsTransBillBodyVO);
+        }
+        data.put("WhsTransBillHeaderVO", whsTransBillHeaderVO);
+        data.put("WhsTransBillBodyVO", whsTransBillBodyVOS);
+        return data;
+    }
+
+
+    private Object processCGDH(List<OrderDetl> orderDetls) {
+        //缁勮瀵硅薄鏁版嵁
+        Map<String, Object> data = new HashMap<String, Object>();
+        ic_purchasein_h ic_purchasein_h = new ic_purchasein_h();
+        ic_purchasein_h.setPk_org("FYT");
+        ic_purchasein_h.setCwarehouseid("6301");
+        ic_purchasein_h.setCfanaceorgoid("FYT");
+        ic_purchasein_b ic_purchasein_b = null;
+        List<ic_purchasein_b> ic_purchasein_bs = new ArrayList<>();
+        for (OrderDetl orderDetl : orderDetls) {
+            ic_purchasein_b = new ic_purchasein_b();
+            String remark = orderDetl.getRemark();
+            if (!Cools.isEmpty(remark)) {
+                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());
+                ic_purchasein_b.setCmaterialvid(orderDetl.getMatnr());
+                ic_purchasein_b.setNnum(orderDetl.getQty());
+                ic_purchasein_b.setCsourcetype(nccCgCgdhdWms.getDhlxbm());
+                ic_purchasein_b.setVbatchcode(orderDetl.getBatch());
+            }
+            ic_purchasein_bs.add(ic_purchasein_b);
+        }
+        data.put("ic_purchasein_h", ic_purchasein_h);
+        data.put("ic_purchasein_b", ic_purchasein_bs);
+        return data;
+    }
+
+    /**
+     * @param orderDetls
+     * @return
+     */
+    private Object processGENERALOUT(List<OrderDetl> orderDetls) {
+        //缁勮瀵硅薄鏁版嵁
+        Map<String, Object> data = new HashMap<String, Object>();
+        ic_generalout_h generalout_h = new ic_generalout_h();
+        generalout_h.setPk_org("FYT");
+        generalout_h.setCwarehouseid("6101");
+        ic_generalout_b generalout_b = null;
+        List<ic_generalout_b> ic_purchasein_bs = new ArrayList<>();
+        for (OrderDetl orderDetl : orderDetls) {
+            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());
+            }
+            ic_purchasein_bs.add(generalout_b);
+        }
+        data.put("ic_generalout_h", generalout_h);
+        data.put("ic_generalout_b", ic_purchasein_bs);
+        return data;
+    }
+
+
+    /**
+     * @param orderDetls
+     * @return
+     */
+    private Object processGENERALOUT2(List<OrderDetl> orderDetls) {
+        //缁勮瀵硅薄鏁版嵁
+        Map<String, Object> data = new HashMap<String, Object>();
+        ic_generalout_h generalout_h = new ic_generalout_h();
+        generalout_h.setPk_org("FYT");
+        generalout_h.setCwarehouseid("6101");
+        ic_generalout_b generalout_b = null;
+        List<ic_generalout_b> ic_purchasein_bs = new ArrayList<>();
+        for (OrderDetl orderDetl : orderDetls) {
+            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());
+            }
+            ic_purchasein_bs.add(generalout_b);
+        }
+        data.put("ic_generalout_h", generalout_h);
+        data.put("ic_generalout_b", ic_purchasein_bs);
+        return data;
+    }
+
+
     private Boolean reportApiLog(Object data, String docType, String url, String path) {
         String response = "";
         boolean success = false;

--
Gitblit v1.9.1