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/OrderDetailMapper.xml |  256 +++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 217 insertions(+), 39 deletions(-)

diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
index 22703db..9d88fdc 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
@@ -27,7 +27,9 @@
                             arch_rise,
                             weight,
                             perimeter,
-                            other_columns
+                            monolithic_perimeter,
+                            other_columns,
+                            file_name
                           )
         values
         <foreach collection ="orderDetails" item="orderDetail" separator =",">
@@ -53,7 +55,9 @@
             #{orderDetail.archRise},
             #{orderDetail.weight},
             #{orderDetail.perimeter},
-            #{orderDetail.otherColumns}
+            #{orderDetail.monolithicPerimeter},
+            #{orderDetail.otherColumns},
+            #{orderDetail.fileName}
              )
         </foreach>
     </insert>
@@ -63,7 +67,8 @@
             update order_detail as a
             set
                 a.price = #{item.price},
-                a.gross_amount = #{item.grossAmount}
+                a.gross_amount = #{item.grossAmount},
+                a.other_columns = #{item.otherColumns}
             where
                 a.order_id = #{item.orderId} and
                 a.order_number =  #{item.orderNumber}
@@ -94,6 +99,7 @@
         <result column="levelTwo" property="levelTwo"/>
         <result column="total_thickness" property="totalThickness"/>
         <result column="createTime" property="createTime"/>
+        <result column="weights" property="weight"/>
 
         <result column="order_type" property="order.orderType"/>
         <result column="customer_name" property="order.customerName"/>
@@ -113,13 +119,161 @@
     </resultMap>
 
 
