This commit is contained in:
wr
2025-02-24 16:38:04 +08:00
parent 837ea9e369
commit 6fb57f8422
6 changed files with 106 additions and 37 deletions

View File

@@ -14,6 +14,12 @@ public class PqScriptCheckDataParam {
@ApiModelProperty("总检测脚本中的测试项序号")
private Integer index;
@ApiModelProperty("检测指标类型,与数据字典关联(例如电压有效值、谐波电压含有率等)")
private String valueType;
@ApiModelProperty("相别,字典表")
private String phase;
@ApiModelProperty("检测指标类型(true:code(I$real) false展示id 默认false)")
private Boolean isValueTypeName=false;

View File

@@ -300,13 +300,20 @@ public class PqScriptDtlsParam {
* 波动类型
*/
@JSONField(name = "waveFluType", ordinal = 1)
private Object waveFluType;
private String waveFluType;
/**
* 闪变调制波形类型
*/
@JSONField(name = "waveType", ordinal = 2)
private Object waveType;
private String waveType;
/**
* 闪变标准值
*/
@JSONField(name = "waveType", ordinal = 2)
private Double flickerValue;
/**
* 占空比

View File

@@ -281,13 +281,19 @@ public class SourceIssue {
* 波动类型
*/
@JSONField(name = "waveFluType", ordinal = 1)
private Object waveFluType;
private String waveFluType;
/**
* 闪变调制波形类型
*/
@JSONField(name = "waveType", ordinal = 2)
private Object waveType;
private String waveType;
/**
* 闪变标准值
*/
@JSONField(serialize = false)
private Double flickerValue;
/**
* 占空比

View File

@@ -34,4 +34,5 @@ public interface IPqScriptCheckDataService extends IService<PqScriptCheckData> {
*/
List<PqScriptCheckData> listCheckDataCode(PqScriptCheckDataParam param);
Double getCheckDataValue(PqScriptCheckDataParam param);
}

View File

@@ -19,9 +19,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@@ -106,5 +104,21 @@ public class PqScriptCheckDataServiceImpl extends ServiceImpl<PqScriptCheckDataM
return this.getBaseMapper().selectJoinList(PqScriptCheckData.class, queryWrapper);
}
@Override
public Double getCheckDataValue(PqScriptCheckDataParam param) {
LambdaQueryWrapper<PqScriptCheckData> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper
.eq(PqScriptCheckData::getScriptId, param.getScriptId())
.eq(ObjectUtil.isNotNull(param.getIndex()),PqScriptCheckData::getScriptIndex, param.getIndex())
.eq(PqScriptCheckData::getValueType, param.getValueType())
.eq(PqScriptCheckData::getEnable, DataStateEnum.ENABLE.getCode());
PqScriptCheckData data = this.getBaseMapper().selectOne(queryWrapper);
if(ObjectUtil.isNotNull(data)){
return data.getValue();
}
return null;
}
}

View File

