| | |
| | | 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.* |
| | |
| | | |
| | | <select id="selectFwDeviceMaintainPlanPage" resultMap="fwDeviceMaintainPlanResultMap"> |
| | | select |
| | | <include refid="deviceFields"/>,a.*, |
| | | <include refid="maintainStatusCalculation"/> |
| | | <include refid="deviceFields"/>,a.* |
| | | from |
| | | ja_fw_device_maintain_plan a |
| | | left join ja_fw_device b on (a.device_id = b.id) |