+    <select id="getOrderSummaryReport" >
+        SELECT
+        *
+        from  sd.`order` as b
+        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
+        <if test="order.orderType != null and order.orderType != ''">
+            and b.order_type like concat('%',#{order.orderType},'%')
+        </if>
+        <if test="order.customerId != null and order.customerId != ''">
+            and b.customer_id like concat('%',#{order.customerId},'%')
+        </if>
+        <if test="order.customerName != null and order.customerName != ''">
+            and b.customer_name like concat('%',#{order.customerName},'%')
+        </if>
+        <if test="order.project != null and order.project != ''">
+            and b.project like concat('%',#{order.project},'%')
+        </if>
+        <if test="order.orderId != null and order.orderId != ''">
+            and b.order_id like concat('%',#{order.orderId},'%')
+        </if>
+        <if test="order.batch != null and order.batch != ''">
+            and b.batch like concat('%',#{order.batch},'%')
+        </if>
+
+        <if test="order.icon != null and order.icon != ''">
+            and b.icon like concat('%',#{order.icon},'%')
+        </if>
+
+        <if test="order.packType != null and order.packType != ''">
+            and b.pack_type like concat('%',#{order.packType},'%')
+        </if>
+        <if test="order.alType != null and order.alType != ''">
+            and b.al_type like concat('%',#{order.alType},'%')
+        </if>
+
+        <if test="order.salesman != null and order.salesman != ''">
+            and b.salesman like concat('%',#{order.salesman},'%')
+        </if>
+
+        <if test="order.deliveryAddress != null and order.deliveryAddress != ''">
+            and b.delivery_address like concat('%',#{order.deliveryAddress},'%')
+        </if>
+
+        <if test="order.creator != null and order.creator != ''">
+            and b.creator like concat('%',#{order.creator},'%')
+        </if>
+        <if test="order.otherMoney != null and order.otherMoney != ''">
+            and b.other_money regexp REGEXP_REPLACE(#{order.otherMoney},'\\.0+$','')
+        </if>
+
+        <if test="order.quantity != null ">
+            and b.quantity like concat('%',#{order.quantity},'%')
+        </if>
+        <if test="order.money != null ">
+            and b.money  regexp REGEXP_REPLACE(#{order.money},'\\.0+$','')
+        </if>
+        <if test="order.perimeter != null and order.perimeter != ''">
+            and b.perimeter regexp REGEXP_REPLACE(#{order.perimeter},'\\.0+$','')
+        </if>
+        <if test="order.processingNote != null and order.processingNote != ''">
+            and b.processing_note like concat('%',#{order.processingNote},'%')
+        </if>
+        <if test="order.area != null and order.area != ''">
+            and b.area regexp REGEXP_REPLACE(#{order.area},'\\.0+$','')
+        </if>
+        order by b.id desc
+        limit #{offset},#{pageSize}
+    </select>
+
+    <select id="getOrderSummaryReportTotal" >
+        SELECT
+        CEILING(count(b.id)/#{pageSize}) as 'pageTotal',
+        count(b.id) as 'total'
+        from  sd.`order` as b
+        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
+        <if test="order.orderType != null and order.orderType != ''">
+            and b.order_type like concat('%',#{order.orderType},'%')
+        </if>
+
+        <if test="order.customerId != null and order.customerId != ''">
+            and b.customer_id like concat('%',#{order.customerId},'%')
+        </if>
+        <if test="order.customerName != null and order.customerName != ''">
+            and b.customer_name like concat('%',#{order.customerName},'%')
+        </if>
+        <if test="order.project != null and order.project != ''">
+            and b.project like concat('%',#{order.project},'%')
+        </if>
+
+        <if test="order.orderId != null and order.orderId != ''">
+            and b.order_id like concat('%',#{order.orderId},'%')
+        </if>
+
+        <if test="order.batch != null and order.batch != ''">
+            and b.batch like concat('%',#{order.batch},'%')
+        </if>
+
+        <if test="order.icon != null and order.icon != ''">
+            and b.icon like concat('%',#{order.icon},'%')
+        </if>
+
+        <if test="order.packType != null and order.packType != ''">
+            and b.pack_type like concat('%',#{order.packType},'%')
+        </if>
+
+
+        <if test="order.alType != null and order.alType != ''">
+            and b.al_type like concat('%',#{order.alType},'%')
+        </if>
+        <if test="order.salesman != null and order.salesman != ''">
+            and b.salesman like concat('%',#{order.salesman},'%')
+        </if>
+        <if test="order.deliveryAddress != null and order.deliveryAddress != ''">
+            and b.delivery_address like concat('%',#{order.deliveryAddress},'%')
+        </if>
+        <if test="order.creator != null and order.creator != ''">
+            and b.creator like concat('%',#{order.creator},'%')
+        </if>
+        <if test="order.otherMoney != null and order.otherMoney != ''">
+            and b.other_money regexp REGEXP_REPLACE(#{order.otherMoney},'\\.0+$','')
+        </if>
+
+        <if test="order.quantity != null ">
+            and b.quantity like concat('%',#{order.quantity},'%')
+        </if>
+        <if test="order.money != null ">
+            and b.money  regexp REGEXP_REPLACE(#{order.money},'\\.0+$','')
+        </if>
+        <if test="order.perimeter != null and order.perimeter != ''">
+            and b.perimeter regexp REGEXP_REPLACE(#{order.perimeter},'\\.0+$','')
+        </if>
+        <if test="order.processingNote != null and order.processingNote != ''">
+            and b.processing_note like concat('%',#{order.processingNote},'%')
+        </if>
+        <if test="order.area != null and order.area != ''">
+            and b.area regexp REGEXP_REPLACE(#{order.area},'\\.0+$','')
+        </if>
+    </select>
+
+    <select id="exportOrderSummary"  >
+        SELECT *
+        from sd.`order` as b
+        where  date(b.create_time)>=#{dates[0]} and date(b.create_time) &lt;= #{dates[1]} and b.order_review>0
+        order by b.id desc
+    </select>
+
+
     <select id="getOrderReport" resultMap="orderMap">
         SELECT
             *,
+            round(a.weight*a.quantity,2) as weights,
             a.create_time as createTime,
             d.type_name as levelOne,
             e.type_name as levelTwo
-        from order_detail as a
+        from sd.order_detail as a
         left join sd.`order` as b
             on b.order_id = a.order_id
         left join sd.product as c
@@ -128,7 +282,7 @@
             on d.type_id = c.type_id
         left join sd.basic_glass_type as e
             on e.type_id = d.belong
-        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate}
+        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
 
         <if test="orderDetail.order!=null and (orderDetail.order.orderType != null and orderDetail.order.orderType != '')">
             and b.order_type like concat('%',#{orderDetail.order.orderType},'%')
@@ -164,13 +318,29 @@
             and a.order_number like concat('%',#{orderDetail.orderNumber},'%')
         </if>
 
-        <if test="orderDetail.width != null and orderDetail.width != ''">
-            and a.width like concat('%',#{orderDetail.width},'%')
+        <if test="orderDetail.width != null and orderDetail.width != '' and model==0">
+            and a.width regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
         </if>
 
-        <if test="orderDetail.height != null and orderDetail.height != ''">
-            and a.height like concat('%',#{orderDetail.height},'%')
+        <if test="orderDetail.height != null and orderDetail.height != '' and model==0 ">
+            and a.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
         </if>
+
+        <if test="orderDetail.width != null and orderDetail.width != '' and model==1">
+            and a.width >= REGEXP_REPLACE(#{orderDetail.width } - #{scope} ,'\\.0+$','')
+            and a.width &lt;= REGEXP_REPLACE(#{orderDetail.width } + #{scope} ,'\\.0+$','')
+
+        </if>
+
+        <if test="orderDetail.height != null and orderDetail.height != '' and model==1 ">
+            and a.height > REGEXP_REPLACE(#{orderDetail.height } - #{scope} ,'\\.0+$','')
+            and a.height &lt; REGEXP_REPLACE(#{orderDetail.height } + #{scope} ,'\\.0+$','')
+        </if>
+
+
+
+
+
 
         <if test="orderDetail.quantity != null and orderDetail.quantity != ''">
             and a.quantity like concat('%',#{orderDetail.quantity},'%')
@@ -181,11 +351,11 @@
         </if>
 
         <if test="orderDetail.grossArea != null and orderDetail.grossArea != ''">
-            and a.gross_area like concat('%',#{orderDetail.grossArea},'%')
+            and a.gross_area regexp REGEXP_REPLACE(#{orderDetail},'\\.0+$','')
         </if>
 
         <if test="orderDetail.computeGrossArea != null and orderDetail.computeGrossArea != ''">
-            and a.compute_gross_area like concat('%',#{orderDetail.computeGrossArea},'%')
+            and a.compute_gross_area regexp REGEXP_REPLACE(#{orderDetail.computeGrossArea},'\\.0+$','')
         </if>
 
         <if test="orderDetail.shape != null and orderDetail.shape != ''">
@@ -221,7 +391,7 @@
         </if>
 
         <if test="orderDetail.grossAmount != null and orderDetail.grossAmount != ''">
-            and a.gross_amount like concat('%',#{orderDetail.grossAmount},'%')
+            and a.gross_amount regexp REGEXP_REPLACE(#{orderDetail.grossAmount},'\\.0+$','')
         </if>
 
         <if test="orderDetail.order!=null and  orderDetail.order.alType != null and orderDetail.order.alType != ''">
@@ -271,7 +441,7 @@
                            on d.type_id = c.type_id
                  left join sd.basic_glass_type as e
                            on e.type_id = d.belong
-        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate}
+        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
         <if test="orderDetail.order!=null and (orderDetail.order.orderType != null and orderDetail.order.orderType != '')">
             and b.order_type like concat('%',#{orderDetail.order.orderType},'%')
         </if>
@@ -307,11 +477,11 @@
         </if>
 
         <if test="orderDetail.width != null and orderDetail.width != ''">
-            and a.width like concat('%',#{orderDetail.width},'%')
+            and a.width regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
         </if>
 
         <if test="orderDetail.height != null and orderDetail.height != ''">
-            and a.height like concat('%',#{orderDetail.height},'%')
+            and a.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
         </if>
 
         <if test="orderDetail.quantity != null and orderDetail.quantity != ''">
@@ -323,11 +493,11 @@
         </if>
 
         <if test="orderDetail.grossArea != null and orderDetail.grossArea != ''">
-            and a.gross_area like concat('%',#{orderDetail.grossArea},'%')
+            and a.gross_area regexp REGEXP_REPLACE(#{orderDetail},'\\.0+$','')
         </if>
 
         <if test="orderDetail.computeGrossArea != null and orderDetail.computeGrossArea != ''">
-            and a.compute_gross_area like concat('%',#{orderDetail.computeGrossArea},'%')
+            and a.compute_gross_area regexp REGEXP_REPLACE(#{orderDetail.computeGrossArea},'\\.0+$','')
         </if>
 
         <if test="orderDetail.shape != null and orderDetail.shape != ''">
@@ -363,7 +533,7 @@
         </if>
 
         <if test="orderDetail.grossAmount != null and orderDetail.grossAmount != ''">
-            and a.gross_amount like concat('%',#{orderDetail.grossAmount},'%')
+            and a.gross_amount regexp REGEXP_REPLACE(#{orderDetail.grossAmount},'\\.0+$','')
         </if>
 
         <if test="orderDetail.order!=null and  orderDetail.order.alType != null and orderDetail.order.alType != ''">
@@ -402,10 +572,12 @@
     <select id="exportOrderReport"  >
         SELECT
             *,
+            round(a.weight*a.quantity,2) as weights,
+            b.processing_note as processingNotes,
             a.create_time as createTime,
             d.type_name as level_one,
             e.type_name as level_two
-        from order_detail as a
+        from sd.order_detail as a
          left join sd.`order` as b
                    on b.order_id = a.order_id
          left join sd.product as c
@@ -414,7 +586,8 @@
                    on d.type_id = c.type_id
          left join sd.basic_glass_type as e
                    on e.type_id = d.belong
-        where  date(a.create_time)>=#{dates[0]} and date(a.create_time) &lt;= #{dates[1]}
+        where  date(a.create_time)>=#{dates[0]} and date(a.create_time) &lt;= #{dates[1]} and b.order_review>0
+        order by b.order_id desc
     </select>
 
 
@@ -436,6 +609,7 @@
         a.edging_type,
         b.pack_type,
         round(sum(a.perimeter),2) as perimeter,
+        round(sum(a.weight*a.quantity),2) as weights,
         a.price,
         sum(a.gross_amount ) as gross_amount,
         b.al_type,
@@ -461,7 +635,7 @@
         on d.type_id = c.type_id
         left join sd.basic_glass_type as e
         on e.type_id = d.belong
-        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate}
+        where  date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
 
         <if test="orderDetail.order!=null and (orderDetail.order.orderType != null and orderDetail.order.orderType != '')">
             and b.order_type like concat('%',#{orderDetail.order.orderType},'%')
@@ -498,11 +672,11 @@
         </if>
 
         <if test="orderDetail.width != null and orderDetail.width != ''">
-            and a.width like concat('%',#{orderDetail.width},'%')
+            and a.width  regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
         </if>
 
         <if test="orderDetail.height != null and orderDetail.height != ''">
-            and a.height like concat('%',#{orderDetail.height},'%')
+            and a.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
         </if>
 
         <if test="orderDetail.quantity != null and orderDetail.quantity != ''">
@@ -514,11 +688,11 @@
         </if>
 
         <if test="orderDetail.grossArea != null and orderDetail.grossArea != ''">
-            and a.gross_area like concat('%',#{orderDetail.grossArea},'%')
+            and a.gross_area regexp REGEXP_REPLACE(#{orderDetail.grossArea},'\\.0+$','')
         </if>
 
         <if test="orderDetail.computeGrossArea != null and orderDetail.computeGrossArea != ''">
-            and a.compute_gross_area like concat('%',#{orderDetail.computeGrossArea},'%')
+            and a.compute_gross_area regexp REGEXP_REPLACE(#{orderDetail.computeGrossArea},'\\.0+$','')
         </if>
 
         <if test="orderDetail.shape != null and orderDetail.shape != ''">
@@ -554,7 +728,7 @@
         </if>
 
         <if test="orderDetail.grossAmount != null and orderDetail.grossAmount != ''">
-            and a.gross_amount like concat('%',#{orderDetail.grossAmount},'%')
+            and a.gross_amount regexp REGEXP_REPLACE(#{orderDetail.grossAmount},'\\.0+$','')
         </if>
 
         <if test="orderDetail.order!=null and  orderDetail.order.alType != null and orderDetail.order.alType != ''">
@@ -611,7 +785,7 @@
         on d.type_id = c.type_id
         left join sd.basic_glass_type as e
         on e.type_id = d.belong
-        where date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate}
+        where date(b.create_time)>=#{startDate} and date(b.create_time) &lt;= #{endDate} and b.create_order>0
         <if test="orderDetail.order!=null and (orderDetail.order.orderType != null and orderDetail.order.orderType != '')">
             and b.order_type like concat('%',#{orderDetail.order.orderType},'%')
         </if>
@@ -647,11 +821,11 @@
         </if>
 
         <if test="orderDetail.width != null and orderDetail.width != ''">
-            and a.width like concat('%',#{orderDetail.width},'%')
+            and a.width  regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
         </if>
 
         <if test="orderDetail.height != null and orderDetail.height != ''">
-            and a.height like concat('%',#{orderDetail.height},'%')
+            and a.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
         </if>
 
         <if test="orderDetail.quantity != null and orderDetail.quantity != ''">
@@ -663,11 +837,11 @@
         </if>
 
         <if test="orderDetail.grossArea != null and orderDetail.grossArea != ''">
-            and a.gross_area like concat('%',#{orderDetail.grossArea},'%')
+            and a.gross_area regexp REGEXP_REPLACE(#{orderDetail.grossArea},'\\.0+$','')
         </if>
 
         <if test="orderDetail.computeGrossArea != null and orderDetail.computeGrossArea != ''">
-            and a.compute_gross_area like concat('%',#{orderDetail.computeGrossArea},'%')
+            and a.compute_gross_area regexp REGEXP_REPLACE(#{orderDetail.computeGrossArea},'\\.0+$','')
         </if>
 
         <if test="orderDetail.shape != null and orderDetail.shape != ''">
@@ -703,7 +877,7 @@
         </if>
 
         <if test="orderDetail.grossAmount != null and orderDetail.grossAmount != ''">
-            and a.gross_amount like concat('%',#{orderDetail.grossAmount},'%')
+            and a.gross_amount regexp REGEXP_REPLACE(#{orderDetail.grossAmount},'\\.0+$','')
         </if>
 
         <if test="orderDetail.order!=null and  orderDetail.order.alType != null and orderDetail.order.alType != ''">
@@ -764,7 +938,7 @@
                a.remarks,
                a.bend_radius,
                a.edging_type,
-               a.weight,
+               round(sum(a.weight*a.quantity),2) as weights,
                a.perimeter,
                a.other_columns,
                a.warehouse_num,
@@ -794,7 +968,7 @@
                b.delivery_address,
                b.other_money,
                b.other_money_remarks,
-               b.processing_note,
+               b.processing_note as processingNotes,
                b.other_remarks,
                b.area,
                b.quantity,
@@ -826,8 +1000,8 @@
                            on d.type_id = c.type_id
                  left join sd.basic_glass_type as e
                            on e.type_id = d.belong
-        where date(a.create_time) >= #{dates[0]}
-          and date(a.create_time) &lt;= #{dates[1]}
+        where date(b.create_time) >= #{dates[0]}
+          and date(b.create_time) &lt;= #{dates[1]} and b.order_review>0
         group by b.order_id, a.product_id
         order by b.order_id desc
     </select>
@@ -854,8 +1028,9 @@
 
             (a.product_id) as 'productId',
                     a.product_name as 'productName',
+                    p.remarks as 'remarks',
                     a.order_number as 'orderNumber'
-        from order_detail as a
+        from order_detail as a left join sd.product p on a.product_id=p.id
         where a.order_id = #{orderId}
         group by a.product_id
     </select>
@@ -865,8 +1040,9 @@
 
         (a.product_id) as 'productId',
         a.product_name as 'productName',
+        p.remarks as 'remarks',
         a.order_number as 'orderNumber'
-        from order_detail as a
+        from sd.order_detail as a left join sd.product p on a.product_id=p.id
         where a.order_id = #{orderId} and a.product_id IN
         <foreach item="item" index="index" collection="productId" open="(" separator="," close=")">
             #{item}
@@ -892,7 +1068,9 @@
         group by od.product_id,pd.detail
     </select>
 
-
+    <delete id="deleteOrderFile" >
+        delete from sd.order_file where order_id = #{orderId}
+    </delete>
 
 
 

--
Gitblit v1.8.0