From d592e47bb0aad0327ff1a3cecbe017783b50a6ea Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期六, 20 十二月 2025 09:15:00 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java |   98 +++++++++++++++++++++++++++++-------------------
 1 files changed, 59 insertions(+), 39 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 84ccd13..a64f5fc 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
@@ -153,11 +153,11 @@
                     path = orgAddress;
                     break;
                 case "PUR_RECEIVEBIll": //宸插鏍告敹鏂欏崟鏌ヨ
-                    jsonObject.put("start_biztime",  "2025-01-01 00:00:00");//涓氬姟璧峰鏃ユ湡
+                    jsonObject.put("start_biztime",  latestUpdateTime);//涓氬姟璧峰鏃ユ湡
                     jsonObject.put("end_biztime", sdf1.format(now));//涓氬姟缁撴潫鏃ユ湡
                     jsonObject.put("billno", null);
                     jsonObject.put("billstatus", Arrays.asList("C"));//鏁版嵁鐘舵�� [A:鏆傚瓨, B:宸叉彁浜�, C:宸插鏍竇
-                    jsonObject.put("start_auditdate", "2025-11-25 00:00:00");
+                    jsonObject.put("start_auditdate", latestUpdateTime);
                     jsonObject.put("end_auditdate", sdf1.format(now));
                     jsonObject.put("org_number", null);
                     jsonObject.put("supplier_number", null);
@@ -171,7 +171,7 @@
                     break;
                 case "SAL_RETURNSTOCK"://閿�鍞��璐�
                     path = scpSalreturn;
-                    jsonObject.put("modify_starttime",  "2025-11-25 00:00:00");//涓氬姟璧峰鏃ユ湡
+                    jsonObject.put("modify_starttime",  latestUpdateTime);//涓氬姟璧峰鏃ユ湡
                     jsonObject.put("billstatus",  "B");//鍗曟嵁鐘舵��
                     jsonObject.put("modify_endtime",  sdf1.format(now));//涓氬姟璧峰鏃ユ湡
                     jsonObject.put("billtype_number",  "im_SalOutBill_STD_BT_S_R");//鍗曟嵁绫诲瀷
@@ -180,7 +180,7 @@
                     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("start_createtime", latestUpdateTime);
                     jsonObject.put("end_createtime", sdf1.format(now));
 //                    jsonObject.put("end_auditdate", sdf1.format(now));
 //                    jsonObject.put("end_modifytime", sdf1.format(now));
@@ -195,7 +195,7 @@
                     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("start_createtime", latestUpdateTime);
                     jsonObject.put("end_createtime", sdf1.format(now));
 //                    jsonObject.put("start_modifytime",  "2025-11-25 00:00:00");
 //                    jsonObject.put("end_modifytime", sdf1.format(now));
@@ -208,7 +208,7 @@
                     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("start_createtime", latestUpdateTime);
                     jsonObject.put("end_createtime", sdf1.format(now));
 //                    jsonObject.put("start_modifytime",  "2025-11-25 00:00:00");
 //                    jsonObject.put("end_modifytime", sdf1.format(now));
@@ -218,13 +218,13 @@
                 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_start",latestUpdateTime);
                     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_start", latestUpdateTime);
                     jsonObject.put("auditdate_end", sdf1.format(now));
                     break;
             }
@@ -290,11 +290,12 @@
                             String matnr = jsonObjectNew.get("number").toString();
                             String name = jsonObjectNew.get("name").toString();
                             String createTime = jsonObjectNew.get("createtime").toString();
-                            Double grossweight = jsonObjectNew.get("grossweight") != null ? new BigDecimal(jsonObjectNew.get("eap7_decimalfield6").toString()).doubleValue() : 0.0;
-                            Double height = jsonObjectNew.get("height") != null ? new BigDecimal(jsonObjectNew.get("eap7_decimalfield9").toString()).doubleValue() : 0.0;
-                            Double width = jsonObjectNew.get("width") != null ? new BigDecimal(jsonObjectNew.get("eap7_decimalfield8").toString()).doubleValue() : 0.0;
-                            Double length = jsonObjectNew.get("length") != null ? new BigDecimal(jsonObjectNew.get("eap7_decimalfield7").toString()).doubleValue() : 0.0;
-                            Double netweight = jsonObjectNew.get("netweight") != null ? new BigDecimal(jsonObjectNew.get("eap7_decimalfield").toString()).doubleValue() : 0.0;
+                            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;
@@ -307,6 +308,7 @@
                                 mat.setTagId(tag.getId());
                                 mat.setWeight(grossweight);//鍑�閲�
                                 mat.setUnits(netweight);//姣涢噸
+                                mat.setSafeQty(unit);//
                                 mat.setManLength(length1);
                                 mat.setHeight(height1);
                                 mat.setWidth(width1);
@@ -326,6 +328,8 @@
                                     // 鏇存柊瀛楁
                                     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);
@@ -419,6 +423,8 @@
                             }
                         }
                     }
