OEE重构完成
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
<?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.pocket.acid.mapper.AcidOeeAcidMapper">
|
||||
|
||||
<!-- 查询卷级生产节拍(min/吨):(END_DATE - START_DATE)/EXIT_WEIGHT -->
|
||||
<select id="selectCoilCycleMinPerTon" resultType="java.math.BigDecimal">
|
||||
SELECT
|
||||
TIMESTAMPDIFF(MINUTE, e.START_DATE, e.END_DATE) / e.EXIT_WEIGHT AS cycle_min_per_ton
|
||||
FROM klptcm1_pdo_excoil e
|
||||
WHERE 1 = 1
|
||||
<if test="startDate != null and startDate != ''">
|
||||
AND DATE(e.INSDATE) >= #{startDate}
|
||||
</if>
|
||||
<if test="endDate != null and endDate != ''">
|
||||
AND DATE(e.INSDATE) <= #{endDate}
|
||||
</if>
|
||||
AND e.START_DATE IS NOT NULL
|
||||
AND e.END_DATE IS NOT NULL
|
||||
AND e.END_DATE > e.START_DATE
|
||||
AND e.EXIT_WEIGHT IS NOT NULL
|
||||
AND e.EXIT_WEIGHT > 0
|
||||
AND TIMESTAMPDIFF(MINUTE, e.START_DATE, e.END_DATE) > 0
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -1,95 +0,0 @@
|
||||
<?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.pocket.acid.mapper.AcidOeeMapper">
|
||||
|
||||
<!-- OEE日汇总结果映射 -->
|
||||
<resultMap id="AcidOeeDailySummaryResultMap" type="com.klp.pocket.acid.domain.vo.AcidOeeDailySummaryVo">
|
||||
<result column="stat_date" property="statDate" jdbcType="VARCHAR"/>
|
||||
<result column="line_id" property="lineId" jdbcType="VARCHAR"/>
|
||||
<result column="line_name" property="lineName" jdbcType="VARCHAR"/>
|
||||
<result column="planned_time_min" property="plannedTimeMin" jdbcType="BIGINT"/>
|
||||
<result column="planned_downtime_min" property="plannedDowntimeMin" jdbcType="BIGINT"/>
|
||||
<result column="loading_time_min" property="loadingTimeMin" jdbcType="BIGINT"/>
|
||||
<result column="downtime_min" property="downtimeMin" jdbcType="BIGINT"/>
|
||||
<result column="run_time_min" property="runTimeMin" jdbcType="BIGINT"/>
|
||||
<result column="total_output_ton" property="totalOutputTon" jdbcType="DECIMAL"/>
|
||||
<result column="total_output_coil" property="totalOutputCoil" jdbcType="BIGINT"/>
|
||||
<result column="good_output_ton" property="goodOutputTon" jdbcType="DECIMAL"/>
|
||||
<result column="good_output_coil" property="goodOutputCoil" jdbcType="BIGINT"/>
|
||||
<result column="defect_output_ton" property="defectOutputTon" jdbcType="DECIMAL"/>
|
||||
<result column="defect_output_coil" property="defectOutputCoil" jdbcType="BIGINT"/>
|
||||
<result column="ideal_cycle_time_min_per_ton" property="idealCycleTimeMinPerTon" jdbcType="DECIMAL"/>
|
||||
<result column="ideal_cycle_time_min_per_coil" property="idealCycleTimeMinPerCoil" jdbcType="DECIMAL"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 查询OEE日汇总 -->
|
||||
<select id="selectDailySummary" resultMap="AcidOeeDailySummaryResultMap">
|
||||
SELECT
|
||||
DATE_FORMAT(e.INSDATE, '%Y-%m-%d') AS stat_date,
|
||||
'SY' AS line_id,
|
||||
'酸轧线' AS line_name,
|
||||
-- 计划时间:暂时使用24小时(1440分钟),后续可从计划表获取
|
||||
1440 AS planned_time_min,
|
||||
-- 计划停机:暂时为0,后续可从停机事件表中筛选stop_type='计划停机'的汇总
|
||||
0 AS planned_downtime_min,
|
||||
-- 负荷时间 = 计划时间 - 计划停机
|
||||
1440 AS loading_time_min,
|
||||
-- 停机时间:在Service层通过停机事件表聚合填充
|
||||
0 AS downtime_min,
|
||||
-- 总产量(吨):出口重量总和
|
||||
COALESCE(SUM(e.EXIT_WEIGHT), 0) AS total_output_ton,
|
||||
-- 总产量(卷):记录数
|
||||
COUNT(*) AS total_output_coil,
|
||||
-- 良品/次品:在Service层通过WMS判定后填充
|
||||
0 AS good_output_ton,
|
||||
0 AS good_output_coil,
|
||||
0 AS defect_output_ton,
|
||||
0 AS defect_output_coil,
|
||||
-- 理论节拍:在Service层通过回归数据填充
|
||||
NULL AS ideal_cycle_time_min_per_ton,
|
||||
NULL AS ideal_cycle_time_min_per_coil
|
||||
FROM klptcm1_pdo_excoil e
|
||||
WHERE DATE(e.INSDATE) BETWEEN #{startDate} AND #{endDate}
|
||||
GROUP BY DATE_FORMAT(e.INSDATE, '%Y-%m-%d')
|
||||
ORDER BY stat_date ASC
|
||||
</select>
|
||||
|
||||
<!-- 查询每日的钢卷号和重量(用于良品/次品判定) -->
|
||||
<select id="selectCoilInfoByDate" resultType="com.klp.pocket.acid.mapper.AcidOeeMapper$CoilInfoByDate">
|
||||
SELECT
|
||||
DATE_FORMAT(e.INSDATE, '%Y-%m-%d') AS statDate,
|
||||
-- 当前钢卷号:使用出口卷号(excoilid)或成品卷号(encoilid)
|
||||
COALESCE(e.EXCOILID, e.ENCOILID) AS coilNo,
|
||||
-- 重量(吨):出口重量
|
||||
e.EXIT_WEIGHT AS weight
|
||||
FROM klptcm1_pdo_excoil e
|
||||
WHERE DATE(e.INSDATE) BETWEEN #{startDate} AND #{endDate}
|
||||
AND e.EXIT_WEIGHT IS NOT NULL
|
||||
AND e.EXIT_WEIGHT > 0
|
||||
AND (e.EXCOILID IS NOT NULL OR e.ENCOILID IS NOT NULL)
|
||||
ORDER BY e.INSDATE ASC, e.ENCOILID ASC
|
||||
</select>
|
||||
|
||||
<!-- 查询卷级生产节拍(min/吨):(END_DATE - START_DATE)/EXIT_WEIGHT -->
|
||||
<select id="selectCoilCycleMinPerTon" resultType="java.math.BigDecimal">
|
||||
SELECT
|
||||
-- 生产节拍(分钟/吨)
|
||||
TIMESTAMPDIFF(MINUTE, e.START_DATE, e.END_DATE) / e.EXIT_WEIGHT AS cycle_min_per_ton
|
||||
FROM klptcm1_pdo_excoil e
|
||||
WHERE 1 = 1
|
||||
<if test="startDate != null and startDate != ''">
|
||||
AND DATE(e.INSDATE) >= #{startDate}
|
||||
</if>
|
||||
<if test="endDate != null and endDate != ''">
|
||||
AND DATE(e.INSDATE) <= #{endDate}
|
||||
</if>
|
||||
AND e.START_DATE IS NOT NULL
|
||||
AND e.END_DATE IS NOT NULL
|
||||
AND e.END_DATE > e.START_DATE
|
||||
AND e.EXIT_WEIGHT IS NOT NULL
|
||||
AND e.EXIT_WEIGHT > 0
|
||||
AND TIMESTAMPDIFF(MINUTE, e.START_DATE, e.END_DATE) > 0
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
<?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.pocket.acid.mapper.AcidOeeMasterMapper">
|
||||
|
||||
<!-- OEE日汇总结果映射 -->
|
||||
<resultMap id="AcidOeeDailySummaryResultMap" type="com.klp.pocket.acid.domain.vo.AcidOeeDailySummaryVo">
|
||||
<result column="stat_date" property="statDate" jdbcType="VARCHAR"/>
|
||||
<result column="line_id" property="lineId" jdbcType="VARCHAR"/>
|
||||
<result column="line_name" property="lineName" jdbcType="VARCHAR"/>
|
||||
<result column="planned_time_min" property="plannedTimeMin" jdbcType="BIGINT"/>
|
||||
<result column="planned_downtime_min" property="plannedDowntimeMin" jdbcType="BIGINT"/>
|
||||
<result column="loading_time_min" property="loadingTimeMin" jdbcType="BIGINT"/>
|
||||
<result column="downtime_min" property="downtimeMin" jdbcType="BIGINT"/>
|
||||
<result column="run_time_min" property="runTimeMin" jdbcType="BIGINT"/>
|
||||
<result column="total_output_ton" property="totalOutputTon" jdbcType="DECIMAL"/>
|
||||
<result column="total_output_coil" property="totalOutputCoil" jdbcType="BIGINT"/>
|
||||
<result column="good_output_ton" property="goodOutputTon" jdbcType="DECIMAL"/>
|
||||
<result column="good_output_coil" property="goodOutputCoil" jdbcType="BIGINT"/>
|
||||
<result column="defect_output_ton" property="defectOutputTon" jdbcType="DECIMAL"/>
|
||||
<result column="defect_output_coil" property="defectOutputCoil" jdbcType="BIGINT"/>
|
||||
<result column="ideal_cycle_time_min_per_ton" property="idealCycleTimeMinPerTon" jdbcType="DECIMAL"/>
|
||||
<result column="ideal_cycle_time_min_per_coil" property="idealCycleTimeMinPerCoil" jdbcType="DECIMAL"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 查询OEE日汇总(总产量统一使用主库 wms_material_coil) -->
|
||||
<select id="selectDailySummary" resultMap="AcidOeeDailySummaryResultMap">
|
||||
SELECT
|
||||
DATE_FORMAT(mc.create_time, '%Y-%m-%d') AS stat_date,
|
||||
'SY' AS line_id,
|
||||
'酸轧线' AS line_name,
|
||||
1440 AS planned_time_min,
|
||||
0 AS planned_downtime_min,
|
||||
1440 AS loading_time_min,
|
||||
0 AS downtime_min,
|
||||
COALESCE(SUM(mc.net_weight), 0) AS total_output_ton,
|
||||
COUNT(*) AS total_output_coil,
|
||||
0 AS good_output_ton,
|
||||
0 AS good_output_coil,
|
||||
0 AS defect_output_ton,
|
||||
0 AS defect_output_coil,
|
||||
NULL AS ideal_cycle_time_min_per_ton,
|
||||
NULL AS ideal_cycle_time_min_per_coil
|
||||
FROM wms_material_coil mc
|
||||
WHERE DATE(mc.create_time) BETWEEN #{startDate} AND #{endDate}
|
||||
AND mc.create_by = #{createBy}
|
||||
AND mc.del_flag = 0
|
||||
AND mc.net_weight IS NOT NULL
|
||||
AND mc.net_weight > 0
|
||||
GROUP BY DATE_FORMAT(mc.create_time, '%Y-%m-%d')
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 查询每日的钢卷号、重量、判级(主库wms_material_coil) -->
|
||||
<select id="selectCoilInfoByDate" resultType="com.klp.pocket.acid.domain.vo.AcidOeeCoilInfoByDateVo">
|
||||
SELECT
|
||||
DATE_FORMAT(mc.create_time, '%Y-%m-%d') AS statDate,
|
||||
mc.current_coil_no AS coilNo,
|
||||
(mc.net_weight) AS weight,
|
||||
mc.quality_status AS qualityStatus
|
||||
FROM wms_material_coil mc
|
||||
WHERE DATE(mc.create_time) BETWEEN #{startDate} AND #{endDate}
|
||||
AND mc.create_by = #{createBy}
|
||||
AND mc.del_flag = 0
|
||||
AND mc.net_weight IS NOT NULL
|
||||
AND mc.net_weight > 0
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user