From 85f8eed3fa9f52a68dff30ea8bdee00fbc1d5938 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 22 十二月 2025 12:48:14 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java |   42 +++++++++++++++++++++++++++---------------
 1 files changed, 27 insertions(+), 15 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 b5c3bd5..fbe8310 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
@@ -558,6 +558,7 @@
                                             callApiLogSaveOrder(order,kingDeeUtilType, "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"+matnr, false);
                                             continue;
                                         }
+                                        Double erpAnfme = anfme*mat.getSafeQty();
                                         Order order1 = orderService.selectByNo( billNo);
                                         List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order1.getId());
                                         boolean sign = false;
@@ -579,7 +580,7 @@
                                         orderDetl.setThreeCode(detlId);//ERP鏄庣粏id
                                         orderDetl.setLineNumber(seq);//鍒嗗綍琛屽彿
                                         orderDetl.setAnfme(anfme);//鎬荤鏁�
-                                        orderDetl.setErpAnfme(anfme);//erp鏁版嵁
+                                        orderDetl.setErpAnfme(erpAnfme);//erp鏁版嵁
                                         orderDetl.setOrderId(order.getId());
                                         orderDetl.setOrderNo(order.getOrderNo());//琛ㄥご鍗曟嵁
                                         orderDetl.setSupp(supp);//渚涘簲鍟嗗悕绉帮紙璐ф簮锛�
@@ -735,6 +736,7 @@
                                             "鍟嗗搧涓嶅瓨鍦細" + matnr, false);
                                     continue;
                                 }
+                                Double erpAnfme = anfme*mat.getSafeQty();
                                 // ========= 鏄庣粏鍘婚噸 =========
                                 List<OrderDetl> orderDetls =
                                         orderDetlService.selectByOrderId(order.getId());
@@ -754,7 +756,7 @@
                                 orderDetl.setThreeCode(detlId);
                                 orderDetl.setLineNumber(seq);
                                 orderDetl.setAnfme(anfme);
-                                orderDetl.setErpAnfme(anfme);
+                                orderDetl.setErpAnfme(erpAnfme);
                                 orderDetl.setOrderId(order.getId());
                                 orderDetl.setOrderNo(order.getOrderNo());
                                 orderDetl.setSupp(supp);
@@ -876,9 +878,7 @@
                             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 anfme = 1.0;//绠辨暟
-
+                                Double anfme = entry.getDouble("eap7_decimalfield");//绠辨暟
                                 Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
                                 Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
                                 String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
@@ -903,6 +903,7 @@
                                             "鍟嗗搧涓嶅瓨鍦細" + matnr, false);
                                     continue;
                                 }
+                                Double erpAnfme = anfme*mat.getSafeQty();
                                 // ========= 鏄庣粏鍘婚噸 =========
                                 List<OrderDetl> orderDetls =
                                         orderDetlService.selectByOrderId(order.getId());
@@ -922,7 +923,7 @@
                                 orderDetl.setThreeCode(detlId);
                                 orderDetl.setLineNumber(seq);
                                 orderDetl.setAnfme(anfme);
-                                orderDetl.setErpAnfme(anfme);
+                                orderDetl.setErpAnfme(erpAnfme);
                                 orderDetl.setOrderId(order.getId());
                                 orderDetl.setOrderNo(order.getOrderNo());
                                 orderDetl.setSupp(supp);
@@ -1198,7 +1199,8 @@
                             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 anfme = entry.getDouble("qty");//涓暟
+                                Double anfmeBox = 0.0;//绠辨暟
                                 Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
                                 Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
                                 String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
@@ -1210,6 +1212,10 @@
                                 String detlId = entry.getString("id"); //鏄庣粏id
                                 Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
 //                                String suppCode = entry.getString("supplier_number");
