From 8585fcb9ac0ddc43ccee564e383500bd964d8d2e Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期一, 13 九月 2021 09:38:34 +0800
Subject: [PATCH] Merge branch 'property' into test
---
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