Merge branch 'devhf' into dev

dev
huangfeng 1 month ago
commit 798c2477f5

@ -0,0 +1,8 @@
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`;
ALTER TABLE `i2sync_field`
ADD COLUMN `conversion` VARCHAR(45) NULL COMMENT '单位换算' AFTER `attach`;

@ -36,4 +36,7 @@ public class I2syncField {
@Column(name = "attach")
private String attach;
@Column(name = "conversion")
private String conversion;
}

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

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

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

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

@ -6,6 +6,7 @@ import com.xydl.cac.model.i2sync.Attr;
import com.xydl.cac.model.i2sync.Datanode;
import com.xydl.cac.model.i2sync.Monitordata;
import com.xydl.cac.model.i2sync.Request;
import com.xydl.cac.util.DataUtil;
import com.xydl.cac.util.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@ -65,6 +66,9 @@ public class I2DataTransformer {
List<Attr> attrs = new ArrayList<>();
for (I2syncField field : fieldList) {
Object value = dataMap.get(field.getFieldName());
if (StringUtils.isNotBlank(field.getConversion())) {
value = DataUtil.convert(value, field.getConversion());
}
if (value != null) {
Attr attr = new Attr();
attr.setName(field.getDestFieldName());

@ -66,4 +66,28 @@ public class DataUtil {
list.addAll(newlist);
}
}
public static Object convert(Object obj, String conversion) {
if (obj instanceof Number) {
float f = (float) obj;
if (conversion.startsWith("*")) {
float c = Float.parseFloat(conversion.replaceAll("\\*", "").
replaceAll(" ", ""));
return f * c;
} else if (conversion.startsWith("/")) {
float c = Float.parseFloat(conversion.replaceAll("\\/", "").
replaceAll(" ", ""));
return f / c;
} else if (conversion.startsWith("+")) {
float c = Float.parseFloat(conversion.replaceAll("\\+", "").
replaceAll(" ", ""));
return f + c;
} else if (conversion.startsWith("-")) {
float c = Float.parseFloat(conversion.replaceAll("\\-", "").
replaceAll(" ", ""));
return f - c;
}
}
return obj;
}
}

@ -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
intervaltime: 60
warntime: 5
jkpg:
ip: 192.168.1.190
port: 22
user: sftpuser
pass: 123456
path: filestore/comtrad

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

Loading…
Cancel
Save