zhubaomin
2024-11-13 ba2c5cb35e1bd1a81bf4027b7aeab16a0a26bb05
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,25 @@
            ) 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)-->
                AND dt > com.send_time
            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)-->
                AND dt > com.send_time
            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 +243,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,9 +257,8 @@
                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>
    <!--根据取水口ID获取该取水口未关阀参数-->
@@ -338,4 +352,12 @@
            </if>
        </trim>
    </select>
    <!--根据命令日志ID获取预约时间,向虚拟卡写开阀时间用-->
    <select id="getTimeByCommId" resultType="java.lang.String">
        SELECT
            CONCAT(param ->> '$.year', '-', param ->> '$.month', '-', param ->> '$.day', ' ',  param ->> '$.hour', ':', param ->> '$.minute', ':00') AS openTime
        FROM rm_command_history
        WHERE com_id = #{commId}
    </select>
</mapper>