From 0280bccdb8d09940ec72b8eaa218057df67912c4 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 23 十月 2024 17:27:14 +0800
Subject: [PATCH] 修改类型转换bug
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml | 133 +++++++++++++++++++++++++++++++++++++-------
1 files changed, 111 insertions(+), 22 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 61ec6b3..8709694 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -243,7 +243,6 @@
ge.deleted = 0
AND divi.deleted = 0
AND blo.deleted = 0
- AND cont.deleted = 0
<if test="intakeName != null and intakeName != ''">
AND ge.name LIKE CONCAT('%', #{intakeName}, '%')
</if>
@@ -325,7 +324,6 @@
ge.deleted = 0
AND divi.deleted = 0
AND blo.deleted = 0
- AND cont.deleted = 0
<if test="intakeName != null and intakeName != ''">
AND ge.name LIKE CONCAT('%', #{intakeName}, '%')
</if>
@@ -423,27 +421,27 @@
LEFT JOIN pr_controller con ON con.intakeId = inta.id
LEFT JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
LEFT JOIN(
- SELECT intake_id AS intakeId,
- CONCAT(
- IF(alarm_loss = 1, IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�,', ''),
- IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�', '')),
- IF(alarm_battery_volt = 1, IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ,', ''),
- IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ', '')),
- IF(alarm_valve = 1, IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�,', ''),
- IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�', '')),
- IF(alarm_valve = 1, '闃�闂ㄦ姤璀�', '')
- ) AS alarm
- FROM rm_alarm_state_last
- WHERE (alarm_water_meter_fault = 1 OR alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1)
- AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR)
- ) alarm ON alarm.intakeId = inta.id
+ SELECT intake_id AS intakeId,
+ CONCAT(
+ IF(alarm_loss = 1, IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�,', ''),
+ IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�', '')),
+ IF(alarm_battery_volt = 1, IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ,', ''),
+ IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ', '')),
+ IF(alarm_valve = 1, IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�,', ''),
+ IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�', '')),
+ IF(alarm_valve = 1, '闃�闂ㄦ姤璀�', '')
+ ) AS alarm
+ FROM rm_alarm_state_last
+ WHERE (alarm_water_meter_fault = 1 OR alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1)
+ AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR)
+ ) alarm ON alarm.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'
- )
+ <!--'[{"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">
@@ -523,6 +521,97 @@
</trim>
</select>
+
+
+
+
+
+
+ <!--鑾峰彇鍙栨按鍙f暟閲忥紙鍦ㄧ嚎鎴栫绾挎垨涓嶈鐘舵�侊級-->
+ <select id="selectIntakesCountForOnLine" resultType="java.lang.Long">
+ SELECT COUNT(*) AS recordCount
+ FROM pr_intake inta
+ INNER JOIN pr_controller con ON con.intakeId = inta.id
+ <if test="onLineMap != null and onLineMap !='' and isOnLine != null">
+ 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
+ </if>
+ WHERE con.intakeId is not null
+ <if test="isOnLine != null">
+ AND rtus.isOnLine = #{isOnLine}
+ </if>
+ <if test="intakeNum != null and intakeNum != ''">
+ AND inta.name = #{intakeNum}
+ </if>
+ </select>
+
+
+ <!--鑾峰彇鍙栨按鍙e垪琛紙鍦ㄧ嚎鎴栫绾挎垨涓嶈鐘舵�侊級-->
+ <select id="selectIntakesForOnLine" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
+ SELECT
+ inta.id AS intakeId,
+ con.rtuAddr,
+ inta.name AS intakeNum,
+ inta.lng,
+ inta.lat,
+ IFNULL(hou.total_amount, 0) AS totalAmount,
+ alarm.alarm
+ FROM pr_intake inta
+ INNER JOIN pr_controller con ON con.intakeId = inta.id
+ LEFT JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+ LEFT JOIN(
+ SELECT intake_id AS intakeId,
+ CONCAT(
+ IF(alarm_loss = 1, '婕忔崯鎶ヨ锛�', ''),
+ IF(alarm_battery_volt = 1, '鐢垫睜鐢靛帇鎶ヨ锛�', ''),
+ IF(alarm_valve = 1, '闃�闂ㄦ姤璀︼紝', ''),
+ IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅滄姤璀︼紝', '')
+ ) AS alarm
+ FROM rm_alarm_state_last
+ WHERE (alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1 OR alarm_water_meter_fault = 1)
+ AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR)
+ ) alarm ON alarm.intakeId = inta.id
+ <if test="onLineMap != null and onLineMap !='' and isOnLine != null">
+ 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
+ </if>
+ WHERE con.intakeId is not null
+ <if test="isOnLine != null">
+ AND rtus.isOnLine = #{isOnLine}
+ </if>
+ <if test="intakeNum != null and intakeNum != ''">
+ AND inta.name = #{intakeNum}
+ </if>
+ order by inta.id ASC
+ <trim prefix="limit ">
+ <if test="start != null and count != null">
+ #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+ </if>
+ </trim>
+ </select>
+
+
+
+
+
+
+
+
+
+
+
<!--鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栧彇姘村彛瀵硅薄-->
<select id="getIntakeByName" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
SELECT con.intakeId,
--
Gitblit v1.8.0