浏览代码

完成事件驱动报表增加数据

zhoupeng 2 年之前
父节点
当前提交
cfd5637728

+ 11 - 3
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcAsyncTask.java

@@ -133,7 +133,7 @@ public class OpcAsyncTask {
             String message = e.getMessage();
             if (message.contains("0x00000005")) {
                 log.info("账号校验不通过,账号或密码错误,本地安全策略有问题");
-            } else if (message.contains("0x8001FFFF")) {
+            } else if (message.contains("0x8001FFFF") || message.contains("Index 16 out of bounds for length 16")) {
                 log.info("ip不存在或ip不互通");
             } else if (message.contains("0x80040154")) {
                 log.info("clsId不存在");
@@ -154,13 +154,21 @@ public class OpcAsyncTask {
     /**
      * 事件驱动报表异步添加数据
      */
-    public void eventTable(Integer tableReportId, BigDecimal value,String currentDate) {
+    public void eventTable(Integer tableReportId, BigDecimal value, String currentDate) {
         ReportTable reportTable = reportTableDao.getReportTableById(tableReportId);
         String reportTableData = reportTable.getReportTableData();
         JSONObject jsonObject = JSONObject.parseObject(reportTableData);
         JSONArray objects = jsonObject.getJSONArray("tables");
-        if (Blank.isNotEmpty(objects)){
+        if (Blank.isNotEmpty(objects)) {
             JSONObject jsonObject1 = objects.getJSONObject(0);
+            JSONArray objects1 = jsonObject1.getJSONArray("eventDataList");
+            JSONObject object = new JSONObject();
+            object.put("date", currentDate);
+            object.put("value", value);
+            objects1.add(object);
+            objects.set(0, jsonObject1);
+            jsonObject.put("tables", objects);
+            reportTable.setReportTableData(jsonObject.toJSONString());
             //将新数据加到与那里的data里面,并更新
             reportTableDao.updateReportTable(reportTable);
         }

+ 1 - 1
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaTask.java

@@ -1316,7 +1316,7 @@ public class OpcDaTask extends TimerTask {
             String messageContent = "";
             if (message.contains("0x00000005")) {
                 messageContent = "账号或密码错误";
-            } else if (message.contains("0x8001FFFF")) {
+            } else if (message.contains("0x8001FFFF") || message.contains("Index 16 out of bounds for length 16")) {
                 messageContent = "ip连接不可用";
             } else {
                 messageContent = e.getMessage();

+ 5 - 5
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/util/OpcDaUtil.java

@@ -74,7 +74,7 @@ public class OpcDaUtil {
             String message = e.getMessage();
             if (message.contains("0x00000005")) {
                 throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "账号校验不通过,账号或密码错误,本地安全策略有问题");
-            } else if (message.contains("0x8001FFFF")) {
+            } else if (message.contains("0x8001FFFF") || message.contains("Index 16 out of bounds for length 16")) {
                 throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "ip不存在或ip不互通");
             } else if (message.contains("0x80040154")) {
                 throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "clsId不存在");
@@ -123,7 +123,7 @@ public class OpcDaUtil {
             String message = e.getMessage();
             if (message.contains("0x00000005")) {
                 throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "账号校验不通过,账号或密码错误,本地安全策略有问题");
-            } else if (message.contains("0x8001FFFF")) {
+            } else if (message.contains("0x8001FFFF")|| message.contains("Index 16 out of bounds for length 16")) {
                 throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "ip不存在或ip不互通");
             } else if (message.contains("0x80040154")) {
                 throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "clsId不存在");
@@ -289,7 +289,7 @@ public class OpcDaUtil {
             if (message.contains("0x00000005")) {
                 throw new CustomException(ResultEnum.REQUEST_TIME_OUT.getRespCode(), "账号或密码错误");
             }
-            if (message.contains("0x8001FFFF")) {
+            if (message.contains("0x8001FFFF")|| message.contains("Index 16 out of bounds for length 16")) {
                 throw new CustomException(ResultEnum.REQUEST_TIME_OUT.getRespCode(), "ip地址不存在");
             }
             if (message.contains("0x80070005")) {
@@ -313,7 +313,7 @@ public class OpcDaUtil {
                     int j = itemName.indexOf(".");
                     String s = itemName.substring(j + 1);
                     itemList.get(i).setItemReadName(itemName.substring(0, j) + s.substring(s.indexOf(".")));
-                }catch (Exception e){
+                } catch (Exception e) {
                     itemList.remove(i);
                 }
             }
@@ -466,7 +466,7 @@ public class OpcDaUtil {
             if (message.contains("0x00000005")) {
                 throw new CustomException(ResultEnum.REQUEST_TIME_OUT.getRespCode(), "账号或密码错误");
             }
-            if (message.contains("0x8001FFFF")) {
+            if (message.contains("0x8001FFFF")|| message.contains("Index 16 out of bounds for length 16")) {
                 throw new CustomException(ResultEnum.REQUEST_TIME_OUT.getRespCode(), "ip地址不存在");
             }
             if (message.contains("0x80070005")) {