<?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="org.sxkj.fw.device.mapper.FwDeviceMaintainPlanMapper">
|
<!-- 通用查询映射结果 -->
|
<resultMap id="fwDeviceMaintainPlanResultMap" type="org.sxkj.fw.device.vo.FwDeviceMaintainPlanVO">
|
<result column="id" property="id"/>
|
<result column="device_id" property="deviceId"/>
|
<result column="plan_cycle_type" property="planCycleType"/>
|
<result column="plan_cycle_value" property="planCycleValue"
|
typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
|
<result column="device_name" property="deviceName"/>
|
<result column="device_type" property="deviceType"/>
|
<result column="device_att" property="deviceAtt"/>
|
<result column="device_model" property="deviceModel"/>
|
<result column="belong_dept" property="belongDept"/>
|
<result column="device_specification" property="deviceSpecification"/>
|
<result column="manufacturer" property="manufacturer"/>
|
<result column="source" property="source"/>
|
<result column="purpose" property="purpose"/>
|
<result column="charger" property="charger"/>
|
<result column="device_create_time" property="createTime"/>
|
<result column="maintain_status" property="maintainStatus"/>
|
<result column="last_maintain_time" property="lastMaintainTime"/>
|
</resultMap>
|
|
<sql id="deviceFields">
|
b.device_name,
|
b.device_type,
|
b.device_att,
|
b.device_model,
|
b.belong_dept,
|
b.device_specification,
|
b.manufacturer,
|
b.source,
|
b.purpose,
|
b.charger,
|
b.create_time as device_create_time
|
</sql>
|
|
<sql id="maintainStatusCalculation">
|
CASE
|
WHEN (
|
SELECT COUNT(1)
|
FROM ja_fw_device_maintain_record r
|
WHERE r.device_id = a.device_id
|
AND r.is_deleted = 0
|
AND r.maintain_time IS NOT NULL
|
AND (
|
(a.plan_cycle_type = '1' AND FIND_IN_SET(DATE_FORMAT(r.maintain_time, '%m月%d号'), REPLACE(REPLACE(REPLACE(a.plan_cycle_value, '[', ''), ']', ''), '"', '')) > 0)
|
OR (a.plan_cycle_type = '2' AND FIND_IN_SET(DATE_FORMAT(r.maintain_time, '%d号'), REPLACE(REPLACE(REPLACE(a.plan_cycle_value, '[', ''), ']', ''), '"', '')) > 0)
|
OR (a.plan_cycle_type = '3' AND FIND_IN_SET(ELT(DAYOFWEEK(r.maintain_time), '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'), REPLACE(REPLACE(REPLACE(a.plan_cycle_value, '[', ''), ']', ''), '"', '')) > 0)
|
)
|
) > 0 THEN '已维护'
|
ELSE '未维护'
|
END AS maintain_status,
|
(SELECT MAX(r.maintain_time) FROM ja_fw_device_maintain_record r WHERE r.device_id = a.device_id AND r.is_deleted = 0) AS last_maintain_time
|
|
</sql>
|
|
|
<select id="getFwDeviceMaintainPlanById" resultMap="fwDeviceMaintainPlanResultMap">
|
select
|
<include refid="deviceFields"/>,a.*
|
from
|
ja_fw_device_maintain_plan a
|
left join ja_fw_device b on (a.device_id = b.id)
|
<where>
|
a.is_deleted = 0
|
<if test="id != null and id != ''">
|
and a.id = #{id}
|
</if>
|
</where>
|
limit 1
|
</select>
|
|
<select id="selectFwDeviceMaintainPlanPage" resultMap="fwDeviceMaintainPlanResultMap">
|
select
|
<include refid="deviceFields"/>,a.*,
|
<include refid="maintainStatusCalculation"/>
|
from
|
ja_fw_device_maintain_plan a
|
left join ja_fw_device b on (a.device_id = b.id)
|
<where>
|
a.is_deleted = 0
|
<if test="param2.deviceId != null and param2.deviceId != ''">
|
and device_id = #{param2.deviceId}
|
</if>
|
<if test="param2.deviceName != null and param2.deviceName != ''">
|
and device_name like concat('%',#{param2.deviceName},'%')
|
</if>
|
<if test="param2.deviceType != null and param2.deviceType != ''">
|
and device_type = #{param2.deviceType}
|
</if>
|
<if test="param2.belongDept != null and param2.belongDept != ''">
|
and belong_dept = #{param2.belongDept}
|
</if>
|
</where>
|
</select>
|
|
|
<select id="exportFwDeviceMaintainPlan" resultType="org.sxkj.fw.device.excel.FwDeviceMaintainPlanExcel">
|
SELECT *
|
FROM ja_fw_device_maintain_plan ${ew.customSqlSegment}
|
</select>
|
</mapper>
|