From a76e1d17d67641993dea6335cb8e1465a94df58d Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 21 五月 2026 15:39:05 +0800
Subject: [PATCH] feat(stock): 优化库存管理和成品树结构功能 1- 为ApproveProcessMapper.xml和ProductBomMapper.xml添加排序功能 2- 在ProductionProductMainDto中新增bomInputQty字段用于产品结构投入数量 3- 修改ProductionProductMainServiceImpl中投入数量计算逻辑,使用前端传入的bomInputQty值 4- 在ProductWorkOrderDto中添加bomInputQty字段并在服务实现中计算标准投入数量 5- 更新SalesLedgerMapper.xml查询逻辑,从product_summary获取电压信息 6- 为SalesLedgerProduct添加stockId字段并修改库存扣减逻辑使用具体库存ID 7- 重构StockInventoryController中的成品库存树查询接口和导入导出功能 8- 新增成品和非成品库存导入导出的数据模型和Excel工具类 9- 优化StockInventoryServiceImpl中的库存扣减逻辑,支持按特定库存ID操作 10- 更新库存导入导出功能,区分成品和非成品类型并提供相应模板
---
src/main/resources/mapper/production/ProductOrderMapper.xml | 57 ++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 40 insertions(+), 17 deletions(-)
diff --git a/src/main/resources/mapper/production/ProductOrderMapper.xml b/src/main/resources/mapper/production/ProductOrderMapper.xml
index 5f526ea..f4db954 100644
--- a/src/main/resources/mapper/production/ProductOrderMapper.xml
+++ b/src/main/resources/mapper/production/ProductOrderMapper.xml
@@ -17,14 +17,31 @@
select po.*,
sl.sales_contract_no,
sl.customer_name,
- slp.product_category,
- slp.specification_model,
+ p.product_name as product_category,
+ pm.model as specification_model,
+ pm.unit,
+ pm.material_code as materialCode,
ppr.process_route_code,
pb.bom_no,
ROUND(po.complete_quantity / po.quantity * 100, 2) AS completionStatus,
- DATEDIFF(sl.delivery_date, CURDATE()) AS delivery_days_diff
+ DATEDIFF(sl.delivery_date, CURDATE()) AS delivery_days_diff,
+ sl.delivery_date,
+ CASE
+ WHEN shipping_status_counts.total_count = 0 THEN false
+ WHEN shipping_status_counts.unshipped_count = 0 THEN true
+ ELSE false
+ END AS is_fh
from product_order po
left join sales_ledger sl on po.sales_ledger_id = sl.id
+ LEFT JOIN (
+ SELECT sales_ledger_id,
+ COUNT(*) as total_count,
+ SUM(CASE WHEN status != '宸插彂璐�' THEN 1 ELSE 0 END) as unshipped_count
+ FROM shipping_info
+ GROUP BY sales_ledger_id
+ ) shipping_status_counts ON sl.id = shipping_status_counts.sales_ledger_id
+ left join product_model pm on po.product_model_id = pm.id
+ left join product p on pm.product_id = p.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
@@ -48,24 +65,13 @@
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}
+ order by po.priority
</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,
@@ -77,7 +83,8 @@
p.product_name,
pp.name as process_name,
pm.product_id,
- pm.model
+ pm.model,
+ pm.material_code as materialCode
from
product_structure ps
left join product_model pm on ps.product_model_id = pm.id
@@ -90,4 +97,20 @@
</select>
+ <select id="countCreated" resultType="java.lang.Integer">
+ 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}
+ 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}
+ AND complete_quantity < quantity
+ </select>
</mapper>
--
Gitblit v1.9.3