From 047545d48c78f39e8cf4082dbcdd2be15654470f Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期四, 11 十二月 2025 16:12:20 +0800
Subject: [PATCH] 订单bom界面bom查询bug,部分情况重量不显示bug

---
 north-glass-erp/src/main/java/com/example/erp/mapper/sd/BomDataMapper.java   |    2 +-
 north-glass-erp/northglass-erp/src/views/sd/bom/OrderBOM.vue                 |    2 +-
 north-glass-erp/src/main/resources/mapper/sd/BomDataMapper.xml               |   14 +++++++++-----
 north-glass-erp/src/main/java/com/example/erp/service/sd/BomDataService.java |    2 +-
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml                    |    9 ++++++---
 5 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/sd/bom/OrderBOM.vue b/north-glass-erp/northglass-erp/src/views/sd/bom/OrderBOM.vue
index 4e6c533..2fdef27 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/bom/OrderBOM.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/bom/OrderBOM.vue
@@ -508,7 +508,7 @@
                     }
                   })
                   // 璁$畻鎬讳环
-                  product.totalPrice = details.reduce((sum, d) => sum + (d.materialPric || 0), 0)
+                  product.totalPrice = details.reduce((sum, d) => sum + (d.materialPric || 0) , 0)
                 })
                 dialogTableVisible.value = true
               }
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/BomDataMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/BomDataMapper.java
index 070f89f..14e2c10 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/BomDataMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/BomDataMapper.java
@@ -21,7 +21,7 @@
 
     List<Map<String, String>> getOrderBomDataMp(String orderId);
 
-    List<Map<String, String>> getBOMDetails(Integer productId);
+    List<Map<String, String>> getBOMDetails(Integer productId, String orderId);
 
     List<Map<String, String>> getOrderBomSumDataMp(String orderId);
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/BomDataService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/BomDataService.java
index caf15b6..7d10a9d 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/BomDataService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/BomDataService.java
@@ -95,7 +95,7 @@
         if (!orderDetailsList.isEmpty()) {
             for (OrderDetail od : orderDetailsList) {
                 Map<String, Object> itemmap = new HashMap<>();
-                itemmap.put("data", bomDataMapper.getBOMDetails(od.getProductId()));
+                itemmap.put("data", bomDataMapper.getBOMDetails(od.getProductId(),od.getOrderId()));
                 list.add(itemmap);
 
             }
diff --git a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
index de8a8cd..33f08a2 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -1630,7 +1630,8 @@
                pd.separation,
                fc.technology_number,
                IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
-               od.building_number
+               od.building_number,
+               od.weight
         from flow_card as fc
                  left join sd.order_glass_detail as ogd
                            on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
@@ -1687,7 +1688,8 @@
                fc.technology_number,
                IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
                od.building_number,
-               fc.merge                                                         as merge
+               fc.merge                                                         as merge,
+               od.weight
         from flow_card as fc
                  left join sd.order_glass_detail as ogd
                            on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
@@ -3624,7 +3626,8 @@
         pd.separation,
         #{compound} as technology_number,
         IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
-        od.building_number
+        od.building_number,
+        od.weight
         from flow_card as fc
         left join sd.order_glass_detail as ogd
         on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
diff --git a/north-glass-erp/src/main/resources/mapper/sd/BomDataMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/BomDataMapper.xml
index 1085e96..86f0d35 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/BomDataMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/BomDataMapper.xml
@@ -29,13 +29,16 @@
 
     <select id="getOrderBomDataMp">
         SELECT  product_id,product_name,SUM(quantity) as quantity,
-            SUM(gross_area) as area,SUM(perimeter) as perimeter from sd.order_detail where order_id=#{orderId}
+            SUM(gross_area) as area,SUM(perimeter) as perimeter,order_id from sd.order_detail where order_id=#{orderId}
             GROUP BY product_id
     </select>
 
     <select id="getBOMDetails">
-        select *,(consume*price) as materialPric from sd.bom_product as bp left join sd.bom_base as bb on bb.id=bp.base_id
-            where bp.product_id = #{productId} ORDER BY product_layer
+        select bp.*,bb.*,(consume*price) as materialPric,od.quantity from sd.bom_product as bp
+            left join sd.bom_base as bb on bb.id=bp.base_id
+            left join ( select order_id,product_id,SUM(quantity) as quantity from sd.order_detail GROUP BY  order_id,product_id
+        ) as od on od.product_id = bp.product_id
+        where bp.product_id = #{productId} and od.order_id = #{orderId} ORDER BY product_layer
     </select>
 
     <select id="getOrderBomSumDataMp">
@@ -53,12 +56,13 @@
             bb.type,
             sum(bb.consume) as consume,
             sum(bb.price) as price,
-            sum(bb.consume * bb.price) AS materialPrice
+            sum(bb.consume * bb.price) AS materialPrice,
+            od.quantity
         FROM
             sd.bom_product AS bp
                 LEFT JOIN sd.bom_base AS bb ON bb.id = bp.base_id
                 LEFT JOIN (
-                select order_id,product_id from sd.order_detail GROUP BY product_id
+                select order_id,product_id,SUM(quantity) as quantity from sd.order_detail GROUP BY  order_id,product_id
             ) as od on od.product_id = bp.product_id
 
         WHERE od.order_id=#{orderId}

--
Gitblit v1.8.0