liurunyu
2024-10-24 3a6ac2949244e6a3f70e165cd3802f1d90b78819
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -534,12 +534,12 @@
        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'
            )
                <!--'[{"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
@@ -579,25 +579,25 @@
        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)
            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'
            )
                <!--'[{"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