Browse Source

修改缓存设备与报警条件关联的问题

lixing 3 years ago
parent
commit
c6e5057c7b

+ 4 - 0
src/main/java/com/persagy/cache/AlarmInfoCache.java

@@ -201,6 +201,7 @@ public class AlarmInfoCache {
             objConditionInfo = objConditionMap.get(objId);
         } else {
             objConditionInfo = new ObjConditionInfo(objConditionRel.getProjectId());
+            objConditionMap.put(objId, objConditionInfo);
         }
         ItemCodeCondition condition = new ItemCodeCondition();
         condition.setConditionId(objConditionRel.getConditionId());
@@ -228,6 +229,9 @@ public class AlarmInfoCache {
         condition.setConditionId(objConditionRel.getConditionId());
         condition.setItemCode(objConditionRel.getItemCode());
         objConditionInfo.removeCondition(condition);
+        if (CollectionUtils.isEmpty(objConditionInfo.getConditions())) {
+            objConditionMap.remove(objId);
+        }
     }
 
 }

+ 4 - 5
src/main/java/com/persagy/client/GroupNettyClientHandler.java

@@ -83,20 +83,19 @@ public class GroupNettyClientHandler extends ChannelInboundHandlerAdapter {
         nettyMessage.setContent(Arrays.asList(content));
         log.info(nettyMessage.toString());
         ctx.channel().writeAndFlush(nettyMessage.toString());
-        iniAlarmResult(ctx);
+        resumeSendUndeliveredMsg(ctx);
     }
 
-    private void iniAlarmResult(ChannelHandlerContext ctx) {
+    private void resumeSendUndeliveredMsg(ChannelHandlerContext ctx) {
         try {
-            log.info("--initAlarmResult--");
             TimeInterval timer = DateUtil.timer();
             while (NettyMessageQueue.getNettyMessageQueue().size() > 0 && timer.interval() < 10000) {
                 String msg = NettyMessageQueue.getNettyMessageQueue().consume();
-                log.info("剩余报警消息令总数:{}", NettyMessageQueue.getNettyMessageQueue().size());
+                log.info("剩余未发送消息总数:{}", NettyMessageQueue.getNettyMessageQueue().size());
                 ctx.writeAndFlush(msg);
             }
         } catch (Exception e) {
-            log.error("发送报警消息失败", e);
+            log.error("发送消息失败", e);
         }
     }
 

+ 1 - 2
src/main/java/com/persagy/client/WebSocketClientFactory.java

@@ -221,8 +221,7 @@ public class WebSocketClientFactory {
      * @version: V1.0
      */
     @Scheduled(initialDelay = 20000, fixedDelay = 10000)
-    public void holderConneted() {
-        log.debug("连接状态监测中....");
+    public void holderConnected() {
         try {
             WebSocketClient outCallWebSocketClientHolder = this.getOutCallWebSocketClientHolder();
             if (null == outCallWebSocketClientHolder) {

+ 6 - 8
src/main/java/com/persagy/entity/NettyMessage.java

@@ -4,17 +4,15 @@ import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.annotation.JSONField;
 import com.persagy.enumeration.NettyMsgTypeEnum;
 import lombok.Data;
-import lombok.Getter;
 import lombok.NoArgsConstructor;
-import lombok.Setter;
 
 import java.util.List;
 
 @Data
 @NoArgsConstructor
 public class NettyMessage<T> {
-    /*
-    唯一标识
+    /**
+     * 唯一标识
      */
     @JSONField()
     private long streamId;
@@ -24,15 +22,15 @@ public class NettyMessage<T> {
     @JSONField()
     private NettyMsgTypeEnum opCode;
     /**
-    请求来源
+     * 请求来源
      */
     @JSONField()
     private String source = "project";
 
     /**
-    传输内容
+     * 传输内容
      */
-    @JSONField(jsonDirect=true)
+    @JSONField(jsonDirect = true)
     private List<T> content;
     /**
      * 备注说明
@@ -41,7 +39,7 @@ public class NettyMessage<T> {
     private String remark;
 
     /**
-    成功标识
+     * 成功标识
      */
     @JSONField()
     private Boolean success;

+ 1 - 0
src/main/java/com/persagy/service/impl/NettyMsgHandler.java

@@ -82,6 +82,7 @@ public class NettyMsgHandler {
         List<ObjConditionRel> content = getObjConditionRelList(msg);
         if (CollectionUtils.isEmpty(content)) {
             log.error("接收到的消息中报警条件与设备的关联关系为空");
+            return;
         }
         log.info("正在同步报警条件与设备的关联关系 -> 项目id:[{}], 同步条数[{}]",
                 content.get(0).getProjectId(), content.size());

+ 2 - 0
src/main/resources/application.yml

@@ -39,11 +39,13 @@ spring:
 group:
   code: WD   #标识哪个集团 比如万达使用WD, 华润使用HR
   alarm:
+#    host: 192.168.17.55    #netty IP
     host: localhost    #netty IP
     port: 9986          #netty 端口9986
 terminal:  #边缘端IOT采集程序地址
   alarm:  # 拼接后的地址为ws://host:port/suffix
     compress: false    #采用的是压缩方式还是不压缩方式  true-压缩 false-不压缩
+#    host: 192.168.17.55
     host: localhost
     port: 8080
     suffix: websocket/iot   #websocker后缀

+ 1 - 0
src/main/resources/logback-spring.xml

@@ -89,4 +89,5 @@ configuration 子节点为 appender、logger、root       -->
         <appender-ref ref="stdout"/>
         <appender-ref ref="infoFile"/>
     </root>
+    <logger name="com.persagy" level="DEBUG"/>
 </configuration>