From 5a5e59f8aaa2a030511ef245886bf6d1db9bf774 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期五, 15 三月 2024 14:40:14 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml |  261 +++++++++++++++++++++++++++++++---------------------
 1 files changed, 155 insertions(+), 106 deletions(-)

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 5e28ebb..13b2ccb 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -62,25 +62,25 @@
         a.founder,
         c.processing_note,
         if(a.layout_status=0,"涓嶅彲鎺掔増",if(a.layout_status=1,"鍙帓鐗�","宸叉帓鐗�")) as layout_status
-        from flow_card as a left join sd.`order` as b on a.order_Id=b.order_id
+        from (select  id,order_id,process_id,order_number, quantity,founder,layout_status,create_time from flow_card group by process_Id,order_number) as a left join sd.`order` as b on a.order_Id=b.order_id
         left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
         where a.create_time between #{selectTime1} and #{selectTime2}
-                    <if test="flowCard.orderId != null and flowCard.orderId != ''">
-                        and a.order_id regexp #{flowCard.orderId}
-                    </if>
-                    <if test="flowCard.processId != null and flowCard.processId != ''">
-                        and a.process_Id regexp #{flowCard.processId}
-                    </if>
-                    <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
-                        and c.product_id regexp #{flowCard.orderDetail.productId}
-                    </if>
-                    <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
-                        and c.product_name regexp #{flowCard.orderDetail.productName}
-                    </if>
+        <if test="flowCard.orderId != null and flowCard.orderId != ''">
+            and a.order_id regexp #{flowCard.orderId}
+        </if>
+        <if test="flowCard.processId != null and flowCard.processId != ''">
+            and a.process_Id regexp #{flowCard.processId}
+        </if>
+        <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
+            and c.product_id regexp #{flowCard.orderDetail.productId}
+        </if>
+        <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
+            and c.product_name regexp #{flowCard.orderDetail.productName}
+        </if>
 
-                    <if test="flowCard.order.project != null and flowCard.order.project!= ''">
-                        and b.project regexp #{flowCard.order.project}
-                    </if>
+        <if test="flowCard.order.project != null and flowCard.order.project!= ''">
+            and b.project regexp #{flowCard.order.project}
+        </if>
 
 
         group by a.process_Id
@@ -131,7 +131,8 @@
         o.delivery_address
         from sd.`order` as o
         left join sd.order_glass_detail ogd on o.order_id = ogd.order_id
-        where o.production_order=2 and ogd.splitting_status=0 and o.create_time between #{selectTime1} and #{selectTime2}
+        where o.production_order=2 and ogd.splitting_status=0 and o.create_time between #{selectTime1} and
+        #{selectTime2}
 
         <if test="flowCard.order.orderId != null and flowCard.order.orderId != ''">
             and o.order_id regexp #{flowCard.order.orderId}
@@ -165,7 +166,7 @@
         ;
     </select>
 
-<!--    鍒嗘灦鏄庣粏鏌ヨ-->
+    <!--    鍒嗘灦鏄庣粏鏌ヨ-->
     <select id="detailsSelectMp" resultMap="flowCardMap">
         select od.order_id,
         ogd.production_id,
@@ -174,7 +175,7 @@
         SUM( od.quantity) as quantity,
         SUM(od.compute_gross_area) as compute_gross_area,
         od.perimeter
-        from  sd.order_detail as od left join
+        from sd.order_detail as od left join
         (select order_id,order_number,production_id,splitting_status from sd.order_glass_detail
         GROUP BY order_id,order_number
         ) as ogd on od.order_id=ogd.order_id and od.order_number=ogd.order_number
@@ -199,43 +200,47 @@
     <update id="updateDeleteState">
         update
             sd.order_glass_detail as ogd left join flow_card as fc
-                on ogd.order_id=fc.order_id and ogd.order_number=fc.order_number
+                on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number
         set ogd.splitting_status=0
