Kaynağa Gözat

所有的forecast_time改为time,并且调整了解析云端文件的功能,文件名称必须包含场站编码

tl 6 ay önce
ebeveyn
işleme
7af4266a00

+ 28 - 14
cpp-admin/src/main/java/com/cpp/web/job/ScheduledJob.java

@@ -8,7 +8,7 @@ import com.cpp.web.domain.enums.DataSourcesEnum;
 import com.cpp.web.domain.station.*;
 import com.cpp.web.service.accuracy.CalcAccuracy;
 import com.cpp.web.service.alarm.AlarmLog;
-import com.cpp.web.service.cloud.CloudFileParsing;
+import com.cpp.web.service.datafactory.CloudFileParsing;
 import com.cpp.web.service.datafactory.DataStore;
 import com.cpp.web.service.datafactory.ParsingLogService;
 import com.cpp.web.service.datafactory.SftpFileParsing;
@@ -113,20 +113,34 @@ public class ScheduledJob implements ApplicationRunner {
     }
 
 
-//    /**
-//     * 告警消纳定时任务
-//     */
+    /**
+     * 告警消纳定时任务
+     */
 //    @Scheduled(fixedRate = 60000L)
-//    public void aaa() {
-//        for (ElectricField electricField : SpringUtils.getBean(ElectricFieldService.class).list()) {
-//            System.out.println(electricField.getStationCode());
-//            System.out.println(DataStore.getInstance().getData(electricField.getStationCode(), ForecastPowerShortTermStation.class).getTime());
-//            System.out.println(DataStore.getInstance().getData(electricField.getStationCode(), ForecastPowerUltraShortTermStation.class).getTime());
-//            System.out.println(DataStore.getInstance().getData(electricField.getStationCode(), PowerStationStatusData.class).getTime());
-//            System.out.println(DataStore.getInstance().getData(electricField.getStationCode(), WindTowerStatusData.class).getTime());
-//            System.out.println(DataStore.getInstance().getData(electricField.getStationCode(), WeatherStationStatusData.class).getTime());
-//        }
-//    }
+    public void aaa() {
+        for (ElectricField electricField : SpringUtils.getBean(ElectricFieldService.class).list()) {
+            System.out.println(electricField.getStationCode());
+
+
+            ForecastPowerShortTermRegulation forecastPowerShortTermRegulation = DataStore.getInstance().getData(electricField.getStationCode(), ForecastPowerShortTermRegulation.class);
+            System.out.println(forecastPowerShortTermRegulation.getFpValue() + "," + forecastPowerShortTermRegulation.getTime());
+
+
+            ForecastPowerUltraShortTermRegulation forecastPowerUltraShortTermRegulation = DataStore.getInstance().getData(electricField.getStationCode(), ForecastPowerUltraShortTermRegulation.class);
+            System.out.println(forecastPowerUltraShortTermRegulation.getFpValue() + "," + forecastPowerUltraShortTermRegulation.getTime());
+
+            PowerStationStatusData powerStationStatusData = DataStore.getInstance().getData(electricField.getStationCode(), PowerStationStatusData.class);
+            System.out.println(powerStationStatusData.toString() + "," + powerStationStatusData.getTime());
+            if (electricField.getElectricFieldTypeEnum().equals("E2")) {
+                WindTowerStatusData data = DataStore.getInstance().getData(electricField.getStationCode(), WindTowerStatusData.class);
+                System.out.println(data + "," + data.getTime());
+            } else {
+                WeatherStationStatusData data = DataStore.getInstance().getData(electricField.getStationCode(), WeatherStationStatusData.class);
+                System.out.println(data + "," + data.getTime());
+
+            }
+        }
+    }
 
 
     @Override

+ 18 - 4
cpp-admin/src/main/java/com/cpp/web/service/datafactory/SftpFileParsing.java

@@ -109,7 +109,11 @@ public class SftpFileParsing {
      * @param channelElectricFields 某通道绑定的场站
      * @param sftp                  sftp
      */
-    private void parsingFile(List<ParsingType> parsingTypes, List<ElectricField> channelElectricFields, Sftp sftp) {
+    private void parsingFile(
+            List<ParsingType> parsingTypes,
+            List<ElectricField> channelElectricFields,
+            Sftp sftp
+    ) {
         List<ParsingLog> parsingLogs = new ArrayList<>();
         for (ParsingType parsingType : parsingTypes) {
 //            executor.execute(new Runnable() {
@@ -201,7 +205,9 @@ public class SftpFileParsing {
      * @param sftpChannel sftp通道信息
      * @return sftp控制
      */
-    public SftpConfig createSftp(SftpChannel sftpChannel) {
+    public SftpConfig createSftp(
+            SftpChannel sftpChannel
+    ) {
         // SFTP方式上报
         SftpConfig sftpConfig = new SftpConfig();
 
@@ -236,6 +242,7 @@ public class SftpFileParsing {
      * 压缩前一日解析文件并上传至sftp服务器,本地不保留
      */
     public void uploadZipFile() {
+        log.info("-----------------开始压缩前一日解析文件并上传至sftp服务器解析任务----------------------");
         List<SftpChannel> sftpChannels = sftpChannelService.list();
 
         List<ElectricField> electricFields = electricFieldService.list();
@@ -251,7 +258,7 @@ public class SftpFileParsing {
                     for (ElectricField channelElectricField : channelElectricFields) {
                         File failFileDir = new File(PARSING_FILE_FAIL_DIR.getPath() + File.separator + dirYesToday + File.separator + channelElectricField.getStationCode());
                         if (failFileDir.exists()) {
-                            String zipPath = ZipUtil.zip(failFileDir.getAbsolutePath(), PARSING_FILE_FAIL_DIR.getPath() + File.separator + dirYesToday + "_SUCCESS.zip");
+                            String zipPath = ZipUtil.zip(failFileDir.getAbsolutePath(), PARSING_FILE_FAIL_DIR.getPath() + File.separator + dirYesToday + "_FAIL.zip");
                             if (zipPath != null && new File(zipPath).exists()) {
                                 upload(sftpConfig.getSftp(), channelElectricField.getSftpBackupUrl(), zipPath);
                             }
@@ -269,6 +276,7 @@ public class SftpFileParsing {
                 }
             }
         }
+        log.info("-----------------结束压缩前一日解析文件并上传至sftp服务器解析任务----------------------");
     }
 
     /**
@@ -278,12 +286,18 @@ public class SftpFileParsing {
      * @param destPathName 目标路径
      * @param srcName      源路径
      */
-    private void upload(Sftp sftp, String destPathName, String srcName) {
+    private void upload(
+            Sftp sftp,
+            String destPathName,
+            String srcName
+    ) {
         FileInputStream fis = null;
         try {
             fis = new FileInputStream(srcName);
             File file = new File(srcName);
             sftp.getClient().put(fis, destPathName + "/" + file.getName());
+            //有没删掉文件的情况,怀疑是文件没有传输完成导致的文件被占用,静止一秒后再删除试试
+            Thread.sleep(1000L);
             file.delete();
         } catch (Exception e) {
             log.error("上传备份文件异常", e);