From d1b519ff00db838f4891b50732ff3428eb92bba1 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期四, 29 八月 2024 11:35:23 +0800
Subject: [PATCH] 2024-08-29 朱宝民 未关阀记录拼接未开始的计划开阀

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml |  630 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 337 insertions(+), 293 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 0f4282c..7888144 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
@@ -1,315 +1,359 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper">
-  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
-    <!--@mbg.generated-->
-    <!--@Table rm_command_history-->
-    <id column="com_id" jdbcType="BIGINT" property="comId" />
-    <result column="command_code" jdbcType="VARCHAR" property="commandCode" />
-    <result column="command_name" jdbcType="VARCHAR" property="commandName" />
-    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
-    <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
-    <result column="protocol" jdbcType="VARCHAR" property="protocol" />
-    <result column="param" property="param" jdbcType="JAVA_OBJECT" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" />
-    <result column="send_time" jdbcType="TIMESTAMP" property="sendTime" />
-    <result column="operator" jdbcType="BIGINT" property="operator" />
-    <result column="result" jdbcType="TINYINT" property="result" />
-    <result column="result_time" jdbcType="TIMESTAMP" property="resultTime" />
-    <result column="result_text" jdbcType="LONGVARCHAR" property="resultText" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    com_id, command_code, command_name, intake_id, rtu_addr, protocol, param, send_time, 
-    `operator`, `result`, result_time, result_text
-  </sql>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from rm_command_history
-    where com_id = #{comId,jdbcType=BIGINT}
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from rm_command_history
-    where com_id = #{comId,jdbcType=BIGINT}
-  </delete>
-  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
-    <!--@mbg.generated-->
-    insert into rm_command_history (com_id, command_code, command_name, 
-      intake_id, rtu_addr, protocol, 
-      param, send_time, `operator`, 
-      `result`, result_time, result_text
-      )
-    values (#{comId,jdbcType=BIGINT}, #{commandCode,jdbcType=VARCHAR}, #{commandName,jdbcType=VARCHAR}, 
-      #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, #{protocol,jdbcType=VARCHAR},
-      #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, #{sendTime,jdbcType=TIMESTAMP}, #{operator,jdbcType=BIGINT},
-      #{result,jdbcType=TINYINT}, #{resultTime,jdbcType=TIMESTAMP}, #{resultText,jdbcType=LONGVARCHAR}
-      )
-  </insert>
-  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
-    <!--@mbg.generated-->
-    insert into rm_command_history
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="comId != null">
+    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
+        <!--@mbg.generated-->
+        <!--@Table rm_command_history-->
+        <id column="com_id" jdbcType="BIGINT" property="comId"/>
+        <result column="command_code" jdbcType="VARCHAR" property="commandCode"/>
+        <result column="command_name" jdbcType="VARCHAR" property="commandName"/>
+        <result column="intake_id" jdbcType="BIGINT" property="intakeId"/>
+        <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr"/>
+        <result column="protocol" jdbcType="VARCHAR" property="protocol"/>
+        <result column="param" property="param" jdbcType="JAVA_OBJECT"
+                typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
+        <result column="send_time" jdbcType="TIMESTAMP" property="sendTime"/>
+        <result column="operator" jdbcType="BIGINT" property="operator"/>
+        <result column="result" jdbcType="TINYINT" property="result"/>
+        <result column="result_time" jdbcType="TIMESTAMP" property="resultTime"/>
+        <result column="result_text" jdbcType="LONGVARCHAR" property="resultText"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
         com_id,
-      </if>
-      <if test="commandCode != null">
         command_code,
-      </if>
-      <if test="commandName != null">
         command_name,
-      </if>
-      <if test="intakeId != null">
         intake_id,
-      </if>
-      <if test="rtuAddr != null">
         rtu_addr,
-      </if>
-      <if test="protocol != null">
         protocol,
-      </if>
-      <if test="param != null">
         param,
-      </if>
-      <if test="sendTime != null">
         send_time,
-      </if>
-      <if test="operator != null">
         `operator`,
-      </if>
-      <if test="result != null">
         `result`,
-      </if>
-      <if test="resultTime != null">
         result_time,
