From 6f01b51fc0770fda7787076caf0314be7a7f6656 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 27 六月 2025 10:58:21 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java |  523 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 471 insertions(+), 52 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 38c0b6d..178a672 100644
--- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
@@ -1,21 +1,19 @@
 package com.zy.asrs.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+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.service.ApiLogService;
-import com.zy.asrs.service.OrderService;
-import com.zy.asrs.service.ReportToThirdService;
-import com.zy.common.utils.Synchro;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.service.*;
 import com.zy.nc.SendUtil;
-import com.zy.nc.entity.NccSaleXsfhmxWms;
+import com.zy.nc.entity.*;
+import com.zy.nc.service.NccSaleXsfhmxWmsService;
+import com.zy.nc.service.NccScPcdaWmsService;
 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;
@@ -32,9 +30,23 @@
 
     @Autowired
     private ApiLogService apiLogService;
-
     @Autowired
     private OrderService orderService;
+    @Autowired
+    private WrkDetlService wrkDetlService;
+    @Autowired
+    private InventoryCheckOrderService inventoryCheckOrderService;
+    @Autowired
+    private InventoryCheckOrderDetlService inventoryCheckOrderDetlService;
+
+    @Autowired
+    private StoreTypeService storeTypeService;
+
+    @Autowired
+    private NccScPcdaWmsService nccScPcdaWmsService;
+
+    @Autowired
+    private NccSaleXsfhmxWmsService nccSaleXsfhmxWmsService;
 
     @Value("${NYNC.ip}")
     private String nyncIp;
@@ -45,65 +57,143 @@
     @Value("${NYNC.saveRefDelivery}")
     private String saveRefDelivery;
 
+    @Value("${NYNC.saveRefWhsTrans}")
+    private String saveRefWhsTrans;
+
+    @Value("${NYNC.invcountAdd}")
+    private String invcountAdd;
+
+    @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;
+        String memo = order.getMemo();
+        String remark = "";
         try {
-            switch (order.getDocType().toString()) {
-                case "35":
-                    //缁勮瀵硅薄鏁版嵁
-                    Map<String, Object> data = new HashMap<String, Object>();
-                    SaleOutHeadVO saleOutHeadVO = new SaleOutHeadVO();
-                    saleOutHeadVO.setPk_org("FYT");
-                    saleOutHeadVO.setCwarehouseid("610101");
-                    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-01");
-                            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.setNnum(orderDetl.getQty());
-                        saleOutBodyVOList.add(saleOutBodyVO);
-                    }
-                    data.put("SaleOutHeadVO", saleOutHeadVO);
-                    data.put("SaleOutBodyVO", saleOutBodyVOList);
+            switch (order.getDocType$().toString()) {
+                case "閿�鍞��璐�":
+                    process1 = processXSFH(orderDetls, true);
                     //鍙戦�佽姹�
-                    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;
+                    } else {
+                        remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
                     }
                     break;
-                case "浜ф垚鍝佸叆搴�":
+                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 "杈呮枡閲囪喘鍏ュ簱":
+                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;
+                    } else {
+                        remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
+                    }
                     break;
-                case "杈呮枡鍙婃垚鍝佽浆搴�":
+                case "閲囪喘鍒拌揣":
+                    //涓嶉渶瑕佷笂鎶ヤ簡
+                    step = 10;
+//                    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;
+//                    } else {
+//                        remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
+//                    }
                     break;
-                case "鑷姩鍖呰鍏ュ簱":
+                case "杞簱-鍑哄簱":
+                    if (step == 1) {
+                        process2 = processGENERALOUT2(orderDetls, order.getOperMemb(), order.getItemId(), memo);
+                        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 {
+                            remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
+                        }
+                    } 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()) {
+                            step = 1;
+                            log.info("杞簱-鍑哄簱1response:{}", response);
+                            memo = response.getData().toString();
+
+                            process2 = processGENERALOUT2(orderDetls, order.getOperMemb(), order.getItemId(), memo);
+                            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 {
+                                remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
+                            }
+                        }
+                    }
                     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;
