Forráskód Böngészése

"scada数据接入"

yangjunfeng 1 hónapja
szülő
commit
b421280c68

+ 30 - 10
tofly-zhongming-gas/service/zmrqScada/src/main/java/com/tofly/zmrqScada/service/impl/IScadaDtuSyncImpl.java

@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.tofly.common.core.util.DateUtil;
 import com.tofly.zmrqScada.dto.ScadaDtuDataVo;
 import com.tofly.zmrqScada.dto.ScadaDtuListVo;
 import com.tofly.zmrqScada.entity.ScadaDtu;
@@ -245,12 +246,21 @@ public class IScadaDtuSyncImpl implements ScadaDtuSyncService {
                         i.setDtuId(dtuId);
                     });
                 });
-                List<ScadaDyuData> list = new ArrayList<>();
+                List<ScadaDyuData> originalList = new ArrayList<>();
                 // 存入历史表
-                data.forEach(info->{
-                    list.addAll(info.getFieldValueList());
-                });
-                scadaDyuDataService.saveBatch(list);
+                data.forEach(info-> originalList.addAll(info.getFieldValueList()));
+                List<ScadaDyuData> list = originalList.stream()
+                        .sorted(Comparator.comparing(ScadaDyuData::getCollectTime).reversed())
+                        .collect(Collectors.collectingAndThen(Collectors.toCollection(() ->
+                                new TreeSet<>(Comparator.comparing(o -> o.getDtuId() + "-" + o.getFieldName() + "-" + DateUtil.getDateFormat(o.getCollectTime(), "yyyyMMddHHmm")))), ArrayList::new));
+                for (ScadaDyuData scadaDyuData : list) {
+                    try {
+                        scadaDyuDataService.save(scadaDyuData);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        log.info("重复数据不作插入");
+                    }
+                }
                 // 存入实时表
                 // 1.判断当前实时表是否存在对应dtuId和参数名称
                 // 2.存在则更新value值 不存在则新增
@@ -318,11 +328,21 @@ public class IScadaDtuSyncImpl implements ScadaDtuSyncService {
                         i.setDtuId(dtuId);
                     });
                 });
-                List<ScadaDyuData> list = new ArrayList<>();
-                data.forEach(info->{
-                    list.addAll(info.getFieldValueList());
-                });
-                scadaDyuDataService.saveBatch(list);
+                List<ScadaDyuData> originalList = new ArrayList<>();
+                // 存入历史表
+                data.forEach(info-> originalList.addAll(info.getFieldValueList()));
+                List<ScadaDyuData> list = originalList.stream()
+                        .sorted(Comparator.comparing(ScadaDyuData::getCollectTime).reversed())
+                        .collect(Collectors.collectingAndThen(Collectors.toCollection(() ->
+                                new TreeSet<>(Comparator.comparing(o -> o.getDtuId() + "-" + o.getFieldName() + "-" + DateUtil.getDateFormat(o.getCollectTime(), "yyyyMMddHHmm")))), ArrayList::new));
+                for (ScadaDyuData scadaDyuData : list) {
+                    try {
+                        scadaDyuDataService.save(scadaDyuData);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        log.info("重复数据不作插入");
+                    }
+                }
                 // 存入实时表
                 // 1.判断当前实时表是否存在对应dtuId和参数名称
                 // 2.存在则更新value值 不存在则新增

+ 3 - 3
tofly-zhongming-gas/service/zmrqScada/src/main/resources/bootstrap-pro.yml

@@ -32,11 +32,11 @@ spring:
 
   # 数据源
   datasource:
-    url: jdbc:oracle:thin:@192.168.1.205:1521/zmgis
+    url: jdbc:oracle:thin:@36.134.100.99:1521/orcl
     driver-class-name: oracle.jdbc.OracleDriver
     #    driver-class-name: oracle.jdbc.driver.OracleDriver
-    username: zmrq
-    password: zmrq
+    username: ZMRQ
+    password: ZMRQ
     type: com.alibaba.druid.pool.DruidDataSource
     druid:
       initial-size: 10