@@ -204,7 +204,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
)
.sorted(Comparator.comparing(PqScriptDtls::getPhase))
.collect(Collectors.toList());
issueAdd(volList, dtlsVList, HARM_V, INHARM_V, freqDtls.getValue(), "U", channelListDTOS);
issueAdd(volList, dtlsVList, HARM_V, INHARM_V, freqDtls.getValue(), "U", channelListDTOS, checkDataParam);
//2.通道电流(ABC)
List<PqScriptDtls> curList = value.stream().filter(x -> CUR.equals(x.getValueType()))
@@ -216,7 +216,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
)
.sorted(Comparator.comparing(PqScriptDtls::getPhase))
.collect(Collectors.toList());
issueAdd(curList, dtlsIList, HARM_I, INHARM_I, freqDtls.getValue(), "I", channelListDTOS);
issueAdd(curList, dtlsIList, HARM_I, INHARM_I, freqDtls.getValue(), "I", channelListDTOS, checkDataParam);
issue.setChannelList(channelListDTOS);
sourceIssues.add(issue);
@@ -343,27 +343,38 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
}
//暂态
if (channelListDTO.getDipFlag()) {
if (channelListDTO.getChannelType().contains("U")) {
PqScriptDtlsParam.ChannelListDTO.DipDataDTO dipData = channelListDTO.getDipData();
if (ObjectUtil.isNotNull(dipData)) {
PqScriptDtls dip = setScriptDtls(sourceIssue, i);
dip.setValueType(DIP);
dip.setPhase(phase);
dip.setTransValue(dipData.getFTransValue());
dip.setRetainTime(dipData.getRetainTime());
info.add(dip);
}
}
}
//闪变
if (channelListDTO.getFlickerFlag()) {
if (channelListDTO.getChannelType().contains("U")) {
PqScriptDtlsParam.ChannelListDTO.FlickerDataDTO flickerData = channelListDTO.getFlickerData();
if (ObjectUtil.isNotNull(flickerData)) {
PqScriptDtls dip = setScriptDtls(sourceIssue, i);
dip.setValueType(FLICKER);
dip.setPhase(phase);
if (!"CPM".equals(flickerData.getWaveType())) {
dip.setChagFre(NumberUtil.round(flickerData.getFChagFre() * 120, -1).doubleValue());
} else {
dip.setChagFre(flickerData.getFChagFre());
}
dip.setChagValue(flickerData.getFChagValue());
info.add(dip);
}
}
}
}
}
if (CollUtil.isNotEmpty(info)) {
this.saveBatch(info);
}
@@ -381,7 +392,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
if (CollUtil.isNotEmpty(checkDataList)) {
List<String> ids = checkDataList.stream().map(PqScriptDtlsParam.CheckData::getValueType).collect(Collectors.toList());
List<DictTree> dictTreeById = dictTreeService.getDictTreeById(ids);
Map<String, DictTree> dicTreeMap = dictTreeById.stream().collect(Collectors.toMap(DictTree::getId,Function.identity()));
Map<String, DictTree> dicTreeMap = dictTreeById.stream().collect(Collectors.toMap(DictTree::getId, Function.identity()));
PqScriptDtlsParam.CheckData checkData;
for (PqScriptDtlsParam.CheckData channelListDTO : checkDataList) {
if (dicTreeMap.containsKey(channelListDTO.getValueType())) {
@@ -417,7 +428,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
checkData.setErrorFlag(channelListDTO.getErrorFlag());
checkData.setEnable(channelListDTO.getEnable());
checkData.setValue(0.0);
checkData.setPhase(listDTO.getChannelType().substring(1, 2));
checkData.setPhase(listDTO.getChannelType().substring(1, 2).toUpperCase());
checkData.setDataType(channelListDTO.getDataType());
checkData.setValueType(channelListDTO.getValueType());
checkData.setPid(channelListDTO.getPid());
@@ -433,7 +444,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
checkData.setErrorFlag(channelListDTO.getErrorFlag());
checkData.setEnable(channelListDTO.getEnable());
checkData.setValue(listDTO.getFPhase());
checkData.setPhase(listDTO.getChannelType().substring(1, 2));
checkData.setPhase(listDTO.getChannelType().substring(1, 2).toUpperCase());
checkData.setDataType(channelListDTO.getDataType());
checkData.setValueType(channelListDTO.getValueType());
checkData.setPid(channelListDTO.getPid());
@@ -477,7 +488,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
//电压*电流*cos电压角度-电流角度)
checkData.setValue(i.getFAmp() * harmModel.getFAmp() * Math.cos(harmModel.getFPhase() - i.getFPhase()));
}
checkData.setPhase(listDTO.getChannelType().substring(1, 2));
checkData.setPhase(listDTO.getChannelType().substring(1, 2).toUpperCase());
checkData.setDataType(channelListDTO.getDataType());
checkData.setValueType(channelListDTO.getValueType());
checkData.setPid(channelListDTO.getPid());
@@ -508,7 +519,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
checkData.setErrorFlag(channelListDTO.getErrorFlag());
checkData.setEnable(channelListDTO.getEnable());
checkData.setValue(listDTO.getDipData().getFTransValue());
checkData.setPhase(listDTO.getChannelType().substring(1, 2));
checkData.setPhase(listDTO.getChannelType().substring(1, 2).toUpperCase());
checkData.setDataType(channelListDTO.getDataType());
checkData.setValueType(channelListDTO.getValueType());
checkData.setPid(channelListDTO.getPid());
@@ -522,7 +533,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
checkData.setErrorFlag(channelListDTO.getErrorFlag());
checkData.setEnable(channelListDTO.getEnable());
checkData.setValue(listDTO.getDipData().getRetainTime());
checkData.setPhase(listDTO.getChannelType().substring(1, 2));
checkData.setPhase(listDTO.getChannelType().substring(1, 2).toUpperCase());
checkData.setDataType(channelListDTO.getDataType());
checkData.setValueType(channelListDTO.getValueType());
checkData.setPid(channelListDTO.getPid());
@@ -545,6 +556,23 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
unbanCheck(info, channelListDTO, channelList, list);
break;
case PST:
if (CollUtil.isNotEmpty(channelList)) {
list = channelList.stream().filter(x -> x.getChannelType().contains("U")).collect(Collectors.toList());
for (PqScriptDtlsParam.ChannelListDTO listDTO : list) {
checkData = new PqScriptDtlsParam.CheckData();
checkData.setErrorFlag(channelListDTO.getErrorFlag());
checkData.setEnable(channelListDTO.getEnable());
if (ObjectUtil.isNotNull(listDTO.getFlickerData())) {
checkData.setValue(listDTO.getFlickerData().getFlickerValue());
}
checkData.setPhase(listDTO.getChannelType().substring(1, 2).toUpperCase());
checkData.setDataType(channelListDTO.getDataType());
checkData.setValueType(channelListDTO.getValueType());
checkData.setPid(channelListDTO.getPid());
info.add(checkData);
}
}
break;
case I1:
break;
@@ -587,12 +615,12 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
.eq(PqScriptDtls::getScriptType, param.getScriptType())
);
List<Integer> indexList = list.stream().map(PqScriptDtls::getScriptIndex).distinct().collect(Collectors.toList());
if(CollUtil.isNotEmpty(indexList)){
return pqScriptCheckDataMapper.selectJoinList(PqScriptCheckData.class,new MPJLambdaWrapper<PqScriptCheckData>()
if (CollUtil.isNotEmpty(indexList)) {
return pqScriptCheckDataMapper.selectJoinList(PqScriptCheckData.class, new MPJLambdaWrapper<PqScriptCheckData>()
.select(PqScriptCheckData::getValueType, PqScriptCheckData::getEnable, PqScriptCheckData::getErrorFlag)
.distinct()
.eq(PqScriptCheckData::getScriptId, param.getScriptId())
.eq(PqScriptCheckData::getScriptId, indexList)
.in(PqScriptCheckData::getScriptIndex, indexList)
);
}
@@ -624,7 +652,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
checkData.setErrorFlag(channelListDTO.getErrorFlag());
checkData.setEnable(channelListDTO.getEnable());
checkData.setValue(listDTO.getFAmp());
checkData.setPhase(listDTO.getChannelType().substring(1, 2));
checkData.setPhase(listDTO.getChannelType().substring(1, 2).toUpperCase());
checkData.setDataType(channelListDTO.getDataType());
checkData.setValueType(channelListDTO.getValueType());
checkData.setPid(channelListDTO.getPid());
@@ -642,7 +670,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
checkData.setErrorFlag(channelListDTO.getErrorFlag());
checkData.setEnable(channelListDTO.getEnable());
checkData.setValue(inharmModel.getFAmp());
checkData.setPhase(listDTO.getChannelType().substring(1, 2));
checkData.setPhase(listDTO.getChannelType().substring(1, 2).toUpperCase());
checkData.setHarmNum(inharmModel.getInharm());
checkData.setDataType(channelListDTO.getDataType());
checkData.setValueType(channelListDTO.getValueType());
@@ -663,7 +691,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
checkData.setErrorFlag(channelListDTO.getErrorFlag());
checkData.setEnable(channelListDTO.getEnable());
checkData.setValue(harmModel.getFAmp());
checkData.setPhase(listDTO.getChannelType().substring(1, 2));
checkData.setPhase(listDTO.getChannelType().substring(1, 2).toUpperCase());
checkData.setHarmNum(harmModel.getHarm());
checkData.setDataType(channelListDTO.getDataType());
checkData.setValueType(channelListDTO.getValueType());
@@ -756,7 +784,8 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
String inHarm,
Double fFreq,
String code,
List<SourceIssue.ChannelListDTO> channelListDTOS) {
List<SourceIssue.ChannelListDTO> channelListDTOS,
PqScriptCheckDataParam checkDataParam) {
for (PqScriptDtls dtls : dtlsList) {
SourceIssue.ChannelListDTO channelListDTO = new SourceIssue.ChannelListDTO();
channelListDTO.setChannelFlag(true);
@@ -832,6 +861,12 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
flickerDataDTO.setFChagFre(flicker.getChagFre());
flickerDataDTO.setFChagValue(flicker.getChagValue());
List<DictTree> treeByCode = dictTreeService.getTreeByCode(DetectionCodeEnum.PST.getCode());
if (CollUtil.isNotEmpty(treeByCode)) {
checkDataParam.setValueType(treeByCode.get(0).getId());
checkDataParam.setPhase(dtls.getPhase());
flickerDataDTO.setFlickerValue(pqScriptCheckDataService.getCheckDataValue(checkDataParam));
}
channelListDTO.setFlickerFlag(true);
channelListDTO.setFlickerData(flickerDataDTO);
}