-      </if>
-      <if test="resultText != null">
-        result_text,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="comId != null">
-        #{comId,jdbcType=BIGINT},
-      </if>
-      <if test="commandCode != null">
-        #{commandCode,jdbcType=VARCHAR},
-      </if>
-      <if test="commandName != null">
-        #{commandName,jdbcType=VARCHAR},
-      </if>
-      <if test="intakeId != null">
-        #{intakeId,jdbcType=BIGINT},
-      </if>
-      <if test="rtuAddr != null">
-        #{rtuAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="protocol != null">
-        #{protocol,jdbcType=VARCHAR},
-      </if>
-      <if test="param != null">
-        #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
-      </if>
-      <if test="sendTime != null">
-        #{sendTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="operator != null">
-        #{operator,jdbcType=BIGINT},
-      </if>
-      <if test="result != null">
-        #{result,jdbcType=TINYINT},
-      </if>
-      <if test="resultTime != null">
-        #{resultTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="resultText != null">
-        #{resultText,jdbcType=LONGVARCHAR},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
-    <!--@mbg.generated-->
-    update rm_command_history
-    <set>
-      <if test="commandCode != null">
-        command_code = #{commandCode,jdbcType=VARCHAR},
-      </if>
-      <if test="commandName != null">
-        command_name = #{commandName,jdbcType=VARCHAR},
-      </if>
-      <if test="intakeId != null">
-        intake_id = #{intakeId,jdbcType=BIGINT},
-      </if>
-      <if test="rtuAddr != null">
-        rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="protocol != null">
-        protocol = #{protocol,jdbcType=VARCHAR},
-      </if>
-      <if test="param != null">
-        param = #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
-      </if>
-      <if test="sendTime != null">
-        send_time = #{sendTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="operator != null">
-        `operator` = #{operator,jdbcType=BIGINT},
-      </if>
-      <if test="result != null">
-        `result` = #{result,jdbcType=TINYINT},
-      </if>
-      <if test="resultTime != null">
-        result_time = #{resultTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="resultText != null">
-        result_text = #{resultText,jdbcType=LONGVARCHAR},
-      </if>
-    </set>
-    where com_id = #{comId,jdbcType=BIGINT}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
-    <!--@mbg.generated-->
-    update rm_command_history
-    set command_code = #{commandCode,jdbcType=VARCHAR},
-      command_name = #{commandName,jdbcType=VARCHAR},
-      intake_id = #{intakeId,jdbcType=BIGINT},
-      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      protocol = #{protocol,jdbcType=VARCHAR},
-      param = #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
-      send_time = #{sendTime,jdbcType=TIMESTAMP},
-      `operator` = #{operator,jdbcType=BIGINT},
-      `result` = #{result,jdbcType=TINYINT},
-      result_time = #{resultTime,jdbcType=TIMESTAMP},
-      result_text = #{resultText,jdbcType=LONGVARCHAR}
-    where com_id = #{comId,jdbcType=BIGINT}
-  </update>
+        result_text
+    </sql>
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from rm_command_history
+        where com_id = #{comId,jdbcType=BIGINT}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        delete
+        from rm_command_history
+        where com_id = #{comId,jdbcType=BIGINT}
+    </delete>
+    <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
+        <!--@mbg.generated-->
+        insert into rm_command_history (com_id, command_code, command_name,
+                                        intake_id, rtu_addr, protocol,
+                                        param, send_time, `operator`,
+                                        `result`, result_time, result_text)
+        values (#{comId,jdbcType=BIGINT}, #{commandCode,jdbcType=VARCHAR}, #{commandName,jdbcType=VARCHAR},
+                #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, #{protocol,jdbcType=VARCHAR},
+                #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+                #{sendTime,jdbcType=TIMESTAMP}, #{operator,jdbcType=BIGINT},
+                #{result,jdbcType=TINYINT}, #{resultTime,jdbcType=TIMESTAMP}, #{resultText,jdbcType=LONGVARCHAR})
+    </insert>
+    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
+        <!--@mbg.generated-->
+        insert into rm_command_history
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="comId != null">
+                com_id,
+            </if>
+            <if test="commandCode != null">
+                command_code,
+            </if>
+            <if test="commandName != null">
+                command_name,
+            </if>
+            <if test="intakeId != null">
+                intake_id,
+            </if>
+            <if test="rtuAddr != null">
+                rtu_addr,
+            </if>
+            <if test="protocol != null">
+                protocol,
+            </if>
+            <if test="param != null">
+                param,
+            </if>
+            <if test="sendTime != null">
+                send_time,
+            </if>
+            <if test="operator != null">
+                `operator`,
+            </if>
+            <if test="result != null">
+                `result`,
+            </if>
+            <if test="resultTime != null">
+                result_time,
+            </if>
+            <if test="resultText != null">
+                result_text,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="comId != null">
+                #{comId,jdbcType=BIGINT},
+            </if>
+            <if test="commandCode != null">
+                #{commandCode,jdbcType=VARCHAR},
+            </if>
+            <if test="commandName != null">
+                #{commandName,jdbcType=VARCHAR},
+            </if>
+            <if test="intakeId != null">
+                #{intakeId,jdbcType=BIGINT},
+            </if>
+            <if test="rtuAddr != null">
+                #{rtuAddr,jdbcType=VARCHAR},
+            </if>
+            <if test="protocol != null">
+                #{protocol,jdbcType=VARCHAR},
+            </if>
+            <if test="param != null">
+                #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+            </if>
+            <if test="sendTime != null">
+                #{sendTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="operator != null">
+                #{operator,jdbcType=BIGINT},
+            </if>
+            <if test="result != null">
+                #{result,jdbcType=TINYINT},
+            </if>
+            <if test="resultTime != null">
+                #{resultTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="resultText != null">
+                #{resultText,jdbcType=LONGVARCHAR},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
+        <!--@mbg.generated-->
+        update rm_command_history
+        <set>
+            <if test="commandCode != null">
+                command_code = #{commandCode,jdbcType=VARCHAR},
+            </if>
+            <if test="commandName != null">
+                command_name = #{commandName,jdbcType=VARCHAR},
+            </if>
+            <if test="intakeId != null">
+                intake_id = #{intakeId,jdbcType=BIGINT},
+            </if>
+            <if test="rtuAddr != null">
+                rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+            </if>
+            <if test="protocol != null">
+                protocol = #{protocol,jdbcType=VARCHAR},
+            </if>
+            <if test="param != null">
+                param = #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+            </if>
+            <if test="sendTime != null">
+                send_time = #{sendTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="operator != null">
+                `operator` = #{operator,jdbcType=BIGINT},
+            </if>
+            <if test="result != null">
+                `result` = #{result,jdbcType=TINYINT},
+            </if>
+            <if test="resultTime != null">
+                result_time = #{resultTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="resultText != null">
+                result_text = #{resultText,jdbcType=LONGVARCHAR},
+            </if>
+        </set>
+        where com_id = #{comId,jdbcType=BIGINT}
+    </update>
+    <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmCommandHistory">
+        <!--@mbg.generated-->
+        update rm_command_history
+        set command_code = #{commandCode,jdbcType=VARCHAR},
+            command_name = #{commandName,jdbcType=VARCHAR},
+            intake_id    = #{intakeId,jdbcType=BIGINT},
+            rtu_addr     = #{rtuAddr,jdbcType=VARCHAR},
+            protocol     = #{protocol,jdbcType=VARCHAR},
+            param        = #{param,jdbcType= JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+            send_time    = #{sendTime,jdbcType=TIMESTAMP},
+            `operator`   = #{operator,jdbcType=BIGINT},
+            `result`     = #{result,jdbcType=TINYINT},
+            result_time  = #{resultTime,jdbcType=TIMESTAMP},
+            result_text  = #{resultText,jdbcType=LONGVARCHAR}
+        where com_id = #{comId,jdbcType=BIGINT}
+    </update>
 
-  <!--鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍锛堝寘鍚湪绾挎儏鍐碉級-->
-  <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 FROM rm_command_history WHERE rtu_addr = com.rtu_addr ORDER BY send_time desc LIMIT 0,1) AS orderNo
-    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'
+    <!--鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍锛堝寘鍚湪绾挎儏鍐碉級-->
+    <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
+                FROM rm_command_history
+                WHERE rtu_addr = com.rtu_addr
+                ORDER BY send_time desc
+                LIMIT 0,1)                AS orderNo,
+               'toClose'                  AS state
+        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'
-  </select>
+            ) 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'
 