+                    } else {
+                        remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
+                    }
                     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, memo, remark)) {
                     throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
                 }
             }
@@ -116,6 +206,335 @@
 
     }
 
+    @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;
+        }
+    }
+
+    @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;
+        }
+    }
+
+    private Object processXSFH(List<OrderDetl> orderDetls, Boolean flag) {
+        //缁勮瀵硅薄鏁版嵁
+        Map<String, Object> data = new HashMap<String, Object>();
+        SaleOutHeadVO saleOutHeadVO = new SaleOutHeadVO();
+        saleOutHeadVO.setPk_org("FYT");
+        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.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());
+            }
+            saleOutHeadVO.setCwarehouseid(orderDetl.getStandby1());
+
+            saleOutBodyVO.setVbatchcode(orderDetl.getBatch());
+            saleOutBodyVO.setNshouldnum(flag ? -orderDetl.getQty() : orderDetl.getQty());
+            saleOutBodyVO.setNnum(flag ? -orderDetl.getQty() : orderDetl.getQty());
+            saleOutBodyVOList.add(saleOutBodyVO);
+        }
+        data.put("SaleOutHeadVO", saleOutHeadVO);
+        data.put("SaleOutBodyVO", saleOutBodyVOList);
+        return data;
+    }
+
+    private Object processTKRK(String matnr,String batch, String orderNo, Double anfme) {
+//        EntityWrapper<NccXsckmxTkWms> wrapper = new EntityWrapper<>();
+//        wrapper.eq("VBATCHCODE", batch).eq("VSOURCEBILLCODE", orderNo);
+//        NccXsckmxTkWms nccXsckmxTkWms = nccXsckmxTkWmsService.selectOne(wrapper);
+//        if (null == nccXsckmxTkWms) {
+//            throw new CoolException("鏈壘鍒版鏉$爜");
+//        }
+
+        NccSaleXsfhmxWms nccSaleXsfhmxWms = nccSaleXsfhmxWmsService.selectOne(new EntityWrapper<NccSaleXsfhmxWms>()
+                .eq("VBILLCODE", orderNo)
+                .eq("WLBM", matnr)
+        );
+        if(null == nccSaleXsfhmxWms) {
+            throw new CoolException("鏈壘鍒伴攢鍞崟鎹�");
+        }
+
+        //缁勮瀵硅薄鏁版嵁
+        Map<String, Object> data = new HashMap<String, Object>();
+        SaleOutHeadVO saleOutHeadVO = new SaleOutHeadVO();
+        saleOutHeadVO.setPk_org("FYT");
+        SaleOutBodyVO saleOutBodyVO = null;
+        List<SaleOutBodyVO> saleOutBodyVOList = new ArrayList<>();
+
+        saleOutBodyVO = new SaleOutBodyVO();
+        saleOutBodyVO.setCsourcetype("4331");
+        saleOutBodyVO.setCsourcebillbid(nccSaleXsfhmxWms.getCdeliverybid());
+        saleOutBodyVO.setCsourcebillhid(nccSaleXsfhmxWms.getCdeliveryid());
+        saleOutHeadVO.setCwarehouseid(nccSaleXsfhmxWms.getFhckbm());
+
+        saleOutBodyVO.setVbatchcode(batch);
+        saleOutBodyVO.setNnum(anfme * -1);
+        saleOutBodyVOList.add(saleOutBodyVO);
+
+        data.put("SaleOutHeadVO", saleOutHeadVO);
+        data.put("SaleOutBodyVO", saleOutBodyVOList);
+        return data;
+    }
+
+    private Object processInvcount(InventoryCheckOrder checkOrder) {
+        List<InventoryCheckOrderDetl> inventoryCheckOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>()
+                .eq("order_no", checkOrder.getOrderNo()));
+        if (inventoryCheckOrderDetls.isEmpty()) {
+            throw new CoolException("鐩樼偣鏄庣粏涓嶅瓨鍦�");
+        }
+
+        //缁勮瀵硅薄鏁版嵁
+        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槑缁嗕笉瀛樺湪");
+            }
+
+            cwarehouseid = wrkDetls.get(0).getStandby1();
+
+            InvCountBodyVO invCountBodyVO = new InvCountBodyVO();
+            invCountBodyVO.setCmaterialoid(inventoryCheckOrderDetl.getMatnr());
+            invCountBodyVO.setVbatchcode(inventoryCheckOrderDetl.getBatch());
+            invCountBodyVO.setNcountastnum(inventoryCheckOrderDetl.getCheckAnfme());
+            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", "2");
+        data.put("splr", "1");
+
+        ArrayList<Map<String, Object>> list = new ArrayList<>();
+        list.add(data);
+        return list;
+    }
+
+    private Object processZKRK(List<OrderDetl> orderDetls) {
+        //缁勮瀵硅薄鏁版嵁
+        Map<String, Object> data = new HashMap<String, Object>();
+        GeneralInHeadVO generalInHeadVO = new GeneralInHeadVO();
+        generalInHeadVO.setPk_org("FYT");
+        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());
+
+            }
+            generalInHeadVO.setCwarehouseid(orderDetl.getStandby1());
+            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 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_h.setCwarehouseid(orderDetl.getStandby1());
+            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;
+    }
+
+
+    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.setCotherwhid(order.getItemId());
+        whsTransBillHeaderVO.setCtrantypeid("4K-01");
+        WhsTransBillBodyVO whsTransBillBodyVO = null;
+        List<WhsTransBillBodyVO> whsTransBillBodyVOS = new ArrayList<>();
+        for (OrderDetl orderDetl : orderDetls) {
+            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());
+            }
+
+            whsTransBillBodyVO = new WhsTransBillBodyVO();
+            whsTransBillBodyVO.setCstateid(nccScPcdaWms.getPkBatchcode());
+
+            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.setCwarehouseid(orderDetl.getStandby1());
+            whsTransBillBodyVOS.add(whsTransBillBodyVO);
+        }
+        data.put("WhsTransBillHeaderVO", whsTransBillHeaderVO);
+        data.put("WhsTransBillBodyVO", whsTransBillBodyVOS);
+        return data;
+    }
+
+    /**
+     * @param orderDetls
+     * @return
+     */
+    private Object processGENERALOUT2(List<OrderDetl> orderDetls, String renyuan, String rukucangku, 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();
+        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 (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());
+//            }
+            OrderDetl orderDetl = orderDetls.get(i);
+            generalout_h.setCwarehouseid(orderDetl.getStandby1());
+            generalout_b = new ic_generalout_b();
+            generalout_b.setCsourcebillbid(s.get(i));
+            generalout_b.setCsourcetype("4K-01");
+            generalout_b.setCsourcebillhid(cspecialhid);
+            generalout_b.setCmaterialvid(orderDetl.getMatnr());
+            //generalout_b.setCstateid(nccScPcdaWms.getVcode());
+            StoreType storeType = storeTypeService.selectOne(new EntityWrapper<StoreType>().eq("store_id", orderDetl.getStandby1()));
+            generalout_b.setCdptvid(storeType.getDepartmentId());
+            generalout_b.setBillmaker(renyuan);
+            StoreType storeType2 = storeTypeService.selectOne(new EntityWrapper<StoreType>().eq("store_id", rukucangku));
+            generalout_b.setCotherwhid(rukucangku);
+            generalout_b.setCothercalbodyvid(storeType2.getDepartmentId());
+
+            //generalout_b.setNshouldassistnum(orderDetl.getQty());
+            generalout_b.setNnum(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