From d1efd96235d1d43866d2aea8c5ebdd14039365cb Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期四, 09 九月 2021 16:57:50 +0800 Subject: [PATCH] 修改报警相关功能 --- springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServerHandler.java | 48 +++++++++++++++++++++++++++++++----------------- 1 files changed, 31 insertions(+), 17 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServerHandler.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServerHandler.java index 4839a7f..2dcc215 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServerHandler.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServerHandler.java @@ -23,6 +23,7 @@ import javax.annotation.Resource; import java.time.Duration; import java.util.Date; +import java.util.Objects; @Slf4j @Component @@ -63,11 +64,15 @@ if(msg.toString().startsWith("4A1803")){ String serial=msg.toString().substring(14,24); myTools.writeToClient("404A03"+msg.toString().substring(msg.toString().length()-2)+"23",ctx,"事件包"); - ComPropertyAlarm comPropertyAlarm=new ComPropertyAlarm(); - comPropertyAlarm.setCreateTime(DateUtil.date()); - comPropertyAlarm.setSerialNo(serial); - comPropertyAlarm.setType(ComPropertyAlarm.type.one); - nettyServerHandler.comPropertyAlarmDao.insert(comPropertyAlarm); +// ComPropertyAlarm comPropertyAlarm=new ComPropertyAlarm(); +// comPropertyAlarm.setCreateTime(DateUtil.date()); +// comPropertyAlarm.setSerialNo(serial); +// comPropertyAlarm.setType(ComPropertyAlarm.type.one); +// nettyServerHandler.comPropertyAlarmDao.insert(comPropertyAlarm); + if(msg.toString().startsWith("4A18031")){ + delayAlarm(serial); + } + } ctx.flush(); } @@ -88,30 +93,39 @@ nettyServerHandler.stringRedisTemplate=this.stringRedisTemplate; nettyServerHandler.rabbitTemplate=this.rabbitTemplate; } - + //报警事件包延迟处理方法 private void delayAlarm(String serial){ int duration=0; if(StringUtils.isNotEmpty(serial)){ + + ComPropertyEquipment comPropertyEquipment=new ComPropertyEquipment(); if (nettyServerHandler.stringRedisTemplate.hasKey(serial)){ - ComPropertyEquipment comPropertyEquipment= JSONObject.parseObject(nettyServerHandler.stringRedisTemplate.boundValueOps(serial).get(),ComPropertyEquipment.class); - if(nettyServerHandler.stringRedisTemplate.hasKey(comPropertyEquipment.getCommunityId().toString())){ - duration=Integer.parseInt(nettyServerHandler.stringRedisTemplate.boundValueOps(comPropertyEquipment.getCommunityId().toString()).get()); - }else{ - ComPropertyAlarmSetting comPropertyAlarmSetting=nettyServerHandler.comPropertyAlarmSettingDao.getByCommunityId(comPropertyEquipment.getCommunityId()); - duration=comPropertyAlarmSetting.getTriggerTime(); - nettyServerHandler.stringRedisTemplate.boundValueOps(comPropertyEquipment.getCommunityId().toString()).set(comPropertyAlarmSetting.getTriggerTime().toString()); - } + comPropertyEquipment= JSONObject.parseObject(nettyServerHandler.stringRedisTemplate.boundValueOps(serial).get(),ComPropertyEquipment.class); + duration = getDuration(Objects.requireNonNull(comPropertyEquipment)); nettyServerHandler.stringRedisTemplate.boundValueOps(serial).set(JSONObject.toJSONString(comPropertyEquipment), Duration.ofHours(duration)); } else { - ComPropertyEquipment comPropertyEquipment=nettyServerHandler.comPropertyEquipmentDao.selectOne(new QueryWrapper<ComPropertyEquipment>().eq("serial_no",serial)); + comPropertyEquipment=nettyServerHandler.comPropertyEquipmentDao.selectOne(new QueryWrapper<ComPropertyEquipment>().eq("serial_no",serial)); + duration = getDuration(comPropertyEquipment); nettyServerHandler.stringRedisTemplate.boundValueOps(serial).set(JSONObject.toJSONString(comPropertyEquipment)); } int finalDuration = duration; - nettyServerHandler.rabbitTemplate.convertAndSend("delayed.queue","delayed.key", message -> { - message.getMessageProperties().setDelay(finalDuration); + nettyServerHandler.rabbitTemplate.convertAndSend("delayed.exchange","delayed.key",comPropertyEquipment, message -> { + message.getMessageProperties().setHeader("x-delay", finalDuration*1000*3601); return message; }); } } + + private int getDuration(ComPropertyEquipment comPropertyEquipment) { + int duration; + if(nettyServerHandler.stringRedisTemplate.hasKey(comPropertyEquipment.getCommunityId().toString())){ + duration=Integer.parseInt(nettyServerHandler.stringRedisTemplate.boundValueOps(comPropertyEquipment.getCommunityId().toString()).get()); + }else{ + ComPropertyAlarmSetting comPropertyAlarmSetting=nettyServerHandler.comPropertyAlarmSettingDao.getByCommunityId(comPropertyEquipment.getCommunityId()); + duration=comPropertyAlarmSetting.getTriggerTime(); + nettyServerHandler.stringRedisTemplate.boundValueOps(comPropertyEquipment.getCommunityId().toString()).set(comPropertyAlarmSetting.getTriggerTime().toString()); + } + return duration; + } } -- Gitblit v1.7.1