From fec9f42e00f2df68a2a20cbf132b17bdeed8e63a Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期一, 25 八月 2025 09:19:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml |  192 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 121 insertions(+), 71 deletions(-)

diff --git a/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
index 69fbe66..b3ea803 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
@@ -54,6 +54,7 @@
         <result column="storage_region" property="finishedGoodsInventory.storageRegion"/>
         <result column="actual_signal_area" property="finishedGoodsInventory.actualSignalArea"/>
         <result column="box_no" property="finishedGoodsInventory.boxNo"/>
+        <result column="id" property="finishedGoodsInventory.id"/>
 
 
     </resultMap>
@@ -181,7 +182,7 @@
                fgi.quantity_available + dd.quantity as quantity_available,
                od.order_number,
                od.quantity-od.delivery_num as t_quantity,
-               od.quantity as o_quantity,
+        (fgi.quantity_available+ifnull(dd1.sumQuantity,0)) as o_quantity,
                dd.quantity as d_quantity,
                od.building_number,
                od.product_id,
@@ -207,10 +208,14 @@
         left join sd.delivery d on dd.delivery_id=d.delivery_id
         left join sd.order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
         left join sd.`order` o on dd.order_id=o.order_id
-        left join mm.finished_goods_inventory fgi on dd.order_id=fgi.order_id and dd.order_number=fgi.order_number
+        left join mm.finished_goods_inventory fgi on dd.order_id=fgi.order_id and dd.order_number=fgi.order_number and fgi.box_no = dd.box_no
+        left join (SELECT IFNULL(sum(quantity),0) as sumQuantity,dd.*
+                    from sd.delivery_detail dd
+                    GROUP BY dd.order_id,dd.order_number,dd.box_no) AS dd1
+        on od.order_id = dd1.order_id and od.order_number = dd1.order_number and dd1.box_no = fgi.box_no
         <where>
             <if test="orderDetail.deliveryDetail.deliveryId != null and orderDetail.deliveryDetail.deliveryId != ''">
-                and dd.delivery_id regexp #{orderDetail.deliveryDetail.deliveryId}
+                and dd.delivery_id = #{orderDetail.deliveryDetail.deliveryId}
             </if>
             <if test="orderDetail.orderId != null and orderDetail.orderId != ''">
                 and od.order_id regexp #{orderDetail.orderId}
@@ -371,14 +376,16 @@
     </select>
 
     <select id="getSelectShippingOrderDetails" resultMap="selectDeliveryFinishedGoodsInventoryOrderDetail">
-        select od.order_id,
+        select
+        fgi.id,
+                od.order_id,
                od.order_number,
                o.batch,
                o.calculate_type,
                fgi.quantity_available,
-               od.quantity- od.delivery_num as t_quantity,
-               od.quantity as o_quantity,
-               fgi.quantity_available as d_quantity,
+               od.quantity- od.delivery_num as t_quantity,-- 鏈彂鏁伴噺
+        ifnull(dd1.sumQuantity,0)+fgi.quantity_available as o_quantity,-- 鏁伴噺
+               fgi.quantity_available as d_quantity,-- 鍙戣揣鏁伴噺
                od.building_number,
                od.product_id,
                od.product_name,
@@ -401,6 +408,13 @@
                  left join sd.`order` o on od.order_id = o.order_id
                  left join mm.finished_goods_inventory fgi
                  on od.order_id = fgi.order_id and od.order_number = fgi.order_number
+        left join (SELECT IFNULL(sum(quantity),0) as sumQuantity,dd.*
+                    from sd.delivery_detail dd
+                    where dd.order_id regexp #{orderDetail.orderId}
+                    GROUP BY dd.order_id,dd.order_number,dd.box_no) AS dd1
+        on od.order_id = dd1.order_id and od.order_number = dd1.order_number and dd1.box_no = fgi.box_no
+
+
         <where>
             fgi.quantity_available > 0 and od.quantity > od.delivery_num
             <if test="orderDetail.orderId != null and orderDetail.orderId != ''">
@@ -1023,50 +1037,49 @@
                                    product_id,
                                    order_number,
                                    CASE
-
-                                       WHEN height &lt; 3660 THEN
-                                           ' '
-                                       WHEN height &lt; 4000 AND height >= 3660 THEN
+                                       WHEN height &lt; 4000 AND height >= 3660 and height>width THEN
                                            '3660&lt;H&lt;4000'
-                                       WHEN height &lt; 5000 AND height >= 4000 THEN
+                                       WHEN height &lt; 5000 AND height >= 4000 and height>width THEN
                                            '4000&lt;H&lt;5000'
-                                       WHEN height &lt; 6000 AND height >= 5000 THEN
+                                       WHEN height &lt; 6000 AND height >= 5000 and height>width THEN
                                            '5000&lt;H&lt;6000'
-                                       WHEN height &lt; 7000 AND height >= 6000 THEN
+                                       WHEN height &lt; 7000 AND height >= 6000 and height>width THEN
                                            '6000&lt;H&lt;7000'
-                                       WHEN height &lt; 8000 AND height >= 7000 THEN
+                                       WHEN height &lt; 8000 AND height >= 7000 and height>width THEN
                                            '7000&lt;H&lt;8000'
