zhubaomin
4 天以前 332bb1bdc76c4ce93f86c7279ca48542b2c4b080
Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
4个文件已修改
78 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/AlarmVo.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealAlarmStatus.java 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java
@@ -80,8 +80,9 @@
        if(para.data != null && para.data.getSubData() != null){
            DataCd81Vo cdData = (DataCd81Vo)((DataV202404)para.data.getSubData()).subData ;
            if(cdData.statePump != null){
                //泵/阀状态    (1:开泵/阀;0:关泵/阀)
                callback.notify(new ValveStateInfo(cdData.statePump.byteValue()== 1?true:false));
                //(表阀一体机:1:开泵/阀;0:关泵/阀)(测控一体阀:0:开泵/阀;1:关泵/阀)
                //协议解析时,统一转换为了测控一体阀,
                callback.notify(new ValveStateInfo(cdData.statePump.byteValue()== 0?true:false));
            }
        }
        return new MidResult[]{confirmCommand, midRs} ;
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java
@@ -79,13 +79,20 @@
        callback.callback(midRs.reportOrResponse_trueOrFalse, para.data.subData==null?null:((DataV202404)(para.data.subData)).subData);
        if(para.data != null && para.data.getSubData() != null){
            DataCdC2Vo subData = (DataCdC2Vo)((DataV202404)para.data.getSubData()).subData ;
            /* 2025-06-03 下面阀门状态是原来实现,现在统计改为用状态位数据判断阀门状态
            //    public Byte opType2 ;//开启关闭:0: 开启 -1:关闭
            //    public Boolean success ;//执行结果(true成功, false失败)
            if(subData.opType2.byteValue() == 0 && subData.success){
                callback.notify(new ValveStateInfo(true));
            }else if(subData.opType2.byteValue() == 1 && subData.success){
            }else if(subData.opType2.byteValue() == -1 && subData.success){
                callback.notify(new ValveStateInfo(false));
            }
            */
            if(subData.statePump != null){
                //(表阀一体机:1:开泵/阀;0:关泵/阀)(测控一体阀:0:开泵/阀;1:关泵/阀)
                //协议解析时,统一转换为了测控一体阀,
                callback.notify(new ValveStateInfo(subData.statePump.byteValue()== 0?true:false));
            }
        }
        return new MidResult[]{confirmCommand, midRs} ;
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/AlarmVo.java
@@ -9,7 +9,9 @@
    public static final byte DevOpenState = 1 ;
    public static final byte DevCloseState = 0 ;
    public Byte statePump ; //泵/阀状态    (表阀一体机:1:开泵/阀;0:关泵/阀)(测控一体阀:0:开泵/阀;1:关泵/阀)
    //泵/阀状态    (表阀一体机:1:开泵/阀;0:关泵/阀)(测控一体阀:0:开泵/阀;1:关泵/阀)
    //2025-06-03 协议解析时与“测控一体阀”进行了兼容
    public Byte statePump ;
    public Byte alarmWaterRemain ; //剩余水量报警    (1:小于报警上限报警 0:正常)
    public Byte alarm0WaterRemain ; //剩余水量为0关泵/阀    (1:剩余水量为0关泵  0:正常)
    public Byte alarmExceedYear ; //年度超采报警    (1:年用水量大于限制水量报警 0:正常)
