btyjj-inspection/src/main/resources/mybatis/mapper/gridpersonnel/gridpersonnel-mapper.xml
2021-04-06 21:16:33 +08:00

386 lines
12 KiB
XML

<?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.cm.inspection.dao.gridpersonnel.IGridPersonnelDao">
<cache flushInterval="3600000"/>
<resultMap id="gridPersonnelDTO" type="com.cm.inspection.pojo.dtos.gridpersonnel.GridPersonnelDTO">
<id column="grid_personnel_id" property="gridPersonnelId"/>
<result column="user_id" property="userId"/>
<result column="user_name" property="userName"/>
<result column="area1" property="area1"/>
<result column="area1_dictionary_name" property="area1DictionaryName"/>
<result column="area2" property="area2"/>
<result column="area2_dictionary_name" property="area2DictionaryName"/>
<result column="area3" property="area3"/>
<result column="area3_dictionary_name" property="area3DictionaryName"/>
<result column="area4" property="area4"/>
<result column="area4_dictionary_name" property="area4DictionaryName"/>
<result column="area5" property="area5"/>
<result column="area5_dictionary_name" property="area5DictionaryName"/>
<result column="leader_user_id" property="leaderUserId"/>
<result column="user_id_join_by_leader_user_id" property="userIdJoinByLeaderUserId"/>
<result column="area1_join_by_leader_user_id" property="area1JoinByLeaderUserId"/>
<result column="area2_join_by_leader_user_id" property="area2JoinByLeaderUserId"/>
<result column="area3_join_by_leader_user_id" property="area3JoinByLeaderUserId"/>
<result column="area4_join_by_leader_user_id" property="area4JoinByLeaderUserId"/>
<result column="area5_join_by_leader_user_id" property="area5JoinByLeaderUserId"/>
<result column="leader_user_id_join_by_leader_user_id" property="leaderUserIdJoinByLeaderUserId"/>
<result column="is_grid_operator_join_by_leader_user_id" property="isGridOperatorJoinByLeaderUserId"/>
<result column="level_join_by_leader_user_id" property="levelJoinByLeaderUserId"/>
<result column="is_grid_operator" property="isGridOperator"/>
<result column="level" property="level"/>
<result column="industry_id" property="industryId"/>
</resultMap>
<!-- 新增网格人员 -->
<insert id="saveGridPersonnel" parameterType="map" flushCache="true">
INSERT INTO gen_grid_personnel(
grid_personnel_id,
user_id,
area1,
area2,
area3,
area4,
area5,
leader_user_id,
is_grid_operator,
level,
creator,
gmt_create,
modifier,
gmt_modified,
is_delete
) VALUES(
#{gridPersonnelId},
#{userId},
#{area1},
#{area2},
#{area3},
#{area4},
#{area5},
#{leaderUserId},
#{isGridOperator},
#{level},
#{creator},
#{gmtCreate},
#{modifier},
#{gmtModified},
#{isDelete}
)
</insert>
<!-- 删除网格人员 -->
<update id="removeGridPersonnel" parameterType="map" flushCache="true">
UPDATE
gen_grid_personnel
SET
is_delete = 1,
modifier = #{modifier},
gmt_modified = #{gmtModified}
WHERE
grid_personnel_id IN
<foreach collection="gridPersonnelIds" index="index" open="(" separator="," close=")">
#{gridPersonnelIds[${index}]}
</foreach>
</update>
<!-- 修改网格人员 -->
<update id="updateGridPersonnel" parameterType="map" flushCache="true">
UPDATE
gen_grid_personnel
SET
<if test="userId != null and userId != ''">
user_id = #{userId},
</if>
<if test="area1 != null">
area1 = #{area1},
</if>
<if test="area2 != null">
area2 = #{area2},
</if>
<if test="area3 != null">
area3 = #{area3},
</if>
<if test="area4 != null">
area4 = #{area4},
</if>
<if test="area5 != null">
area5 = #{area5},
</if>
<if test="leaderUserId != null and leaderUserId != ''">
leader_user_id = #{leaderUserId},
</if>
<if test="isGridOperator != null">
is_grid_operator = #{isGridOperator},
</if>
<if test="level != null">
level = #{level},
</if>
modifier = #{modifier},
gmt_modified = #{gmtModified}
WHERE
grid_personnel_id = #{gridPersonnelId}
</update>
<!-- 网格人员详情 -->
<select id="getGridPersonnel" parameterType="map" resultMap="gridPersonnelDTO">
SELECT
t1.user_id,
t1.area1,
t1.area2,
t1.area3,
t1.area4,
t1.area5,
t1.leader_user_id,
t1.is_grid_operator,
t1.level,
t1.grid_personnel_id,
jt1.industry_id
FROM
gen_grid_personnel t1
LEFT JOIN
gen_industry_user jt1
ON
jt1.user_id = SUBSTR(t1.user_id, 1, 36)
WHERE
t1.is_delete = 0
<if test="gridPersonnelId != null and gridPersonnelId != ''">
AND
t1.grid_personnel_id = #{gridPersonnelId}
</if>
<if test="userId != null and userId != ''">
AND
t1.user_id LIKE CONCAT(#{userId}, '%')
</if>
</select>
<!-- 网格人员列表 -->
<select id="listGridPersonnel" parameterType="map" resultMap="gridPersonnelDTO" useCache="true">
SELECT
t1.user_id,
t1.area1,
dt1.dictionary_name area1_dictionary_name,
t1.area2,
dt2.dictionary_name area2_dictionary_name,
t1.area3,
dt3.dictionary_name area3_dictionary_name,
t1.area4,
dt4.dictionary_name area4_dictionary_name,
t1.area5,
dt5.dictionary_name area5_dictionary_name,
t1.leader_user_id,
t1.is_grid_operator,
t1.level,
t1.grid_personnel_id
FROM
gen_grid_personnel t1
LEFT JOIN
data_dictionary dt1
ON
dt1.dictionary_id = t1.area1
AND
dt1.is_delete = 0
LEFT JOIN
data_dictionary dt2
ON
dt2.dictionary_id = t1.area2
AND
dt2.is_delete = 0
LEFT JOIN
data_dictionary dt3
ON
dt3.dictionary_id = t1.area3
AND
dt3.is_delete = 0
LEFT JOIN
data_dictionary dt4
ON
dt4.dictionary_id = t1.area4
AND
dt4.is_delete = 0
LEFT JOIN
data_dictionary dt5
ON
dt5.dictionary_id = t1.area5
AND
dt5.is_delete = 0
WHERE
t1.is_delete = 0
<if test="keywords != null and keywords != ''">
AND (
SUBSTRING_INDEX(t1.user_id, '|', 3) LIKE CONCAT('%', #{keywords}, '%')
OR
dt1.dictionary_name LIKE CONCAT('%', #{keywords}, '%')
OR
dt2.dictionary_name LIKE CONCAT('%', #{keywords}, '%')
OR
dt3.dictionary_name LIKE CONCAT('%', #{keywords}, '%')
OR
dt4.dictionary_name LIKE CONCAT('%', #{keywords}, '%')
OR
dt5.dictionary_name LIKE CONCAT('%', #{keywords}, '%')
)
</if>
<if test="startTime != null and startTime != ''">
AND
LEFT(t1.gmt_create, 10) <![CDATA[ >= ]]> #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND
LEFT(t1.gmt_create, 10) <![CDATA[ <= ]]> #{endTime}
</if>
<if test="gridPersonnelIds != null and gridPersonnelIds.size > 0">
AND
t1.grid_personnel_id IN
<foreach collection="gridPersonnelIds" index="index" open="(" separator="," close=")">
#{gridPersonnelIds[${index}]}
</foreach>
</if>
<if test="userId != null and userId != ''">
AND
t1.user_id LIKE CONCAT(#{userId}, '%')
</if>
<if test="leaderUserId != null and leaderUserId != ''">
AND
t1.leader_user_id LIKE CONCAT(#{leaderUserId}, '%')
</if>
<if test="userIds != null and userIds.size > 0">
AND
<foreach collection="userIds" index="index" open="(" separator="OR" close=")">
t1.user_id LIKE CONCAT(#{userIds[${index}]}, '|%')
</foreach>
</if>
<if test="level != null">
AND
t1.level = #{level}
</if>
<if test="area1 != null and area1 != ''">
AND
t1.area1 = #{area1}
</if>
<if test="area2 != null and area2 != ''">
AND
t1.area2 = #{area2}
</if>
<if test="area3 != null and area3 != ''">
AND
t1.area3 = #{area3}
</if>
<if test="area4 != null and area4 != ''">
AND
t1.area4 = #{area4}
</if>
<if test="area5 != null and area5 != ''">
AND
t1.area5 = #{area5}
</if>
ORDER BY
t1.level ASC
</select>
<!-- 统计网格员 -->
<select id="countGridPersonnel" parameterType="map" resultType="java.lang.Integer" useCache="true">
SELECT
COUNT(*)
FROM
gen_grid_personnel
WHERE
is_delete = 0
<if test="isGridOperator != null">
AND
is_grid_operator = #{isGridOperator}
</if>
</select>
<!-- 网格员列表 -->
<select id="listGridPersonnelSimple" parameterType="map" resultMap="gridPersonnelDTO" useCache="true">
SELECT
t1.user_id,
t1.area1,
t1.area2,
t1.area3,
t1.area4,
t1.area5,
t1.leader_user_id,
t1.is_grid_operator,
t1.level,
t1.grid_personnel_id
FROM
gen_grid_personnel t1
WHERE
is_delete = 0
<if test="level != null">
AND
t1.level = #{level}
</if>
<if test="area1 != null and area1 != ''">
AND
<choose>
<when test="area1 == 'none'">
(t1.area1 = '' OR t1.area1 IS NULL)
</when>
<otherwise>
t1.area1 = #{area1}
</otherwise>
</choose>
</if>
<if test="area2 != null and area2 != ''">
AND
<choose>
<when test="area2 == 'none'">
(t1.area2 = '' OR t1.area2 IS NULL)
</when>
<otherwise>
t1.area2 = #{area2}
</otherwise>
</choose>
</if>
<if test="area3 != null and area3 != ''">
AND
<choose>
<when test="area3 == 'none'">
(t1.area3 = '' OR t1.area3 IS NULL)
</when>
<otherwise>
t1.area3 = #{area3}
</otherwise>
</choose>
</if>
<if test="area4 != null and area4 != ''">
AND
<choose>
<when test="area4 == 'none'">
(t1.area4 = '' OR t1.area4 IS NULL)
</when>
<otherwise>
t1.area4 = #{area4}
</otherwise>
</choose>
</if>
<if test="area5 != null and area5 != ''">
AND
<choose>
<when test="area5 == 'none'">
(t1.area5 = '' OR t1.area5 IS NULL)
</when>
<otherwise>
t1.area5 = #{area5}
</otherwise>
</choose>
</if>
</select>
<!-- 更新网格员上级ID -->
<update id="updateGridPersonnelLeaderUserId" parameterType="map" flushCache="true">
UPDATE
gen_grid_personnel
SET
leader_user_id = #{leaderUserId}
WHERE
is_delete = 0
AND
grid_personnel_id = #{gridPersonnelId}
</update>
</mapper>