From 40ada0315f79eaaa30dce2f246878b3ea0d7493b Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期六, 20 十二月 2025 12:49:48 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java |   80 +++++++++++++++++++++++++++++++++++++---
 1 files changed, 74 insertions(+), 6 deletions(-)

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 69f920a..026457d 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
@@ -9,6 +9,7 @@
 import com.zy.asrs.service.DocTypeService;
 import com.zy.asrs.service.OrderService;
 import com.zy.asrs.service.impl.ErpSecretServiceImpl;
+import com.zy.asrs.service.impl.MatServiceImpl;
 import com.zy.asrs.service.impl.OrderDetlPakinServiceImpl;
 import com.zy.asrs.service.impl.OrderDetlServiceImpl;
 import com.zy.asrs.task.AbstractHandler;
@@ -40,6 +41,8 @@
     private String imOtheroutbill;
     @Value("${erp.address.imOtherinbill}")
     private String imOtherinbill;
+    @Value("${erp.address.imProductinbillReport}")
+    private String imProductinbillReport;
 
     @Autowired
     private OrderService orderService;
@@ -61,6 +64,9 @@
     @Value("${erp.login.xAcfwIdentity}")
     private String xAcfwIdentity;
     String path;
+    @Autowired
+    private MatServiceImpl matService;
+
     @Transactional
     public ReturnT<String> start(Order order) {
         SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -97,15 +103,16 @@
                 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();
                     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 瀵硅薄
@@ -115,8 +122,8 @@
                             .fluentPut("billentry_lk_stableid", 677270092232273922L)
                             .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", orderDetl.getQty());  // 浣滀笟鏁伴噺
+                            .fluentPut("billentry_lk_baseqty_old", qtytotal)  // ERP鏁伴噺
+                            .fluentPut("billentry_lk_baseqty", qty);  // 浣滀笟鏁伴噺
                     billentryLkArray.add(billentryLk);
                     // 鍒涘缓 billentry 瀵硅薄锛屽~鍏呯己澶辩殑瀛楁
                     JSONObject billentry = new JSONObject()
@@ -126,7 +133,7 @@
                             .fluentPut("invtype_number", "110")  // 搴撳瓨绫诲瀷
                             .fluentPut("outinvstatus_number", "110")
                             .fluentPut("linetype_number", "010")  // 琛屽彿绫诲瀷
-                            .fluentPut("qty", orderDetl.getQty())  // 鏁伴噺
+                            .fluentPut("qty", qty)  // 鏁伴噺
                             .fluentPut("material_number", orderDetl.getMatnr())  // 鐗╂枡缂栧彿
                             .fluentPut("billentry_lk", billentryLkArray);
 
@@ -149,6 +156,65 @@
                                         .fluentPut("supplier_number", suppCode)  // 渚涘簲鍟嗙紪鍙�
                                         .fluentPut("billentry", billentryArray)  // 灏� billentry 鏁扮粍娣诲姞鍒拌姹傚弬鏁�
                         )));
+            case "PRD_MORPT": // 鐢熶骇姹囨姤鍗�
+                JSONArray billentryLkArray1 = new JSONArray();
+                JSONArray billentryArray1 = new JSONArray();  // 鐢ㄤ簬瀛樺偍 billentry 瀵硅薄
+                String suppCode1 = null;  // 渚涘簲鍟�
+                String boxType21 = null;  // 璐т富/璐ф簮
+                Date now1 = new Date();
+                path = imProductinbillReport;
+                for (OrderDetl orderDetl : orderDetlList) {
+                    suppCode1 = orderDetl.getSuppCode();
+                    boxType21 = 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", 677270092232273922L)
+                            .fluentPut("billentry_lk_sbillid", Long.parseLong(order.getItemName()))  // 涓诲崟ID
+                            .fluentPut("billentry_lk_sid", Long.parseLong(orderDetl.getThreeCode()))  // 鏄庣粏ID
+                            .fluentPut("billentry_lk_baseqty_old", qtytotal)  // ERP鏁伴噺
+                            .fluentPut("billentry_lk_baseqty", qty);  // 浣滀笟鏁伴噺
+                    billentryLkArray1.add(billentryLk);
+                    // 鍒涘缓 billentry 瀵硅薄锛屽~鍏呯己澶辩殑瀛楁
+                    JSONObject billentry = new JSONObject()
+                            .fluentPut("id", 0L)
+                            .fluentPut("warehouse_number", orderDetl.getManu())  // 浠撳簱缂栧彿
+                            .fluentPut("invstatus_number", "110")  // 搴撳瓨鐘舵��
+                            .fluentPut("invtype_number", "110")  // 搴撳瓨绫诲瀷
+                            .fluentPut("outinvstatus_number", "110")
+                            .fluentPut("linetype_number", "010")  // 琛屽彿绫诲瀷
+                            .fluentPut("qty", qty)  // 鏁伴噺
+                            .fluentPut("material_number", orderDetl.getMatnr())  // 鐗╂枡缂栧彿
+                            .fluentPut("billentry_lk", billentryLkArray1);
+
+                    billentryArray1.add(billentry);
+                }
+                return new JSONObject()
+                        .fluentPut("data", new JSONArray(Arrays.asList(
+                                new JSONObject()
+                                        .fluentPut("billno", UUID.randomUUID().toString().replace("-", "").substring(0, 16))
+                                        .fluentPut("trdbillno", UUID.randomUUID().toString().replace("-", ""))
+                                        .fluentPut("billtype_number", "im_PurInBill_STD_BT_S")
+                                        .fluentPut("biztime", sdf1.format(now1))
+                                        .fluentPut("exratedate", sdf1.format(now1))
+                                        .fluentPut("bizorg_number", boxType21)
+                                        .fluentPut("biztype_number", "110")  // 璐т富/璐ф簮
+                                        .fluentPut("org_number", boxType21)  // 璐т富/璐ф簮
+                                        .fluentPut("paymode", "CREDIT")
+                                        .fluentPut("invscheme_number", "110")
+                                        .fluentPut("billtype_number", "im_PurInBill_STD_BT_S")
+                                        .fluentPut("supplier_number", suppCode1)  // 渚涘簲鍟嗙紪鍙�
+                                        .fluentPut("billentry", billentryArray1)  // 灏� billentry 鏁扮粍娣诲姞鍒拌姹傚弬鏁�
+                        )));
             case "STK_MISCELLANEOUS": // 鍏朵粬鍏ュ簱鍗�
                 path = imOtherinbill;
                 billentryArray = new JSONArray();
@@ -156,10 +222,12 @@
                     if (orderDetl.getQty() == 0) {
                         continue;
                     }
+                    Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
+                    Double qty = orderDetl.getQty()*mat.getSafeQty();
                     JSONObject billentry = new JSONObject()
                             .fluentPut("id", 0L)
                             .fluentPut("material_number", orderDetl.getMatnr())       // 鐗╂枡缂栫爜
-                            .fluentPut("qty", orderDetl.getQty())                    // 鏁伴噺
+                            .fluentPut("qty", qty)                    // 鏁伴噺
                             .fluentPut("warehouse_number", "CK001")     // 浠撳簱
                             .fluentPut("invstatus_number", "110")
                             .fluentPut("invtype_number", "110")

--
Gitblit v1.9.1