zhubaomin
2025-02-26 c2028968a72482249491afd2c94fdd583e1eff94
解决控制器报警与状态的bug
1个文件已修改
221 ■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml 221 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
@@ -350,12 +350,12 @@
        where id = #{id,jdbcType=BIGINT}
    </update>
    <!--根据指定条件获取记录总数-->
<select id="getRecordCount" resultType="java.lang.Long">
    select count(*)
    from rm_alarm_state_history rash
    Left join pr_intake pint on rash.intake_id = pint.id
    <where>
       <if test="alarmState == 1">
    <select id="getRecordCount" resultType="java.lang.Long">
        select count(*)
        from rm_alarm_state_history rash
                 Left join pr_intake pint on rash.intake_id = pint.id
        <where>
            <if test="alarmState == 1">
                and (
                    alarm_remain_water = 1
                    or alarm0_water_remain = 1
@@ -373,124 +373,123 @@
                    or alarm_battery_volt = 1
                    or alarm_valve = 1
                )
       </if>
       <if test="alarmState == 0">
           and (
                alarm_remain_water = 0
                and alarm0_water_remain = 0
                and alarm_exceed_year = 0
                and alarm_water_meter_fault = 0
                and alarm_loss = 0
                and alarm_water_meter_break = 0
                and alarm_ele_meter_fault = 0
                and alarm0_money_remain = 0
                and alarm_inner_door = 0
                and alarm_outer_door = 0
                and alarm_ele_miss = 0
                and alarm_ele_exceed = 0
                and alarm_ele_low_volt = 0
                and alarm_battery_volt = 0
                and alarm_valve = 0
                )
        </if>
        <if test="valveState != null">
            and rash.valve_state = #{valveState,jdbcType=TINYINT}
        </if>
        <if test="intakeId != null and intakeId != '' ">
            and rash.intake_id = #{intakeId}
        </if>
        <if test="intakeName != null and intakeName != '' ">
            and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
        </if>
        <if test="startDt != null and startDt != ''">
            and rasl.dt &gt;= #{startDt,jdbcType=TIMESTAMP}
        </if>
        <if test="endDt != null and endDt != ''">
            and rasl.dt &lt;= #{endDt,jdbcType=TIMESTAMP}
        </if>
        </where>
    </select>
    <!--根据指定条件获取记录-->
    <select id="getControllerAlarmStateHistory" resultType="com.dy.pipIrrGlobal.voRm.VoControllerAlarmState">
        select
        CAST(rash.controller_id AS char)AS controllerId,
        CAST(rash.intake_id AS char)AS intakeId,
        pint.name as intakeName,
        rash.rtu_addr as rtuAddr,
        rash.dt as dt,
        rash.valve_state as valveState,
        rash.alarm_remain_water as alarmRemainWater,
        rash.alarm0_water_remain as alarm0WaterRemain,
        rash.alarm_exceed_year as alarmExceedYear,
        rash.alarm_water_meter_fault as alarmWaterMeterFault,
        rash.alarm_loss as alarmLoss,
        rash.alarm_water_meter_break as alarmWaterMeterBreak,
        rash.alarm_ele_meter_fault as alarmEleMeterFault,
        rash.alarm0_money_remain as alarm0MoneyRemain,
        rash.alarm_inner_door as alarmInnerDoor,
        rash.alarm_outer_door as alarmOuterDoor,
        rash.alarm_ele_miss as alarmEleMiss,
        rash.alarm_ele_exceed as alarmEleExceed,
        rash.alarm_ele_low_volt as alarmEleLowVolt,
        rash.state_ic_enable as stateIcEnable,
        rash.alarm_battery_volt as alarmBatteryVolt,
        rash.alarm_valve as alarmValve,
        rash.power_type as powerType
        from rm_alarm_state_history rash
        Left join pr_intake pint on rash.intake_id = pint.id
        <where>
            <if test="alarmState == 1">
                and (
                alarm_remain_water = 1
                or alarm0_water_remain = 1
                or alarm_exceed_year = 1
                or alarm_water_meter_fault = 1
                or alarm_loss = 1
                or alarm_water_meter_break = 1
                or alarm_ele_meter_fault = 1
                or alarm0_money_remain = 1
                or alarm_inner_door = 1
                or alarm_outer_door = 1
                or alarm_ele_miss = 1
                or alarm_ele_exceed = 1
                or alarm_ele_low_volt = 1
                or alarm_battery_volt = 1
                or alarm_valve = 1
                )
            </if>
            <if test="alarmState == 0">
                and (
                alarm_remain_water = 0
                and alarm0_water_remain = 0
                and alarm_exceed_year = 0
                and alarm_water_meter_fault = 0
                and alarm_loss = 0
                and alarm_water_meter_break = 0
                and alarm_ele_meter_fault = 0
                and alarm0_money_remain = 0
                and alarm_inner_door = 0
                and alarm_outer_door = 0
                and alarm_ele_miss = 0
                and alarm_ele_exceed = 0
                and alarm_ele_low_volt = 0
                and alarm_battery_volt = 0
                and alarm_valve = 0
                )
                        alarm_remain_water = 0
                        and alarm0_water_remain = 0
                        and alarm_exceed_year = 0
                        and alarm_water_meter_fault = 0
                        and alarm_loss = 0
                        and alarm_water_meter_break = 0
                        and alarm_ele_meter_fault = 0
                        and alarm0_money_remain = 0
                        and alarm_inner_door = 0
                        and alarm_outer_door = 0
                        and alarm_ele_miss = 0
                        and alarm_ele_exceed = 0
                        and alarm_ele_low_volt = 0
                        and alarm_battery_volt = 0
                        and alarm_valve = 0
                    )
            </if>
            <if test="valveState != null">
                and rash.valve_state = #{valveState,jdbcType=TINYINT}
            </if>
            <if test="intakeId != null and intakeId != '' ">
            <if test="intakeId != null and intakeId != ''">
                and rash.intake_id = #{intakeId}
            </if>
            <if test="intakeName != null and intakeName != '' ">
                and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
            <if test="intakeName != null and intakeName != ''">
                and pint.name like CONCAT('%', #{intakeName,jdbcType=VARCHAR}, '%')
            </if>
            <if test="startDt != null and startDt != ''">
                and rasl.dt &gt;= #{startDt,jdbcType=TIMESTAMP}
                and rash.dt &gt;= #{startDt,jdbcType=TIMESTAMP}
            </if>
            <if test="endDt != null and endDt != ''">
                and rasl.dt &lt;= #{endDt,jdbcType=TIMESTAMP}
                and rash.dt &lt;= #{endDt,jdbcType=TIMESTAMP}
            </if>
        </where>
    </select>
    <!--根据指定条件获取记录-->
    <select id="getControllerAlarmStateHistory" resultType="com.dy.pipIrrGlobal.voRm.VoControllerAlarmState">
        select CAST(rash.controller_id AS char) AS controllerId,
               CAST(rash.intake_id AS char)     AS intakeId,
               pint.name                        as intakeName,
               rash.rtu_addr                    as rtuAddr,
               rash.dt                          as dt,
               rash.valve_state                 as valveState,
               rash.alarm_remain_water          as alarmRemainWater,
               rash.alarm0_water_remain         as alarm0WaterRemain,
               rash.alarm_exceed_year           as alarmExceedYear,
               rash.alarm_water_meter_fault     as alarmWaterMeterFault,
               rash.alarm_loss                  as alarmLoss,
               rash.alarm_water_meter_break     as alarmWaterMeterBreak,
               rash.alarm_ele_meter_fault       as alarmEleMeterFault,
               rash.alarm0_money_remain         as alarm0MoneyRemain,
               rash.alarm_inner_door            as alarmInnerDoor,
               rash.alarm_outer_door            as alarmOuterDoor,
               rash.alarm_ele_miss              as alarmEleMiss,
               rash.alarm_ele_exceed            as alarmEleExceed,
               rash.alarm_ele_low_volt          as alarmEleLowVolt,
               rash.state_ic_enable             as stateIcEnable,
               rash.alarm_battery_volt          as alarmBatteryVolt,
               rash.alarm_valve                 as alarmValve,
               rash.power_type                  as powerType
        from rm_alarm_state_history rash
                 Left join pr_intake pint on rash.intake_id = pint.id
        <where>
            <if test="alarmState == 1">
                and (
                    alarm_remain_water = 1
                    or alarm0_water_remain = 1
                    or alarm_exceed_year = 1
                    or alarm_water_meter_fault = 1
                    or alarm_loss = 1
                    or alarm_water_meter_break = 1
                    or alarm_ele_meter_fault = 1
                    or alarm0_money_remain = 1
                    or alarm_inner_door = 1
                    or alarm_outer_door = 1
                    or alarm_ele_miss = 1
                    or alarm_ele_exceed = 1
                    or alarm_ele_low_volt = 1
                    or alarm_battery_volt = 1
                    or alarm_valve = 1
                )
            </if>
            <if test="alarmState == 0">
                and (
                        alarm_remain_water = 0
                        and alarm0_water_remain = 0
                        and alarm_exceed_year = 0
                        and alarm_water_meter_fault = 0
                        and alarm_loss = 0
                        and alarm_water_meter_break = 0
                        and alarm_ele_meter_fault = 0
                        and alarm0_money_remain = 0
                        and alarm_inner_door = 0
                        and alarm_outer_door = 0
                        and alarm_ele_miss = 0
                        and alarm_ele_exceed = 0
                        and alarm_ele_low_volt = 0
                        and alarm_battery_volt = 0
                        and alarm_valve = 0
                    )
            </if>
            <if test="valveState != null">
                and rash.valve_state = #{valveState,jdbcType=TINYINT}
            </if>
            <if test="intakeId != null and intakeId != ''">
                and rash.intake_id = #{intakeId}
            </if>
            <if test="intakeName != null and intakeName != ''">
                and pint.name like CONCAT('%', #{intakeName,jdbcType=VARCHAR}, '%')
            </if>
            <if test="startDt != null and startDt != ''">
                and rash.dt &gt;= #{startDt,jdbcType=TIMESTAMP}
            </if>
            <if test="endDt != null and endDt != ''">
                and rash.dt &lt;= #{endDt,jdbcType=TIMESTAMP}
            </if>
        </where>
        ORDER BY rash.id DESC