| | |
| | | |
| | | <!--根据操作员ID获取未关阀记录(包含在线情况)--> |
| | | <select id="getUnclosedValves" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedValve"> |
| | | SELECT inta.name AS intakeNum, |
| | | rtus.isOnLine, |
| | | com.rtu_addr AS rtuAddr, |
| | | com.param ->> '$.icCardNo' AS vcNum, |
| | | (SELECT param ->> '$.orderNo' AS orderNo |
| | | SELECT |
| | | inta.name AS intakeNum, |
| | | rtus.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 |
| | | LIMIT 0,1 |
| | | ) AS orderNo, |
| | | 'toClose' AS state, |
| | | CASE |
| | | WHEN com.command_code = 'A1' OR com.command_code = 'A2' THEN 0 |
| | | ELSE 0 |
| | | END AS planned, |
| | | com.send_time AS sendTime |
| | | 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 |
| | | INNER JOIN JSON_TABLE( |
| | | <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',--> |
| | | #{onLineMap}, |
| | | '$[*]' COLUMNS ( |
| | | rtuAddr VARCHAR(20) PATH '$.rtuAddr', |
| | | isOnLine BOOLEAN PATH '$.isOnLine' |
| | | ) |
| | | ) rtus ON com.rtu_addr = rtus.rtuAddr |
| | | <where> |
| | | AND (com.command_code = '92' OR com.command_code = 'A2' OR com.command_code = '97') |
| | | AND com.operator = #{operator} |
| | | AND NOT EXISTS( |
| | | SELECT * |
| | | FROM rm_command_history |
| | | WHERE (result IS NULL OR result = 1) |
| | | AND (command_code = '93' OR command_code = 'A3' OR command_code = '98') |
| | | AND param ->> '$.orderNo' = com.param ->> '$.orderNo' |
| | | ) |
| | | </where> |
| | | GROUP BY inta.name, rtus.isOnLine, com.rtu_addr, com.param ->> '$.icCardNo' |
| | | |
| | | UNION ALL |
| | | |
| | | SELECT inta.name AS intakeNum, |
| | | rtus.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, |
| | | 'toCancel' AS state |
| | | FROM rm_command_history com |
| | | INNER JOIN pr_intake inta ON inta.id = com.intake_id |
| | | INNER JOIN JSON_TABLE( |
| | | LEFT JOIN JSON_TABLE( |
| | | <!-- '[{"rtuAddr":"620201000030","isOnLine":true}]',--> |
| | | #{onLineMap}, |
| | | '$[*]' COLUMNS ( |
| | | rtuAddr VARCHAR(20) PATH '$.rtuAddr', |
| | |
| | | ) |
| | | ) rtus ON com.rtu_addr = rtus.rtuAddr |
| | | <where> |
| | | AND (command_code = 'A1' OR command_code = 'A2') |
| | | AND com.operator = #{operator} |
| | | AND DATE_FORMAT( |
| | | CONCAT(com.param ->> '$.year', '-', com.param ->> '$.month', '-', com.param ->> '$.day', |
| | | ' ', |
| | | com.param ->> '$.hour', ':', com.param ->> '$.minute', ':', '0'), |
| | | '%Y-%m-%d %H:%i:%S') > NOW() |
| | | AND (com.protocol = 'p206V1_0_1' 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 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 |
| | | ORDER BY com.send_time DESC |
| | | LIMIT 1 |
| | | </select> |
| | | |
| | | <!--根据取水口ID获取该取水口未关阀参数--> |