+                                if(anfme == 0){
+                                    callApiLogSaveOrder(order,kingDeeUtilType, "鍗曟嵁鏁伴噺寮傚父"+matnr, false);
+                                    continue;
+                                }
                                 String suppCode = null;
                                 if (anfme == null || anfme == 0) {
                                     callApiLogSaveOrder(order, kingDeeUtilType,
@@ -1223,9 +1229,11 @@
                                             "鐗╂枡妗f涓嶅瓨鍦細" + matnr, false);
                                     continue;
                                 }
+                                anfmeBox = Math.floor(anfme / mat.getSafeQty());
                                 // ========= 鏄庣粏鍘婚噸 =========
                                 List<OrderDetl> orderDetls =
                                         orderDetlService.selectByOrderId(order.getId());
+
 
                                 boolean exists = orderDetls.stream()
                                         .anyMatch(o -> o.getMatnr().equals(matnr));
@@ -1241,7 +1249,7 @@
                                 orderDetl.sync(mat);
                                 orderDetl.setThreeCode(detlId);
                                 orderDetl.setLineNumber(seq);
-                                orderDetl.setAnfme(anfme);
+                                orderDetl.setAnfme(anfmeBox);
                                 orderDetl.setErpAnfme(anfme);
                                 orderDetl.setOrderId(order.getId());
                                 orderDetl.setOrderNo(order.getOrderNo());
@@ -1266,6 +1274,7 @@
                                 orderDetl.setQty(0.0D);
 
                                 orderDetlService.insert(orderDetl);
+
                             }
                         }
 
@@ -1364,9 +1373,8 @@
                             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 anfme = 1.0;//绠辨暟
-
+                                Double anfme = entry.getDouble("qty");//涓暟
+                                Double anfmeBox = 0.0;
                                 Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
                                 Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
                                 String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
@@ -1390,6 +1398,7 @@
                                             "鍟嗗搧涓嶅瓨鍦細" + matnr, false);
                                     continue;
                                 }
+                                anfmeBox = Math.floor(anfme / mat.getSafeQty());
                                 // ========= 鏄庣粏鍘婚噸 =========
                                 List<OrderDetl> orderDetls =
                                         orderDetlService.selectByOrderId(order.getId());
@@ -1404,11 +1413,12 @@
                                     supp = locSupp.getOwner();
                                 }
                                 // ========= 淇濆瓨鏄庣粏 =========
+
                                 OrderDetl orderDetl = new OrderDetl();
                                 orderDetl.sync(mat);
                                 orderDetl.setThreeCode(detlId);
                                 orderDetl.setLineNumber(seq);
-                                orderDetl.setAnfme(anfme);
+                                orderDetl.setAnfme(anfmeBox);
                                 orderDetl.setErpAnfme(anfme);
                                 orderDetl.setOrderId(order.getId());
                                 orderDetl.setOrderNo(order.getOrderNo());
@@ -1530,7 +1540,8 @@
                             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 anfmeBox = 0.0;//绠辨暟
+                                Double anfme = entry.getDouble("completqty");//涓暟
                                 Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
                                 Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
                                 String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
@@ -1555,6 +1566,7 @@
                                             "鍟嗗搧涓嶅瓨鍦細" + matnr, false);
                                     continue;
                                 }
+                                anfmeBox = Math.floor(anfme / mat.getSafeQty());
                                 // ========= 鏄庣粏鍘婚噸 =========
                                 List<OrderDetl> orderDetls =
                                         orderDetlService.selectByOrderId(order.getId());
@@ -1573,8 +1585,8 @@
                                 orderDetl.sync(mat);
                                 orderDetl.setThreeCode(detlId);
                                 orderDetl.setLineNumber(seq);
-                                orderDetl.setAnfme(anfme);
-                                orderDetl.setErpAnfme(anfme);
+                                orderDetl.setAnfme(anfmeBox);
+                                orderDetl.setErpAnfme(anfme);//姹囨姤鍗曚釜鏁�
                                 orderDetl.setOrderId(order.getId());
                                 orderDetl.setOrderNo(order.getOrderNo());
                                 orderDetl.setSupp(supp);

--
Gitblit v1.9.1