二级系统联合寻找数据

This commit is contained in:
2026-02-04 15:22:34 +08:00
parent d42b8ffef2
commit 5b3938e13f
19 changed files with 2167 additions and 352 deletions

View File

@@ -54,51 +54,6 @@
ORDER BY stat_date ASC
</select>
<!-- 回归数据散点结果映射 -->
<resultMap id="RegressionPointResultMap" type="com.klp.pocket.acid.domain.vo.AcidOeeRegressionVo$RegressionPointVo">
<result column="weight_ton" property="weightTon" jdbcType="DECIMAL"/>
<result column="coil_count" property="coilCount" jdbcType="BIGINT"/>
<result column="duration_min" property="durationMin" jdbcType="BIGINT"/>
<result column="action_id" property="actionId" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="VARCHAR"/>
</resultMap>
<!-- 查询回归数据散点 -->
<select id="selectRegressionPoints" resultMap="RegressionPointResultMap">
SELECT
-- 重量(吨):出口重量
e.EXIT_WEIGHT AS weight_ton,
-- 卷数固定为1每条记录代表一卷
1 AS coil_count,
-- 时长(分钟):结束时间 - 开始时间,转换为分钟
CASE
WHEN e.START_DATE IS NOT NULL AND e.END_DATE IS NOT NULL THEN
TIMESTAMPDIFF(MINUTE, e.START_DATE, e.END_DATE)
ELSE NULL
END AS duration_min,
-- 关联ID使用卷号作为标识
e.ENCOILID AS action_id,
-- 创建时间
DATE_FORMAT(e.INSDATE, '%Y-%m-%d %H:%i:%s') AS create_time
FROM klptcm1_pdo_excoil e
WHERE 1=1
<if test="startDate != null and startDate != ''">
AND DATE(e.INSDATE) &gt;= #{startDate}
</if>
<if test="endDate != null and endDate != ''">
AND DATE(e.INSDATE) &lt;= #{endDate}
</if>
-- 过滤掉无效数据必须有开始和结束时间且时长大于0
AND e.START_DATE IS NOT NULL
AND e.END_DATE IS NOT NULL
AND e.END_DATE &gt; e.START_DATE
AND e.EXIT_WEIGHT IS NOT NULL
AND e.EXIT_WEIGHT &gt; 0
ORDER BY e.INSDATE ASC
-- 限制最多返回最近6个月的数据避免数据量过大
LIMIT 10000
</select>
<!-- 查询每日的钢卷号和重量(用于良品/次品判定) -->
<select id="selectCoilInfoByDate" resultType="com.klp.pocket.acid.mapper.AcidOeeMapper$CoilInfoByDate">
SELECT
@@ -115,5 +70,26 @@
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) &gt;= #{startDate}
</if>
<if test="endDate != null and endDate != ''">
AND DATE(e.INSDATE) &lt;= #{endDate}
</if>
AND e.START_DATE IS NOT NULL
AND e.END_DATE IS NOT NULL
AND e.END_DATE &gt; e.START_DATE
AND e.EXIT_WEIGHT IS NOT NULL
AND e.EXIT_WEIGHT &gt; 0
AND TIMESTAMPDIFF(MINUTE, e.START_DATE, e.END_DATE) &gt; 0
</select>
</mapper>