feat: 增加把采集的谱图文件上传给健康评估

haikang
huangfeng 2 months ago
parent c15d2af756
commit aa3a3c5c8a

@ -0,0 +1,5 @@
ALTER TABLE `ied_dl_config`
ADD COLUMN `upload` INT NULL COMMENT '0:不传; 1:要传;' AFTER `active`;
ALTER TABLE `ied_dl_record`
ADD COLUMN `upload` INT(11) NULL DEFAULT NULL COMMENT '0:未传; 1:已传;' AFTER `data`;

@ -58,6 +58,10 @@ public class IedDlConfig {
@Column(name = "active") @Column(name = "active")
private Integer active; private Integer active;
@ApiModelProperty("是否上传健康评估 0:不传 1:要传")
@Column(name = "upload")
private Integer upload;
@Transient @Transient
private NSensor sensor; private NSensor sensor;
@Transient @Transient

@ -61,6 +61,13 @@ public class IedDlRecord {
@Column(name = "data") @Column(name = "data")
private String data; private String data;
@ApiModelProperty("是否上传健康评估 0:未传 1:已传")
@Column(name = "upload")
private Integer upload;
@Transient
String localFullPath;
@Transient @Transient
IedDlConfig config; IedDlConfig config;
@Transient @Transient

@ -12,6 +12,7 @@ import com.xydl.cac.service.IedDlRecordService;
import com.xydl.cac.socket.WebSocketServer; import com.xydl.cac.socket.WebSocketServer;
import com.xydl.cac.spectrogram.SpectrogramHandler; import com.xydl.cac.spectrogram.SpectrogramHandler;
import com.xydl.cac.util.DateUtil; import com.xydl.cac.util.DateUtil;
import com.xydl.cac.util.JkpgFtp;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
@ -36,6 +37,7 @@ public class IEDCollectService {
WarningRepository _warningRepository; WarningRepository _warningRepository;
SpectrogramHandler _spectrogramHandler; SpectrogramHandler _spectrogramHandler;
boolean _warning; boolean _warning;
JkpgFtp _jkpgFtp;
String folder = "/record"; String folder = "/record";
HashMap<Integer, String> eqmidTimeMap = new HashMap<>(); HashMap<Integer, String> eqmidTimeMap = new HashMap<>();
@ -45,7 +47,8 @@ public class IEDCollectService {
IedDlRecordService dlRecordService, DataService dataService, IedDlRecordService dlRecordService, DataService dataService,
String xml, IcdIed ied, String xml, IcdIed ied,
WebSocketServer webSocketServer, BizConfig bizConfig, boolean warning, WebSocketServer webSocketServer, BizConfig bizConfig, boolean warning,
WarningRepository warningRepository, SpectrogramHandler spectrogramHandler) { WarningRepository warningRepository, SpectrogramHandler spectrogramHandler,
JkpgFtp jkpgFtp) {
_configRepository = configRepository; _configRepository = configRepository;
_attRepository = attRepository; _attRepository = attRepository;
_instRepository = instRepository; _instRepository = instRepository;
@ -59,6 +62,7 @@ public class IEDCollectService {
_warning = warning; _warning = warning;
_warningRepository = warningRepository; _warningRepository = warningRepository;
_spectrogramHandler = spectrogramHandler; _spectrogramHandler = spectrogramHandler;
_jkpgFtp = jkpgFtp;
iecClient = new IecClient(); iecClient = new IecClient();
} }
@ -236,10 +240,14 @@ public class IEDCollectService {
if (!exist) { if (!exist) {
String relativePath = localPath + "/" + filename; String relativePath = localPath + "/" + filename;
String localFullPath = _bizConfig.getDatapath() + relativePath; String localFullPath = _bizConfig.getDatapath() + relativePath;
record.setLocalFullPath(localFullPath);
iecClient.getFile(record.getRemotePath(), localFullPath, config.getTodel()); iecClient.getFile(record.getRemotePath(), localFullPath, config.getTodel());
record.setPath(_bizConfig.getDataNginxPath() + relativePath); record.setPath(_bizConfig.getDataNginxPath() + relativePath);
log.info("采集到" + record.getRemotePath()); log.info("采集到" + record.getRemotePath());
_spectrogramHandler.processFile(record); _spectrogramHandler.processFile(record);
if (config.getUpload() != null && config.getUpload().intValue() == Constants.TRUE) {
_jkpgFtp.upload(record);
}
_dlRecordService.add(record); _dlRecordService.add(record);
} }
} }

@ -8,6 +8,7 @@ import com.xydl.cac.service.DataService;
import com.xydl.cac.service.IedDlRecordService; import com.xydl.cac.service.IedDlRecordService;
import com.xydl.cac.socket.WebSocketServer; import com.xydl.cac.socket.WebSocketServer;
import com.xydl.cac.spectrogram.SpectrogramHandler; import com.xydl.cac.spectrogram.SpectrogramHandler;
import com.xydl.cac.util.JkpgFtp;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -39,6 +40,8 @@ public class AsyncTask {
WarningRepository warningRepository; WarningRepository warningRepository;
@Resource @Resource
SpectrogramHandler spectrogramHandler; SpectrogramHandler spectrogramHandler;
@Resource
JkpgFtp jkpgFtp;
@Async @Async
public void collectIed(String xml, IcdIed ied, List<Rptparamindex> rptList, List<IedDlConfig> dlList) { public void collectIed(String xml, IcdIed ied, List<Rptparamindex> rptList, List<IedDlConfig> dlList) {
@ -47,7 +50,8 @@ public class AsyncTask {
dlRecordService, dataService, dlRecordService, dataService,
xml, ied, xml, ied,
webSocketServer, bizConfig, warning, webSocketServer, bizConfig, warning,
warningRepository, spectrogramHandler); warningRepository, spectrogramHandler,
jkpgFtp);
iedService.collectAndSave(rptList, dlList); iedService.collectAndSave(rptList, dlList);
} }
} }

