From 540b3f4dbfd9eaed86b5f843be12a06b912de5ef Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期二, 11 六月 2024 20:11:34 +0800 Subject: [PATCH] 1、完善靳总协议的控制器报警及状态处理; 2、报警及状态数据库表(最新+历史)增加字段电池电压报警、阀门报警。 --- pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml | 8 + pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java | 27 ++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java | 10 + pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml | 32 ++++ pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml | 2 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java | 205 ++++++++++++++++++++++----------- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java | 7 + pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java | 10 + pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml | 30 ++++ pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java | 11 + 10 files changed, 259 insertions(+), 83 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java index dbecf43..5680485 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java @@ -70,4 +70,11 @@ * @return */ String getVcCardNumOfMax(@Param("areaCode") String areaCode); + + /** + * 涓�涓彇姘村彛涓婂崰鐢ㄧ殑铏氭嫙鍗$姸鎬佸彉鎴愪笉鍗犵敤 + * @param intakeId + * @return + */ + void updateVcCardNoUseStateByIntakeId(@Param("intakeId")Long intakeId) ; } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java index 71d78d5..1ec2a27 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateHistory.java @@ -130,4 +130,14 @@ */ public Byte stateIcEnable; + /** + * 鐢垫睜鐢靛帇(1锛氭姤璀︼紝0锛氭甯�) + */ + public Byte alarmBatteryVolt; + + /** + * 闃�闂ㄦ姤璀�(1锛氭姤璀︼紝0锛氭甯�) + */ + public Byte alarmValve; + } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java index ee87103..6a5a21d 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmAlarmStateLast.java @@ -130,4 +130,14 @@ */ public Byte stateIcEnable; + /** + * 鐢垫睜鐢靛帇(1锛氭姤璀︼紝0锛氭甯�) + */ + public Byte alarmBatteryVolt; + + /** + * 闃�闂ㄦ姤璀�(1锛氭姤璀︼紝0锛氭甯�) + */ + public Byte alarmValve; + } \ No newline at end of file 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 e9ea639..6f610a5 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml @@ -25,13 +25,15 @@ <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" /> </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_ele_exceed, alarm_ele_low_volt, state_ic_enable,alarm_battery_volt,alarm_valve </sql> <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> <!--@mbg.generated--> @@ -54,7 +56,7 @@ 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) + state_ic_enable,alarm_battery_volt,alarm_valve) 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}, @@ -62,7 +64,7 @@ #{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}) + #{stateIcEnable,jdbcType=TINYINT}, #{alarmBatteryVolt,jdbcType=TINYINT}, #{alarmValve,jdbcType=TINYINT}) </insert> <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory"> <!--@mbg.generated--> @@ -131,6 +133,12 @@ <if test="stateIcEnable != null"> state_ic_enable, </if> + <if test="alarmBatteryVolt != null"> + alarm_battery_volt, + </if> + <if test="alarmValve != null"> + alarm_valve, + </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null"> @@ -195,6 +203,12 @@ </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> </trim> </insert> @@ -262,6 +276,12 @@ <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> </set> where id = #{id,jdbcType=BIGINT} </update> @@ -287,7 +307,9 @@ 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} + state_ic_enable = #{stateIcEnable,jdbcType=TINYINT}, + alarm_battery_volt = #{alarmBatteryVolt,jdbcType=TINYINT}, + alarm_valve = #{alarmValve,jdbcType=TINYINT}, where id = #{id,jdbcType=BIGINT} </update> </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 2056c59..0402aec 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml @@ -25,13 +25,15 @@ <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" /> </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_ele_exceed, alarm_ele_low_volt, state_ic_enable,alarm_battery_volt,alarm_valve </sql> <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> <!--@mbg.generated--> @@ -61,15 +63,15 @@ 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) + state_ic_enable,alarm_battery_volt,alarm_valve) 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}) + #{alarmEleMiss,jdbcType=TINYINT}, #{alarmEleExceed,jdbcType=TINYINT}, #{alarmEleLowVolt,jdbcType=TINYINT}, + #{stateIcEnable,jdbcType=TINYINT}, #{alarmBatteryVolt,jdbcType=TINYINT}, #{alarmValve,jdbcType=TINYINT}) </insert> <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast"> <!--@mbg.generated--> @@ -138,6 +140,12 @@ <if test="stateIcEnable != null"> state_ic_enable, </if> + <if test="alarmBatteryVolt != null"> + alarm_battery_volt, + </if> + <if test="alarmValve != null"> + alarm_valve, + </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null"> @@ -202,6 +210,12 @@ </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> </trim> </insert> @@ -269,6 +283,12 @@ <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> </set> where id = #{id,jdbcType=BIGINT} </update> @@ -294,7 +314,9 @@ 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} + state_ic_enable = #{stateIcEnable,jdbcType=TINYINT}, + alarm_battery_volt = #{alarmBatteryVolt,jdbcType=TINYINT}, + alarm_valve = #{alarmValve,jdbcType=TINYINT}, where id = #{id,jdbcType=BIGINT} </update> </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml index 6a719e6..dd319b6 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml @@ -145,7 +145,12 @@ create_time = #{createTime,jdbcType=TIMESTAMP} where id = #{id,jdbcType=BIGINT} </update> - + <update id="updateVcCardNoUseStateByIntakeId" parameterType="java.lang.Long"> + update se_virtual_card + set in_use = 0, + intake_id = null + where intake_id = #{intakeId,jdbcType=BIGINT} + </update> <!--楠岃瘉鍐滄埛鏄惁鎷ユ湁鎸囧畾鍚嶇О鐨勮櫄鎷熷崱--> <select id="getRecordCountByName" resultType="java.lang.Integer"> SELECT COUNT(*) AS recordCount @@ -216,4 +221,5 @@ ORDER BY vc_num desc LIMIT 0,1 </select> + </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java index 1fd18ed..6def3c1 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java @@ -3,6 +3,7 @@ import com.dy.pipIrrGlobal.daoPr.PrControllerMapper; import com.dy.pipIrrGlobal.daoPr.PrControllerTrampMapper; import com.dy.pipIrrGlobal.daoRm.*; +import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper; import com.dy.pipIrrGlobal.pojoPr.PrController; import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp; import com.dy.pipIrrGlobal.pojoRm.*; @@ -47,6 +48,8 @@ private RmLossHistoryMapper rmLossHistoryMapperDao ;//鎺у埗鍣ㄦ紡鎹熸按閲忕粺璁″巻鍙叉暟鎹瓺AO @Autowired private RmCommandHistoryMapper rmCommandHistoryDao ;//杩滅▼鍛戒护鏃ュ織鐩稿叧 + @Autowired + private SeVirtualCardMapper seVirtualCardDao ;//铏氭嫙鍗$浉鍏� //@Autowired //@Lazy @@ -141,6 +144,14 @@ this.rmAlarmStateHistoryMapperDao.insert(po) ; } + /** + * 鍙樻洿铏氭嫙鍗″崰鐢ㄧ姸鎬� + * @param intakeId + */ + @Transactional(rollbackFor = Exception.class) + public void updateVirCardNoUseState(Long intakeId){ + this.seVirtualCardDao.updateVcCardNoUseStateByIntakeId(intakeId); ; + } ///////////////////////////////////////////////// diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java index 57330a5..cafed3b 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java @@ -1,10 +1,11 @@ package com.dy.rtuMw.server.rtuData.p206V1_0_0; +import com.dy.common.mw.protocol.p206V1_0_0.upVos.*; +import com.dy.common.util.DateTime; +import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory; import com.dy.rtuMw.server.rtuData.TaskSurpport; import com.dy.rtuMw.server.rtuData.dbSv.DbSv; import com.dy.common.mw.protocol.Data; -import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataAlarmVo; -import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataStateVo; import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1; import com.dy.pipIrrGlobal.pojoPr.PrController; import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast; @@ -13,8 +14,7 @@ /** * @Author liurunyu - * @Date 2024/1/15 21:59 - * @LastEditTime 2024/1/15 21:59 + * @Date 2024/6/11 17:19 * @Description */ public class TkDealAlarmStatus extends TaskSurpport { @@ -34,27 +34,39 @@ Object subD = d.getSubData() ; if(subD != null){ DataV1_0_1 dV1_0_1 = (DataV1_0_1)subD ; - if(dV1_0_1 != null){ - //dV1_0_1.dataCd81Vo 涓� dV1_0_1.dataCdC0Vo 涓嶄細鍚屾椂鏈夊�� - try{ -// if(dV1_0_1.dataCd81Vo != null){ -// if(dV1_0_1.dataCd81Vo.alarmVo != null || dV1_0_1.dataCd81Vo.stateVo != null){ -// Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ; -// DbSv sv = (DbSv)objs[0] ; -// PrController controller = (PrController)objs[1] ; -// this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dV1_0_1.dataCd81Vo.rtuDt, dV1_0_1, dV1_0_1.dataCd81Vo.alarmVo, dV1_0_1.dataCd81Vo.stateVo) ; -// this.saveHistory(sv, controller, d.getRtuAddr(), dV1_0_1.dataCd81Vo.rtuDt, dV1_0_1, dV1_0_1.dataCd81Vo.alarmVo, dV1_0_1.dataCd81Vo.stateVo) ; -// } -// } else if(dV1_0_1.dataCdC0Vo != null){ -// if(dV1_0_1.dataCdC0Vo.alarmVo != null || dV1_0_1.dataCdC0Vo.stateVo != null){ -// Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ; -// DbSv sv = (DbSv)objs[0] ; -// PrController controller = (PrController)objs[1] ; -// this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dV1_0_1.dataCdC0Vo.rtuDt, dV1_0_1, dV1_0_1.dataCdC0Vo.alarmVo, dV1_0_1.dataCdC0Vo.stateVo) ; -// this.saveHistory(sv, controller, d.getRtuAddr(), dV1_0_1.dataCdC0Vo.rtuDt, dV1_0_1, dV1_0_1.dataCdC0Vo.alarmVo, dV1_0_1.dataCdC0Vo.stateVo) ; -// } -// } - }catch (Exception e){ + if(dV1_0_1 != null && dV1_0_1.subData != null){ + //dV1_0_1.dataCd81Vo銆� dV1_0_1.dataCd84Vo 涓� dV1_0_1.dataCdC0Vo 涓嶄細鍚屾椂鏈夊�� + Object cdObj = dV1_0_1.subData ; + try { + if (cdObj instanceof DataCd81Vo) { + DataCd81Vo dataCd81Vo = (DataCd81Vo)cdObj ; + if (dataCd81Vo.alarmVo != null || dataCd81Vo.stateVo != null) { + Object[] objs = this.getTaskResults(TkPreGenObjs.taskId); + DbSv sv = (DbSv) objs[0]; + PrController controller = (PrController) objs[1]; + this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1_0_1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo); + this.saveHistory(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1_0_1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo); + } + } else if (cdObj instanceof DataCd84Vo) { + DataCd84Vo dataCd84Vo = (DataCd84Vo)cdObj ; + if (dataCd84Vo.alarmVo != null || dataCd84Vo.stateVo != null) { + Object[] objs = this.getTaskResults(TkPreGenObjs.taskId); + DbSv sv = (DbSv) objs[0]; + PrController controller = (PrController) objs[1]; + this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV1_0_1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo); + this.saveHistory(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV1_0_1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo); + } + } else if (cdObj instanceof DataCdC0Vo) { + DataCdC0Vo dataCdC0Vo = (DataCdC0Vo)cdObj ; + if (dataCdC0Vo.alarmVo != null || dataCdC0Vo.stateVo != null) { + Object[] objs = this.getTaskResults(TkPreGenObjs.taskId); + DbSv sv = (DbSv) objs[0]; + PrController controller = (PrController) objs[1]; + this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV1_0_1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo); + this.saveHistory(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV1_0_1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo); + } + } + } catch (Exception e) { log.error("淇濆瓨鎺у埗鍣ㄦ姤璀﹀拰鐘舵�佹暟鎹椂鍙戠敓寮傚父", e); } } @@ -70,19 +82,36 @@ * @param stateVo 鐘舵�佸璞� */ private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, String rtuDt, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception { -// RmAlarmStateLast po = sv.getRmAlarmStateLast(rtuAddr) ; -// if(po == null){ -// po = new RmAlarmStateLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(), -// rtuAddr, -// DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt), -// DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt), -// alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve, -// stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ; -// sv.saveRmAlarmStateLast(po) ; -// }else{ -// po = this.update(controller, po, rtuDt, dV1_0_1, alarmVo, stateVo) ; -// sv.updateRmAlarmStateLast(po); -// } + RmAlarmStateLast po = sv.getRmAlarmStateLast(rtuAddr) ; + if(po == null){ + po = new RmAlarmStateLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(), + rtuAddr, + DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt), + DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt), + stateVo==null?null:stateVo.working,//鐘舵��-闃�闂�/娉碉紙1鎵撳紑銆�0鍏抽棴锛� + (byte)0,//鍓╀綑姘撮噺鎶ヨ (1锛氬皬浜庢姤璀︿笂闄愭姤璀� 0锛氭甯�) + (byte)0,//鍓╀綑姘撮噺涓�0鍏虫车/闃� (1锛氬墿浣欐按閲忎负0鍏虫车 0锛氭甯�) + (byte)0,//骞寸敤姘撮噺澶т簬闄愬埗姘撮噺鎶ヨ(1锛氭姤璀� 0锛氭甯�) + alarmVo==null?null:alarmVo.meter,// 娴侀噺璁℃晠闅�(1锛氭姤璀︼紝0锛氭甯�) + alarmVo==null?null:alarmVo.loss,// 婕忔崯(鍋锋按)鎶ヨ(1锛氭姤璀︼紝 0锛氭甯�) + (byte)0,//娴侀噺璁℃崯鍧�(姝e父閫氳浣嗙灛鏃朵负0)鎶ヨ(1锛氭姤璀︼紝0锛氭甯�) + (byte)0,//鐢佃〃鏁呴殰鎶ヨ(1锛氭姤璀︼紝0锛氭甯�) + (byte)0,//鍓╀綑閲戦涓�0(1锛氭姤璀︼紝0锛氭甯�) + (byte)0,//鎺у埗鍣ㄥ唴闂ㄦ姤璀�(1锛氭姤璀︼紝0锛氭甯�) + (byte)0,//鎺у埗鍣ㄥ闂ㄦ墦寮�鎶ヨ(1锛氭姤璀︼紝0锛氭甯�) + (byte)0,//浜ゆ祦缂洪」鎶ヨ(1锛氭姤璀︼紝0锛氭甯�) + (byte)0,//浜ゆ祦杩囨祦鎶ヨ(1锛氭姤璀︼紝0锛氭甯�) + (byte)0,//涓夌浉鐢垫瑺鍘嬫姤璀�(1锛氭姤璀︼紝0锛氭甯�) + stateVo==null?null:stateVo.icCard,//IC鍗$姸鎬�(1銆佹湁鏁堬紝0锛氭棤鏁�) ; + alarmVo==null?null:alarmVo.batteryVolt,//鐢垫睜鐢靛帇(1锛氭姤璀︼紝0锛氭甯�) + alarmVo==null?null:alarmVo.valve//闃�闂ㄦ姤璀�(1锛氭姤璀︼紝0锛氭甯�) + ); + sv.saveRmAlarmStateLast(po) ; + }else{ + po = this.update(controller, po, rtuDt, dV1_0_1, alarmVo, stateVo) ; + this.updateVirCardNoUseState(sv, controller, stateVo) ; + sv.updateRmAlarmStateLast(po); + } } /** @@ -95,43 +124,79 @@ * @param stateVo 鐘舵�佸璞� */ private void saveHistory(DbSv sv, PrController controller, String rtuAddr, String rtuDt, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception { -// RmAlarmStateHistory po = new RmAlarmStateHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(), -// rtuAddr, -// DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt), -// DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt), -// alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve, -// stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ; -// sv.saveRmAlarmStateHistory(po) ; + RmAlarmStateHistory po = new RmAlarmStateHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(), + rtuAddr, + DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt), + DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt), + stateVo==null?null:stateVo.working,//鐘舵��-闃�闂�/娉碉紙1鎵撳紑銆�0鍏抽棴锛� + (byte)0,//鍓╀綑姘撮噺鎶ヨ (1锛氬皬浜庢姤璀︿笂闄愭姤璀� 0锛氭甯�) + (byte)0,//鍓╀綑姘撮噺涓�0鍏虫车/闃� (1锛氬墿浣欐按閲忎负0鍏虫车 0锛氭甯�) + (byte)0,//骞寸敤姘撮噺澶т簬闄愬埗姘撮噺鎶ヨ(1锛氭姤璀� 0锛氭甯�) + alarmVo==null?null:alarmVo.meter,// 娴侀噺璁℃晠闅�(1锛氭姤璀︼紝0锛氭甯�) + alarmVo==null?null:alarmVo.loss,// 婕忔崯(鍋锋按)鎶ヨ(1锛氭姤璀︼紝 0锛氭甯�) + (byte)0,//娴侀噺璁℃崯鍧�(姝e父閫氳浣嗙灛鏃朵负0)鎶ヨ(1锛氭姤璀︼紝0锛氭甯�) + (byte)0,//鐢佃〃鏁呴殰鎶ヨ(1锛氭姤璀︼紝0锛氭甯�) + (byte)0,//鍓╀綑閲戦涓�0(1锛氭姤璀︼紝0锛氭甯�) + (byte)0,//鎺у埗鍣ㄥ唴闂ㄦ姤璀�(1锛氭姤璀︼紝0锛氭甯�) + (byte)0,//鎺у埗鍣ㄥ闂ㄦ墦寮�鎶ヨ(1锛氭姤璀︼紝0锛氭甯�) + (byte)0,//浜ゆ祦缂洪」鎶ヨ(1锛氭姤璀︼紝0锛氭甯�) + (byte)0,//浜ゆ祦杩囨祦鎶ヨ(1锛氭姤璀︼紝0锛氭甯�) + (byte)0,//涓夌浉鐢垫瑺鍘嬫姤璀�(1锛氭姤璀︼紝0锛氭甯�) + stateVo==null?null:stateVo.icCard,//IC鍗$姸鎬�(1銆佹湁鏁堬紝0锛氭棤鏁�) ; + alarmVo==null?null:alarmVo.batteryVolt,//鐢垫睜鐢靛帇(1锛氭姤璀︼紝0锛氭甯�) + alarmVo==null?null:alarmVo.valve//闃�闂ㄦ姤璀�(1锛氭姤璀︼紝0锛氭甯�) + ); + sv.saveRmAlarmStateHistory(po) ; } private RmAlarmStateLast update(PrController controller, RmAlarmStateLast po, String rtuDt, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception { -// po.controllerid = controller==null?null:controller.getId() ; -// po.intakeid = controller==null?null:controller.getIntakeId() ; -// -// po.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt) ; -// po.rtudt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt) ; -// if(alarmVo != null){ -// po.bateryvolt = alarmVo.batteryVolt ; -// po.loss = alarmVo.loss ; -// po.meter = alarmVo.meter ; -// po.valve = alarmVo.valve ; -// }else{ -// po.bateryvolt = null ; -// po.loss = null ; -// po.meter = null ; -// po.valve = null ; -// } -// if(stateVo != null){ -// po.iccard = stateVo.icCard ; -// po.working = stateVo.working ; -// po.valvestate = stateVo.valve ; -// }else{ -// po.iccard = null ; -// po.working = null ; -// po.valvestate = null ; -// } + po.controllerId = controller==null?null:controller.getId() ; + po.intakeId = controller==null?null:controller.getIntakeId() ; + + po.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt) ; + po.rtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt) ; + if(alarmVo != null){ + po.alarmBatteryVolt = alarmVo.batteryVolt ; + po.alarmLoss = alarmVo.loss ; + po.alarmWaterMeterBreak = alarmVo.meter ; + po.alarmValve = alarmVo.valve ; + }/*else{ + po.alarmBatteryVolt = null ; + po.alarmLoss = null ; + po.alarmWaterMeterBreak = null ; + po.alarmValve = null ; + }*/ + if(stateVo != null){ + po.stateIcEnable = stateVo.icCard ; + po.valveState = stateVo.working ; + //po.valvestate = stateVo.valve ; + }/*else{ + po.stateIcEnable = null ; + po.valveState = null ; + //po.valvestate = null ; + }*/ return po ; } + + + /** + * 铏氭嫙鍗″湪鍙栨按涓殑鍗犵敤鐘舵�佹敼涓洪潪搴旂敤鐘舵�� + */ + private void updateVirCardNoUseState(DbSv sv, + PrController controller, + DataStateVo stateVo){ + if(stateVo != null){ + if(stateVo.working != null && stateVo.working.byteValue() == 0){ + //闃�闂ㄥ叧闂姸鎬� + if(controller != null && controller.getIntakeId() != null){ + //铏氭嫙鍗″湪鍙栨按涓殑鍗犵敤鐘舵�佹敼涓洪潪搴旂敤鐘舵�� + sv.updateVirCardNoUseState(controller.getIntakeId()); + } + } + } + + } + } diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java index 193e8d8..e3033ee 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java @@ -105,11 +105,14 @@ alarmVo==null?null:alarmVo.alarmEleMiss, alarmVo==null?null:alarmVo.alarmEleExceed, alarmVo==null?null:alarmVo.alarmEleLowVolt, - alarmVo==null?null:alarmVo.stateIcEnable + alarmVo==null?null:alarmVo.stateIcEnable, + (byte)0,//鐢垫睜鐢靛帇(1锛氭姤璀︼紝0锛氭甯�) + (byte)0//闃�闂ㄦ姤璀�(1锛氭姤璀︼紝0锛氭甯�) ) ; sv.saveRmAlarmStateLast(po) ; }else{ po = this.update(po, controller, rtuDt, alarmVo, receiveDt) ; + this.updateVirCardNoUseState(sv, controller, alarmVo) ; sv.updateRmAlarmStateLast(po); } } @@ -149,7 +152,9 @@ alarmVo==null?null:alarmVo.alarmEleMiss, alarmVo==null?null:alarmVo.alarmEleExceed, alarmVo==null?null:alarmVo.alarmEleLowVolt, - alarmVo==null?null:alarmVo.stateIcEnable + alarmVo==null?null:alarmVo.stateIcEnable, + (byte)0,//鐢垫睜鐢靛帇(1锛氭姤璀︼紝0锛氭甯�) + (byte)0//闃�闂ㄦ姤璀�(1锛氭姤璀︼紝0锛氭甯�) ) ; sv.saveRmAlarmStateHistory(po) ; } @@ -192,4 +197,22 @@ } return po ; } + + /** + * 铏氭嫙鍗″湪鍙栨按涓殑鍗犵敤鐘舵�佹敼涓洪潪搴旂敤鐘舵�� + */ + private void updateVirCardNoUseState(DbSv sv, + PrController controller, + AlarmVo alarmVo){ + if(alarmVo != null){ + if(alarmVo.statePump != null && alarmVo.statePump.byteValue() == 0){ + //闃�闂ㄥ叧闂姸鎬� + if(controller != null && controller.getIntakeId() != null){ + //铏氭嫙鍗″湪鍙栨按涓殑鍗犵敤鐘舵�佹敼涓洪潪搴旂敤鐘舵�� + sv.updateVirCardNoUseState(controller.getIntakeId()); + } + } + } + + } } diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml index 2a2e499..44a35aa 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml @@ -39,7 +39,7 @@ <!-- 璇嗗埆闈炲懡浠ゅ簲绛斾笂琛屾暟鎹� --> <task id="TkFindReportV202404" name="璇嗗埆闈炲懡浠ゅ簲绛斾笂琛屾暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkFindReportV202404"> <task id="TkDealAlarmStatusV202404" name="鎺у埗鍣ㄦ姤璀︿笌鐘舵�佹暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealAlarmStatusV202404" /> - <task id="TkDealTimingReportV202404" name="鎺у埗鍣ㄥ畾鐐逛笂鎶ユ暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealTimingReportV202404" /> + <task id="TkDealTimingReportV202404" name="鎺у埗鍣ㄥ畾鏃朵笂鎶ユ暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealTimingReportV202404" /> </task> <!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 --> <task id="TkFindComResponseV202404" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkFindComResponseV202404"> -- Gitblit v1.8.0