|
@@ -1,12 +1,8 @@
|
|
|
package com.cpp.web.service.datafactory;
|
|
|
|
|
|
import cn.hutool.core.util.CharsetUtil;
|
|
|
-import cn.hutool.extra.ftp.Ftp;
|
|
|
-import cn.hutool.extra.ftp.FtpConfig;
|
|
|
-import cn.hutool.extra.ftp.FtpMode;
|
|
|
import cn.hutool.extra.ssh.JschUtil;
|
|
|
import cn.hutool.extra.ssh.Sftp;
|
|
|
-import com.cpp.web.domain.AbnormalAlarm;
|
|
|
import com.cpp.web.domain.datafactory.SftpChannel;
|
|
|
import com.cpp.web.domain.datafactory.ParsingLog;
|
|
|
import com.cpp.web.domain.datafactory.ParsingType;
|
|
@@ -14,9 +10,8 @@ import com.cpp.web.domain.datafactory.dto.ParsingResultDto;
|
|
|
import com.cpp.web.domain.enums.AlarmEnum;
|
|
|
import com.cpp.web.domain.enums.DataSourcesEnum;
|
|
|
import com.cpp.web.domain.station.ElectricField;
|
|
|
-import com.cpp.web.service.AbnormalAlarmService;
|
|
|
import com.cpp.web.service.station.ElectricFieldService;
|
|
|
-import com.cpp.web.utils.MessageUtils;
|
|
|
+import com.cpp.web.utils.LogUtil;
|
|
|
import com.cpp.web.utils.ParsingFileUtil;
|
|
|
import com.jcraft.jsch.ChannelSftp;
|
|
|
import com.jcraft.jsch.JSch;
|
|
@@ -26,7 +21,6 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.io.FileUtils;
|
|
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
-import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.io.File;
|
|
@@ -56,12 +50,11 @@ public class SftpFileParsing {
|
|
|
|
|
|
private final ParsingLogService parsingLogService;
|
|
|
|
|
|
- private final AbnormalAlarmService abnormalAlarmService;
|
|
|
-
|
|
|
private final File PARSING_FILE_TEMP_DIR = ParsingFileUtil.checkGetPath(ParsingFileUtil.getSftpDownload() + File.separator + "temp");
|
|
|
private final File PARSING_FILE_SUCCESS_DIR = ParsingFileUtil.checkGetPath(ParsingFileUtil.getSftpDownload() + File.separator + "success");
|
|
|
private final File PARSING_FILE_FAIL_DIR = ParsingFileUtil.checkGetPath(ParsingFileUtil.getSftpDownload() + File.separator + "fail");
|
|
|
|
|
|
+// private AlarmLog alarmLog = AlarmLog.getInstance();
|
|
|
// private final ThreadPoolTaskExecutor executor;
|
|
|
|
|
|
/**
|
|
@@ -76,9 +69,7 @@ public class SftpFileParsing {
|
|
|
* @param
|
|
|
* @return
|
|
|
*/
|
|
|
-// @Scheduled(fixedRate = 300000L)
|
|
|
-// @Scheduled(fixedRate = 60000L)
|
|
|
- public void parsingFileJob() {
|
|
|
+ public void parsingFile() {
|
|
|
|
|
|
|
|
|
log.info("-----------------开始执行FTP文件解析任务----------------------");
|
|
@@ -116,7 +107,6 @@ public class SftpFileParsing {
|
|
|
*/
|
|
|
private void parsingFile(List<ParsingType> parsingTypes, List<ElectricField> channelElectricFields, Sftp sftp) {
|
|
|
List<ParsingLog> parsingLogs = new ArrayList<>();
|
|
|
- List<AbnormalAlarm> abnormalAlarms = new ArrayList<>();
|
|
|
for (ParsingType parsingType : parsingTypes) {
|
|
|
// executor.execute(new Runnable() {
|
|
|
// @Override
|
|
@@ -138,10 +128,12 @@ public class SftpFileParsing {
|
|
|
ParsingLog parsingLog = new ParsingLog();
|
|
|
Date now = new Date();
|
|
|
parsingLog.setParsingTime(now);
|
|
|
+ parsingLog.setFileName(fileName);
|
|
|
ParsingResultDto parsingResultDto = parsingInterface.parsing(file, electricField.getStationCode());
|
|
|
parsingLog.setParsingDescribe(parsingResultDto.getMessage());
|
|
|
parsingLog.setFileType(parsingType.getFileType());
|
|
|
parsingLog.setDataSources(DataSourcesEnum.E1);
|
|
|
+ parsingLog.setStationCode(electricField.getStationCode());
|
|
|
if (parsingResultDto.getStatus().equals("fail")) {
|
|
|
try {
|
|
|
File failFileDir = new File(PARSING_FILE_FAIL_DIR.getPath() + File.separator + DateFormatUtils.format(now, "yyyy-MM-dd"));
|
|
@@ -159,7 +151,8 @@ public class SftpFileParsing {
|
|
|
file.delete();//失败删除本地文件,等待下次下载
|
|
|
parsingLog.setParsingFileStatus("失败");
|
|
|
|
|
|
- abnormalAlarms.add(new AbnormalAlarm(DataSourcesEnum.E3, AlarmEnum.E4, MessageUtils.format("无法解析场站端文件:{}", fileName), electricField.getStationCode()));
|
|
|
+
|
|
|
+ LogUtil.info(DataSourcesEnum.E3, AlarmEnum.E4, LogUtil.format("无法解析场站端文件:{}", fileName), electricField.getStationCode());
|
|
|
|
|
|
} else {
|
|
|
sftp.delFile(ftpUrl + "/" + fileName);//成功删除ftp上的文件
|
|
@@ -182,7 +175,7 @@ public class SftpFileParsing {
|
|
|
}
|
|
|
parsingLogs.add(parsingLog);
|
|
|
} catch (Exception e) {
|
|
|
- abnormalAlarms.add(new AbnormalAlarm(DataSourcesEnum.E3, AlarmEnum.E4, MessageUtils.format("无法解析场站端文件:{}", fileName), electricField.getStationCode()));
|
|
|
+ LogUtil.info(DataSourcesEnum.E3, AlarmEnum.E4, LogUtil.format("无法解析场站端文件:{}", fileName), electricField.getStationCode());
|
|
|
log.error("下载并解析文件{}时异常", fileName, e);
|
|
|
}
|
|
|
|
|
@@ -195,9 +188,6 @@ public class SftpFileParsing {
|
|
|
}
|
|
|
|
|
|
parsingLogService.saveBatch(parsingLogs);
|
|
|
-
|
|
|
- abnormalAlarmService.saveBatch(abnormalAlarms);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
|