From 1e6c537c6ae83a30fa3732939d16422ff2d105dd Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期五, 19 十二月 2025 09:22:07 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override

---
 north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml |  118 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 105 insertions(+), 13 deletions(-)

diff --git a/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml b/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
index b0c1173..4607863 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
@@ -23,6 +23,7 @@
         <result column="process_id" property="processId"/>
         <result column="money" property="money"/>
         <result column="area" property="area"/>
+        <result column="square_millimeter" property="squareMillimeter"/>
 
         <result column="width" property="orderDetail.width"/>
         <result column="height" property="orderDetail.height"/>
@@ -64,10 +65,23 @@
         fol.money,
         o.customer_name,
         o.project,
-        od.price
+        od.price,
+        CASE
+        WHEN #{type} = '鍏ュ簱' THEN
+            if(fgi.quantity_available>fol.quantity,fol.quantity,fgi.quantity_available)
+        ELSE
+            0
+        END AS quantity_available,
+        CASE
+        WHEN #{type} = '鍏ュ簱' THEN
+        if(fgi.quantity_available>fol.quantity,fol.quantity,fgi.quantity_available)
+        ELSE
+        0
+        END AS cancelAvailable
         from (select *
         from mm.finished_operate_log aa where aa.operate_type = #{type}  and aa.status!='宸蹭綔搴�') fol
         left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
+        left join mm.finished_goods_inventory fgi on fgi.order_id = fol.order_id and fol.operation_number = fgi.order_number and fgi.box_no=fol.remarks
         left join sd.`order` o on o.order_id=fol.order_id
         <where>
             date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
@@ -135,16 +149,20 @@
                 and o.project regexp #{finishedOperateLog.order.project}
             </if>
         </where>
+        group by fol.order_id,fol.operation_number,fol.remarks
         order by fol.operate_time desc
         limit #{offset},#{pageSize};
     </select>
 
     <select id="getSelectStorageRecordLogPageTotal">
-        select CEILING(count(fol.id)/#{pageSize}) as 'pageTotal',
-        count(fol.id) as 'total'
+        select
+        CEILING(count(zu.id)/#{pageSize}) as 'pageTotal',
+        count(zu.id) as 'total' from (
+        select fol.id
         from (select *
         from mm.finished_operate_log aa where aa.operate_type = #{type}  and aa.status!='宸蹭綔搴�') fol
         left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
+        left join mm.finished_goods_inventory fgi on fgi.order_id = fol.order_id and fol.operation_number = fgi.order_number and fgi.box_no=fol.remarks
         left join sd.`order` o on o.order_id=fol.order_id
         <where>
             date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
@@ -212,7 +230,9 @@
                 and o.project regexp #{finishedOperateLog.order.project}
             </if>
         </where>
+        group by fol.order_id,fol.operation_number,fol.remarks
         order by fol.`status` desc
+        ) as zu
     </select>
 
     <update id="updateToExamine">
@@ -221,6 +241,11 @@
 
     <update id="updateFinishedOperateLogState">
         update mm.finished_operate_log set status=#{type} where id=#{finishedOperateLog.id};
+    </update>
+
+    <update id="updateFinishedOperateLogQuantity">
+        update mm.finished_operate_log set quantity=quantity-#{finishedOperateLog.cancelAvailable},
+                                           area=area-#{deliveryDetailArea},money=money-#{deliveryDetailMoney}  where id=#{finishedOperateLog.id};
     </update>
 
     <select id="getSelectOperateRecord" resultMap="selectFinishedGoodsInventory">
@@ -485,13 +510,22 @@
         o.customer_name,
         o.project,
         od.price,
-        o.order_type
+        o.order_type,
+        p.thickness * fol.area as square_millimeter
         from (select *
         from mm.finished_operate_log aa where  aa.status!='宸蹭綔搴�') fol
         left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
         left join sd.`order` o on o.order_id=fol.order_id
+        left join sd.product p on p.id=od.product_id
         <where>
-            date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate} and fol.operate_type=#{type}
+            <if test="dateType=='date'">
+                date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
+            </if>
+            <if test="dateType=='datetime'">
+                fol.operate_time>=#{startDate} and fol.operate_time &lt;= #{endDate}
+            </if>
+            and fol.operate_type=#{type}
+
             <if test="finishedOperateLog.operateType != null and finishedOperateLog.operateType != ''">
                 and fol.operate_type regexp #{finishedOperateLog.operateType}
             </if>
@@ -570,8 +604,17 @@
         from mm.finished_operate_log aa where  aa.status!='宸蹭綔搴�') fol
         left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
         left join sd.`order` o on o.order_id=fol.order_id
+        left join sd.product p on p.id=od.product_id
         <where>
-            date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate} and fol.operate_type=#{type}
+            <if test="dateType=='date'">
+                date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
+            </if>
+            <if test="dateType=='datetime'">
+                fol.operate_time>=#{startDate} and fol.operate_time &lt;= #{endDate}
+            </if>
+            and fol.operate_type=#{type}
+
+
             <if test="finishedOperateLog.operateType != null and finishedOperateLog.operateType != ''">
                 and fol.operate_type regexp #{finishedOperateLog.operateType}
             </if>
@@ -782,12 +825,58 @@
                o.customer_name,
                o.project,
                od.price,
-               o.order_type
+               o.order_type,
+               p.thickness * fol.area as square_millimeter
         from (select *
               from mm.finished_operate_log aa where  aa.status!='宸蹭綔搴�') fol
                  left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
                  left join sd.`order` o on o.order_id=fol.order_id
-        where  date(fol.operate_time)>=#{dates[0]} and date(fol.operate_time) &lt;= #{dates[1]} and fol.operate_type=#{type}
+                 left join sd.product p on p.id=od.product_id
+        where
+                date(fol.operate_time)>=#{dates[0]} and date(fol.operate_time) &lt;= #{dates[1]}
+
+          and fol.operate_type=#{type}
+
+    </select>
+
+    <select id="exportFinishedOperateLogReportByDatetime">
+        select fol.id,
+               fol.operation_order_number,
+               fol.order_id,
+               fol.operate_type,
+               fol.process_id,
+               fol.operation_number,
+               fol.quantity,
+               fol.operator,
+               od.product_id,
+               od.product_name,
+               od.width,
+               od.height,
+               fol.stater_operation_order_number,
+               fol.end_operation_order_number,
+               fol.operate_time,
+               fol.`status`,
+               fol.is_state,
+               fol.reviewed,
+               fol.reviewed_time,
+               fol.type,
+               fol.remarks,
+               fol.area,
+               fol.money,
+               o.customer_name,
+               o.project,
+               od.price,
+               o.order_type,
+               p.thickness * fol.area as square_millimeter
+        from (select *
+              from mm.finished_operate_log aa where  aa.status!='宸蹭綔搴�') fol
+                 left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
+                 left join sd.`order` o on o.order_id=fol.order_id
+                 left join sd.product p on p.id=od.product_id
+        where
+            fol.operate_time>=#{dates[0]} and fol.operate_time &lt;= #{dates[1]}
+
+          and fol.operate_type=#{type}
 
     </select>
 
@@ -803,17 +892,18 @@
                                             status,
                                             area,
                                             compute_area,
-                                            remarks
+                                            remarks,
+                                            money
         )
         values (
-                   #{oddNumber} ,#{orderDetail.orderId},"",#{orderDetail.orderNumber},"鍏ュ簱",#{userName},#{orderDetail.quantity},now(),"鏈鏍�",
-                #{orderDetail.computeGrossArea},#{orderDetail.computeArea},""
+                   #{oddNumber} ,#{orderDetail.orderId},#{processId},#{orderDetail.orderNumber},"鍏ュ簱",#{userName},#{orderDetail.quantity},now(),"鏈鏍�",
+                #{orderDetail.computeGrossArea},#{orderDetail.computeArea},"",#{orderDetail.grossAmount}
                )
     </insert>
 
-    <delete id="updateOrderFinishedOperateLog"  >
+    <update id="updateOrderFinishedOperateLog"  >
         update  mm.finished_operate_log set status="宸蹭綔搴�" where order_id=#{orderDetail.orderId} and operation_number=#{orderDetail.orderNumber} and operate_type="鍏ュ簱";
-    </delete>
+    </update>
 
     <select id="getSelectStorageRecordPint" resultMap="selectFinishedGoodsInventory">
         select fol.id,
@@ -1078,4 +1168,6 @@
     </select>
 
 
+
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0