优化污染值算法增加是否零票判断
This commit is contained in:
@@ -122,9 +122,9 @@ public class ExecutionCenter extends BaseController {
|
||||
startDate = DateUtil.offsetDay(startDate, 1);
|
||||
}
|
||||
calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
|
||||
// CalculatedParam repairParam = BeanUtil.copyProperties(calculatedParam, CalculatedParam.class);
|
||||
calculatedParam.setType(0);
|
||||
flowService.execute2Resp(methodDescribe, calculatedParam);
|
||||
CalculatedParam repairParam = BeanUtil.copyProperties(calculatedParam, CalculatedParam.class);
|
||||
repairParam.setType(0);
|
||||
flowService.execute2Resp(methodDescribe, repairParam);
|
||||
}
|
||||
} else {
|
||||
//非补招
|
||||
|
||||
@@ -58,7 +58,7 @@ public class DataComAssServiceImpl implements IDataComAssService {
|
||||
lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
|
||||
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
|
||||
List<String> lineIdList = calculatedParam.getIdList();
|
||||
getAbnormalData(lineParam);
|
||||
//getAbnormalData(lineParam);
|
||||
for (String lineId : lineIdList) {
|
||||
DataComassesDPO rStatComassesDpo = new DataComassesDPO();
|
||||
rStatComassesDpo.setTime(calculatedParam.getDataDate());
|
||||
|
||||
@@ -80,19 +80,21 @@ public class PollutionCalcImpl implements IPollutionCalc {
|
||||
LineDevGetDTO line = lineDetailMap.get(id);
|
||||
if (limitMap.containsKey(id)) {
|
||||
Overlimit overlimit = limitMap.get(id);
|
||||
lineParam.setValueType(Arrays.asList(line.getTimeInterval() + ""));
|
||||
lineParam.setLineId(Arrays.asList(id));
|
||||
|
||||
if(!dataVFeignClient.excludeZeroData(lineParam).getData()){
|
||||
dataPollutionD = new DataPollutionD();
|
||||
dataPollutionD.setLineId(id);
|
||||
dataPollutionD.setDataDate(LocalDateTimeUtil.parseDate(calculatedParam.getDataDate()));
|
||||
dataPollutionD.setPollutionType(vHarmonicLimit);
|
||||
lineParam.setValueType(Arrays.asList(line.getTimeInterval() + ""));
|
||||
lineParam.setLineId(Arrays.asList(id));
|
||||
|
||||
List<DataVDto> dataVDtoList = dataVFeignClient.getGroupByTimeDataV(lineParam).getData();
|
||||
List<DataHarmDto> dataHarmDtoList = dataHarmRateVFeignClient.getGroupByTimeHarmRateV(lineParam).getData();
|
||||
//计算谐波电压污染值
|
||||
dataPollutionD.setValue(PubUtils.doubleRound(2, calcVAllPollutionValue(dataVDtoList, dataHarmDtoList, overlimit) * line.getTimeInterval()));
|
||||
|
||||
list.add(dataPollutionD);
|
||||
}
|
||||
|
||||
dataPollutionD = new DataPollutionD();
|
||||
dataPollutionD.setLineId(id);
|
||||
dataPollutionD.setDataDate(LocalDateTimeUtil.parseDate(calculatedParam.getDataDate()));
|
||||
|
||||
@@ -68,4 +68,8 @@ public interface DataVFeignClient {
|
||||
//按时间分组获取原始数据
|
||||
@PostMapping("/getGroupByTimeDataV")
|
||||
HttpResult<List<DataVDto>> getGroupByTimeDataV(@RequestBody LineCountEvaluateParam lineParam);
|
||||
|
||||
|
||||
@PostMapping("/excludeZeroData")
|
||||
HttpResult<Boolean> excludeZeroData(@RequestBody LineCountEvaluateParam lineParam);
|
||||
}
|
||||
|
||||
@@ -116,6 +116,12 @@ public class DataVFeignClientFallbackFactory implements FallbackFactory<DataVFei
|
||||
log.error("{}异常,降级处理,异常为:{}","DataV按时间分组获取原始数据",cause.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpResult<Boolean> excludeZeroData(LineCountEvaluateParam lineParam) {
|
||||
log.error("{}异常,降级处理,异常为:{}","判断是否存在是零飘数据",cause.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -166,6 +166,15 @@ public class DataVController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, dataV, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/excludeZeroData")
|
||||
@ApiOperation("判断是否存在是零飘数据")
|
||||
public HttpResult<Boolean> excludeZeroData(@RequestBody LineCountEvaluateParam lineParam) {
|
||||
String methodDescribe = getMethodDescribe("excludeZeroData");
|
||||
Boolean b = dataVQuery.excludeZeroData(lineParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, b, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -81,4 +81,17 @@ public interface IDataV extends IMppService<RStatDataVD> {
|
||||
List<DataVDto> getDataV(LineCountEvaluateParam lineParam);
|
||||
|
||||
List<DataVDto> getGroupByTimeDataV(LineCountEvaluateParam lineParam);
|
||||
|
||||
|
||||
/**
|
||||
* 查看监测点的电压,判断是否存在是零飘数据
|
||||
* 如果零飘数据占比一半多,则抛弃该监测点数据
|
||||
* @param lineParam
|
||||
* @return: java.lang.Boolean
|
||||
* @Author: wr
|
||||
* @Date: 2026/1/15 9:26
|
||||
*/
|
||||
Boolean excludeZeroData(LineCountEvaluateParam lineParam);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -425,6 +425,27 @@ public class InfluxdbDataVImpl extends MppServiceImpl<RStatDataVRelationMapper,
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Boolean excludeZeroData(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper dataVQueryWrapper = new InfluxQueryWrapper(DataV.class);
|
||||
dataVQueryWrapper.eq(DataV::getLineId, lineParam.getLineId().get(0))
|
||||
.eq(DataV::getValueType, InfluxDbSqlConstant.AVG_WEB)
|
||||
.ne(DataV::getPhasicType, InfluxDBTableConstant.PHASE_TYPE_T)
|
||||
.select(DataV::getRms)
|
||||
.between(DataV::getTime, lineParam.getStartTime(), lineParam.getEndTime());
|
||||
List<DataV> rmsResult = dataVMapper.selectByQueryWrapper(dataVQueryWrapper);
|
||||
if (CollUtil.isNotEmpty(rmsResult)) {
|
||||
List<DataV> exceptionData = rmsResult.stream().filter(dataV -> dataV.getRms() < 1.0).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(exceptionData)) {
|
||||
if (exceptionData.size() * 2 >= rmsResult.size()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 按监测点集合、时间条件获取dataV分钟数据
|
||||
* timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理
|
||||
|
||||
@@ -167,6 +167,11 @@ public class RelationDataVImpl extends MppServiceImpl<RStatDataVRelationMapper,
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean excludeZeroData(LineCountEvaluateParam lineParam) {
|
||||
return null;
|
||||
}
|
||||
|
||||
private List<DataVDto> quality(List<DataVDto> list, LineCountEvaluateParam lineParam) {
|
||||
List<DataVDto> result = new ArrayList<>();
|
||||
Map<String, List<DataVDto>> lineMap = list.stream().collect(Collectors.groupingBy(DataVDto::getLineId));
|
||||
|
||||
Reference in New Issue
Block a user