zhoupeng il y a 2 ans
Parent
commit
d2bdce7ec2
28 fichiers modifiés avec 736 ajouts et 687 suppressions
  1. 6 3
      chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/EventRawData.java
  2. 0 8
      chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/Item.java
  3. 8 0
      chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/ItemGroup.java
  4. 14 2
      chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/RawData.java
  5. 8 0
      chaunyi_opc/opc_common/src/main/java/com/example/opc_common/util/ConstantStr.java
  6. 9 1
      chaunyi_opc/opc_common/src/main/java/com/example/opc_common/util/DateUtil.java
  7. 30 0
      chaunyi_opc/opc_common/src/main/java/com/example/opc_common/util/MathUtil.java
  8. 60 0
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/controller/ItemGroupController.java
  9. 2 0
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/dao/RawDataDao.java
  10. 36 17
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/service/impl/ItemGroupServiceImpl.java
  11. 73 137
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcAsyncTask.java
  12. 28 89
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaChangeTask.java
  13. 23 25
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaExceedTask.java
  14. 37 39
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaFrequencyTask.java
  15. 23 25
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaLowseTask.java
  16. 27 29
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaSpecifyTask.java
  17. 50 38
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaTask.java
  18. 1 1
      chaunyi_opc/opc_da/src/main/java/com/example/opc_da/util/OpcDaUtil.java
  19. 12 15
      chaunyi_opc/opc_da/src/main/resources/mapper/ItemGroupDao.xml
  20. 25 4
      chaunyi_opc/opc_da/src/main/resources/mapper/RawDataDao.xml
  21. 13 45
      chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/service/impl/ItemGroupServiceImpl.java
  22. 46 46
      chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/task/OpcAsyncTask.java
  23. 16 59
      chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/task/OpcUaChangeTask.java
  24. 24 26
      chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/task/OpcUaExceedTask.java
  25. 47 49
      chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/task/OpcUaFrequencyTask.java
  26. 26 28
      chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/task/OpcUaLowerTask.java
  27. 91 0
      chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/task/OpcUaWeekTask.java
  28. 1 1
      chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/util/OpcUaUtil.java

+ 6 - 3
chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/EventRawData.java

@@ -39,6 +39,11 @@ public class EventRawData implements Serializable {
      * 数据值对应的时间集合
      */
     private String dataValueTime;
+
+    /**
+     * 数据索引
+     */
+    private Long dataIndex;
     /**
      * 数据值归属时间,比如:2023-01-01 08,代表指定日期,指定小时的所有数据
      */
@@ -48,8 +53,6 @@ public class EventRawData implements Serializable {
      */
     private Date createTime;
 
-    private Long itemIndex;
-
     /**
      * 无参构造方法被覆盖了,需要手动
      */
@@ -67,6 +70,6 @@ public class EventRawData implements Serializable {
         this.valueBelongTime = valueBelongTime;
         this.dataValue = dataValue;
         this.createTime = createTime;
-        this.itemIndex = itemIndex;
+//        this.itemIndex = itemIndex;
     }
 }

+ 0 - 8
chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/Item.java

@@ -38,14 +38,6 @@ public class Item implements Serializable {
     private Integer dataModelId;
 
     /**
-     * 事件驱动产生的条件,0大于,1小于(0,1,值只对应数值类型),2为boolean类型
-     */
-    private Integer eventMode;
-    /**
-     * 事件驱动设定的阀值(驱动条件为2时,这里只能传入0false或者1true)
-     */
-    private Double eventValue;
-    /**
      * 事件驱动生成报表需要的报表模板
      */
     private Integer tableReportId;

+ 8 - 0
chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/ItemGroup.java

@@ -36,9 +36,17 @@ public class ItemGroup extends BaseSchedule implements Serializable {
      */
     private Integer readMode;
     /**
+     * 读取模式对应的类型,0绝对值,1百分率
+     */
+    private Integer readModeType;
+    /**
      * 模式值
      */
     private Double modeValue;
+    /**
+     * 指定时间对应的模式值
+     */
+    private String modeValueTime;
 
     /**
      * 读取周,0周天,1周一,2周二,...6周六

+ 14 - 2
chaunyi_opc/opc_common/src/main/java/com/example/opc_common/entity/RawData.java

@@ -40,10 +40,18 @@ public class RawData implements Serializable {
      */
     private String dataValueTime;
     /**
+     * 数据索引
+     */
+    private Long dataIndex;
+    /**
      * 数据值归属时间,比如:2023-01-01 08,代表指定日期,指定小时的所有数据
      */
     private String valueBelongTime;
     /**
+     * 是否满足差值改变。0不是,1是
+     */
+    private Integer isMeetChange;
+    /**
      * 创建时间
      */
     private Date createTime;
@@ -56,14 +64,18 @@ public class RawData implements Serializable {
 
     }
 
-    public RawData(Integer itemGroupId, Integer dataSourceId, String itemName, String dataType, String dataValue, String dataValueTime, String valueBelongTime, Date createTime) {
+    public RawData(Integer itemGroupId, Integer dataSourceId, String itemName,
+                   String dataType, String dataValue, String dataValueTime, Long dataIndex, String valueBelongTime, Integer isMeetChange,
+                   Date createTime) {
         this.itemGroupId = itemGroupId;
         this.dataSourceId = dataSourceId;
         this.itemName = itemName;
         this.dataType = dataType;
+        this.dataValue = dataValue;
         this.dataValueTime = dataValueTime;
+        this.dataIndex = dataIndex;
         this.valueBelongTime = valueBelongTime;
-        this.dataValue = dataValue;
+        this.isMeetChange = isMeetChange;
         this.createTime = createTime;
     }
 }

+ 8 - 0
chaunyi_opc/opc_common/src/main/java/com/example/opc_common/util/ConstantStr.java

@@ -88,6 +88,10 @@ public class ConstantStr {
     public static final Integer LOWER_SET_VALUE = 3;
     public static final Integer SPECIFY_TIME = 4;
 
+    //读取模式对应类型;0绝对值,1百分率
+    public static final Integer ABSOLUTE_VALUE = 0;
+    public static final Integer PERCENT_AGE = 1;
+
     //事件驱动条件,0大于,1小于(0,1,值只对应数值类型),2为boolean类型
     public static final Integer EVENT_MODEL_EXCEED = 0;
     public static final Integer EVENT_MODEL_LOWER = 1;
@@ -96,6 +100,10 @@ public class ConstantStr {
     public static final Integer BOOLEAN_FALSE = 0;
     public static final Integer BOOLEAN_TRUE = 1;
 
+    //0不满足,1满足
+    public static final Integer NOT_MEET_CHANGE = 0;
+    public static final Integer IS_MEET_CHANGE = 1;
+
     //取值条件
     public static final Integer AVERAGE_VALUE = 0;
     public static final Integer MAX_VALUE = 1;

+ 9 - 1
chaunyi_opc/opc_common/src/main/java/com/example/opc_common/util/DateUtil.java

@@ -83,11 +83,19 @@ public class DateUtil {
     }
 
     /**
+     * 获取当前年月日字符串格式为yyyy-MM-dd HH:mm:ss
+     */
+    public static String getCurrentYmdHms() {
+        Calendar calendar = Calendar.getInstance();
+        return dateChangeStrYmdhms(calendar.getTime());
+    }
+
+    /**
      * 获取当前年月日字符串格式为yyyy-MM-dd
      */
     public static String getCurrentYmd() {
         Calendar calendar = Calendar.getInstance();
-        return dateChangeStrYmdhms(calendar.getTime());
+        return dateChangeStr(calendar.getTime(), "yyyy-MM-dd");
     }
 
     /**

+ 30 - 0
chaunyi_opc/opc_common/src/main/java/com/example/opc_common/util/MathUtil.java

@@ -9,6 +9,7 @@ import com.mpobjects.bdparsii.eval.Variable;
 import com.mpobjects.bdparsii.tokenizer.ParseException;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 
 public class MathUtil {
 
@@ -214,4 +215,33 @@ public class MathUtil {
         }
     }
 
+    /**
+     * 计算opc通过差值判断改变率是否超过了,如果返回true,表示没有超过输入的标准,反之
+     *
+     * @param oldValue
+     * @param newValue
+     * @param differValue
+     * @param readModeType
+     * @return
+     */
+    public static Integer isMeetChange(BigDecimal oldValue, BigDecimal newValue, BigDecimal differValue, Integer readModeType) {
+        if (readModeType == ConstantStr.PERCENT_AGE) {
+            BigDecimal abs = oldValue.subtract(newValue).abs();
+            BigDecimal multiply = abs.divide(oldValue, 4, RoundingMode.HALF_EVEN).multiply(new BigDecimal(100));
+            if (multiply.compareTo(differValue) == -1) {
+                return ConstantStr.IS_MEET_CHANGE;
+            }
+            return ConstantStr.NOT_MEET_CHANGE;
+        } else if (readModeType == ConstantStr.ABSOLUTE_VALUE) {
+            BigDecimal abs = oldValue.subtract(newValue).abs();
+            if (abs.compareTo(differValue) == -1) {
+                return ConstantStr.IS_MEET_CHANGE;
+            }
+            return ConstantStr.NOT_MEET_CHANGE;
+        } else {
+            throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "目前只支持数值和百分率");
+        }
+
+    }
+
 }

+ 60 - 0
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/controller/ItemGroupController.java

@@ -24,6 +24,12 @@ public class ItemGroupController {
     @Resource
     private ItemGroupService itemGroupService;
 
+    /**
+     * 新增修改数据组
+     *
+     * @param itemGroup
+     * @return
+     */
     @PostMapping("/addItemGroup")
     @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.DATAGROUP, OperationEnum = OperationEnum.ADD)
     public Result addItemGroup(@RequestBody ItemGroup itemGroup) {
@@ -34,12 +40,23 @@ public class ItemGroupController {
         return itemGroupService.addItemGroup(itemGroup);
     }
 
+    /**
+     * 获取当前登录人的所有数据组
+     *
+     * @return
+     */
     @GetMapping("/getAllItemGroup")
     @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.DATAGROUP, OperationEnum = OperationEnum.SELECT)
     public Result getAllItemGroup() {
         return itemGroupService.getAllItemGroup();
     }
 
+    /**
+     * 通过id获取数据组
+     *
+     * @param id
+     * @return
+     */
     @GetMapping("/getItemGroupById/{id}")
     @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.DATAGROUP, OperationEnum = OperationEnum.SELECT)
     public Result getItemGroupById(@PathVariable Integer id) {
@@ -49,6 +66,12 @@ public class ItemGroupController {
         return itemGroupService.getItemGroupById(id);
     }
 
+    /**
+     * 通过id删除数据组
+     *
+     * @param id
+     * @return
+     */
     @PostMapping("/delItemGroupById/{id}")
     @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.DATAGROUP, OperationEnum = OperationEnum.DELETE)
     public Result delItemGroupById(@PathVariable Integer id) {
@@ -58,6 +81,13 @@ public class ItemGroupController {
         return itemGroupService.delItemGroupById(id);
     }
 
+    /**
+     * 运行,停止数据组
+     *
+     * @param id
+     * @param runState
+     * @return
+     */
     @PostMapping("/runItemGroupById")
     public Result runItemGroupById(Integer id, Integer runState) {
         if (Blank.isEmpty(id, runState)) {
@@ -66,6 +96,12 @@ public class ItemGroupController {
         return itemGroupService.runItemGroupById(id, runState);
     }
 
+    /**
+     * 通过id获取此时item读取的值
+     *
+     * @param id
+     * @return
+     */
     @GetMapping("/getItemValueById/{id}")
     @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.DATAGROUP, OperationEnum = OperationEnum.SELECT)
     public Result getItemValueById(@PathVariable Integer id) {
@@ -75,6 +111,12 @@ public class ItemGroupController {
         return itemGroupService.getItemValueById(id);
     }
 
+    /**
+     * 修改item的数据模型,事件驱动报表id,描述
+     *
+     * @param item
+     * @return
+     */
     @PostMapping("/updateItem")
     @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.DATAGROUP, OperationEnum = OperationEnum.UPDATE)
     public Result updateItem(@RequestBody Item item) {
@@ -84,6 +126,12 @@ public class ItemGroupController {
         return itemGroupService.updateItem(item);
     }
 
+    /**
+     * 通过id获取item
+     *
+     * @param id
+     * @return
+     */
     @GetMapping("/getItemById/{id}")
     @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.DATAGROUP, OperationEnum = OperationEnum.SELECT)
     public Result getItemById(@PathVariable Integer id) {
@@ -93,6 +141,12 @@ public class ItemGroupController {
         return itemGroupService.getItemById(id);
     }
 
+    /**
+     * 通过idList删除多个item
+     *
+     * @param idList
+     * @return
+     */
     @PostMapping("/deleteItemByIdList")
     @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.DATAGROUP, OperationEnum = OperationEnum.DELETE)
     public Result deleteItemByIdList(@RequestBody List<Integer> idList) {
@@ -102,6 +156,12 @@ public class ItemGroupController {
         return itemGroupService.deleteItemByIdList(idList);
     }
 
+    /**
+     * 通过id获取数据组的itemList的详细信息
+     *
+     * @param id
+     * @return
+     */
     @GetMapping("/getTableItemGroupById/{id}")
     @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.REPORTTABLE, OperationEnum = OperationEnum.SELECT)
     public Result getTableItemGroupById(@PathVariable Integer id) {

+ 2 - 0
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/dao/RawDataDao.java

@@ -44,4 +44,6 @@ public interface RawDataDao {
     List<Long> getEventRawDataIndexList(Item item, Integer dataSourceId, String valueBelongTime);
 
     Integer delEventRawDataListByIndex(Item item, Integer dataSourceId, String valueBelongTime, List<Long> indexList);
+
+    List<Long> getMeetIndexList(Integer itemGroupId, Integer dataSourceId, List<Item> itemList, String valueBelongTime, Integer notMeetChange);
 }

+ 36 - 17
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/service/impl/ItemGroupServiceImpl.java

@@ -65,9 +65,6 @@ public class ItemGroupServiceImpl implements ItemGroupService {
     @Value("${opc_ua_server.address}")
     private String opcUaUrl;
 
-    @Value("${opc_storage.time_format}")
-    private String timeFormat;
-
     @Override
     public synchronized Result addItemGroup(ItemGroup itemGroup) {
         String userId = userUtil.getCurrentUserId();
@@ -75,11 +72,32 @@ public class ItemGroupServiceImpl implements ItemGroupService {
         Integer readMode = itemGroup.getReadMode();
         String startReadTime = itemGroup.getStartReadTime();
         String endReadTime = itemGroup.getEndReadTime();
+        if (readMode != ConstantStr.ON_CHANGE && readMode != ConstantStr.EXCEED_SET_VALUE &&
+                readMode != ConstantStr.SPECIFY_TIME) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "目前未适配此种类型的读取模式");
+        }
+        if (readMode == ConstantStr.ON_CHANGE) {
+            if (Blank.isEmpty(itemGroup.getReadModeType())) {
+                return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "请选择一种比较类型");
+            }
+            if (Blank.isEmpty(itemGroup.getModeValue())) {
+                return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "请输入模式值");
+            }
+        }
+        if (readMode == ConstantStr.EXCEED_SET_VALUE) {
+            if (Blank.isEmpty(itemGroup.getReadModeType())) {
+                return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "请选择一种比较类型");
+            }
+            if (Blank.isEmpty(itemGroup.getModeValueTime())) {
+                return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "请输入模式值");
+            }
+        }
         if (readMode == ConstantStr.SPECIFY_TIME) {
-            Long modeValue = Math.round(itemGroup.getModeValue());
+            String modeValueTime = itemGroup.getModeValueTime();
             Long startLong = DateUtil.strChangeDate(startReadTime, "HH:mm:ss").getTime();
             Long endLong = DateUtil.strChangeDate(endReadTime, "HH:mm:ss").getTime();
-            if (!(modeValue > startLong && modeValue < endLong)) {
+            Long modeLong = DateUtil.strChangeDate(modeValueTime, "HH:mm:ss").getTime();
+            if (!(modeLong > startLong && modeLong < endLong)) {
                 return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "指定时间,是介于开始,结束读取时间之间");
             }
         }
@@ -98,12 +116,12 @@ public class ItemGroupServiceImpl implements ItemGroupService {
                 }
                 int count = 0;
                 for (Item item : itemList) {
-                    if (Blank.isNotEmpty(item.getEventMode())) {
+                    if (Blank.isNotEmpty(item.getTableReportId())) {
                         count += 1;
                     }
                 }
                 if (count > 1) {
-                    return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "一个数据组中,最多只能配置一个事件驱动");
+                    return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "一个数据组中,最多只能配置一个事件驱动报表");
                 }
                 itemGroupDao.addItem(itemGroup.getId(), itemGroup.getItemList());
             }