-  <!--鏍规嵁鍙栨按鍙D鑾峰彇璇ュ彇姘村彛鏈叧闃�鍙傛暟-->
-  <select id="getUncloseParam" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedParam">
-    SELECT
-        com.rtu_addr AS rtuAddr,
-        com.param ->>'$.orderNo' AS orderNo,
-        com.param ->>'$.icCardNo' AS vcNum
-    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":"620201000029","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
-            #{onLineMap},
-            '$[*]' COLUMNS(
-                rtuAddr VARCHAR(20) PATH '$.rtuAddr',
-                isOnLine BOOLEAN PATH '$.isOnLine'
+        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(
+                #{onLineMap},
+                '$[*]' COLUMNS (
+                    rtuAddr VARCHAR(20) PATH '$.rtuAddr',
+                    isOnLine BOOLEAN PATH '$.isOnLine'
+                    )
+            ) 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()
+        </where>
+    </select>
+
+    <!--鏍规嵁鍙栨按鍙D鑾峰彇璇ュ彇姘村彛鏈叧闃�鍙傛暟-->
+    <select id="getUncloseParam" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedParam">
+        SELECT com.rtu_addr               AS rtuAddr,
+               com.param ->> '$.orderNo'  AS orderNo,
+               com.param ->> '$.icCardNo' AS vcNum
+        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":"620201000029","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 (com.command_code = '92' OR com.command_code = 'A2' OR com.command_code = '97') AND con.intakeId = #{intakeId}
-    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'
-    )
-    ORDER BY com.send_time DESC
-    LIMIT 0,1
-  </select>
+            ) rtus ON com.rtu_addr = rtus.rtuAddr
+        WHERE (com.command_code = '92' OR com.command_code = 'A2' OR com.command_code = '97')
+          AND con.intakeId = #{intakeId}
+          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'
+            )
+        ORDER BY com.send_time DESC
+        LIMIT 0,1
+    </select>
 
