From 741918a903e17b2ec7522556d2c043b8d35dd8a1 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 15 六月 2026 17:42:58 +0800
Subject: [PATCH] 生产取消bom,不合格管理定制化

---
 src/main/resources/mapper/production/ProductionOrderMapper.xml |   43 ++++++++++++++++++++++++++++---------------
 1 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/src/main/resources/mapper/production/ProductionOrderMapper.xml b/src/main/resources/mapper/production/ProductionOrderMapper.xml
index 95679a7..7ca1bce 100644
--- a/src/main/resources/mapper/production/ProductionOrderMapper.xml
+++ b/src/main/resources/mapper/production/ProductionOrderMapper.xml
@@ -52,9 +52,7 @@
         pm.model as model,
         po.is_end_order as endOrder,
         tr.process_route_code as processRouteCode,
-        ROUND(po.complete_quantity / po.quantity * 100, 2) AS completionStatus,
-        tb.bom_no as bomNo,
-        pop_return.returned as returned
+        ROUND(po.complete_quantity / po.quantity * 100, 2) AS completionStatus
     </sql>
 
     <sql id="ProductionOrderVoFrom">
@@ -74,13 +72,6 @@
                  left join product_model pm on po.product_model_id = pm.id
                  left join product p on pm.product_id = p.id
                  left join technology_routing tr on po.technology_routing_id = tr.id
-                 left join technology_bom tb on tb.id = tr.bom_id
-                 left join (
-            select production_order_id as productionOrderId,
-                   if(max(case when ifnull(is_returned, 0) = 1 then 1 else 0 end) = 1, true, false) as returned
-            from production_order_pick
-            group by production_order_id
-        ) pop_return on pop_return.productionOrderId = po.id
     </sql>
 
     <sql id="ProductionOrderWhere">
@@ -164,7 +155,6 @@
                po.quantity,
                ifnull(po.complete_quantity, 0) as completeQuantity,
                round(ifnull(po.complete_quantity, 0) / nullif(po.quantity, 0) * 100, 2) as completionStatus,
-               tb.bom_no,
                datediff(po_sales.deliveryDate, curdate()) as deliveryDaysDiff,
                po_sales.deliveryDate as deliveryDate,
                false as isFh
@@ -184,7 +174,6 @@
                  left join product_model pm on po.product_model_id = pm.id
                  left join product p on pm.product_id = p.id
                  left join technology_routing tr on po.technology_routing_id = tr.id
-                 left join technology_bom tb on tr.bom_id = tb.id
         where po.create_time between #{startTime} and #{endTime}
         order by po.create_time desc
     </select>
@@ -227,6 +216,10 @@
             <if test="status != null">
                 and po.status = #{status}
             </if>
+            <if test="startTime != null and endTime != null">
+                and po.create_time &gt;= #{startTime}
+                and po.create_time &lt; #{endTime}
+            </if>
         </where>
         order by po.id desc
         limit #{offset}, #{size}
@@ -239,13 +232,21 @@
             <if test="status != null">
                 and po.status = #{status}
             </if>
+            <if test="startTime != null and endTime != null">
+                and po.create_time &gt;= #{startTime}
+                and po.create_time &lt; #{endTime}
+            </if>
         </where>
     </select>
 
     <select id="countHomeOrderProgressByStatus" resultType="java.util.Map">
         select po.status as status, count(1) as cnt
         from production_order po
-        where po.status in (2, 3, 4)
+        where po.status in (1, 2, 3, 4)
+        <if test="startTime != null and endTime != null">
+            and po.create_time &gt;= #{startTime}
+            and po.create_time &lt; #{endTime}
+        </if>
         group by po.status
     </select>
 
@@ -258,7 +259,13 @@
         from production_order po
                  left join product_model pm on po.product_model_id = pm.id
                  left join product p on pm.product_id = p.id
-        where po.status in (1, 2)
+        <where>
+            po.status in (1, 2)
+            <if test="planStart != null and planEnd != null">
+                and po.plan_complete_time &gt;= #{planStart}
+                and po.plan_complete_time &lt; #{planEnd}
+            </if>
+        </where>
         order by case when po.status = 2 then 0 else 1 end, po.id desc
         limit #{size}
     </select>
@@ -266,7 +273,13 @@
     <select id="countHomeTodayProductionPlan" resultType="java.lang.Long">
         select count(1)
         from production_order po
-        where po.status in (1, 2)
+        <where>
+            po.status in (1, 2)
+            <if test="planStart != null and planEnd != null">
+                and po.plan_complete_time &gt;= #{planStart}
+                and po.plan_complete_time &lt; #{planEnd}
+            </if>
+        </where>
     </select>
 
 </mapper>

--
Gitblit v1.9.3