From 722fefac5d86bf9ddc4f2e252292cff0db8343cb Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期四, 05 三月 2026 16:32:12 +0800
Subject: [PATCH] 物料编码和采购单号组合去重

---
 src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java |   37 ++++++++++++++++++++++++++++---------
 1 files changed, 28 insertions(+), 9 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 322d2d6..3fef8ef 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
@@ -767,7 +767,10 @@
                                         orderDetlService.selectByOrderId(order.getId());
 
                                 boolean exists = orderDetls.stream()
-                                        .anyMatch(o -> o.getMatnr().equals(matnr));
+                                        .anyMatch(o ->
+                                                o.getMatnr().equals(matnr) &&
+                                                        o.getBoxType3().equals(pOrderNo)
+                                        );
                                 if (exists) continue;
 //                                // ========= 渚涘簲鍟� =========
                                 String supp = null;
@@ -939,7 +942,10 @@
                                         orderDetlService.selectByOrderId(order.getId());
 
                                 boolean exists = orderDetls.stream()
-                                        .anyMatch(o -> o.getMatnr().equals(matnr));
+                                        .anyMatch(o ->
+                                                o.getMatnr().equals(matnr) &&
+                                                        o.getBoxType3().equals(pOrderNo)
+                                        );
                                 if (exists) continue;
 //                                // ========= 渚涘簲鍟� =========
                                 String supp = null;
@@ -1104,7 +1110,10 @@
                                         orderDetlService.selectByOrderId(order.getId());
 
                                 boolean exists = orderDetls.stream()
-                                        .anyMatch(o -> o.getMatnr().equals(matnr));
+                                        .anyMatch(o ->
+                                                o.getMatnr().equals(matnr) &&
+                                                        o.getBoxType3().equals(pOrderNo)
+                                        );
                                 if (exists) continue;
 //                                // ========= 渚涘簲鍟� =========
                                 String supp = null;
@@ -1271,7 +1280,10 @@
 
 
                                 boolean exists = orderDetls.stream()
-                                        .anyMatch(o -> o.getMatnr().equals(matnr));
+                                        .anyMatch(o ->
+                                                o.getMatnr().equals(matnr) &&
+                                                        o.getBoxType3().equals(pOrderNo)
+                                        );
                                 if (exists) continue;
 //                                // ========= 渚涘簲鍟� =========
                                 String supp = null;
@@ -1444,7 +1456,10 @@
                                         orderDetlService.selectByOrderId(order.getId());
 
                                 boolean exists = orderDetls.stream()
-                                        .anyMatch(o -> o.getMatnr().equals(matnr));
+                                        .anyMatch(o ->
+                                                o.getMatnr().equals(matnr) &&
+                                                        o.getBoxType3().equals(pOrderNo)
+                                        );
                                 if (exists) continue;
 //                                // ========= 渚涘簲鍟� =========
                                 String supp = null;
@@ -1580,6 +1595,7 @@
                             }
                             for (int k = 0; k < billEntryArray.size(); k++) {
                                 JSONObject entry = billEntryArray.getJSONObject(k);
+                                String memo = null;
                                 String matnr = entry.getString("material_number"); //鐗╂枡缂栫爜锛屽唴閮⊿KU
                                 Double anfmeBox = entry.getDouble("eap7_integerfield");//绠辨暟
                                 Double anfme = entry.getDouble("completqty");//涓暟
@@ -1587,12 +1603,13 @@
                                 Double totalVolume = entry.getDouble("eap7_decimalfield2");//鎬讳綋绉�
                                 String warehouse = entry.getString("warehouse_number");//浠撳簱缂栫爜
                                 if(kingDeeUtilType.formId.equals("OUI_RECEIVEBIll")){
-
+                                    memo = entry.getString("eap7_textfield3"); //澶囨敞锛堣嫳鏂囨弿杩帮級
+                                }else{
+                                    memo = entry.getString("eap7_textfield5");
                                 }
                                 String pOrderNo = entry.getString("eap7_textfield");//閲囪喘鍗曞彿
                                 String s3 = entry.getString("eap7_textfield2");//瀹㈡埛sku锛堝鎴风紪鍙凤級
                                 String s2 = entry.getString("eap7_textfield1"); //鏉$爜UPC
-                                String memo = entry.getString("eap7_textfield5"); //澶囨敞锛堣嫳鏂囨弿杩帮級
                                 String s1 = entry.getString("eap7_textfield4"); //瀹㈡埛PO
                                 String detlId = entry.getString("id"); //鏄庣粏id
                                 Long seq = entry.getLong("seq"); //鍒嗗綍琛屽彿
@@ -1626,9 +1643,11 @@
                                 // ========= 鏄庣粏鍘婚噸 =========
                                 List<OrderDetl> orderDetls =
                                         orderDetlService.selectByOrderId(order.getId());
-
                                 boolean exists = orderDetls.stream()
-                                        .anyMatch(o -> o.getMatnr().equals(matnr));
+                                        .anyMatch(o ->
+                                                o.getMatnr().equals(matnr) &&
+                                                        o.getBoxType3().equals(pOrderNo)
+                                        );
                                 if (exists) continue;
 //                                // ========= 渚涘簲鍟� =========
                                 String supp = null;

--
Gitblit v1.9.1