From 92f4295f9b3255f8615775d3a254c2e7f20409c1 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期二, 09 十二月 2025 12:29:18 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override

---
 north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml |  194 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 180 insertions(+), 14 deletions(-)

diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
index 2960472..a7b5afd 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
@@ -10,29 +10,64 @@
         from
             sd.`order` as o
         where
-            o.quantity=#{order.quantity} and o.area=#{order.area} and o.project=#{order.project} and o.customer_id=#{order.customerId}
+            o.quantity=#{order.quantity} and o.area=#{order.area} and trim(o.project)=trim(#{order.project}) and o.customer_id=#{order.customerId}
     </select>
 
     <select id="selectMaxOrderId">
         select
-           ifnull(SUBSTR(max(order_id) from 9),0)
+           ifnull(SUBSTR(max(right(order_id,8)) from 7),0)
         from
             `order` as a
         where
             date(a.create_time) = curdate()
-        order by id desc,order_id	desc limit  1
+        /*order by order_id desc,order_id	desc limit  1*/
     </select>
 
     <select id="selectMaxOrderIdByMonth">
         select
-            ifnull(SUBSTR(order_id from 7),0)
+            ifnull(SUBSTR(max(right(order_id,8)) from 5),0)
         from
             `order` as a
         where
             date(a.create_time)  BETWEEN DATE_FORMAT(DATE(NOW()), '%Y-%m-01') AND DATE(NOW())
-        order by id desc	 limit  1
     </select>
-    
+
+    <select id="selectMaxOrderIdByYear">
+       select
+           ifnull(SUBSTR(max(right(order_id,8)) from 3),0)
+        from
+            `order` as a
+        where
+            year(a.create_time)  = year(now())
+    </select>
+
+    <select id="selectOrderIdMin">
+        select count(*) from sd.`order` where SUBSTR(order_id,3,11)>#{substringInt}
+    </select>
+
+    <select id="selectOrderIdIs">
+        select count(*) from sd.`order` where SUBSTR(order_id,3,11)=#{substringInt}
+    </select>
+
+    <select id="selectOrderIdDay">
+        select count(*) from sd.`order` where order_id=#{oldOrderId} and SUBSTR(#{oldOrderId},9,2)=01
+    </select>
+
+    <select id="selectOrderIdMonth">
+        select count(*) from sd.`order` where order_id=#{oldOrderId} and SUBSTR(#{oldOrderId},7,4)=0001
+    </select>
+
+    <select id="selectOrderIdYear">
+        select count(*) from sd.`order` where order_id=#{oldOrderId} and SUBSTR(#{oldOrderId},5,2)=000001
+    </select>
+
+    <select id="selectOrderId">
+        select * from sd.`order` where order_id=#{orderId}
+    </select>
+
+    <update id="updateOrderId">
+        update sd.`order` set order_id=#{newOrderId} where order_id=#{oldOrderId}
+    </update>
 
     <update id="updateOrderParameter">
         update `order` o
@@ -59,21 +94,23 @@
             o.area = od.c,
             o.perimeter= od.aa,
             o.other_money = ifnull(c.money,0),
