| | |
| | | @Override |
| | | public void execute(Object data) { |
| | | Data d = (Data)data ; |
| | | DataV202404 dV202404 = (DataV202404)d.getSubData() ;//前面任务已经判断不为null |
| | | DataV202404 dV202404 = (DataV202404)d.getSubData() ; |
| | | Object cdObj = dV202404.subData ; |
| | | if(cdObj != null){ |
| | | try{ |
| | | Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId) ; |
| | | DbSv sv = (DbSv)objs[0] ; |
| | | PrController controller = (PrController)objs[1] ; |
| | | if(cdObj instanceof DataCd81Vo){ |
| | | //设备终端随机自报 |
| | | DataCd81Vo cdData = (DataCd81Vo)(cdObj) ; |
| | | this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; |
| | | this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; |
| | | }else if(cdObj instanceof DataCd80_5BVo){ |
| | | //设备终端工作上报 + 查询设备终端实时值 |
| | | DataCd80_5BVo cdData = (DataCd80_5BVo)(cdObj) ; |
| | | this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; |
| | | this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; |
| | | }else if(cdObj instanceof DataCd93_A3Vo){ |
| | | //平台/APP远程关闭水泵/阀门 + 刷卡关泵/阀上报 |
| | | DataCd93_A3Vo cdData = (DataCd93_A3Vo)(cdObj) ; |
| | | this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ; |
| | | this.saveHistory(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ; |
| | | }else if(cdObj instanceof DataCd84Vo){ |
| | | //设备终端随机自报 |
| | | DataCd84Vo cdData = (DataCd84Vo)(cdObj) ; |
| | | this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.opDt, cdData, dV202404.dt) ; |
| | | this.saveHistory(sv, controller, d.getRtuAddr(), cdData.opDt, cdData, dV202404.dt) ; |
| | | }else if(cdObj instanceof DataCdC2Vo){ |
| | | //设备终端随机自报 |
| | | DataCdC2Vo cdData = (DataCdC2Vo)(cdObj) ; |
| | | this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; |
| | | this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; |
| | | //前面任务已经判断cdObj不为null |
| | | boolean toNext = false ; |
| | | try{ |
| | | Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId) ; |
| | | DbSv sv = (DbSv)objs[0] ; |
| | | PrController controller = (PrController)objs[1] ; |
| | | if(cdObj instanceof DataCd81Vo){ |
| | | //设备终端随机自报 |
| | | DataCd81Vo cdData = (DataCd81Vo)(cdObj) ; |
| | | this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; |
| | | this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; |
| | | if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){ |
| | | if(controller != null && controller.getIntakeId() != null){ |
| | | this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ; |
| | | toNext = true ; |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("保存控制器报警和状态数据时发生异常", e); |
| | | }else if(cdObj instanceof DataCd80_5BVo){ |
| | | //设备终端工作上报 + 查询设备终端实时值 |
| | | DataCd80_5BVo cdData = (DataCd80_5BVo)(cdObj) ; |
| | | this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; |
| | | this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; |
| | | if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){ |
| | | if(controller != null && controller.getIntakeId() != null){ |
| | | this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ; |
| | | toNext = true ; |
| | | } |
| | | } |
| | | }else if(cdObj instanceof DataCd93_A3Vo){ |
| | | //平台/APP远程关闭水泵/阀门 + 刷卡关泵/阀上报 |
| | | DataCd93_A3Vo cdData = (DataCd93_A3Vo)(cdObj) ; |
| | | this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ; |
| | | this.saveHistory(sv, controller, d.getRtuAddr(), cdData.endDt, cdData, dV202404.dt) ; |
| | | if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){ |
| | | if(controller != null && controller.getIntakeId() != null){ |
| | | this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ; |
| | | toNext = true ; |
| | | } |
| | | } |
| | | }else if(cdObj instanceof DataCd84Vo){ |
| | | //设备终端刷卡开泵/阀上报 |
| | | DataCd84Vo cdData = (DataCd84Vo)(cdObj) ; |
| | | this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.openDt, cdData, dV202404.dt) ; |
| | | this.saveHistory(sv, controller, d.getRtuAddr(), cdData.openDt, cdData, dV202404.dt) ; |
| | | if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){ |
| | | if(controller != null && controller.getIntakeId() != null){ |
| | | this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ; |
| | | toNext = true ; |
| | | } |
| | | } |
| | | }else if(cdObj instanceof DataCdC2Vo){ |
| | | //设备终端开关水泵/阀门成功/失败上报 |
| | | DataCdC2Vo cdData = (DataCdC2Vo)(cdObj) ; |
| | | this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; |
| | | this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ; |
| | | if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){ |
| | | if(controller != null && controller.getIntakeId() != null){ |
| | | this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ; |
| | | toNext = true ; |
| | | } |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("保存控制器报警和状态数据时发生异常", e); |
| | | } |
| | | if(toNext){ |
| | | this.toNextTasks(d); |
| | | } |
| | | } |
| | | /** |
| | |
| | | String rtuDt, |
| | | AlarmVo alarmVo, |
| | | String receiveDt) throws Exception { |
| | | RmAlarmStateLast po = sv.getRmAlarmStateLast(rtuAddr) ; |
| | | RmAlarmStateLast po = sv.getRmAlarmStateLast(controller.getIntakeId()) ; |
| | | if(po == null){ |
| | | po = new RmAlarmStateLast(null, |
| | | controller==null?null:controller.getId(), |
| | |
| | | alarmVo==null?null:alarmVo.alarmWaterMeterBreak, |
| | | alarmVo==null?null:alarmVo.alarmEleMeterFault, |
| | | alarmVo==null?null:alarmVo.alarm0MoneyRemain, |
| | | alarmVo==null?null:alarmVo.alarmInnerDoor, |
| | | alarmVo==null?null:alarmVo.alarmOuterDoor, |
| | | alarmVo==null?null:alarmVo.alarmDoor, |
| | | alarmVo==null?null:alarmVo.alarmDoor,//2025-02-19机箱外门报警项改为电池电压了 |
| | | 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, |
| | | alarmVo==null?null:alarmVo.alarmBatteryVolt,//电池电压(1:报警,0:正常) |
| | | alarmVo==null?null:alarmVo.alarmBlockValve,//阀门堵转报警(1:报警,0:正常) |
| | | (byte)0,//供电方式(0: 220V,1:蓄电池) |
| | | System.currentTimeMillis() |
| | | ) ; |
| | | sv.saveRmAlarmStateLast(po) ; |
| | | }else{ |
| | |
| | | alarmVo==null?null:alarmVo.alarmWaterMeterBreak, |
| | | alarmVo==null?null:alarmVo.alarmEleMeterFault, |
| | | alarmVo==null?null:alarmVo.alarm0MoneyRemain, |
| | | alarmVo==null?null:alarmVo.alarmInnerDoor, |
| | | alarmVo==null?null:alarmVo.alarmOuterDoor, |
| | | alarmVo==null?null:alarmVo.alarmDoor, |
| | | alarmVo==null?null:alarmVo.alarmDoor,//2025-02-19机箱外门报警项改为电池电压了 |
| | | 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, |
| | | alarmVo==null?null:alarmVo.alarmBatteryVolt,//电池电压(1:报警,0:正常) |
| | | alarmVo==null?null:alarmVo.alarmBlockValve,//阀门堵转报警(1:报警,0:正常) |
| | | (byte)0//供电方式(0: 220V,1:蓄电池) |
| | | ) ; |
| | | sv.saveRmAlarmStateHistory(po) ; |
| | | } |
| | |
| | | po.alarmWaterMeterBreak = alarmVo.alarmWaterMeterBreak ; |
| | | po.alarmEleMeterFault = alarmVo.alarmEleMeterFault ; |
| | | po.alarm0MoneyRemain = alarmVo.alarm0MoneyRemain ; |
| | | po.alarmInnerDoor = alarmVo.alarmInnerDoor ; |
| | | po.alarmOuterDoor = alarmVo.alarmOuterDoor ; |
| | | po.alarmInnerDoor = alarmVo.alarmDoor; |
| | | po.alarmOuterDoor = alarmVo.alarmDoor; |
| | | po.alarmEleMiss = alarmVo.alarmEleMiss ; |
| | | po.alarmEleExceed = alarmVo.alarmEleExceed ; |
| | | po.alarmEleLowVolt = alarmVo.alarmEleLowVolt ; |
| | | po.stateIcEnable = alarmVo.stateIcEnable ; |
| | | po.alarmBatteryVolt = alarmVo.alarmBatteryVolt ; |
| | | po.alarmValve = alarmVo.alarmBlockValve; |
| | | } |
| | | return po ; |
| | | } |
| | | |
| | | } |