From a9406b6b18ee5a8e29cad3248f46320a36ac9749 Mon Sep 17 00:00:00 2001
From: yyt <306727702@qq.com>
Date: 星期三, 21 二月 2024 00:19:44 +0800
Subject: [PATCH] 批量数据采集方法更新

---
 jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java |   27 +++++++++++++++------------
 1 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java
index 7ccd646..fc78ab0 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java
@@ -157,7 +157,7 @@
 	public void handle(NodeId id, Variant value){
 		if (b == null || 0 > b.size()) {
 			DaOpcuaConfig opcuaConfParam=new DaOpcuaConfig();
-		    opcuaConfParam.setSubscribe(1L);
+		    opcuaConfParam.setSubscribe("Y");
 		    b=daOpcuaConfigService.selectDaOpcuaConfigList(opcuaConfParam);
 		}
 		//浣跨敤Stream API鍦↙ist<T>涓煡鎵惧厓绱�
@@ -166,10 +166,15 @@
 				.findAny()
 				.orElse(null);
 		try {
-			Class<?> clazz = Class.forName(daOpcuaConfig.getrModule());
+			Class<?> clazz = Class.forName("com.jcdm.main.da.opcuaconfig.cert.MethodName");
 			Method method = clazz.getMethod(daOpcuaConfig.getrFunction(), new Class[] { String.class, String.class });
+			if (value.isNull()){
+				method.invoke(clazz.newInstance(),new Object[] {
+						new String(id.getIdentifier().toString()), new String("") });
+			}else{
 			method.invoke(clazz.newInstance(),new Object[] {
 					new String(id.getIdentifier().toString()), new String(value.getValue().toString()) });
+			}
 		} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | InstantiationException |
 				 InvocationTargetException e) {
 			e.printStackTrace();
@@ -223,16 +228,11 @@
 	/**
 	 * 鏂规硶鎻忚堪: 璇诲彇澶氫釜鐐逛綅鐨勫��
 	 *
-	 * @param keys 鐐逛綅闆嗗悎
+	 * @param nodeIdList 鐐逛綅闆嗗悎
 	 * @return {@link List<DataValue>}
 	 * @throws
 	 */
-	public static List<DataValue> readValues(Set<String> keys){
-		List<NodeId> nodeIdList=new ArrayList<>(500);
-		keys.forEach(e->{
-			NodeId nodeId = new NodeId(2, e);
-			nodeIdList.add(nodeId);
-		});
+	public static List<DataValue> readValues(List<NodeId> nodeIdList){
 		try {
 			List<DataValue> dataValues=client.readValues(0.0, TimestampsToReturn.Both,nodeIdList).get();
 			return dataValues;
@@ -262,11 +262,14 @@
 		log.info("Value={}", value);
 
 		Variant variant = value.getValue();
-		log.info("Variant={}", variant.getValue());
 
-		log.info("BackingClass={}", BuiltinDataType.getBackingClass(variant.getDataType().get()));
+		if(null == variant.getValue())
+		{
+			return null;
+		}else{
+			return variant.getValue().toString();
+		}
 
-		return variant.getValue().toString();
 	}
 
 

--
Gitblit v1.9.3