You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

90 lines
4.1 KiB

<?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.epmet.dao.PatrolRoutineWorkDao">
<resultMap type="com.epmet.entity.PatrolRoutineWorkEntity" id="patrolRoutineWorkMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="gridId" column="GRID_ID"/>
<result property="pids" column="PIDS"/>
<result property="userId" column="USER_ID"/>
<result property="title" column="TITLE"/>
<result property="happenTime" column="HAPPEN_TIME"/>
<result property="isNormal" column="IS_NORMAL"/>
<result property="workContent" column="WORK_CONTENT"/>
<result property="longitude" column="LONGITUDE"/>
<result property="latitude" column="LATITUDE"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<!--支持多级分类哈-->
<select id="selectList" resultType="com.epmet.dto.result.PatrolRoutineWorkResult">
SELECT
m.*,
prwt.WORK_TYPE_CODE AS workTypeSecondCode,
substring_index(prwt.ALL_P_CODE,':',1) AS workTypeFirstCode
FROM epmet_user.patrol_routine_work m
LEFT JOIN patrol_routine_work_type prwt ON m.ID = prwt.ROUTINE_WORK_ID
WHERE
m.CUSTOMER_ID = #{customerId}
<if test="id != null and id != ''">
AND m.ID = #{id}
</if>
AND m.DEL_FLAG = '0'
</select>
<resultMap id="pcWorkListMap" type="com.epmet.dto.result.PcWorkListResultDTO$PcWorkListResult">
<result property="title" column="title"/>
<result property="isNormal" column="isNormal"/>
<result property="happenAddress" column="happenAddress"/>
<result property="happenTime" column="happenTime"/>
<result property="staffId" column="staffId"/>
<result property="gridId" column="gridId"/>
<result property="createdTime" column="createdTime"/>
<result property="workContent" column="workContent"/>
<result property="staffName" column="staffName"/>
<collection property="workTypeCode" ofType="java.lang.String" select="pcWorkTypeCodeList" column="wid">
<result column="workTypeCode"/>
</collection>
</resultMap>
<select id="pcWorkList" resultMap="pcWorkListMap">
SELECT
w.ID AS wid,
w.TITLE as title,
(CASE WHEN w.IS_NORMAL = 1 THEN '有' ELSE '无' END) AS isNormal,
w.ADDRESS AS happenAddress,
w.HAPPEN_TIME AS happenTime,
w.USER_ID AS staffId,
w.GRID_ID AS gridId,
DATE_FORMAT(w.CREATED_TIME,'%Y-%m-%d %H:%i:%s') AS createdTime,
w.WORK_CONTENT AS workContent,
s.REAL_NAME AS staffName
FROM patrol_routine_work w
INNER JOIN customer_staff s ON (s.USER_ID = w.USER_ID AND s.DEL_FLAG = 0)
WHERE w.DEL_FLAG = 0
<if test="staffId != null and staffId != '' ">
AND w.USER_ID = #{staffId}
</if>
<if test='orgType == "grid" '>
AND w.GRID_ID = #{orgId}
</if>
<if test='orgType == "agency" '>
AND w.PIDS LIKE CONCAT('%',#{orgId},'%')
</if>
AND DATE_FORMAT(w.CREATED_TIME,'%Y%m%d') <![CDATA[ <= ]]> #{endTime}
<if test="startTime != '' and startTime != null">
AND DATE_FORMAT(w.CREATED_TIME,'%Y%m%d') >= #{startTime}
</if>
ORDER BY w.CREATED_TIME DESC
</select>
<select id="pcWorkTypeCodeList" resultType="java.lang.String">
SELECT WORK_TYPE_CODE AS workTypeCode FROM patrol_routine_work_type WHERE DEL_FLAG = 0 AND ROUTINE_WORK_ID = #{wid}
</select>
</mapper>