hfxc226 2 gadi atpakaļ
vecāks
revīzija
6f08e58c66

+ 25 - 21
platform-opc/src/main/java/com/platform/opc/servie/OpcTask.java

@@ -40,33 +40,37 @@ public class OpcTask {
      */
     @Scheduled(fixedDelay = 100000)
     public void addAndDelItems() {
-        RedisUtils.setString(RedisKeyConstants.redis_opc_update_flag, "1");
-        List<String> list = RedisUtils.getList(RedisKeyConstants.redis_opc_wait_add_list, 0, -1);
-        if (!CollectionUtils.isEmpty(list)) {
-            List<String> uniqueStr = list.stream().distinct().collect(Collectors.toList());
-            if (!CollectionUtils.isEmpty(uniqueStr)) {
-                List<RemoteOpc> remoteOpcList = OpcDAClient.addGroupAndItems(findAllItems(uniqueStr));
-                if(!CollectionUtils.isEmpty(remoteOpcList)){
-                    remoteOpcMapper.updateBatch(remoteOpcList);
-                    // log.info("添加新点位:" + uniqueStr);
+        log.info("启动追加");
+        String ok = RedisUtils.getString(RedisKeyConstants.redis_ok);
+        if (StringUtils.isBlank(ok)) {
+            RedisUtils.setString(RedisKeyConstants.redis_opc_update_flag, "1");
+            List<String> list = RedisUtils.getList(RedisKeyConstants.redis_opc_wait_add_list, 0, -1);
+            if (!CollectionUtils.isEmpty(list)) {
+                List<String> uniqueStr = list.stream().distinct().collect(Collectors.toList());
+                if (!CollectionUtils.isEmpty(uniqueStr)) {
+                    List<RemoteOpc> remoteOpcList = OpcDAClient.addGroupAndItems(findAllItems(uniqueStr));
+                    if (!CollectionUtils.isEmpty(remoteOpcList)) {
+                        remoteOpcMapper.updateBatch(remoteOpcList);
+                        // log.info("添加新点位:" + uniqueStr);
+                    }
                 }
             }
-        }
-        RedisUtils.del(RedisKeyConstants.redis_opc_wait_add_list);
+            RedisUtils.del(RedisKeyConstants.redis_opc_wait_add_list);
 
-        List<String> removeList = RedisUtils.getList(RedisKeyConstants.redis_opc_wait_remove_list, 0, -1);
-        if (!CollectionUtils.isEmpty(removeList)) {
-            List<RemoteOpc> remoteOpcList = findAllItems(removeList);
-            if (!CollectionUtils.isEmpty(remoteOpcList)) {
-                List<RemoteOpc> uniqueStr = remoteOpcList.stream().distinct().collect(Collectors.toList());
-                if (!CollectionUtils.isEmpty(uniqueStr)) {
-                    OpcDAClient.removeItems(remoteOpcList.stream().collect(Collectors.groupingBy(RemoteOpc::getLine)));
-                    log.info("移除点位:" + removeList);
+            List<String> removeList = RedisUtils.getList(RedisKeyConstants.redis_opc_wait_remove_list, 0, -1);
+            if (!CollectionUtils.isEmpty(removeList)) {
+                List<RemoteOpc> remoteOpcList = findAllItems(removeList);
+                if (!CollectionUtils.isEmpty(remoteOpcList)) {
+                    List<RemoteOpc> uniqueStr = remoteOpcList.stream().distinct().collect(Collectors.toList());
+                    if (!CollectionUtils.isEmpty(uniqueStr)) {
+                        OpcDAClient.removeItems(remoteOpcList.stream().collect(Collectors.groupingBy(RemoteOpc::getLine)));
+                        log.info("移除点位:" + removeList);
+                    }
                 }
             }
+            RedisUtils.del(RedisKeyConstants.redis_opc_wait_remove_list);
+            RedisUtils.del(RedisKeyConstants.redis_opc_update_flag);
         }
-        RedisUtils.del(RedisKeyConstants.redis_opc_wait_remove_list);
-        RedisUtils.del(RedisKeyConstants.redis_opc_update_flag);
     }
 
 

+ 0 - 3
platform-opc/src/main/java/com/platform/opc/util/OpcDAClient.java

@@ -242,9 +242,6 @@ public class OpcDAClient {
 
     private static List<RemoteOpc> saveValues(AddFailedException exception) {
         List<RemoteOpc> remoteOpcFailList = new ArrayList<>();
-        // 如果报错要清空这2个,不然获取数据和保存数据不动
-        RedisUtils.del(RedisKeyConstants.redis_ok);
-        RedisUtils.del(RedisKeyConstants.redis_opc_update_flag);
         Map<String, Integer> failedItems = exception.getErrors();
         Map<String, Item> addItems = exception.getItems();
         if (failedItems != null) {// 有不存在的item,需要更新对应的点位信息