From b302f1da85a18ae264b638398224b0ccf492164a Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期一, 05 一月 2026 10:16:50 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java         |    2 
 src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java   |   84 +++++++++++++
 src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java |    7 +
 src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java                |    2 
 src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java          |   10 +
 src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java    |  193 +++++++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java |   12 +
 7 files changed, 303 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java
index 1311acd..185baf5 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java
@@ -17,6 +17,14 @@
     private InboundOrderHandler inboundOrderHandler;
     @Value("${erp.switch.InboundOrderSwitch}")
     private boolean InboundOrderSwitch;
+    // 姣�15鍒嗛挓鍚屾涓�娆$墿鏂欐。妗�,闃叉妗f浣嶅悓姝ュ崟鎹厛鑾峰彇
+    @Scheduled(cron = "0 */15 * * * ?")
+    void syncMaterialData() {
+        if (!InboundOrderSwitch) {
+            return;
+        }
+        inboundOrderHandler.syncMaterialData(); // 鍚屾鐗╂枡妗f
+    }
 
     @Scheduled(cron = "0 */30 * * * ?")
 //    @Scheduled(cron = "0/5 * * * * ?")
@@ -30,4 +38,6 @@
         }
     }
 
+
+
 }
diff --git a/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
index fbd78e6..ca4c2ac 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
@@ -47,7 +47,7 @@
             List<Order> orders = orderService.selectComplete();
             if(orders.size() > 0){
                 for (Order order : orders) {
-                    if((order.getDocType() == 3 || order.getDocType() == 16 || order.getDocType() == 23) && order.getPayType() == null){ //璧版柊澧炴彁浜ゅ鏍告祦绋�
+                    if((order.getDocType() == 3 || order.getDocType() == 16 || order.getDocType() == 23 || order.getDocType() == 24) && order.getPayType() == null){ //璧版柊澧炴彁浜ゅ鏍告祦绋�
                         ReturnT<String> result = saveOrderSyncHandler.start(order);//4宸插畬鎴�
                         if (!result.isSuccess()) {
                             log.error("鍗曟嵁[orderNo={}]鏂板淇濆瓨鑷砮rp澶辫触", order.getOrderNo());
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 7a19ef6..a55c243 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
@@ -71,7 +71,9 @@
     @Value("${erp.address.qcppManuinspec}")
     //浜у搧妫�楠屽崟
     private String qcppManuinspec;
-
+    @Value("${erp.address.omOutsourcereceiptQuery}")
+    //濮斿鍏ュ簱鍗�
+    private String omOutsourcereceiptQuery;
     @Autowired
     private ApiLogService apiLogService;
 
@@ -163,6 +165,11 @@
                     jsonObject.put("supplier_number", null);
                     path = imPurreceiveBillAddress;
                     break;
+                case "OUI_RECEIVEBIll"://濮斿鍏ュ簱鍗�
+                    jsonObject.put("billstatus", Arrays.asList("A"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
+                    jsonObject.put("auditdate_start", latestUpdateTime);
+                    jsonObject.put("auditdate_end", sdf1.format(now));
+                    path = omOutsourcereceiptQuery;
                 case "SAL_OUTSTOCK"://閿�鍞嚭搴撳崟鏌ヨ
                     path = imSaloutbill;
                     jsonObject.put("modify_starttime",  latestUpdateTime);//涓氬姟璧峰鏃ユ湡
@@ -1475,7 +1482,7 @@
                     docTypeService.updateById(docType);
                 }
                 //鐢熶骇姹囨姤鍗�
-                else if(kingDeeUtilType.formId.equals("PRD_MORPT")) {
+                else if(kingDeeUtilType.formId.equals("PRD_MORPT") || kingDeeUtilType.formId.equals("OUI_RECEIVEBIll")) {
                     int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
                     int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
                     int totalPages = (int) Math.ceil((double) totalCount / pageSize);
@@ -1580,7 +1587,15 @@
                                 Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
                                 String manubill = entry.getString("manufacturenun");
                                 String manubillid = entry.getString("orderid_id");
-                                String manuentryid = entry.getString("mftentryid");
+                                String manuentryid = null;
+                                String manuentry = null;
+                                if(kingDeeUtilType.formId.equals("PRD_MORPT")){
+                                    manuentryid = entry.getString("mftentryid");
+
+                                }else{
+                                    manuentryid = entry.getString("osentryid");
+                                    manuentry = entry.getString("manufacturerow");
+                                }
                                 String suppCode = null;
                                 if (anfme == null || anfme == 0) {
                                     callApiLogSaveOrder(order, kingDeeUtilType,
@@ -1613,6 +1628,8 @@
                                 orderDetl.sync(mat);
                                 orderDetl.setModel(manubillid);//orderid_id
                                 orderDetl.setBrand(manuentryid);//manuentryid
+                                orderDetl.setSpecs(manuentry);//manufacturerow
+                                orderDetl.setColor(manubill);//manufacturenun
                                 orderDetl.setThreeCode(detlId);
                                 orderDetl.setLineNumber(seq);
                                 orderDetl.setAnfme(anfmeBox);
@@ -1659,6 +1676,176 @@
         return SUCCESS;
     }
 
+    public synchronized ReturnT<String> syncMaterialData(){
+        SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");
+        //璇诲彇token
+        ErpSecret erpSecret = erpSecretService.selectOne(new EntityWrapper<ErpSecret>().eq("account_id", accountId));
+        for(KingDeeUtilType kingDeeUtilType : KingDeeUtilType.values()) {
+            if (!kingDeeUtilType.formId.equals("BD_MATERIAL")) {
+                continue;
+            }
+            DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", kingDeeUtilType.desc));
+            if (Cools.isEmpty(docType) && !kingDeeUtilType.formId.equals("BD_MATERIAL")) {
+                docType = docTypeService.selectOrAdd(kingDeeUtilType.desc, kingDeeUtilType.pakIn.equals(1));
+            }
+            //鏉′欢鍜岄渶瑕佽幏寰楃殑缁撴灉鎷兼帴
+            JSONObject jsonObject = new JSONObject();
+            String path = null;
+            Date now = new Date();
+            String latestUpdateTime = sdf1.format(docType.getUpdateTime());
+            switch (kingDeeUtilType.formId) {
+                case "BD_MATERIAL": //鐗╂枡鍚屾
+                    jsonObject.put("id", null);//id
+                    jsonObject.put("number", null);//缂栫爜
+                    jsonObject.put("createorg_number", null);//鍒涘缓缁勭粐
+                    jsonObject.put("start_createtime", "2025-01-01 00:00:00");//鍒涘缓璧峰
+                    jsonObject.put("end_createtime", sdf1.format(now));//鍒涘缓鎴
+                    jsonObject.put("start_modifytime", latestUpdateTime);//鏇存柊璧峰
+                    jsonObject.put("end_modifytime", sdf1.format(now));//鏇存柊鎴
+                    jsonObject.put("start_approvedate", "2025-01-01");//瀹℃牳璧峰
+                    jsonObject.put("end_approvedate", sdf2.format(now));//瀹℃牳鎴
+                    jsonObject.put("status", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
+                    path = matAddress;
+                    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<>();
+                headers.put("accesstoken", erpSecret.getAccessToken());
+                headers.put("x-acgw-identity", xAcfwIdentity);  // 鑷畾涔夎姹傚ご
+                response = new HttpHandler.Builder()
+                        .setHeaders(headers)
+                        .setUri(URL)
+                        .setPath(path)
+                        .setJson(add)
+                        .build()
+                        .doPost();
+                JSONObject jsonResponse = JSON.parseObject(response);
+                if (jsonResponse.getString("errorCode").equals("401")) {
+                    log.error("妫�绱㈠け璐ラ敊璇俊鎭細{}", jsonResponse.getString("message"));
+                    loginAuthenticationHandler.start();
+                    continue;
+                }
+                JSONArray data = jsonResponse.getJSONObject("data").getJSONArray("rows");
+                if (data.size() <= 0) continue;
+                //鍟嗗搧妗f鍚屾
+                if (kingDeeUtilType.formId.equals("BD_MATERIAL")) {
+                    Tag tag = tagService.selectByName("鍏ㄩ儴", 1);
+                    // 澶勭悊鍒嗛〉锛氭牴鎹繑鍥炵殑totalCount鍜宲ageSize璁$畻椤垫暟
+                    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 modifyTime = sdf1.parse(jsonObjectNew.get("modifytime").toString());
+                            String matnr = jsonObjectNew.get("number").toString();
+                            String name = jsonObjectNew.get("name").toString();
+                            String createTime = jsonObjectNew.get("createtime").toString();
+                            Double height = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield9");
+                            Double width = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield8");
+                            Double length = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield7");
+                            Double grossweight = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield6");
+                            Double netweight = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield");
+                            Double unit = getDecimalFieldAsDouble(jsonObjectNew, "eap7_decimalfield2");
+                            // 鐢熸垚鍟嗗搧妗f
+                            Double height1 = height * 10;
+                            Double width1 = width * 10;
+                            Double length1 = length * 10;
+                            Mat mat = matService.selectByMatnr(matnr);
+                            if (mat == null) {
+                                mat = new Mat();
+                                mat.setMatnr(matnr);
+                                mat.setMaktx(name);
+                                mat.setTagId(tag.getId());
+                                mat.setWeight(grossweight);//鍑�閲�
+                                mat.setUnits(netweight);//姣涢噸
+                                mat.setSafeQty(unit);//
+                                mat.setManLength(length1);
+                                mat.setHeight(height1);
+                                mat.setWidth(width1);
+                                mat.setCreateTime(sdf1.parse(createTime));
+                                mat.setUpdateTime(modifyTime);
+                                mat.setStatus(1);
+                                if (!matService.insert(mat)) {
+                                    callApiLogSaveMat(mat, kingDeeUtilType, "鍚屾鏂扮墿鏂欏嚭閿欙紒" + mat, false);
+                                    log.info("鍚屾鏂扮墿鏂欏嚭閿欙紒鍙傛暟锛歔{}]銆乕{}]", mat, jsonObjectNew);
+                                } else {
+                                    callApiLogSaveMat(mat, kingDeeUtilType, "鍚屾鏂扮墿鏂欐垚鍔燂紒", true);
+                                    success = true;
+                                }
+                            } else {
+                                boolean isUpdated = false;
+                                if (mat.getUpdateTime().compareTo(modifyTime) != 0) {
+                                    // 鏇存柊瀛楁
+                                    if (!mat.getMaktx().equals(name)) mat.setMaktx(name);
+                                    if (mat.getWeight().compareTo(grossweight) != 0) mat.setWeight(grossweight);
+                                    if (mat.getUnits().compareTo(netweight) != 0) mat.setUnits(netweight);
+                                    if (mat.getSafeQty().compareTo(unit) != 0) mat.setSafeQty(unit);
+                                    if (mat.getManLength().compareTo(length) != 0) mat.setManLength(length1);
+                                    if (mat.getHeight().compareTo(height) != 0) mat.setHeight(height1);
+                                    if (mat.getWidth().compareTo(width) != 0) mat.setWidth(width1);
+                                    if (mat.getCreateTime().compareTo(sdf1.parse(createTime)) != 0)
+                                        mat.setCreateTime(sdf1.parse(createTime));
+                                    mat.setUpdateTime(modifyTime);
+                                    isUpdated = true;
+                                }
+                                // 鎵ц鏇存柊鎿嶄綔
+                                if (isUpdated) {
+                                    if (!matService.updateById(mat)) {
+                                        callApiLogSaveMat(mat, kingDeeUtilType, "鏇存柊鐗╂枡鍑洪敊锛�" + mat, false);
+                                        log.info("鏇存柊鐗╂枡[鍟嗗搧缂栧彿锛歿}], 鏇存柊澶辫触锛�", mat.getMatnr());
+                                    } else {
+                                        callApiLogSaveMat(mat, kingDeeUtilType, "鏇存柊鐗╂枡鎴愬姛锛�", true);
+                                        success = true;
+                                        log.info("鏇存柊鐗╂枡[鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    if (success) {
+                        docType.setUpdateTime(now);
+                        docTypeService.updateById(docType);
+                    }
+                }
+            }catch (Exception e) {
+                log.error("fail", e);
+                return FAIL.setMsg(e.getMessage());
+            }
+        }
+        return SUCCESS;
+    }
+
     public void callApiLogSaveMat(Mat mat, KingDeeUtilType kingDeeUtilType, String response, Boolean bool) {
         apiLogService.save("鑾峰彇"+kingDeeUtilType.desc, kingDeeUtilType.formId, "null", URL,
                 "鐗╂枡缂栧彿锛�" + mat.getMatnr() + "銆佺墿鏂欏悕绉帮細" + mat.getMaktx() + "銆佹瘺閲嶏細" + mat.getWeight()
diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java
index 7983027..7570676 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java
@@ -65,6 +65,10 @@
     @Value("${erp.address.imOtherinbillAudit}")
     //鍏朵粬鍏ュ簱瀹℃牳涓婃姤
     private String imOtherinbillAudit;
+
+    @Value("${erp.address.imMdcOmprdinbillBatchAudit}")
+    //鍏朵粬鍏ュ簱瀹℃牳涓婃姤
+    private String imMdcOmprdinbillBatchAudit;
     @Autowired
     private OrderService orderService;
     @Autowired
@@ -126,6 +130,11 @@
                 idArray.add(order.getShipCode());
                 dataObj.fluentPut("billno", idArray);
                 return new JSONObject().fluentPut("data", dataObj);
+            case "OUI_RECEIVEBIll":
+                path = imMdcOmprdinbillBatchAudit;
+                idArray.add(order.getShipCode());
+                dataObj.fluentPut("billno", idArray);
+                return new JSONObject().fluentPut("data", dataObj);
             case "SAL_RETURNSTOCK"://閿�鍞��鏂欏崟
                 path = scpSalreturnReport;
                 dataObj.fluentPut("billno", order.getOrderNo());
@@ -150,6 +159,7 @@
                 idArray.add(order.getNumber());
                 dataObj.fluentPut("ids", idArray);
                 return new JSONObject().fluentPut("data", dataObj);
+
             case "STK_MISCELLANEOUS"://鍏朵粬鍏ュ簱鍗�
                 path = imOtheroutbillAudi;
                 idArray.add(order.getId());
@@ -232,7 +242,7 @@
                     order.setDocType(23L);
                     order.setSettle(4L);//杞负鍑哄簱鍗曟嵁涓婃姤
                 }else{
-                    if(order.getDocType() == 23L){
+                    if(order.getDocType() == 23L || order.getDocType() == 24L){
                         Order order1 = orderService.selectOne(new EntityWrapper<Order>().eq("salesman",order.getOrderNo()));
                         orderService.updateOrderStatus4(order1.getOrderNo());
                     }
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 c979317..f97c13d 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
@@ -45,7 +45,8 @@
     private String imProductinbillReport;
     @Value("${erp.address.imSaloutbillSave}")
     private String imSaloutbillSave;
-
+    @Value("${erp.address.imMdcOmprdinbillSave}")
+    private String imMdcOmprdinbillSave;
     @Autowired
     private OrderService orderService;
     @Autowired
@@ -238,6 +239,87 @@
 
                                         .fluentPut("billentry", billentryArray1)  // 灏� billentry 鏁扮粍娣诲姞鍒拌姹傚弬鏁�
                         )));
+            case "OUI_RECEIVEBIll":
+                JSONArray billentryLkArray2 = new JSONArray();
+                JSONArray billentryArray2 = new JSONArray();  // 鐢ㄤ簬瀛樺偍 billentry 瀵硅薄
+                String suppCode2 = null;  // 渚涘簲鍟�
+                String boxType22 = null;  // 璐т富/璐ф簮
+                Date now2 = new Date();
+                path = imMdcOmprdinbillSave;
+                for (OrderDetl orderDetl : orderDetlList) {
+                    suppCode2 = orderDetl.getSuppCode();
+                    boxType22 = orderDetl.getBoxType2();
+                    if (orderDetl.getQty() == 0) {
+                        continue;
+                    }
+                    Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
+                    Double qty = orderDetl.getQty()*mat.getSafeQty();
+//                    Double qtytotal = orderDetl.getAnfme()*mat.getSafeQty();
+//                    JSONArray idArr = new JSONArray();
+//                    idArr.add(0L);
+                    // 鍒涘缓 billentry_lk 瀵硅薄
+                    JSONObject billentryLk = new JSONObject()
+                            .fluentPut("id", 0L)
+                            .fluentPut("seq", orderDetl.getLineNumber())
+                            .fluentPut("billentry_lk_stableid", 1014628189722381313L)
+                            .fluentPut("billentry_lk_sbillid", Long.parseLong(order.getItemName()))  // 涓诲崟ID
+                            .fluentPut("billentry_lk_sid", Long.parseLong(orderDetl.getThreeCode())); // 鏄庣粏ID
+//                            .fluentPut("billentry_lk_baseqty_old", orderDetl.getErpAnfme())  // ERP鏁伴噺
+//                            .fluentPut("billentry_lk_baseqty", qty);  // 浣滀笟鏁伴噺
+                    billentryLkArray2.add(billentryLk);
+                    // 鍒涘缓 billentry 瀵硅薄锛屽~鍏呯己澶辩殑瀛楁
+                    JSONObject billentry = new JSONObject()
+                            .fluentPut("id", 0L)
+                            .fluentPut("warehouse_number", orderDetl.getManu())  // 浠撳簱缂栧彿
+                            .fluentPut("qty", qty)  // 鏁伴噺
+                            .fluentPut("baseqty", orderDetl.getErpAnfme())
+                            .fluentPut("ownertype", "bos_org")
+                            .fluentPut("keepertype", "bos_org")
+                            .fluentPut("outownertype", "bos_org")
+                            .fluentPut("outkeepertype", "bos_org")
+                            .fluentPut("keeper_number", "BU-00001")
+                            .fluentPut("owner_number", "BU-00001")
+                            .fluentPut("manuentry", orderDetl.getSpecs())
+                            .fluentPut("manubill", orderDetl.getColor())
+                            .fluentPut("manubillid", orderDetl.getModel())
+                            .fluentPut("manuentryid", orderDetl.getBrand())
+                            .fluentPut("producttype", "C")
+                            .fluentPut("eap7_textfield", orderDetl.getBoxType3())
+
+                            .fluentPut("unit_number", "pcs")
+                            .fluentPut("baseunit_number", "pcs")
+                            .fluentPut("warehouse_number", "CK-002")
+                            .fluentPut("owner_number", "BU-00001")
+                            .fluentPut("keeper_number", "BU-00001")
+                            .fluentPut("invtype_number", "110")
+                            .fluentPut("outowner_number", "BU-00001")
+                            .fluentPut("outkeeper_number", "BU-00001")
+                            .fluentPut("shipper_number", "BU-00001")
+                            .fluentPut("entrysettleorg_number", "BU-00001")
+                            .fluentPut("material_number", orderDetl.getMatnr())
+
+                            .fluentPut("billentry_lk", billentryLkArray2);
+
+                    billentryArray2.add(billentry);
+                }
+                return new JSONObject()
+                        .fluentPut("data", new JSONArray(Arrays.asList(
+                                new JSONObject()
+                                        .fluentPut("billno", UUID.randomUUID().toString().replace("-", "").substring(0, 16))
+                                        .fluentPut("billstatus", "C")
+                                        .fluentPut("id", 0L)
+                                        .fluentPut("biztime", sdf1.format(now2))
+                                        .fluentPut("org_number", "BU-00001")
+                                        .fluentPut("billtype_number", "im_mdc_omprdinbill_BT_S")
+                                        .fluentPut("bizorg_number", "BU-00001")
+                                        .fluentPut("bizdept_number", "Org-00001")
+                                        .fluentPut("dept_number", "Org-00001")
+                                        .fluentPut("biztype_number", "605")
+                                        .fluentPut("invscheme_number", "601")
+                                        .fluentPut("purorg_number", "BU-00001")
+                                        .fluentPut("productionorg_number", "BU-00001")
+                                        .fluentPut("billentry", billentryArray2)  // 灏� billentry 鏁扮粍娣诲姞鍒拌姹傚弬鏁�
+                        )));
             case "STK_imSaloutbill":
                 path = imSaloutbillSave;
                 billentryArray = new JSONArray();
diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java
index 7d81463..870e6c9 100644
--- a/src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java
@@ -48,6 +48,8 @@
     private String imProductinbillBatchSubmit;
     @Value("${erp.address.imSaloutbillSaveSubmit}")
     private String imSaloutbillSaveSubmit;
+    @Value("${erp.address.imMdcOmprdinbillBatchSubmit}")
+    private String imMdcOmprdinbillBatchSubmit;
     @Autowired
     private LoginAuthenticationHandler loginAuthenticationHandler;
     @Autowired
@@ -106,6 +108,11 @@
                 idArray.add(order.getShipCode());
                 dataObj.fluentPut("billno", idArray);
                 return new JSONObject().fluentPut("data", dataObj);
+            case "OUI_RECEIVEBIll":
+                path = imMdcOmprdinbillBatchSubmit;
+                idArray.add(order.getShipCode());
+                dataObj.fluentPut("billno", idArray);
+                return new JSONObject().fluentPut("data", dataObj);
             case "STK_MISCELLANEOUS"://鍏朵粬鍏ュ簱鍗�
                 path = imOtherinbillSubmit;
                 idArray.add(order.getOrderNo());
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 cc8c3c1..b6779d6 100644
--- a/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
+++ b/src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
@@ -13,7 +13,7 @@
     PRD_ReturnMtrl(12, "鐢熶骇閫�鏂欏崟","PRD_ReturnMtrl","","","",1),
     PRD_FeedMtrl(14, "鐢熶骇琛ユ枡鍗�","PRD_FeedMtrl","","","",0),
     PRD_MORPT(16, "鐢熶骇姹囨姤鍗�","PRD_MORPT","","鐢熶骇鍏ュ簱鍗�","",1),
-//  (20, "濮斿鍏ュ簱鍗�","STK_InspectionForm","","","",0),
+    OUI_RECEIVEBIll(24, "濮斿鍏ュ簱鍗�","OUI_RECEIVEBIll","","","",1),
 
     //    PUR_MRB(2, "閲囪喘閫�鏂欏崟","PUR_MRB","FRMREALQTY","","",1),
 //    STK_TransferDirect(6, "鐩存帴璋冩嫧鍗�","STK_TransferDirect","","FQty","",1),

--
Gitblit v1.9.1