Эх сурвалжийг харах

Merge branch 'master' of http://116.63.33.55/git/industry-data-platform

ws 1 жил өмнө
parent
commit
bd07c9b905

+ 1 - 0
industry-system/cqcy-ei-common/pom.xml

@@ -87,6 +87,7 @@
                 <!--打成可被依赖jar结构-->
                 <configuration>
                     <classifier>execute</classifier>
+                    <skip>true</skip>
                 </configuration>
             </plugin>
         </plugins>

+ 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 - 43
industry-system/cqcy-ei-common/src/main/java/com/example/opc_common/exception/GlobalExceptionHandler.java

@@ -1,43 +0,0 @@
-package com.example.opc_common.exception;
-
-import com.example.opc_common.entity.Log;
-import com.example.opc_common.enums.ResultEnum;
-import com.example.opc_common.util.Result;
-import org.springframework.web.bind.annotation.ControllerAdvice;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-@ResponseBody
-@ControllerAdvice
-public class GlobalExceptionHandler {
-
-//    @Resource
-//    private LogService logService;
-
-    /**
-     * 系统异常处理
-     */
-    @ExceptionHandler
-    public Result error(Exception e) {
-        Log log = new Log();
-        e.printStackTrace();
-//        StringWriter stringWriter= new StringWriter();
-//        PrintWriter writer= new PrintWriter(stringWriter);
-//        e.printStackTrace(writer);
-//        StringBuffer buffer= stringWriter.getBuffer();
-        log.setContent(e.getMessage());
-        log.setOperationStatus(500);
-//        logService.insertLog(log);
-        return Result.no(ResultEnum.SERVER_ERROR.getRespCode(), e.getMessage());
-    }
-
-    /**
-     * 自定义异常处理
-     */
-    @ExceptionHandler(value = CustomException.class)
-    public Result handle(CustomException e) {
-        System.out.println("我全局自定义异常处理机制处理了");
-        e.printStackTrace();
-        return Result.no(e.getCode(), e.getMessage());
-    }
-}

+ 0 - 64
industry-system/cqcy-ei-common/src/main/java/com/example/opc_common/util/Blank.java

@@ -1,6 +1,5 @@
 package com.example.opc_common.util;
 
-import cn.hutool.poi.excel.ExcelReader;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -227,69 +226,6 @@ public class Blank {
         return true;
     }
 
