feat(wms): 新增第三个报表统计——冷硬卷统计

- 在IWmsMaterialCoilService中添加getCoilTrimStatistics方法
- 在WmsMaterialCoilController中新增trimStatistics接口
- 在WmsMaterialCoilMapper中添加selectCoilTrimStatistics查询方法
- 在WmsMaterialCoilMapper.xml中实现切边统计数据SQL查询
- 在WmsMaterialCoilServiceImpl中实现切边统计业务逻辑
- 新增CoilTrimRawVo、CoilTrimStatisticsVo和TrimWidthStatisticsVo数据传输对象
- 按厚度、宽度、切边要求(净边/毛边)统计钢卷数量和重量
- 实现数据分组和排序功能,支持前端展示需求
This commit is contained in:
2026-03-07 14:37:12 +08:00
parent e5acc06e1c
commit db379748f2
8 changed files with 154 additions and 8 deletions

View File

@@ -678,5 +678,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE coil_id = #{coilId}
</update>
<!-- 冷硬卷切边统计:按厚度、宽度、切边要求统计数量和重量 -->
<select id="selectCoilTrimStatistics" resultType="com.klp.domain.vo.dashboard.CoilTrimRawVo">
SELECT
SUBSTRING_INDEX(COALESCE(rm.specification, p.specification), '*', 1) AS thickness,
SUBSTRING_INDEX(COALESCE(rm.specification, p.specification), '*', -1) AS width,
CASE
WHEN mc.trimming_requirement = '净边' THEN '净边'
ELSE '毛边'
END AS trimmingRequirement,
COUNT(mc.coil_id) AS coilCount,
COALESCE(SUM(mc.net_weight), 0) AS totalWeight
FROM wms_material_coil mc
LEFT JOIN wms_raw_material rm ON mc.item_id = rm.raw_material_id AND mc.item_type = 'raw_material'
LEFT JOIN wms_product p ON mc.item_id = p.product_id AND mc.item_type = 'product'
WHERE mc.del_flag = 0
AND mc.data_type = 1
AND mc.status = 0
AND (
rm.raw_material_name LIKE '%冷硬卷%'
OR p.product_name LIKE '%冷硬卷%'
)
GROUP BY thickness, width, trimmingRequirement
ORDER BY thickness, width, trimmingRequirement
</select>
</mapper>