From 5d314130e6f21bd265388b5210808baeba5f2d0c Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 23 三月 2026 17:57:14 +0800
Subject: [PATCH] feat: 生产报工的工序参数/BOM消耗产品查询返回、新增报工、分页查询
---
src/main/resources/mapper/production/ProductionProductMainMapper.xml | 78 ++++++++++++++++++++++++--------------
1 files changed, 49 insertions(+), 29 deletions(-)
diff --git a/src/main/resources/mapper/production/ProductionProductMainMapper.xml b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
index aeb4230..4bebe89 100644
--- a/src/main/resources/mapper/production/ProductionProductMainMapper.xml
+++ b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
@@ -10,45 +10,43 @@
<result property="tenantId" column="tenant_id"/>
<result property="createTime" column="create_time"/>
<result property="status" column="status"/>
+ <result property="postName" column="post_name"/>
+ <result property="schedule" column="schedule"/>
+ <result property="reportingTime" column="reporting_time"/>
</resultMap>
<select id="listPageProductionProductMainDto" resultType="com.ruoyi.production.dto.ProductionProductMainDto">
select ppm.*,
- pwo.work_order_no as workOrderNo,
- pwo.status as workOrderStatus,
- u.nick_name as nickName,
- p.product_name as productName,
- pm.model as productModelName,
- ppo.quantity,
- ppo.scrap_qty,
- pm.unit,
- sl.sales_contract_no salesContractNo
+ po.nps_no as npsNo,
+ pms.material_code as materialCode,
+ pm.product_name as productName,
+ pms.model as productModelName,
+ IFNULL(ppo.quantity, 0) as totalQuantity,
+ IFNULL(ppo.scrap_qty, 0) as scrapQty,
+ IFNULL(ppo.quantity, 0) as quantity
from
production_product_main ppm
- left join product_work_order pwo on pwo.id = ppm.work_order_id
- left join product_order po on po.id = pwo.product_order_id
- left join production_product_output ppo on ppm.id = ppo.product_main_id
- left join product_model pm on pm.id = ppo.product_model_id
- left join product p on p.id = pm.product_id
- left join sales_ledger sl on sl.id = po.sales_ledger_id
- left join sys_user u on u.user_id = ppm.user_id
+ left join production_product_output ppo on ppo.product_main_id = ppm.id
+ left join production_product_input ppi on ppi.product_main_id = ppm.id
+ left join product_order po on po.id = ppm.product_order_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 pp.product_material_sku_id = pms.id
+ left join product_material pm on pm.id = pms.product_id
<where>
- <if test="c.nickName != null and c.nickName != ''">
- and u.nick_name like concat('%',#{c.nickName},'%')
+ <if test="c.npsNo != null and c.npsNo != ''">
+ AND po.nps_no like concat('%', #{c.npsNo}, '%')
</if>
- <if test="c.workOrderNo != null and c.workOrderNo != ''">
- and pwo.work_order_no like concat('%',#{c.workOrderNo},'%')
+ <if test="c.schedule != null and c.schedule != ''">
+ AND ppm.schedule like concat('%', #{c.schedule}, '%')
</if>
- <if test="c.workOrderStatus != null and c.workOrderStatus != ''">
- and pwo.status = #{c.workOrderStatus}
- </if>
- <if test="c.status != null and c.status != ''">
- and ppm.status = #{c.status}
+ <if test="c.productName != null and c.productName != ''">
+ AND pm.product_name like concat('%', #{c.productName}, '%')
</if>
</where>
- order by ppm.id
-
+ order by ppm.id desc
</select>
+
<select id="getOrderByMainId" resultType="com.ruoyi.production.pojo.ProductOrder">
select po.*
from product_order po
@@ -63,7 +61,7 @@
sl.sales_contract_no,
sl.customer_name,
p.product_name,
- pm.model,
+ pm.model as product_model_name,
pm.unit,
slpa.process,
ppo.quantity,
@@ -71,7 +69,7 @@
slpa.work_hours * slpa.finished_num AS wages
FROM
production_product_main ppm
- LEFT JOIN sales_ledger_production_accounting slpa ON slpa.sales_ledger_work_id = ppm.id
+ LEFT JOIN sales_ledger_production_accounting slpa ON slpa.product_main_id = ppm.id
LEFT JOIN production_product_output ppo ON ppm.id = ppo.product_main_id
LEFT JOIN product_work_order pwo ON pwo.id = ppm.work_order_id
LEFT JOIN product_order po ON po.id = pwo.product_order_id
@@ -83,6 +81,28 @@
<if test="ew.schedulingUserName != null and ew.schedulingUserName !=''">
and slpa.scheduling_user_name = #{ew.schedulingUserName}
</if>
+ <if test="ew.entryDate != null ">
+ and slpa.scheduling_date >= #{ew.entryDate}
+ and slpa.scheduling_date < DATE_ADD(#{ew.entryDate}, INTERVAL 1 DAY)
+ </if>
+ <if test="ew.entryDateStart != null and ew.entryDateEnd != null">
+ and slpa.scheduling_date >= #{ew.entryDateStart}
+ and slpa.scheduling_date < date_add(#{ew.entryDateEnd}, INTERVAL 1 DAY)
+ </if>
+ </where>
+ </select>
+ <select id="listMain" resultType="java.lang.Long">
+ SELECT ppm.id FROM production_product_main ppm
+ left join product_work_order pwo on pwo.id = ppm.work_order_id
+ left join product_order po on po.id = pwo.product_order_id
+ left join sales_ledger sl on sl.id = po.sales_ledger_id
+ <where>
+ <if test="idList != null and idList.size() > 0">
+ and sl.id in
+ <foreach item="id" collection="idList" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
</where>
</select>
--
Gitblit v1.9.3