From b349b13e37bba4440e5787567ca4551a75d32f62 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期二, 23 七月 2024 15:34:17 +0800
Subject: [PATCH] 控制器报警与状态查询(历史) 控制器报警与状态查询(最新)

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoControllerAlarmState.java                                  |   92 ++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml                                                |  143 ++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/ControllerAlarmStateSv.java   |   69 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateHistoryMapper.java                              |   18 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java                                 |   18 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/QueryVo.java                  |   44 ++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml                                             |  768 ++++++++++++++++++++++--------------
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/ControllerAlarmStateCtrl.java |   96 ++++
 8 files changed, 947 insertions(+), 301 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateHistoryMapper.java
index bb0bf4c..b3bf500 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateHistoryMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateHistoryMapper.java
@@ -2,7 +2,11 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory;
+import com.dy.pipIrrGlobal.voRm.VoControllerAlarmState;
 import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @Author: liurunyu
@@ -58,4 +62,18 @@
      * @return update count
      */
     int updateByPrimaryKey(RmAlarmStateHistory record);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍鎬绘暟
+     * @param params
+     * @return
+     */
+    Long getRecordCount(Map<?, ?> params);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍
+     * @param params
+     * @return
+     */
+    List<VoControllerAlarmState> getControllerAlarmStateHistory(Map<?, ?> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java
index c8b29d0..6730a34 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java
@@ -2,10 +2,11 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast;
-import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay;
+import com.dy.pipIrrGlobal.voRm.VoControllerAlarmState;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Author: liurunyu
@@ -69,4 +70,19 @@
      * @return object by intakeId
      */
     List<RmAlarmStateLast> selectByIntakeId(Long intakeId);
+
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍鎬绘暟
+     * @param params
+     * @return
+     */
+    Long getRecordCount(Map<?, ?> params);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍
+     * @param params
+     * @return
+     */
+    List<VoControllerAlarmState> getControllerAlarmStateLast(Map<?, ?> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoControllerAlarmState.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoControllerAlarmState.java
new file mode 100644
index 0000000..54cf440
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoControllerAlarmState.java
@@ -0,0 +1,92 @@
+package com.dy.pipIrrGlobal.voRm;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/7/23  8:39
+ * @LastEditTime :2024/7/23  8:39
+ * @Description
+ */
+@Data
+@Schema(title = "鎺у埗鍣ㄦ姤璀︿笌鐘舵�佽鍥惧璞�")
+public class VoControllerAlarmState {
+
+    private static final long serialVersionUID = 202407230842001L;
+
+    @Schema(description = "鎺у埗鍣↖D")
+    private String controllerId;
+
+    @Schema(description = "鍙栨按鍙D")
+    private String intakeId;
+
+    @Schema(description = "鍙栨按鍙e悕绉�")
+    private String intakeName;
+
+    @Schema(description = "鎺у埗鍣ㄥ湴鍧�")
+    private String rtuAddr;
+
+    @Schema(description = "涓婃姤鏃ユ湡鏃堕棿")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date dt;
+
+    @Schema(description = "鐘舵��-闃�闂�/娉碉紙0鎵撳紑銆�1鍏抽棴锛�")
+    private Byte valveState;
+
+    @Schema(description = "鍓╀綑姘撮噺灏忎簬鎶ヨ涓婇檺鎶ヨ鎶ヨ锛�1锛氭姤璀︼紝 0锛氭甯�)")
+    private Byte alarmRemainWater;
+
+    @Schema(description = "鍓╀綑姘撮噺涓�0鍏虫车/闃�(1锛氬叧娉碉紝0锛氭甯�)")
+    private Byte alarm0WaterRemain;
+
+    @Schema(description = "骞寸敤姘撮噺澶т簬闄愬埗姘撮噺鎶ヨ(1锛氭姤璀� 0锛氭甯�)")
+    private Byte alarmExceedYear;
+
+    @Schema(description = "娴侀噺璁℃晠闅�(1锛氭姤璀︼紝0锛氭甯�)")
+    private Byte alarmWaterMeterFault;
+
+    @Schema(description = "婕忔崯(鍋锋按)鎶ヨ(1锛氭姤璀︼紝 0锛氭甯�)")
+    private Byte alarmLoss;
+
+    @Schema(description = "娴侀噺璁℃崯鍧�(姝e父閫氳浣嗙灛鏃朵负0)鎶ヨ(1锛氭姤璀︼紝0锛氭甯�)")
+    private Byte alarmWaterMeterBreak;
+
+    @Schema(description = "鐢佃〃鏁呴殰鎶ヨ(1锛氭姤璀︼紝0锛氭甯�)")
+    private Byte alarmEleMeterFault;
+
+    @Schema(description = "鍓╀綑閲戦涓�0(1锛氭姤璀︼紝0锛氭甯�)")
+    private Byte alarm0MoneyRemain;
+
+    @Schema(description = "鎺у埗鍣ㄥ唴闂ㄦ姤璀�(1锛氭姤璀︼紝0锛氭甯�)")
+    private Byte alarmInnerDoor;
+
+    @Schema(description = "鎺у埗鍣ㄥ闂ㄦ墦寮�鎶ヨ(1锛氭姤璀︼紝0锛氭甯�)")
+    private Byte alarmOuterDoor;
+
+    @Schema(description = "浜ゆ祦缂洪」鎶ヨ(1锛氭姤璀︼紝0锛氭甯�)")
+    private Byte alarmEleMiss;
+
+    @Schema(description = "浜ゆ祦杩囨祦鎶ヨ(1锛氭姤璀︼紝0锛氭甯�)")
+    private Byte alarmEleExceed;
+
+    @Schema(description = "涓夌浉鐢垫瑺鍘嬫姤璀�(1锛氭姤璀︼紝0锛氭甯�)")
+    private Byte alarmEleLowVolt;
+
+    @Schema(description = "IC鍗$姸鎬�(1銆佹湁鏁堬紝0锛氭棤鏁�)")
+    private Byte stateIcEnable;
+
+    @Schema(description = "鐢垫睜鐢靛帇鎶ヨ锛�1锛氭姤璀︼紝0锛氭甯革級")
+    private Byte alarmBatteryVolt;
+
+    @Schema(description = "闃�闂ㄦ姤璀︼紙1锛氭姤璀︼紝0锛氭甯革級")
+    private Byte alarmValve;
+
+    @Schema(description = "渚涚數鏂瑰紡锛�0: 220V锛�1锛氳搫鐢垫睜锛�")
+    private Byte powerType;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
index dcddb9b..069917c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
@@ -1,327 +1,495 @@
 <?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.RmAlarmStateHistoryMapper">
-  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory">
-    <!--@mbg.generated-->
-    <!--@Table rm_alarm_state_history-->
-    <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="controller_id" jdbcType="BIGINT" property="controllerId" />
-    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
-    <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr" />
-    <result column="dt" jdbcType="TIMESTAMP" property="dt" />
-    <result column="rtu_dt" jdbcType="TIMESTAMP" property="rtuDt" />
-    <result column="valve_state" jdbcType="TINYINT" property="valveState" />
-    <result column="alarm_remain_water" jdbcType="TINYINT" property="alarmRemainWater" />
-    <result column="alarm0_water_remain" jdbcType="TINYINT" property="alarm0WaterRemain" />
-    <result column="alarm_exceed_year" jdbcType="TINYINT" property="alarmExceedYear" />
-    <result column="alarm_water_meter_fault" jdbcType="TINYINT" property="alarmWaterMeterFault" />
-    <result column="alarm_loss" jdbcType="TINYINT" property="alarmLoss" />
-    <result column="alarm_water_meter_break" jdbcType="TINYINT" property="alarmWaterMeterBreak" />
-    <result column="alarm_ele_meter_fault" jdbcType="TINYINT" property="alarmEleMeterFault" />
-    <result column="alarm0_money_remain" jdbcType="TINYINT" property="alarm0MoneyRemain" />
-    <result column="alarm_inner_door" jdbcType="TINYINT" property="alarmInnerDoor" />
-    <result column="alarm_outer_door" jdbcType="TINYINT" property="alarmOuterDoor" />
-    <result column="alarm_ele_miss" jdbcType="TINYINT" property="alarmEleMiss" />
-    <result column="alarm_ele_exceed" jdbcType="TINYINT" property="alarmEleExceed" />
-    <result column="alarm_ele_low_volt" jdbcType="TINYINT" property="alarmEleLowVolt" />
-    <result column="state_ic_enable" jdbcType="TINYINT" property="stateIcEnable" />
-    <result column="alarm_battery_volt" jdbcType="TINYINT" property="alarmBatteryVolt" />
-    <result column="alarm_valve" jdbcType="TINYINT" property="alarmValve" />
-    <result column="power_type" jdbcType="TINYINT" property="powerType" />
-  </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
-  </sql>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from rm_alarm_state_history
-    where id = #{id,jdbcType=BIGINT}
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from rm_alarm_state_history
-    where id = #{id,jdbcType=BIGINT}
-  </delete>
-  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory">
-    <!--@mbg.generated-->
-    insert into rm_alarm_state_history (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)
-    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}, 
-      #{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}, 
-      #{stateIcEnable,jdbcType=TINYINT}, #{alarmBatteryVolt,jdbcType=TINYINT}, #{alarmValve,jdbcType=TINYINT},
-      #{powerType,jdbcType=TINYINT})
-  </insert>
-  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory">
-    <!--@mbg.generated-->
-    insert into rm_alarm_state_history
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
+    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory">
+        <!--@mbg.generated-->
+        <!--@Table rm_alarm_state_history-->
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="controller_id" jdbcType="BIGINT" property="controllerId"/>
+        <result column="intake_id" jdbcType="BIGINT" property="intakeId"/>
+        <result column="rtu_addr" jdbcType="VARCHAR" property="rtuAddr"/>
+        <result column="dt" jdbcType="TIMESTAMP" property="dt"/>
+        <result column="rtu_dt" jdbcType="TIMESTAMP" property="rtuDt"/>
+        <result column="valve_state" jdbcType="TINYINT" property="valveState"/>
+        <result column="alarm_remain_water" jdbcType="TINYINT" property="alarmRemainWater"/>
+        <result column="alarm0_water_remain" jdbcType="TINYINT" property="alarm0WaterRemain"/>
+        <result column="alarm_exceed_year" jdbcType="TINYINT" property="alarmExceedYear"/>
+        <result column="alarm_water_meter_fault" jdbcType="TINYINT" property="alarmWaterMeterFault"/>
+        <result column="alarm_loss" jdbcType="TINYINT" property="alarmLoss"/>
+        <result column="alarm_water_meter_break" jdbcType="TINYINT" property="alarmWaterMeterBreak"/>
+        <result column="alarm_ele_meter_fault" jdbcType="TINYINT" property="alarmEleMeterFault"/>
+        <result column="alarm0_money_remain" jdbcType="TINYINT" property="alarm0MoneyRemain"/>
+        <result column="alarm_inner_door" jdbcType="TINYINT" property="alarmInnerDoor"/>
+        <result column="alarm_outer_door" jdbcType="TINYINT" property="alarmOuterDoor"/>
+        <result column="alarm_ele_miss" jdbcType="TINYINT" property="alarmEleMiss"/>
+        <result column="alarm_ele_exceed" jdbcType="TINYINT" property="alarmEleExceed"/>
+        <result column="alarm_ele_low_volt" jdbcType="TINYINT" property="alarmEleLowVolt"/>
+        <result column="state_ic_enable" jdbcType="TINYINT" property="stateIcEnable"/>
+        <result column="alarm_battery_volt" jdbcType="TINYINT" property="alarmBatteryVolt"/>
+        <result column="alarm_valve" jdbcType="TINYINT" property="alarmValve"/>
+        <result column="power_type" jdbcType="TINYINT" property="powerType"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
         id,
-      </if>
-      <if test="controllerId != null">
         controller_id,
-      </if>
-      <if test="intakeId != null">
         intake_id,
-      </if>
-      <if test="rtuAddr != null">
         rtu_addr,
-      </if>
-      <if test="dt != null">
         dt,
-      </if>
-      <if test="rtuDt != null">
         rtu_dt,
-      </if>
-      <if test="valveState != null">
         valve_state,
-      </if>
-      <if test="alarmRemainWater != null">
         alarm_remain_water,
-      </if>
-      <if test="alarm0WaterRemain != null">
         alarm0_water_remain,
-      </if>
-      <if test="alarmExceedYear != null">
         alarm_exceed_year,
-      </if>
-      <if test="alarmWaterMeterFault != null">
         alarm_water_meter_fault,
-      </if>
-      <if test="alarmLoss != null">
         alarm_loss,
-      </if>
-      <if test="alarmWaterMeterBreak != null">
         alarm_water_meter_break,
-      </if>
-      <if test="alarmEleMeterFault != null">
         alarm_ele_meter_fault,
-      </if>
-      <if test="alarm0MoneyRemain != null">
         alarm0_money_remain,
-      </if>
-      <if test="alarmInnerDoor != null">
         alarm_inner_door,
-      </if>
-      <if test="alarmOuterDoor != null">
         alarm_outer_door,
-      </if>
-      <if test="alarmEleMiss != null">
         alarm_ele_miss,
-      </if>
-      <if test="alarmEleExceed != null">
         alarm_ele_exceed,
-      </if>
-      <if test="alarmEleLowVolt != null">
         alarm_ele_low_volt,
-      </if>
-      <if test="stateIcEnable != null">
         state_ic_enable,
-      </if>
-      <if test="alarmBatteryVolt != null">
         alarm_battery_volt,
-      </if>
-      <if test="alarmValve != null">
         alarm_valve,
-      </if>
-      <if test="powerType != null">
-        power_type,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        #{id,jdbcType=BIGINT},
-      </if>
-      <if test="controllerId != null">
-        #{controllerId,jdbcType=BIGINT},
-      </if>
-      <if test="intakeId != null">
-        #{intakeId,jdbcType=BIGINT},
-      </if>
-      <if test="rtuAddr != null">
-        #{rtuAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="dt != null">
-        #{dt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="rtuDt != null">
-        #{rtuDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="valveState != null">
-        #{valveState,jdbcType=TINYINT},
-      </if>
-      <if test="alarmRemainWater != null">
-        #{alarmRemainWater,jdbcType=TINYINT},
-      </if>
-      <if test="alarm0WaterRemain != null">
-        #{alarm0WaterRemain,jdbcType=TINYINT},
-      </if>
-      <if test="alarmExceedYear != null">
-        #{alarmExceedYear,jdbcType=TINYINT},
-      </if>
-      <if test="alarmWaterMeterFault != null">
-        #{alarmWaterMeterFault,jdbcType=TINYINT},
-      </if>
-      <if test="alarmLoss != null">
-        #{alarmLoss,jdbcType=TINYINT},
-      </if>
-      <if test="alarmWaterMeterBreak != null">
-        #{alarmWaterMeterBreak,jdbcType=TINYINT},
-      </if>
-      <if test="alarmEleMeterFault != null">
-        #{alarmEleMeterFault,jdbcType=TINYINT},
-      </if>
-      <if test="alarm0MoneyRemain != null">
-        #{alarm0MoneyRemain,jdbcType=TINYINT},
-      </if>
-      <if test="alarmInnerDoor != null">
-        #{alarmInnerDoor,jdbcType=TINYINT},
-      </if>
-      <if test="alarmOuterDoor != null">
-        #{alarmOuterDoor,jdbcType=TINYINT},
-      </if>
-      <if test="alarmEleMiss != null">
-        #{alarmEleMiss,jdbcType=TINYINT},
-      </if>
-      <if test="alarmEleExceed != null">
-        #{alarmEleExceed,jdbcType=TINYINT},
-      </if>
-      <if test="alarmEleLowVolt != null">
-        #{alarmEleLowVolt,jdbcType=TINYINT},
-      </if>
-      <if test="stateIcEnable != null">
-        #{stateIcEnable,jdbcType=TINYINT},
-      </if>
-      <if test="alarmBatteryVolt != null">
-        #{alarmBatteryVolt,jdbcType=TINYINT},
-      </if>
-      <if test="alarmValve != null">
-        #{alarmValve,jdbcType=TINYINT},
-      </if>
-     <if test="powerType != null">
-        #{powerType,jdbcType=TINYINT},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory">
-    <!--@mbg.generated-->
-    update rm_alarm_state_history
-    <set>
-      <if test="controllerId != null">
-        controller_id = #{controllerId,jdbcType=BIGINT},
-      </if>
-      <if test="intakeId != null">
-        intake_id = #{intakeId,jdbcType=BIGINT},
-      </if>
-      <if test="rtuAddr != null">
-        rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      </if>
-      <if test="dt != null">
-        dt = #{dt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="rtuDt != null">
-        rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
-      </if>
-      <if test="valveState != null">
-        valve_state = #{valveState,jdbcType=TINYINT},
-      </if>
-      <if test="alarmRemainWater != null">
-        alarm_remain_water = #{alarmRemainWater,jdbcType=TINYINT},
-      </if>
-      <if test="alarm0WaterRemain != null">
-        alarm0_water_remain = #{alarm0WaterRemain,jdbcType=TINYINT},
-      </if>
-      <if test="alarmExceedYear != null">
-        alarm_exceed_year = #{alarmExceedYear,jdbcType=TINYINT},
-      </if>
-      <if test="alarmWaterMeterFault != null">
-        alarm_water_meter_fault = #{alarmWaterMeterFault,jdbcType=TINYINT},
-      </if>
-      <if test="alarmLoss != null">
-        alarm_loss = #{alarmLoss,jdbcType=TINYINT},
-      </if>
-      <if test="alarmWaterMeterBreak != null">
-        alarm_water_meter_break = #{alarmWaterMeterBreak,jdbcType=TINYINT},
-      </if>
-      <if test="alarmEleMeterFault != null">
-        alarm_ele_meter_fault = #{alarmEleMeterFault,jdbcType=TINYINT},
-      </if>
-      <if test="alarm0MoneyRemain != null">
-        alarm0_money_remain = #{alarm0MoneyRemain,jdbcType=TINYINT},
-      </if>
-      <if test="alarmInnerDoor != null">
-        alarm_inner_door = #{alarmInnerDoor,jdbcType=TINYINT},
-      </if>
-      <if test="alarmOuterDoor != null">
-        alarm_outer_door = #{alarmOuterDoor,jdbcType=TINYINT},
-      </if>
-      <if test="alarmEleMiss != null">
-        alarm_ele_miss = #{alarmEleMiss,jdbcType=TINYINT},
-      </if>
-      <if test="alarmEleExceed != null">
-        alarm_ele_exceed = #{alarmEleExceed,jdbcType=TINYINT},
-      </if>
-      <if test="alarmEleLowVolt != null">
-        alarm_ele_low_volt = #{alarmEleLowVolt,jdbcType=TINYINT},
-      </if>
-      <if test="stateIcEnable != null">
-        state_ic_enable = #{stateIcEnable,jdbcType=TINYINT},
-      </if>
-      <if test="alarmBatteryVolt != null">
-        alarm_battery_volt = #{alarmBatteryVolt,jdbcType=TINYINT},
-      </if>
-     <if test="alarmValve != null">
-        alarm_valve = #{alarmValve,jdbcType=TINYINT},
-      </if>
-    <if test="powerType != null">
-        power_type = #{powerType,jdbcType=TINYINT},
-      </if>
-    </set>
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory">
-    <!--@mbg.generated-->
-    update rm_alarm_state_history
-    set controller_id = #{controllerId,jdbcType=BIGINT},
-      intake_id = #{intakeId,jdbcType=BIGINT},
-      rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
-      dt = #{dt,jdbcType=TIMESTAMP},
-      rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
-      valve_state = #{valveState,jdbcType=TINYINT},
-      alarm_remain_water = #{alarmRemainWater,jdbcType=TINYINT},
-      alarm0_water_remain = #{alarm0WaterRemain,jdbcType=TINYINT},
-      alarm_exceed_year = #{alarmExceedYear,jdbcType=TINYINT},
-      alarm_water_meter_fault = #{alarmWaterMeterFault,jdbcType=TINYINT},
-      alarm_loss = #{alarmLoss,jdbcType=TINYINT},
-      alarm_water_meter_break = #{alarmWaterMeterBreak,jdbcType=TINYINT},
-      alarm_ele_meter_fault = #{alarmEleMeterFault,jdbcType=TINYINT},
-      alarm0_money_remain = #{alarm0MoneyRemain,jdbcType=TINYINT},
-      alarm_inner_door = #{alarmInnerDoor,jdbcType=TINYINT},
-      alarm_outer_door = #{alarmOuterDoor,jdbcType=TINYINT},
-      alarm_ele_miss = #{alarmEleMiss,jdbcType=TINYINT},
-      alarm_ele_exceed = #{alarmEleExceed,jdbcType=TINYINT},
-      alarm_ele_low_volt = #{alarmEleLowVolt,jdbcType=TINYINT},
-      state_ic_enable = #{stateIcEnable,jdbcType=TINYINT},
-      alarm_battery_volt = #{alarmBatteryVolt,jdbcType=TINYINT},
-      alarm_valve = #{alarmValve,jdbcType=TINYINT},
-      power_type = #{powerType,jdbcType=TINYINT}
-    where id = #{id,jdbcType=BIGINT}
-  </update>
+        power_type
+    </sql>
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from rm_alarm_state_history
+        where id = #{id,jdbcType=BIGINT}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        delete
+        from rm_alarm_state_history
+        where id = #{id,jdbcType=BIGINT}
+    </delete>
+    <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory">
+        <!--@mbg.generated-->
+        insert into rm_alarm_state_history (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)
+        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},
+                #{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},
+                #{stateIcEnable,jdbcType=TINYINT}, #{alarmBatteryVolt,jdbcType=TINYINT}, #{alarmValve,jdbcType=TINYINT},
+                #{powerType,jdbcType=TINYINT})
+    </insert>
+    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory">
+        <!--@mbg.generated-->
+        insert into rm_alarm_state_history
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                id,
+            </if>
+            <if test="controllerId != null">
+                controller_id,
+            </if>
+            <if test="intakeId != null">
+                intake_id,
+            </if>
+            <if test="rtuAddr != null">
+                rtu_addr,
+            </if>
+            <if test="dt != null">
+                dt,
+            </if>
+            <if test="rtuDt != null">
+                rtu_dt,
+            </if>
+            <if test="valveState != null">
+                valve_state,
+            </if>
+            <if test="alarmRemainWater != null">
+                alarm_remain_water,
+            </if>
+            <if test="alarm0WaterRemain != null">
+                alarm0_water_remain,
+            </if>
+            <if test="alarmExceedYear != null">
+                alarm_exceed_year,
+            </if>
+            <if test="alarmWaterMeterFault != null">
+                alarm_water_meter_fault,
+            </if>
+            <if test="alarmLoss != null">
+                alarm_loss,
+            </if>
+            <if test="alarmWaterMeterBreak != null">
+                alarm_water_meter_break,
+            </if>
+            <if test="alarmEleMeterFault != null">
+                alarm_ele_meter_fault,
+            </if>
+            <if test="alarm0MoneyRemain != null">
+                alarm0_money_remain,
+            </if>
+            <if test="alarmInnerDoor != null">
+                alarm_inner_door,
+            </if>
+            <if test="alarmOuterDoor != null">
+                alarm_outer_door,
+            </if>
+            <if test="alarmEleMiss != null">
+                alarm_ele_miss,
+            </if>
+            <if test="alarmEleExceed != null">
+                alarm_ele_exceed,
+            </if>
+            <if test="alarmEleLowVolt != null">
+                alarm_ele_low_volt,
+            </if>
+            <if test="stateIcEnable != null">
+                state_ic_enable,
+            </if>
+            <if test="alarmBatteryVolt != null">
+                alarm_battery_volt,
+            </if>
+            <if test="alarmValve != null">
+                alarm_valve,
+            </if>
+            <if test="powerType != null">
+                power_type,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=BIGINT},
+            </if>
+            <if test="controllerId != null">
+                #{controllerId,jdbcType=BIGINT},
+            </if>
+            <if test="intakeId != null">
+                #{intakeId,jdbcType=BIGINT},
+            </if>
+            <if test="rtuAddr != null">
+                #{rtuAddr,jdbcType=VARCHAR},
+            </if>
+            <if test="dt != null">
+                #{dt,jdbcType=TIMESTAMP},
+            </if>
+            <if test="rtuDt != null">
+                #{rtuDt,jdbcType=TIMESTAMP},
+            </if>
+            <if test="valveState != null">
+                #{valveState,jdbcType=TINYINT},
+            </if>
+            <if test="alarmRemainWater != null">
+                #{alarmRemainWater,jdbcType=TINYINT},
+            </if>
+            <if test="alarm0WaterRemain != null">
+                #{alarm0WaterRemain,jdbcType=TINYINT},
+            </if>
+            <if test="alarmExceedYear != null">
+                #{alarmExceedYear,jdbcType=TINYINT},
+            </if>
+            <if test="alarmWaterMeterFault != null">
+                #{alarmWaterMeterFault,jdbcType=TINYINT},
+            </if>
+            <if test="alarmLoss != null">
+                #{alarmLoss,jdbcType=TINYINT},
+            </if>
+            <if test="alarmWaterMeterBreak != null">
+                #{alarmWaterMeterBreak,jdbcType=TINYINT},
+            </if>
+            <if test="alarmEleMeterFault != null">
+                #{alarmEleMeterFault,jdbcType=TINYINT},
+            </if>
+            <if test="alarm0MoneyRemain != null">
+                #{alarm0MoneyRemain,jdbcType=TINYINT},
+            </if>
+            <if test="alarmInnerDoor != null">
+                #{alarmInnerDoor,jdbcType=TINYINT},
+            </if>
+            <if test="alarmOuterDoor != null">
+                #{alarmOuterDoor,jdbcType=TINYINT},
+            </if>
+            <if test="alarmEleMiss != null">
+                #{alarmEleMiss,jdbcType=TINYINT},
+            </if>
+            <if test="alarmEleExceed != null">
+                #{alarmEleExceed,jdbcType=TINYINT},
+            </if>
+            <if test="alarmEleLowVolt != null">
+                #{alarmEleLowVolt,jdbcType=TINYINT},
+            </if>
+            <if test="stateIcEnable != null">
+                #{stateIcEnable,jdbcType=TINYINT},
+            </if>
+            <if test="alarmBatteryVolt != null">
+                #{alarmBatteryVolt,jdbcType=TINYINT},
+            </if>
+            <if test="alarmValve != null">
+                #{alarmValve,jdbcType=TINYINT},
+            </if>
+            <if test="powerType != null">
+                #{powerType,jdbcType=TINYINT},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory">
+        <!--@mbg.generated-->
+        update rm_alarm_state_history
+        <set>
+            <if test="controllerId != null">
+                controller_id = #{controllerId,jdbcType=BIGINT},
+            </if>
+            <if test="intakeId != null">
+                intake_id = #{intakeId,jdbcType=BIGINT},
+            </if>
+            <if test="rtuAddr != null">
+                rtu_addr = #{rtuAddr,jdbcType=VARCHAR},
+            </if>
+            <if test="dt != null">
+                dt = #{dt,jdbcType=TIMESTAMP},
+            </if>
+            <if test="rtuDt != null">
+                rtu_dt = #{rtuDt,jdbcType=TIMESTAMP},
+            </if>
+            <if test="valveState != null">
+                valve_state = #{valveState,jdbcType=TINYINT},
+            </if>
+            <if test="alarmRemainWater != null">
+                alarm_remain_water = #{alarmRemainWater,jdbcType=TINYINT},
+            </if>
+            <if test="alarm0WaterRemain != null">
+                alarm0_water_remain = #{alarm0WaterRemain,jdbcType=TINYINT},
+            </if>
+            <if test="alarmExceedYear != null">
+                alarm_exceed_year = #{alarmExceedYear,jdbcType=TINYINT},
+            </if>
+            <if test="alarmWaterMeterFault != null">
+                alarm_water_meter_fault = #{alarmWaterMeterFault,jdbcType=TINYINT},
+            </if>
+            <if test="alarmLoss != null">
+                alarm_loss = #{alarmLoss,jdbcType=TINYINT},
+            </if>
+            <if test="alarmWaterMeterBreak != null">
+                alarm_water_meter_break = #{alarmWaterMeterBreak,jdbcType=TINYINT},
+            </if>
+            <if test="alarmEleMeterFault != null">
+                alarm_ele_meter_fault = #{alarmEleMeterFault,jdbcType=TINYINT},
+            </if>
+            <if test="alarm0MoneyRemain != null">
+                alarm0_money_remain = #{alarm0MoneyRemain,jdbcType=TINYINT},
+            </if>
+            <if test="alarmInnerDoor != null">
+                alarm_inner_door = #{alarmInnerDoor,jdbcType=TINYINT},
+            </if>
+            <if test="alarmOuterDoor != null">
+                alarm_outer_door = #{alarmOuterDoor,jdbcType=TINYINT},
+            </if>
+            <if test="alarmEleMiss != null">
+                alarm_ele_miss = #{alarmEleMiss,jdbcType=TINYINT},
+            </if>
+            <if test="alarmEleExceed != null">
+                alarm_ele_exceed = #{alarmEleExceed,jdbcType=TINYINT},
+            </if>
+            <if test="alarmEleLowVolt != null">
+                alarm_ele_low_volt = #{alarmEleLowVolt,jdbcType=TINYINT},
+            </if>
+            <if test="stateIcEnable != null">
+                state_ic_enable = #{stateIcEnable,jdbcType=TINYINT},
+            </if>
+            <if test="alarmBatteryVolt != null">
+                alarm_battery_volt = #{alarmBatteryVolt,jdbcType=TINYINT},
+            </if>
+            <if test="alarmValve != null">
+                alarm_valve = #{alarmValve,jdbcType=TINYINT},
+            </if>
+            <if test="powerType != null">
+                power_type = #{powerType,jdbcType=TINYINT},
+            </if>
+        </set>
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+    <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory">
+        <!--@mbg.generated-->
+        update rm_alarm_state_history
+        set controller_id           = #{controllerId,jdbcType=BIGINT},
+            intake_id               = #{intakeId,jdbcType=BIGINT},
+            rtu_addr                = #{rtuAddr,jdbcType=VARCHAR},
+            dt                      = #{dt,jdbcType=TIMESTAMP},
+            rtu_dt                  = #{rtuDt,jdbcType=TIMESTAMP},
+            valve_state             = #{valveState,jdbcType=TINYINT},
+            alarm_remain_water      = #{alarmRemainWater,jdbcType=TINYINT},
+            alarm0_water_remain     = #{alarm0WaterRemain,jdbcType=TINYINT},
+            alarm_exceed_year       = #{alarmExceedYear,jdbcType=TINYINT},
+            alarm_water_meter_fault = #{alarmWaterMeterFault,jdbcType=TINYINT},
+            alarm_loss              = #{alarmLoss,jdbcType=TINYINT},
+            alarm_water_meter_break = #{alarmWaterMeterBreak,jdbcType=TINYINT},
+            alarm_ele_meter_fault   = #{alarmEleMeterFault,jdbcType=TINYINT},
+            alarm0_money_remain     = #{alarm0MoneyRemain,jdbcType=TINYINT},
+            alarm_inner_door        = #{alarmInnerDoor,jdbcType=TINYINT},
+            alarm_outer_door        = #{alarmOuterDoor,jdbcType=TINYINT},
+            alarm_ele_miss          = #{alarmEleMiss,jdbcType=TINYINT},
+            alarm_ele_exceed        = #{alarmEleExceed,jdbcType=TINYINT},
+            alarm_ele_low_volt      = #{alarmEleLowVolt,jdbcType=TINYINT},
+            state_ic_enable         = #{stateIcEnable,jdbcType=TINYINT},
+            alarm_battery_volt      = #{alarmBatteryVolt,jdbcType=TINYINT},
+            alarm_valve             = #{alarmValve,jdbcType=TINYINT},
+            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>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
index b24461d..6fb51ff 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
@@ -331,4 +331,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_last rasl
+    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 rasl.valve_state = #{valveState,jdbcType=TINYINT}
+      </if>
+      <if test="intakeName != null">
+        and pint.name = #{intakeName,jdbcType=VARCHAR}
+      </if>
+      <if test="startDt != null">
+        and rasl.dt &gt;= #{startDt,jdbcType=TIMESTAMP}
+      </if>
+      <if test="endDt != null">
+        and rasl.dt &lt;= #{endDt,jdbcType=TIMESTAMP}
+      </if>
+    </where>
+    </select>
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍-->
+  <select id="getControllerAlarmStateLast" resultType="com.dy.pipIrrGlobal.voRm.VoControllerAlarmState">
+    select
+    CAST(rasl.controller_id AS char)AS controllerId,
+    CAST(rasl.intake_id AS char)AS intakeId,
+    pint.name as intakeName,
+    rasl.rtu_addr as rtuAddr,
+    rasl.dt as dt,
+    rasl.valve_state as valveState,
+    rasl.alarm_remain_water as alarmRemainWater,
+    rasl.alarm0_water_remain as alarm0WaterRemain,
+    rasl.alarm_exceed_year as alarmExceedYear,
+    rasl.alarm_water_meter_fault as alarmWaterMeterFault,
+    rasl.alarm_loss as alarmLoss,
+    rasl.alarm_water_meter_break as alarmWaterMeterBreak,
+    rasl.alarm_ele_meter_fault as alarmEleMeterFault,
+    rasl.alarm0_money_remain as alarm0MoneyRemain,
+    rasl.alarm_inner_door as alarmInnerDoor,
+    rasl.alarm_outer_door as alarmOuterDoor,
+    rasl.alarm_ele_miss as alarmEleMiss,
+    rasl.alarm_ele_exceed as alarmEleExceed,
+    rasl.alarm_ele_low_volt as alarmEleLowVolt,
+    rasl.state_ic_enable as stateIcEnable,
+    rasl.alarm_battery_volt as alarmBatteryVolt,
+    rasl.alarm_valve as alarmValve,
+    rasl.power_type as powerType
+    from rm_alarm_state_last rasl
+    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 rasl.valve_state = #{valveState,jdbcType=TINYINT}
+      </if>
+      <if test="intakeName != null">
+        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
+      </if>
+      <if test="startDt != null">
+        and rasl.dt &gt;= #{startDt,jdbcType=TIMESTAMP}
+      </if>
+      <if test="endDt != null">
+        and rasl.dt &lt;= #{endDt,jdbcType=TIMESTAMP}
+      </if>
+    </where>
+    ORDER BY rasl.dt DESC
+    <if test="pageCurr != null and pageSize != null">
+      LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
+    </if>
+  </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/ControllerAlarmStateCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/ControllerAlarmStateCtrl.java
new file mode 100644
index 0000000..ad62a62
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/ControllerAlarmStateCtrl.java
@@ -0,0 +1,96 @@
+package com.dy.pipIrrRemote.controllerAlarmState;
+
+import com.dy.common.aop.SsoAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrGlobal.voRm.VoControllerAlarmState;
+import com.dy.pipIrrGlobal.voSe.VoActiveCard;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/7/22  20:00
+ * @LastEditTime :2024/7/22  20:00
+ * @Description
+ */
+@Slf4j
+@Tag(name = "鎺у埗鍣ㄦ姤璀︿笌鐘舵��", description = "鎺у埗鍣ㄦ姤璀︿笌鐘舵��")
+@RestController
+@RequestMapping(path = "controllerAlarmState")
+public class ControllerAlarmStateCtrl {
+    @Autowired
+    private ControllerAlarmStateSv controllerAlarmStateSv;
+
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鎺у埗鍣ㄦ姤璀︿笌鐘舵�佸垪琛紙鍘嗗彶锛�
+     *
+     * @param vo 鏌ヨ鏉′欢
+     * @return 绗﹀悎鏉′欢鐨勬帶鍒跺櫒鎶ヨ涓庣姸鎬佸垪琛紙鍘嗗彶锛�
+     */
+    @Operation(summary = "鑾峰緱涓�椤垫帶鍒跺櫒鎶ヨ涓庣姸鎬佽褰�", description = "杩斿洖涓�椤垫帶鍒跺櫒鎶ヨ涓庣姸鎬佹暟鎹�")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖涓�椤垫帶鍒跺櫒鎶ヨ涓庣姸鎬佹暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = VoActiveCard.class))}
+            )
+    })
+    @GetMapping(path = "/getControllerAlarmStateHistory")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoControllerAlarmState>>> getControllerAlarmStateHistory(@RequestBody QueryVo vo) {
+        try {
+            QueryResultVo<List<VoControllerAlarmState>> res = controllerAlarmStateSv.getControllerAlarmStateHistory(vo);
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇鎺у埗鍣ㄦ姤璀︿笌鐘舵�佽褰曞紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鎺у埗鍣ㄦ姤璀︿笌鐘舵�佸垪琛紙鏈�鏂帮級
+     *
+     * @param vo 鏌ヨ鏉′欢
+     * @return 绗﹀悎鏉′欢鐨勬帶鍒跺櫒鎶ヨ涓庣姸鎬佸垪琛紙鏈�鏂帮級
+     */
+    @Operation(summary = "鑾峰緱涓�椤垫帶鍒跺櫒鎶ヨ涓庣姸鎬佽褰�", description = "杩斿洖涓�椤垫帶鍒跺櫒鎶ヨ涓庣姸鎬佹暟鎹�")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖涓�椤垫帶鍒跺櫒鎶ヨ涓庣姸鎬佹暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = VoActiveCard.class))}
+            )
+    })
+    @GetMapping(path = "/getControllerAlarmStateLast")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoControllerAlarmState>>> getControllerAlarmStateLast(@RequestBody QueryVo vo) {
+        try {
+            QueryResultVo<List<VoControllerAlarmState>> res = controllerAlarmStateSv.getControllerAlarmStateLast(vo);
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇鎺у埗鍣ㄨ褰曞紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/ControllerAlarmStateSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/ControllerAlarmStateSv.java
new file mode 100644
index 0000000..c1db9fb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/ControllerAlarmStateSv.java
@@ -0,0 +1,69 @@
+package com.dy.pipIrrRemote.controllerAlarmState;
+
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoRm.RmAlarmStateHistoryMapper;
+import com.dy.pipIrrGlobal.daoRm.RmAlarmStateLastMapper;
+import com.dy.pipIrrGlobal.voRm.VoControllerAlarmState;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/7/22  20:01
+ * @LastEditTime :2024/7/22  20:01
+ * @Description
+ */
+@Slf4j
+@Service
+public class ControllerAlarmStateSv {
+    @Autowired
+    private RmAlarmStateHistoryMapper rmAlarmStateHistoryMapper;
+    @Autowired
+    private RmAlarmStateLastMapper rmAlarmStateLastMapper;
+
+    /**
+     * 鑾峰緱涓�椤垫帶鍒跺櫒鎶ヨ涓庣姸鎬佽褰�(鍘嗗彶)
+     * @param vo
+     * @return
+     */
+    public QueryResultVo<List<VoControllerAlarmState>> getControllerAlarmStateHistory(QueryVo vo) {
+
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo);
+
+        Long itemTotal = rmAlarmStateHistoryMapper.getRecordCount(params);
+
+        QueryResultVo<List<VoControllerAlarmState>> rsVo = new QueryResultVo<>();
+        rsVo.pageSize = vo.pageSize;
+        rsVo.pageCurr = vo.pageCurr;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmAlarmStateHistoryMapper.getControllerAlarmStateHistory(params);
+        return rsVo;
+    }
+
+
+    /**
+     * 鑾峰緱涓�椤垫帶鍒跺櫒鎶ヨ涓庣姸鎬佽褰�(鏈�鏂�)
+     * @param vo
+     * @return
+     */
+    public QueryResultVo<List<VoControllerAlarmState>> getControllerAlarmStateLast(QueryVo vo) {
+
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo);
+
+        Long itemTotal = rmAlarmStateLastMapper.getRecordCount(params);
+
+        QueryResultVo<List<VoControllerAlarmState>> rsVo = new QueryResultVo<>();
+        rsVo.pageSize = vo.pageSize;
+        rsVo.pageCurr = vo.pageCurr;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmAlarmStateLastMapper.getControllerAlarmStateLast(params);
+        return rsVo;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/QueryVo.java
new file mode 100644
index 0000000..90d11ca
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/controllerAlarmState/QueryVo.java
@@ -0,0 +1,44 @@
+package com.dy.pipIrrRemote.controllerAlarmState;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/7/22  20:01
+ * @LastEditTime :2024/7/22  20:01
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "鎺у埗鍣ㄦ姤璀︿笌鐘舵�佹煡璇㈡潯浠�")
+public class QueryVo extends QueryConditionVo {
+
+    @Schema(description = "鍙栨按鍙e悕绉�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private String intakeName;
+
+    @Schema(description = "闃�闂ㄧ姸鎬�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)//锛�0鎵撳紑銆�1鍏抽棴锛�
+    private Byte valveState;
+
+    @Schema(description = "寮�濮嬫椂闂�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startDt;
+
+    @Schema(description = "缁撴潫鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endDt;
+
+    @Schema(description = "鎶ヨ鐘舵��", requiredMode = Schema.RequiredMode.NOT_REQUIRED)//锛�0姝e父銆�1鎶ヨ锛�
+    private Byte alarmState;
+}

--
Gitblit v1.8.0