|  |  |  | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | ) rtus ON com.rtu_addr = rtus.rtuAddr | 
|---|
|  |  |  | <where> | 
|---|
|  |  |  | AND   com.com_id in (#{comIds}) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | AND   com.com_id in (${comIds}) | 
|---|
|  |  |  | AND ( | 
|---|
|  |  |  | SELECT op_dt FROM rm_open_close_valve_last | 
|---|
|  |  |  | WHERE rtu_addr = com.rtu_addr AND op_ic_card_no = com.param ->> '$.icCardNo' | 
|---|
|  |  |  | 
|---|
|  |  |  | LIMIT 1 | 
|---|
|  |  |  | ) IS NOT NULL | 
|---|
|  |  |  |  | 
|---|
|  |  |  | AND ( | 
|---|
|  |  |  | SELECT cl_dt FROM rm_open_close_valve_last | 
|---|
|  |  |  | WHERE rtu_addr = com.rtu_addr AND op_ic_card_no = com.param ->> '$.icCardNo' | 
|---|
|  |  |  | ORDER BY op_dt DESC | 
|---|
|  |  |  | LIMIT 1 | 
|---|
|  |  |  | ) IS NULL | 
|---|
|  |  |  | </where> | 
|---|
|  |  |  | GROUP BY inta.name, rtus.isOnLine, com.rtu_addr, com.param ->> '$.icCardNo', com.command_code, com.send_time, dt, waterInstant | 
|---|
|  |  |  | ORDER BY com.send_time DESC | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--根据操作员ID获取未关阀记录(包含在线情况)--> | 
|---|
|  |  |  | <select id="getUnclosedValves2" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedValve"> | 
|---|
|  |  |  | SELECT | 
|---|
|  |  |  | inta.name AS intakeNum, | 
|---|
|  |  |  | IFNULL(rtus.isOnLine, false) AS isOnLine, | 
|---|
|  |  |  | com.rtu_addr AS rtuAddr, | 
|---|
|  |  |  | com.param ->> '$.icCardNo' AS vcNum, | 
|---|
|  |  |  | ( | 
|---|
|  |  |  | SELECT param ->> '$.orderNo' AS orderNo | 
|---|
|  |  |  | FROM rm_command_history | 
|---|
|  |  |  | WHERE rtu_addr = com.rtu_addr | 
|---|
|  |  |  | ORDER BY send_time desc | 
|---|
|  |  |  | LIMIT 0,1 | 
|---|
|  |  |  | ) AS orderNo, | 
|---|
|  |  |  | 'toClose'                  AS state, | 
|---|
|  |  |  | CASE | 
|---|
|  |  |  | WHEN com.command_code = 'A1' OR com.command_code = 'A2' THEN 1 | 
|---|
|  |  |  | ELSE 0 | 
|---|
|  |  |  | END AS planned, | 
|---|
|  |  |  | com.send_time AS sendTime, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | (SELECT dt FROM rm_work_report_last | 
|---|
|  |  |  | WHERE rtu_addr = com.rtu_addr AND ic_card_no = com.param ->> '$.icCardNo' | 
|---|
|  |  |  | <!--AND dt > (SELECT op_dt FROM rm_open_close_valve_last WHERE rtu_addr = com.rtu_addr AND op_ic_card_no = com.param ->> '$.icCardNo' ORDER BY op_dt DESC LIMIT 1)--> | 
|---|
|  |  |  | AND dt > com.send_time | 
|---|
|  |  |  | ORDER BY dt DESC | 
|---|
|  |  |  | LIMIT 1) AS dt, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | (SELECT water_instant FROM rm_work_report_last | 
|---|
|  |  |  | WHERE rtu_addr = com.rtu_addr AND ic_card_no = com.param ->> '$.icCardNo' | 
|---|
|  |  |  | <!--AND dt > (SELECT op_dt FROM rm_open_close_valve_last WHERE rtu_addr = com.rtu_addr AND op_ic_card_no = com.param ->> '$.icCardNo' ORDER BY op_dt DESC LIMIT 1)--> | 
|---|
|  |  |  | AND dt > com.send_time | 
|---|
|  |  |  | ORDER BY dt DESC | 
|---|
|  |  |  | LIMIT 1) AS waterInstant | 
|---|
|  |  |  |  | 
|---|
|  |  |  | FROM rm_command_history com | 
|---|
|  |  |  | INNER JOIN pr_controller con ON com.rtu_addr = con.rtuAddr | 
|---|
|  |  |  | INNER JOIN pr_intake inta ON con.intakeId = inta.id | 
|---|
|  |  |  | LEFT JOIN JSON_TABLE( | 
|---|
|  |  |  | <!--                '[{"rtuAddr":"620201000030","isOnLine":true}]',--> | 
|---|
|  |  |  | #{onLineMap}, | 
|---|
|  |  |  | '$[*]' COLUMNS ( | 
|---|
|  |  |  | rtuAddr VARCHAR(20) PATH '$.rtuAddr', | 
|---|
|  |  |  | isOnLine BOOLEAN PATH '$.isOnLine' | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | ) rtus ON com.rtu_addr = rtus.rtuAddr | 
|---|
|  |  |  | <where> | 
|---|
|  |  |  | AND com.operator = #{operator} | 
|---|
|  |  |  | AND com.result = 1 | 
|---|
|  |  |  | AND ((com.protocol = 'p206V1' OR com.protocol = 'p206V2') AND (com.command_code = '92' OR com.command_code = '97' OR com.command_code = '99' OR com.command_code = 'A0' OR com.command_code = 'A1' OR com.command_code = 'A2')) | 
|---|
|  |  |  | AND ( | 
|---|
|  |  |  | SELECT op_dt FROM rm_open_close_valve_last | 
|---|
|  |  |  | WHERE rtu_addr = com.rtu_addr AND op_ic_card_no = com.param ->> '$.icCardNo' | 
|---|
|  |  |  | ORDER BY op_dt DESC | 
|---|
|  |  |  | LIMIT 1 | 
|---|
|  |  |  | ) IS NOT NULL | 
|---|
|  |  |  | AND ( | 
|---|
|  |  |  | SELECT cl_dt FROM rm_open_close_valve_last | 
|---|
|  |  |  | WHERE rtu_addr = com.rtu_addr AND op_ic_card_no = com.param ->> '$.icCardNo' | 
|---|