@@ -160,7 +162,9 @@
    public String toStr(){
        StringBuffer sb = new StringBuffer() ;
        sb.append("泵/阀状态 : ") ;
        sb.append(statePump == null?"未知":(statePump.byteValue()==1?"泵/阀开":(statePump.byteValue()==0?"泵/阀关":"未知"))) ;
        //解析时已经做了兼容
        //sb.append(statePump == null?"未知":(statePump.byteValue()==1?"泵/阀开":(statePump.byteValue()==0?"泵/阀关":"未知"))) ;
        sb.append(statePump == null?"未知":(statePump.byteValue()==0?"泵/阀开":(statePump.byteValue()==1?"泵/阀关":"未知"))) ;
        sb.append("\n") ;
        sb.append("剩余水量报警 : ") ;
        sb.append(alarmWaterRemain == null?"未知":(alarmWaterRemain.byteValue() == 0 ? "正常":(alarmWaterRemain.byteValue() == 1 ? "报警":"未知"))) ;
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealAlarmStatus.java
@@ -54,64 +54,64 @@
                        //随机自报报
                        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];
                            if(dataCd81Vo.stateVo != null && dataCd81Vo.stateVo.valveState != null && dataCd81Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){
                                if(controller != null && controller.getIntakeId() != null){
                                    this.taskResult = new Object[]{controller.getIntakeId(), DataStateVo.ValveCloseState} ;
                                    toNext = true ;
                                }
                            }
                            if(this.needSave2Db( d.getRtuAddr())){
                                //在一个小时内没有存储报警数据
                                Object[] objs = this.getTaskResults(TkPreGenObjs.taskId);
                                DbSv sv = (DbSv) objs[0];
                                PrController controller = (PrController) objs[1];
                                this.toMsCenter(controller, d.getRtuAddr(), dV1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
                                this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
                                this.saveHistory(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
                                this.cacheSaveTime(d.getRtuAddr());
                                if(dataCd81Vo.stateVo != null && dataCd81Vo.stateVo.valveState != null && dataCd81Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){
                                    if(controller != null && controller.getIntakeId() != null){
                                        this.taskResult = new Object[]{controller.getIntakeId(), DataStateVo.ValveCloseState} ;
                                        toNext = true ;
                                    }
                                }
                            }
                        }
                    } 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];
                            /** 阀开工作报,阀门状态一定是打开状态,所以不设置下面数据以备后续任务设置虚拟卡状态
                             if(dataCd84Vo.stateVo != null && dataCd84Vo.stateVo.valveState != null && dataCd84Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){
                                 if(controller != null && controller.getIntakeId() != null){
                                     this.taskResult = new Object[]{controller.getIntakeId(), DataStateVo.ValveCloseState} ;
                                     toNext = true ;
                                 }
                             }*/
                            if(this.needSave2Db( d.getRtuAddr())) {
                                //在一个小时内没有存储报警数据
                                Object[] objs = this.getTaskResults(TkPreGenObjs.taskId);
                                DbSv sv = (DbSv) objs[0];
                                PrController controller = (PrController) objs[1];
                                this.toMsCenter(controller, d.getRtuAddr(), dV1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo);
                                this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo);
                                this.saveHistory(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo);
                                this.cacheSaveTime(d.getRtuAddr());
                                /** 阀开工作报,阀门状态一定是打开状态,所以不设置下面数据以备后续任务设置虚拟卡状态
                                 if(dataCd84Vo.stateVo != null && dataCd84Vo.stateVo.valveState != null && dataCd84Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){
                                 if(controller != null && controller.getIntakeId() != null){
                                 this.taskResult = new Object[]{controller.getIntakeId(), DataStateVo.ValveCloseState} ;
                                 toNext = true ;
                                 }
                                 }*/
                            }
                        }
                    } 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];
                            if(dataCdC0Vo.stateVo != null && dataCdC0Vo.stateVo.valveState != null && dataCdC0Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){
                                if(controller != null && controller.getIntakeId() != null){
                                    this.taskResult = new Object[]{controller.getIntakeId(), DataStateVo.ValveCloseState} ;
                                    toNext = true ;
                                }
                            }
                            if(this.needSave2Db( d.getRtuAddr())) {
                                //在一个小时内没有存储报警数据
                                Object[] objs = this.getTaskResults(TkPreGenObjs.taskId);
                                DbSv sv = (DbSv) objs[0];
                                PrController controller = (PrController) objs[1];
                                this.toMsCenter(controller, d.getRtuAddr(), dV1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo);
                                this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo);
                                this.saveHistory(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo);
                                this.cacheSaveTime(d.getRtuAddr());
                                if(dataCdC0Vo.stateVo != null && dataCdC0Vo.stateVo.valveState != null && dataCdC0Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){
                                    if(controller != null && controller.getIntakeId() != null){
                                        this.taskResult = new Object[]{controller.getIntakeId(), DataStateVo.ValveCloseState} ;
                                        toNext = true ;
                                    }
                                }
                            }
                        }
                    }