From 7ea8883ca6b47ec014a32ed57c3bea64544e893e Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 19 三月 2026 17:09:34 +0800
Subject: [PATCH] feat: 生产订单绑定工艺路线、BOM、工艺路线、工序参数新增修改
---
src/main/resources/mapper/production/ProductOrderMapper.xml | 112 +++++++++++++++++++++++++++----------------------------
1 files changed, 55 insertions(+), 57 deletions(-)
diff --git a/src/main/resources/mapper/production/ProductOrderMapper.xml b/src/main/resources/mapper/production/ProductOrderMapper.xml
index 4d11daf..7c18400 100644
--- a/src/main/resources/mapper/production/ProductOrderMapper.xml
+++ b/src/main/resources/mapper/production/ProductOrderMapper.xml
@@ -5,67 +5,60 @@
<resultMap id="basicMap" type="com.ruoyi.production.pojo.ProductOrder">
<id property="id" column="id"/>
- <result property="productModelId" column="product_model_id"/>
<result property="tenantId" column="tenant_id"/>
- <result property="salesLedgerId" column="sales_ledger_id"/>
<result property="routeId" column="route_id"/>
<result property="npsNo" column="nps_no"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
+ <result property="planCompleteTime" column="plan_complete_time"/>
+ <result property="status" column="status"/>
</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,
- pb.bom_no,
+ SELECT
+ po.id,
+ po.nps_no,
+ po.tenant_id,
+ po.create_time,
+ po.update_time,
+ po.route_id,
+ po.quantity,
+ po.complete_quantity,
+ po.start_time,
+ po.end_time,
+ po.plan_complete_time,
+ po.status,
+ pm.product_name,
+ po.strength AS strength,
+ pr.process_route_code AS processRouteCode,
+ pr.description,
+ pb.id AS bomId,
+ pb.bom_no AS bomNo,
ROUND(po.complete_quantity / po.quantity * 100, 2) AS completionStatus,
- DATEDIFF(sl.delivery_date, CURDATE()) AS delivery_days_diff
- from product_order po
- left join sales_ledger sl on po.sales_ledger_id = sl.id
- left join sales_ledger_product slp on po.sale_ledger_product_id = slp.id
- left join product_process_route ppr on po.id = ppr.product_order_id
- left join product_bom pb on pb.id = ppr.bom_id
+ pms.model,
+ pms.material_code AS materialCode
+ FROM product_order po
+ LEFT JOIN process_route pr ON po.route_id = pr.id
+ LEFT JOIN product_bom pb ON pr.bom_id = pb.id
+ LEFT JOIN product_order_plan 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
+ LEFT JOIN product_material pm ON pm.id = pms.product_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},'%')
+ AND po.nps_no LIKE CONCAT('%', #{c.npsNo}, '%')
</if>
<if test="c.startTime != null and c.endTime != null">
- and po.create_time between #{c.startTime} and #{c.endTime}
+ 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}
+ left join product_material_sku pms on pms.id = pr.product_model_id
+ where pms.id = #{productModelId}
</select>
<select id="listProcessBom" resultType="com.ruoyi.production.dto.ProductStructureDto">
select ps.id,
@@ -75,35 +68,40 @@
ps.unit_quantity * po.quantity as demandedQuantity,
ps.unit,
p.product_name,
- pp.name as process_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
+ 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 >= #{startDate} AND create_time <= #{endDate}
+ SELECT count(1)
+ FROM product_order
+ WHERE create_time >= #{startDate}
+ AND create_time <= #{endDate}
</select>
<select id="countCompleted" resultType="java.lang.Integer">
- SELECT count(1) FROM product_order
- WHERE end_time >= #{startDate} AND end_time <= #{endDate}
+ SELECT count(1)
+ FROM product_order
+ WHERE end_time >= #{startDate}
+ AND end_time <= #{endDate}
AND complete_quantity >= quantity
</select>
<select id="countPending" resultType="java.lang.Integer">
- SELECT count(1) FROM product_order
- WHERE create_time >= #{startDate} AND create_time <= #{endDate}
+ SELECT count(1)
+ FROM product_order
+ WHERE create_time >= #{startDate}
+ AND create_time <= #{endDate}
AND complete_quantity < quantity
</select>
</mapper>
--
Gitblit v1.9.3