算法调整
This commit is contained in:
@@ -1,12 +1,14 @@
|
|||||||
package com.njcn.algorithm.serviceimpl.line;
|
package com.njcn.algorithm.serviceimpl.line;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.collection.ListUtil;
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.njcn.algorithm.pojo.bo.CalculatedParam;
|
import com.njcn.algorithm.pojo.bo.CalculatedParam;
|
||||||
import com.njcn.algorithm.service.line.IPollutionService;
|
import com.njcn.algorithm.service.line.IPollutionService;
|
||||||
|
import com.njcn.algorithm.utils.MemorySizeUtil;
|
||||||
import com.njcn.dataProcess.api.*;
|
import com.njcn.dataProcess.api.*;
|
||||||
import com.njcn.dataProcess.enums.DataCleanEnum;
|
import com.njcn.dataProcess.enums.DataCleanEnum;
|
||||||
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
||||||
@@ -25,6 +27,8 @@ import com.njcn.system.pojo.po.DictData;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.apache.commons.collections4.ListUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -45,6 +49,9 @@ import java.util.stream.Stream;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class PollutionServiceImpl implements IPollutionService {
|
public class PollutionServiceImpl implements IPollutionService {
|
||||||
|
|
||||||
|
@Value("${line.num}")
|
||||||
|
private Integer NUM = 100;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private PqDataVerifyFeignClient pqDataVerifyFeignClient;
|
private PqDataVerifyFeignClient pqDataVerifyFeignClient;
|
||||||
@Resource
|
@Resource
|
||||||
@@ -66,7 +73,7 @@ public class PollutionServiceImpl implements IPollutionService {
|
|||||||
@Override
|
@Override
|
||||||
public void handleDay(CalculatedParam<String> calculatedParam) {
|
public void handleDay(CalculatedParam<String> calculatedParam) {
|
||||||
System.out.println("当前执行污区监测点算法++++++++++++++++++++++++++++++++++");
|
System.out.println("当前执行污区监测点算法++++++++++++++++++++++++++++++++++");
|
||||||
List<DataPollutionD> pollutionList;
|
|
||||||
List<DictData> dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.POLLUTION_STATIS.getCode()).getData();
|
List<DictData> dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.POLLUTION_STATIS.getCode()).getData();
|
||||||
Map<String, DictData> dictData = dictDataList.stream().collect(Collectors.toMap(DictData::getCode, Function.identity()));
|
Map<String, DictData> dictData = dictDataList.stream().collect(Collectors.toMap(DictData::getCode, Function.identity()));
|
||||||
LocalDate local = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate());
|
LocalDate local = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate());
|
||||||
@@ -77,28 +84,33 @@ public class PollutionServiceImpl implements IPollutionService {
|
|||||||
Map<String, Overlimit> limitMap = overlimitList.stream().collect(Collectors.toMap(Overlimit::getId, Function.identity()));
|
Map<String, Overlimit> limitMap = overlimitList.stream().collect(Collectors.toMap(Overlimit::getId, Function.identity()));
|
||||||
|
|
||||||
LineCountEvaluateParam lineCountEvaluateParam = new LineCountEvaluateParam();
|
LineCountEvaluateParam lineCountEvaluateParam = new LineCountEvaluateParam();
|
||||||
lineCountEvaluateParam.setLineId(idList);
|
|
||||||
lineCountEvaluateParam.setStartTime(beginDay);
|
lineCountEvaluateParam.setStartTime(beginDay);
|
||||||
lineCountEvaluateParam.setEndTime(endDay);
|
lineCountEvaluateParam.setEndTime(endDay);
|
||||||
getAbnormalData(lineCountEvaluateParam);
|
getAbnormalData(lineCountEvaluateParam);
|
||||||
//指标数据获取
|
//指标数据获取
|
||||||
Map<String, DataPollutionD> harmonicVoltageList = getHarmonicVoltage(lineCountEvaluateParam, limitMap);
|
|
||||||
Map<String, DataPollutionD> harmonicCurrentList = getHarmonicCurrent(lineCountEvaluateParam, limitMap);
|
|
||||||
Map<String, DataPollutionD> frequencyDeviationList = getFrequencyDeviation(lineCountEvaluateParam, limitMap);
|
|
||||||
Map<String, DataPollutionD> voltageDeviationList = getVoltageDeviation(lineCountEvaluateParam, limitMap);
|
|
||||||
Map<String, DataPollutionD> threePhaseVoltageList = getThreePhaseVoltageUnbalance(lineCountEvaluateParam, limitMap);
|
|
||||||
Map<String, DataPollutionD> negativeSequenceList = getNegativeSequenceCurrent(lineCountEvaluateParam, limitMap);
|
|
||||||
Map<String, DataPollutionD> interHarmonicVoltageList = getInterharmonicVoltage(lineCountEvaluateParam, limitMap);
|
|
||||||
Map<String, DataPollutionD> voltageFlickerList = getVoltageFlicker(lineCountEvaluateParam, limitMap);
|
|
||||||
|
|
||||||
|
List<List<String>> pendingIds = ListUtils.partition(idList,NUM);
|
||||||
|
pendingIds.forEach(list->{
|
||||||
|
lineCountEvaluateParam.setLineId(list);
|
||||||
|
Map<String, DataPollutionD> harmonicVoltageList = getHarmonicVoltage(lineCountEvaluateParam, limitMap);
|
||||||
|
Map<String, DataPollutionD> harmonicCurrentList = getHarmonicCurrent(lineCountEvaluateParam, limitMap);
|
||||||
|
Map<String, DataPollutionD> frequencyDeviationList = getFrequencyDeviation(lineCountEvaluateParam, limitMap);
|
||||||
|
Map<String, DataPollutionD> voltageDeviationList = getVoltageDeviation(lineCountEvaluateParam, limitMap);
|
||||||
|
Map<String, DataPollutionD> threePhaseVoltageList = getThreePhaseVoltageUnbalance(lineCountEvaluateParam, limitMap);
|
||||||
|
Map<String, DataPollutionD> negativeSequenceList = getNegativeSequenceCurrent(lineCountEvaluateParam, limitMap);
|
||||||
|
Map<String, DataPollutionD> interHarmonicVoltageList = getInterharmonicVoltage(lineCountEvaluateParam, limitMap);
|
||||||
|
Map<String, DataPollutionD> voltageFlickerList = getVoltageFlicker(lineCountEvaluateParam, limitMap);
|
||||||
|
|
||||||
pollutionList = processPollutionList(local, idList, dictData, harmonicVoltageList, harmonicCurrentList, frequencyDeviationList, voltageDeviationList,
|
List<DataPollutionD> pollutionList = processPollutionList(local, idList, dictData, harmonicVoltageList, harmonicCurrentList, frequencyDeviationList, voltageDeviationList,
|
||||||
threePhaseVoltageList, negativeSequenceList, interHarmonicVoltageList, voltageFlickerList);
|
threePhaseVoltageList, negativeSequenceList, interHarmonicVoltageList, voltageFlickerList);
|
||||||
|
|
||||||
|
//TODO 插入数据库
|
||||||
|
if (CollUtil.isNotEmpty(pollutionList)) {
|
||||||
|
dataPollutionFeignClient.batchInsertion(pollutionList);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
//TODO 插入数据库
|
|
||||||
if (CollUtil.isNotEmpty(pollutionList)) {
|
|
||||||
dataPollutionFeignClient.batchInsertion(pollutionList);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ public class DataVFeignClientFallbackFactory implements FallbackFactory<DataVFei
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HttpResult<List<DataVDto>> getDataV(@RequestBody LineCountEvaluateParam lineParam) {
|
public HttpResult<List<DataVDto>> getDataV(@RequestBody LineCountEvaluateParam lineParam) {
|
||||||
log.error("{}异常,降级处理,异常为:{}","cvt数据插入DataV",cause.toString());
|
log.error("{}异常,降级处理,异常为:{}","查询数据DataV",cause.toString());
|
||||||
throw new BusinessException(finalExceptionEnum);
|
throw new BusinessException(finalExceptionEnum);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user