-            o.other_remarks = (select group_concat( distinct edging_type) from order_detail where order_id = #{orderId} and  edging_type is not null)
+            o.other_remarks = (select GROUP_CONCAT(DISTINCT edging_type)
+        from order_detail where order_id = #{orderId} and  edging_type is not null)
         where
             o.order_id = #{orderId}
 
     </update>
     
     <select id="getOrderList">
-        select
-            *,
-        ifnull(sum(fgi.quantity_available),0) as goodsQuantity
+       select * from (select
+            o.*,
+        ifnull(sum(fgi.quantity_available),0) as goodsQuantity,
+        if(DATEDIFF(o.delivery_date, CURDATE()) &lt; 3  and o.delivery &lt; 2, 'timeOut','' ) as timeOut
         from
             sd.`order` as o
         left join mm.finished_goods_inventory as  fgi
         on o.order_id = fgi.order_id
-        where  date(o.create_time)>=#{startDate} and date(o.create_time) &lt;= #{endDate}
+        where  date(o.create_time) between #{startDate} and  #{endDate}
 
           <if test="orderType!= null and orderType != ''">
                and o.create_order = #{orderType}
@@ -115,6 +152,14 @@
                and o.salesman REGEXP #{order.salesman}
            </if>
 
+            <if test="order.creator != null and order.creator != ''">
+                and o.creator REGEXP #{order.creator}
+            </if>
+
+            <if test="order.verifier != null and order.verifier != ''">
+                and o.verifier REGEXP #{order.verifier}
+            </if>
+
            <if test="order.perimeter != null and order.perimeter != ''">
                and o.perimeter REGEXP #{order.perimeter}
            </if>
@@ -152,16 +197,38 @@
             and o.processing_note REGEXP #{order.processingNote}
         </if>
         group by o.id
-        order by o.id desc
+        ) as acc
+        order by
+        <if test="orderBy == null ">
+            order_id desc
+        </if>
+        <if test="orderBy == 'desc'">
+            ${field} desc
+        </if>
+        <if test="orderBy == 'asc'">
+            ${field}
+        </if>
         limit #{offset},#{pageSize}
     </select>
 
     <select id="getPageTotal">
         select
             CEILING(count(o.id)/#{pageSize}) as 'pageTotal',
-            count(o.id) as 'total'
+            count(o.id) as 'dataTotal',
+            sum(o.quantity) as quantity,
+            sum(o.area) as area,
+            sum(o.money) as money,
+            ifnull(fgi.goodsQuantity ,0) as goodsQuantity ,
+            ROUND(sum(perimeter),2) as perimeter,
+            #{pageSize} as pageSize
         from
         `order` as o
+        left join(
+                    select order_id,
+                           ifnull(sum(quantity_available),0) as goodsQuantity
+                    from mm.finished_goods_inventory group by order_id
+                    )  as  fgi
+        on o.order_id = fgi.order_id
         where date (o.create_time)>=#{startDate} and date(o.create_time) &lt;= #{endDate}
             <if test="orderType!= null and orderType != 0">
                 and o.create_order = #{orderType}
@@ -201,6 +268,14 @@
             </if>
             <if test="order.salesman != null and order.salesman != ''">
                 and o.salesman REGEXP #{order.salesman}
+            </if>
+
+            <if test="order.creator != null and order.creator != ''">
+                and o.creator REGEXP #{order.creator}
+            </if>
+
+            <if test="order.verifier != null and order.verifier != ''">
+                and o.verifier REGEXP #{order.verifier}
             </if>
 
             <if test="order.perimeter != null and order.perimeter != ''">
@@ -256,12 +331,19 @@
         where order_id = #{id}
     </update>
 
+    <update id="backReviewOrderById">
+        update `order` set order_review = 0,
+                           verifier_id = null,
+                           verifier = null
+        where order_id = #{id}
+    </update>
+
     <update id="reviewProcessById">
         update `order` set process_review = #{status} where order_id = #{id}
     </update>
 
     <update id="updateMoney">
-        update `order` set money = #{order.money},calculate_type = #{order.calculateType} where order_id = #{order.orderId}
+        update `order` set money = #{order.money},calculate_type = #{order.calculateType},other_money=#{order.otherMoney} where order_id = #{order.orderId}
     </update>
 
     <update id="cancelOrder">
@@ -283,4 +365,88 @@
             o.order_id = #{orderId}
 
     </update>
+
+    <select id="selectDifferentSize">
+    select a.order_number,count(a.order_number),a.order_id from(select order_id,order_number
+    from sd.order_glass_detail ogd
+    where ogd.order_id = #{orderId}
+    group by ogd.order_number,ogd.child_height,child_width)
+    as a
+    group by a.order_number
+    having count(a.order_number) > 1
+    </select>
+
+    <select id="searchOrderWarehousing">
+        select  warehousing from `order`
+        where order_id = #{orderId}
+    </select>
+
+    <select id="getProcessIdByOptimizeHeatDetail">
+        select  process_id from pp.optimize_heat_detail as a
+        where a.project_no = #{projectId}
+          and a.layout_id = #{layoutId}
+          and a.sort = #{sort}
+    </select>
+
+    <select id="scannerGlassInfo">
+        select c.order_id as orderId,
+               b.order_number as orderNumber,
+               b.technology_number as technologyNumber,
+               a.process_id as processId,
+               c.customer_name as customerName,
+               concat(a.width," * " , a.height) as size,
+               b.area,
+               b.glass_child as glassChild,
+               d.product_name as productName,
+               d.building_number as buildingNumber,
+               d.remarks as remarks,
+               d.processing_note as processingNote
+        from pp.optimize_heat_detail as a
+        left join sd.order_glass_detail as b
+            on b.order_number = a.order_sort
+            and b.technology_number = a. layer
+            and b.order_id = #{orderId}
+        left join  sd.order as c
+            on c.order_id = b.order_id
+        left join sd.order_detail as d
+            on c.order_id = d.order_id
+            and d.order_number = a.order_sort
+        where a.project_no = #{projectNo}
+        and a.layout_id = #{layoutId}
+        and a.sort = #{sort}
+    </select>
+
+
+    <insert id="saveOrderFile">
+        insert into sd.order_file (order_id,order_number,file_name,file_data,file_json,create_time) values(#{orderId},#{orderNumber},#{fileName},#{dxfData},#{fileJson},now())
+    </insert>
+
+    <select id="selectOrderFile">
+        select  * from sd.order_file
+        where order_id = #{orderId} and order_number = #{orderNumber}
+
+    </select>
+
+    <select id="selectOrderFileList">
+        select  * from sd.order_file
+        where order_id = #{orderId}
+
+    </select>
+
+    <update id="updateOrderFile">
+        update sd.order_file set file_name=#{fileName},file_data=#{dxfData},file_json=#{fileJson},create_time=now() where order_id=#{orderId} and order_number=#{orderNumber}
+    </update>
+
+
+    <select id="selectProcessAttributeConfigOne">
+        select  * from sd.process_attribute_config
+        where level=1
+
+    </select>
+
+    <select id="selectProcessAttributeConfigTow">
+        select  * from sd.process_attribute_config
+        where level=2 and belong=#{belong}
+
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0