Files
system-jibei/pqs9000/src/main/resources/mybatis/mappers/responsibility/DataHarmonicDetailMapper.xml

72 lines
2.6 KiB
XML
Raw Normal View History

2024-04-01 09:20:31 +08:00
<?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.pqs9000.mapper.responsibility.DataHarmonicDetailMapper">
<delete id="deleteData">
DELETE
FROM
DATA_HARMONIC_DETAIL
WHERE
TIME_ID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
</delete>
<insert id="insertData" parameterType="java.util.List" databaseId="Oracle">
insert into DATA_HARMONIC_DETAIL (
<foreach collection="list" item="item" index="index" separator="UNION ALL">
select #{item.timeId},#{item.lineId},#{item.targetType},#{item.maxData},#{item.limitData},#{item.diffData} from dual
</foreach>
)
</insert>
<select id="selectMaxData" resultType="com.pqs9000.pojo.data.DataHarmonicDetail">
SELECT
*
FROM
(
SELECT
t.*,
ROW_NUMBER() OVER (PARTITION BY t.LINE_ID,t.TARGET_TYPE,t.MAX_DATA
ORDER BY t.LINE_ID) AS rn
FROM
(
SELECT
A.LINE_ID ,
A.TARGET_TYPE ,
A.MAX_DATA ,
A.LIMIT_DATA ,
A.DIFF_DATA
FROM
DATA_HARMONIC_DETAIL A
RIGHT JOIN
(
SELECT
LINE_ID,
TARGET_TYPE,
MAX(MAX_DATA) maxData
FROM
DATA_HARMONIC_DETAIL
WHERE
TIME_ID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
GROUP BY
LINE_ID ,
TARGET_TYPE
)
B ON
A.LINE_ID = B.LINE_ID
AND A.TARGET_TYPE = B.TARGET_TYPE
AND A.MAX_DATA = B.maxData
<if test="list != null and list.size()>0">
<where>
B.LINE_ID IN
<foreach collection="list" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</where>
</if>
) t
)
WHERE
rn = 1
</select>
</mapper>