liurunyu
2025-02-12 47033c5e68ced6ff6b6e2f8163f0a95dbc3bc321
1、开关阀及报警消息中增加日期时间;
2、版本2协议中增加消息功能。
6个文件已修改
83 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealAlarmStatus.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealCloseValveReport.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealOpenValveReport.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealAlarmStatusV2.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealCloseValveReportV2.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealOpenValveReportV2.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealAlarmStatus.java
@@ -120,6 +120,7 @@
            msObj.put("rtuAddr", rtuAddr);
            msObj.put("intakeId", controller.getIntakeId());
            msObj.put("alarm", alarmVo.alarmContent());
            msObj.put("dt", dV1.dt);
            MsCenterUnit.getInstance().pushMs(msObj);
        }
    }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealCloseValveReport.java
@@ -71,6 +71,7 @@
            msObj.put("icCardNo", dataCd83CloseVo.icCardNo);
            msObj.put("rtuAddr", rtuAddr);
            msObj.put("intakeId", controller.getIntakeId());
            msObj.put("dt", dV1.dt);
            MsCenterUnit.getInstance().pushMs(msObj);
        }
    }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealOpenValveReport.java
@@ -70,6 +70,7 @@
            msObj.put("icCardNo", dataCd83OpenVo.icCardNo);
            msObj.put("rtuAddr", rtuAddr);
            msObj.put("intakeId", controller.getIntakeId());
            msObj.put("dt", dV1.dt);
            MsCenterUnit.getInstance().pushMs(msObj);
        }
    }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealAlarmStatusV2.java