-  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍛戒护鏃ュ織鍘嗗彶璁板綍鎬绘暟-->
-  <select id="getCommandHistoriesCount" resultType="java.lang.Long">
-    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}
-      </if>
-      <if test = "commandName != null and commandName !=''">
-        AND his.command_name LIKE CONCAT('%',#{commandName},'%')
-      </if>
-      <if test = "result != null">
-        AND his.result = #{result}
-      </if>
-      <if test = "timeStart != null and timeStop != null">
-        AND his.send_time BETWEEN #{timeStart} AND #{timeStop}
-      </if>
-    </where>
-  </select>
+    <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍛戒护鏃ュ織鍘嗗彶璁板綍鎬绘暟-->
+    <select id="getCommandHistoriesCount" resultType="java.lang.Long">
+        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}
+            </if>
+            <if test="commandName != null and commandName != ''">
+                AND his.command_name LIKE CONCAT('%', #{commandName}, '%')
+            </if>
+            <if test="result != null">
+                AND his.result = #{result}
+            </if>
+            <if test="timeStart != null and timeStop != null">
+                AND his.send_time BETWEEN #{timeStart} AND #{timeStop}
+            </if>
+        </where>
+    </select>
 
-  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍛戒护鏃ュ織鍘嗗彶璁板綍-->
-  <select id="getCommandHistories" resultType="com.dy.pipIrrGlobal.voRm.VoCommand">
-    SELECT
-        his.com_id AS comId,
-        his.command_name AS commandName,
-        inta.name AS intakeName,
-        his.rtu_addr AS rtuAddr,
-        his.protocol,
-        his.send_time AS sendTime,
-        his.result_time AS resultTime,
-        (CASE
-        WHEN his.result = 1 THEN "鎴愬姛"
-        ELSE "澶辫触"
-        END) AS result,
-        his.result_text,
-        IFNULL(cli.name, user.name) AS userName
-    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}
-      </if>
-      <if test = "commandName != null and commandName !=''">
-        AND his.command_name LIKE CONCAT('%',#{commandName},'%')
-      </if>
-      <if test = "result != null">
-        AND his.result = #{result}
-      </if>
+    <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍛戒护鏃ュ織鍘嗗彶璁板綍-->
+    <select id="getCommandHistories" resultType="com.dy.pipIrrGlobal.voRm.VoCommand">
+        SELECT his.com_id                  AS comId,
+               his.command_name            AS commandName,
+               inta.name                   AS intakeName,
+               his.rtu_addr                AS rtuAddr,
+               his.protocol,
+               his.send_time               AS sendTime,
+               his.result_time             AS resultTime,
+               (CASE
+                    WHEN his.result = 1 THEN '鎴愬姛'
+                    ELSE '澶辫触'
+                   END)                    AS result,
+               his.result_text,
+               IFNULL(cli.name, user.name) AS userName
+        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}
+            </if>
+            <if test="commandName != null and commandName != ''">
+                AND his.command_name LIKE CONCAT('%', #{commandName}, '%')
+            </if>
+            <if test="result != null">
+                AND his.result = #{result}
+            </if>
 
-      <if test = "timeStart != null and timeStop != null">
-        AND his.send_time BETWEEN #{timeStart} AND #{timeStop}
-      </if>
-    </where>
-    ORDER BY his.send_time DESC
-    <trim prefix="limit " >
-      <if test="start != null and count != null">
-        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
-      </if>
-    </trim>
-  </select>
+            <if test="timeStart != null and timeStop != null">
+                AND his.send_time BETWEEN #{timeStart} AND #{timeStop}
+            </if>
+        </where>
+        ORDER BY his.send_time DESC
+        <trim prefix="limit ">
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0