-                                       WHEN height &lt; 9000 AND height >= 8000 THEN
+                                       WHEN height &lt; 9000 AND height >= 8000 and height>width THEN
                                            '8000&lt;H&lt;9000'
-                                       WHEN height &lt; 10000 AND height >= 9000 THEN
+                                       WHEN height &lt; 10000 AND height >= 9000 and height>width THEN
                                            '9000&lt;H&lt;10000'
-                                       WHEN height &lt; 11000 AND height >= 10000 THEN
+                                       WHEN height &lt; 11000 AND height >= 10000 and height>width THEN
                                            '10000&lt;H&lt;11000'
-                                       WHEN height &lt; 12000 AND height >= 11000 THEN
+                                       WHEN height &lt; 12000 AND height >= 11000 and height>width THEN
                                            '11000&lt;H&lt;12000'
+                                       ELSE
+                                           ''
                                        END height,
                                    CASE
 
-                                       WHEN width &lt; 3660 THEN
-                                           ' '
-                                       WHEN width &lt; 4000 AND width >= 3660 THEN
-                                           '3660&lt;W&lt;4000'
-                                       WHEN width &lt; 5000 AND width >= 4000 THEN
-                                           '4000&lt;W&lt;5000'
-                                       WHEN width &lt; 6000 AND width >= 5000 THEN
-                                           '5000&lt;W&lt;6000'
-                                       WHEN width &lt; 7000 AND width >= 6000 THEN
-                                           '6000&lt;W&lt;7000'
-                                       WHEN width &lt; 8000 AND width >= 7000 THEN
-                                           '7000&lt;W&lt;8000'
-                                       WHEN width &lt; 9000 AND width >= 8000 THEN
-                                           '8000&lt;W&lt;9000'
-                                       WHEN width &lt; 10000 AND width >= 9000 THEN
-                                           '9000&lt;W&lt;10000'
-                                       WHEN width &lt; 11000 AND width >= 10000 THEN
-                                           '10000&lt;W&lt;11000'
-                                       WHEN width &lt; 12000 AND width >= 11000 THEN
-                                           '11000&lt;W&lt;12000'
+                                       WHEN width &lt; 4000 AND width >= 3660 and width>height THEN
+                                           '3660&lt;H&lt;4000'
+                                       WHEN width &lt; 5000 AND width >= 4000 and width>height THEN
+                                           '4000&lt;H&lt;5000'
+                                       WHEN width &lt; 6000 AND width >= 5000 and width>height THEN
+                                           '5000&lt;H&lt;6000'
+                                       WHEN width &lt; 7000 AND width >= 6000 and width>height THEN
+                                           '6000&lt;H&lt;7000'
+                                       WHEN width &lt; 8000 AND width >= 7000 and width>height THEN
+                                           '7000&lt;H&lt;8000'
+                                       WHEN width &lt; 9000 AND width >= 8000 and width>height THEN
+                                           '8000&lt;H&lt;9000'
+                                       WHEN width &lt; 10000 AND width >= 9000 and width>height THEN
+                                           '9000&lt;H&lt;10000'
+                                       WHEN width &lt; 11000 AND width >= 10000 and width>height THEN
+                                           '10000&lt;H&lt;11000'
+                                       WHEN width &lt; 12000 AND width >= 11000 and width>height THEN
+                                           '11000&lt;H&lt;12000'
+                                       ELSE
+                                           ''
                                        END width
                             from order_detail) as od on dd.order_id = od.order_id and dd.order_number = od.order_number
                  left join product pt on pt.id = od.product_id
@@ -1093,50 +1106,49 @@
                                    product_id,
                                    order_number,
                                    CASE
-
-                                       WHEN height &lt; 3660 THEN
-                                           ' '
-                                       WHEN height &lt; 4000 AND height >= 3660 THEN
+                                       WHEN height &lt; 4000 AND height >= 3660 and height>width THEN
                                            '3660&lt;H&lt;4000'
-                                       WHEN height &lt; 5000 AND height >= 4000 THEN
+                                       WHEN height &lt; 5000 AND height >= 4000 and height>width THEN
                                            '4000&lt;H&lt;5000'
-                                       WHEN height &lt; 6000 AND height >= 5000 THEN
+                                       WHEN height &lt; 6000 AND height >= 5000 and height>width THEN
                                            '5000&lt;H&lt;6000'
-                                       WHEN height &lt; 7000 AND height >= 6000 THEN
+                                       WHEN height &lt; 7000 AND height >= 6000 and height>width THEN
                                            '6000&lt;H&lt;7000'
-                                       WHEN height &lt; 8000 AND height >= 7000 THEN
+                                       WHEN height &lt; 8000 AND height >= 7000 and height>width THEN
                                            '7000&lt;H&lt;8000'
-                                       WHEN height &lt; 9000 AND height >= 8000 THEN
+                                       WHEN height &lt; 9000 AND height >= 8000 and height>width THEN
                                            '8000&lt;H&lt;9000'
