Files
klp-oa/klp-pocket/src/main/resources/mapper/pocket/Klptcm1ProPlantStateDefineMapper.xml

186 lines
12 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.klp.pocket.mapper.Klptcm1ProPlantStateDefineMapper">
<!-- 基础结果集映射:数据库列 -> 实体类属性 -->
<resultMap id="BaseResultMap" type="com.klp.pocket.domain.Klptcm1ProPlantStateDefine">
<result column="ID" property="id" jdbcType="DECIMAL"/>
<result column="NAME" property="name" jdbcType="VARCHAR"/>
<result column="UNITS" property="units" jdbcType="VARCHAR"/>
<result column="COMMENTS" property="comments" jdbcType="VARCHAR"/>
<result column="INSDATE" property="insdate" jdbcType="TIMESTAMP"/>
<result column="MODELTYPE" property="modeltype" jdbcType="DECIMAL"/>
</resultMap>
<!-- 基础字段列表复用SQL片段 -->
<sql id="Base_Column_List">
ID, NAME, UNITS, COMMENTS, INSDATE, MODELTYPE
</sql>
<select id="selectPage" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM klptcm1_pro_plant_state_define
ORDER BY INSDATE DESC
</select>
<select id="selectById" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM klptcm1_pro_plant_state_define
WHERE ID = #{id}
</select>
<insert id="insert" parameterType="com.klp.pocket.domain.Klptcm1ProPlantStateDefine">
INSERT INTO klptcm1_pro_plant_state_define
(ID, NAME, UNITS, COMMENTS, MODELTYPE)
VALUES
(#{id}, #{name}, #{units}, #{comments}, #{modeltype})
</insert>
<update id="updateById" parameterType="com.klp.pocket.domain.Klptcm1ProPlantStateDefine">
UPDATE klptcm1_pro_plant_state_define
SET
NAME = #{name},
UNITS = #{units},
COMMENTS = #{comments},
MODELTYPE = #{modeltype}
WHERE ID = #{id}
</update>
<delete id="deleteByIds">
DELETE FROM klptcm1_pro_plant_state_define
WHERE ID IN
<foreach collection="list" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<!-- 新增联查current/history的ResultMap -->
<resultMap id="ValueVoResultMap" type="com.klp.pocket.domain.vo.PlantStateWithValueVo">
<result column="ID" property="id" jdbcType="DECIMAL"/>
<result column="NAME" property="name" jdbcType="VARCHAR"/>
<result column="UNITS" property="units" jdbcType="VARCHAR"/>
<result column="COMMENTS" property="comments" jdbcType="VARCHAR"/>
<result column="INSDATE" property="insdate" jdbcType="TIMESTAMP"/>
<result column="MODELTYPE" property="modeltype" jdbcType="DECIMAL"/>
<result column="currentValue" property="currentValue" jdbcType="DECIMAL"/>
<result column="currentInsdate" property="currentInsdate" jdbcType="TIMESTAMP"/>
<result column="historyValue" property="historyValue" jdbcType="DECIMAL"/>
<result column="historyInsdate" property="historyInsdate" jdbcType="TIMESTAMP"/>
</resultMap>
<select id="selectByValue" resultMap="ValueVoResultMap">
SELECT
d.ID,
d.NAME,
d.UNITS,
d.COMMENTS,
d.INSDATE,
d.MODELTYPE,
-- current表的最新值根据define的ID取对应的VALUE字段
CASE d.ID
WHEN 1 THEN c.VALUE1 WHEN 2 THEN c.VALUE2 WHEN 3 THEN c.VALUE3 WHEN 4 THEN c.VALUE4 WHEN 5 THEN c.VALUE5
WHEN 6 THEN c.VALUE6 WHEN 7 THEN c.VALUE7 WHEN 8 THEN c.VALUE8 WHEN 9 THEN c.VALUE9 WHEN 10 THEN c.VALUE10
WHEN 11 THEN c.VALUE11 WHEN 12 THEN c.VALUE12 WHEN 13 THEN c.VALUE13 WHEN 14 THEN c.VALUE14 WHEN 15 THEN c.VALUE15
WHEN 16 THEN c.VALUE16 WHEN 17 THEN c.VALUE17 WHEN 18 THEN c.VALUE18 WHEN 19 THEN c.VALUE19 WHEN 20 THEN c.VALUE20
WHEN 21 THEN c.VALUE21 WHEN 22 THEN c.VALUE22 WHEN 23 THEN c.VALUE23 WHEN 24 THEN c.VALUE24 WHEN 25 THEN c.VALUE25
WHEN 26 THEN c.VALUE26 WHEN 27 THEN c.VALUE27 WHEN 28 THEN c.VALUE28 WHEN 29 THEN c.VALUE29 WHEN 30 THEN c.VALUE30
WHEN 31 THEN c.VALUE31 WHEN 32 THEN c.VALUE32 WHEN 33 THEN c.VALUE33 WHEN 34 THEN c.VALUE34 WHEN 35 THEN c.VALUE35
WHEN 36 THEN c.VALUE36 WHEN 37 THEN c.VALUE37 WHEN 38 THEN c.VALUE38 WHEN 39 THEN c.VALUE39 WHEN 40 THEN c.VALUE40
WHEN 41 THEN c.VALUE41 WHEN 42 THEN c.VALUE42 WHEN 43 THEN c.VALUE43 WHEN 44 THEN c.VALUE44 WHEN 45 THEN c.VALUE45
WHEN 46 THEN c.VALUE46 WHEN 47 THEN c.VALUE47 WHEN 48 THEN c.VALUE48 WHEN 49 THEN c.VALUE49 WHEN 50 THEN c.VALUE50
WHEN 51 THEN c.VALUE51 WHEN 52 THEN c.VALUE52 WHEN 53 THEN c.VALUE53 WHEN 54 THEN c.VALUE54 WHEN 55 THEN c.VALUE55
WHEN 56 THEN c.VALUE56 WHEN 57 THEN c.VALUE57 WHEN 58 THEN c.VALUE58 WHEN 59 THEN c.VALUE59 WHEN 60 THEN c.VALUE60
WHEN 61 THEN c.VALUE61 WHEN 62 THEN c.VALUE62 WHEN 63 THEN c.VALUE63 WHEN 64 THEN c.VALUE64 WHEN 65 THEN c.VALUE65
WHEN 66 THEN c.VALUE66 WHEN 67 THEN c.VALUE67 WHEN 68 THEN c.VALUE68 WHEN 69 THEN c.VALUE69 WHEN 70 THEN c.VALUE70
WHEN 71 THEN c.VALUE71 WHEN 72 THEN c.VALUE72 WHEN 73 THEN c.VALUE73 WHEN 74 THEN c.VALUE74 WHEN 75 THEN c.VALUE75
WHEN 76 THEN c.VALUE76 WHEN 77 THEN c.VALUE77 WHEN 78 THEN c.VALUE78 WHEN 79 THEN c.VALUE79 WHEN 80 THEN c.VALUE80
WHEN 81 THEN c.VALUE81 WHEN 82 THEN c.VALUE82 WHEN 83 THEN c.VALUE83 WHEN 84 THEN c.VALUE84 WHEN 85 THEN c.VALUE85
WHEN 86 THEN c.VALUE86 WHEN 87 THEN c.VALUE87 WHEN 88 THEN c.VALUE88 WHEN 89 THEN c.VALUE89 WHEN 90 THEN c.VALUE90
WHEN 91 THEN c.VALUE91 WHEN 92 THEN c.VALUE92 WHEN 93 THEN c.VALUE93 WHEN 94 THEN c.VALUE94 WHEN 95 THEN c.VALUE95
WHEN 96 THEN c.VALUE96 WHEN 97 THEN c.VALUE97 WHEN 98 THEN c.VALUE98 WHEN 99 THEN c.VALUE99
ELSE NULL END AS currentValue,
c.INSDATE AS currentInsdate,
-- history表的历史值根据define的ID取对应的VALUE字段
CASE d.ID
WHEN 1 THEN h.VALUE1 WHEN 2 THEN h.VALUE2 WHEN 3 THEN h.VALUE3 WHEN 4 THEN h.VALUE4 WHEN 5 THEN h.VALUE5
WHEN 6 THEN h.VALUE6 WHEN 7 THEN h.VALUE7 WHEN 8 THEN h.VALUE8 WHEN 9 THEN h.VALUE9 WHEN 10 THEN h.VALUE10
WHEN 11 THEN h.VALUE11 WHEN 12 THEN h.VALUE12 WHEN 13 THEN h.VALUE13 WHEN 14 THEN h.VALUE14 WHEN 15 THEN h.VALUE15
WHEN 16 THEN h.VALUE16 WHEN 17 THEN h.VALUE17 WHEN 18 THEN h.VALUE18 WHEN 19 THEN h.VALUE19 WHEN 20 THEN h.VALUE20
WHEN 21 THEN h.VALUE21 WHEN 22 THEN h.VALUE22 WHEN 23 THEN h.VALUE23 WHEN 24 THEN h.VALUE24 WHEN 25 THEN h.VALUE25
WHEN 26 THEN h.VALUE26 WHEN 27 THEN h.VALUE27 WHEN 28 THEN h.VALUE28 WHEN 29 THEN h.VALUE29 WHEN 30 THEN h.VALUE30
WHEN 31 THEN h.VALUE31 WHEN 32 THEN h.VALUE32 WHEN 33 THEN h.VALUE33 WHEN 34 THEN h.VALUE34 WHEN 35 THEN h.VALUE35
WHEN 36 THEN h.VALUE36 WHEN 37 THEN h.VALUE37 WHEN 38 THEN h.VALUE38 WHEN 39 THEN h.VALUE39 WHEN 40 THEN h.VALUE40
WHEN 41 THEN h.VALUE41 WHEN 42 THEN h.VALUE42 WHEN 43 THEN h.VALUE43 WHEN 44 THEN h.VALUE44 WHEN 45 THEN h.VALUE45
WHEN 46 THEN h.VALUE46 WHEN 47 THEN h.VALUE47 WHEN 48 THEN h.VALUE48 WHEN 49 THEN h.VALUE49 WHEN 50 THEN h.VALUE50
WHEN 51 THEN h.VALUE51 WHEN 52 THEN h.VALUE52 WHEN 53 THEN h.VALUE53 WHEN 54 THEN h.VALUE54 WHEN 55 THEN h.VALUE55
WHEN 56 THEN h.VALUE56 WHEN 57 THEN h.VALUE57 WHEN 58 THEN h.VALUE58 WHEN 59 THEN h.VALUE59 WHEN 60 THEN h.VALUE60
WHEN 61 THEN h.VALUE61 WHEN 62 THEN h.VALUE62 WHEN 63 THEN h.VALUE63 WHEN 64 THEN h.VALUE64 WHEN 65 THEN h.VALUE65
WHEN 66 THEN h.VALUE66 WHEN 67 THEN h.VALUE67 WHEN 68 THEN h.VALUE68 WHEN 69 THEN h.VALUE69 WHEN 70 THEN h.VALUE70
WHEN 71 THEN h.VALUE71 WHEN 72 THEN h.VALUE72 WHEN 73 THEN h.VALUE73 WHEN 74 THEN h.VALUE74 WHEN 75 THEN h.VALUE75
WHEN 76 THEN h.VALUE76 WHEN 77 THEN h.VALUE77 WHEN 78 THEN h.VALUE78 WHEN 79 THEN h.VALUE79 WHEN 80 THEN h.VALUE80
WHEN 81 THEN h.VALUE81 WHEN 82 THEN h.VALUE82 WHEN 83 THEN h.VALUE83 WHEN 84 THEN h.VALUE84 WHEN 85 THEN h.VALUE85
WHEN 86 THEN h.VALUE86 WHEN 87 THEN h.VALUE87 WHEN 88 THEN h.VALUE88 WHEN 89 THEN h.VALUE89 WHEN 90 THEN h.VALUE90
WHEN 91 THEN h.VALUE91 WHEN 92 THEN h.VALUE92 WHEN 93 THEN h.VALUE93 WHEN 94 THEN h.VALUE94 WHEN 95 THEN h.VALUE95
WHEN 96 THEN h.VALUE96 WHEN 97 THEN h.VALUE97 WHEN 98 THEN h.VALUE98 WHEN 99 THEN h.VALUE99
ELSE NULL END AS historyValue,
h.INSDATE AS historyInsdate
FROM klptcm1_pro_plant_state_define d
CROSS JOIN (
SELECT * FROM klptcm1_pro_plant_state_current
ORDER BY INSDATE DESC
LIMIT 1
) c
CROSS JOIN (
SELECT * FROM klptcm1_pro_plant_state_history
ORDER BY INSDATE DESC
LIMIT 200
) h
WHERE d.NAME = #{name}
ORDER BY h.INSDATE DESC
LIMIT 200
</select>
<!-- 新增获取所有定义及其当前值不带name过滤 -->
<select id="selectAllWithValues" resultMap="ValueVoResultMap">
SELECT
d.ID,
d.NAME,
d.UNITS,
d.COMMENTS,
d.INSDATE,
d.MODELTYPE,
-- current表的最新值根据define的ID取对应的VALUE字段
CASE d.ID
WHEN 1 THEN c.VALUE1 WHEN 2 THEN c.VALUE2 WHEN 3 THEN c.VALUE3 WHEN 4 THEN c.VALUE4 WHEN 5 THEN c.VALUE5
WHEN 6 THEN c.VALUE6 WHEN 7 THEN c.VALUE7 WHEN 8 THEN c.VALUE8 WHEN 9 THEN c.VALUE9 WHEN 10 THEN c.VALUE10
WHEN 11 THEN c.VALUE11 WHEN 12 THEN c.VALUE12 WHEN 13 THEN c.VALUE13 WHEN 14 THEN c.VALUE14 WHEN 15 THEN c.VALUE15
WHEN 16 THEN c.VALUE16 WHEN 17 THEN c.VALUE17 WHEN 18 THEN c.VALUE18 WHEN 19 THEN c.VALUE19 WHEN 20 THEN c.VALUE20
WHEN 21 THEN c.VALUE21 WHEN 22 THEN c.VALUE22 WHEN 23 THEN c.VALUE23 WHEN 24 THEN c.VALUE24 WHEN 25 THEN c.VALUE25
WHEN 26 THEN c.VALUE26 WHEN 27 THEN c.VALUE27 WHEN 28 THEN c.VALUE28 WHEN 29 THEN c.VALUE29 WHEN 30 THEN c.VALUE30
WHEN 31 THEN c.VALUE31 WHEN 32 THEN c.VALUE32 WHEN 33 THEN c.VALUE33 WHEN 34 THEN c.VALUE34 WHEN 35 THEN c.VALUE35
WHEN 36 THEN c.VALUE36 WHEN 37 THEN c.VALUE37 WHEN 38 THEN c.VALUE38 WHEN 39 THEN c.VALUE39 WHEN 40 THEN c.VALUE40
WHEN 41 THEN c.VALUE41 WHEN 42 THEN c.VALUE42 WHEN 43 THEN c.VALUE43 WHEN 44 THEN c.VALUE44 WHEN 45 THEN c.VALUE45
WHEN 46 THEN c.VALUE46 WHEN 47 THEN c.VALUE47 WHEN 48 THEN c.VALUE48 WHEN 49 THEN c.VALUE49 WHEN 50 THEN c.VALUE50
WHEN 51 THEN c.VALUE51 WHEN 52 THEN c.VALUE52 WHEN 53 THEN c.VALUE53 WHEN 54 THEN c.VALUE54 WHEN 55 THEN c.VALUE55
WHEN 56 THEN c.VALUE56 WHEN 57 THEN c.VALUE57 WHEN 58 THEN c.VALUE58 WHEN 59 THEN c.VALUE59 WHEN 60 THEN c.VALUE60
WHEN 61 THEN c.VALUE61 WHEN 62 THEN c.VALUE62 WHEN 63 THEN c.VALUE63 WHEN 64 THEN c.VALUE64 WHEN 65 THEN c.VALUE65
WHEN 66 THEN c.VALUE66 WHEN 67 THEN c.VALUE67 WHEN 68 THEN c.VALUE68 WHEN 69 THEN c.VALUE69 WHEN 70 THEN c.VALUE70
WHEN 71 THEN c.VALUE71 WHEN 72 THEN c.VALUE72 WHEN 73 THEN c.VALUE73 WHEN 74 THEN c.VALUE74 WHEN 75 THEN c.VALUE75
WHEN 76 THEN c.VALUE76 WHEN 77 THEN c.VALUE77 WHEN 78 THEN c.VALUE78 WHEN 79 THEN c.VALUE79 WHEN 80 THEN c.VALUE80
WHEN 81 THEN c.VALUE81 WHEN 82 THEN c.VALUE82 WHEN 83 THEN c.VALUE83 WHEN 84 THEN c.VALUE84 WHEN 85 THEN c.VALUE85
WHEN 86 THEN c.VALUE86 WHEN 87 THEN c.VALUE87 WHEN 88 THEN c.VALUE88 WHEN 89 THEN c.VALUE89 WHEN 90 THEN c.VALUE90
WHEN 91 THEN c.VALUE91 WHEN 92 THEN c.VALUE92 WHEN 93 THEN c.VALUE93 WHEN 94 THEN c.VALUE94 WHEN 95 THEN c.VALUE95
WHEN 96 THEN c.VALUE96 WHEN 97 THEN c.VALUE97 WHEN 98 THEN c.VALUE98 WHEN 99 THEN c.VALUE99
ELSE NULL END AS currentValue,
c.INSDATE AS currentInsdate
FROM klptcm1_pro_plant_state_define d
CROSS JOIN (
SELECT * FROM klptcm1_pro_plant_state_current
ORDER BY INSDATE DESC
LIMIT 1
) c
ORDER BY d.ID
</select>
</mapper>