From a40757e9ca952fad9f0838a17276bf8f71f14496 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期二, 12 十一月 2024 09:45:26 +0800
Subject: [PATCH] 代码优化
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml | 54 ++++++++++++++++++++++++++++++++++++------------------
1 files changed, 36 insertions(+), 18 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 f69c0b4..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,15 +242,21 @@
) 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 NOT EXISTS(
- SELECT * FROM rm_command_history
- WHERE (result IS NULL OR result = 1)
- AND (com.protocol = 'p206V1_0_1' AND (command_code = '93' OR command_code = '98' OR command_code = '00'))
- AND param ->> '$.orderNo' = com.param ->> '$.orderNo'
- )
+ 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'
+ 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
+ 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>
@@ -275,8 +295,6 @@
SELECT COUNT(*) AS recordCount
FROM rm_command_history his
INNER JOIN pr_intake inta ON inta.id = his.intake_id
- LEFT JOIN se_client cli ON cli.id = his.operator
- LEFT JOIN ba_user user ON user.id = his.operator
<where>
<if test="intakeId != null">
AND his.intake_id = #{intakeId}
@@ -296,17 +314,17 @@
<!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍛戒护鏃ュ織鍘嗗彶璁板綍-->
<select id="getCommandHistories" resultType="com.dy.pipIrrGlobal.voRm.VoCommand">
SELECT his.com_id AS comId,
- his.command_name AS commandName,
+ CONCAT(his.command_name, '(', his.command_code, ')') AS commandName,
inta.name AS intakeName,
his.rtu_addr AS rtuAddr,
- his.protocol,
+ his.protocol AS protocol,
his.send_time AS sendTime,
his.result_time AS resultTime,
(CASE
WHEN his.result = 1 THEN '鎴愬姛'
ELSE '澶辫触'
- END) AS result,
- his.result_text,
+ END) AS state,
+ his.result_text AS result,
IFNULL(cli.name, user.name) AS userName
FROM rm_command_history his
INNER JOIN pr_intake inta ON inta.id = his.intake_id
@@ -327,7 +345,7 @@
AND his.send_time BETWEEN #{timeStart} AND #{timeStop}
</if>
</where>
- ORDER BY his.send_time DESC
+ ORDER BY his.com_id DESC
<trim prefix="limit ">
<if test="start != null and count != null">
#{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
--
Gitblit v1.8.0