Files
klp-oa/klp-wms/src/main/resources/mapper/WmsAnnealPerformanceMapper.xml
Joshi 10a28f8c62 feat(analytics): 更新炉火实绩功能以支持详细的钢卷信息以及层级和库区信息
- 在 WmsAnnealPerformanceDetailVo 中新增逻辑库区ID、库区名称、炉火层级和钢卷列表字段
- 修改 WmsAnnealPerformanceMapper.xml 查询语句以优化性能并移除冗余字段
- 在 WmsAnnealPerformanceServiceImpl 中实现批量查询逻辑,包括钢卷关联、库区信息和钢卷详情
- 新增仓库映射器和服务依赖注入以支持数据获取
- 在 WmsMaterialCoilVo 中添加炉火层级字段以存储钢卷在炉内的层数信息
- 实现按计划ID分组处理钢卷数据并设置相应的库区和层级属性
2026-03-16 15:58:10 +08:00

50 lines
2.0 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.klp.mapper.WmsAnnealPerformanceMapper">
<sql id="AnnealPerformanceWhere">
<where>
p.del_flag = 0
<if test="startTime != null">
AND p.actual_start_time <![CDATA[>=]]> #{startTime}
</if>
<if test="endTime != null">
AND p.actual_start_time <![CDATA[<=]]> #{endTime}
</if>
<if test="targetFurnaceId != null">
AND p.target_furnace_id = #{targetFurnaceId}
</if>
<if test="planNo != null and planNo != ''">
AND p.plan_no LIKE CONCAT('%', #{planNo}, '%')
</if>
<if test="enterCoilNo != null and enterCoilNo != ''">
AND mc.enter_coil_no LIKE CONCAT('%', #{enterCoilNo}, '%')
</if>
</where>
</sql>
<select id="selectSummary" resultType="com.klp.domain.vo.anneal.WmsAnnealPerformanceSummaryVo">
SELECT COUNT(DISTINCT p.plan_id) AS plan_count,
COUNT(mc.coil_id) AS coil_count,
COALESCE(SUM(mc.net_weight), 0) AS total_weight
FROM wms_furnace_plan p
INNER JOIN wms_furnace_plan_coil pc ON pc.plan_id = p.plan_id AND pc.del_flag = 0
INNER JOIN wms_material_coil mc ON mc.coil_id = pc.coil_id AND mc.del_flag = 0
<include refid="AnnealPerformanceWhere" />
</select>
<select id="selectDetails" resultType="com.klp.domain.vo.anneal.WmsAnnealPerformanceDetailVo">
SELECT p.plan_id AS planId,
p.plan_no AS planNo,
p.target_furnace_id AS targetFurnaceId,
f.furnace_name AS targetFurnaceName,
p.actual_start_time AS actualStartTime,
p.end_time AS endTime
FROM wms_furnace_plan p
LEFT JOIN wms_furnace f ON f.furnace_id = p.target_furnace_id
<include refid="AnnealPerformanceWhere" />
GROUP BY p.plan_id, p.plan_no, p.target_furnace_id, f.furnace_name, p.actual_start_time, p.end_time
ORDER BY p.actual_start_time DESC, p.plan_no DESC
</select>
</mapper>