Browse Source

系统初始化启动类中,添加系统未组装的数据进行组装(如果系统突然挂了,会导致当前小时的数据未进行组装)

zhoupeng 2 years ago
parent
commit
7794c0a059

+ 26 - 0
chaunyi_opc/opc_da/src/main/java/com/example/opc_da/config/InitRunner.java

@@ -1,9 +1,13 @@
 package com.example.opc_da.config;
 
 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.enums.DataSourceTypeEnum;
 import com.example.opc_common.util.Blank;
 import com.example.opc_da.dao.DataSourceDao;
+import com.example.opc_da.dao.ItemGroupDao;
+import com.example.opc_da.dao.RawDataDao;
 import com.example.opc_da.task.OpcAsyncTask;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,9 +24,15 @@ import java.util.List;
 public class InitRunner {
 
     @Autowired
+    private ItemGroupDao itemGroupDao;
+
+    @Autowired
     private DataSourceDao dataSourceDao;
 
     @Autowired
+    private RawDataDao rawDataDao;
+
+    @Autowired
     private OpcAsyncTask opcAsyncTask;
 
     @PostConstruct
@@ -42,5 +52,21 @@ public class InitRunner {
                 }
             }
         }
+
+        //组装系统挂了没有组装的数据
+        List<Integer> itemGroupIdList = rawDataDao.getRawDataGroupIdList();
+        if (Blank.isNotEmpty(itemGroupIdList)) {
+            for (Integer itemGroupId : itemGroupIdList) {
+                List<String> belongTimeList = rawDataDao.getRawDataBelongTime(itemGroupId);
+                if (Blank.isNotEmpty(belongTimeList)) {
+                    for (int i = 0; i < belongTimeList.size(); i++) {
+                        List<Item> itemList = itemGroupDao.getItemListByGroupId(itemGroupId);
+                        ItemGroup itemGroup = itemGroupDao.getItemGroupById(itemGroupId);
+                        Integer dataSourceId = itemGroup.getDataSourceId();
+                        opcAsyncTask.packageRawDataList(itemList, dataSourceId, belongTimeList.get(i));
+                    }
+                }
+            }
+        }
     }
 }

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

@@ -36,4 +36,8 @@ public interface RawDataDao {
     Integer updateRawData(Integer remainder, RawData rawData);
 
     List<Long> getMeetIndexList(Integer itemGroupId, Integer dataSourceId, List<Item> itemList, String valueBelongTime, Integer notMeetChange);
+
+    List<Integer> getRawDataGroupIdList();
+
+    List<String> getRawDataBelongTime(Integer itemGroupId);
 }

+ 13 - 0
chaunyi_opc/opc_da/src/main/resources/mapper/RawDataDao.xml

@@ -161,4 +161,17 @@
         GROUP BY
         data_index;
     </select>
+
+    <select id="getRawDataGroupIdList" resultType="java.lang.Integer">
+        SELECT item_group_id
+        FROM t_raw_data
+        GROUP BY item_group_id;
+    </select>
+
+    <select id="getRawDataBelongTime" resultType="java.lang.String">
+        SELECT value_belong_time
+        FROM t_raw_data
+        WHERE item_group_id = #{itemGroupId}
+        GROUP BY value_belong_time;
+    </select>
 </mapper>