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 | 94 +++++++++++++++++++++++++++++++++++++++++------
1 files changed, 82 insertions(+), 12 deletions(-)
diff --git a/src/main/resources/mapper/production/ProductionOrderMapper.xml b/src/main/resources/mapper/production/ProductionOrderMapper.xml
index 1a304ef..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>
@@ -212,4 +201,85 @@
and ifnull(complete_quantity, 0) < quantity
</select>
+ <select id="selectHomeOrderProgressPage" resultType="java.util.Map">
+ select po.nps_no as orderNo,
+ p.product_name as productName,
+ ifnull(po.quantity, 0) as plannedQuantity,
+ ifnull(po.complete_quantity, 0) as completedQuantity,
+ round(ifnull(po.complete_quantity, 0) / nullif(po.quantity, 0) * 100, 2) as completionRate,
+ po.plan_complete_time as dueDate,
+ po.status as status
+ 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>
+ <if test="status != null">
+ and po.status = #{status}
+ </if>
+ <if test="startTime != null and endTime != null">
+ and po.create_time >= #{startTime}
+ and po.create_time < #{endTime}
+ </if>
+ </where>
+ order by po.id desc
+ limit #{offset}, #{size}
+ </select>
+
+ <select id="countHomeOrderProgress" resultType="java.lang.Long">
+ select count(1)
+ from production_order po
+ <where>
+ <if test="status != null">
+ and po.status = #{status}
+ </if>
+ <if test="startTime != null and endTime != null">
+ and po.create_time >= #{startTime}
+ and po.create_time < #{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 (1, 2, 3, 4)
+ <if test="startTime != null and endTime != null">
+ and po.create_time >= #{startTime}
+ and po.create_time < #{endTime}
+ </if>
+ group by po.status
+ </select>
+
+ <select id="selectHomeTodayProductionPlan" resultType="java.util.Map">
+ select po.nps_no as orderNo,
+ p.product_name as productName,
+ ifnull(po.quantity, 0) as plannedQuantity,
+ po.plan_complete_time as dueDate,
+ po.status as status
+ 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)
+ <if test="planStart != null and planEnd != null">
+ and po.plan_complete_time >= #{planStart}
+ and po.plan_complete_time < #{planEnd}
+ </if>
+ </where>
+ order by case when po.status = 2 then 0 else 1 end, po.id desc
+ limit #{size}
+ </select>
+
+ <select id="countHomeTodayProductionPlan" resultType="java.lang.Long">
+ select count(1)
+ from production_order po
+ <where>
+ po.status in (1, 2)
+ <if test="planStart != null and planEnd != null">
+ and po.plan_complete_time >= #{planStart}
+ and po.plan_complete_time < #{planEnd}
+ </if>
+ </where>
+ </select>
+
</mapper>
--
Gitblit v1.9.3