From 9768218cdd1afa303840b173690b122a1c5e0894 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期二, 12 十一月 2024 08:40:25 +0800 Subject: [PATCH] 优化代码 --- pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml | 24 +++++++++++++++++++----- 1 files changed, 19 insertions(+), 5 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml index 2f95192..f6eff90 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml @@ -199,7 +199,7 @@ <select id="getUnclosedValves" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedValve"> SELECT inta.name AS intakeNum, - rtus.isOnLine, + IFNULL(rtus.isOnLine, false) AS isOnLine, com.rtu_addr AS rtuAddr, com.param ->> '$.icCardNo' AS vcNum, ( @@ -211,10 +211,24 @@ ) AS orderNo, 'toClose' AS state, CASE - WHEN com.command_code = 'A1' OR com.command_code = 'A2' THEN 0 + WHEN com.command_code = 'A1' OR com.command_code = 'A2' THEN 1 ELSE 0 END AS planned, - com.send_time AS sendTime + 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) + 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) + 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 @@ -228,7 +242,7 @@ ) rtus ON com.rtu_addr = rtus.rtuAddr <where> AND com.operator = #{operator} - 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 ((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' @@ -242,7 +256,7 @@ LIMIT 1 ) IS NULL </where> - GROUP BY inta.name, rtus.isOnLine, com.rtu_addr, com.param ->> '$.icCardNo', com.command_code, com.send_time + 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 LIMIT 1 </select> -- Gitblit v1.8.0