+                    docType.setUpdateTime(now);
+                    docTypeService.updateById(docType);
                 }
                 //鏀舵枡鍗�
                 else if(kingDeeUtilType.formId.equals("PUR_RECEIVEBIll")){
@@ -609,8 +615,9 @@
                                 }
                             }
                         }
-                        docTypeService.updateById(docType);
                     }
+                    docType.setUpdateTime(now);
+                    docTypeService.updateById(docType);
                 }
                 //閿�鍞嚭搴�
                 else if(kingDeeUtilType.formId.equals("SAL_OUTSTOCK")){
@@ -869,9 +876,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");//浠撳簱缂栫爜
@@ -941,9 +946,9 @@
                                 orderDetlService.insert(orderDetl);
                             }
                         }
-                        docType.setUpdateTime(now);
-                        docTypeService.updateById(docType);
                     }
+                    docType.setUpdateTime(now);
+                    docTypeService.updateById(docType);
                 }
                 //浜у搧妫�楠屽崟
                 else if(kingDeeUtilType.formId.equals("STK_InspectionForm")){
@@ -1106,9 +1111,9 @@
                                 orderDetlService.insert(orderDetl);
                             }
                         }
-                        docType.setUpdateTime(now);
-                        docTypeService.updateById(docType);
                     }
+                    docType.setUpdateTime(now);
+                    docTypeService.updateById(docType);
 
                 }
                 //鐢熶骇棰嗘枡锛岀敓浜цˉ鏂�
@@ -1191,7 +1196,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");//浠撳簱缂栫爜
@@ -1216,6 +1222,7 @@
                                             "鐗╂枡妗f涓嶅瓨鍦細" + matnr, false);
                                     continue;
                                 }
+                                anfmeBox = anfme/mat.getSafeQty();
                                 // ========= 鏄庣粏鍘婚噸 =========
                                 List<OrderDetl> orderDetls =
                                         orderDetlService.selectByOrderId(order.getId());
@@ -1234,7 +1241,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());
@@ -1261,10 +1268,10 @@
                                 orderDetlService.insert(orderDetl);
                             }
                         }
-                        docType.setUpdateTime(now);
-                        docTypeService.updateById(docType);
-                    }
 
+                    }
+                    docType.setUpdateTime(now);
+                    docTypeService.updateById(docType);
                 }
                 //鐢熶骇閫�鏂欏崟PRD_ReturnMtrl
                 else if(kingDeeUtilType.formId.equals("PRD_ReturnMtrl") ) {
@@ -1357,9 +1364,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");//浠撳簱缂栫爜
@@ -1383,6 +1389,7 @@
                                             "鍟嗗搧涓嶅瓨鍦細" + matnr, false);
                                     continue;
                                 }
+                                anfmeBox = anfme/mat.getSafeQty();
                                 // ========= 鏄庣粏鍘婚噸 =========
                                 List<OrderDetl> orderDetls =
                                         orderDetlService.selectByOrderId(order.getId());
@@ -1401,7 +1408,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());
@@ -1428,10 +1435,9 @@
                                 orderDetlService.insert(orderDetl);
                             }
                         }
-                        docType.setUpdateTime(now);
-                        docTypeService.updateById(docType);
                     }
-
+                    docType.setUpdateTime(now);
+                    docTypeService.updateById(docType);
                 }
                 //鐢熶骇姹囨姤鍗�
                 else if(kingDeeUtilType.formId.equals("PRD_MORPT")) {
@@ -1524,7 +1530,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 = entry.getDouble("eap7_integerfield");//绠辨暟
+                                Double anfme = entry.getDouble("completqty");//涓暟
                                 Double totalNumItems = entry.getDouble("eap7_decimalfield1");//鎬讳欢鏁�
                                 Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
                                 String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
@@ -1567,8 +1574,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);
@@ -1594,10 +1601,9 @@
                                 orderDetlService.insert(orderDetl);
                             }
                         }
-                        docType.setUpdateTime(now);
-                        docTypeService.updateById(docType);
                     }
-
+                    docType.setUpdateTime(now);
+                    docTypeService.updateById(docType);
                 }
 
 
@@ -1638,5 +1644,19 @@
                 "鍗曟嵁缂栧彿锛�" + order.getOrderNo() +  "銆佺姸鎬侊細" + order.getStatus$(),
                 response, bool);
     }
+    public Double getDecimalFieldAsDouble(JSONObject jsonObject, String fieldName) {
+        Object field = jsonObject.get(fieldName);
+
+        if (field instanceof BigDecimal) {
+            return ((BigDecimal) field).doubleValue();
+        } else if (field instanceof Integer) {
+            return ((Integer) field).doubleValue();
+        } else if (field instanceof Double) {
+            return (Double) field;
+        } else {
+            return 0.0; // 榛樿鍊�
+        }
+    }
+
 
 }
\ No newline at end of file

--
Gitblit v1.9.1