From 346d463346701e8714b3a3a3ebb21e21960b5484 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 20 三月 2026 15:06:47 +0800
Subject: [PATCH] feat: 查看生产订单对应的生产计划来源

---
 src/main/resources/mapper/production/ProductOrderMapper.xml |   40 +++++++++++++++++++++++++++++++++++++---
 1 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/src/main/resources/mapper/production/ProductOrderMapper.xml b/src/main/resources/mapper/production/ProductOrderMapper.xml
index 1862e33..ed6c187 100644
--- a/src/main/resources/mapper/production/ProductOrderMapper.xml
+++ b/src/main/resources/mapper/production/ProductOrderMapper.xml
@@ -14,6 +14,19 @@
         <result property="status" column="status"/>
     </resultMap>
 
+    <resultMap id="ProductOrderSourceMap" type="com.ruoyi.production.dto.ProductOrderSourceDto">
+        <id property="applyNo" column="apply_no"/>
+        <result property="applyNo" column="apply_no"/>
+        <collection property="productPlans" ofType="com.ruoyi.productionPlan.dto.ProductionPlanDto" autoMapping="true">
+            <id property="id" column="plan_id"/>
+            <result property="materialCode" column="material_code"/>
+            <result property="productName" column="product_name"/>
+            <result property="model" column="model"/>
+            <result property="unit" column="unit"/>
+            <result property="totalAssignedQuantity" column="total_assigned_quantity"/>
+        </collection>
+    </resultMap>
+
     <select id="pageProductOrder" resultType="com.ruoyi.production.dto.ProductOrderDto">
         SELECT
         po.id,
@@ -41,9 +54,9 @@
         LEFT JOIN process_route pr ON po.route_id = pr.id
         LEFT JOIN product_bom pb ON pr.bom_id = pb.id
         LEFT JOIN (
-            SELECT product_order_id, MIN(production_plan_id) AS production_plan_id
-            FROM product_order_plan
-            GROUP BY product_order_id
+        SELECT product_order_id, MIN(production_plan_id) AS production_plan_id
+        FROM product_order_plan
+        GROUP BY product_order_id
         ) pop ON po.id = pop.product_order_id
         LEFT JOIN production_plan pp ON pop.production_plan_id = pp.id
         LEFT JOIN product_material_sku pms ON pms.id = pp.product_material_sku_id
@@ -108,4 +121,25 @@
           AND create_time &lt;= #{endDate}
           AND complete_quantity &lt; quantity
     </select>
+
+    <select id="productOrderSource" resultMap="ProductOrderSourceMap"
+            parameterType="java.lang.Long">
+        SELECT pp.id                 AS plan_id,
+               pp.apply_no,
+               pp.*,
+               pop.assigned_quantity AS total_assigned_quantity,
+               sku.material_code,
+               sku.model,
+               pm.product_name,
+               pm.unit
+
+        FROM product_order_plan pop
+                 LEFT JOIN production_plan pp ON pop.production_plan_id = pp.id
+                 LEFT JOIN product_material_sku sku ON pp.product_material_sku_id = sku.id
+                 LEFT JOIN product_material pm ON sku.product_id = pm.id
+
+        WHERE pop.product_order_id = #{orderId}
+        ORDER BY pp.apply_no
+
+    </select>
 </mapper>

--
Gitblit v1.9.3