Files
be-process-control-system/business/target/classes/mapper/CrmPdoExcoilMapper.xml
2025-09-18 13:09:14 +08:00

141 lines
4.5 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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.fizz.business.mapper.CrmPdoExcoilMapper">
<select id="getReportSummary" resultType="com.fizz.business.vo.ReportSummaryVO">
SELECT
-- 总计
SUM(exit_width) AS totalExitWidth,
SUM(exit_length) AS totalExitLength,
SUM(theory_weight) AS totalTheoryWeight,
SUM(actual_weight) AS totalActualWeight,
SUM(exit_thickness) AS totalExitThickness,
-- 平均
AVG(exit_width) AS avgExitWidth,
AVG(exit_length) AS avgExitLength,
AVG(theory_weight) AS avgTheoryWeight,
AVG(actual_weight) AS avgActualWeight,
AVG(exit_thickness) AS avgExitThickness,
-- 总数
COUNT(DISTINCT exit_mat_id) AS coilCount,
-- 原料总重(去重 entry_mat_id
(SELECT SUM(t.entry_weight)
FROM (
SELECT entry_mat_id, MAX(entry_weight) AS entry_weight
FROM crm_pdo_excoil
WHERE del_flag = 0
<if test="groupNo != null and groupNo != ''">
AND group_no = #{groupNo}
</if>
<if test="shiftNo != null and shiftNo != ''">
AND shift_no = #{shiftNo}
</if>
<if test="startTime != null">
AND end_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="endTime != null">
AND end_time <![CDATA[ <= ]]> #{endTime}
</if>
GROUP BY entry_mat_id
) t
) AS totalEntryWeight,
-- 成材率
CASE
WHEN (SELECT SUM(tt.entry_weight)
FROM (
SELECT entry_mat_id, MAX(entry_weight) AS entry_weight
FROM crm_pdo_excoil
WHERE del_flag = 0
<if test="groupNo != null and groupNo != ''">
AND group_no = #{groupNo}
</if>
<if test="shiftNo != null and shiftNo != ''">
AND shift_no = #{shiftNo}
</if>
<if test="startTime != null">
AND end_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="endTime != null">
AND end_time <![CDATA[ <= ]]> #{endTime}
</if>
GROUP BY entry_mat_id
) tt
) > 0
THEN SUM(actual_weight) /
(SELECT SUM(tt.entry_weight)
FROM (
SELECT entry_mat_id, MAX(entry_weight) AS entry_weight
FROM crm_pdo_excoil
WHERE del_flag = 0
<if test="groupNo != null and groupNo != ''">
AND group_no = #{groupNo}
</if>
<if test="shiftNo != null and shiftNo != ''">
AND shift_no = #{shiftNo}
</if>
<if test="startTime != null">
AND end_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="endTime != null">
AND end_time <![CDATA[ <= ]]> #{endTime}
</if>
GROUP BY entry_mat_id
) tt
)
ELSE 0
END AS yieldRate
FROM crm_pdo_excoil
WHERE del_flag = 0
<if test="groupNo != null and groupNo != ''">
AND group_no = #{groupNo}
</if>
<if test="shiftNo != null and shiftNo != ''">
AND shift_no = #{shiftNo}
</if>
<if test="startTime != null">
AND end_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="endTime != null">
AND end_time <![CDATA[ <= ]]> #{endTime}
</if>
</select>
<select id="getReportDetails" resultType="com.fizz.business.vo.ReportDetailVO">
SELECT
exit_mat_id AS exitMatId,
entry_mat_id AS entryMatId,
group_no AS groupNo,
shift_no AS shiftNo,
steel_grade AS steelGrade,
exit_width AS exitWidth,
exit_length AS exitLength,
theory_weight AS theoryWeight,
actual_weight AS actualWeight,
exit_thickness AS exitThickness,
online_time AS onlineTime,
end_time AS endTime
FROM crm_pdo_excoil
WHERE del_flag = 0
<if test="groupNo != null and groupNo != ''">
AND group_no = #{groupNo}
</if>
<if test="shiftNo != null and shiftNo != ''">
AND shift_no = #{shiftNo}
</if>
<if test="startTime != null">
AND end_time <![CDATA[ >= ]]> #{startTime}
</if>
<if test="endTime != null">
AND end_time <![CDATA[ <= ]]> #{endTime}
</if>
ORDER BY end_time ASC
</select>
</mapper>