-    public static void main(String[] args) {
-        Map<String, String> params = new HashMap<>();
-        params.put("区市场监管局", "区市场监督管理局");
-        params.put("区文化和旅游发展委员会", "区文化旅游委");
-        params.put("区教育委员会", "区教委");
-        params.put("区应急管理局", "区应急局");
-        params.put("区民族宗教事务委员会", "区民宗委");
-        params.put("区住房和城乡建设委员会", "区住房城乡建委");
-        params.put("区农业农村委员会", "区农业农村委");
-
-        ExcelReader reader = cn.hutool.poi.excel.ExcelUtil.getReader("D:/cqf/nanan.xlsx");
-        List<Map<String, Object>> readAll = reader.readAll();
-        JSONArray array = new JSONArray();
-        JSONObject obj;
-        String sql = "INSERT INTO question_article (\r\n" +
-                "	dataId,\r\n" +
-                "	title,\r\n" +
-                "	content,\r\n" +
-                "	publishTime,\r\n" +
-                "	departmentName,\r\n" +
-                "	createTime,\r\n" +
-                "	e_top\r\n" +
-                ")\r\n" +
-                "VALUES";
-        int ii = 10000;
-        for (int i = 0; i < readAll.size(); i++) {
-            Map<String, Object> map = readAll.get(i);
-            obj = new JSONObject();
-            String name = String.valueOf(map.get("name")).substring(5);
-            obj.put("name", Blank.notBlank(params.get(name)) ? params.get(name) : name);
-            String remark = String.valueOf(map.get("remark"));
-            String[] str = remark.split("\n");
-            if (str.length == 3) {
-                if (str[1].indexOf("常见问题问题:") == 0) {
-                    obj.put("title", str[1].substring(7));
-                } else if (str[1].indexOf("问题:") == 0) {
-                    obj.put("title", str[1].substring(3));
-                }
-                if (str[2].indexOf("解答:答") == 0) {
-                    obj.put("content", str[2].substring(5));
-                } else if (str[2].indexOf("解答:") == 0) {
-                    obj.put("content", str[2].substring(3));
-                }
-            } else {
-                if (str[0].indexOf("常见问题问题:") == 0) {
-                    obj.put("title", str[0].substring(7));
-                } else if (str[0].indexOf("问题:") == 0) {
-                    obj.put("title", str[0].substring(3));
-                }
-                if (str[1].indexOf("解答:答") == 0) {
-                    obj.put("content", str[1].substring(5));
-                } else if (str[1].indexOf("解答:") == 0) {
-                    obj.put("content", str[1].substring(3));
-                }
-            }
-            array.add(obj);
-            sql += "(" + (ii + i) + ", '" + obj.get("title") + "', '" + obj.get("content") + "', '" + randomDate("2021-01-01", "2021-12-13") + "', '"
-                    + obj.get("name") + "', now(), 0),";
-        }
-        System.err.println(array);
-        System.err.println(sql);
-    }
-
     private static String randomDate(String beginDate, String endDate) {
         try {
             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

+ 1 - 16
industry-system/cqcy-ei-common/src/main/java/com/example/opc_common/util/RSAUtil.java

@@ -12,21 +12,6 @@ import java.security.spec.PKCS8EncodedKeySpec;
 import java.security.spec.X509EncodedKeySpec;
 
 public class RSAUtil {
-	
-	public static void main(String[] args) {
-		String a = "jd123456";
-		String b = encryptByPublic(a, PUBLIC_KEY);
-		System.out.println(b);
-		try {
-			String c = decrypt(b, "utf-8");
-			String d = decrypt("OE9zOA6Qlvwsq0fEY3/vmK7xWq6shHLVXdRLO3Dh/0W1WHDpDcT1u4AmtennAvGzP4plhHvlrjU6E66zaMFEeGKbr8ATGAxrExl0mBqgJB/IvSyzRpv35BrghgWMm3ng+IxQlCdA/0N2IxraEweUXkgyz4745zz4xExUbE0d/N4=", "utf-8");
-			System.out.println(c);
-			System.out.println(d);
-		} catch (Exception e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
 
 	private static final int MAX_DECRYPT = 256;
 	private static final int MAX_DECRYPT_BLOCK = 245;
@@ -200,4 +185,4 @@ public class RSAUtil {
 			+ "2+TywaiYX6168tt7TgOD2Q0YZrcs8A0B5bxS4SZGmihKeP1n+Rdm+tVSQLxhsN+f\r\n"
 			+ "mA/oR77E7x0B8X1QmwIDAQAB";
 
-}
+}

+ 1 - 0
industry-system/cqcy-ei-ua/pom.xml

@@ -106,6 +106,7 @@
                 <!--打成可被依赖jar结构-->
                 <configuration>
                     <classifier>execute</classifier>
+                    <skip>true</skip>
                 </configuration>
             </plugin>
         </plugins>

+ 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();

+ 0 - 203
industry-system/industry-da/src/main/java/com/example/opc_da/task/Test.java

@@ -1,203 +0,0 @@
-package com.example.opc_da.task;
-
-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.Result;
-import com.example.opc_da.util.OpcDaUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.jinterop.dcom.common.JIException;
-import org.openscada.opc.lib.common.AlreadyConnectedException;
-import org.openscada.opc.lib.common.NotConnectedException;
-import org.openscada.opc.lib.da.*;
-import org.openscada.opc.lib.da.browser.Branch;
-import org.openscada.opc.lib.da.browser.FlatBrowser;
-import org.openscada.opc.lib.da.browser.Leaf;
-import org.openscada.opc.lib.da.browser.TreeBrowser;
-
-import java.net.UnknownHostException;
-import java.util.*;
-
-import static com.example.opc_da.util.OpcDaUtil.genFullPath;
-
-@Slf4j
-public class Test {
-
-    public static void main(String[] args) {
-        DataSource dataSource = new DataSource();
-//        dataSource.setClsId("e6c32641-f1cf-11d0-b0e4-080009ccd384");
-//        dataSource.setIpAddress("192.168.1.101");
-//        dataSource.setIpUserName("administrator");
-//        dataSource.setIpPassword("asdf");
-//        dataSource.setClsId("75d00bbb-dda5-11d1-b944-9e614d000000");
-//        dataSource.setIpAddress("192.168.1.99");
-//        dataSource.setIpUserName("administrator");
-//        dataSource.setIpPassword("asdf");
-//        dataSource.setClsId("3c5702a2-eb8e-11d4-83a4-00105a984cbd");
-//        dataSource.setIpAddress("192.168.1.111");
-//        dataSource.setIpUserName("administrator");
-//        dataSource.setIpPassword("asdf");
-        dataSource.setClsId("21c3e5e0-b7e4-11d4-8be0-0050bacfbb99");
-        dataSource.setIpAddress("192.168.1.200");
-        dataSource.setIpUserName("administrator");
-        dataSource.setIpPassword("asdf");
-        Result nextAllItem = OpcDaUtil.getNextAllItem(dataSource, "Tags");
-        long l = System.currentTimeMillis();
-        Server server = OpcDaUtil.createServer(dataSource);
-        try {
-            server.connect();
-            String[] items = new String[]{"$年.Value", "$时间.Value", "$网络状态.Value", "Tags.TESTAI1",
-                    "Tags.TESTAI2", "TESTAI1.Value", "TESTAI1.Ack", "TESTAI1.Alarm", "TESTAI1.Comment",
-                    "TESTAI1.DevTarget", "TESTAI1.Group", "TESTAI1.HiHiLimit", "TESTAI1.Name"};
-            Group group = null;
-            try {
-                group = server.addGroup();
-            } catch (NotConnectedException e) {
-                throw new RuntimeException(e);
-            } catch (DuplicateGroupException e) {
-                throw new RuntimeException(e);
-            }
-            Map<String, org.openscada.opc.lib.da.Item> itemResult = null;
-            try {
-                itemResult = group.addItems(items);
-            } catch (AddFailedException e) {
-                throw new RuntimeException(e);
-            }
-            Set itemSet = new HashSet(itemResult.values());
-            org.openscada.opc.lib.da.Item[] itemArr = new org.openscada.opc.lib.da.Item[itemSet.size()];
-            itemSet.toArray(itemArr);
-            Map<org.openscada.opc.lib.da.Item, ItemState> resultMap = group.read(true, itemArr);
-            resultMap.forEach((key, value) -> {
-                log.info("key:={},value={}", key.getId(), OpcDaUtil.getVal(value.getValue()));
-            });
-//            TreeBrowser treeBrowser = server.getTreeBrowser();
-//            Branch branch1 = treeBrowser.browseBranches();
-//            Branch branch2 = treeBrowser.browseLeaves();
-//            Branch browse = treeBrowser.browse();
-//            Iterator iter = browse.getLeaves().iterator();
-//            Iterator<Leaf> iterator = browse.getLeaves().iterator();
-//            Branch branch = new Branch();
-//            try {
-//                treeBrowser.fillBranches(branch);
-//            } catch (Exception ignored) {
-//            }
-//            try {
-//                treeBrowser.fillLeaves(branch);
-//            } catch (Exception ignored) {
-//            }
-//            Iterator iter = branch.getLeaves().iterator();
-//            Iterator<Leaf> iterator = branch.getLeaves().iterator();
-        } catch (UnknownHostException e) {
-            throw new RuntimeException(e);
-        } catch (JIException e) {
-            throw new RuntimeException(e);
-        } catch (AlreadyConnectedException e) {
-            throw new RuntimeException(e);
-        }
-        System.out.println(System.currentTimeMillis() - l + "ms");
-//        server.connect();
-//        server1.connect();
-//        server2.connect();
-//        test1(server,itemStr,itemName1,itemName2);
-    }
-
-    public static void test1(Server server, String itemStr, String itemName1, String itemName2) throws JIException {
-        long l = System.currentTimeMillis();
-        TreeBrowser treeBrowser = server.getTreeBrowser();
-        System.out.println(System.currentTimeMillis() - l + "ms");
-        List<Map<String, String>> mapList = new ArrayList<>();
-        if (Blank.isEmpty(itemStr)) {
-            mapList = xxx(treeBrowser, new Branch(), itemName1, itemName2);
-        } else {
-            String[] split = itemStr.split("!@");
-            Branch branch = new Branch();
-            for (int i = 0; i < split.length; i++) {
-                String itemId = split[i];
-                if (i == split.length - 1) {
-                    mapList = xxx(treeBrowser, new Branch(branch, itemId), itemName1, itemName2);
-                } else {
-                    branch = new Branch(branch, itemId);
-                }
-            }
-        }
-        System.out.println("-----" + (System.currentTimeMillis() - l) + "ms");
-        System.out.println("--------------");
-        System.out.println(mapList.size());
-        mapList.forEach(map -> {
-            System.out.println(map.toString());
-        });
-    }
-
-    public static void test2(Server server, String itemStr, String itemName1, String itemName2) throws UnknownHostException, JIException {
-        long l = System.currentTimeMillis();
-        FlatBrowser flatBrowser = server.getFlatBrowser();
-        Collection<String> browse = flatBrowser.browse();
-//        Collection<String> browse = flatBrowser.browse(itemName1);
-//        Collection<String> browse = flatBrowser.browse("通道 1.设备 1."+itemName1);
-//        Collection<String> browse = flatBrowser.getAccessPaths("通道 1.设备 1."+itemName1);
-        System.out.println(System.currentTimeMillis() - l + "ms");
-        System.out.println("-----" + (System.currentTimeMillis() - l) + "ms");
-        System.out.println("--------------");
-        System.out.println(browse.toString());
-        browse.forEach(e -> {
-            System.out.println(e);
-        });
-    }
-
-    public static List<Map<String, String>> xxx(TreeBrowser treeBrowser, Branch branch, String itemName1, String itemName2) {
-        JSONObject jsonObject = new JSONObject();
-        try {
-            treeBrowser.fillBranches(branch);
-        } catch (Exception ignored) {
-        }
-//        try {
-//            treeBrowser.fillLeaves(branch);
-//        } catch (Exception ignored) {
-//        }
-
-        List<Map<String, String>> mapList = new ArrayList<>();
-        Iterator iter = branch.getBranches().iterator();
-        while (iter.hasNext()) {
-            Branch subBranch = (Branch) iter.next();
-//            map.put(subBranch.getName(), subBranch.getName());
-            String name = subBranch.getName();
-            if (name.contains(itemName1)) {
-                List<Map<String, String>> yyy = yyy(treeBrowser, new Branch(branch, name), itemName2);
-                if (Blank.notBlank(yyy)) {
-                    mapList.addAll(yyy);
-                }
-            }
-        }
-//        jsonObject.put("leaves", mapList);
-        return mapList;
-    }
-
-    public static List<Map<String, String>> yyy(TreeBrowser treeBrowser, Branch branch, String itemName2) {
-//        try {
-//            treeBrowser.fillBranches(branch);
-//        } catch (Exception ignored) {
-//        }
-        try {
-            treeBrowser.fillLeaves(branch);
-        } catch (Exception ignored) {
-        }
-
-        Iterator iter = branch.getLeaves().iterator();
-        List<Map<String, String>> mapList = new ArrayList<>();
-        while (iter.hasNext()) {
-            Leaf leaf = (Leaf) iter.next();
-//            map.put(leaf.getName(), leaf.getItemId());
-            Map<String, String> map = new HashMap<>();
-            String name = leaf.getName();
-            if (name.contains(itemName2)) {
-                map.put("fullPath", genFullPath(leaf));
-                map.put("itemName", leaf.getName());
-                map.put("itemReadName", leaf.getItemId());
-                mapList.add(map);
-            }
-        }
-        return mapList;
-    }
-
-
-}

+ 0 - 151
industry-system/industry-da/src/main/java/com/example/opc_da/task/TestUtil.java

@@ -1,151 +0,0 @@
-package com.example.opc_da.task;
-
-import com.example.opc_common.util.DateUtil;
-import com.example.opc_da.util.CronUtil;
-import org.quartz.CronExpression;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-
-public class TestUtil {
-
-        public static void main(String[] args) throws ParseException {
-            String startTime = "2023-09-27 11:49:41";
-            int time = 5; // 间隔时间为5秒
-
-            System.out.println("秒:"+getCron(startTime, "5", 1, null));
-//            System.out.println("分:"+getCron(startTime, "5", 2, null));
-//            System.out.println("时:"+getCron(startTime, "5", 3, null));
-//            System.out.println("天:"+ getCron(startTime, "11:23:34", 4, null));
-//            System.out.println("月:"+getCron(startTime, "11:23:33", 5, 4));
-        }
-
-    /**
-     * 拼接cron表达式
-     * @param date
-     * @param time
-     * @param type
-     */
-        public static String getCron(String date, String time, int type, Integer day) throws ParseException {
-            String cronExpression = "";
-            // 将起始时间转换为Date对象
-            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            Date startDate = null;
-            try {
-                startDate = dateFormat.parse(date);
-
-                // 计算Cron表达式的各个字段
-                int second = startDate.getSeconds();
-                int minute = startDate.getMinutes();
-                int hour = startDate.getHours();
-                if (type == 1) {
-                    // 秒
-                    cronExpression = String.format("%d/%d %d/%d * * * ?", second, Integer.parseInt(time), minute, 1);
-                } else if (type == 2) {
-                    // 分
-                     cronExpression = String.format("%d %d/%d * * * ?",
-                             second, minute, Integer.parseInt(time));
-                } else if (type == 3) {
-                    // 时
-                    // 计算Cron表达式的小时字段
-                    int cronHour = (hour + Integer.parseInt(time)) % 24;
-
-                    // 构建Cron表达式
-                    cronExpression = String.format("%d %d %d/%d * * ?", second, minute, cronHour, Integer.parseInt(time));
-                } else if (type == 4) {
-                    // 每天的哪个时间
-                    cronExpression = getDayCron(startDate, time);
-                } else if (type == 5) {
-                    // 每月哪个时间
-                    cronExpression = getMonCron(startDate, time, day);
-                }
-
-
-                System.out.println("生成的Cron表达式为:" + cronExpression);
-            } catch (ParseException e) {
-                e.printStackTrace();
-            }
-            if (!"".equals(cronExpression)) {
-                getExpressTime(cronExpression, startDate);
-            }
-            return cronExpression;
-        }
-
-        public static String getDayCron(Date  startDate, String time) {
-            String[] times = time.split(":");
-            Calendar calendar = Calendar.getInstance();
-            calendar.setTime(startDate);
-
-            // 设置每天的执行时间为10:30:21
-            calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(times[0]));
-            calendar.set(Calendar.MINUTE, Integer.parseInt(times[1]));
-            calendar.set(Calendar.SECOND, Integer.parseInt(times[2]));
-
-            // 构建Cron表达式
-            String cronExpression = String.format("%d %d %d * * ?",
-                    calendar.get(Calendar.SECOND),
-                    calendar.get(Calendar.MINUTE),
-                    calendar.get(Calendar.HOUR_OF_DAY));
-            return cronExpression;
-        }
-
-    public static String getMonCron(Date  startDate, String time, int day) {
-        String[] times = time.split(":");
-        Calendar calendar = Calendar.getInstance();
-        calendar.setTime(startDate);
-
-        calendar.set(Calendar.DAY_OF_MONTH, day);
-        calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(times[0]));
-        calendar.set(Calendar.MINUTE, Integer.parseInt(times[1]));
-        calendar.set(Calendar.SECOND, Integer.parseInt(times[2]));
-
-        // 构建Cron表达式
-        String cronExpression = String.format("%d %d %d %d * ?",
-                calendar.get(Calendar.SECOND),
-                calendar.get(Calendar.MINUTE),
-                calendar.get(Calendar.HOUR_OF_DAY),
-                calendar.get(Calendar.DAY_OF_MONTH));
-        return cronExpression;
-    }
-
-    public static String getExpressTime(String cronExpression, Date currentDate) throws ParseException {
-        CronExpression cron = new CronExpression(cronExpression);
-
-        // 获取下一次执行时间
-        Date nextExecutionTime = cron.getNextValidTimeAfter(currentDate);
-        // 获取上一次执行时间
-        Date prevExecutionTime = calculatePrevExecutionTime(cron, nextExecutionTime);
-
-
-        // 格式化时间
-        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        String formattedNextExecutionTime = dateFormat.format(nextExecutionTime);
-        String formattedPrevExecutionTime = dateFormat.format(prevExecutionTime);
-        System.out.println("当前时间: " +  dateFormat.format(currentDate));
-        // 打印结果
-        System.out.println("下一次执行时间: " + formattedNextExecutionTime);
-        System.out.println("上一次执行时间: " + formattedPrevExecutionTime);
-        return "";
-    }
-
-    private static Date calculatePrevExecutionTime(CronExpression cron, Date currentDate) {
-        Calendar calendar = Calendar.getInstance();
-        calendar.setTime(currentDate);
-
-        // 初始将时间减一秒,以确保不会返回当前时间
-        calendar.add(Calendar.SECOND, -1);
-
-        // 循环查找上一次执行时间
-        while (true) {
-            Date prevTime = calendar.getTime();
-            if (cron.isSatisfiedBy(prevTime)) {
-                return prevTime;
-            }
-            calendar.add(Calendar.SECOND, -1);
-        }
-    }
-
-
-}

+ 0 - 22
industry-system/industry-da/src/main/java/com/example/opc_da/util/Test.java

@@ -1,22 +0,0 @@
-package com.example.opc_da.util;
-
-import com.influxdb.client.InfluxDBClient;
-import com.influxdb.client.InfluxDBClientFactory;
-import com.influxdb.client.domain.Authorization;
-
-import java.util.List;
-
-public class Test {
-
-    public static void main(String[] args) {
-        InfluxDBClient client = InfluxDBClientFactory.create("http://192.168.1.168:8086", "zAyO0a0gdTHH8j7lo520TQFsoNuFhMEPkDLiurCr__uTbKrAUPyx1O4hMdwWT5eed-dIiHbKOJHOd7E6JpqifA==".toCharArray(), "jd");
-        List<Authorization> list = client.getAuthorizationsApi().findAuthorizations();
-        System.out.println(client.getBucketsApi().findBucketByName("test"));
-        for (int i = 0; i < list.size(); i++) {
-            if ("test".equals(list.get(i).getDescription())) {
-                System.err.println(list.get(i).getToken());
-
-            }
-        }
-    }
-}