From 5f0b4dced466ca0a7a0a0242c78b22a722a2f5f4 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期四, 01 八月 2024 10:47:59 +0800
Subject: [PATCH] 优化代码
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml | 76 +++++++++++++++++++++++---------------
1 files changed, 46 insertions(+), 30 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
index 3099a55..afcd2da 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -358,37 +358,10 @@
WHERE id NOT IN(SELECT intakeId FROM pr_controller) AND deleted = 0
</select>
- <!--鑾峰彇鍙栨按鍙f暟閲忥紙鍦ㄧ嚎鍜屼笉鍦ㄥ厛锛� 搴熷純-->
+ <!--鑾峰彇鍙栨按鍙f暟閲忥紙鍦ㄧ嚎鍜屼笉鍦ㄥ厛锛�-->
<select id="getOnLineIntakesCount" resultType="java.lang.Long">
SELECT
COUNT(*) AS recordCount
- FROM pr_controller con
- INNER JOIN pr_intake inta ON con.intakeId = inta.id
- left 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 con.rtuAddr = rtus.rtuAddr
- <where>
- <if test="isOnLine != null">
- rtus.isOnLine = #{isOnLine}
- </if>
- <if test="intakeNum != null and intakeNum != ''">
- AND inta.name LIKE CONCAT('%', #{intakeNum}, '%')
- </if>
- </where>
- </select>
-
- <!--鑾峰彇鍙栨按鍙e垪琛紙鍦ㄧ嚎鍜屼笉鍦ㄥ厛锛� 搴熷純-->
- <select id="getOnLineIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
- SELECT
- con.intakeId,
- con.rtuAddr,
- inta.name AS intakeNum,
- rtus.isOnLine
FROM pr_controller con
INNER JOIN pr_intake inta ON con.intakeId = inta.id
left JOIN JSON_TABLE(
@@ -396,8 +369,8 @@
#{onLineMap},
'$[*]' COLUMNS(
rtuAddr VARCHAR(20) PATH '$.rtuAddr',
- isOnLine BOOLEAN PATH '$.isOnLine'
- )
+ isOnLine BOOLEAN PATH '$.isOnLine'
+ )
) rtus ON con.rtuAddr = rtus.rtuAddr
<where>
<if test="isOnLine != null">
@@ -406,6 +379,49 @@
<if test="intakeNum != null and intakeNum != ''">
AND inta.name = #{intakeNum}
</if>
+ <if test="isBinded == 0">
+ AND inta.id NOT IN(SELECT intakeId FROM pr_controller where deleted = 0)
+ </if>
+ <if test="isBinded == 1">
+ AND inta.id IN(SELECT intakeId FROM pr_controller where deleted = 0)
+ </if>
+ </where>
+ </select>
+
+ <!--鑾峰彇鍙栨按鍙e垪琛紙鍦ㄧ嚎鍜屼笉鍦ㄥ厛锛�-->
+ <select id="getOnLineIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
+ SELECT
+ inta.id AS intakeId,
+ con.rtuAddr,
+ inta.name AS intakeNum,
+ (CASE
+ WHEN con.rtuAddr IS NULL THEN "false"
+ WHEN con.rtuAddr IS NOT NULL THEN "true"
+ END) AS isBinded,
+ rtus.isOnLine
+ FROM pr_intake inta
+ LEFT JOIN pr_controller con ON con.intakeId = inta.id
+ LEFT 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 con.rtuAddr = rtus.rtuAddr
+ <where>
+ <if test="isOnLine != null">
+ rtus.isOnLine = #{isOnLine}
+ </if>
+ <if test="intakeNum != null and intakeNum != ''">
+ AND inta.name = #{intakeNum}
+ </if>
+ <if test="isBinded == false ">
+ AND con.rtuAddr IS NULL
+ </if>
+ <if test="isBinded == true ">
+ AND con.rtuAddr IS NOT NULL
+ </if>
</where>
order by con.id ASC
<if test="pageCurr != null and pageSize != null">
--
Gitblit v1.8.0