@@ -9,9 +9,10 @@
import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast;
import com.dy.rtuMw.server.ServerProperties;
import com.dy.rtuMw.server.forMs.SendMsCache;
import com.dy.rtuMw.server.msCenter.MsCenterUnit;
import com.dy.rtuMw.server.msCenter.MsObj;
import com.dy.rtuMw.server.rtuData.TaskSurpport;
import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
import com.dy.rtuMw.server.rtuData.p206V1.TkPreGenObjs;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -45,11 +46,12 @@
                        //心跳数据,根据任务TkDealHearBeatV2,这里收到的心跳时,一定是报警或状态发生了改变
                        DataCd02Vo dataCd02Vo = (DataCd02Vo)cdObj ;
                        if (dataCd02Vo.alarmVo != null || dataCd02Vo.stateVo != null) {
                            Object[] objs = this.getTaskResults(TkPreGenObjs.taskId);
                            Object[] objs = this.getTaskResults(TkPreGenObjsV2.taskId);
                            DbSv sv = (DbSv) objs[0];
                            PrController controller = (PrController) objs[1];
                            //心跳没有时钟,并且RTU针对心跳数据的机制是上报不成功不重发,所以时间采用本地时间
                            String now = DateTime.yyyy_MM_dd_HH_mm_ss() ;
                            this.toMsCenter(controller, d.getRtuAddr(), dV2, dataCd02Vo.alarmVo, dataCd02Vo.stateVo);
                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), now, dV2, dataCd02Vo.alarmVo, dataCd02Vo.stateVo);
                            this.saveHistory(sv, controller, d.getRtuAddr(), now, dV2, dataCd02Vo.alarmVo, dataCd02Vo.stateVo);
                            if(dataCd02Vo.stateVo != null && dataCd02Vo.stateVo.valveState != null && dataCd02Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){
@@ -65,6 +67,7 @@
                            Object[] objs = this.getTaskResults(TkPreGenObjsV2.taskId);
                            DbSv sv = (DbSv) objs[0];
                            PrController controller = (PrController) objs[1];
                            this.toMsCenter(controller, d.getRtuAddr(), dV2, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV2, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
                            this.saveHistory(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV2, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
                            if(dataCd81Vo.stateVo != null && dataCd81Vo.stateVo.valveState != null && dataCd81Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){
@@ -80,6 +83,7 @@
                            Object[] objs = this.getTaskResults(TkPreGenObjsV2.taskId);
                            DbSv sv = (DbSv) objs[0];
                            PrController controller = (PrController) objs[1];
                            this.toMsCenter(controller, d.getRtuAddr(), dV2, dataCd84Vo.alarmVo, dataCd84Vo.stateVo);
                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV2, dataCd84Vo.alarmVo, dataCd84Vo.stateVo);
                            this.saveHistory(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV2, dataCd84Vo.alarmVo, dataCd84Vo.stateVo);
                            /** 阀开工作报,阀门状态一定是打开状态,所以不设置下面数据以备后续任务设置虚拟卡状态
@@ -96,6 +100,7 @@
                            Object[] objs = this.getTaskResults(TkPreGenObjsV2.taskId);
                            DbSv sv = (DbSv) objs[0];
                            PrController controller = (PrController) objs[1];
                            this.toMsCenter(controller, d.getRtuAddr(), dV2, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo);
                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV2, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo);
                            this.saveHistory(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV2, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo);
                            if(dataCdC0Vo.stateVo != null && dataCdC0Vo.stateVo.valveState != null && dataCdC0Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){
@@ -111,6 +116,26 @@
            }
        }
    }
    /**
     * 报警状态数据存入消息中心
     * @param controller 控制器对象
     * @param rtuAddr 控制器地址
     * @param dV12 数据对象
     * @param alarmVo 报警对象
     * @param stateVo 状态对象
     */
    private void toMsCenter(PrController controller, String rtuAddr, DataV2 dV12, DataAlarmVo alarmVo, DataStateVo stateVo){
        if(alarmVo != null && controller != null){
            MsObj msObj = new MsObj() ;
            msObj.put("name", "报警");
            msObj.put("rtuAddr", rtuAddr);
            msObj.put("intakeId", controller.getIntakeId());
            msObj.put("alarm", alarmVo.alarmContent());
            msObj.put("dt", dV12.dt);
            MsCenterUnit.getInstance().pushMs(msObj);
        }
    }
    /**
     * 保存报警状态最新数据
     * @param sv 服务
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealCloseValveReportV2.java
@@ -8,6 +8,8 @@
import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
import com.dy.pipIrrGlobal.pojoSe.SeClient;
import com.dy.rtuMw.server.msCenter.MsCenterUnit;
import com.dy.rtuMw.server.msCenter.MsObj;
import com.dy.rtuMw.server.rtuData.TaskSurpport;
import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
import org.apache.logging.log4j.LogManager;
@@ -44,6 +46,7 @@
            PrController controller = (PrController)objs[1] ;
            SeClient clientVo = (SeClient)objs[3] ;//这个值对象中只有id和name会有值
            try{
                this.toMsCenter(clientVo, controller, d.getRtuAddr(), dV2, (DataCd83CloseVo)cdObj) ;
                this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV2, (DataCd83CloseVo)cdObj) ;
            }catch (Exception e){
                log.error("保存控制器开阀上报时发生异常", e);
@@ -52,6 +55,28 @@
    }
    /**
     * 把开阀消息存入消息中心
     * @param clientVo
     * @param controller
     * @param rtuAddr
     * @param dV2
     * @param dataCd83CloseVo
     */
    private void toMsCenter(SeClient clientVo, PrController controller, String rtuAddr, DataV2 dV2, DataCd83CloseVo dataCd83CloseVo){
        if(clientVo != null && controller != null){
            MsObj msObj = new MsObj() ;
            msObj.put("name", "关阀");
            msObj.put("clientId", clientVo.getId());
            msObj.put("clientName", clientVo.getName());
            msObj.put("clientAddress", clientVo.getAddress());
            msObj.put("icCardNo", dataCd83CloseVo.icCardNo);
            msObj.put("rtuAddr", rtuAddr);
            msObj.put("intakeId", controller.getIntakeId());
            msObj.put("dt", dV2.dt);
            MsCenterUnit.getInstance().pushMs(msObj);
        }
    }
    /**
     * 保存数据
     * @param sv 服务
     * @param clientVo 农户对象(不为空时,只有id和name有值)
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealOpenValveReportV2.java
@@ -8,6 +8,8 @@
import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
import com.dy.pipIrrGlobal.pojoSe.SeClient;
import com.dy.rtuMw.server.msCenter.MsCenterUnit;
import com.dy.rtuMw.server.msCenter.MsObj;
import com.dy.rtuMw.server.rtuData.TaskSurpport;
import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
import org.apache.logging.log4j.LogManager;
@@ -42,12 +44,36 @@
            PrController controller = (PrController)objs[1] ;
            SeClient clientVo = (SeClient)objs[3] ;//这个值对象中只有id和name会有值
            try{
                this.toMsCenter(clientVo, controller, d.getRtuAddr(), dV2, (DataCd83OpenVo)cdObj) ;
                this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV2, (DataCd83OpenVo)cdObj) ;
            }catch (Exception e){
                log.error("保存控制器开阀上报时发生异常", e);
            }
        }
    }
    /**
     * 把开阀消息存入消息中心
     * @param clientVo
     * @param controller
     * @param rtuAddr
     * @param dV2
     * @param dataCd83OpenVo
     */
    private void toMsCenter(SeClient clientVo, PrController controller, String rtuAddr, DataV2 dV2, DataCd83OpenVo dataCd83OpenVo){
        if(clientVo != null && controller != null){
            MsObj msObj = new MsObj() ;
            msObj.put("name", "开阀");
            msObj.put("clientId", clientVo.getId());
            msObj.put("clientName", clientVo.getName());
            msObj.put("clientAddress", clientVo.getAddress());
            msObj.put("icCardNo", dataCd83OpenVo.icCardNo);
            msObj.put("rtuAddr", rtuAddr);
            msObj.put("intakeId", controller.getIntakeId());
            msObj.put("dt", dV2.dt);
            MsCenterUnit.getInstance().pushMs(msObj);
        }
    }
    /**
     * 业务处理
     * @param sv 服务