-                                       WHEN height &lt; 10000 AND height >= 9000 THEN
+                                       WHEN height &lt; 10000 AND height >= 9000 and height>width THEN
                                            '9000&lt;H&lt;10000'
-                                       WHEN height &lt; 11000 AND height >= 10000 THEN
+                                       WHEN height &lt; 11000 AND height >= 10000 and height>width THEN
                                            '10000&lt;H&lt;11000'
-                                       WHEN height &lt; 12000 AND height >= 11000 THEN
+                                       WHEN height &lt; 12000 AND height >= 11000 and height>width THEN
                                            '11000&lt;H&lt;12000'
+                                       ELSE
+                                           ''
                                        END height,
                                    CASE
 
-                                       WHEN width &lt; 3660 THEN
-                                           ' '
-                                       WHEN width &lt; 4000 AND width >= 3660 THEN
-                                           '3660&lt;W&lt;4000'
-                                       WHEN width &lt; 5000 AND width >= 4000 THEN
-                                           '4000&lt;W&lt;5000'
-                                       WHEN width &lt; 6000 AND width >= 5000 THEN
-                                           '5000&lt;W&lt;6000'
-                                       WHEN width &lt; 7000 AND width >= 6000 THEN
-                                           '6000&lt;W&lt;7000'
-                                       WHEN width &lt; 8000 AND width >= 7000 THEN
-                                           '7000&lt;W&lt;8000'
-                                       WHEN width &lt; 9000 AND width >= 8000 THEN
-                                           '8000&lt;W&lt;9000'
-                                       WHEN width &lt; 10000 AND width >= 9000 THEN
-                                           '9000&lt;W&lt;10000'
-                                       WHEN width &lt; 11000 AND width >= 10000 THEN
-                                           '10000&lt;W&lt;11000'
-                                       WHEN width &lt; 12000 AND width >= 11000 THEN
-                                           '11000&lt;W&lt;12000'
+                                       WHEN width &lt; 4000 AND width >= 3660 and width>height THEN
+                                           '3660&lt;H&lt;4000'
+                                       WHEN width &lt; 5000 AND width >= 4000 and width>height THEN
+                                           '4000&lt;H&lt;5000'
+                                       WHEN width &lt; 6000 AND width >= 5000 and width>height THEN
+                                           '5000&lt;H&lt;6000'
+                                       WHEN width &lt; 7000 AND width >= 6000 and width>height THEN
+                                           '6000&lt;H&lt;7000'
+                                       WHEN width &lt; 8000 AND width >= 7000 and width>height THEN
+                                           '7000&lt;H&lt;8000'
+                                       WHEN width &lt; 9000 AND width >= 8000 and width>height THEN
+                                           '8000&lt;H&lt;9000'
+                                       WHEN width &lt; 10000 AND width >= 9000 and width>height THEN
+                                           '9000&lt;H&lt;10000'
+                                       WHEN width &lt; 11000 AND width >= 10000 and width>height THEN
+                                           '10000&lt;H&lt;11000'
+                                       WHEN width &lt; 12000 AND width >= 11000 and width>height THEN
+                                           '11000&lt;H&lt;12000'
+                                       ELSE
+                                           ''
                                        END width
                             from order_detail) as od on dd.order_id = od.order_id and dd.order_number = od.order_number
                  left join product pt on pt.id = od.product_id
@@ -1146,6 +1158,43 @@
         where dd.delivery_id like concat('%', #{deliveryId}, '%')
 
         group by od.order_id, od.product_name, width, height
+    </select>
+
+
+    <select id="getSelectDeliveryPrintingMoneySpecifications" >
+        select od.order_id,
+               od.building_number,
+               od.width,
+               od.height,
+               od.product_name,
+               sum(dd.area)                                                      as area,
+               sum(dd.money)                                                     as money,
+               sum(dd.quantity)                                                  as quantity,
+               dd.price
+        from delivery_detail dd
+                 left join order_detail od on dd.order_id = od.order_id and dd.order_number = od.order_number
+                 left join product p on od.product_id = p.id
+        where delivery_id = #{deliveryId}
+          and od.order_id = #{orderId}
+          and od.product_id = #{productId}
+        group by od.width,od.height, dd.price
+    </select>
+
+    <select id="getSelectDeliveryPrintingNoMoneySpecifications"  >
+        select od.order_id,
+               od.building_number,
+               od.width,
+               od.height,
+               od.product_name,
+               sum(dd.area)                                                     as area,
+               sum(dd.quantity)                                                  as quantity
+        from delivery_detail dd
+                 left join order_detail od on dd.order_id = od.order_id and dd.order_number = od.order_number
+                 left join product p on od.product_id = p.id
+        where delivery_id = #{deliveryId}
+          and od.order_id = #{orderId}
+          and od.product_id = #{productId}
+        group by od.width,od.height
     </select>
 
     <select id="getSelectOrderPrinting"  >
@@ -1167,6 +1216,7 @@
                dd.area,
                ifnull(od.processing_note,"") as processingNote,
                ifnull(od.building_number,"") as buildingNumber,
+               dd.box_no,
                dd.price,
                od.other_columns,
                od.remarks

--
Gitblit v1.8.0