From 423ac2a5e7e451248d8cdfc2cda3f32dba0ec8f8 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 11 三月 2026 17:59:52 +0800
Subject: [PATCH] feat: 生产计划关联物料信息表

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

diff --git a/src/main/resources/mapper/production/ProductOrderMapper.xml b/src/main/resources/mapper/production/ProductOrderMapper.xml
index 7fe84fa..6f3176a 100644
--- a/src/main/resources/mapper/production/ProductOrderMapper.xml
+++ b/src/main/resources/mapper/production/ProductOrderMapper.xml
@@ -15,52 +15,65 @@
     </resultMap>
     <select id="pageProductOrder" resultType="com.ruoyi.production.dto.ProductOrderDto">
         select po.*,
-        sl.sales_contract_no,
-        sl.customer_name,
-        slp.product_category,
-        slp.specification_model,
         ppr.process_route_code,
         ROUND(po.complete_quantity / po.quantity * 100, 2) AS completionStatus
         from product_order po
-        left join sales_ledger sl on po.sales_ledger_id = sl.id
-        left join sales_ledger_product slp on po.product_model_id = slp.id
         left join product_process_route ppr on po.id = ppr.product_order_id
         <where>
             <if test="c.npsNo != null and c.npsNo != ''">
                 and po.nps_no like concat('%',#{c.npsNo},'%')
             </if>
-            <if test="c.salesContractNo != null and c.salesContractNo != ''">
-                and sl.sales_contract_no like concat('%',#{c.salesContractNo},'%')
-            </if>
             <if test="c.customerName != null and c.customerName != ''">
                 and sl.customer_name like concat('%',#{c.customerName},'%')
             </if>
-            <if test="c.productCategory != null and c.productCategory != ''">
-                and slp.product_category like concat('%',#{c.productCategory},'%')
-            </if>
-            <if test="c.specificationModel != null and c.specificationModel != ''">
-                and slp.specification_model like concat('%',#{c.specificationModel},'%')
+            <if test="c.startTime != null and c.endTime != null">
+                and po.create_time between #{c.startTime} and #{c.endTime}
             </if>
         </where>
-    </select>
-    <select id="productMainByOrderId" resultType="com.ruoyi.production.dto.ProductOrderDto">
-        select po.*,
-               pwo.work_order_no,
-               pwo.report_work,
-               pwo.status,
-               pwo.quantity,
-               pwo.plan_quantity
-        from product_order po
-                 left join product_work_order pwo on po.id = pwo.product_order_id
-        where po.id = #{c.id}
     </select>
     <select id="listProcessRoute" resultType="com.ruoyi.production.pojo.ProcessRoute">
         select pr.*
         from process_route pr
                  left join product_model pm on pr.product_model_id = pm.id
-                 left join sales_ledger_product slp on pm.id = slp.product_model_id
-        where slp.id = #{productModelId}
+        where pm.id = #{productModelId}
+    </select>
+    <select id="listProcessBom" resultType="com.ruoyi.production.dto.ProductStructureDto">
+        select ps.id,
+               ps.product_model_id,
+               ps.process_id,
+               ps.unit_quantity,
+               ps.unit_quantity * po.quantity as demandedQuantity,
+               ps.unit,
+               p.product_name,
+               pp.name as  process_name,
+               pm.product_id,
+               pm.model
+        from
+            product_structure ps
+                left join product_model pm on ps.product_model_id = pm.id
+                left join product p on pm.product_id = p.id
+                left join product_process pp on ps.process_id = pp.id
+                left join product_process_route ppr on ps.bom_id = ppr.bom_id
+                left join product_order po on po.id = ppr.product_order_id
+        where ppr.product_order_id = #{orderId}
+        order by ps.id
     </select>
 
 
+    <select id="countCreated" resultType="java.lang.Integer">
+        SELECT count(1) FROM product_order
+        WHERE create_time &gt;= #{startDate} AND create_time &lt;= #{endDate}
+    </select>
+
+    <select id="countCompleted" resultType="java.lang.Integer">
+        SELECT count(1) FROM product_order
+        WHERE end_time &gt;= #{startDate} AND end_time &lt;= #{endDate}
+          AND complete_quantity &gt;= quantity
+    </select>
+
+    <select id="countPending" resultType="java.lang.Integer">
+        SELECT count(1) FROM product_order
+        WHERE create_time &gt;= #{startDate} AND create_time &lt;= #{endDate}
+          AND complete_quantity &lt; quantity
+    </select>
 </mapper>

--
Gitblit v1.9.3