浏览代码

完成opcua获取树的枝节点和叶节点

zhoupeng 1 年之前
父节点
当前提交
6c334d5062

+ 2 - 1
industry-system/cqcy-ei-common/src/main/java/com/example/opc_common/entity/Item.java

@@ -1,6 +1,7 @@
 package com.example.opc_common.entity;
 
 import com.example.opc_common.util.Blank;
+import com.example.opc_common.util.ConstantStr;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -36,7 +37,7 @@ public class Item implements Serializable {
     /**
      * 项类型,0附属属性,1基础属性
      */
-    private Integer itemType;
+    private Integer itemType= ConstantStr.BASIC_ATTRIBUTES;
     /**
      * opcUa特有的nodeId路径
      */

+ 0 - 63
industry-system/cqcy-ei-ua/src/main/java/com/example/opc_ua/controller/UaDataSourceController.java

@@ -1,63 +0,0 @@
-package com.example.opc_ua.controller;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.example.opc_common.entity.DataSource;
-import com.example.opc_common.util.Blank;
-import com.example.opc_common.util.ConstantStr;
-import com.example.opc_common.util.Result;
-import com.example.opc_ua.task.OpcUaAsyncTask;
-import com.example.opc_ua.util.OpcUaUtil;
-import com.example.opc_ua.util.UaRedisUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-
-@RestController
-@RequestMapping("uaDataSource")
-@Slf4j
-public class UaDataSourceController {
-
-    @Autowired
-    private UaRedisUtil redisUtil;
-
-    @Autowired
-    private OpcUaAsyncTask opcAsyncTask;
-
-    /**
-     * 测试数据源配置连接
-     *
-     * @param dataSource
-     * @return
-     */
-    @PostMapping("/testConnect")
-    public Result testConnect(@RequestBody DataSource dataSource) {
-        return OpcUaUtil.opcUaTestConnect(dataSource);
-    }
-
-    @PostMapping("/getDataSourceItemTree")
-    public Result getDataSourceItemTree(@RequestBody DataSource dataSource) {
-        Object objectTree = redisUtil.get(ConstantStr.DATA_SOURCE_TREE + dataSource.getId());
-        if (Blank.isNotEmpty(objectTree)) {
-            List<JSONObject> jsonObjects = JSON.parseObject(String.valueOf(objectTree), List.class);
-            opcAsyncTask.opcUaGetTree(dataSource);
-            return Result.ok(jsonObjects);
-        } else {
-            Result result = OpcUaUtil.opcUaGetTree(dataSource);
-            List<JSONObject> dataList = JSON.parseObject(String.valueOf(result.getData()), List.class);
-            redisUtil.set(ConstantStr.DATA_SOURCE_TREE + dataSource.getId(), String.valueOf(dataList));
-            return result;
-        }
-    }
-
-    @PostMapping("/genDataSourceItemTree")
-    public void genDataSourceItemTree(@RequestBody DataSource dataSource) {
-        opcAsyncTask.opcUaGetTree(dataSource);
-    }
-
-}

+ 0 - 48
industry-system/cqcy-ei-ua/src/main/java/com/example/opc_ua/task/OpcUaAsyncTask.java

@@ -1,48 +0,0 @@
-package com.example.opc_ua.task;
-
-import com.example.opc_common.entity.DataSource;
-import com.example.opc_common.util.Blank;
-import com.example.opc_common.util.ConstantStr;
-import com.example.opc_ua.util.OpcUaUtil;
-import com.example.opc_ua.util.UaRedisUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.eclipse.milo.opcua.sdk.client.OpcUaClient;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.stereotype.Component;
-
-import java.text.SimpleDateFormat;
-
-@Component
-@Async("threadPoolTaskExecutor")
-@Slf4j
-public class OpcUaAsyncTask {
-
-    private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
-
-    @Autowired
-    private UaRedisUtil redisUtil;
-
-    @Autowired
-    private UaAsyncAsyncTask asyncAsyncTask;
-
-    public void opcUaGetTree(DataSource dataSource) {
-        OpcUaClient opcUaClient = null;
-        try {
-            opcUaClient = OpcUaUtil.createClient(dataSource);
-            if (Blank.isEmpty(opcUaClient)) {
-                log.info("客户端创建失败");
-            }
-            opcUaClient.connect().get();
-            redisUtil.set(ConstantStr.DATA_SOURCE_TREE + dataSource.getId(), String.valueOf(OpcUaUtil.generOpcUaTree(opcUaClient, null)));
-        } catch (Exception e) {
-            log.info(OpcUaUtil.genException(e.getMessage()));
-        } finally {
-            if (Blank.isNotEmpty(opcUaClient)) {
-                opcUaClient.disconnect();
-            }
-        }
-    }
-
-
-}

+ 0 - 12
industry-system/cqcy-ei-ua/src/main/java/com/example/opc_ua/task/UaAsyncAsyncTask.java

@@ -1,12 +0,0 @@
-package com.example.opc_ua.task;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.stereotype.Component;
-
-@Component
-@Async("threadPoolTaskExecutor")
-@Slf4j
-public class UaAsyncAsyncTask {
-
-}

+ 18 - 13
industry-system/cqcy-ei-ua/src/main/java/com/example/opc_ua/util/OpcUaUtil.java

@@ -17,7 +17,6 @@ import org.eclipse.milo.opcua.sdk.client.api.config.OpcUaClientConfig;
 import org.eclipse.milo.opcua.sdk.client.api.identity.AnonymousProvider;
 import org.eclipse.milo.opcua.sdk.client.api.identity.UsernameProvider;
 import org.eclipse.milo.opcua.sdk.client.nodes.UaNode;
-import org.eclipse.milo.opcua.sdk.client.nodes.UaViewNode;
 import org.eclipse.milo.opcua.stack.client.DiscoveryClient;
 import org.eclipse.milo.opcua.stack.core.AttributeId;
 import org.eclipse.milo.opcua.stack.core.BuiltinDataType;
@@ -25,8 +24,10 @@ import org.eclipse.milo.opcua.stack.core.Identifiers;
 import org.eclipse.milo.opcua.stack.core.UaException;
 import org.eclipse.milo.opcua.stack.core.types.builtin.*;
 import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger;
+import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UShort;
 import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.Unsigned;
 import org.eclipse.milo.opcua.stack.core.types.enumerated.MonitoringMode;
+import org.eclipse.milo.opcua.stack.core.types.enumerated.NodeClass;
 import org.eclipse.milo.opcua.stack.core.types.enumerated.TimestampsToReturn;
 import org.eclipse.milo.opcua.stack.core.types.structured.*;
 import org.eclipse.milo.opcua.stack.core.util.EndpointUtil;
@@ -282,8 +283,10 @@ public class OpcUaUtil {
                 DataModel dm = dmMap.get(itemName);
                 JSONObject jsonObject = new JSONObject();
                 DataValue dataValue = client.readValue(0.0, TimestampsToReturn.Both, n).get();
+                String name = mapName.get(itemName);
                 jsonObject.put("dataSourceName", dataSource.getDataSourceName());
-                jsonObject.put("itemName", mapName.get(itemName));
+                jsonObject.put("itemName", name);
+                jsonObject.put("itemReadName", name);
                 StatusCode statusCode = dataValue.getStatusCode();
                 jsonObject.put("quality", statusCode.isGood() ? "good" : "bad");
                 Variant value = dataValue.getValue();
@@ -468,39 +471,41 @@ public class OpcUaUtil {
             if (Blank.isEmpty(nd)) {
                 continue;
             }
-            try {
-                if (!((UaViewNode) nd).getContainsNoLoops()) {
+            NodeClass nodeClass = nd.getNodeClass();
+            NodeId nodeId = nd.getNodeId();
+            UShort namespaceIndex = nodeId.getNamespaceIndex();
+            if (nodeClass == NodeClass.Variable) {
+                if (namespaceIndex.intValue() == UShort.MIN_VALUE) {
+                    //是枝节点
                     Map<String, Object> map = new HashMap<>();
                     map.put("itemName", nd.getBrowseName().getName());
-//                map.put("nodeId", nd.getNodeId());
+                    map.put("nodeId", nd.getNodeId());
                     map.put("nodeIndex", nd.getNodeId().getNamespaceIndex().intValue());
                     map.put("dataType", nd.getNodeId().getType());
                     map.put("description", nd.getDescription());
                     mapList.add(map);
                 } else {
+                    //是叶节点,且叶节点才有数值类型,dataType
                     Map<String, Object> map = new HashMap<>();
                     String name = nd.getBrowseName().getName();
                     map.put("fullPath", str + "." + name);
                     map.put("itemName", name);
-                    map.put("itemReadName", name);
+                    map.put("itemReadName", str + "." + name);
 //                map.put("nodeId", nd.getNodeId());
                     map.put("nodeIndex", nd.getNodeId().getNamespaceIndex().intValue());
                     map.put("dataType", nd.getNodeId().getType());
                     map.put("description", nd.getDescription());
                     mapLeaveList.add(map);
                 }
-            } catch (Exception e) {
+            } else {
+                //是枝节点
                 Map<String, Object> map = new HashMap<>();
-                String name = nd.getBrowseName().getName();
-                map.put("fullPath", str + "." + name);
-                map.put("itemName", name);
-                map.put("itemReadName", name);
-//                map.put("nodeId", nd.getNodeId());
+                map.put("itemName", nd.getBrowseName().getName());
+                map.put("nodeId", nd.getNodeId());
                 map.put("nodeIndex", nd.getNodeId().getNamespaceIndex().intValue());
                 map.put("dataType", nd.getNodeId().getType());
                 map.put("description", nd.getDescription());
                 mapList.add(map);
-//                e.printStackTrace();
             }
 //            if (Objects.requireNonNull(nd.getBrowseName().getName()).contains("_")) {
 //                continue;

+ 0 - 674
industry-system/cqcy-ei-ua/src/main/java/com/example/opc_ua/util/UaRedisUtil.java

@@ -1,674 +0,0 @@
-package com.example.opc_ua.util;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.BoundListOperations;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Component;
-import org.springframework.util.CollectionUtils;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-
-@Component
-public class UaRedisUtil {
-
-    @Autowired
-    private RedisTemplate<String, Object> redisTemplate;
-
-    public UaRedisUtil(RedisTemplate<String, Object> redisTemplate) {
-        this.redisTemplate = redisTemplate;
-    }
-
-    /**
-     * 指定缓存失效时间
-     *
-     * @param key  键
-     * @param time 时间(秒)
-     * @return
-     */
-    public boolean expire(String key, long time) {
-        try {
-            if (time > 0) {
-                redisTemplate.expire(key, time, TimeUnit.SECONDS);
-            }
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    /**
-     * 根据key 获取过期时间
-     *
-     * @param key 键 不能为null
-     * @return 时间(秒) 返回0代表为永久有效
-     */
-    public long getExpire(String key) {
-        return redisTemplate.getExpire(key, TimeUnit.SECONDS);
-    }
-
-    /**
-     * 判断key是否存在
-     *
-     * @param key 键
-     * @return true 存在 false不存在
-     */
-    public boolean hasKey(String key) {
-        try {
-            return redisTemplate.hasKey(key);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    /**
-     * 删除缓存
-     *
-     * @param key 可以传一个值 或多个
-     */
-    @SuppressWarnings("unchecked")
-    public void del(String... key) {
-        if (key != null && key.length > 0) {
-            if (key.length == 1) {
-                redisTemplate.delete(key[0]);
-            } else {
-                redisTemplate.delete(CollectionUtils.arrayToList(key));
-            }
-        }
-    }
-
-    // ============================String=============================
-
-    /**
-     * 普通缓存获取
-     *
-     * @param key 键
-     * @return 值
-     */
-    public Object get(String key) {
-        return key == null ? null : redisTemplate.opsForValue().get(key);
-    }
-
-    /**
-     * 普通缓存放入
-     *
-     * @param key   键
-     * @param value 值
-     * @return true成功 false失败
-     */
-    public boolean set(String key, Object value) {
-        try {
-            redisTemplate.opsForValue().set(key, value);
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    /**
-     * 普通缓存放入并设置时间
-     *
-     * @param key   键
-     * @param value 值
-     * @param time  时间(秒) time要大于0 如果time小于等于0 将设置无限期
-     * @return true成功 false 失败
-     */
-    public boolean set(String key, Object value, long time) {
-        try {
-            if (time > 0) {
-                redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
-            } else {
-                set(key, value);
-            }
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    /**
-     * 普通缓存放入并设置时间
-     *
-     * @param key   键
-     * @param value 值
-     * @param time  时间
-     * @return true 成功 false 失败
-     */
-    public boolean set(String key, Object value, long time, TimeUnit unit) {
-        try {
-            if (time > 0) {
-                redisTemplate.opsForValue().set(key, value, time, unit);
-            } else {
-                set(key, value);
-            }
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-
-    /**
-     * 递增
-     *
-     * @param key   键
-     * @param delta 要增加几(大于0)
-     * @return
-     */
-    public long incr(String key, long delta) {
-        if (delta < 0) {
-            throw new RuntimeException("递增因子必须大于0");
-        }
-        return redisTemplate.opsForValue().increment(key, delta);
-    }
-
-    /**
-     * 递减
-     *
-     * @param key   键
-     * @param delta 要减少几(小于0)
-     * @return
-     */
-    public long decr(String key, long delta) {
-        if (delta < 0) {
-            throw new RuntimeException("递减因子必须大于0");
-        }
-        return redisTemplate.opsForValue().increment(key, -delta);
-    }
-
-    // ================================Map=================================
-
-    /**
-     * HashGet
-     *
-     * @param key  键 不能为null
-     * @param item 项 不能为null
-     * @return 值
-     */
-    public Object hget(String key, String item) {
-        return redisTemplate.opsForHash().get(key, item);
-    }
-
-    /**
-     * 获取hashKey对应的所有键值
-     *
-     * @param key 键
-     * @return 对应的多个键值
-     */
-    public Map<Object, Object> hmget(String key) {
-        return redisTemplate.opsForHash().entries(key);
-    }
-
-    /**
-     * HashSet
-     *
-     * @param key 键
-     * @param map 对应多个键值
-     * @return true 成功 false 失败
-     */
-    public boolean hmset(String key, Map<String, Object> map) {
-        try {
-            redisTemplate.opsForHash().putAll(key, map);
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    /**
-     * HashSet 并设置时间
-     *
-     * @param key  键
-     * @param map  对应多个键值
-     * @param time 时间(秒)
-     * @return true成功 false失败
-     */
-    public boolean hmset(String key, Map<String, Object> map, long time) {
-        try {
-            redisTemplate.opsForHash().putAll(key, map);
-            if (time > 0) {
-                expire(key, time);
-            }
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    /**
-     * 向一张hash表中放入数据,如果不存在将创建
-     *
-     * @param key   键
-     * @param item  项
-     * @param value 值
-     * @return true 成功 false失败
-     */
-    public boolean hset(String key, String item, Object value) {
-        try {
-            redisTemplate.opsForHash().put(key, item, value);
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    /**
-     * 向一张hash表中放入数据,如果不存在将创建
-     *
-     * @param key   键
-     * @param item  项
-     * @param value 值
-     * @param time  时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间
-     * @return true 成功 false失败
-     */
-    public boolean hset(String key, String item, Object value, long time) {
-        try {
-            redisTemplate.opsForHash().put(key, item, value);
-            if (time > 0) {
-                expire(key, time);
-            }
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    /**
-     * 删除hash表中的值
-     *
-     * @param key  键 不能为null
-     * @param item 项 可以使多个 不能为null
-     */
-    public void hdel(String key, Object... item) {
-        redisTemplate.opsForHash().delete(key, item);
-    }
-
-    /**
-     * 判断hash表中是否有该项的值
-     *
-     * @param key  键 不能为null
-     * @param item 项 不能为null
-     * @return true 存在 false不存在
-     */
-    public boolean hHasKey(String key, String item) {
-        return redisTemplate.opsForHash().hasKey(key, item);
-    }
-
-    /**
-     * hash递增 如果不存在,就会创建一个 并把新增后的值返回
-     *
-     * @param key  键
-     * @param item 项
-     * @param by   要增加几(大于0)
-     * @return
-     */
-    public double hincr(String key, String item, double by) {
-        return redisTemplate.opsForHash().increment(key, item, by);
-    }
-
-    /**
-     * hash递减
-     *
-     * @param key  键
-     * @param item 项
-     * @param by   要减少记(小于0)
-     * @return
-     */
-    public double hdecr(String key, String item, double by) {
-        return redisTemplate.opsForHash().increment(key, item, -by);
-    }
-
-    // ============================set=============================
-
-    /**
-     * 根据key获取Set中的所有值
-     *
-     * @param key 键
-     * @return
-     */
-    public Set<Object> sGet(String key) {
-        try {
-            return redisTemplate.opsForSet().members(key);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-    /**
-     * 根据value从一个set中查询,是否存在
-     *
-     * @param key   键
-     * @param value 值
-     * @return true 存在 false不存在
-     */
-    public boolean sHasKey(String key, Object value) {
-        try {
-            return redisTemplate.opsForSet().isMember(key, value);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    /**
-     * 将数据放入set缓存
-     *
-     * @param key    键
-     * @param values 值 可以是多个
-     * @return 成功个数
-     */
-    public long sSet(String key, Object... values) {
-        try {
-            return redisTemplate.opsForSet().add(key, values);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return 0;
-        }
-    }
-
-    /**
-     * 将set数据放入缓存
-     *
-     * @param key    键
-     * @param time   时间(秒)
-     * @param values 值 可以是多个
-     * @return 成功个数
-     */
-    public long sSetAndTime(String key, long time, Object... values) {
-        try {
-            Long count = redisTemplate.opsForSet().add(key, values);
-            if (time > 0) {
-                expire(key, time);
-            }
-            return count;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return 0;
-        }
-    }
-
-    /**
-     * 获取set缓存的长度
-     *
-     * @param key 键
-     * @return
-     */
-    public long sGetSetSize(String key) {
-        try {
-            return redisTemplate.opsForSet().size(key);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return 0;
-        }
-    }
-
-    /**
-     * 移除值为value的
-     *
-     * @param key    键
-     * @param values 值 可以是多个
-     * @return 移除的个数
-     */
-    public long setRemove(String key, Object... values) {
-        try {
-            Long count = redisTemplate.opsForSet().remove(key, values);
-            return count;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return 0;
-        }
-    }
-
-    // ===============================list=================================
-
-    /**
-     * 获取list缓存的内容
-     *
-     * @param key   键
-     * @param start 开始
-     * @param end   结束 0 到 -1代表所有值
-     * @return
-     */
-    public List<Object> lGet(String key, long start, long end) {
-        try {
-            return redisTemplate.opsForList().range(key, start, end);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-    /**
-     * 获取list缓存的长度
-     *
-     * @param key 键
-     * @return
-     */
-    public long lGetListSize(String key) {
-        try {
-            return redisTemplate.opsForList().size(key);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return 0;
-        }
-    }
-
-    /**
-     * 通过索引 获取list中的值
-     *
-     * @param key   键
-     * @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推
-     * @return
-     */
-    public Object lGetIndex(String key, long index) {
-        try {
-            return redisTemplate.opsForList().index(key, index);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-    /**
-     * 将list放入缓存
-     *
-     * @param key   键
-     * @param value 值
-     * @return
-     */
-    public boolean lSet(String key, Object value) {
-        try {
-            redisTemplate.opsForList().rightPush(key, value);
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-
-    /**
-     * list最左边的元素弹出
-     *
-     * @param key   键
-     * @return
-     */
-    public Object lpop(String key) {
-        try {
-            return redisTemplate.opsForList().leftPop(key);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-
-    /**
-     * 将list放入缓存
-     *
-     * @param key   键
-     * @param value 值
-     * @param time  时间(秒)
-     * @return
-     */
-    public boolean lSet(String key, Object value, long time) {
-        try {
-            redisTemplate.opsForList().rightPush(key, value);
-            if (time > 0) {
-                expire(key, time);
-            }
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    /**
-     * 将list放入缓存
-     *
-     * @param key   键
-     * @param value 值
-     * @return
-     */
-    public boolean lSet(String key, List<Object> value) {
-        try {
-            redisTemplate.opsForList().rightPushAll(key, value);
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    /**
-     * 将list放入缓存
-     *
-     * @param key   键
-     * @param value 值
-     * @param time  时间(秒)
-     * @return
-     */
-    public boolean lSet(String key, List<Object> value, long time) {
-        try {
-            redisTemplate.opsForList().rightPushAll(key, value);
-            if (time > 0) {
-                expire(key, time);
-            }
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    /**
-     * 根据索引修改list中的某条数据
-     *
-     * @param key   键
-     * @param index 索引
-     * @param value 值
-     * @return
-     */
-    public boolean lUpdateIndex(String key, long index, Object value) {
-        try {
-            redisTemplate.opsForList().set(key, index, value);
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-    }
-
-    /**
-     * 移除N个值为value
-     *
-     * @param key   键
-     * @param count 移除多少个
-     * @param value 值
-     * @return 移除的个数
-     */
-    public long lRemove(String key, long count, Object value) {
-        try {
-            Long remove = redisTemplate.opsForList().remove(key, count, value);
-            return remove;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return 0;
-        }
-    }
-
-    /**
-     * 模糊查询获取key值
-     *
-     * @param pattern
-     * @return
-     */
-    public Set keys(String pattern) {
-        return redisTemplate.keys(pattern);
-    }
-
-    /**
-     * 使用Redis的消息队列
-     *
-     * @param channel
-     * @param message 消息内容
-     */
-    public void convertAndSend(String channel, Object message) {
-        redisTemplate.convertAndSend(channel, message);
-    }
-
-    // =========BoundListOperations 用法 start============
-
-    /**
-     * 将数据添加到Redis的list中(从右边添加)
-     *
-     * @param listKey
-     * @param values     待添加的数据
-     */
-    public void addToListRight(String listKey, Object... values) {
-        // 绑定操作
-        BoundListOperations<String, Object> boundValueOperations = redisTemplate.boundListOps(listKey);
-        // 插入数据
-        boundValueOperations.rightPushAll(values);
-    }
-
-    /**
-     * 根据起始结束序号遍历Redis中的list
-     *
-     * @param listKey
-     * @param start   起始序号
-     * @param end     结束序号
-     * @return
-     */
-    public List<Object> rangeList(String listKey, long start, long end) {
-        // 绑定操作
-        BoundListOperations<String, Object> boundValueOperations = redisTemplate.boundListOps(listKey);
-        // 查询数据
-        return boundValueOperations.range(start, end);
-    }
-
-    /**
-     * 弹出右边的值 --- 并且移除这个值
-     *
-     * @param listKey
-     */
-    public Object rifhtPop(String listKey) {
-        // 绑定操作
-        BoundListOperations<String, Object> boundValueOperations = redisTemplate.boundListOps(listKey);
-        return boundValueOperations.rightPop();
-    }
-    // =========BoundListOperations 用法 End============
-}

+ 0 - 16
industry-system/industry-da/src/main/java/com/example/opc_da/service/impl/DataSourceServiceImpl.java

@@ -13,15 +13,11 @@ import com.example.opc_common.util.Result;
 import com.example.opc_da.dao.DataSourceDao;
 import com.example.opc_da.dao.ItemGroupDao;
 import com.example.opc_da.service.DataSourceService;
-import com.example.opc_da.task.OpcAsyncTask;
 import com.example.opc_da.util.OpcDaUtil;
-import com.example.opc_da.util.RedisUtil;
-import com.example.opc_da.util.UserUtil;
 import com.example.opc_ua.util.OpcUaUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.client.RestTemplate;
 
 import java.util.*;
 
@@ -35,18 +31,6 @@ public class DataSourceServiceImpl implements DataSourceService {
     @Autowired
     private ItemGroupDao itemGroupDao;
 
-    @Autowired
-    private UserUtil userUtil;
-
-    @Autowired
-    private RedisUtil redisUtil;
-
-    @Autowired
-    private OpcAsyncTask opcAsyncTask;
-
-    @Autowired
-    private RestTemplate restTemplate;
-
     @Override
     public Result getDataSourceTree() {
         List<DataSourceType> dataSourceTypeList = dataSourceDao.getAllDataSourceType();