-        where ogd.order_id=#{orderId}  and fc.process_id=#{processId}
+        where ogd.order_id = #{orderId}
+          and fc.process_id = #{processId}
 
     </update>
 
     <!--    鍒犻櫎娴佺▼鍗�-->
     <update id="deleteFlowCardMp">
-        delete from flow_card as fc where fc.process_id=#{processId}
+        delete
+        from flow_card as fc
+        where fc.production_id = left(#{processId},11)
     </update>
 
     <!--    鍒嗘灦鏂板鏄庣粏鏌ヨ-->
 
     <!--resultMap="flowCardMap"-->
-    <select id="selectNoCardMp" >
+    <select id="selectNoCardMp">
 
-        select
-        od.order_number,
-        od.order_number AS 'orderNumber',
-        od.width,
-        od.height,
-        od.shape,
-        od.quantity,
-        od.compute_gross_area,
-        p.total_thickness,
-        od.quantity as baiscQuantity,
-        od.compute_gross_area as 'computeGrossArea',
-        p.total_thickness AS 'totalThickness',
-        p.thickness,
-        od.weight
-        from
-        sd.order_detail as od
-        left join sd.order_glass_detail as ogd on od.order_id=ogd.order_id and od.order_number=ogd.order_number
-        left join sd.product as p on od.product_name=p.product_name
-        where od.order_id=#{orderId} and ogd.production_id=#{productionId} and ogd.splitting_status=0
+        select od.order_number,
+               od.order_number       AS 'orderNumber',
+               od.width,
+               od.height,
+               od.shape,
+               od.quantity,
+               od.compute_gross_area,
+               p.total_thickness,
+               od.quantity           as baiscQuantity,
+               od.compute_gross_area as 'computeGrossArea',
+               p.total_thickness     AS 'totalThickness',
+               p.thickness,
+               od.weight
+        from sd.order_detail as od
+                 left join sd.order_glass_detail as ogd
+                           on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+                 left join sd.product as p on od.product_name = p.product_name
+        where od.order_id = #{orderId}
+          and ogd.production_id = #{productionId}
+          and ogd.splitting_status = 0
         GROUP BY od.order_number
-        order by od.id desc
+        order by od.id
 
     </select>
 
@@ -246,7 +251,7 @@
         where fc.process_id = #{processId}
     </update>
 
-<!--    鏌ヨ瀵瑰簲娴佺▼鍗″彿鎺掔増鐘舵��-->
+    <!--    鏌ヨ瀵瑰簲娴佺▼鍗″彿鎺掔増鐘舵��-->
     <select id="selectLayoutStatus">
         select fc.layout_status
         from flow_card as fc
@@ -254,109 +259,153 @@
         LIMIT 1
     </select>
 
-<!--    鏌ヨ鎶ュ伐琛ㄥ唴鏄惁鏈夊搴旀祦绋嬪崱-->
+    <!--    鏌ヨ鎶ュ伐琛ㄥ唴鏄惁鏈夊搴旀祦绋嬪崱-->
     <select id="reportingWorkCount">
         select COUNT(rw.process_id)
         from reporting_work as rw
         where rw.process_id = #{processId}
     </select>
-<!--    鎻掑叆Flow_card琛�-->
+    <!--    鎻掑叆Flow_card琛�-->
     <insert id="addFlowCardMp">
-        insert into
-            flow_card (
-            order_id,
-            production_id,
-            process_id,
-            landing_sequence,
-            order_number,
-            technology_number,
-            quantity,
-            founder,
-            layers_number,
-            splitFrame_time,
-            create_time
-        )
-        select
-            ogd.order_id,
-            ogd.production_id,
-            #{processId},
-            #{landingSequence},
-            ogd.order_number,
-            ogd.technology_number,
-            #{quantity},
-            #{userName},
-            #{layer},
-            NOW(),
-            NOW()
-
+        insert into flow_card (order_id,
+                               production_id,
+                               process_id,
+                               landing_sequence,
+                               order_number,
+                               technology_number,
+                               quantity,
+                               founder,
+                               layers_number,
+                               splitFrame_time,
+                               create_time)
+        select ogd.order_id,
+               ogd.production_id,
+               #{processId},
+               #{landingSequence},
+               ogd.order_number,
+               ogd.technology_number,
+               #{quantity},
+               #{userName},
+               #{layer},
+               NOW(),
+               NOW()
 
 
         from sd.order_glass_detail as ogd
-        where ogd.production_id=#{productionId} and ogd.order_number=#{orderNumber}
+        where ogd.production_id = #{productionId}
+          and ogd.order_number = #{orderNumber}
         GROUP BY ogd.technology_number
     </insert>
 
-<!--    鏇存柊鍒嗘灦鐘舵��-->
+    <!--    鏇存柊鍒嗘灦鐘舵��-->
     <update id="updateFlowState">
         update sd.order_glass_detail as ogd
         set ogd.splitting_status=1
-        where ogd.production_id=#{productionId} and ogd.order_number=#{orderNumber}
+        where ogd.production_id = #{productionId}
+          and ogd.order_number = #{orderNumber}
     </update>
-<!--    鏌ヨ鏈垎鏋剁殑鏉℃暟-->
+    <!--    鏌ヨ鏈垎鏋剁殑鏉℃暟-->
     <select id="selectFlowCount">
         select COUNT(*)
         from sd.order_glass_detail as ogd
-        where ogd.order_id = left(#{productionId},10)
+        where ogd.order_id = left(#{productionId}, 10)
           and ogd.splitting_status = 0
     </select>
-<!--   淇敼璁㈠崟琛ㄥ垎鏋剁姸鎬�-->
+    <!--   淇敼璁㈠崟琛ㄥ垎鏋剁姸鎬�-->
     <update id="updateProcessingCard">
         update sd.`order` as o
         set o.processing_card=#{state}
-        where o.order_id=left(#{productionId},10)
+        where o.order_id = left(#{productionId}, 10)
     </update>
 
-<!--    鏌ヨ宸叉帓鐗堟暟鎹�-->
+    <!--    鏌ヨ宸叉帓鐗堟暟鎹�-->
     <select id="selectOkSchedulingMp">
-        select od.order_id,o.customer_name,o.project,od.order_number,od.width,od.height,od.quantity,
-               round(od.width*od.height*od.quantity/1000000,2),
-               (od.quantity-IFNULL(ps.scheduling_quantity,0)),
-               round(od.width*od.height*(od.quantity-IFNULL(ps.scheduling_quantity,0))/1000000,2),
-               IFNULL(ps.scheduling_quantity,0),
-               round(od.width*od.height*(IFNULL(ps.scheduling_quantity,0))/1000000,2),
-               od.product_name,od.shape
-        from sd.order_detail as od left join sd.order as o on od.order_id=o.order_id
-                                   left join production_scheduling as ps on ps.order_id=od.order_id and ps.order_number=od.order_number
-        where od.order_id=#{orderId} and ps.processes=#{processes} and ps.scheduling_id IS NOT NULL
+        select od.order_id,
+               o.customer_name,
+               o.project,
+               od.order_number,
+               od.width,
+               od.height,
+               od.quantity,
+               round(od.width * od.height * od.quantity / 1000000, 2),
+               (od.quantity - IFNULL(ps.scheduling_quantity, 0)),
+               round(od.width * od.height * (od.quantity - IFNULL(ps.scheduling_quantity, 0)) / 1000000, 2),
+               IFNULL(ps.scheduling_quantity, 0),
+               round(od.width * od.height * (IFNULL(ps.scheduling_quantity, 0)) / 1000000, 2),
+               od.product_name,
+               od.shape
+        from sd.order_detail as od
+                 left join sd.order as o on od.order_id = o.order_id
+                 left join production_scheduling as ps
+                           on ps.order_id = od.order_id and ps.order_number = od.order_number
+        where od.order_id = #{orderId}
+          and ps.processes = #{processes}
+          and ps.scheduling_id IS NOT NULL
         order by ps.id desc
     </select>
-<!--    鏌ヨ鏈帓鐗堟暟鎹�-->
+    <!--    鏌ヨ鏈帓鐗堟暟鎹�-->
     <select id="selectNoSchedulingMp">
 
     </select>
-<!--    棣栨鏌ヨ鎺掔増鏁版嵁-->
+    <!--    棣栨鏌ヨ鎺掔増鏁版嵁-->
     <select id="selectLastSchedulingMp">
-        select od.order_id,o.customer_name,o.project,od.order_number,od.width,od.height,od.quantity,
-               round(od.width*od.height*od.quantity/1000000,2) as area,
-               (od.quantity-IFNULL(ps.scheduling_quantity,0)) as pendingProductionQuantity,
-               round(od.width*od.height*(od.quantity-IFNULL(ps.scheduling_quantity,0))/1000000,2) as pendingProductionArea,
-               IFNULL(ps.scheduling_quantity,0) as productionScheduledQuantity,
-               round(od.width*od.height*(IFNULL(ps.scheduling_quantity,0))/1000000,2) as productionScheduledArea,
-               od.product_name,od.shape
-        from sd.order_detail as od left join sd.order as o on od.order_id=o.order_id
-                                   left join production_scheduling as ps on ps.order_id=od.order_id and ps.order_number=od.order_number
+        select od.order_id,
+               o.customer_name,
+               o.project,
+               od.order_number,
+               od.width,
+               od.height,
+               od.quantity,
+               round(od.width * od.height * od.quantity / 1000000, 2)                                       as area,
+               (od.quantity - IFNULL(ps.scheduling_quantity, 0))                                            as pendingProductionQuantity,
+               round(od.width * od.height * (od.quantity - IFNULL(ps.scheduling_quantity, 0)) / 1000000,
+                     2)                                                                                     as pendingProductionArea,
+               IFNULL(ps.scheduling_quantity, 0)                                                            as productionScheduledQuantity,
+               round(od.width * od.height * (IFNULL(ps.scheduling_quantity, 0)) / 1000000,
+                     2)                                                                                     as productionScheduledArea,
+               od.product_name,
+               od.shape
+        from sd.order_detail as od
+                 left join sd.order as o on od.order_id = o.order_id
+                 left join production_scheduling as ps
+                           on ps.order_id = od.order_id and ps.order_number = od.order_number
         where od.create_time between #{selectTime1} and #{selectTime2}
     </select>
 
-<!--   鏌ヨ瀵瑰簲搴忓彿鐨勫眰鏁�-->
+    <!--   鏌ヨ瀵瑰簲搴忓彿鐨勫眰鏁�-->
     <select id="selectLayer">
         select COUNT(ogd.order_number)
         from sd.order_glass_detail as ogd
         where ogd.production_id = #{productionId}
-          and ogd.order_number=#{orderNumber}
+          and ogd.order_number = #{orderNumber}
     </select>
-<!--  鏌ヨ璇ヨ鍗曟祦绋嬪崱鏉℃暟  -->
+    <!--  鏌ヨ璇ヨ鍗曟祦绋嬪崱鏉℃暟  -->
     <select id="selectFlowCardCount">
-        select COUNT(*) from flow_card where order_id=#{orderId}
+        select COUNT(*)
+        from flow_card
+        where order_id = #{orderId}
     </select>
+
+    <select id="flowCardDetailMp">
+        select fc.order_id,
+               fc.process_id,
+               fc.order_number,
+               fc.quantity,
+               round(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
+               od.product_name,
+               fc.founder,
+               date(fc.splitFrame_time) as splitFrame_time
+        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
+                              fc.technology_number = ogd.technology_number
+                 left join sd.order_detail as od on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+        where fc.process_id = #{processId}
+        GROUP BY fc.order_id, fc.process_id, fc.order_number
+    </select>
+
+    <delete id="deleteReportingWork">
+        delete from sd.order_process_detail
+        where  left(process_id,11) = left(#{processId},11)
+    </delete>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0