Browse Source

设置上传华软ftp时间,离线csv服务联通

master
wangxun 8 months ago
parent
commit
6b7e855ba5
2 changed files with 31 additions and 23 deletions
  1. +6
    -4
      src/main/java/com/inspect/simulator/service/impl/AlgorithmServiceImpl.java
  2. +25
    -19
      src/main/java/com/inspect/simulator/service/impl/HikVisionServiceImpl.java

+ 6
- 4
src/main/java/com/inspect/simulator/service/impl/AlgorithmServiceImpl.java View File

@ -183,7 +183,6 @@ public class AlgorithmServiceImpl implements AlgorithmService {
infraPictureInfo.setFilePath(imageUrlList[0]);
InfraredInfo infraredInfo = hikVisionService.calculatePicture(infraPictureInfo,channelContent);
final String feedBackHostIp = analyseRequest.getRequestHostIp();
final String feedBackPort = analyseRequest.getRequestHostPort();
final String feedbackUrl = "http://" + feedBackHostIp + ":" + feedBackPort + "/simu/bigModel/picAnalyseRetNotify";
@ -215,12 +214,15 @@ public class AlgorithmServiceImpl implements AlgorithmService {
analyseResItems.add(analyseResItem);
analyseResult.setResultList(analyseResItems);
log.info("返回值打印: 是否成功(0成功;1失败)"+analyseResPoint.getValue()+
",最高温度值"+analyseResPoint.getConf()+",返回图片路径:"+analyseResPoint.getResImageUrl());
try {
//String analyseResultOutJson = JSONObject.toJSONString(analyseResult);
// String analyseResultOutJson = JSONObject.toJSONString(analyseResult);
String analyseResultOutJson = new Gson().toJson(analyseResult);
System.out.println("打印返回"+analyseResultOutJson);
log.info(Color.MAGENTA + "[INFRARED] irPicAnalyse: feedbackUrl={}, analyseResultOutJson={}" + Color.END, feedbackUrl, analyseResultOutJson);
String result = HttpClientUtils.sendPostAgain(feedbackUrl, analyseResultOutJson);
log.info(Color.MAGENTA + "[INFRARED] irPicAnalyse: feedbackUrl={}, result: {}" + Color.END, feedbackUrl, result);
// String result = HttpClientUtils.sendPostAgain(feedbackUrl, analyseResultOutJson);
// log.info(Color.MAGENTA + "[INFRARED] irPicAnalyse: feedbackUrl={}, result: {}" + Color.END, feedbackUrl, result);
} catch (Exception e) {
log.error("[INFRARED] irPicAnalyse: feedbackUrl={}, EXCEPTION: {}", feedbackUrl, e.getMessage());
}


+ 25
- 19
src/main/java/com/inspect/simulator/service/impl/HikVisionServiceImpl.java View File

@ -19,7 +19,7 @@ import com.inspect.simulator.domain.algorithm.out.AnalyseResult;
import com.inspect.simulator.domain.basedata.BasedataEqpBookChannel;
import com.inspect.simulator.hikVision.utils.AjaxResult;
import com.inspect.simulator.hikVision.utils.StringUtils;
import com.inspect.simulator.hikVision.utils.jna.HikVisionUtils;
//import com.inspect.simulator.hikVision.utils.jna.HikVisionUtils;
import com.inspect.simulator.hikVision.utils.jna.HCNetSDK;
import com.inspect.simulator.mapper.BasedataEqpBookChannelMapper;
import com.inspect.simulator.service.HikVisionService;
@ -91,18 +91,12 @@ public class HikVisionServiceImpl implements HikVisionService {
@Value("${file.ftpUrlPort:test}")
private Integer ftpUrlPort;
@Value("${file.infraredPath:null}")
private String infraredPath;
@Resource
private SftpClient sftpClient;
@Resource
private BasedataEqpBookChannelMapper basedataEqpBookChannelMapper;
@Resource
private AnalysisRemoteService analysisRemoteService;
// @Override
// public AjaxResult login(NvrInfo nvrInfo) {
// return login_V40(nvrInfo);
@ -976,16 +970,24 @@ public class HikVisionServiceImpl implements HikVisionService {
//华软上传图片到ftp
public boolean pic2Ftp(String newPath, InputStream originalPath, String ftpUrlAddress, Integer ftpUrlPort, String ftpUrlAccount, String ftpUrlPwd) {
FTPClient ftps = null;
FTPClient ftps = new FTPClient();;
ftps.setConnectTimeout(2000); // 连接超时3秒
ftps.setDataTimeout(2000); // 数据传输超时3秒
ftps.setDefaultTimeout(2000); // 控制通道超时3秒
try {
ftps = new FTPClient();
// 尝试连接仅一次
ftps.connect(ftpUrlAddress, ftpUrlPort);
boolean loginRes = ftps.login(ftpUrlAccount, ftpUrlPwd);
System.out.println(loginRes);
// 登录同样受3秒超时限制
if (!loginRes) {
throw new IOException("登录失败: " + ftps.getReplyString());
}
ftps.setFileType(2);
ftps.enterLocalPassiveMode();
ftps.setControlEncoding("UTF-8");
ftps.setFileTransferMode(10);
// ftps.setFileTransferMode(10);
boolean success = ftps.storeFile(newPath, originalPath);
if (!success) {
System.err.println("上传失败!FTP 返回: " + ftps.getReplyString());
@ -995,11 +997,14 @@ public class HikVisionServiceImpl implements HikVisionService {
} finally {
// 5. 关闭资源
try {
if (originalPath != null) originalPath.close();
if (ftps != null && ftps.isConnected()) {
ftps.logout();
ftps.disconnect();
if (ftps.isConnected()) {
ftps.disconnect(); // 直接断开不执行logout节省时间
}
// if (originalPath != null) originalPath.close();
// if (ftps != null && ftps.isConnected()) {
// ftps.logout();
// ftps.disconnect();
// }
} catch (IOException e) {
// e.printStackTrace();
return false;
@ -1124,7 +1129,8 @@ public class HikVisionServiceImpl implements HikVisionService {
List<AnalyseResItem> analyseResItems = new ArrayList<>();
analyseResItems.add(analyseResItem);
analyseResult.setResultList(analyseResItems);
System.out.println("返回值打印: 是否成功(0成功;1失败)"+analyseResPoint.getValue()+
",最高温度值"+analyseResPoint.getConf()+",返回图片路径:"+analyseResPoint.getResImageUrl());
try {
String analyseResultOutJson = JSONObject.toJSONString(analyseResult);
System.out.println("打印json返回:" + analyseResultOutJson);
@ -1139,12 +1145,10 @@ public class HikVisionServiceImpl implements HikVisionService {
public InfraredInfo calculatePicture(InfraPictureInfo infraPictureInfo, String picData) {
log.info("进入红外图片接口!" );
InfraredInfo infraredInfo = new InfraredInfo();
String imagePath = infraPictureInfo.getFilePath();
InputStream inputStream = downloadFtp(imagePath);
// Long channelId = infraPictureInfo.getChannelId();
// BasedataEqpBookChannel basedataEqpBookChannel = basedataEqpBookChannelMapper.selectBasedataEqpBookChannelByChannelId(channelId);
int firstX = 1;
int firstY = 1;
int secondX = 639;
@ -1215,17 +1219,19 @@ public class HikVisionServiceImpl implements HikVisionService {
infraredInfo.setTemperatureMatrix(imageTem);
} else {
//不能调用华软接口使用本地csv
System.out.println("温度解析错误,接口无法调用!");
try {
imageTem = exceptionHandling();
infraredInfo.setTemperatureMatrix(imageTem);
} catch (IOException e) {
e.printStackTrace();
log.error("温度解析错误,接口无法调用!" + e);
}
}
String s = ImageOverlays(infraPictureInfo, infraredInfo);
infraredInfo.setOutPath(s);
} else {
System.out.println("温度解析错误,ftp无法登陆!");
//华软ftp不能登录使用本地csv
try {
imageTem = exceptionHandling();


Loading…
Cancel
Save