kaiyu
2021-05-27 d7e7a651810d74e1d0d474090cb9fd78ffd5427b
screen-manage/src/main/resources/mapper/VersionMapper.xml
@@ -2,14 +2,76 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.moral.api.mapper.VersionMapper">
        <!-- 通用查询映射结果 -->
        <resultMap id="BaseResultMap" type="com.moral.api.entity.Version">
                    <id column="id" property="id" />
                    <result column="name" property="name" />
                    <result column="create_time" property="createTime" />
                    <result column="update_time" property="updateTime" />
                    <result column="is_delete" property="isDelete" />
                    <result column="desc" property="desc" />
        </resultMap>
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.moral.api.entity.Version">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="is_delete" property="isDelete"/>
        <result column="desc" property="desc"/>
    </resultMap>
    <!--带有因子以及单位的查询map-->
    <resultMap id="VersionSensorUnitMap" type="com.moral.api.entity.Version">
        <id property="id" column="id"></id>
        <result property="name" column="name"></result>
        <result property="desc" column="desc"></result>
        <result property="createTime" column="create_time"></result>
        <result property="updateTime" column="update_time"></result>
        <collection property="sensors" column="id" ofType="com.moral.api.entity.Sensor">
            <id property="id" column="sid"></id>
            <result property="name" column="sname"></result>
            <result property="unitKey" column="dataKey"></result>
            <result property="unit" column="dataValue"></result>
            <result property="maxValue" column="max_value"></result>
            <result property="minValue" column="min_value"></result>
        </collection>
    </resultMap>
    <select id="queryVersionsAndSensorUnitByIds" resultMap="VersionSensorUnitMap">
    SELECT
     v.`id`,v.`name`,v.`desc`,v.`create_time`,v.`update_time`,s.`id` AS sid,s.`name` AS sname ,u.dataKey,u.dataValue,vsu.`max_value` ,vsu.`min_value`
    FROM
     `version` v
    LEFT JOIN
     version_sensor_unit vsu
    ON
     v.`id` = vsu.`version_id` AND vsu.`is_delete` = 0
    LEFT JOIN
     sensor s
    ON
     s.`id` = vsu.`sensor_id` AND s.`is_delete` = 0
    LEFT JOIN
   (
     SELECT
      sdd.datakey,sdd.dataValue,sdd.is_delete
     FROM
      sys_dict_data sdd
     JOIN
      sys_dict_type sdt
     ON
      sdt.`name` = 'unit' AND sdt.`id` = sdd.`dict_type_id` AND sdt.`is_delete` = 0
     WHERE
      sdd.`is_delete` = 0
   ) u
    ON
     vsu.unit_key = u.dataKey AND u.is_delete = 0
    WHERE
     v.`id`
   in
    <foreach collection="list" item="vid" open="(" separator="," close=")">
        #{vid}
    </foreach>
   AND
        v.`is_delete` = 0
    ORDER BY FIELD
        (v.`id`,
        <foreach collection="list" item="vid"  separator="," >
            #{vid}
        </foreach>
        )
    </select>
</mapper>