wuzeyu
2024-07-23 b349b13e37bba4440e5787567ca4551a75d32f62
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
@@ -31,10 +31,30 @@
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, controller_id, intake_id, rtu_addr, dt, rtu_dt, valve_state, alarm_remain_water,
    alarm0_water_remain, alarm_exceed_year, alarm_water_meter_fault, alarm_loss, alarm_water_meter_break,
    alarm_ele_meter_fault, alarm0_money_remain, alarm_inner_door, alarm_outer_door, alarm_ele_miss,
    alarm_ele_exceed, alarm_ele_low_volt, state_ic_enable,alarm_battery_volt,alarm_valve,power_type
        id,
        controller_id,
        intake_id,
        rtu_addr,
        dt,
        rtu_dt,
        valve_state,
        alarm_remain_water,
        alarm0_water_remain,
        alarm_exceed_year,
        alarm_water_meter_fault,
        alarm_loss,
        alarm_water_meter_break,
        alarm_ele_meter_fault,
        alarm0_money_remain,
        alarm_inner_door,
        alarm_outer_door,
        alarm_ele_miss,
        alarm_ele_exceed,
        alarm_ele_low_volt,
        state_ic_enable,
        alarm_battery_volt,
        alarm_valve,
        power_type
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
    <!--@mbg.generated-->
@@ -45,7 +65,8 @@
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
    <!--@mbg.generated-->
    delete from rm_alarm_state_history
        delete
        from rm_alarm_state_history
    where id = #{id,jdbcType=BIGINT}
  </delete>
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory">
@@ -60,11 +81,15 @@
      state_ic_enable,alarm_battery_volt,alarm_valve,power_type)
    values (#{id,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, 
      #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=TIMESTAMP}, #{rtuDt,jdbcType=TIMESTAMP}, 
      #{valveState,jdbcType=TINYINT}, #{alarmRemainWater,jdbcType=TINYINT}, #{alarm0WaterRemain,jdbcType=TINYINT},
                #{valveState,jdbcType=TINYINT}, #{alarmRemainWater,jdbcType=TINYINT},
                #{alarm0WaterRemain,jdbcType=TINYINT},
      #{alarmExceedYear,jdbcType=TINYINT}, #{alarmWaterMeterFault,jdbcType=TINYINT}, 
      #{alarmLoss,jdbcType=TINYINT}, #{alarmWaterMeterBreak,jdbcType=TINYINT}, #{alarmEleMeterFault,jdbcType=TINYINT},
      #{alarm0MoneyRemain,jdbcType=TINYINT}, #{alarmInnerDoor,jdbcType=TINYINT}, #{alarmOuterDoor,jdbcType=TINYINT},
      #{alarmEleMiss,jdbcType=TINYINT}, #{alarmEleExceed,jdbcType=TINYINT}, #{alarmEleLowVolt,jdbcType=TINYINT},
                #{alarmLoss,jdbcType=TINYINT}, #{alarmWaterMeterBreak,jdbcType=TINYINT},
                #{alarmEleMeterFault,jdbcType=TINYINT},
                #{alarm0MoneyRemain,jdbcType=TINYINT}, #{alarmInnerDoor,jdbcType=TINYINT},
                #{alarmOuterDoor,jdbcType=TINYINT},
                #{alarmEleMiss,jdbcType=TINYINT}, #{alarmEleExceed,jdbcType=TINYINT},
                #{alarmEleLowVolt,jdbcType=TINYINT},
      #{stateIcEnable,jdbcType=TINYINT}, #{alarmBatteryVolt,jdbcType=TINYINT}, #{alarmValve,jdbcType=TINYINT},
      #{powerType,jdbcType=TINYINT})
  </insert>
@@ -324,4 +349,147 @@
      power_type = #{powerType,jdbcType=TINYINT}
    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 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="intakeName != null">
             and pint.name = #{intakeName,jdbcType=VARCHAR}
        </if>
        <if test="startDt != null">
             and rash.dt &gt;= #{startDt,jdbcType=TIMESTAMP}
        </if>
        <if test="endDt != null">
             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 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="intakeName != null">
                and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
            </if>
            <if test="startDt != null">
                and rash.dt &gt;= #{startDt,jdbcType=TIMESTAMP}
            </if>
            <if test="endDt != null">
                and rash.dt &lt;= #{endDt,jdbcType=TIMESTAMP}
            </if>
        </where>
        ORDER BY rash.dt DESC
        <if test="pageCurr != null and pageSize != null">
            LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
        </if>
    </select>
</mapper>