This commit is contained in:
caozehui
2026-06-01 09:26:14 +08:00
parent 694a99a96f
commit 061b65be1b
7 changed files with 177 additions and 33 deletions

View File

@@ -34,6 +34,7 @@ import com.njcn.gather.script.pojo.param.PqScriptIssueParam;
import com.njcn.gather.script.pojo.po.SourceIssue;
import com.njcn.gather.script.service.IPqScriptCheckDataService;
import com.njcn.gather.script.service.IPqScriptDtlsService;
import com.njcn.gather.source.pojo.po.PqSource;
import com.njcn.gather.source.service.IPqSourceService;
import com.njcn.gather.storage.pojo.param.StorageParam;
import com.njcn.gather.storage.pojo.po.SimAndDigHarmonicResult;
@@ -1802,6 +1803,94 @@ public class SocketDevResponseService {
if (param.getTestItemList().get(1)) {
initXiManager(param);
}
FormalTestManager.overload = getOverloadResult(param);
}
/**
* 获取过载测试结果
*
* @return 如果检测到电压过载overload=1如果检测到电流过载overload=2如果检测到电压&&电流过载overload=3反之overload=4
*/
private int getOverloadResult(PreDetectionParam param) {
PqSource pqSource = pqSourceService.getPqSourceById(param.getSourceId());
BigDecimal maxVoltage = pqSource.getMaxVoltage();
BigDecimal maxCurrent = pqSource.getMaxCurrent();
PqScriptIssueParam issueParam = new PqScriptIssueParam();
issueParam.setSourceId(pqSource.getName());
issueParam.setPlanId(param.getPlanId());
issueParam.setDevIds(param.getDevIds());
issueParam.setScriptId(param.getScriptId());
issueParam.setIsPhaseSequence(CommonEnum.FORMAL_TEST.getValue());
List<SourceIssue> sourceIssues = pqScriptDtlsService.listSourceIssue(issueParam);
for (int i = 0; i < sourceIssues.size(); i++) {
SourceIssue sourceIssue = sourceIssues.get(i);
List<SourceIssue.ChannelListDTO> channelList = sourceIssue.getChannelList();
for (int j = 0; j < channelList.size(); j++) {
SourceIssue.ChannelListDTO channelListDTO = channelList.get(j);
Double fAmp = channelListDTO.getFAmp();
String channelType = channelListDTO.getChannelType();
if (ObjectUtil.isNotNull(fAmp)) {
if (channelType.contains("U")) {
// 电压判断
if (maxVoltage.compareTo(BigDecimal.valueOf(fAmp)) < 0) {
return 1;
}
} else {
// 电流判断
if (maxCurrent.compareTo(BigDecimal.valueOf(fAmp)) < 0) {
return 2;
}
}
}
// 暂态判断
if (channelListDTO.getDipFlag()) {
SourceIssue.ChannelListDTO.DipDataDTO dipData = channelListDTO.getDipData();
if (ObjectUtil.isNotNull(dipData)) {
Double fTransValue = dipData.getFTransValue();
if (ObjectUtil.isNotNull(fTransValue) && ObjectUtil.isNotNull(fAmp)) {
if (maxVoltage.compareTo(BigDecimal.valueOf(fTransValue).max(BigDecimal.valueOf(fAmp))) < 0) {
return 1;
}
}
}
}
// 谐波判断
if (channelListDTO.getHarmFlag()) {
List<SourceIssue.ChannelListDTO.HarmModel> harmList = channelListDTO.getHarmList();
double sum = harmList.stream().map(harmModel -> harmModel.getFAmp() * harmModel.getFAmp()).mapToDouble(x -> x).sum();
if (channelType.contains("U")) {
if (maxVoltage.compareTo(BigDecimal.valueOf(Math.sqrt(1 + sum) * fAmp)) < 0) {
return 1;
}
} else {
if (maxCurrent.compareTo(BigDecimal.valueOf(Math.sqrt(1 + sum) * fAmp)) < 0) {
return 2;
}
}
}
// 间谐波判断
if (channelListDTO.getInHarmFlag()) {
List<SourceIssue.ChannelListDTO.InharmModel> inharmList = channelListDTO.getInharmList();
double sum = inharmList.stream().map(harmModel -> harmModel.getFAmp() * harmModel.getFAmp()).mapToDouble(x -> x).sum();
if (channelType.contains("U")) {
if (maxVoltage.compareTo(BigDecimal.valueOf(Math.sqrt(1 + sum) * fAmp)) < 0) {
return 1;
}
} else {
if (maxCurrent.compareTo(BigDecimal.valueOf(Math.sqrt(1 + sum) * fAmp)) < 0) {
return 2;
}
}
}
}
}
return 4;
}
//初始化系数校验参数

View File

@@ -384,6 +384,12 @@ public class SocketSourceResponseService {
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + type);
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(socketMsg));
} else {
// 推送过载测试结果
SocketDataMsg overloadSocketDataMsg = new SocketDataMsg();
overloadSocketDataMsg.setRequestId("overloadTest");
overloadSocketDataMsg.setCode(FormalTestManager.overload);
sendWebSocketMessage(param.getUserPageId(), overloadSocketDataMsg);
//todo 前端推送收到的消息暂未处理好
sendWebSocketMessage(param.getUserPageId(), socketDataMsg);
//开始设备通讯检测(发送设备初始化)

View File

@@ -208,4 +208,9 @@ public class FormalTestManager {
* 是否进行相序校验
*/
public static boolean isXu;
/**
* 过载信息如果检测到电压过载overload=1如果检测到电流过载overload=2如果检测到电压&&电流过载overload=3反之overload=4
*/
public static int overload;
}

View File

@@ -7,8 +7,10 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal;
/**
* @author caozehui
@@ -51,6 +53,14 @@ public class PqSourceParam {
@ApiModelProperty("源参数")
private String parameter;
@ApiModelProperty("最大电压")
@DecimalMin("0")
private BigDecimal maxVoltage;
@ApiModelProperty("最大电流")
@DecimalMin("0")
private BigDecimal maxCurrent;
@Data
public static class QueryParam extends BaseParam {

View File

@@ -1,11 +1,13 @@
package com.njcn.gather.source.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.mybatisplus.bo.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author caozehui
@@ -46,6 +48,12 @@ public class PqSource extends BaseEntity implements Serializable {
*/
private String parameter;
@TableField("Max_Voltage")
private BigDecimal maxVoltage;
@TableField("Max_Current")
private BigDecimal maxCurrent;
/**
* 状态0-删除 1-正常
*/