From 878014fe71ae76d4bfbc885f1daab8921c60f6ac Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期六, 13 十二月 2025 17:26:24 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java |  105 +++-
 src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java              |   35 +
 src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java  | 1111 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 1,213 insertions(+), 38 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
index 072e36d..722bf5e 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
@@ -50,6 +50,31 @@
     @Value("${erp.address.impurreceivebilldetl}")
     //杩涗粨閫氱煡鍗�
     private String imPurreceiveBillDetlAddress;
+    @Value("${erp.address.imSaloutbill}")
+    //閿�鍞嚭搴撳崟
+    private String imSaloutbill;
+    @Value("${erp.address.scpSalreturn}")
+    //閿�鍞��璐у崟
+    private String scpSalreturn;
+    @Value("${erp.address.scpSalreturnDetl}")
+    //閿�鍞��璐у崟
+    private String scpSalreturnDetl;
+    @Value("${erp.address.imMdcMftproorder}")
+    //鐢熶骇棰嗘枡鍗�
+    private String imMdcMftproorder;
+    @Value("${erp.address.imMdcMftreturnorder}")
+    //鐢熶骇閫�鏂欏崟
+    private String imMdcMftreturnorder;
+    @Value("${erp.address.imMdcMftfeedorder}")
+    //鐢熶骇琛ユ枡鍗�
+    private String imMdcMftfeedorder;
+    @Value("${erp.address.imProductinbill}")
+    //鐢熶骇杩涗粨鍗�
+    private String imProductinbill;
+    @Value("${erp.address.qcppManuinspec}")
+    //浜у搧妫�楠屽崟
+    private String qcppManuinspec;
+
     @Autowired
     private ApiLogService apiLogService;
 
@@ -131,7 +156,6 @@
                     path = orgAddress;
                     break;
                 case "PUR_RECEIVEBIll": //宸插鏍告敹鏂欏崟鏌ヨ
-//                    jsonObject.put("start_biztime", latestUpdateTime);//涓氬姟璧峰鏃ユ湡
                     jsonObject.put("start_biztime",  "2025-01-01 00:00:00");//涓氬姟璧峰鏃ユ湡
                     jsonObject.put("end_biztime", sdf1.format(now));//涓氬姟缁撴潫鏃ユ湡
                     jsonObject.put("billno", null);
@@ -142,16 +166,84 @@
                     jsonObject.put("supplier_number", null);
                     path = imPurreceiveBillAddress;
                     break;
