Browse Source

csv文件改为使用已缓存的文件

master
wangxun 6 months ago
parent
commit
2bfb3c98e3
1 changed files with 71 additions and 43 deletions
  1. +71
    -43
      src/main/java/com/inspect/simulator/service/impl/HikVisionServiceImpl.java

+ 71
- 43
src/main/java/com/inspect/simulator/service/impl/HikVisionServiceImpl.java View File

@ -1418,54 +1418,82 @@ public class HikVisionServiceImpl implements HikVisionService {
@Override
public InputStream downloadCsv(String filePath) {
InputStream inputStream;
InputStream inputStreamPath = downloadFtp(filePath);
if (inputStreamPath == null) {
return null;
log.info("解析csv图片地址"+filePath);
String updatePath = truncateFileName(filePath);
InputStream inputStream = downloadFtp(updatePath);
if(inputStream==null){
log.info("图片地址"+updatePath+"无返回");
}
if (!produceEnvironment) {
//调用华软接口
String protocol = hrFtpUrl.substring(0, 6); // "ftp://"
String withoutProtocol = hrFtpUrl.substring(6); // "zthr02:zthr02@123.184.14.138:50021/"
String[] userAndHost = withoutProtocol.split("@");
if (userAndHost.length != 2) {
throw new IllegalArgumentException("URL 格式错误,缺少 @ 分隔符");
}
String[] userPass = userAndHost[0].split(":");
String username = userPass[0];
String password = userPass[1];
String hostPort = userAndHost[1].replace("/", ""); // 移除末尾的 "/"
String[] hostAndPort = hostPort.split(":");
String host = hostAndPort[0];
int port = Integer.parseInt(hostAndPort[1]);
String imageName = Paths.get(filePath).getFileName().toString();
//将图片上传到华软
boolean isLoginHr = pic2Ftp(imageName, inputStreamPath, host, port, username, password);
String ftpUrlName = "[\"" + hrFtpUrl + imageName + "\"]";
if (isLoginHr) {
//可以登陆华软ftp
inputStream = UploadFtpImageStream(hrUavUrl, ftpUrlName);
if (inputStream != null) {
return inputStream;
}
} else {
log.error("调用华软接口失败,使用本地1.csv文件!");
inputStream = getClass().getClassLoader().getResourceAsStream("1.csv");
return inputStream;
}
} else {
//共用同一ftp
String imageName = Paths.get(filePath).getFileName().toString();
String ftpUrlName = "[\"ftp://" + ftpUrlAccount + ":" + ftpUrlPwd + "@" + ftpUrlAddress + ":" + ftpUrlPort + "/" + imageName + "\"]";
inputStream = UploadFtpImageStream(hrUavUrl, ftpUrlName);
if (inputStream != null) {
return inputStream;
}
}
// if (!produceEnvironment) {
// //调用华软接口
// String protocol = hrFtpUrl.substring(0, 6); // "ftp://"
// String withoutProtocol = hrFtpUrl.substring(6); // "zthr02:zthr02@123.184.14.138:50021/"
// String[] userAndHost = withoutProtocol.split("@");
// if (userAndHost.length != 2) {
// throw new IllegalArgumentException("URL 格式错误,缺少 @ 分隔符");
// }
// String[] userPass = userAndHost[0].split(":");
// String username = userPass[0];
// String password = userPass[1];
// String hostPort = userAndHost[1].replace("/", ""); // 移除末尾的 "/"
// String[] hostAndPort = hostPort.split(":");
// String host = hostAndPort[0];
// int port = Integer.parseInt(hostAndPort[1]);
// String imageName = Paths.get(filePath).getFileName().toString();
// //将图片上传到华软
// boolean isLoginHr = pic2Ftp(imageName, inputStreamPath, host, port, username, password);
// String ftpUrlName = "[\"" + hrFtpUrl + imageName + "\"]";
// if (isLoginHr) {
// //可以登陆华软ftp
// inputStream = UploadFtpImageStream(hrUavUrl, ftpUrlName);
// if (inputStream != null) {
// return inputStream;
// }
// } else {
// log.error("调用华软接口失败,使用本地1.csv文件!");
// inputStream = getClass().getClassLoader().getResourceAsStream("1.csv");
// return inputStream;
// }
// } else {
// //共用同一ftp
// String imageName = Paths.get(filePath).getFileName().toString();
// String ftpUrlName = "[\"ftp://" + ftpUrlAccount + ":" + ftpUrlPwd + "@" + ftpUrlAddress + ":" + ftpUrlPort + "/" + imageName + "\"]";
// inputStream = UploadFtpImageStream(hrUavUrl, ftpUrlName);
// if (inputStream != null) {
//
// return inputStream;
// }
// }
return inputStream;
}
public static String truncateFileName(String originalPath) {
// 获取文件名部分最后一个 '/' 之后的内容
int lastSlashIndex = originalPath.lastIndexOf('/');
if (lastSlashIndex == -1) {
return originalPath; // 如果没有路径分隔符直接返回原路径
}
String fileName = originalPath.substring(lastSlashIndex + 1);
String fileExtension = ""; // 存储文件扩展名 .jpg
// 分离文件名和扩展名如果有
int lastDotIndex = fileName.lastIndexOf('.');
if (lastDotIndex != -1) {
fileExtension = fileName.substring(lastDotIndex);
fileName = fileName.substring(0, lastDotIndex);
}
// 去掉最后一个 '_' 及其后面的部分
int lastUnderscoreIndex = fileName.lastIndexOf('_');
if (lastUnderscoreIndex != -1) {
fileName = fileName.substring(0, lastUnderscoreIndex);
}
// 拼接修改后的文件名和扩展名
String newFileName = fileName + fileExtension;
// 拼接回原路径
return originalPath.substring(0, lastSlashIndex + 1) + newFileName;
}
//解析获取csv文件温度--返回流文件
private InputStream getFtpFileAsStream(String csvUrl) throws IOException {


Loading…
Cancel
Save