|
@@ -5,7 +5,7 @@ import cn.hutool.core.lang.Filter;
|
|
|
import cn.hutool.extra.ftp.Ftp;
|
|
|
import cn.hutool.extra.ftp.FtpConfig;
|
|
|
import cn.hutool.extra.ftp.FtpMode;
|
|
|
-import com.jiayue.ipp.common.data.entity.an.FTPParsingChannel;
|
|
|
+import com.jiayue.ipp.common.data.entity.an.ParsingChannel;
|
|
|
import com.jiayue.ipp.common.data.entity.an.ParsingLog;
|
|
|
import com.jiayue.ipp.common.data.entity.an.ParsingUrl;
|
|
|
import com.jiayue.ipp.idp.dto.ParsingConstant;
|
|
@@ -37,9 +37,9 @@ import java.util.stream.Collectors;
|
|
|
@Transactional
|
|
|
public class FTPService {
|
|
|
|
|
|
- private final FTPParsingChannelService ftpParsingChannelService;
|
|
|
+ private final ParsingChannelService parsingChannelService;
|
|
|
|
|
|
- private final FTPParsingUrlService ftpParsingUrlService;
|
|
|
+ private final ParsingUrlService parsingUrlService;
|
|
|
|
|
|
// private final MinioUtilService minioUtilService;
|
|
|
|
|
@@ -72,18 +72,18 @@ public class FTPService {
|
|
|
*/
|
|
|
public void ftp() {
|
|
|
|
|
|
- List<FTPParsingChannel> ftpParsingChannels = ftpParsingChannelService.list();
|
|
|
- List<ParsingUrl> ftpParsingUrls = ftpParsingUrlService.list();
|
|
|
+ List<ParsingChannel> ParsingChannels = parsingChannelService.list();
|
|
|
+ List<ParsingUrl> ftpParsingUrls = parsingUrlService.list();
|
|
|
|
|
|
//循环ftp解析通道
|
|
|
- for (FTPParsingChannel ftpParsingChannel : ftpParsingChannels) {
|
|
|
+ for (ParsingChannel ParsingChannel : ParsingChannels) {
|
|
|
|
|
|
//创建ftp配置
|
|
|
FtpConfig ftpConfig = new FtpConfig();
|
|
|
- ftpConfig.setHost(ftpParsingChannel.getRemoteIp());
|
|
|
- ftpConfig.setPort(Integer.parseInt(ftpParsingChannel.getRemotePort()));
|
|
|
- ftpConfig.setPassword(ftpParsingChannel.getPassword());
|
|
|
- ftpConfig.setUser(ftpParsingChannel.getUsername());
|
|
|
+ ftpConfig.setHost(ParsingChannel.getRemoteIp());
|
|
|
+ ftpConfig.setPort(Integer.parseInt(ParsingChannel.getRemotePort()));
|
|
|
+ ftpConfig.setPassword(ParsingChannel.getPassword());
|
|
|
+ ftpConfig.setUser(ParsingChannel.getUsername());
|
|
|
//字符集使用UTF-8
|
|
|
ftpConfig.setCharset(Charset.forName("UTF-8"));
|
|
|
ftpConfig.setConnectionTimeout(5 * 1000L);
|
|
@@ -94,21 +94,13 @@ public class FTPService {
|
|
|
//判断是否连接成功,成功后业务继续
|
|
|
if (ftp != null) {
|
|
|
//过滤出当前解析通道下在使用的《 解析路径 》
|
|
|
- List<ParsingUrl> ftpParsingUrlList = ftpParsingUrls.stream().filter(s -> s.getCId().equals(ftpParsingChannel.getId()) && s.getUrlStatus().equals("1")).collect(Collectors.toList());
|
|
|
+ List<ParsingUrl> ftpParsingUrlList = ftpParsingUrls.stream().filter(s -> s.getCId().equals(ParsingChannel.getId()) && s.getUrlStatus().equals("1")).collect(Collectors.toList());
|
|
|
|
|
|
try {
|
|
|
//遍历解析路径,对文件进行解析
|
|
|
for (ParsingUrl parsingUrl : ftpParsingUrlList) {
|
|
|
|
|
|
String url = parsingUrl.getUrl();
|
|
|
-
|
|
|
- String path = FileUtil.getParsingPath() + File.separator + parsingUrl.getForecastManufactor();
|
|
|
-
|
|
|
- File dirFile = new File(path);
|
|
|
- if (!dirFile.exists()) {
|
|
|
- dirFile.mkdirs();
|
|
|
- }
|
|
|
-
|
|
|
// String bakPath = FileUtil.getParsingPath() + File.separator + "bak" + File.separator + simpleDateFormat.format(new Date()) + File.separator + ftpParsingUrl.getForecastManufactor() + File.separator;
|
|
|
// File bakPathFile = new File(bakPath);
|
|
|
// if (!bakPathFile.exists()) {
|
|
@@ -116,15 +108,16 @@ public class FTPService {
|
|
|
// }
|
|
|
|
|
|
if (ftp.existFile(url)) {
|
|
|
- List<FTPFile> ftpFiles = ftp.lsFiles(url, new Filter<FTPFile>() {
|
|
|
- @Override
|
|
|
- public boolean accept(FTPFile ftpFile) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- });
|
|
|
+ ftp.cd(FileUtil.getParsingPath());
|
|
|
+ FTPFile[] fileNames = ftp.lsFiles(FileUtil.getParsingPath());
|
|
|
+
|
|
|
+ // 打印文件名列表
|
|
|
+ for (FTPFile ftpFile : fileNames) {
|
|
|
+ System.out.println(ftpFile.getName());
|
|
|
+ }
|
|
|
|
|
|
//遍历文件
|
|
|
- for (FTPFile fTPFile : ftpFiles) {
|
|
|
+ for (FTPFile fTPFile : fileNames) {
|
|
|
if (!fTPFile.isDirectory()) {
|
|
|
String fileName = fTPFile.getName();
|
|
|
ParsingLog parsingLog = new ParsingLog();
|
|
@@ -132,8 +125,16 @@ public class FTPService {
|
|
|
parsingLog.setStationCode(parsingUrl.getStationCode());
|
|
|
parsingLog.setParsingTime(new Date());
|
|
|
|
|
|
+ String path = FileUtil.getParsingPath() + File.separator + "bak";
|
|
|
+
|
|
|
+ File dirFile = new File(path);
|
|
|
+ if (!dirFile.exists()) {
|
|
|
+ dirFile.mkdirs();
|
|
|
+ }
|
|
|
+
|
|
|
//下载文件到临时目录
|
|
|
ftp.download(url, fileName, dirFile);
|
|
|
+ ftp.delFile(fileName);
|
|
|
File file = FileUtils.getFile(dirFile, fileName);
|
|
|
|
|
|
//定义解析的类型,默认为错误(未知),成功后为文件类型,也会作为存储目录名
|
|
@@ -178,9 +179,9 @@ public class FTPService {
|
|
|
// parsingLog.setParsingDescribe("文件解析成功");
|
|
|
// } else {
|
|
|
// file.delete();
|
|
|
-// log.error(ftpParsingChannel.getChannelName() + "ftp文件删除失败,本地文件删除,等待下次下载");
|
|
|
+// log.error(ParsingChannel.getChannelName() + "ftp文件删除失败,本地文件删除,等待下次下载");
|
|
|
// parsingLog.setParsingFileStatus("0");
|
|
|
-// parsingLog.setParsingDescribe(ftpParsingChannel.getChannelName() + "ftp文件删除失败,本地文件删除,等待下次下载");
|
|
|
+// parsingLog.setParsingDescribe(ParsingChannel.getChannelName() + "ftp文件删除失败,本地文件删除,等待下次下载");
|
|
|
// }
|
|
|
// } else {
|
|
|
// file.delete();
|
|
@@ -198,15 +199,15 @@ public class FTPService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- log.info("{}ftp下载文件并解析执行完成", ftpParsingChannel.getChannelName());
|
|
|
+ log.info("{}ftp下载文件并解析执行完成", ParsingChannel.getChannelName());
|
|
|
} catch (Exception e) {
|
|
|
- log.error("{}ftp下载文件并解析过程失败", ftpParsingChannel.getChannelName());
|
|
|
+ log.error("{}ftp下载文件并解析过程失败", ParsingChannel.getChannelName());
|
|
|
e.printStackTrace();
|
|
|
} finally {
|
|
|
try {
|
|
|
if (ftp != null) {
|
|
|
ftp.close();
|
|
|
- log.info("{}ftp连接关闭,对端ip:{}", ftpParsingChannel.getChannelName(), ftpParsingChannel.getRemoteIp());
|
|
|
+ log.info("{}ftp连接关闭,对端ip:{}", ParsingChannel.getChannelName(), ParsingChannel.getRemoteIp());
|
|
|
}
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|