+                case "SAL_OUTSTOCK"://閿�鍞嚭搴撳崟鏌ヨ
+                    path = imSaloutbill;
+                    jsonObject.put("modify_starttime",  latestUpdateTime);//涓氬姟璧峰鏃ユ湡
+                    jsonObject.put("billstatus",  "B");//鍗曟嵁鐘舵��
+                    jsonObject.put("modify_endtime",  sdf1.format(now));//涓氬姟璧峰鏃ユ湡
+                    break;
+                case "SAL_RETURNSTOCK"://閿�鍞��璐�
+                    path = scpSalreturn;
+                    jsonObject.put("start_modifytime",  "2025-11-25 00:00:00");//涓氬姟璧峰鏃ユ湡
+                    jsonObject.put("billstatus",  "B");//鍗曟嵁鐘舵��
+                    jsonObject.put("end_starttime",  sdf1.format(now));//涓氬姟璧峰鏃ユ湡
+                    break;
+                case "PRD_PickMtrl"://鐢熶骇棰嗘枡鍗�
+                    path = imMdcMftproorder;
+//                    jsonObject.put("start_modifytime",  "2025-11-25 00:00:00");
+//                    jsonObject.put("start_auditdate", "2025-11-25 00:00:00");
+                    jsonObject.put("start_createtime", "2025-11-25 00:00:00");
+                    jsonObject.put("end_createtime", sdf1.format(now));
+//                    jsonObject.put("end_auditdate", sdf1.format(now));
+//                    jsonObject.put("end_modifytime", sdf1.format(now));
+                    jsonObject.put("billno", null);
+                    jsonObject.put("billstatus", Arrays.asList("B","C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
+                    jsonObject.put("org_number", null);
+                    jsonObject.put("id", null);
+                    break;
+                case "PRD_ReturnMtrl"://鐢熶骇閫�鏂欏崟
+                    path = imMdcMftreturnorder;
+                    jsonObject.put("id", null);
+                    jsonObject.put("billno", null);
+                    jsonObject.put("org_number", null);
+                    jsonObject.put("billstatus", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
+                    jsonObject.put("start_createtime", "2025-11-25 00:00:00");
+                    jsonObject.put("end_createtime", sdf1.format(now));
+//                    jsonObject.put("start_modifytime",  "2025-11-25 00:00:00");
+//                    jsonObject.put("end_modifytime", sdf1.format(now));
+//                    jsonObject.put("start_auditdate", "2025-11-25 00:00:00");
+//                    jsonObject.put("end_auditdate", sdf1.format(now));
+                    break;
+                case "PRD_FeedMtrl"://鐢熶骇琛ユ枡鍗�
+                    path = imMdcMftfeedorder;
+                    jsonObject.put("id", null);
+                    jsonObject.put("billno", null);
+                    jsonObject.put("org_number", null);
+                    jsonObject.put("billstatus", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
+                    jsonObject.put("start_createtime", "2025-11-25 00:00:00");
+                    jsonObject.put("end_createtime", sdf1.format(now));
+//                    jsonObject.put("start_modifytime",  "2025-11-25 00:00:00");
+//                    jsonObject.put("end_modifytime", sdf1.format(now));
+//                    jsonObject.put("start_auditdate", "2025-11-25 00:00:00");
+//                    jsonObject.put("end_auditdate", sdf1.format(now));
+                    break;
+                case "PRD_MORPT"://鐢熶骇杩涗粨鍗�
+                    path = imProductinbill;
+                    jsonObject.put("billstatus", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
+                    jsonObject.put("modifytime_start", "2025-11-25 00:00:00");
+                    jsonObject.put("modifytime_end", sdf1.format(now));
+                    break;
+                case "STK_InspectionForm"://浜у搧妫�楠�
+                    path = qcppManuinspec;
+                    jsonObject.put("billstatus", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
+                    jsonObject.put("auditdate_start", "2025-11-25 00:00:00");
+                    jsonObject.put("auditdate_end", sdf1.format(now));
+                    break;
+            }
+            if(path == null){
+                continue;
             }
             JSONObject jsonObject1 = new JSONObject();
             jsonObject1.put("data", jsonObject);
             jsonObject1.put("pageSize", 20);
             jsonObject1.put("pageNo", 1);
             String add = jsonObject1.toJSONString();
-
             //涓婃姤
             String response = "";
             boolean success = false;
+            if(path == null){
+                continue;
+            }
             try {
                 //鑾峰彇Cookie鍊�
                 HashMap<String, Object> headers = new HashMap<>();
@@ -263,6 +355,7 @@
                         docTypeService.updateById(docType);
                     }
                 }
+                //渚涘簲鍟�
                 else if(kingDeeUtilType.formId.equals("BD_RRGANIZATION")){//渚涘簲鍟嗗悓姝�
                     int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
                     int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
@@ -329,6 +422,7 @@
                         }
                     }
                 }
+                //鏀舵枡鍗�
                 else if(kingDeeUtilType.formId.equals("PUR_RECEIVEBIll")){
                     int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
                     int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
@@ -357,7 +451,6 @@
                             JSONObject detailParam = new JSONObject();
                             JSONObject dataObj = new JSONObject();
                             dataObj.put("billno", billNo);
-                            detailParam.put("data", dataObj);
                             detailParam.put("pageNo", 1);
                             detailParam.put("pageSize", 100);
                             detailParam.put("data", dataObj);
@@ -377,7 +470,7 @@
                                 // ====== 澶勭悊鏄庣粏 ======
                                 for (int i = 0; i < rows.size(); i++) {
                                     JSONObject jsonObjectNew2 = rows.getJSONObject(i);
-                                    Order order = orderService.selectByNo( billNo);//妫�绱㈠崟鎹�
+                                    Order order = orderService.selectByNo(billNo);//妫�绱㈠崟鎹�
                                     LocOwner locOwner = null;
                                     if (ownerUuid != null) {
                                         locOwner = locOwnerService.selectByUuid(ownerUuid);
@@ -518,6 +611,1014 @@
                         docTypeService.updateById(docType);
                     }
                 }
+                //閿�鍞嚭搴�
+                else if(kingDeeUtilType.formId.equals("SAL_OUTSTOCK")){
+                    int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
+                    int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
+                    int totalPages = (int) Math.ceil((double) totalCount / pageSize);
+
+                    for (int page = 1; page <= totalPages; page++) {
+                        jsonObject1.put("pageNo", page);
+                        add = jsonObject1.toJSONString();
+
+                        response = new HttpHandler.Builder()
+                                .setHeaders(headers)
+                                .setUri(URL)
+                                .setPath(path)
+                                .setJson(add)
+                                .build()
+                                .doPost();
+
+                        jsonResponse = JSON.parseObject(response);
+                        data = jsonResponse.getJSONObject("data").getJSONArray("rows");
+
+                        for (int j = 0; j < data.size(); j++) {
+                            JSONObject jsonObjectNew = data.getJSONObject(j);
+                            Date createTime = sdf1.parse(jsonObjectNew.getString("createtime"));
+                            String billNo = jsonObjectNew.getString("billno");
+                            String owner = jsonObjectNew.getString("org_name");
+                            String ownerUuid = jsonObjectNew.getString("org_number");
+                            String orderId = jsonObjectNew.getString("id");
+                            // ========= 璐т富鏍¢獙 =========
+                            LocOwner locOwner = locOwnerService.selectByUuid(ownerUuid);
+//                            if (locOwner == null) {
+//                                callApiLogSaveOwner(null, kingDeeUtilType,
+//                                        "璐т富妫�绱㈠け璐ワ細" + ownerUuid + " 鍚嶇О锛�" + owner, false);
+//                                continue;
+//                            }
+
+                            // ========= 鍒涘缓璁㈠崟涓昏〃 =========
+                            Order order = orderService.selectByNo(billNo);
+                            if (Cools.isEmpty(order)) {
+                                order = new Order(
+                                        // 鍗曟嵁涓绘。
+                                        String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                                        billNo,    // 璁㈠崟缂栧彿
+                                        createTime.toString(),    // 鍗曟嵁鏃ユ湡
+                                        docType.getDocId(),    // 鍗曟嵁绫诲瀷
+                                        null,    // 椤圭洰缂栧彿
+                                        orderId,    //鏀舵枡鍗昳d
+                                        null,    // 璋冩嫧椤圭洰缂栧彿
+                                        null,    // 鍒濆绁ㄦ嵁鍙�
+                                        null,    // 绁ㄦ嵁鍙�
+                                        null,    // 椤圭洰id
+                                        owner,    // 璐т富
+                                        null,    // 鑱旂郴鏂瑰紡
+                                        null,    // 鎿嶄綔浜哄憳
+                                        null,    // 鍚堣閲戦
+                                        null,    // 浼樻儬鐜�
+                                        null,    // 浼樻儬閲戦
+                                        null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
+                                        null,    // 瀹炰粯閲戦
+                                        null,    // 浠樻绫诲瀷
+                                        null,    // 涓氬姟鍛�
+                                        null,    // 缁撶畻澶╂暟
+                                        null,    // 閭垂鏀粯绫诲瀷
+                                        null,    // 閭垂
+                                        null,    // 浠樻鏃堕棿
+                                        null,    // 鍙戣揣鏃堕棿
+                                        null,    // 鐗╂祦鍚嶇О
+                                        null,    // 鐗╂祦鍗曞彿
+                                        1L,    // 璁㈠崟鐘舵��
+                                        1,    // 鐘舵��
+                                        9527L,    // 娣诲姞浜哄憳
+                                        now,    // 娣诲姞鏃堕棿
+                                        9527L,    // 淇敼浜哄憳
+                                        now,    // 淇敼鏃堕棿
+                                        null,    // 澶囨敞
+                                        kingDeeUtilType.pakIn !=1?2:1
+                                    );
+                                if (orderService.insert(order)) {
+                                    callApiLogSaveOrder(order, kingDeeUtilType,
+                                            "鍒涘缓閿�鍞嚭搴撳崟鎴愬姛锛佸崟鍙凤細" + billNo, true);
+                                }
+                            }
+
+                            // ========= 鐩存帴浠庝富鎺ュ彛鍙栨槑缁� billentry =========
+                            JSONArray billEntryArray = jsonObjectNew.getJSONArray("billentry");
+                            if (billEntryArray == null || billEntryArray.isEmpty()) {
+                                continue;
+                            }
+                            for (int k = 0; k < billEntryArray.size(); k++) {
+                                JSONObject entry = billEntryArray.getJSONObject(k);
+                                String matnr = entry.getString("material_number"); //鐗╂枡缂栫爜锛屽唴閮⊿KU
+                                Double anfme = entry.getDouble("eap7_decimalfield");//绠辨暟
+                                Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
+                                Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
+                                String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
+                                String pOrderNo = entry.getString("eap7_textfield3");//閲囪喘鍗曞彿
+                                String s3 = entry.getString("eap7_textfield4");//瀹㈡埛sku锛堝鎴风紪鍙凤級
+                                String s2 = entry.getString("eap7_textfield5"); //鏉$爜UPC
+                                String memo = entry.getString("eap7_textfield6"); //澶囨敞锛堣嫳鏂囨弿杩帮級
+                                String s1 = entry.getString("eap7_textfield7"); //瀹㈡埛PO
+                                String detlId = entry.getString("id"); //鏄庣粏id
+                                Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
+//                                String suppCode = entry.getString("supplier_number");
+                                String suppCode = null;
+                                if (anfme == null || anfme == 0) {
+                                    callApiLogSaveOrder(order, kingDeeUtilType,
+                                            "鍗曟嵁鏁伴噺寮傚父锛�" + matnr, false);
+                                    continue;
+                                }
+                                // ========= 鐗╂枡鏍¢獙 =========
+                                Mat mat = matService.selectByMatnr(matnr);
+                                if (Cools.isEmpty(mat)) {
+                                    callApiLogSaveOrder(order, kingDeeUtilType,
+                                            "鍟嗗搧涓嶅瓨鍦細" + matnr, false);
+                                    continue;
+                                }
+                                // ========= 鏄庣粏鍘婚噸 =========
+                                List<OrderDetl> orderDetls =
+                                        orderDetlService.selectByOrderId(order.getId());
+
+                                boolean exists = orderDetls.stream()
+                                        .anyMatch(o -> o.getMatnr().equals(matnr));
+                                if (exists) continue;
+//                                // ========= 渚涘簲鍟� =========
+                                String supp = null;
+//                                LocSupp locSupp = locSuppService.selectByUuid(suppCode);
+//                                if (locSupp != null) {
+//                                    supp = locSupp.getOwner();
+//                                }
+                                // ========= 淇濆瓨鏄庣粏 =========
+                                OrderDetl orderDetl = new OrderDetl();
+                                orderDetl.sync(mat);
+                                orderDetl.setThreeCode(detlId);
+                                orderDetl.setLineNumber(seq);
+                                orderDetl.setAnfme(anfme);
+                                orderDetl.setErpAnfme(anfme);
+                                orderDetl.setOrderId(order.getId());
+                                orderDetl.setOrderNo(order.getOrderNo());
+                                orderDetl.setSupp(supp);
+                                orderDetl.setSuppCode(suppCode);
+                                orderDetl.setSku(matnr);
+                                orderDetl.setStandby1(s1);
+                                orderDetl.setStandby2(s2);
+                                orderDetl.setStandby3(s3);
+                                orderDetl.setBoxType1(owner);
+                                orderDetl.setBoxType2(ownerUuid);
+                                orderDetl.setBoxType3(pOrderNo);
+                                orderDetl.setMemo(memo);
+                                orderDetl.setVolume(totalVolume);
+                                orderDetl.setSafeQty(totalNumItems);
+                                orderDetl.setManu(warehouse);
+                                orderDetl.setCreateBy(9527L);
+                                orderDetl.setCreateTime(new Date());
+                                orderDetl.setUpdateBy(9527L);
+                                orderDetl.setUpdateTime(new Date());
+                                orderDetl.setStatus(1);
+                                orderDetl.setQty(0.0D);
+
+                                orderDetlService.insert(orderDetl);
+                            }
+                        }
+                        docType.setUpdateTime(now);
+                        docTypeService.updateById(docType);
+                    }
+
+                }
+                //閿�鍞��璐�
+                else if(kingDeeUtilType.formId.equals("SAL_RETURNSTOCK")){
+                    int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
+                    int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
+                    int totalPages = (int) Math.ceil((double) totalCount / pageSize);
+                    for (int page = 1; page <= totalPages; page++) {
+                        jsonObject1.put("pageNo", page);
+                        add = jsonObject1.toJSONString();
+                        // 閲嶆柊鍙戣捣璇锋眰浠ヨ幏鍙栬椤电殑鏁版嵁
+                        response = new HttpHandler.Builder()
+                                .setHeaders(headers)
+                                .setUri(URL)
+                                .setPath(path)
+                                .setJson(add)
+                                .build()
+                                .doPost();
+
+                        jsonResponse = JSON.parseObject(response);
+                        data = jsonResponse.getJSONObject("data").getJSONArray("rows");
+                        for (int j = 0; j < data.size(); j++) {
+                            JSONObject jsonObjectNew = data.getJSONObject(j);
+                            Date createTime =  sdf1.parse(jsonObjectNew.get("createtime").toString());
+                            String billNo = jsonObjectNew.get("billno").toString();//鍗曟嵁缂栧彿
+                            String orderId = jsonObjectNew.get("id").toString();
+                            JSONObject detailParam = new JSONObject();
+                            JSONObject dataObj = new JSONObject();
+                            dataObj.put("billno", billNo);
+                            detailParam.put("pageNo", 1);
+                            detailParam.put("pageSize", 100);
+                            detailParam.put("data", dataObj);
+                            boolean hasNext = true;
+                            while (hasNext) {
+                                String reqJson = detailParam.toJSONString();
+                                String detailResp = new HttpHandler.Builder()
+                                        .setHeaders(headers)
+                                        .setUri(URL)
+                                        .setPath(scpSalreturnDetl)
+                                        .setJson(reqJson)
+                                        .build()
+                                        .doPost();
+                                JSONObject detailJson = JSON.parseObject(detailResp);
+                                JSONObject detData = detailJson.getJSONObject("data");
+                                JSONArray rows = detData.getJSONArray("rows");
+                                // ====== 澶勭悊鏄庣粏 ======
+                                for (int i = 0; i < rows.size(); i++) {
+                                    JSONObject jsonObjectNew2 = rows.getJSONObject(i);
+                                    Order order = orderService.selectByNo(billNo);//妫�绱㈠崟鎹�
+                                    LocOwner locOwner = null;
+                                    if (Cools.isEmpty(order)) {
+                                        // 鍗曟嵁涓绘。
+                                        order = new Order(
+                                                String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                                                billNo,    // 璁㈠崟缂栧彿
+                                                createTime.toString(),    // 鍗曟嵁鏃ユ湡
+                                                docType.getDocId(),    // 鍗曟嵁绫诲瀷
+                                                null,    // 椤圭洰缂栧彿
+                                                orderId,    //鏀舵枡鍗昳d
+                                                null,    // 璋冩嫧椤圭洰缂栧彿
+                                                null,    // 鍒濆绁ㄦ嵁鍙�
+                                                null,    // 绁ㄦ嵁鍙�
+                                                null,    // 椤圭洰id
+                                                null,    // 璐т富
+                                                null,    // 鑱旂郴鏂瑰紡
+                                                null,    // 鎿嶄綔浜哄憳
+                                                null,    // 鍚堣閲戦
+                                                null,    // 浼樻儬鐜�
+                                                null,    // 浼樻儬閲戦
+                                                null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
+                                                null,    // 瀹炰粯閲戦
+                                                null,    // 浠樻绫诲瀷
+                                                null,    // 涓氬姟鍛�
+                                                null,    // 缁撶畻澶╂暟
+                                                null,    // 閭垂鏀粯绫诲瀷
+                                                null,    // 閭垂
+                                                null,    // 浠樻鏃堕棿
+                                                null,    // 鍙戣揣鏃堕棿
+                                                null,    // 鐗╂祦鍚嶇О
+                                                null,    // 鐗╂祦鍗曞彿
+                                                1L,    // 璁㈠崟鐘舵��
+                                                1,    // 鐘舵��
+                                                9527L,    // 娣诲姞浜哄憳
+                                                now,    // 娣诲姞鏃堕棿
+                                                9527L,    // 淇敼浜哄憳
+                                                now,    // 淇敼鏃堕棿
+                                                null,    // 澶囨敞
+                                                kingDeeUtilType.pakIn !=1?2:1
+                                        );
+                                        if( orderService.insert(order)){
+                                            callApiLogSaveOrder(order, kingDeeUtilType, "鍒涘缓閿�鍞��璐у崟鎴愬姛锛佸崟鍙凤細" + billNo, true);
+                                        }
+                                    }
+//                                    String suppCode = jsonObjectNew2.getString("supplier_number"); //渚涘簲鍟�
+                                    String suppCode = null; //渚涘簲鍟�
+                                    JSONArray billEntryArray = jsonObjectNew2.getJSONArray("materialentry");
+                                    for (int k = 0; k < billEntryArray.size(); k++) {
+                                        JSONObject entry = billEntryArray.getJSONObject(k);
+                                        String matnr = entry.getString("material_number"); //鐗╂枡缂栫爜锛屽唴閮⊿KU
+                                        Double anfme = entry.getDouble("qty");//绠辨暟
+                                        Double totalNumItems = 0.0;
+                                        Double Totalvolume = 0.0;//鎬讳綋绉�
+                                        String warehouse = null;//浠撳簱缂栫爜
+                                        String pOrderNo = "1";//閲囪喘鍗曞彿
+                                        String s3 = "1";//瀹㈡埛sku锛堝鎴风紪鍙凤級
+                                        String s2 = "1"; //鏉$爜UPC
+                                        String memo ="1"; //澶囨敞锛堣嫳鏂囨弿杩帮級
+                                        String s1 = "1"; //瀹㈡埛PO
+//                                        Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
+//                                        Double Totalvolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
+//                                        String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
+//                                        String pOrderNo = entry.getString("eap7_textfield3");//閲囪喘鍗曞彿
+//                                        String s3 = entry.getString("eap7_textfield4");//瀹㈡埛sku锛堝鎴风紪鍙凤級
+//                                        String s2 = entry.getString("eap7_textfield5"); //鏉$爜UPC
+//                                        String memo = entry.getString("eap7_textfield6"); //澶囨敞锛堣嫳鏂囨弿杩帮級
+//                                        String s1 = entry.getString("eap7_textfield7"); //瀹㈡埛PO
+                                        String detlId = entry.getString("id"); //鏄庣粏id
+                                        Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
+//                                        String
+                                        if(anfme == 0){
+                                            callApiLogSaveOrder(order,kingDeeUtilType, "鍗曟嵁鏁伴噺寮傚父"+matnr, false);
+                                            continue;
+                                        }
+                                        //鐗╂枡缂栫爜
+                                        Mat mat = matService.selectByMatnr(matnr);
+                                        if (Cools.isEmpty(mat)) {
+                                            callApiLogSaveOrder(order,kingDeeUtilType, "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"+matnr, false);
+                                            continue;
+                                        }
+                                        Order order1 = orderService.selectByNo( billNo);
+                                        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order1.getId());
+                                        boolean sign = false;
+                                        for (OrderDetl orderDetl : orderDetls){
+                                            if (orderDetl.getMatnr().equals(matnr)){
+                                                sign = true;
+                                                break;
+                                            }
+                                        }
+                                        if (sign){
+                                            continue;
+                                        }
+                                        LocSupp locSupp = null;
+                                        String supp =null;
+//                                        locSupp = locSuppService.selectByUuid(suppCode);
+//                                        if(locSupp != null){supp = locSupp.getOwner();}
+                                        OrderDetl orderDetl = new OrderDetl();
+                                        orderDetl.sync(mat);
+                                        orderDetl.setThreeCode(detlId);//ERP鏄庣粏id
+                                        orderDetl.setLineNumber(seq);//鍒嗗綍琛屽彿
+                                        orderDetl.setAnfme(anfme);//鎬荤鏁�
+                                        orderDetl.setErpAnfme(anfme);//erp鏁版嵁
+                                        orderDetl.setOrderId(order.getId());
+                                        orderDetl.setOrderNo(order.getOrderNo());//琛ㄥご鍗曟嵁
+                                        orderDetl.setSupp(supp);//渚涘簲鍟嗗悕绉帮紙璐ф簮锛�
+                                        orderDetl.setSuppCode(suppCode);//渚涘簲鍟嗙紪鐮�
+                                        orderDetl.setSku(matnr);//鍐呴儴SKU
+                                        orderDetl.setStandby1(s1);//瀹㈡埛PO
+                                        orderDetl.setStandby2(s2);//鏉$爜UPC
+                                        orderDetl.setStandby3(s3);//瀹㈡埛SKU
+                                        orderDetl.setBoxType1(null); //璐т富鍚嶇О
+                                        orderDetl.setBoxType2(null);//璐т富缂栧彿锛坋rp缁勭粐锛�
+                                        orderDetl.setBoxType3(pOrderNo);//閲囪喘鍗曞彿
+                                        orderDetl.setMemo(memo);//鑻辨枃澶囨敞
+                                        orderDetl.setVolume(Totalvolume);//鎬讳綋绉�
+                                        orderDetl.setSafeQty(totalNumItems);//鎬讳欢鏁�
+                                        orderDetl.setManu(warehouse);//浠撳簱缂栫爜
+                                        orderDetl.setCreateBy(9527L);
+                                        orderDetl.setCreateTime(new Date());
+                                        orderDetl.setUpdateBy(9527L);
+                                        orderDetl.setUpdateTime(new Date());
+                                        orderDetl.setStatus(1);
+                                        orderDetl.setQty(0.0D);
+                                        orderDetlService.insert(orderDetl);
+                                    }
+                                }
+                                // 鏄惁杩樻湁涓嬩竴椤�
+                                boolean lastPage = detData.getBoolean("lastPage");
+                                if (lastPage) {
+                                    hasNext = false;
+                                } else {
+                                    // 涓嬩竴椤�
+                                    int currPage = detData.getIntValue("pageNo");
+                                    detailParam.put("pageNo", currPage + 1);
+                                }
+                            }
+                        }
+                        docTypeService.updateById(docType);
+                    }
+                }
+                //浜у搧妫�楠屽崟
+                else if(kingDeeUtilType.formId.equals("STK_InspectionForm")){
+                    int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
+                    int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
+                    int totalPages = (int) Math.ceil((double) totalCount / pageSize);
+
+                    for (int page = 1; page <= totalPages; page++) {
+                        jsonObject1.put("pageNo", page);
+                        add = jsonObject1.toJSONString();
+
+                        response = new HttpHandler.Builder()
+                                .setHeaders(headers)
+                                .setUri(URL)
+                                .setPath(path)
+                                .setJson(add)
+                                .build()
+                                .doPost();
+
+                        jsonResponse = JSON.parseObject(response);
+                        data = jsonResponse.getJSONObject("data").getJSONArray("rows");
+
+                        for (int j = 0; j < data.size(); j++) {
+                            JSONObject jsonObjectNew = data.getJSONObject(j);
+                            Date createTime = sdf1.parse(jsonObjectNew.getString("createtime"));
+                            String billNo = jsonObjectNew.getString("billno");
+                            String owner = jsonObjectNew.getString("org_name");
+                            String ownerUuid = jsonObjectNew.getString("org_number");
+                            String orderId = jsonObjectNew.getString("id");
+                            // ========= 璐т富鏍¢獙 =========
+                            LocOwner locOwner = locOwnerService.selectByUuid(ownerUuid);
+//                            if (locOwner == null) {
+//                                callApiLogSaveOwner(null, kingDeeUtilType,
+//                                        "璐т富妫�绱㈠け璐ワ細" + ownerUuid + " 鍚嶇О锛�" + owner, false);
+//                                continue;
+//                            }
+
+                            // ========= 鍒涘缓璁㈠崟涓昏〃 =========
+                            Order order = orderService.selectByNo(billNo);
+                            if (Cools.isEmpty(order)) {
+                                order = new Order(
+                                        // 鍗曟嵁涓绘。
+                                        String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                                        billNo,    // 璁㈠崟缂栧彿
+                                        createTime.toString(),    // 鍗曟嵁鏃ユ湡
+                                        docType.getDocId(),    // 鍗曟嵁绫诲瀷
+                                        null,    // 椤圭洰缂栧彿
+                                        orderId,    //鏀舵枡鍗昳d
+                                        null,    // 璋冩嫧椤圭洰缂栧彿
+                                        null,    // 鍒濆绁ㄦ嵁鍙�
+                                        null,    // 绁ㄦ嵁鍙�
+                                        null,    // 椤圭洰id
+                                        owner,    // 璐т富
+                                        null,    // 鑱旂郴鏂瑰紡
+                                        null,    // 鎿嶄綔浜哄憳
+                                        null,    // 鍚堣閲戦
+                                        null,    // 浼樻儬鐜�
+                                        null,    // 浼樻儬閲戦
+                                        null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
+                                        null,    // 瀹炰粯閲戦
+                                        null,    // 浠樻绫诲瀷
+                                        null,    // 涓氬姟鍛�
+                                        null,    // 缁撶畻澶╂暟
+                                        null,    // 閭垂鏀粯绫诲瀷
+                                        null,    // 閭垂
+                                        null,    // 浠樻鏃堕棿
+                                        null,    // 鍙戣揣鏃堕棿
+                                        null,    // 鐗╂祦鍚嶇О
+                                        null,    // 鐗╂祦鍗曞彿
+                                        1L,    // 璁㈠崟鐘舵��
+                                        1,    // 鐘舵��
+                                        9527L,    // 娣诲姞浜哄憳
+                                        now,    // 娣诲姞鏃堕棿
+                                        9527L,    // 淇敼浜哄憳
+                                        now,    // 淇敼鏃堕棿
+                                        null,    // 澶囨敞
+                                        kingDeeUtilType.pakIn !=1?2:1
+                                );
+                                if (orderService.insert(order)) {
+                                    callApiLogSaveOrder(order, kingDeeUtilType,
+                                            "鍒涘缓閿�鍞嚭搴撳崟鎴愬姛锛佸崟鍙凤細" + billNo, true);
+                                }
+                            }
+
+                            // ========= 鐩存帴浠庝富鎺ュ彛鍙栨槑缁� billentry =========
+                            JSONArray billEntryArray = jsonObjectNew.getJSONArray("billentry");
+                            if (billEntryArray == null || billEntryArray.isEmpty()) {
+                                continue;
+                            }
+                            for (int k = 0; k < billEntryArray.size(); k++) {
+                                JSONObject entry = billEntryArray.getJSONObject(k);
+                                String matnr = entry.getString("material_number"); //鐗╂枡缂栫爜锛屽唴閮⊿KU
+                                Double anfme = entry.getDouble("eap7_decimalfield");//绠辨暟
+                                Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
+                                Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
+                                String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
+                                String pOrderNo = entry.getString("eap7_textfield3");//閲囪喘鍗曞彿
+                                String s3 = entry.getString("eap7_textfield4");//瀹㈡埛sku锛堝鎴风紪鍙凤級
+                                String s2 = entry.getString("eap7_textfield5"); //鏉$爜UPC
+                                String memo = entry.getString("eap7_textfield6"); //澶囨敞锛堣嫳鏂囨弿杩帮級
+                                String s1 = entry.getString("eap7_textfield7"); //瀹㈡埛PO
+                                String detlId = entry.getString("id"); //鏄庣粏id
+                                Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
+//                                String suppCode = entry.getString("supplier_number");
+                                String suppCode = null;
+                                if (anfme == null || anfme == 0) {
+                                    callApiLogSaveOrder(order, kingDeeUtilType,
+                                            "鍗曟嵁鏁伴噺寮傚父锛�" + matnr, false);
+                                    continue;
+                                }
+                                // ========= 鐗╂枡鏍¢獙 =========
+                                Mat mat = matService.selectByMatnr(matnr);
+                                if (Cools.isEmpty(mat)) {
+                                    callApiLogSaveOrder(order, kingDeeUtilType,
+                                            "鍟嗗搧涓嶅瓨鍦細" + matnr, false);
+                                    continue;
+                                }
+                                // ========= 鏄庣粏鍘婚噸 =========
+                                List<OrderDetl> orderDetls =
+                                        orderDetlService.selectByOrderId(order.getId());
+
+                                boolean exists = orderDetls.stream()
+                                        .anyMatch(o -> o.getMatnr().equals(matnr));
+                                if (exists) continue;
+//                                // ========= 渚涘簲鍟� =========
+                                String supp = null;
+//                                LocSupp locSupp = locSuppService.selectByUuid(suppCode);
+//                                if (locSupp != null) {
+//                                    supp = locSupp.getOwner();
+//                                }
+                                // ========= 淇濆瓨鏄庣粏 =========
+                                OrderDetl orderDetl = new OrderDetl();
+                                orderDetl.sync(mat);
+                                orderDetl.setThreeCode(detlId);
+                                orderDetl.setLineNumber(seq);
+                                orderDetl.setAnfme(anfme);
+                                orderDetl.setErpAnfme(anfme);
+                                orderDetl.setOrderId(order.getId());
+                                orderDetl.setOrderNo(order.getOrderNo());
+                                orderDetl.setSupp(supp);
+                                orderDetl.setSuppCode(suppCode);
+                                orderDetl.setSku(matnr);
+                                orderDetl.setStandby1(s1);
+                                orderDetl.setStandby2(s2);
+                                orderDetl.setStandby3(s3);
+                                orderDetl.setBoxType1(owner);
+                                orderDetl.setBoxType2(ownerUuid);
+                                orderDetl.setBoxType3(pOrderNo);
+                                orderDetl.setMemo(memo);
+                                orderDetl.setVolume(totalVolume);
+                                orderDetl.setSafeQty(totalNumItems);
+                                orderDetl.setManu(warehouse);
+                                orderDetl.setCreateBy(9527L);
+                                orderDetl.setCreateTime(new Date());
+                                orderDetl.setUpdateBy(9527L);
+                                orderDetl.setUpdateTime(new Date());
+                                orderDetl.setStatus(1);
+                                orderDetl.setQty(0.0D);
+
+                                orderDetlService.insert(orderDetl);
+                            }
+                        }
+                        docType.setUpdateTime(now);
+                        docTypeService.updateById(docType);
+                    }
+
+                }
+                //鐢熶骇棰嗘枡锛岀敓浜цˉ鏂�
+                else if(kingDeeUtilType.formId.equals("PRD_PickMtrl") || kingDeeUtilType.formId.equals("PRD_FeedMtrl")){
+                    int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
+                    int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
+                    int totalPages = (int) Math.ceil((double) totalCount / pageSize);
+                    for (int page = 1; page <= totalPages; page++) {
+                        jsonObject1.put("pageNo", page);
+                        add = jsonObject1.toJSONString();
+                        response = new HttpHandler.Builder()
+                                .setHeaders(headers)
+                                .setUri(URL)
+                                .setPath(path)
+                                .setJson(add)
+                                .build()
+                                .doPost();
+
+                        jsonResponse = JSON.parseObject(response);
+                        data = jsonResponse.getJSONObject("data").getJSONArray("rows");
+
+                        for (int j = 0; j < data.size(); j++) {
+                            JSONObject jsonObjectNew = data.getJSONObject(j);
+                            Date createTime = sdf1.parse(jsonObjectNew.getString("createtime"));
+                            String billNo = jsonObjectNew.getString("billno");
+                            String owner = jsonObjectNew.getString("org_name");
+                            String ownerUuid = jsonObjectNew.getString("org_number");
+                            String orderId = jsonObjectNew.getString("id");
+                            // ========= 鍒涘缓璁㈠崟涓昏〃 =========
+                            Order order = orderService.selectByNo(billNo);
+                            if (Cools.isEmpty(order)) {
+                                order = new Order(
+                                        // 鍗曟嵁涓绘。
+                                        String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                                        billNo,    // 璁㈠崟缂栧彿
+                                        createTime.toString(),    // 鍗曟嵁鏃ユ湡
+                                        docType.getDocId(),    // 鍗曟嵁绫诲瀷
+                                        null,    // 椤圭洰缂栧彿
+                                        orderId,    //鏀舵枡鍗昳d
+                                        null,    // 璋冩嫧椤圭洰缂栧彿
+                                        null,    // 鍒濆绁ㄦ嵁鍙�
+                                        null,    // 绁ㄦ嵁鍙�
+                                        null,    // 椤圭洰id
+                                        owner,    // 璐т富
+                                        null,    // 鑱旂郴鏂瑰紡
+                                        null,    // 鎿嶄綔浜哄憳
+                                        null,    // 鍚堣閲戦
+                                        null,    // 浼樻儬鐜�
+                                        null,    // 浼樻儬閲戦
+                                        null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
+                                        null,    // 瀹炰粯閲戦
+                                        null,    // 浠樻绫诲瀷
+                                        null,    // 涓氬姟鍛�
+                                        null,    // 缁撶畻澶╂暟
+                                        null,    // 閭垂鏀粯绫诲瀷
+                                        null,    // 閭垂
+                                        null,    // 浠樻鏃堕棿
+                                        null,    // 鍙戣揣鏃堕棿
+                                        null,    // 鐗╂祦鍚嶇О
+                                        null,    // 鐗╂祦鍗曞彿
+                                        1L,    // 璁㈠崟鐘舵��
+                                        1,    // 鐘舵��
+                                        9527L,    // 娣诲姞浜哄憳
+                                        now,    // 娣诲姞鏃堕棿
+                                        9527L,    // 淇敼浜哄憳
+                                        now,    // 淇敼鏃堕棿
+                                        null,    // 澶囨敞
+                                        kingDeeUtilType.pakIn !=1?2:1
+                                );
+                                if (orderService.insert(order)) {
+                                    callApiLogSaveOrder(order, kingDeeUtilType,
+                                            "鍒涘缓鐢熶骇棰嗘枡鍑哄簱鍗曟垚鍔燂紒鍗曞彿锛�" + billNo, true);
+                                }
+                            }
+                            // ========= 鐩存帴浠庝富鎺ュ彛鍙栨槑缁� billentry =========
+                            JSONArray billEntryArray = jsonObjectNew.getJSONArray("billentry");
+                            if (billEntryArray == null || billEntryArray.isEmpty()) {
+                                continue;
+                            }
+                            for (int k = 0; k < billEntryArray.size(); k++) {
+                                JSONObject entry = billEntryArray.getJSONObject(k);
+                                String matnr = entry.getString("material_number"); //鐗╂枡缂栫爜锛屽唴閮⊿KU
+                                Double anfme = entry.getDouble("qty");//绠辨暟
+                                Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
+                                Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
+                                String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
+                                String pOrderNo = entry.getString("eap7_textfield3");//閲囪喘鍗曞彿
+                                String s3 = entry.getString("eap7_textfield4");//瀹㈡埛sku锛堝鎴风紪鍙凤級
+                                String s2 = entry.getString("eap7_textfield5"); //鏉$爜UPC
+                                String memo = entry.getString("eap7_textfield6"); //澶囨敞锛堣嫳鏂囨弿杩帮級
+                                String s1 = entry.getString("eap7_textfield7"); //瀹㈡埛PO
+                                String detlId = entry.getString("id"); //鏄庣粏id
+                                Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
+//                                String suppCode = entry.getString("supplier_number");
+                                String suppCode = null;
+                                if (anfme == null || anfme == 0) {
+                                    callApiLogSaveOrder(order, kingDeeUtilType,
+                                            "鍗曟嵁鏁伴噺寮傚父锛�" + matnr, false);
+                                    continue;
+                                }
+                                // ========= 鐗╂枡鏍¢獙 =========
+                                Mat mat = matService.selectByMatnr(matnr);
+                                if (Cools.isEmpty(mat)) {
+                                    callApiLogSaveOrder(order, kingDeeUtilType,
+                                            "鐗╂枡妗f涓嶅瓨鍦細" + matnr, false);
+                                    continue;
+                                }
+                                // ========= 鏄庣粏鍘婚噸 =========
+                                List<OrderDetl> orderDetls =
+                                        orderDetlService.selectByOrderId(order.getId());
+
+                                boolean exists = orderDetls.stream()
+                                        .anyMatch(o -> o.getMatnr().equals(matnr));
+                                if (exists) continue;
+//                                // ========= 渚涘簲鍟� =========
+                                String supp = null;
+//                                LocSupp locSupp = locSuppService.selectByUuid(suppCode);
+//                                if (locSupp != null) {
+//                                    supp = locSupp.getOwner();
+//                                }
+                                // ========= 淇濆瓨鏄庣粏 =========
+                                OrderDetl orderDetl = new OrderDetl();
+                                orderDetl.sync(mat);
+                                orderDetl.setThreeCode(detlId);
+                                orderDetl.setLineNumber(seq);
+                                orderDetl.setAnfme(anfme);
+                                orderDetl.setErpAnfme(anfme);
+                                orderDetl.setOrderId(order.getId());
+                                orderDetl.setOrderNo(order.getOrderNo());
+                                orderDetl.setSupp(supp);
+                                orderDetl.setSuppCode(suppCode);
+                                orderDetl.setSku(matnr);
+                                orderDetl.setStandby1(s1);
+                                orderDetl.setStandby2(s2);
+                                orderDetl.setStandby3(s3);
+                                orderDetl.setBoxType1(owner);
+                                orderDetl.setBoxType2(ownerUuid);
+                                orderDetl.setBoxType3(pOrderNo);
+                                orderDetl.setMemo(memo);
+                                orderDetl.setVolume(totalVolume);
+                                orderDetl.setSafeQty(totalNumItems);
+                                orderDetl.setManu(warehouse);
+                                orderDetl.setCreateBy(9527L);
+                                orderDetl.setCreateTime(new Date());
+                                orderDetl.setUpdateBy(9527L);
+                                orderDetl.setUpdateTime(new Date());
+                                orderDetl.setStatus(1);
+                                orderDetl.setQty(0.0D);
+
+                                orderDetlService.insert(orderDetl);
+                            }
+                        }
+                        docType.setUpdateTime(now);
+                        docTypeService.updateById(docType);
+                    }
+
+                }
+                //鐢熶骇閫�鏂欏崟PRD_ReturnMtrl
+                else if(kingDeeUtilType.formId.equals("PRD_ReturnMtrl") ) {
+                    int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
+                    int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
+                    int totalPages = (int) Math.ceil((double) totalCount / pageSize);
+
+                    for (int page = 1; page <= totalPages; page++) {
+                        jsonObject1.put("pageNo", page);
+                        add = jsonObject1.toJSONString();
+
+                        response = new HttpHandler.Builder()
+                                .setHeaders(headers)
+                                .setUri(URL)
+                                .setPath(path)
+                                .setJson(add)
+                                .build()
+                                .doPost();
+
+                        jsonResponse = JSON.parseObject(response);
+                        data = jsonResponse.getJSONObject("data").getJSONArray("rows");
+
+                        for (int j = 0; j < data.size(); j++) {
+                            JSONObject jsonObjectNew = data.getJSONObject(j);
+                            Date createTime = sdf1.parse(jsonObjectNew.getString("createtime"));
+                            String billNo = jsonObjectNew.getString("billno");
+                            String owner = jsonObjectNew.getString("org_name");
+                            String ownerUuid = jsonObjectNew.getString("org_number");
+                            String orderId = jsonObjectNew.getString("id");
+                            // ========= 璐т富鏍¢獙 =========
+                            LocOwner locOwner = locOwnerService.selectByUuid(ownerUuid);
+//                            if (locOwner == null) {
+//                                callApiLogSaveOwner(null, kingDeeUtilType,
+//                                        "璐т富妫�绱㈠け璐ワ細" + ownerUuid + " 鍚嶇О锛�" + owner, false);
+//                                continue;
+//                            }
+
+                            // ========= 鍒涘缓璁㈠崟涓昏〃 =========
+                            Order order = orderService.selectByNo(billNo);
+                            if (Cools.isEmpty(order)) {
+                                order = new Order(
+                                        // 鍗曟嵁涓绘。
+                                        String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                                        billNo,    // 璁㈠崟缂栧彿
+                                        createTime.toString(),    // 鍗曟嵁鏃ユ湡
+                                        docType.getDocId(),    // 鍗曟嵁绫诲瀷
+                                        null,    // 椤圭洰缂栧彿
+                                        orderId,    //鏀舵枡鍗昳d
+                                        null,    // 璋冩嫧椤圭洰缂栧彿
+                                        null,    // 鍒濆绁ㄦ嵁鍙�
+                                        null,    // 绁ㄦ嵁鍙�
+                                        null,    // 椤圭洰id
+                                        owner,    // 璐т富
+                                        null,    // 鑱旂郴鏂瑰紡
+                                        null,    // 鎿嶄綔浜哄憳
+                                        null,    // 鍚堣閲戦
+                                        null,    // 浼樻儬鐜�
+                                        null,    // 浼樻儬閲戦
+                                        null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
+                                        null,    // 瀹炰粯閲戦
+                                        null,    // 浠樻绫诲瀷
+                                        null,    // 涓氬姟鍛�
+                                        null,    // 缁撶畻澶╂暟
+                                        null,    // 閭垂鏀粯绫诲瀷
+                                        null,    // 閭垂
+                                        null,    // 浠樻鏃堕棿
+                                        null,    // 鍙戣揣鏃堕棿
+                                        null,    // 鐗╂祦鍚嶇О
+                                        null,    // 鐗╂祦鍗曞彿
+                                        1L,    // 璁㈠崟鐘舵��
+                                        1,    // 鐘舵��
+                                        9527L,    // 娣诲姞浜哄憳
+                                        now,    // 娣诲姞鏃堕棿
+                                        9527L,    // 淇敼浜哄憳
+                                        now,    // 淇敼鏃堕棿
+                                        null,    // 澶囨敞
+                                        kingDeeUtilType.pakIn !=1?2:1
+                                );
+                                if (orderService.insert(order)) {
+                                    callApiLogSaveOrder(order, kingDeeUtilType,
+                                            "鍒涘缓鐢熶骇琛ユ枡鍗曟垚鍔燂紒鍗曞彿锛�" + billNo, true);
+                                }
+                            }
+
+                            // ========= 鐩存帴浠庝富鎺ュ彛鍙栨槑缁� billentry =========
+                            JSONArray billEntryArray = jsonObjectNew.getJSONArray("billentry");
+                            if (billEntryArray == null || billEntryArray.isEmpty()) {
+                                continue;
+                            }
+                            for (int k = 0; k < billEntryArray.size(); k++) {
+                                JSONObject entry = billEntryArray.getJSONObject(k);
+                                String matnr = entry.getString("material_number"); //鐗╂枡缂栫爜锛屽唴閮⊿KU
+                                Double anfme = entry.getDouble("eap7_decimalfield");//绠辨暟
+                                Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
+                                Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
+                                String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
+                                String pOrderNo = entry.getString("eap7_textfield3");//閲囪喘鍗曞彿
+                                String s3 = entry.getString("eap7_textfield4");//瀹㈡埛sku锛堝鎴风紪鍙凤級
+                                String s2 = entry.getString("eap7_textfield5"); //鏉$爜UPC
+                                String memo = entry.getString("eap7_textfield6"); //澶囨敞锛堣嫳鏂囨弿杩帮級
+                                String s1 = entry.getString("eap7_textfield7"); //瀹㈡埛PO
+                                String detlId = entry.getString("id"); //鏄庣粏id
+                                Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
+//                                String suppCode = entry.getString("supplier_number");
+                                String suppCode = null;
+                                if (anfme == null || anfme == 0) {
+                                    callApiLogSaveOrder(order, kingDeeUtilType,
+                                            "鍗曟嵁鏁伴噺寮傚父锛�" + matnr, false);
+                                    continue;
+                                }
+                                // ========= 鐗╂枡鏍¢獙 =========
+                                Mat mat = matService.selectByMatnr(matnr);
+                                if (Cools.isEmpty(mat)) {
+                                    callApiLogSaveOrder(order, kingDeeUtilType,
+                                            "鍟嗗搧涓嶅瓨鍦細" + matnr, false);
+                                    continue;
+                                }
+                                // ========= 鏄庣粏鍘婚噸 =========
+                                List<OrderDetl> orderDetls =
+                                        orderDetlService.selectByOrderId(order.getId());
+
+                                boolean exists = orderDetls.stream()
+                                        .anyMatch(o -> o.getMatnr().equals(matnr));
+                                if (exists) continue;
+//                                // ========= 渚涘簲鍟� =========
+                                String supp = null;
+//                                LocSupp locSupp = locSuppService.selectByUuid(suppCode);
+//                                if (locSupp != null) {
+//                                    supp = locSupp.getOwner();
+//                                }
+                                // ========= 淇濆瓨鏄庣粏 =========
+                                OrderDetl orderDetl = new OrderDetl();
+                                orderDetl.sync(mat);
+                                orderDetl.setThreeCode(detlId);
+                                orderDetl.setLineNumber(seq);
+                                orderDetl.setAnfme(anfme);
+                                orderDetl.setErpAnfme(anfme);
+                                orderDetl.setOrderId(order.getId());
+                                orderDetl.setOrderNo(order.getOrderNo());
+                                orderDetl.setSupp(supp);
+                                orderDetl.setSuppCode(suppCode);
+                                orderDetl.setSku(matnr);
+                                orderDetl.setStandby1(s1);
+                                orderDetl.setStandby2(s2);
+                                orderDetl.setStandby3(s3);
+                                orderDetl.setBoxType1(owner);
+                                orderDetl.setBoxType2(ownerUuid);
+                                orderDetl.setBoxType3(pOrderNo);
+                                orderDetl.setMemo(memo);
+                                orderDetl.setVolume(totalVolume);
+                                orderDetl.setSafeQty(totalNumItems);
+                                orderDetl.setManu(warehouse);
+                                orderDetl.setCreateBy(9527L);
+                                orderDetl.setCreateTime(new Date());
+                                orderDetl.setUpdateBy(9527L);
+                                orderDetl.setUpdateTime(new Date());
+                                orderDetl.setStatus(1);
+                                orderDetl.setQty(0.0D);
+
+                                orderDetlService.insert(orderDetl);
+                            }
+                        }
+                        docType.setUpdateTime(now);
+                        docTypeService.updateById(docType);
+                    }
+
+                }
+                //鐢熶骇姹囨姤鍗�
+                else if(kingDeeUtilType.formId.equals("PRD_MORPT")) {
+                    int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
+                    int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
+                    int totalPages = (int) Math.ceil((double) totalCount / pageSize);
+
+                    for (int page = 1; page <= totalPages; page++) {
+                        jsonObject1.put("pageNo", page);
+                        add = jsonObject1.toJSONString();
+
+                        response = new HttpHandler.Builder()
+                                .setHeaders(headers)
+                                .setUri(URL)
+                                .setPath(path)
+                                .setJson(add)
+                                .build()
+                                .doPost();
+
+                        jsonResponse = JSON.parseObject(response);
+                        data = jsonResponse.getJSONObject("data").getJSONArray("rows");
+
+                        for (int j = 0; j < data.size(); j++) {
+                            JSONObject jsonObjectNew = data.getJSONObject(j);
+                            Date createTime = sdf1.parse(jsonObjectNew.getString("createtime"));
+                            String billNo = jsonObjectNew.getString("billno");
+                            String owner = "鍜屽緱绉戞妧";
+                            String ownerUuid = "BU-00001";
+                            String orderId = jsonObjectNew.getString("id");
+                            // ========= 璐т富鏍¢獙 =========
+                            LocOwner locOwner = locOwnerService.selectByUuid(ownerUuid);
+//                            if (locOwner == null) {
+//                                callApiLogSaveOwner(null, kingDeeUtilType,
+//                                        "璐т富妫�绱㈠け璐ワ細" + ownerUuid + " 鍚嶇О锛�" + owner, false);
+//                                continue;
+//                            }
+
+                            // ========= 鍒涘缓璁㈠崟涓昏〃 =========
+                            Order order = orderService.selectByNo(billNo);
+                            if (Cools.isEmpty(order)) {
+                                order = new Order(
+                                        // 鍗曟嵁涓绘。
+                                        String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                                        billNo,    // 璁㈠崟缂栧彿
+                                        createTime.toString(),    // 鍗曟嵁鏃ユ湡
+                                        docType.getDocId(),    // 鍗曟嵁绫诲瀷
+                                        null,    // 椤圭洰缂栧彿
+                                        orderId,    //鏀舵枡鍗昳d
+                                        null,    // 璋冩嫧椤圭洰缂栧彿
+                                        null,    // 鍒濆绁ㄦ嵁鍙�
+                                        null,    // 绁ㄦ嵁鍙�
+                                        null,    // 椤圭洰id
+                                        owner,    // 璐т富
+                                        null,    // 鑱旂郴鏂瑰紡
+                                        null,    // 鎿嶄綔浜哄憳
+                                        null,    // 鍚堣閲戦
+                                        null,    // 浼樻儬鐜�
+                                        null,    // 浼樻儬閲戦
+                                        null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
+                                        null,    // 瀹炰粯閲戦
+                                        null,    // 浠樻绫诲瀷
+                                        null,    // 涓氬姟鍛�
+                                        null,    // 缁撶畻澶╂暟
+                                        null,    // 閭垂鏀粯绫诲瀷
+                                        null,    // 閭垂
+                                        null,    // 浠樻鏃堕棿
+                                        null,    // 鍙戣揣鏃堕棿
+                                        null,    // 鐗╂祦鍚嶇О
+                                        null,    // 鐗╂祦鍗曞彿
+                                        1L,    // 璁㈠崟鐘舵��
+                                        1,    // 鐘舵��
+                                        9527L,    // 娣诲姞浜哄憳
+                                        now,    // 娣诲姞鏃堕棿
+                                        9527L,    // 淇敼浜哄憳
+                                        now,    // 淇敼鏃堕棿
+                                        null,    // 澶囨敞
+                                        kingDeeUtilType.pakIn !=1?2:1
+                                );
+                                if (orderService.insert(order)) {
+                                    callApiLogSaveOrder(order, kingDeeUtilType,
+                                            "鍒涘缓鐢熶骇姹囨姤鍗曟垚鍔燂紒鍗曞彿锛�" + billNo, true);
+                                }
+                            }
+
+                            // ========= 鐩存帴浠庝富鎺ュ彛鍙栨槑缁� billentry =========
+                            JSONArray billEntryArray = jsonObjectNew.getJSONArray("sumentry");
+                            if (billEntryArray == null || billEntryArray.isEmpty()) {
+                                continue;
+                            }
+                            for (int k = 0; k < billEntryArray.size(); k++) {
+                                JSONObject entry = billEntryArray.getJSONObject(k);
+                                String matnr = entry.getString("material_number"); //鐗╂枡缂栫爜锛屽唴閮⊿KU
+                                Double anfme = entry.getDouble("completqty");//绠辨暟
+                                Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
+                                Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
+                                String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
+                                String pOrderNo = entry.getString("eap7_textfield");//閲囪喘鍗曞彿
+                                String s3 = entry.getString("eap7_textfield4");//瀹㈡埛sku锛堝鎴风紪鍙凤級
+                                String s2 = entry.getString("eap7_textfield1"); //鏉$爜UPC
+                                String memo = entry.getString("eap7_textfield6"); //澶囨敞锛堣嫳鏂囨弿杩帮級
+                                String s1 = entry.getString("eap7_textfield7"); //瀹㈡埛PO
+                                String detlId = entry.getString("id"); //鏄庣粏id
+                                Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
+//                                String suppCode = entry.getString("supplier_number");
+                                String suppCode = null;
+                                if (anfme == null || anfme == 0) {
+                                    callApiLogSaveOrder(order, kingDeeUtilType,
+                                            "鍗曟嵁鏁伴噺寮傚父锛�" + matnr, false);
+                                    continue;
+                                }
+                                // ========= 鐗╂枡鏍¢獙 =========
+                                Mat mat = matService.selectByMatnr(matnr);
+                                if (Cools.isEmpty(mat)) {
+                                    callApiLogSaveOrder(order, kingDeeUtilType,
+                                            "鍟嗗搧涓嶅瓨鍦細" + matnr, false);
+                                    continue;
+                                }
+                                // ========= 鏄庣粏鍘婚噸 =========
+                                List<OrderDetl> orderDetls =
+                                        orderDetlService.selectByOrderId(order.getId());
+
+                                boolean exists = orderDetls.stream()
+                                        .anyMatch(o -> o.getMatnr().equals(matnr));
+                                if (exists) continue;
+//                                // ========= 渚涘簲鍟� =========
+                                String supp = null;
+//                                LocSupp locSupp = locSuppService.selectByUuid(suppCode);
+//                                if (locSupp != null) {
+//                                    supp = locSupp.getOwner();
+//                                }
+                                // ========= 淇濆瓨鏄庣粏 =========
+                                OrderDetl orderDetl = new OrderDetl();
+                                orderDetl.sync(mat);
+                                orderDetl.setThreeCode(detlId);
+                                orderDetl.setLineNumber(seq);
+                                orderDetl.setAnfme(anfme);
+                                orderDetl.setErpAnfme(anfme);
+                                orderDetl.setOrderId(order.getId());
+                                orderDetl.setOrderNo(order.getOrderNo());
+                                orderDetl.setSupp(supp);
+                                orderDetl.setSuppCode(suppCode);
+                                orderDetl.setSku(matnr);
+                                orderDetl.setStandby1(s1);
+                                orderDetl.setStandby2(s2);
+                                orderDetl.setStandby3(s3);
+                                orderDetl.setBoxType1(owner);
+                                orderDetl.setBoxType2(ownerUuid);
+                                orderDetl.setBoxType3(pOrderNo);
+                                orderDetl.setMemo(memo);
+                                orderDetl.setVolume(totalVolume);
+                                orderDetl.setSafeQty(totalNumItems);
+                                orderDetl.setManu(warehouse);
+                                orderDetl.setCreateBy(9527L);
+                                orderDetl.setCreateTime(new Date());
+                                orderDetl.setUpdateBy(9527L);
+                                orderDetl.setUpdateTime(new Date());
+                                orderDetl.setStatus(1);
+                                orderDetl.setQty(0.0D);
+
+                                orderDetlService.insert(orderDetl);
+                            }
+                        }
+                        docType.setUpdateTime(now);
+                        docTypeService.updateById(docType);
+                    }
+
+                }
+
+
             } catch (Exception e) {
                 log.error("fail", e);
 //            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -541,7 +1642,7 @@
 
     public void callApiLogSaveSupp(LocSupp locSupp, KingDeeUtilType kingDeeUtilType, String response, Boolean bool) {
         apiLogService.save("鑾峰彇"+kingDeeUtilType.desc, kingDeeUtilType.formId, "null", URL,
-                "璐т富缂栧彿锛�" + locSupp.getOwnerUuid() + "銆佽揣涓诲悕绉帮細" + locSupp.getOwner(),
+                "渚涘簲鍟嗙紪鍙凤細" + locSupp.getOwnerUuid() + "銆佷緵搴斿晢鍚嶇О锛�" + locSupp.getOwner(),
                 response, bool);
     }
     public void callApiLogSaveOwner(LocOwner locOwner, KingDeeUtilType kingDeeUtilType, String response, Boolean bool) {
diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
index c8f8fdd..69f920a 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
@@ -36,6 +36,10 @@
 
     @Value("${erp.address.imPurinbillAdd}")
     private String imPurinbillAdd;
+    @Value("${erp.address.imOtheroutbill}")
+    private String imOtheroutbill;
+    @Value("${erp.address.imOtherinbill}")
+    private String imOtherinbill;
 
     @Autowired
     private OrderService orderService;
@@ -82,7 +86,8 @@
 
     private JSONObject buildRequestParams(Order order, KingDeeUtilType kingDeeUtilType, SimpleDateFormat sdf1, SimpleDateFormat sdf2) {
         List<OrderDetl> orderDetlList = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",order.getOrderNo()));
-        if(kingDeeUtilType == null){
+        if (kingDeeUtilType == null || kingDeeUtilType.formId == null) {
+            log.warn("kingDeeUtilType 涓虹┖锛屽凡璺宠繃鏈鍚屾锛�");
             return null;
         }
         switch (kingDeeUtilType.formId) {
@@ -92,8 +97,9 @@
                 JSONArray billentryArray = new JSONArray();  // 鐢ㄤ簬瀛樺偍 billentry 瀵硅薄
                 String suppCode = null;  // 渚涘簲鍟�
                 String boxType2 = null;  // 璐т富/璐ф簮
-
                 // 閬嶅巻璁㈠崟璇︽儏
+                Date now = new Date();
+
                 for (OrderDetl orderDetl : orderDetlList) {
                     suppCode = orderDetl.getSuppCode();
                     boxType2 = orderDetl.getBoxType2();
@@ -101,8 +107,7 @@
                         continue;
                     }
 //                    JSONArray idArr = new JSONArray();
-//                    idArr.add(0L);   // 鉁� 娉ㄦ剰蹇呴』鏄� Long 绫诲瀷鐨� 0L
-//                    Double reportNum = orderDetl.getQty() - orderDetl.getWorkQty();//涓婃姤鏁伴噺鍑忓幓宸蹭笂鎶ユ暟閲�
+//                    idArr.add(0L);
                     // 鍒涘缓 billentry_lk 瀵硅薄
                     JSONObject billentryLk = new JSONObject()
                             .fluentPut("id", 0L)
@@ -124,11 +129,9 @@
                             .fluentPut("qty", orderDetl.getQty())  // 鏁伴噺
                             .fluentPut("material_number", orderDetl.getMatnr())  // 鐗╂枡缂栧彿
                             .fluentPut("billentry_lk", billentryLkArray);
+
                     billentryArray.add(billentry);
-//                    orderDetl.setWorkQty(orderDetl.getQty());
-//                    orderDetlService.updateById(orderDetl);//灏嗕笂鎶ユ暟瑕嗙洊鍒板巻鍙蹭笂
                 }
-                Date now = new Date();
                 return new JSONObject()
                         .fluentPut("data", new JSONArray(Arrays.asList(
                                 new JSONObject()
@@ -146,9 +149,73 @@
                                         .fluentPut("supplier_number", suppCode)  // 渚涘簲鍟嗙紪鍙�
                                         .fluentPut("billentry", billentryArray)  // 灏� billentry 鏁扮粍娣诲姞鍒拌姹傚弬鏁�
                         )));
-
+            case "STK_MISCELLANEOUS": // 鍏朵粬鍏ュ簱鍗�
+                path = imOtherinbill;
+                billentryArray = new JSONArray();
+                for (OrderDetl orderDetl : orderDetlList) {
+                    if (orderDetl.getQty() == 0) {
+                        continue;
+                    }
+                    JSONObject billentry = new JSONObject()
+                            .fluentPut("id", 0L)
+                            .fluentPut("material_number", orderDetl.getMatnr())       // 鐗╂枡缂栫爜
+                            .fluentPut("qty", orderDetl.getQty())                    // 鏁伴噺
+                            .fluentPut("warehouse_number", "CK001")     // 浠撳簱
+                            .fluentPut("invstatus_number", "110")
+                            .fluentPut("invtype_number", "110")
+                            .fluentPut("outinvstatus_number", "110")
+                            .fluentPut("outinvtype_number", "110")
+                            .fluentPut("linetype_number", "010");
+                    billentryArray.add(billentry);
+                }
+                Date nowMis = new Date();
+                return new JSONObject()
+                        .fluentPut("data", new JSONArray(Arrays.asList(
+                                new JSONObject()
+//                                        .fluentPut("id", 0L)
+                                        .fluentPut("billno", order.getOrderNo())
+//                                        .fluentPut("bookdate", sdf1.format(nowMis))
+                                        .fluentPut("biztime", sdf1.format(nowMis))
+                                        .fluentPut("biztype_number", "354")
+                                        .fluentPut("billtype_number", "im_OtherInBill_STD_BT_S")
+                                        .fluentPut("org_number", "BU-00001")
+                                        .fluentPut("invscheme_number", "354")
+                                        .fluentPut("billentry", billentryArray)
+                        )));
+            case "STK_MisDelivery": // 鍏朵粬鍑哄簱鍗�
+                path = imOtheroutbill;
+                billentryArray = new JSONArray();
+                Date nowOut = new Date();
+                for (OrderDetl orderDetl : orderDetlList) {
+                    if (orderDetl.getQty() == 0) {
+                        continue;
+                    }
+                    JSONObject billentry = new JSONObject()
+                            .fluentPut("id", 0L)
+                            .fluentPut("material_number", orderDetl.getMatnr())       // 鐗╂枡缂栫爜
+                            .fluentPut("qty", orderDetl.getQty())                    // 鏁伴噺
+                            .fluentPut("warehouse_number", "CK001")     // 浠撳簱
+                            .fluentPut("invstatus_number", "110")
+                            .fluentPut("invtype_number", "110")
+                            .fluentPut("outinvstatus_number", "110")
+                            .fluentPut("outinvtype_number", "110")
+                            .fluentPut("linetype_number", "010");
+                    billentryArray.add(billentry);
+                }
+                return new JSONObject()
+                        .fluentPut("data", new JSONArray(Arrays.asList(
+                                new JSONObject()
+//                                        .fluentPut("id", 0L)
+                                        .fluentPut("billno", order.getOrderNo())
+//                                        .fluentPut("bookdate", sdf1.format(nowMis))
+                                        .fluentPut("biztime", sdf1.format(nowOut))
+                                        .fluentPut("biztype_number", "354")
+                                        .fluentPut("billtype_number", "im_OtherInBill_STD_BT_S")
+                                        .fluentPut("org_number", "BU-00001")
+                                        .fluentPut("invscheme_number", "354")
+                                        .fluentPut("billentry", billentryArray)
+                        )));
             default:
-                // 榛樿澶勭悊锛氬彲浠ユ姏鍑哄紓甯告垨杩斿洖绌哄璞�
                 throw new IllegalArgumentException("Unsupported formId: " + kingDeeUtilType.formId);
         }
     }
@@ -157,11 +224,9 @@
     private ReturnT<String> sendRequestAndProcessResponse(Order order, ErpSecret erpSecret, JSONObject add) {
         String response = "";
         boolean success = false;
-
         try {
             // 璁剧疆璇锋眰澶�
             HashMap<String, Object> headers = buildRequestHeaders(erpSecret);
-
             // 鍙戦�佽姹傦紝灏� JSONObject 杞崲涓� String
             response = new HttpHandler.Builder()
                     .setHeaders(headers)
@@ -170,10 +235,8 @@
                     .setJson(add.toJSONString()) // 灏� JSONObject 杞崲涓� String
                     .build()
                     .doPost();
-
             // 瑙f瀽鍝嶅簲
             JSONObject jsonResponse = JSON.parseObject(response);
-
             // 鍒ゆ柇鏄惁鍥犱负 token 杩囨湡 (errorCode = 401)
             if ("401".equals(jsonResponse.getString("errorCode"))) {
                 log.error("璁よ瘉澶辫触锛屽皾璇曢噸鏂拌幏鍙� Token");
@@ -190,18 +253,15 @@
                         .build()
                         .doPost();
             }
-
             // 瑙f瀽杩斿洖鐨勫搷搴�
             JSONObject data = jsonResponse.getJSONObject("data");
             String errorCode = jsonResponse.getString("errorCode");
             boolean status = jsonResponse.getBooleanValue("status");
-
             // 妫�鏌ユ帴鍙h皟鐢ㄧ殑鏁翠綋鐘舵��
             if ("0".equals(errorCode) && status) {
                 // 鑾峰彇鎴愬姛涓庡け璐ョ殑鏁伴噺
                 int successCount = data.getInteger("successCount");
                 int failCount = data.getInteger("failCount");
-
                 if (failCount == 0) {
                     success = true;
                     log.info("鎺ュ彛璋冪敤鎴愬姛锛屾垚鍔熺殑鎿嶄綔鏁伴噺: {}", successCount);
@@ -211,10 +271,12 @@
                         JSONObject resultItem = resultArray.getJSONObject(i);
                         String billNo = resultItem.getString("number");  // 鑾峰彇杩斿洖鐨勫崟鎹彿
                         String billId = resultItem.getString("id");      // 鑾峰彇杩斿洖鐨処D
-                        order.setNumber(billId);
-                        orderService.updateById(order);
-                        log.info("璁㈠崟鍙� {} 涓庤繑鍥炵殑鍗曟嵁鍙峰尮閰嶏紝璁剧疆璁㈠崟 ID 涓� {}", order.getOrderNo(), billId);
-
+                        // 鍒ゆ柇杩斿洖鐨勫崟鎹彿涓庤鍗曞彿鏄惁涓�鑷�
+                        if (billNo != null && billNo.equals(order.getOrderNo())) {
+                            // 濡傛灉涓�鑷达紝璁剧疆璁㈠崟鐨� number
+                            order.setNumber(billId);
+                            log.info("璁㈠崟鍙� {} 涓庤繑鍥炵殑鍗曟嵁鍙峰尮閰嶏紝璁剧疆璁㈠崟 ID 涓� {}", order.getOrderNo(), billId);
+                        }
                     }
                 } else {
                     log.error("鎺ュ彛璋冪敤澶辫触锛屽け璐ョ殑鎿嶄綔鏁伴噺: {}", failCount);
@@ -242,7 +304,6 @@
             // 淇濆瓨鎺ュ彛鏃ュ織
             saveApiLog(add, response, success);
         }
-
         return success ? SUCCESS : FAIL;
     }
 
@@ -256,7 +317,7 @@
     private void saveApiLog(JSONObject add, String response, boolean success) {
         try {
             apiLogService.save(
-                    "杩涗粨閫氱煡鍗曚笂鎶ユ柊澧�",
+                    "鍏ュ簱涓婃姤鏂板",
                     URL + path,
                     null,
                     "127.0.0.1",
diff --git a/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java b/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
index bfd22f0..1b8cc73 100644
--- a/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
+++ b/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
@@ -1,27 +1,32 @@
 package com.zy.erp.kingdee.enums;
 
 public enum KingDeeUtilType {
-    BD_MATERIAL(0, "鐗╂枡妗f","BD_MATERIAL","","","",1),
-    BD_RRGANIZATION(2, "渚涘簲鍟�","BD_RRGANIZATION","","","",1),
-    PUR_RECEIVEBIll(3, "鏀舵枡鍗�","PUR_RECEIVEBIll","","","",1),
-//    INR(1, "杩涗粨閫氱煡搴撳崟涓婃姤","INR","FRealQty","","",1),
-//    PUR_MRB(2, "閲囪喘閫�鏂欏崟","PUR_MRB","FRMREALQTY","","",1),
-//    PRD_PickMtrl(3, "鐢熶骇棰嗘枡鍗�","PRD_PickMtrl","FActualQty","","",1),
-//    PRD_ReturnMtrl(4, "鐢熶骇閫�鏂欏崟","PRD_ReturnMtrl","FQty","","",1),
-//    PRD_FeedMtrl(5, "鐢熶骇琛ユ枡鍗�","PRD_FeedMtrl","FActualQty","","",1),
+//    BD_MATERIAL(0, "鐗╂枡妗f","BD_MATERIAL","","","",1),
+//    BD_RRGANIZATION(2, "渚涘簲鍟�","BD_RRGANIZATION","","","",1),
+//    PUR_RECEIVEBIll(3, "鏀舵枡鍗�","PUR_RECEIVEBIll","","","",1),
+//    SAL_OUTSTOCK(7, "閿�鍞嚭搴撳崟","SAL_OUTSTOCK","FRealQty","","",0),
+//    STK_MisDelivery(19, "鍏朵粬鍑哄簱鍗�","STK_MisDelivery","FQty","","",0),
+//    STK_MISCELLANEOUS(18, "鍏朵粬鍏ュ簱鍗�","STK_MISCELLANEOUS","FQty","鍏朵粬鍏ュ簱鍗�","STK_MISCELLANEOUS",1),
+
+//    SAL_RETURNSTOCK(9, "閿�鍞��璐у崟","SAL_RETURNSTOCK","FRealQty","","",1),
+//    PRD_PickMtrl(10, "鐢熶骇棰嗘枡鍗�","PRD_PickMtrl","","","",0),
+//    PRD_ReturnMtrl(12, "鐢熶骇閫�鏂欏崟","PRD_ReturnMtrl","FQty","","",1),
+//    PRD_FeedMtrl(14, "鐢熶骇琛ユ枡鍗�","PRD_FeedMtrl","FActualQty","","",0),
+    PRD_MORPT(16, "鐢熶骇姹囨姤鍗�","PRD_MORPT","FFinishQty","鐢熶骇鍏ュ簱鍗�","PRD_INSTOCK",1),
+//    STK_InspectionForm(20, "浜у搧妫�楠屽崟","STK_InspectionForm","","","",0),
+
+    //    PUR_MRB(2, "閲囪喘閫�鏂欏崟","PUR_MRB","FRMREALQTY","","",1),
 //    STK_TransferDirect(6, "鐩存帴璋冩嫧鍗�","STK_TransferDirect","","FQty","",1),
 //    STK_StockCountGain(7, "鐩樼泩鍗�","STK_StockCountGain","FGainQty","","",1),
 //    STK_StockCountLoss(8, "鐩樹簭鍗�","STK_StockCountLoss","FLossQty","","",1),
 //    STK_MisDelivery(9, "鍏朵粬鍑哄簱鍗�","STK_MisDelivery","FQty","","",1),
 //    SP_PickMtrl(10, "绠�鍗曠敓浜ч鏂欏崟","SP_PickMtrl","FActualQty","","",1),
 //    SP_ReturnMtrl(11, "绠�鍗曠敓浜ч��鏂欏崟","SP_ReturnMtrl","FQty","","",1),
-//    SAL_OUTSTOCK(12, "閿�鍞嚭搴撳崟","SAL_OUTSTOCK","FRealQty","","",1),
 //    SAL_RETURNSTOCK(13, "閿�鍞��璐у崟","SAL_RETURNSTOCK","FRealQty","","",1),
 //    SAL_DELIVERYNOTICE(14, "鍙戣揣閫氱煡鍗�","SAL_DELIVERYNOTICE","FQty","閿�鍞嚭搴撳崟","SAL_OUTSTOCK",0),
 //    STK_MISCELLANEOUS(15, "鍏朵粬鍏ュ簱鍗�","STK_MISCELLANEOUS","FQty","鍏朵粬鍏ュ簱鍗�","STK_MISCELLANEOUS",1),
 //    BD_Supplier(16, "渚涘簲鍟�","BD_Supplier","","","",1),
 //    PUR_ReceiveBill(17, "鏀舵枡閫氱煡鍗�","PUR_ReceiveBill","FPOQTY","閲囪喘鍏ュ簱鍗�","STK_InStock",1),
-//    PRD_MORPT(18, "鐢熶骇姹囨姤鍗�","PRD_MORPT","FFinishQty","鐢熶骇鍏ュ簱鍗�","PRD_INSTOCK",1),
 //    PRD_INSTOCK(19, "鐢熶骇鍏ュ簱鍗�","PRD_INSTOCK","","","",1),
 //    SAL_RETURNNOTICE(20, "閫�璐ч�氱煡鍗�","SAL_RETURNNOTICE","FBaseJunkedQty","閿�鍞��璐у崟","SAL_RETURNSTOCK",1),
 //    STK_OutStockApply(21, "鍑哄簱鐢宠鍗�","STK_OutStockApply","FTotalSecQty","鍏朵粬鍑哄簱鍗�","STK_MisDelivery",0),
@@ -43,7 +48,15 @@
         this.correspondingFormId = correspondingFormId;
         this.pakIn = pakIn;   //1鍏ュ簱  0鍑哄簱
     }
-
+    public static KingDeeUtilType getByFormId(String formId) {
+        if (formId == null) return null;
+        for (KingDeeUtilType type : values()) {
+            if (formId.equals(type.formId)) {
+                return type;
+            }
+        }
+        return null;
+    }
     public static KingDeeUtilType get(Short id) {
         if (null == id) {
             return null;

--
Gitblit v1.9.1