@ -0,0 +1,59 @@
package com.xydl.cac.util;
import com.jcraft.jsch.JSchException;
import com.xydl.cac.entity.IedDlRecord;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class JkpgFtp {
@Value("${cac.jkpg.ip:}")
private String ip;
@Value("${cac.jkpg.port:22}")
private Integer port;
@Value("${cac.jkpg.user:}")
private String user;
@Value("${cac.jkpg.pass:}")
private String pass;
@Value("${cac.jkpg.pass:}")
private String path;
SFTPTool sftpTool = new SFTPTool();
boolean connected = false;
public void connect() {
if (StringUtils.isBlank(ip)) {
log.error("健康评估的IP未配置");
return;
}
if (StringUtils.isBlank(user)) {
log.error("健康评估的user未配置");
return;
}
try {
sftpTool.connect(ip, port, user, pass);
sftpTool.cdmkdir(path);
connected = true;
} catch (Exception e) {
log.error("SFTP连接健康评估失败", e);
connected = false;
}
}
public void upload(IedDlRecord record) {
if (!connected) {
this.connect();
}
if (connected) {
try {
sftpTool.upload(record.getLocalFullPath(), record.getFilename());
log.info("SFTP上传健康评估成功, " + record.getFilename());
} catch (Exception e) {
log.error("SFTP上传健康评估失败, " + record.getFilename(), e);
}
}
}
}

@ -55,3 +55,9 @@ cac:
name: ttyCH341USB0 name: ttyCH341USB0
intervaltime: 60 intervaltime: 60
warntime: 5 warntime: 5
jkpg:
ip: 192.168.1.190
port: 22
user: sftpuser
pass: 123456
path: filestore/comtrad

@ -54,4 +54,10 @@ cac:
warnport: warnport:
name: ttyCH341USB0 name: ttyCH341USB0
intervaltime: 60 intervaltime: 60
warntime: 5 warntime: 5
jkpg:
ip: 192.168.1.190
port: 22
user: sftpuser
pass: 123456
path: filestore/comtrad

Loading…
Cancel
Save