feat(wms): 新增按实际库区查询钢卷分布功能

- 在 IWmsMaterialCoilService 接口中新增 getDistributionByActualWarehouse 方法
- 实现钢卷按实际库区统计数量和重量的查询逻辑
- 添加对应的 Mapper XML 查询语句,支持按物品类型和 ID 过滤
- 在 Controller 中暴露新的 REST 接口 /distributionByActualWarehouse
- 扩展 WmsStockBo 和 WmsStockVo 类以支持实际库区相关字段
- 新增 queryPageListActual 方法用于分页查询实际库区库存数据
- 实现递归查询子实际库区的功能,并应用到查询条件中
- 更新 Mapper 文件及服务实现类以支持新查询逻辑
This commit is contained in:
2025-11-03 17:06:17 +08:00
parent 07c8ccbcdd
commit 83edc5703a
12 changed files with 169 additions and 7 deletions

View File

@@ -65,5 +65,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
GROUP BY mc.warehouse_id, w.warehouse_name, mc.item_type, mc.item_id
ORDER BY totalQuantity DESC
</select>
<select id="selectVoPagePlusActual" resultType="com.klp.domain.vo.WmsStockVo">
SELECT mc.actual_warehouse_id AS actualWarehouseId,
mc.item_type AS itemType,
mc.item_id AS itemId,
w.actual_warehouse_name AS actualWarehouseName,
CASE
WHEN mc.item_type = 'product' THEN p.product_name
WHEN mc.item_type = 'raw_material' THEN r.raw_material_name
ELSE NULL
END AS itemName,
CASE
WHEN mc.item_type = 'product' THEN p.product_code
WHEN mc.item_type = 'raw_material' THEN r.raw_material_code
ELSE NULL
END AS itemCode,
COUNT(*) AS totalQuantity,
SUM(CASE WHEN mc.status = 1 THEN 1 ELSE 0 END) AS onTheWay
FROM wms_material_coil mc
LEFT JOIN wms_actual_warehouse w ON mc.actual_warehouse_id = w.actual_warehouse_id AND w.del_flag = 0
LEFT JOIN wms_product p ON mc.item_type = 'product' AND mc.item_id = p.product_id AND p.del_flag = 0
LEFT JOIN wms_raw_material r
ON mc.item_type = 'raw_material' AND mc.item_id = r.raw_material_id AND r.del_flag = 0
${ew.customSqlSegment}
</select>
</mapper>