@@ -129,12 +147,12 @@ public class ItemGroupServiceImpl implements ItemGroupService {
                 }
                 int count = 0;
                 for (Item item : itemList) {
-                    if (Blank.isNotEmpty(item.getEventMode())) {
+                    if (Blank.isNotEmpty(item.getTableReportId())) {
                         count += 1;
                     }
                 }
                 if (count > 1) {
-                    return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "一个数据组中,最多只能配置一个事件驱动");
+                    return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "一个数据组中,最多只能配置一个事件驱动报表");
                 }
                 itemGroupDao.addItem(id, itemList);
             }
@@ -305,13 +323,13 @@ public class ItemGroupServiceImpl implements ItemGroupService {
         if (itemGroup.getRunState() == ConstantStr.START_UP) {
             return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此数据组现在处于运行中,不允许修改");
         }
-        if (Blank.isNotEmpty(item.getEventMode())) {
+        if (Blank.isNotEmpty(item.getTableReportId())) {
             List<Item> itemList = itemGroupDao.getItemListByGroupId(itemGroup.getId());
             if (Blank.isNotEmpty(itemList)) {
                 for (Item item2 : itemList) {
-                    if (Blank.isNotEmpty(item2.getEventMode())) {
+                    if (Blank.isNotEmpty(item2.getTableReportId())) {
                         if (!item2.getId().equals(item.getId())) {
-                            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此数据组中有其他项配置了事件驱动,修改失败");
+                            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此数据组中有其他项配置了事件驱动报表,修改失败");
                         }
                     }
                 }
@@ -328,12 +346,13 @@ public class ItemGroupServiceImpl implements ItemGroupService {
         ItemGroup itemGroup = itemGroupDao.getItemGroupById(id);
         DataSource dataSource = dataSourceDao.getDataSourceById(itemGroup.getDataSourceId());
         DataSourceType dataSourceType = dataSourceDao.getDataSourceTypeById(dataSource.getTypeId());
+        String dataSourceTypeKey = dataSourceType.getDataSourceTypeKey();
         List<Item> itemList = new ArrayList<>();
-        if (dataSourceType.getDataSourceTypeKey().equals(DataSourceTypeEnum.OPC_UA_REAL.getValue()) ||
-                dataSourceType.getDataSourceTypeKey().equals(DataSourceTypeEnum.OPC_UA_HISTORY.getValue()) ||
-                dataSourceType.getDataSourceTypeKey().equals(DataSourceTypeEnum.OPC_DA_REAL.getValue()) ||
-                dataSourceType.getDataSourceTypeKey().equals(DataSourceTypeEnum.OPC_AE_ALARMS.getValue()) ||
-                dataSourceType.getDataSourceTypeKey().equals(DataSourceTypeEnum.OPC_HDA_HISTORY.getValue())) {
+        if (dataSourceTypeKey.equals(DataSourceTypeEnum.OPC_UA_REAL.getValue()) ||
+                dataSourceTypeKey.equals(DataSourceTypeEnum.OPC_UA_HISTORY.getValue()) ||
+                dataSourceTypeKey.equals(DataSourceTypeEnum.OPC_DA_REAL.getValue()) ||
+                dataSourceTypeKey.equals(DataSourceTypeEnum.OPC_AE_ALARMS.getValue()) ||
+                dataSourceTypeKey.equals(DataSourceTypeEnum.OPC_HDA_HISTORY.getValue())) {
             itemList = itemGroupDao.getItemListByGroupId(id);
         } else {
             throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "目前还没有此种类型的连接方式");

+ 73 - 137
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcAsyncTask.java

@@ -66,144 +66,80 @@ public class OpcAsyncTask {
         }
     }
 
-    /**
-     * 将临时数据库表中的原始数据组装为分表中的数据
-     *
-     * @param item
-     * @param sqlCurrentYmdh
-     */
-    public void packageRawData(Item item, Integer dataSourceId, String sqlCurrentYmdh) {
+    public synchronized void packageRawDataList(List<Item> itemList, Integer dataSourceId, String sqlCurrentYmdh) {
         try {
             Thread.sleep(5000);
         } catch (Exception e) {
             e.printStackTrace();
         }
-        Integer itemGroupId = item.getItemGroupId();
-        Integer remainder = itemGroupId % ConstantStr.SUB_TABLE_NUM;
-        if (Blank.isNotEmpty(item)) {
-            RawData oldRawData = rawDataDao.getRawDataList(item, remainder, dataSourceId, sqlCurrentYmdh);
-            List<RawData> rawDataList = rawDataDao.getTempRawDataList(item, dataSourceId, sqlCurrentYmdh);
-            if (Blank.isNotEmpty(rawDataList)) {
-                RawData rawData1 = rawDataList.get(0);
-                String itemName = rawData1.getItemName();
-                String dataType = rawData1.getDataType();
-                if (dataType.equals("boolean")) {
-                    List<Boolean> dataList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValue(), Boolean[].class))) : new ArrayList<>();
-                    List<String> dataTimeList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValueTime(), String[].class))) : new ArrayList<>();
-                    for (RawData rawData : rawDataList) {
-                        dataList.add(JSON.parseObject(rawData.getDataValue(), Boolean.class));
-                        dataTimeList.add(rawData.getDataValueTime());
-                    }
-                    RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
-                            JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
-                    if (Blank.isEmpty(oldRawData)) {
-                        rawDataDao.addRawData(remainder, rawData);
-                    } else {
-                        rawDataDao.updateRawData(remainder, rawData);
-                    }
-                } else {
-                    List<String> dataTimeList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValueTime(), String[].class))) : new ArrayList<>();
-                    try {
-                        List<BigDecimal> dataList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValue(), BigDecimal[].class))) : new ArrayList<>();
-                        for (RawData rawData : rawDataList) {
-                            BigDecimal bigDecimal = JSON.parseObject(rawData.getDataValue(), BigDecimal.class);
-                            dataList.add(bigDecimal);
-                            dataTimeList.add(rawData.getDataValueTime());
-                        }
-                        RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
-                                JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
-                        if (Blank.isEmpty(oldRawData)) {
-                            rawDataDao.addRawData(remainder, rawData);
-                        } else {
-                            rawDataDao.updateRawData(remainder, rawData);
-                        }
-                    } catch (Exception e) {
-                        List<String> dataList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValue(), String[].class))) : new ArrayList<>();
-                        for (RawData rawData : rawDataList) {
-                            dataList.add(rawData.getDataValue());
-                            dataTimeList.add(rawData.getDataValueTime());
-                        }
-                        RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
-                                JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
-                        if (Blank.isEmpty(oldRawData)) {
-                            rawDataDao.addRawData(remainder, rawData);
-                        } else {
-                            rawDataDao.updateRawData(remainder, rawData);
-                        }
-                    }
-                }
-                rawDataDao.delRawDataList(rawDataList, sqlCurrentYmdh);
-            }
-        }
-    }
-
-    public void packageRawDataList(List<Item> itemList, Integer dataSourceId, String sqlCurrentYmdh) {
-        try {
-            Thread.sleep(5000);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
+        log.info("我进行了数据组装,归属时间为{}", sqlCurrentYmdh);
         if (Blank.isNotEmpty(itemList)) {
-            Item item1 = itemList.get(0);
-            Integer itemGroupId = item1.getItemGroupId();
-            Integer remainder = itemGroupId % ConstantStr.SUB_TABLE_NUM;
-            for (Item item : itemList) {
-                RawData oldRawData = rawDataDao.getRawDataList(item, remainder, dataSourceId, sqlCurrentYmdh);
-                List<RawData> rawDataList = rawDataDao.getTempRawDataList(item, dataSourceId, sqlCurrentYmdh);
-                if (Blank.isNotEmpty(rawDataList)) {
-                    RawData rawData1 = rawDataList.get(0);
-                    String itemName = rawData1.getItemName();
-                    String dataType = rawData1.getDataType();
-                    if (dataType.equals("boolean")) {
-                        List<Boolean> dataList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValue(), Boolean[].class))) : new ArrayList<>();
-                        List<String> dataTimeList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValueTime(), String[].class))) : new ArrayList<>();
-                        for (RawData rawData : rawDataList) {
-                            dataList.add(JSON.parseObject(rawData.getDataValue(), Boolean.class));
-                            dataTimeList.add(rawData.getDataValueTime());
-                        }
-                        RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
-                                JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
-                        if (Blank.isEmpty(oldRawData)) {
-                            rawDataDao.addRawData(remainder, rawData);
-                        } else {
-                            rawDataDao.updateRawData(remainder, rawData);
-                        }
-                    } else {
-                        List<String> dataTimeList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValueTime(), String[].class))) : new ArrayList<>();
-                        try {
-                            List<BigDecimal> dataList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValue(), BigDecimal[].class))) : new ArrayList<>();
-                            for (RawData rawData : rawDataList) {
-                                BigDecimal bigDecimal = JSON.parseObject(rawData.getDataValue(), BigDecimal.class);
-                                dataList.add(bigDecimal);
-                                dataTimeList.add(rawData.getDataValueTime());
-                            }
-                            RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
-                                    JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
-                            if (Blank.isEmpty(oldRawData)) {
-                                rawDataDao.addRawData(remainder, rawData);
-                            } else {
-                                rawDataDao.updateRawData(remainder, rawData);
-                            }
-                        } catch (Exception e) {
-                            List<String> dataList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValue(), String[].class))) : new ArrayList<>();
-                            for (RawData rawData : rawDataList) {
-                                dataList.add(rawData.getDataValue());
-                                dataTimeList.add(rawData.getDataValueTime());
-                            }
-                            RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
-                                    JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
-                            if (Blank.isEmpty(oldRawData)) {
-                                rawDataDao.addRawData(remainder, rawData);
-                            } else {
-                                rawDataDao.updateRawData(remainder, rawData);
-                            }
-                        }
-                    }
-                    rawDataDao.delRawDataList(rawDataList, sqlCurrentYmdh);
-                }
-            }
+            Item item = itemList.get(0);
+            Integer itemGroupId = item.getItemGroupId();
+            int remainder = itemGroupId % ConstantStr.SUB_TABLE_NUM;
+            //获取原始数据表中,满足记录的数据
+            List<Long> indexList = rawDataDao.getMeetIndexList(itemGroupId, dataSourceId, itemList, sqlCurrentYmdh, ConstantStr.NOT_MEET_CHANGE);
         }
+//        if (Blank.isNotEmpty(itemList)) {
+//            Item item1 = itemList.get(0);
+//            Integer itemGroupId = item1.getItemGroupId();
+//            Integer remainder = itemGroupId % ConstantStr.SUB_TABLE_NUM;
+//            for (Item item : itemList) {
+//                RawData oldRawData = rawDataDao.getRawDataList(item, remainder, dataSourceId, sqlCurrentYmdh);
+//                List<RawData> rawDataList = rawDataDao.getTempRawDataList(item, dataSourceId, sqlCurrentYmdh);
+//                if (Blank.isNotEmpty(rawDataList)) {
+//                    RawData rawData1 = rawDataList.get(0);
+//                    String itemName = rawData1.getItemName();
+//                    String dataType = rawData1.getDataType();
+//                    if (dataType.equals("boolean")) {
+//                        List<Boolean> dataList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValue(), Boolean[].class))) : new ArrayList<>();
+//                        List<String> dataTimeList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValueTime(), String[].class))) : new ArrayList<>();
+//                        for (RawData rawData : rawDataList) {
+//                            dataList.add(JSON.parseObject(rawData.getDataValue(), Boolean.class));
+//                            dataTimeList.add(rawData.getDataValueTime());
+//                        }
+//                        RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
+//                                JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
+//                        if (Blank.isEmpty(oldRawData)) {
+//                            rawDataDao.addRawData(remainder, rawData);
+//                        } else {
+//                            rawDataDao.updateRawData(remainder, rawData);
+//                        }
+//                    } else {
+//                        List<String> dataTimeList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValueTime(), String[].class))) : new ArrayList<>();
+//                        try {
+//                            List<BigDecimal> dataList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValue(), BigDecimal[].class))) : new ArrayList<>();
+//                            for (RawData rawData : rawDataList) {
+//                                BigDecimal bigDecimal = JSON.parseObject(rawData.getDataValue(), BigDecimal.class);
+//                                dataList.add(bigDecimal);
+//                                dataTimeList.add(rawData.getDataValueTime());
+//                            }
+//                            RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
+//                                    JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
+//                            if (Blank.isEmpty(oldRawData)) {
+//                                rawDataDao.addRawData(remainder, rawData);
+//                            } else {
+//                                rawDataDao.updateRawData(remainder, rawData);
+//                            }
+//                        } catch (Exception e) {
+//                            List<String> dataList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValue(), String[].class))) : new ArrayList<>();
+//                            for (RawData rawData : rawDataList) {
+//                                dataList.add(rawData.getDataValue());
+//                                dataTimeList.add(rawData.getDataValueTime());
+//                            }
+//                            RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
+//                                    JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
+//                            if (Blank.isEmpty(oldRawData)) {
+//                                rawDataDao.addRawData(remainder, rawData);
+//                            } else {
+//                                rawDataDao.updateRawData(remainder, rawData);
+//                            }
+//                        }
+//                    }
+//                    rawDataDao.delRawDataList(rawDataList, sqlCurrentYmdh);
+//                }
+//            }
+//        }
     }
 
     public void addEventRawData(EventRawData eventRawData) {
@@ -285,7 +221,7 @@ public class OpcAsyncTask {
         Item eventItem = null;
         if (Blank.isNotEmpty(itemList)) {
             for (Item item : itemList) {
-                if (Blank.isNotEmpty(item.getEventMode()) && Blank.isNotEmpty(item.getEventValue()) && Blank.isNotEmpty(item.getTableReportId())) {
+                if (Blank.isNotEmpty(item.getTableReportId())) {
                     tableReportId = item.getTableReportId();
                     eventItem = item;
                     break;
@@ -293,8 +229,8 @@ public class OpcAsyncTask {
             }
         }
         List<Long> eventRawDataIndexList = rawDataDao.getEventRawDataIndexList(eventItem, dataSourceId, sqlCurrentYmdh);
-        if (Blank.isNotEmpty(itemList)){
-            for (Item item:itemList) {
+        if (Blank.isNotEmpty(itemList)) {
+            for (Item item : itemList) {
                 rawDataDao.delEventRawDataListByIndex(item, dataSourceId, sqlCurrentYmdh, eventRawDataIndexList);
             }
         }
@@ -320,7 +256,7 @@ public class OpcAsyncTask {
                         for (EventRawData eventRawData1 : eventRawDataList) {
                             dataList.add(JSON.parseObject(eventRawData1.getDataValue(), Boolean.class));
                             dataTimeList.add(eventRawData1.getDataValueTime());
-                            dataIndexList.add(eventRawData1.getItemIndex());
+//                            dataIndexList.add(eventRawData1.getItemIndex());
                             idList.add(eventRawData1.getId());
                         }
                         jsonObject1.put("itemGroupId", eventRawData.getItemGroupId());
@@ -341,7 +277,7 @@ public class OpcAsyncTask {
                             for (EventRawData eventRawData1 : eventRawDataList) {
                                 dataList.add(JSON.parseObject(eventRawData1.getDataValue(), BigDecimal.class));
                                 dataTimeList.add(eventRawData1.getDataValueTime());
-                                dataIndexList.add(eventRawData1.getItemIndex());
+//                                dataIndexList.add(eventRawData1.getItemIndex());
                                 idList.add(eventRawData1.getId());
                             }
                             jsonObject1.put("itemGroupId", eventRawData.getItemGroupId());
@@ -361,7 +297,7 @@ public class OpcAsyncTask {
                             for (EventRawData eventRawData1 : eventRawDataList) {
                                 dataList.add(eventRawData1.getDataValue());
                                 dataTimeList.add(eventRawData1.getDataValueTime());
-                                dataIndexList.add(eventRawData1.getItemIndex());
+//                                dataIndexList.add(eventRawData1.getItemIndex());
                                 idList.add(eventRawData1.getId());
                             }
                             jsonObject1.put("itemGroupId", eventRawData.getItemGroupId());

+ 28 - 89
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaChangeTask.java

@@ -47,8 +47,6 @@ public class OpcDaChangeTask extends TimerTask {
 
     private final Long endTime;
 
-    private Boolean eventFlage = false;
-
     public OpcDaChangeTask(RedisUtil redisUtil,
                            OpcAsyncTask opcAsyncTask,
                            String cronId,
@@ -81,26 +79,22 @@ public class OpcDaChangeTask extends TimerTask {
     public void run() {
         Server server = OpcDaUtil.createServer(dataSource);
         Integer id = itemGroup.getId();
+        Integer readModeType = itemGroup.getReadModeType();
+        Double modeValue = itemGroup.getModeValue();
         Integer dataSourceId = dataSource.getId();
         try {
             server.connect();
             SyncAccess access = new SyncAccess(server, 1000);
             for (com.example.opc_common.entity.Item item : itemList) {
                 String itemId = item.getItemReadName();
-                Integer eventMode = item.getEventMode();
-                Double eventValue = item.getEventValue();
-                Integer tableReportId = item.getTableReportId();
-                if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                    eventFlage = true;
-                }
                 access.addItem(itemId, new DataCallback() {
-                    private Map<String, Object> valueMap;
+                    private BigDecimal oldValue;
                     private String sqlCurrentYmdh = "";
                     private Long index = 0L;
 
                     @Override
                     public void changed(Item item1, ItemState itemState) {
-                        index += 1L;
+                        index++;
                         try {
                             Map<String, Object> val = OpcDaUtil.getVal(itemState.getValue());
                             DataModel dm = map.get(itemId);
@@ -110,104 +104,50 @@ public class OpcDaChangeTask extends TimerTask {
                             //值对应取值的时间
                             Date time = itemState.getTimestamp().getTime();
                             String currentYmdh = DateUtil.dateChangeStr(time, timeFormat);
+                            String currentYmdhmss = DateUtil.dateChangeStrYmdhmss(time);
                             if (Blank.isEmpty(sqlCurrentYmdh)) {
                                 sqlCurrentYmdh = currentYmdh;
                                 redisUtil.set(ConstantStr.VALUE_BELONG_TIME + id, currentYmdh, ConstantStr.TWO_HOUR);
                             } else {
                                 if (!sqlCurrentYmdh.equals(currentYmdh)) {
-                                    //组装相应的数据
-                                    opcAsyncTask.packageRawData(item, dataSourceId, sqlCurrentYmdh);
-                                    if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                                        opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
-                                    }
+                                    //组装相应的原始数据
+                                    opcAsyncTask.packageRawDataList(itemList, dataSourceId, sqlCurrentYmdh);
                                     redisUtil.set(ConstantStr.VALUE_BELONG_TIME + id, currentYmdh, ConstantStr.TWO_HOUR);
                                     sqlCurrentYmdh = currentYmdh;
                                 }
                             }
-                            String currentYmdhmss = DateUtil.dateChangeStrYmdhmss(time);
-                            if (!valueMap.equals(val)) {
-                                valueMap = val;
-                                if (javaType.toLowerCase().equals("boolean")) {
-                                    Boolean dmData = JSON.parseObject(value.toString(), Boolean.class);
+                            if (javaType.toLowerCase().equals("boolean")) {
+                                Boolean dmData = JSON.parseObject(value.toString(), Boolean.class);
+                                RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+                                        currentYmdhmss, index, currentYmdh, ConstantStr.IS_MEET_CHANGE, new Date());
+                                opcAsyncTask.addTempRawData(rawData);
+                            } else {
+                                try {
+                                    BigDecimal bigDecimal = JSON.parseObject(value.toString(), BigDecimal.class);
+                                    BigDecimal dmData = Blank.isNotEmpty(dm) ?
+                                            MathUtil.quadricOperation(dm.getMathParameter(), dm.getOperationRule(), bigDecimal) :
+                                            bigDecimal;
                                     RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                            currentYmdhmss, currentYmdh, new Date());
+                                            currentYmdhmss, index, currentYmdh,
+                                            Blank.isEmpty(oldValue) ? ConstantStr.NOT_MEET_CHANGE : MathUtil.isMeetChange(oldValue,
+                                                    dmData, new BigDecimal(modeValue), readModeType), new Date());
+                                    opcAsyncTask.addTempRawData(rawData);
+                                    oldValue = dmData;
+                                } catch (Exception e) {
+                                    RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(value.toString()),
+                                            currentYmdhmss, index, currentYmdh, ConstantStr.IS_MEET_CHANGE, new Date());
                                     opcAsyncTask.addTempRawData(rawData);
-
-                                    if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                                        if (eventMode.equals(ConstantStr.EVENT_MODEL_BOOLEAN)) {
-                                            if ((dmData ? ConstantStr.BOOLEAN_TRUE : ConstantStr.BOOLEAN_FALSE).equals(eventValue.intValue())) {
-                                                EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                                        currentYmdhmss, currentYmdh, new Date(), index);
-                                                opcAsyncTask.addEventRawData(eventRawData);
-                                            }
-                                        }
-                                    } else {
-                                        if (eventFlage) {
-                                            EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                                    currentYmdhmss, currentYmdh, new Date(), index);
-                                            opcAsyncTask.addEventRawData(eventRawData);
-                                        }
-                                    }
-                                } else {
-                                    try {
-                                        BigDecimal bigDecimal = JSON.parseObject(value.toString(), BigDecimal.class);
-                                        BigDecimal dmData = Blank.isNotEmpty(dm) ?
-                                                MathUtil.quadricOperation(dm.getMathParameter(), dm.getOperationRule(), bigDecimal) :
-                                                bigDecimal;
-                                        RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                                currentYmdhmss, currentYmdh, new Date());
-                                        opcAsyncTask.addTempRawData(rawData);
-
-                                        if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                                            BigDecimal bigEventValue = new BigDecimal(eventValue);
-                                            if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
-                                                if (dmData.compareTo(bigEventValue) == 1) {
-                                                    EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                                            currentYmdhmss, currentYmdh, new Date(), index);
-                                                    opcAsyncTask.addEventRawData(eventRawData);
-                                                }
-                                            } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
-                                                if (dmData.compareTo(bigEventValue) == -1) {
-                                                    EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                                            currentYmdhmss, currentYmdh, new Date(), index);
-                                                    opcAsyncTask.addEventRawData(eventRawData);
-                                                }
-                                            }
-                                        } else {
-                                            if (eventFlage) {
-                                                EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                                        currentYmdhmss, currentYmdh, new Date(), index);
-                                                opcAsyncTask.addEventRawData(eventRawData);
-                                            }
-                                        }
-                                    } catch (Exception e) {
-                                        RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(value.toString()),
-                                                currentYmdhmss, currentYmdh, new Date());
-                                        opcAsyncTask.addTempRawData(rawData);
-
-                                        if (Blank.isEmpty(eventMode, eventValue, tableReportId)) {
-                                            if (eventFlage) {
-                                                EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(value.toString()),
-                                                        currentYmdhmss, currentYmdh, new Date(), index);
-                                                opcAsyncTask.addEventRawData(eventRawData);
-                                            }
-                                        }
-                                    }
                                 }
                             }
                         } catch (Exception e) {
-                            //执行组装数据库的数据,以及生成驱动报表
+                            //执行组装数据库的原始数据
                             opcAsyncTask.packageRawDataList(itemList, dataSourceId, sqlCurrentYmdh);
-                            if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                                opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
-                            }
                             redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);
 
                             messageNoticeDao.addMessageNotice(new MessageNotice(itemGroup.getUserId(),
-                                    itemGroup.getGroupName() + DateUtil.dateChangeStrYmdhms(new Date()) + "运行失败",
+                                    itemGroup.getGroupName() + DateUtil.dateChangeStrYmdhms(new Date()) + "运行停止",
                                     e.getMessage(),
                                     ConstantStr.NO_READ));
-                            e.printStackTrace();
                             if (Blank.isNotEmpty(server)) {
                                 server.dispose();
                             }
@@ -235,7 +175,6 @@ public class OpcDaChangeTask extends TimerTask {
                     //执行组装数据库的数据,以及生成驱动报表
                     String sqlCurrentYmdh = String.valueOf(redisUtil.get(ConstantStr.VALUE_BELONG_TIME + id));
                     opcAsyncTask.packageRawDataList(itemList, dataSourceId, sqlCurrentYmdh);
-                    opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
                     redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);
 
                     messageNoticeDao.addMessageNotice(new MessageNotice(itemGroup.getUserId(),

+ 23 - 25
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaExceedTask.java

@@ -85,10 +85,8 @@ public class OpcDaExceedTask extends TimerTask {
             SyncAccess access = new SyncAccess(server, 1000);
             for (com.example.opc_common.entity.Item item : itemList) {
                 String itemId = item.getItemReadName();
-                Integer eventMode = item.getEventMode();
-                Double eventValue = item.getEventValue();
                 Integer tableReportId = item.getTableReportId();
-                if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+                if (Blank.isNotEmpty(tableReportId)) {
                     eventFlage = true;
                 }
                 access.addItem(itemId, new DataCallback() {
@@ -116,8 +114,8 @@ public class OpcDaExceedTask extends TimerTask {
                             } else {
                                 if (!sqlCurrentYmdh.equals(currentYmdh)) {
                                     //组装相应的数据
-                                    opcAsyncTask.packageRawData(item, dataSourceId, sqlCurrentYmdh);
-                                    if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+//                                    opcAsyncTask.packageRawData(item, dataSourceId, sqlCurrentYmdh);
+                                    if (  Blank.isNotEmpty(tableReportId)) {
                                         opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
                                     }
                                     redisUtil.set(ConstantStr.VALUE_BELONG_TIME + id, currentYmdh, ConstantStr.TWO_HOUR);
@@ -131,25 +129,25 @@ public class OpcDaExceedTask extends TimerTask {
                                     BigDecimal bigDecimal = JSON.parseObject(value.toString(), BigDecimal.class);
                                     BigDecimal dmData = Blank.isNotEmpty(dm) ? MathUtil.quadricOperation(dm.getMathParameter(), dm.getOperationRule(), bigDecimal) : bigDecimal;
                                     if (dmData.compareTo(bigModeValue) == 1) {
-                                        RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                                currentYmdhmss, currentYmdh, new Date());
-                                        opcAsyncTask.addTempRawData(rawData);
-
-                                        if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                                            BigDecimal bigEventValue = new BigDecimal(eventValue);
-                                            if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
-                                                if (dmData.compareTo(bigEventValue) == 1) {
-                                                    EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                                            currentYmdhmss, currentYmdh, new Date(), index);
-                                                    opcAsyncTask.addEventRawData(eventRawData);
-                                                }
-                                            } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
-                                                if (dmData.compareTo(bigEventValue) == -1) {
-                                                    EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                                            currentYmdhmss, currentYmdh, new Date(), index);
-                                                    opcAsyncTask.addEventRawData(eventRawData);
-                                                }
-                                            }
+//                                        RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                                currentYmdhmss, currentYmdh, new Date());
+//                                        opcAsyncTask.addTempRawData(rawData);
+
+                                        if ( Blank.isNotEmpty(tableReportId)) {
+//                                            BigDecimal bigEventValue = new BigDecimal(eventValue);
+//                                            if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
+//                                                if (dmData.compareTo(bigEventValue) == 1) {
+//                                                    EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                                            currentYmdhmss, currentYmdh, new Date(), index);
+//                                                    opcAsyncTask.addEventRawData(eventRawData);
+//                                                }
+//                                            } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
+//                                                if (dmData.compareTo(bigEventValue) == -1) {
+//                                                    EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                                            currentYmdhmss, currentYmdh, new Date(), index);
+//                                                    opcAsyncTask.addEventRawData(eventRawData);
+//                                                }
+//                                            }
                                         } else {
                                             if (eventFlage) {
                                                 EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
@@ -165,7 +163,7 @@ public class OpcDaExceedTask extends TimerTask {
                         } catch (Exception e) {
                             //执行组装数据库的数据,以及生成驱动报表
                             opcAsyncTask.packageRawDataList(itemList, dataSourceId, sqlCurrentYmdh);
-                            if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+                            if ( Blank.isNotEmpty(tableReportId)) {
                                 opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
                             }
                             redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);

+ 37 - 39
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaFrequencyTask.java

@@ -86,10 +86,8 @@ public class OpcDaFrequencyTask extends TimerTask {
 //            AccessBase access = new Async20Access(server, (int) (itemGroup.getModeValue() * 1000), true);
             for (com.example.opc_common.entity.Item item : itemList) {
                 String itemId = item.getItemReadName();
-                Integer eventMode = item.getEventMode();
-                Double eventValue = item.getEventValue();
                 Integer tableReportId = item.getTableReportId();
-                if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+                if (Blank.isNotEmpty(tableReportId)) {
                     eventFlage = true;
                 }
                 access.addItem(itemId, new DataCallback() {
@@ -115,8 +113,8 @@ public class OpcDaFrequencyTask extends TimerTask {
                             } else {
                                 if (!sqlCurrentYmdh.equals(currentYmdh)) {
                                     //组装相应的数据
-                                    opcAsyncTask.packageRawData(item, dataSourceId, sqlCurrentYmdh);
-                                    if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+//                                    opcAsyncTask.packageRawData(item, dataSourceId, sqlCurrentYmdh);
+                                    if (Blank.isNotEmpty(tableReportId)) {
                                         opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
                                     }
                                     redisUtil.set(ConstantStr.VALUE_BELONG_TIME + id, currentYmdh, ConstantStr.TWO_HOUR);
@@ -129,18 +127,18 @@ public class OpcDaFrequencyTask extends TimerTask {
                             if (javaType.toLowerCase().equals("boolean")) {
                                 //存数据
                                 Boolean dmData = JSON.parseObject(value.toString(), Boolean.class);
-                                RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                        currentYmdhmss, currentYmdh, new Date());
-                                opcAsyncTask.addTempRawData(rawData);
+//                                RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                        currentYmdhmss, currentYmdh, new Date());
+//                                opcAsyncTask.addTempRawData(rawData);
 
-                                if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                                    if (eventMode.equals(ConstantStr.EVENT_MODEL_BOOLEAN)) {
-                                        if ((dmData ? ConstantStr.BOOLEAN_TRUE : ConstantStr.BOOLEAN_FALSE).equals(eventValue.intValue())) {
-                                            EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                                    currentYmdhmss, currentYmdh, new Date(), index);
-                                            opcAsyncTask.addEventRawData(eventRawData);
-                                        }
-                                    }
+                                if (Blank.isNotEmpty(tableReportId)) {
+//                                    if (eventMode.equals(ConstantStr.EVENT_MODEL_BOOLEAN)) {
+//                                        if ((dmData ? ConstantStr.BOOLEAN_TRUE : ConstantStr.BOOLEAN_FALSE).equals(eventValue.intValue())) {
+//                                            EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                                    currentYmdhmss, currentYmdh, new Date(), index);
+//                                            opcAsyncTask.addEventRawData(eventRawData);
+//                                        }
+//                                    }
                                 } else {
                                     if (eventFlage) {
                                         EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
@@ -154,25 +152,25 @@ public class OpcDaFrequencyTask extends TimerTask {
                                     BigDecimal dmData = Blank.isNotEmpty(dm) ?
                                             MathUtil.quadricOperation(dm.getMathParameter(), dm.getOperationRule(), bigDecimal) :
                                             bigDecimal;
-                                    RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                            currentYmdhmss, currentYmdh, new Date());
-                                    opcAsyncTask.addTempRawData(rawData);
+//                                    RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                            currentYmdhmss, currentYmdh, new Date());
+//                                    opcAsyncTask.addTempRawData(rawData);
 
-                                    if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                                        BigDecimal bigEventValue = new BigDecimal(eventValue);
-                                        if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
-                                            if (dmData.compareTo(bigEventValue) == 1) {
-                                                EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                                        currentYmdhmss, currentYmdh, new Date(), index);
-                                                opcAsyncTask.addEventRawData(eventRawData);
-                                            }
-                                        } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
-                                            if (dmData.compareTo(bigEventValue) == -1) {
-                                                EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                                        currentYmdhmss, currentYmdh, new Date(), index);
-                                                opcAsyncTask.addEventRawData(eventRawData);
-                                            }
-                                        }
+                                    if (Blank.isNotEmpty(tableReportId)) {
+//                                        BigDecimal bigEventValue = new BigDecimal(eventValue);
+//                                        if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
+//                                            if (dmData.compareTo(bigEventValue) == 1) {
+//                                                EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                                        currentYmdhmss, currentYmdh, new Date(), index);
+//                                                opcAsyncTask.addEventRawData(eventRawData);
+//                                            }
+//                                        } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
+//                                            if (dmData.compareTo(bigEventValue) == -1) {
+//                                                EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                                        currentYmdhmss, currentYmdh, new Date(), index);
+//                                                opcAsyncTask.addEventRawData(eventRawData);
+//                                            }
+//                                        }
                                     } else {
                                         if (eventFlage) {
                                             EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
@@ -181,11 +179,11 @@ public class OpcDaFrequencyTask extends TimerTask {
                                         }
                                     }
                                 } catch (Exception e) {
-                                    RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(value.toString()),
-                                            currentYmdhmss, currentYmdh, new Date());
-                                    opcAsyncTask.addTempRawData(rawData);
+//                                    RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(value.toString()),
+//                                            currentYmdhmss, currentYmdh, new Date());
+//                                    opcAsyncTask.addTempRawData(rawData);
 
-                                    if (Blank.isEmpty(eventMode, eventValue, tableReportId)) {
+                                    if (Blank.isEmpty(tableReportId)) {
                                         if (eventFlage) {
                                             EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(value.toString()),
                                                     currentYmdhmss, currentYmdh, new Date(), index);
@@ -197,7 +195,7 @@ public class OpcDaFrequencyTask extends TimerTask {
                         } catch (Exception e) {
                             //执行组装数据库的数据,以及生成驱动报表
                             opcAsyncTask.packageRawDataList(itemList, dataSourceId, sqlCurrentYmdh);
-                            if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+                            if (Blank.isNotEmpty(tableReportId)) {
                                 opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
                             }
                             redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);

+ 23 - 25
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaLowseTask.java

@@ -85,10 +85,8 @@ public class OpcDaLowseTask extends TimerTask {
             SyncAccess access = new SyncAccess(server, 1000);
             for (com.example.opc_common.entity.Item item : itemList) {
                 String itemId = item.getItemReadName();
-                Integer eventMode = item.getEventMode();
-                Double eventValue = item.getEventValue();
                 Integer tableReportId = item.getTableReportId();
-                if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+                if (Blank.isNotEmpty(tableReportId)) {
                     eventFlage = true;
                 }
                 access.addItem(itemId, new DataCallback() {
@@ -116,8 +114,8 @@ public class OpcDaLowseTask extends TimerTask {
                             } else {
                                 if (!sqlCurrentYmdh.equals(currentYmdh)) {
                                     //组装相应的数据
-                                    opcAsyncTask.packageRawData(item, dataSourceId, sqlCurrentYmdh);
-                                    if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+//                                    opcAsyncTask.packageRawData(item, dataSourceId, sqlCurrentYmdh);
+                                    if (Blank.isNotEmpty(tableReportId)) {
                                         opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
                                     }
                                     redisUtil.set(ConstantStr.VALUE_BELONG_TIME + id, currentYmdh, ConstantStr.TWO_HOUR);
@@ -131,25 +129,25 @@ public class OpcDaLowseTask extends TimerTask {
                                     BigDecimal bigDecimal = JSON.parseObject(value.toString(), BigDecimal.class);
                                     BigDecimal dmData = Blank.isNotEmpty(dm) ? MathUtil.quadricOperation(dm.getMathParameter(), dm.getOperationRule(), bigDecimal) : bigDecimal;
                                     if (dmData.compareTo(bigModeValue) == -1) {
-                                        RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                                currentYmdhmss, currentYmdh, new Date());
-                                        opcAsyncTask.addTempRawData(rawData);
-
-                                        if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                                            BigDecimal bigEventValue = new BigDecimal(eventValue);
-                                            if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
-                                                if (dmData.compareTo(bigEventValue) == 1) {
-                                                    EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                                            currentYmdhmss, currentYmdh, new Date(), index);
-                                                    opcAsyncTask.addEventRawData(eventRawData);
-                                                }
-                                            } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
-                                                if (dmData.compareTo(bigEventValue) == -1) {
-                                                    EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                                            currentYmdhmss, currentYmdh, new Date(), index);
-                                                    opcAsyncTask.addEventRawData(eventRawData);
-                                                }
-                                            }
+//                                        RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                                currentYmdhmss, currentYmdh, new Date());
+//                                        opcAsyncTask.addTempRawData(rawData);
+
+                                        if (Blank.isNotEmpty(tableReportId)) {
+//                                            BigDecimal bigEventValue = new BigDecimal(eventValue);
+//                                            if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
+//                                                if (dmData.compareTo(bigEventValue) == 1) {
+//                                                    EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                                            currentYmdhmss, currentYmdh, new Date(), index);
+//                                                    opcAsyncTask.addEventRawData(eventRawData);
+//                                                }
+//                                            } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
+//                                                if (dmData.compareTo(bigEventValue) == -1) {
+//                                                    EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                                            currentYmdhmss, currentYmdh, new Date(), index);
+//                                                    opcAsyncTask.addEventRawData(eventRawData);
+//                                                }
+//                                            }
                                         } else {
                                             if (eventFlage) {
                                                 EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
@@ -165,7 +163,7 @@ public class OpcDaLowseTask extends TimerTask {
                         } catch (Exception e) {
                             //执行组装数据库的数据,以及生成驱动报表
                             opcAsyncTask.packageRawDataList(itemList, dataSourceId, sqlCurrentYmdh);
-                            if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+                            if (Blank.isNotEmpty(tableReportId)) {
                                 opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
                             }
                             redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);

+ 27 - 29
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/task/OpcDaSpecifyTask.java

@@ -95,8 +95,6 @@ public class OpcDaSpecifyTask extends TimerTask {
             List<EventRawData> eventRawDataList = new ArrayList<>();
             for (com.example.opc_common.entity.Item item : itemList) {
                 String itemReadName = item.getItemReadName();
-                Integer eventMode = item.getEventMode();
-                Double eventValue = item.getEventValue();
                 Integer tableReportId = item.getTableReportId();
                 DataModel dm = dmMap.get(itemReadName);
                 for (org.openscada.opc.lib.da.Item item1 : resultMap.keySet()) {
@@ -117,21 +115,21 @@ public class OpcDaSpecifyTask extends TimerTask {
                         if (javaType.toLowerCase().equals("boolean")) {
                             //存数据
                             Boolean dmData = JSON.parseObject(value.toString(), Boolean.class);
-                            RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                    currentYmdhmss, currentYmdh, new Date());
-                            opcAsyncTask.addTempRawData(rawData);
-                            opcAsyncTask.packageRawData(item, dataSourceId, currentYmdh);
+//                            RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                    currentYmdhmss, currentYmdh, new Date());
+//                            opcAsyncTask.addTempRawData(rawData);
+//                            opcAsyncTask.packageRawData(item, dataSourceId, currentYmdh);
 
                             EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
                                     currentYmdhmss, currentYmdh, new Date(), 0L);
                             eventRawDataList.add(eventRawData);
 
-                            if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                                if (eventMode.equals(ConstantStr.EVENT_MODEL_BOOLEAN)) {
-                                    if ((dmData ? ConstantStr.BOOLEAN_TRUE : ConstantStr.BOOLEAN_FALSE).equals(eventValue.intValue())) {
-                                        eventFlage = true;
-                                    }
-                                }
+                            if (Blank.isNotEmpty(tableReportId)) {
+//                                if (eventMode.equals(ConstantStr.EVENT_MODEL_BOOLEAN)) {
+//                                    if ((dmData ? ConstantStr.BOOLEAN_TRUE : ConstantStr.BOOLEAN_FALSE).equals(eventValue.intValue())) {
+//                                        eventFlage = true;
+//                                    }
+//                                }
                             }
                         } else {
                             try {
@@ -139,30 +137,30 @@ public class OpcDaSpecifyTask extends TimerTask {
                                 BigDecimal dmData = Blank.isNotEmpty(dm) ?
                                         MathUtil.quadricOperation(dm.getMathParameter(), dm.getOperationRule(), bigDecimal) :
                                         bigDecimal;
-                                RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                        currentYmdhmss, currentYmdh, new Date());
-                                opcAsyncTask.addTempRawData(rawData);
+//                                RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                        currentYmdhmss, currentYmdh, new Date());
+//                                opcAsyncTask.addTempRawData(rawData);
 
                                 EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
                                         currentYmdhmss, currentYmdh, new Date(), 0L);
                                 eventRawDataList.add(eventRawData);
 
-                                if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                                    BigDecimal bigEventValue = new BigDecimal(eventValue);
-                                    if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
-                                        if (dmData.compareTo(bigEventValue) == 1) {
-                                            eventFlage = true;
-                                        }
-                                    } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
-                                        if (dmData.compareTo(bigEventValue) == -1) {
-                                            eventFlage = true;
-                                        }
-                                    }
+                                if ( Blank.isNotEmpty(tableReportId)) {
+//                                    BigDecimal bigEventValue = new BigDecimal(eventValue);
+//                                    if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
+//                                        if (dmData.compareTo(bigEventValue) == 1) {
+//                                            eventFlage = true;
+//                                        }
+//                                    } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
+//                                        if (dmData.compareTo(bigEventValue) == -1) {
+//                                            eventFlage = true;
+//                                        }
+//                                    }
                                 }
                             } catch (Exception e) {
-                                RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(value.toString()),
-                                        currentYmdhmss, currentYmdh, new Date());
-                                opcAsyncTask.addTempRawData(rawData);
+//                                RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(value.toString()),
+//                                        currentYmdhmss, currentYmdh, new Date());
+//                                opcAsyncTask.addTempRawData(rawData);
 
                                 EventRawData eventRawData = new EventRawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(value.toString()),
                                         currentYmdhmss, currentYmdh, new Date(), 0L);

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

@@ -1,9 +1,6 @@
 package com.example.opc_da.task;
 
-import com.example.opc_common.entity.DataModel;
-import com.example.opc_common.entity.DataSource;
-import com.example.opc_common.entity.Item;
-import com.example.opc_common.entity.ItemGroup;
+import com.example.opc_common.entity.*;
 import com.example.opc_common.enums.ResultEnum;
 import com.example.opc_common.exception.CustomException;
 import com.example.opc_common.util.Blank;
@@ -14,8 +11,11 @@ import com.example.opc_da.dao.DataModelDao;
 import com.example.opc_da.dao.ItemGroupDao;
 import com.example.opc_da.dao.MessageNoticeDao;
 import com.example.opc_da.dynamicSchedule.CronTaskRegister;
+import com.example.opc_da.util.OpcDaUtil;
 import com.example.opc_da.util.RedisUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.openscada.opc.lib.da.Group;
+import org.openscada.opc.lib.da.Server;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
@@ -48,12 +48,23 @@ public class OpcDaTask {
     private String timeFormat;
 
     public void opcDaTask(ItemGroup itemGroup, DataSource dataSource, String cronId) {
+        log.info("OPCDa开始运行,{},执行开始,执行时间为{}", itemGroup, DateUtil.dateChangeStrYmdhmss(new Date()));
         Integer id = itemGroup.getId();
         Integer readMode = itemGroup.getReadMode();
         //读取数据并保存
         Timer timer = new Timer();
-        Date startDate = DateUtil.strYmdhmsChangeDate(DateUtil.getCurrentYmd() + " " + itemGroup.getStartReadTime());
-        Date endDate = DateUtil.strYmdhmsChangeDate(DateUtil.getCurrentYmd() + " " + itemGroup.getEndReadTime());
+        String startTime = DateUtil.getCurrentYmd() + " " + itemGroup.getStartReadTime();
+        String endTime = DateUtil.getCurrentYmd() + " " + itemGroup.getEndReadTime();
+//        Date startDate = DateUtil.strYmdhmsChangeDate(DateUtil.getCurrentYmd() + " " + itemGroup.getStartReadTime());
+//        Date endDate = DateUtil.strYmdhmsChangeDate(DateUtil.getCurrentYmd() + " " + itemGroup.getEndReadTime());
+        Date startDate = DateUtil.strYmdhmsChangeDate(startTime);
+        Date endDate = DateUtil.strYmdhmsChangeDate(endTime);
+        log.info("timer开始执行的时间字符串为{}", startTime);
+        log.info("timer结束执行的时间字符串为{}", endTime);
+        log.info("timer开始执行的时间为{}", DateUtil.dateChangeStrYmdhmss(startDate));
+        log.info("timer结束执行的时间为{}", DateUtil.dateChangeStrYmdhmss(endDate));
+        log.info("timer结束执行时间戳为{}", endDate.getTime());
+        log.info("目前系统的时间戳为{}", System.currentTimeMillis());
 
         Boolean flage = false;
         //获取组中所有标签的数据模型,并转换为map<itemName,DataModel>
@@ -83,22 +94,23 @@ public class OpcDaTask {
         }
         List<String> itemStrList = itemGroupDao.getItemReadNameById(itemGroup.getId());
         String[] items = itemStrList.toArray(new String[]{});
-        if (readMode == ConstantStr.ON_FREQUENCY) {
-            timer.schedule(new OpcDaFrequencyTask(redisUtil,
-                            opcAsyncTask,
-                            cronId,
-                            cronTaskRegister,
-                            itemGroupDao,
-                            messageNoticeDao,
-                            timer,
-                            itemGroup,
-                            dataSource,
-                            map,
-                            allItemList,
-                            timeFormat,
-                            endDate.getTime()),
-                    startDate);
-        } else if (readMode == ConstantStr.ON_CHANGE) {
+//        if (readMode == ConstantStr.ON_FREQUENCY) {
+//            timer.schedule(new OpcDaFrequencyTask(redisUtil,
+//                            opcAsyncTask,
+//                            cronId,
+//                            cronTaskRegister,
+//                            itemGroupDao,
+//                            messageNoticeDao,
+//                            timer,
+//                            itemGroup,
+//                            dataSource,
+//                            map,
+//                            allItemList,
+//                            timeFormat,
+//                            endDate.getTime()),
+//                    startDate);
+//        } else
+        if (readMode == ConstantStr.ON_CHANGE) {
             timer.schedule(new OpcDaChangeTask(redisUtil,
                             opcAsyncTask,
                             cronId,
@@ -127,22 +139,22 @@ public class OpcDaTask {
                             allItemList,
                             timeFormat,
                             endDate.getTime()),
-                    startDate);
-        } else if (readMode == ConstantStr.LOWER_SET_VALUE) {
-            timer.schedule(new OpcDaLowseTask(redisUtil,
-                            opcAsyncTask,
-                            cronId,
-                            cronTaskRegister,
-                            itemGroupDao,
-                            messageNoticeDao,
-                            timer,
-                            itemGroup,
-                            dataSource,
-                            map,
-                            allItemList,
-                            timeFormat,
-                            endDate.getTime()),
-                    startDate);
+                    startDate, 1000);
+//        } else if (readMode == ConstantStr.LOWER_SET_VALUE) {
+//            timer.schedule(new OpcDaLowseTask(redisUtil,
+//                            opcAsyncTask,
+//                            cronId,
+//                            cronTaskRegister,
+//                            itemGroupDao,
+//                            messageNoticeDao,
+//                            timer,
+//                            itemGroup,
+//                            dataSource,
+//                            map,
+//                            allItemList,
+//                            timeFormat,
+//                            endDate.getTime()),
+//                    startDate);
         } else if (readMode == ConstantStr.SPECIFY_TIME) {
             timer.schedule(new OpcDaSpecifyTask(redisUtil,
                             opcAsyncTask,

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

@@ -426,7 +426,7 @@ public class OpcDaUtil {
                             jsonObject.put("dataSourceName", dataSource.getDataSourceName());
                             jsonObject.put("itemName", item.getItemName());
                             jsonObject.put("dataType", javaType);
-                            jsonObject.put("eventMode", item.getEventMode());
+//                            jsonObject.put("eventMode", item.getEventMode());
                             jsonObject.put("dataOrgValue", value);
                             if (javaType.toLowerCase().equals("boolean")) {
                                 jsonObject.put("dataValue", value);

+ 12 - 15
chaunyi_opc/opc_da/src/main/resources/mapper/ItemGroupDao.xml

@@ -4,31 +4,30 @@
 
     <sql id="itemGroup">
         id
-        , user_id, group_name, group_describe, data_source_id, read_mode, mode_value, read_week, run_state,
-            cron_id, start_read_time, end_read_time , create_time
+        , user_id, group_name, group_describe, data_source_id, read_mode, read_mode_type, mode_value, mode_value_time,
+            read_week, run_state, cron_id, start_read_time, end_read_time , create_time
     </sql>
 
     <sql id="item">
         id
-        , item_group_id, item_name, item_read_name, node_index , data_type, `describe`, data_model_id, event_mode, event_value, table_report_id
+        , item_group_id, item_name, item_read_name, node_index , data_type, `describe`, data_model_id, table_report_id
     </sql>
 
     <insert id="addItemGroup" parameterType="com.example.opc_common.entity.ItemGroup" useGeneratedKeys="true"
             keyProperty="id">
-        insert into t_item_group(user_id, group_name, group_describe, data_source_id, read_mode, mode_value, read_week
-            start_read_time, end_read_time, create_time)
-        values (#{userId}, #{groupName}, #{groupDescribe}, #{dataSourceId}, #{readMode}, #{modeValue}, #{readWeek},
-                #{startReadTime},
-                #{endReadTime}, now())
+        insert into t_item_group(user_id, group_name, group_describe, data_source_id, read_mode, read_mode_type,
+                                 mode_value, mode_value_time, read_week, start_read_time, end_read_time, create_time)
+        values (#{userId}, #{groupName}, #{groupDescribe}, #{dataSourceId}, #{readMode}, #{readModeType}, #{modeValue},
+                #{modeValueTime}, #{readWeek}, #{startReadTime}, #{endReadTime}, now())
     </insert>
 
     <insert id="addItem">
         insert into t_item (item_group_id, item_name,
-        item_read_name,node_index ,data_type,`describe`,data_model_id,event_mode,event_value,table_report_id)
+        item_read_name,node_index ,data_type,`describe`,data_model_id,table_report_id)
         VALUES
         <foreach collection="itemList" item="item" index="index" separator=",">
             (#{itemGroupId},#{item.itemName},#{item.itemReadName},#{item.nodeIndex},#{item.dataType},
-            #{item.describe},#{item.dataModelId},#{item.eventMode},#{item.eventValue},#{item.tableReportId})
+            #{item.describe},#{item.dataModelId},#{item.tableReportId})
         </foreach>
     </insert>
 
@@ -38,7 +37,9 @@
             group_describe=#{groupDescribe},
             data_source_id=#{dataSourceId},
             read_mode=#{readMode},
+            read_mode_type=#{readModeType},
             mode_value=#{modeValue},
+            mode_value_time=#{modeValueTime},
             read_week=#{readWeek},
             start_read_time=#{startReadTime},
             end_read_time=#{endReadTime}
@@ -61,8 +62,6 @@
     <update id="updateItem">
         update t_item
         set data_model_id=#{dataModelId},
-            event_mode=#{eventMode},
-            event_value=#{eventValue},
             table_report_id=#{tableReportId},
             `describe`=#{describe}
         where id = #{id}
@@ -140,14 +139,12 @@
                ti.data_type,
                ti.`describe`,
                ti.data_model_id,
-               ti.event_mode,
-               ti.event_value,
                ti.table_report_id,
                tdm.operation_rule
         FROM t_item ti
                  LEFT JOIN t_data_model tdm ON ti.data_model_id = tdm.id
         where item_group_id = #{itemGroupId}
-        order by event_mode DESC, item_name
+        order by table_report_id DESC, item_name
     </select>
 
     <select id="getPublicItemList" resultType="com.example.opc_common.entity.Item">

+ 25 - 4
chaunyi_opc/opc_da/src/main/resources/mapper/RawDataDao.xml

@@ -4,7 +4,7 @@
 
     <sql id="rawData">
         id
-        , item_group_id, data_source_id, item_name, data_type, data_value, data_value_time, value_belong_time, create_time
+        , item_group_id, data_source_id, item_name, data_type, data_value, data_value_time, data_index, value_belong_time, is_meet_change, create_time
     </sql>
 
     <sql id="eventRawData">
@@ -35,11 +35,12 @@
 
     <insert id="addTempRawData">
         insert into t_raw_data
-        (item_group_id, data_source_id, item_name, data_type, data_value, data_value_time, value_belong_time,
-         create_time)
+        (item_group_id, data_source_id, item_name, data_type, data_value, data_value_time, data_index,
+         value_belong_time,
+         is_meet_change, create_time)
         VALUES (#{itemGroupId}, #{dataSourceId}, #{itemName}, #{dataType},
                 #{dataValue},
-                #{dataValueTime}, #{valueBelongTime}, #{createTime})
+                #{dataValueTime}, #{dataIndex}, #{valueBelongTime}, #{isMeetChange}, #{createTime})
     </insert>
 
     <insert id="addEventRawData">
@@ -189,4 +190,24 @@
           and item_name = #{item.itemReadName}
           and value_belong_time = #{valueBelongTime}
     </select>
+
+    <select id="getMeetIndexList" resultType="java.lang.Long">
+        SELECT
+        data_index
+        FROM
+        t_raw_data
+        WHERE
+        item_group_id = #{itemGroupId}
+        AND data_source_id = #{dataSourceId}
+        <if test="itemList!= null and itemList.size() >0">
+            AND item_name IN
+            <foreach collection="itemList" item="item" separator="," open="(" close=")">
+                #{item.itemReadName}
+            </foreach>
+        </if>
+        AND value_belong_time = #{valueBelongTime}
+        AND is_meet_change = #{notMeetChange}
+        GROUP BY
+        data_index;
+    </select>
 </mapper>

+ 13 - 45
chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/service/impl/ItemGroupServiceImpl.java

@@ -15,17 +15,16 @@ import com.example.opc_ua.dao.MessageNoticeDao;
 import com.example.opc_ua.service.ItemGroupService;
 import com.example.opc_ua.task.OpcAsyncTask;
 import com.example.opc_ua.task.OpcUaTask;
+import com.example.opc_ua.task.OpcUaWeekTask;
 import com.example.opc_ua.util.OpcUaUtil;
 import com.example.opc_ua.util.RedisUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Timer;
+import java.util.*;
 
 @Service
 @Transactional
@@ -103,32 +102,7 @@ public class ItemGroupServiceImpl implements ItemGroupService {
         ItemGroup itemGroup = itemGroupDao.getItemGroupById(id);
         DataSource dataSource = DataSource.convertPassword(dataSourceDao.getDataSourceById(itemGroup.getDataSourceId()));
         DataSourceType dataSourceType = dataSourceDao.getDataSourceTypeById(dataSource.getTypeId());
-        Boolean flage = false;
-        //获取组中所有标签的数据模型,并转换为map<itemName,DataModel>
-        List<Item> allItemList = itemGroupDao.getItemListByGroupId(id);
-        itemGroup.setItemList(allItemList);
-        if (Blank.isNotEmpty(allItemList)) {
-            for (Item item : allItemList) {
-                if (Blank.isNotEmpty(item.getDataModelId())) {
-                    flage = true;
-                    break;
-                }
-            }
-        }
-        Map<String, DataModel> map = new HashMap<>();
-        if (flage) {
-            List<DataModel> dmListByItemList = dataModelDao.getDmListByItemList(allItemList);
-            if (Blank.isNotEmpty(dmListByItemList)) {
-                for (int i = 0; i < allItemList.size(); i++) {
-                    for (DataModel dm : dmListByItemList) {
-                        if (dm.getId().equals(allItemList.get(i).getDataModelId())) {
-                            map.put(allItemList.get(i).getItemReadName(), dm);
-                            break;
-                        }
-                    }
-                }
-            }
-        }
+
         if (runState.equals(ConstantStr.START_UP)) {
             if (itemGroup.getRunState().equals(ConstantStr.START_UP)) {
                 return Result.ok("此数据组已处于运行中");
@@ -136,7 +110,7 @@ public class ItemGroupServiceImpl implements ItemGroupService {
             if (dataSourceType.getDataSourceTypeKey().equals(DataSourceTypeEnum.OPC_UA_REAL.getValue()) ||
                     dataSourceType.getDataSourceTypeKey().equals(DataSourceTypeEnum.OPC_UA_HISTORY.getValue())) {
                 if (Blank.isEmpty(dataSource.getIpAddress(), dataSource.getIpPort(), dataSource.getIsAnonymous())) {
-                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "ip地址,端口号,匿名方式都不能为空");
+                    throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "数据组配置的数据源的ip地址,端口号,匿名方式都不能为空");
                 }
                 if (dataSource.getIsAnonymous() == ConstantStr.NOT_ANONYMOUS) {
                     if (Blank.isEmpty(dataSource.getIpUserName(), dataSource.getIpPassword())) {
@@ -144,20 +118,14 @@ public class ItemGroupServiceImpl implements ItemGroupService {
                     }
                 }
                 redisUtil.set(ConstantStr.ITEM_GROUP + id, true);
-                Timer timer = new Timer();
-                List<Item> itemList = itemGroupDao.getItemListByGroupId(id);
-                //异步读取opcUA数据并保存
-                timer.schedule(new OpcUaTask(redisUtil,
-                                opcAsyncTask,
-                                itemGroupDao,
-                                messageNoticeDao,
-                                timer,
-                                itemGroup,
-                                dataSource,
-                                map,
-                                itemList,
-                                timeFormat),
-                        DateUtil.strYmdhmsChangeDate(DateUtil.getCurrentYmd() + " " + itemGroup.getStartReadTime()), ConstantStr.PERIOD_DAY);
+                //新增定时器任务
+                String cronId = "";
+                String cron = "0 0 0 ? * " + itemGroup.getReadWeek();
+                if (Blank.isEmpty(itemGroup.getCronId())) {
+                    cronId = UUID.randomUUID().toString().replace("-", "");
+                } else {
+                    cronId = itemGroup.getCronId();
+                }
                 itemGroupDao.runItemGroupById(id, runState);
                 return Result.ok("启动成功");
             } else {

+ 46 - 46
chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/task/OpcAsyncTask.java

@@ -86,13 +86,13 @@ public class OpcAsyncTask {
                         dataList.add(JSON.parseObject(rawData.getDataValue(), Boolean.class));
                         dataTimeList.add(rawData.getDataValueTime());
                     }
-                    RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
-                            JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
-                    if (Blank.isEmpty(oldRawData)) {
-                        rawDataDao.addRawData(remainder, rawData);
-                    } else {
-                        rawDataDao.updateRawData(remainder, rawData);
-                    }
+//                    RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
+//                            JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
+//                    if (Blank.isEmpty(oldRawData)) {
+//                        rawDataDao.addRawData(remainder, rawData);
+//                    } else {
+//                        rawDataDao.updateRawData(remainder, rawData);
+//                    }
                 } else {
                     List<String> dataTimeList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValueTime(), String[].class))) : new ArrayList<>();
                     try {
@@ -102,26 +102,26 @@ public class OpcAsyncTask {
                             dataList.add(bigDecimal);
                             dataTimeList.add(rawData.getDataValueTime());
                         }
-                        RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
-                                JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
-                        if (Blank.isEmpty(oldRawData)) {
-                            rawDataDao.addRawData(remainder, rawData);
-                        } else {
-                            rawDataDao.updateRawData(remainder, rawData);
-                        }
+//                        RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
+//                                JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
+//                        if (Blank.isEmpty(oldRawData)) {
+//                            rawDataDao.addRawData(remainder, rawData);
+//                        } else {
+//                            rawDataDao.updateRawData(remainder, rawData);
+//                        }
                     } catch (Exception e) {
                         List<String> dataList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValue(), String[].class))) : new ArrayList<>();
                         for (RawData rawData : rawDataList) {
                             dataList.add(rawData.getDataValue());
                             dataTimeList.add(rawData.getDataValueTime());
                         }
-                        RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
-                                JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
-                        if (Blank.isEmpty(oldRawData)) {
-                            rawDataDao.addRawData(remainder, rawData);
-                        } else {
-                            rawDataDao.updateRawData(remainder, rawData);
-                        }
+//                        RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
+//                                JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
+//                        if (Blank.isEmpty(oldRawData)) {
+//                            rawDataDao.addRawData(remainder, rawData);
+//                        } else {
+//                            rawDataDao.updateRawData(remainder, rawData);
+//                        }
                     }
                 }
                 rawDataDao.delRawDataList(rawDataList, sqlCurrentYmdh);
@@ -154,13 +154,13 @@ public class OpcAsyncTask {
                             dataList.add(JSON.parseObject(rawData.getDataValue(), Boolean.class));
                             dataTimeList.add(rawData.getDataValueTime());
                         }
-                        RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
-                                JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
-                        if (Blank.isEmpty(oldRawData)) {
-                            rawDataDao.addRawData(remainder, rawData);
-                        } else {
-                            rawDataDao.updateRawData(remainder, rawData);
-                        }
+//                        RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
+//                                JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
+//                        if (Blank.isEmpty(oldRawData)) {
+//                            rawDataDao.addRawData(remainder, rawData);
+//                        } else {
+//                            rawDataDao.updateRawData(remainder, rawData);
+//                        }
                     } else {
                         List<String> dataTimeList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValueTime(), String[].class))) : new ArrayList<>();
                         try {
@@ -170,26 +170,26 @@ public class OpcAsyncTask {
                                 dataList.add(bigDecimal);
                                 dataTimeList.add(rawData.getDataValueTime());
                             }
-                            RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
-                                    JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
-                            if (Blank.isEmpty(oldRawData)) {
-                                rawDataDao.addRawData(remainder, rawData);
-                            } else {
-                                rawDataDao.updateRawData(remainder, rawData);
-                            }
+//                            RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
+//                                    JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
+//                            if (Blank.isEmpty(oldRawData)) {
+//                                rawDataDao.addRawData(remainder, rawData);
+//                            } else {
+//                                rawDataDao.updateRawData(remainder, rawData);
+//                            }
                         } catch (Exception e) {
                             List<String> dataList = Blank.isNotEmpty(oldRawData) ? new ArrayList<>(Arrays.asList(JSON.parseObject(oldRawData.getDataValue(), String[].class))) : new ArrayList<>();
                             for (RawData rawData : rawDataList) {
                                 dataList.add(rawData.getDataValue());
                                 dataTimeList.add(rawData.getDataValueTime());
                             }
-                            RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
-                                    JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
-                            if (Blank.isEmpty(oldRawData)) {
-                                rawDataDao.addRawData(remainder, rawData);
-                            } else {
-                                rawDataDao.updateRawData(remainder, rawData);
-                            }
+//                            RawData rawData = new RawData(itemGroupId, dataSourceId, itemName, dataType, JSON.toJSONString(dataList),
+//                                    JSON.toJSONString(dataTimeList), sqlCurrentYmdh, new Date());
+//                            if (Blank.isEmpty(oldRawData)) {
+//                                rawDataDao.addRawData(remainder, rawData);
+//                            } else {
+//                                rawDataDao.updateRawData(remainder, rawData);
+//                            }
                         }
                     }
                     rawDataDao.delRawDataList(rawDataList, sqlCurrentYmdh);
@@ -228,10 +228,10 @@ public class OpcAsyncTask {
         Integer tableReportId = null;
         if (Blank.isNotEmpty(itemList)) {
             for (Item item : itemList) {
-                if (Blank.isNotEmpty(item.getEventMode()) && Blank.isNotEmpty(item.getEventValue()) && Blank.isNotEmpty(item.getTableReportId())) {
-                    tableReportId = item.getTableReportId();
-                    break;
-                }
+//                if (Blank.isNotEmpty(item.getEventMode()) && Blank.isNotEmpty(item.getEventValue()) && Blank.isNotEmpty(item.getTableReportId())) {
+//                    tableReportId = item.getTableReportId();
+//                    break;
+//                }
             }
         }
         if (Blank.isEmpty(tableReportId)) {

+ 16 - 59
chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/task/OpcUaChangeTask.java

@@ -71,8 +71,6 @@ public class OpcUaChangeTask extends TimerTask {
         Integer dataSourceId = dataSource.getId();
         for (Item item : itemList) {
             String itemId = item.getItemReadName();
-            Integer eventMode = item.getEventMode();
-            Double eventValue = item.getEventValue();
             Integer tableReportId = item.getTableReportId();
             NodeId n = new NodeId(item.getNodeIndex(), itemId);
             DataModel dm = map.get(itemId);
@@ -96,7 +94,7 @@ public class OpcUaChangeTask extends TimerTask {
                     if (!sqlCurrentYmdh.equals(currentYmdh)) {
                         //组装相应的数据
                         opcAsyncTask.packageRawData(item, dataSourceId, sqlCurrentYmdh);
-                        if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+                        if (Blank.isNotEmpty(tableReportId)) {
                             opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
                         }
                         redisUtil.set(ConstantStr.VALUE_BELONG_TIME + id, currentYmdh, ConstantStr.TWO_HOUR);
@@ -108,24 +106,10 @@ public class OpcUaChangeTask extends TimerTask {
                     if (JSON.parseObject(redisValue.toString(), Boolean.class) != JSON.parseObject(value.toString(), Boolean.class)) {
                         redisUtil.set(ConstantStr.VALUE + id + itemId, JSON.parseObject(value.toString(), Boolean.class), ConstantStr.TWO_HOUR);
                         Boolean dmData = JSON.parseObject(value.toString(), Boolean.class);
-                        RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                currentYmdhmss, currentYmdh, new Date());
-                        opcAsyncTask.addTempRawData(rawData);
-
-                        if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                            if (eventMode.equals(ConstantStr.EVENT_MODEL_BOOLEAN)) {
-                                if ((dmData ? ConstantStr.BOOLEAN_TRUE : ConstantStr.BOOLEAN_FALSE).equals(eventValue.intValue())) {
-                                    eventFlage = true;
-                                    opcAsyncTask.addEventRawData(rawData);
-                                } else {
-                                    eventFlage = false;
-                                }
-                            }
-                        } else {
-                            if (eventFlage) {
-                                opcAsyncTask.addEventRawData(rawData);
-                            }
-                        }
+//                        RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                currentYmdhmss, currentYmdh, new Date());
+//                        opcAsyncTask.addTempRawData(rawData);
+
                     }
                 } else {
                     try {
@@ -133,50 +117,23 @@ public class OpcUaChangeTask extends TimerTask {
                         BigDecimal dmData = Blank.isNotEmpty(dm) ?
                                 MathUtil.quadricOperation(dm.getMathParameter(), dm.getOperationRule(), bigDecimal) :
                                 bigDecimal;
-                        if (JSON.parseObject(redisValue.toString(), BigDecimal.class).compareTo(dmData) != 0) {
-                            RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                    currentYmdhmss, currentYmdh, new Date());
-                            opcAsyncTask.addTempRawData(rawData);
-
-                            if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                                BigDecimal bigEventValue = new BigDecimal(eventValue);
-                                if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
-                                    if (dmData.compareTo(bigEventValue) == 1) {
-                                        eventFlage = true;
-                                        opcAsyncTask.addEventRawData(rawData);
-                                    } else {
-                                        eventFlage = false;
-                                    }
-                                } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
-                                    if (dmData.compareTo(bigEventValue) == -1) {
-                                        eventFlage = true;
-                                        opcAsyncTask.addEventRawData(rawData);
-                                    } else {
-                                        eventFlage = false;
-                                    }
-                                }
-                            } else {
-                                if (eventFlage) {
-                                    opcAsyncTask.addEventRawData(rawData);
-                                }
-                            }
-                        }
+//                        if (JSON.parseObject(redisValue.toString(), BigDecimal.class).compareTo(dmData) != 0) {
+//                            RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                    currentYmdhmss, currentYmdh, new Date());
+//                            opcAsyncTask.addTempRawData(rawData);
+//
+//                        }
                     } catch (Exception e) {
-                        RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(value.toString()),
-                                currentYmdhmss, currentYmdh, new Date());
-                        opcAsyncTask.addTempRawData(rawData);
-
-                        if (Blank.isEmpty(eventMode, eventValue, tableReportId)) {
-                            if (eventFlage) {
-                                opcAsyncTask.addEventRawData(rawData);
-                            }
-                        }
+//                        RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(value.toString()),
+//                                currentYmdhmss, currentYmdh, new Date());
+//                        opcAsyncTask.addTempRawData(rawData);
+
                     }
                 }
             } catch (Exception e) {
                 //执行组装数据库的数据,以及生成驱动报表
                 opcAsyncTask.packageRawDataList(itemList, dataSourceId, sqlCurrentYmdh);
-                if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+                if ( Blank.isNotEmpty(tableReportId)) {
                     opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
                 }
                 redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);

+ 24 - 26
chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/task/OpcUaExceedTask.java

@@ -71,8 +71,6 @@ public class OpcUaExceedTask extends TimerTask {
         Integer dataSourceId = dataSource.getId();
         for (Item item : itemList) {
             String itemId = item.getItemReadName();
-            Integer eventMode = item.getEventMode();
-            Double eventValue = item.getEventValue();
             Integer tableReportId = item.getTableReportId();
             NodeId n = new NodeId(item.getNodeIndex(), itemId);
             DataModel dm = map.get(itemId);
@@ -95,7 +93,7 @@ public class OpcUaExceedTask extends TimerTask {
                     if (!sqlCurrentYmdh.equals(currentYmdh)) {
                         //组装相应的数据
                         opcAsyncTask.packageRawData(item, dataSourceId, sqlCurrentYmdh);
-                        if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+                        if ( Blank.isNotEmpty(tableReportId)) {
                             opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
                         }
                         redisUtil.set(ConstantStr.VALUE_BELONG_TIME + id, currentYmdh, ConstantStr.TWO_HOUR);
@@ -110,30 +108,30 @@ public class OpcUaExceedTask extends TimerTask {
                                 MathUtil.quadricOperation(dm.getMathParameter(), dm.getOperationRule(), bigDecimal) :
                                 bigDecimal;
                         if (dmData.compareTo(bigModeValue) == 1) {
-                            RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                    currentYmdhmss, currentYmdh, new Date());
-                            opcAsyncTask.addTempRawData(rawData);
-
-                            if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                                BigDecimal bigEventValue = new BigDecimal(eventValue);
-                                if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
-                                    if (dmData.compareTo(bigEventValue) == 1) {
-                                        eventFlage = true;
-                                        opcAsyncTask.addEventRawData(rawData);
-                                    } else {
-                                        eventFlage = false;
-                                    }
-                                } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
-                                    if (dmData.compareTo(bigEventValue) == -1) {
-                                        eventFlage = true;
-                                        opcAsyncTask.addEventRawData(rawData);
-                                    } else {
-                                        eventFlage = false;
-                                    }
-                                }
+//                            RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                    currentYmdhmss, currentYmdh, new Date());
+//                            opcAsyncTask.addTempRawData(rawData);
+
+                            if ( Blank.isNotEmpty(tableReportId)) {
+//                                BigDecimal bigEventValue = new BigDecimal(eventValue);
+//                                if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
+//                                    if (dmData.compareTo(bigEventValue) == 1) {
+//                                        eventFlage = true;
+//                                        opcAsyncTask.addEventRawData(rawData);
+//                                    } else {
+//                                        eventFlage = false;
+//                                    }
+//                                } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
+//                                    if (dmData.compareTo(bigEventValue) == -1) {
+//                                        eventFlage = true;
+//                                        opcAsyncTask.addEventRawData(rawData);
+//                                    } else {
+//                                        eventFlage = false;
+//                                    }
+//                                }
                             } else {
                                 if (eventFlage) {
-                                    opcAsyncTask.addEventRawData(rawData);
+//                                    opcAsyncTask.addEventRawData(rawData);
                                 }
                             }
                         }
@@ -152,7 +150,7 @@ public class OpcUaExceedTask extends TimerTask {
             } catch (Exception e) {
                 //执行组装数据库的数据,以及生成驱动报表
                 opcAsyncTask.packageRawDataList(itemList, dataSourceId, sqlCurrentYmdh);
-                if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+                if (  Blank.isNotEmpty(tableReportId)) {
                     opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
                 }
                 redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);

+ 47 - 49
chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/task/OpcUaFrequencyTask.java

@@ -73,8 +73,6 @@ public class OpcUaFrequencyTask extends TimerTask {
         Integer dataSourceId = dataSource.getId();
         for (Item item : itemList) {
             String itemId = item.getItemReadName();
-            Integer eventMode = item.getEventMode();
-            Double eventValue = item.getEventValue();
             Integer tableReportId = item.getTableReportId();
             NodeId n = new NodeId(item.getNodeIndex(), itemId);
             DataModel dm = map.get(itemId);
@@ -96,7 +94,7 @@ public class OpcUaFrequencyTask extends TimerTask {
                     if (!sqlCurrentYmdh.equals(currentYmdh)) {
                         //组装相应的数据
                         opcAsyncTask.packageRawData(item, dataSourceId, sqlCurrentYmdh);
-                        if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+                        if ( Blank.isNotEmpty(tableReportId)) {
                             opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
                         }
                         redisUtil.set(ConstantStr.VALUE_BELONG_TIME + id, currentYmdh, ConstantStr.TWO_HOUR);
@@ -107,22 +105,22 @@ public class OpcUaFrequencyTask extends TimerTask {
                 if (javaType.toLowerCase().equals("boolean")) {
                     //存数据
                     Boolean dmData = JSON.parseObject(value.toString(), Boolean.class);
-                    RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                            currentYmdhmss, currentYmdh, new Date());
-                    opcAsyncTask.addTempRawData(rawData);
-
-                    if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                        if (eventMode.equals(ConstantStr.EVENT_MODEL_BOOLEAN)) {
-                            if ((dmData ? ConstantStr.BOOLEAN_TRUE : ConstantStr.BOOLEAN_FALSE).equals(eventValue.intValue())) {
-                                eventFlage = true;
-                                opcAsyncTask.addEventRawData(rawData);
-                            } else {
-                                eventFlage = false;
-                            }
-                        }
+//                    RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                            currentYmdhmss, currentYmdh, new Date());
+//                    opcAsyncTask.addTempRawData(rawData);
+
+                    if ( Blank.isNotEmpty(tableReportId)) {
+//                        if (eventMode.equals(ConstantStr.EVENT_MODEL_BOOLEAN)) {
+//                            if ((dmData ? ConstantStr.BOOLEAN_TRUE : ConstantStr.BOOLEAN_FALSE).equals(eventValue.intValue())) {
+//                                eventFlage = true;
+//                                opcAsyncTask.addEventRawData(rawData);
+//                            } else {
+//                                eventFlage = false;
+//                            }
+//                        }
                     } else {
                         if (eventFlage) {
-                            opcAsyncTask.addEventRawData(rawData);
+//                            opcAsyncTask.addEventRawData(rawData);
                         }
                     }
                 } else {
@@ -131,48 +129,48 @@ public class OpcUaFrequencyTask extends TimerTask {
                         BigDecimal dmData = Blank.isNotEmpty(dm) ?
                                 MathUtil.quadricOperation(dm.getMathParameter(), dm.getOperationRule(), bigDecimal) :
                                 bigDecimal;
-                        RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                currentYmdhmss, currentYmdh, new Date());
-                        opcAsyncTask.addTempRawData(rawData);
-
-                        if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                            BigDecimal bigEventValue = new BigDecimal(eventValue);
-                            if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
-                                if (dmData.compareTo(bigEventValue) == 1) {
-                                    eventFlage = true;
-                                    opcAsyncTask.addEventRawData(rawData);
-                                } else {
-                                    eventFlage = false;
-                                }
-                            } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
-                                if (dmData.compareTo(bigEventValue) == -1) {
-                                    eventFlage = true;
-                                    opcAsyncTask.addEventRawData(rawData);
-                                } else {
-                                    eventFlage = false;
-                                }
-                            }
+//                        RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                currentYmdhmss, currentYmdh, new Date());
+//                        opcAsyncTask.addTempRawData(rawData);
+
+                        if ( Blank.isNotEmpty(tableReportId)) {
+//                            BigDecimal bigEventValue = new BigDecimal(eventValue);
+//                            if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
+//                                if (dmData.compareTo(bigEventValue) == 1) {
+//                                    eventFlage = true;
+//                                    opcAsyncTask.addEventRawData(rawData);
+//                                } else {
+//                                    eventFlage = false;
+//                                }
+//                            } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
+//                                if (dmData.compareTo(bigEventValue) == -1) {
+//                                    eventFlage = true;
+//                                    opcAsyncTask.addEventRawData(rawData);
+//                                } else {
+//                                    eventFlage = false;
+//                                }
+//                            }
                         } else {
                             if (eventFlage) {
-                                opcAsyncTask.addEventRawData(rawData);
+//                                opcAsyncTask.addEventRawData(rawData);
                             }
                         }
                     } catch (Exception e) {
-                        RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(value.toString()),
-                                currentYmdhmss, currentYmdh, new Date());
-                        opcAsyncTask.addTempRawData(rawData);
-
-                        if (Blank.isEmpty(eventMode, eventValue, tableReportId)) {
-                            if (eventFlage) {
-                                opcAsyncTask.addEventRawData(rawData);
-                            }
-                        }
+//                        RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(value.toString()),
+//                                currentYmdhmss, currentYmdh, new Date());
+//                        opcAsyncTask.addTempRawData(rawData);
+//
+//                        if (Blank.isEmpty( tableReportId)) {
+//                            if (eventFlage) {
+//                                opcAsyncTask.addEventRawData(rawData);
+//                            }
+//                        }
                     }
                 }
             } catch (Exception e) {
                 //执行组装数据库的数据,以及生成驱动报表
                 opcAsyncTask.packageRawDataList(itemList, dataSourceId, sqlCurrentYmdh);
-                if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+                if ( Blank.isNotEmpty(tableReportId)) {
                     opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
                 }
                 redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);

+ 26 - 28
chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/task/OpcUaLowerTask.java

@@ -70,8 +70,6 @@ public class OpcUaLowerTask extends TimerTask {
         Integer dataSourceId = dataSource.getId();
         for (Item item : itemList) {
             String itemId = item.getItemReadName();
-            Integer eventMode = item.getEventMode();
-            Double eventValue = item.getEventValue();
             Integer tableReportId = item.getTableReportId();
             NodeId n = new NodeId(item.getNodeIndex(), itemId);
             DataModel dm = map.get(itemId);
@@ -94,7 +92,7 @@ public class OpcUaLowerTask extends TimerTask {
                     if (!sqlCurrentYmdh.equals(currentYmdh)) {
                         //组装相应的数据
                         opcAsyncTask.packageRawData(item, dataSourceId, sqlCurrentYmdh);
-                        if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+                        if ( Blank.isNotEmpty(tableReportId)) {
                             opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
                         }
                         redisUtil.set(ConstantStr.VALUE_BELONG_TIME + id, currentYmdh, ConstantStr.TWO_HOUR);
@@ -109,31 +107,31 @@ public class OpcUaLowerTask extends TimerTask {
                                 MathUtil.quadricOperation(dm.getMathParameter(), dm.getOperationRule(), bigDecimal) :
                                 bigDecimal;
                         if (dmData.compareTo(bigModeValue) == -1) {
-                            RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
-                                    currentYmdhmss, currentYmdh, new Date());
-                            opcAsyncTask.addTempRawData(rawData);
-
-                            if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
-                                BigDecimal bigEventValue = new BigDecimal(eventValue);
-                                if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
-                                    if (dmData.compareTo(bigEventValue) == 1) {
-                                        eventFlage = true;
-                                        opcAsyncTask.addEventRawData(rawData);
-                                    } else {
-                                        eventFlage = false;
-                                    }
-                                } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
-                                    if (dmData.compareTo(bigEventValue) == -1) {
-                                        eventFlage = true;
-                                        opcAsyncTask.addEventRawData(rawData);
-                                    } else {
-                                        eventFlage = false;
-                                    }
-                                }
+//                            RawData rawData = new RawData(id, dataSourceId, itemId, javaType, JSON.toJSONString(dmData),
+//                                    currentYmdhmss, currentYmdh, new Date());
+//                            opcAsyncTask.addTempRawData(rawData);
+
+                            if ( Blank.isNotEmpty(tableReportId)) {
+//                                BigDecimal bigEventValue = new BigDecimal(eventValue);
+//                                if (eventMode.equals(ConstantStr.EVENT_MODEL_EXCEED)) {
+//                                    if (dmData.compareTo(bigEventValue) == 1) {
+//                                        eventFlage = true;
+//                                        opcAsyncTask.addEventRawData(rawData);
+//                                    } else {
+//                                        eventFlage = false;
+//                                    }
+//                                } else if (eventMode.equals(ConstantStr.EVENT_MODEL_LOWER)) {
+//                                    if (dmData.compareTo(bigEventValue) == -1) {
+//                                        eventFlage = true;
+//                                        opcAsyncTask.addEventRawData(rawData);
+//                                    } else {
+//                                        eventFlage = false;
+//                                    }
+//                                }
                             } else {
-                                if (eventFlage) {
-                                    opcAsyncTask.addEventRawData(rawData);
-                                }
+//                                if (eventFlage) {
+//                                    opcAsyncTask.addEventRawData(rawData);
+//                                }
                             }
                         }
                     } catch (Exception e) {
@@ -151,7 +149,7 @@ public class OpcUaLowerTask extends TimerTask {
             } catch (Exception e) {
                 //执行组装数据库的数据,以及生成驱动报表
                 opcAsyncTask.packageRawDataList(itemList, dataSourceId, sqlCurrentYmdh);
-                if (Blank.isNotEmpty(eventMode) && Blank.isNotEmpty(eventValue) && Blank.isNotEmpty(tableReportId)) {
+                if ( Blank.isNotEmpty(tableReportId)) {
                     opcAsyncTask.eventTable(dataSourceId, itemList, sqlCurrentYmdh);
                 }
                 redisUtil.del(ConstantStr.VALUE_BELONG_TIME + id);

+ 91 - 0
chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/task/OpcUaWeekTask.java

@@ -0,0 +1,91 @@
+package com.example.opc_ua.task;
+
+import com.example.opc_common.entity.DataModel;
+import com.example.opc_common.entity.DataSource;
+import com.example.opc_common.entity.Item;
+import com.example.opc_common.entity.ItemGroup;
+import com.example.opc_common.util.Blank;
+import com.example.opc_common.util.ConstantStr;
+import com.example.opc_common.util.DateUtil;
+import com.example.opc_ua.dao.DataModelDao;
+import com.example.opc_ua.dao.ItemGroupDao;
+import com.example.opc_ua.dao.MessageNoticeDao;
+import com.example.opc_ua.util.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Timer;
+
+@Slf4j
+@Component
+public class OpcUaWeekTask {
+
+    @Autowired
+    private DataModelDao dataModelDao;
+
+    @Autowired
+    private ItemGroupDao itemGroupDao;
+
+    @Autowired
+    private OpcAsyncTask opcAsyncTask;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Autowired
+    private MessageNoticeDao messageNoticeDao;
+
+    @Value("${opc_storage.time_format}")
+    private String timeFormat;
+
+    public void opcUaTask(ItemGroup itemGroup, DataSource dataSource) {
+        Integer id = itemGroup.getId();
+        Boolean flage = false;
+        //获取组中所有标签的数据模型,并转换为map<itemName,DataModel>
+        List<Item> allItemList = itemGroupDao.getItemListByGroupId(id);
+        itemGroup.setItemList(allItemList);
+        if (Blank.isNotEmpty(allItemList)) {
+            for (Item item : allItemList) {
+                if (Blank.isNotEmpty(item.getDataModelId())) {
+                    flage = true;
+                    break;
+                }
+            }
+        }
+        Map<String, DataModel> map = new HashMap<>();
+        if (flage) {
+            List<DataModel> dmListByItemList = dataModelDao.getDmListByItemList(allItemList);
+            if (Blank.isNotEmpty(dmListByItemList)) {
+                for (int i = 0; i < allItemList.size(); i++) {
+                    for (DataModel dm : dmListByItemList) {
+                        if (dm.getId().equals(allItemList.get(i).getDataModelId())) {
+                            map.put(allItemList.get(i).getItemReadName(), dm);
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+
+        Timer timer = new Timer();
+        List<Item> itemList = itemGroupDao.getItemListByGroupId(id);
+        //异步读取opcUA数据并保存
+        timer.schedule(new OpcUaTask(redisUtil,
+                        opcAsyncTask,
+                        itemGroupDao,
+                        messageNoticeDao,
+                        timer,
+                        itemGroup,
+                        dataSource,
+                        map,
+                        itemList,
+                        timeFormat),
+                DateUtil.strYmdhmsChangeDate(DateUtil.getCurrentYmd() + " " + itemGroup.getStartReadTime()), ConstantStr.PERIOD_DAY);
+
+    }
+}

+ 1 - 1
chaunyi_opc/opc_ua/src/main/java/com/example/opc_ua/util/OpcUaUtil.java

@@ -237,7 +237,7 @@ public class OpcUaUtil {
             for (Item item : itemList) {
                 map.put(item.getItemReadName(), item.getDescribe());
                 mapName.put(item.getItemReadName(), item.getItemName());
-                mapEventMode.put(item.getItemReadName(), item.getEventMode());
+//                mapEventMode.put(item.getItemReadName(), item.getEventMode());
             }
             List<NodeId> nodeIdList = OpcUaUtil.genNodeId(itemList);
             List<JSONObject> jsonObjectList = new ArrayList<>();