完成综合评估算法

This commit is contained in:
wr
2025-03-19 16:31:03 +08:00
parent a72c956921
commit 0f54dc5199
74 changed files with 3580 additions and 249 deletions

View File

@@ -33,6 +33,10 @@ public class MeasurementExecutor extends BaseExecutor {
private IDataIntegrityService dataIntegrityService; private IDataIntegrityService dataIntegrityService;
@Resource @Resource
private IEventDetailService eventDetailService; private IEventDetailService eventDetailService;
@Resource
private IDataComAssService dataComAssService;
@Resource
private IPollutionService pollutionService;
/** /**
* 数据清洗 电压表 * 数据清洗 电压表
@@ -389,6 +393,36 @@ public class MeasurementExecutor extends BaseExecutor {
dataCrossingService.limitQualifiedDayHandler(bindCmp.getRequestData()); dataCrossingService.limitQualifiedDayHandler(bindCmp.getRequestData());
} }
/**
* 综合评估
* @param bindCmp
* @return
*/
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "dataComAss", nodeType = NodeTypeEnum.COMMON)
public boolean dataComAssAccess(NodeComponent bindCmp) {
return isAccess(bindCmp);
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "dataComAss", nodeType = NodeTypeEnum.COMMON)
public void dataComAssProcess(NodeComponent bindCmp) {
dataComAssService.dataComAssHandler(bindCmp.getRequestData());
}
/**
* 监测点污区图
* @param bindCmp
* @return
*/
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "dataPollution", nodeType = NodeTypeEnum.COMMON)
public boolean dataPollutionAccess(NodeComponent bindCmp) {
return isAccess(bindCmp);
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "dataPollution", nodeType = NodeTypeEnum.COMMON)
public void dataPollutionProcess(NodeComponent bindCmp) {
pollutionService.handleDay(bindCmp.getRequestData());
}
/** /**
* 监测点数据完整性 * 监测点数据完整性

View File

@@ -0,0 +1,25 @@
package com.njcn.algorithm.service.line;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/6 10:22
*/
public interface IDataComAssService {
/**
* 电能质量综合评估-日表
* @param calculatedParam
* @Author: wr
* @Date: 2025/3/18 13:48
*/
void dataComAssHandler(CalculatedParam calculatedParam);
}

View File

@@ -1,11 +1,81 @@
package com.njcn.algorithm.service.line; package com.njcn.algorithm.service.line;
import com.njcn.algorithm.pojo.bo.CalculatedParam; import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
/** /**
* 测点污区数据 * 测点污区数据
*/ */
public interface IPollutionService { public interface IPollutionService {
/**
* 监测点误区图计算
* @param calculatedParam
* @Author: wr
* @Date: 2025/3/19 14:03
*/
void handleDay(CalculatedParam<String> calculatedParam); void handleDay(CalculatedParam<String> calculatedParam);
/**
* 单位(天)误区图计算
* @param calculatedParam
* @Author: wr
* @Date: 2025/3/19 14:03
*/
void handleOrgDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
/**
* 单位(月)误区图计算
* @param calculatedParam
* @Author: wr
* @Date: 2025/3/19 14:03
*/
void handleOrgMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
/**
* 单位(季)误区图计算
* @param calculatedParam
* @Author: wr
* @Date: 2025/3/19 14:03
*/
void handleOrgQtr(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
/**
* 单位(年)误区图计算
* @param calculatedParam
* @Author: wr
* @Date: 2025/3/19 14:03
*/
void handleOrgYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
/**
* 变电站(天)误区图计算
* @param calculatedParam
* @Author: wr
* @Date: 2025/3/19 14:03
*/
void handleSubstationDay(CalculatedParam<String> calculatedParam);
/**
* 变电站(月)误区图计算
* @param calculatedParam
* @Author: wr
* @Date: 2025/3/19 14:03
*/
void handleSubstationMonth(CalculatedParam<String> calculatedParam);
/**
* 变电站(季)误区图计算
* @param calculatedParam
* @Author: wr
* @Date: 2025/3/19 14:03
*/
void handleSubstationQtr(CalculatedParam<String> calculatedParam);
/**
* 变电站(年)误区图计算
* @param calculatedParam
* @Author: wr
* @Date: 2025/3/19 14:03
*/
void handleSubstationYear(CalculatedParam<String> calculatedParam);
} }

View File

@@ -0,0 +1,267 @@
package com.njcn.algorithm.serviceimpl.line;
import cn.hutool.core.collection.CollUtil;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.njcn.algorithm.service.line.IDataComAssService;
import com.njcn.dataProcess.api.DataComAssFeignClient;
import com.njcn.dataProcess.api.DataFlickerFeignClient;
import com.njcn.dataProcess.api.DataVFeignClient;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataComassesDPO;
import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.*;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/18 13:47
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class DataComAssServiceImpl implements IDataComAssService {
private static final Logger logger = LoggerFactory.getLogger(DayDataServiceImpl.class);
@Value("${line.num}")
private Integer NUM = 100;
@Resource
private DataVFeignClient dataVFeignClient;
@Resource
private DataFlickerFeignClient dataFlickerFeignClient;
@Resource
private DataComAssFeignClient dataComAssFeignClient;
@Override
public void dataComAssHandler(CalculatedParam calculatedParam) {
List<DataComassesDPO> list = new ArrayList<>();
logger.info("{},r_stat_comasses_d算法开始=====》", LocalDateTime.now());
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
List<String> lineIdList = calculatedParam.getIdList();
for (String lineId : lineIdList) {
DataComassesDPO rStatComassesDpo = new DataComassesDPO();
rStatComassesDpo.setTime(calculatedParam.getDataDate());
rStatComassesDpo.setLineId(lineId);
lineParam.setLineId(Arrays.asList(lineId));
Map<String, Object> fields = getGeneralData(lineParam);
if (CollUtil.isNotEmpty(fields)) {
rStatComassesDpo.setFreqDev1(Objects.isNull(fields.get("freq_dev1")) ? 0.0 : Double.parseDouble(fields.get("freq_dev1").toString()));
rStatComassesDpo.setFreqDev2(Objects.isNull(fields.get("freq_dev2")) ? 0.0 : Double.parseDouble(fields.get("freq_dev2").toString()));
rStatComassesDpo.setFreqDev3(Objects.isNull(fields.get("freq_dev3")) ? 0.0 : Double.parseDouble(fields.get("freq_dev3").toString()));
rStatComassesDpo.setFreqDev4(Objects.isNull(fields.get("freq_dev4")) ? 0.0 : Double.parseDouble(fields.get("freq_dev4").toString()));
rStatComassesDpo.setFreqDev5(Objects.isNull(fields.get("freq_dev5")) ? 0.0 : Double.parseDouble(fields.get("freq_dev5").toString()));
rStatComassesDpo.setVuDev1(Objects.isNull(fields.get("vu_dev1")) ? 0.0 : Double.parseDouble(fields.get("vu_dev1").toString()));
rStatComassesDpo.setVuDev2(Objects.isNull(fields.get("vu_dev2")) ? 0.0 : Double.parseDouble(fields.get("vu_dev2").toString()));
rStatComassesDpo.setVuDev3(Objects.isNull(fields.get("vu_dev3")) ? 0.0 : Double.parseDouble(fields.get("vu_dev3").toString()));
rStatComassesDpo.setVuDev4(Objects.isNull(fields.get("vu_dev4")) ? 0.0 : Double.parseDouble(fields.get("vu_dev4").toString()));
rStatComassesDpo.setVuDev5(Objects.isNull(fields.get("vu_dev5")) ? 0.0 : Double.parseDouble(fields.get("vu_dev5").toString()));
rStatComassesDpo.setDataPst1(Objects.isNull(fields.get("data_pst1")) ? 0.0 : Double.parseDouble(fields.get("data_pst1").toString()));
rStatComassesDpo.setDataPst2(Objects.isNull(fields.get("data_pst2")) ? 0.0 : Double.parseDouble(fields.get("data_pst2").toString()));
rStatComassesDpo.setDataPst3(Objects.isNull(fields.get("data_pst3")) ? 0.0 : Double.parseDouble(fields.get("data_pst3").toString()));
rStatComassesDpo.setDataPst4(Objects.isNull(fields.get("data_pst4")) ? 0.0 : Double.parseDouble(fields.get("data_pst4").toString()));
rStatComassesDpo.setDataPst5(Objects.isNull(fields.get("data_pst5")) ? 0.0 : Double.parseDouble(fields.get("data_pst5").toString()));
rStatComassesDpo.setVUnbalance1(Objects.isNull(fields.get("v_unbalance1")) ? 0.0 : Double.parseDouble(fields.get("v_unbalance1").toString()));
rStatComassesDpo.setVUnbalance2(Objects.isNull(fields.get("v_unbalance2")) ? 0.0 : Double.parseDouble(fields.get("v_unbalance2").toString()));
rStatComassesDpo.setVUnbalance3(Objects.isNull(fields.get("v_unbalance3")) ? 0.0 : Double.parseDouble(fields.get("v_unbalance3").toString()));
rStatComassesDpo.setVUnbalance4(Objects.isNull(fields.get("v_unbalance4")) ? 0.0 : Double.parseDouble(fields.get("v_unbalance4").toString()));
rStatComassesDpo.setVUnbalance5(Objects.isNull(fields.get("v_unbalance5")) ? 0.0 : Double.parseDouble(fields.get("v_unbalance5").toString()));
rStatComassesDpo.setVThd1(Objects.isNull(fields.get("v_thd1")) ? 0.0 : Double.parseDouble(fields.get("v_thd1").toString()));
rStatComassesDpo.setVThd2(Objects.isNull(fields.get("v_thd2")) ? 0.0 : Double.parseDouble(fields.get("v_thd2").toString()));
rStatComassesDpo.setVThd3(Objects.isNull(fields.get("v_thd3")) ? 0.0 : Double.parseDouble(fields.get("v_thd3").toString()));
rStatComassesDpo.setVThd4(Objects.isNull(fields.get("v_thd4")) ? 0.0 : Double.parseDouble(fields.get("v_thd4").toString()));
rStatComassesDpo.setVThd5(Objects.isNull(fields.get("v_thd5")) ? 0.0 : Double.parseDouble(fields.get("v_thd5").toString()));
rStatComassesDpo.setEvent1(Objects.isNull(fields.get("event1")) ? 0.0 : Double.parseDouble(fields.get("event1").toString()));
rStatComassesDpo.setEvent2(Objects.isNull(fields.get("event2")) ? 0.0 : Double.parseDouble(fields.get("event2").toString()));
rStatComassesDpo.setEvent3(Objects.isNull(fields.get("event3")) ? 0.0 : Double.parseDouble(fields.get("event3").toString()));
rStatComassesDpo.setEvent4(Objects.isNull(fields.get("event4")) ? 0.0 : Double.parseDouble(fields.get("event4").toString()));
rStatComassesDpo.setEvent5(Objects.isNull(fields.get("event5")) ? 0.0 : Double.parseDouble(fields.get("event5").toString()));
list.add(rStatComassesDpo);
}
}
if (CollUtil.isNotEmpty(list)) {
dataComAssFeignClient.batchInsertion(list);
}
}
private Map<String, Object> getGeneralData(LineCountEvaluateParam lineParam) {
Map<String, Object> outMap = new HashMap<>(30);
BigDecimal hundred = BigDecimal.valueOf(100);
//************************************电压偏差********************************************
lineParam.setPhasicType(Arrays.asList("A","B","C"));
lineParam.setValueType(Arrays.asList("AVG"));
lineParam.setColumnName("vu_dev");
lineParam.setGe("10");
Integer vuDev1 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("7");
lineParam.setLt("10");
Integer vuDev2 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("4");
lineParam.setLt("7");
Integer vuDev3 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("2");
lineParam.setLt("4");
Integer vuDev4 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("0");
lineParam.setLt("2");
Integer vuDev5 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
BigDecimal vuDevAll = BigDecimal.valueOf(vuDev1 + vuDev2 + vuDev3 + vuDev4 + vuDev5);
if (vuDevAll.compareTo(BigDecimal.ZERO) != 0) {
outMap.put("vu_dev1", BigDecimal.valueOf(vuDev1).multiply(hundred).divide(vuDevAll, 3, RoundingMode.HALF_UP));
outMap.put("vu_dev2", BigDecimal.valueOf(vuDev2).multiply(hundred).divide(vuDevAll, 3, RoundingMode.HALF_UP));
outMap.put("vu_dev3", BigDecimal.valueOf(vuDev3).multiply(hundred).divide(vuDevAll, 3, RoundingMode.HALF_UP));
outMap.put("vu_dev4", BigDecimal.valueOf(vuDev4).multiply(hundred).divide(vuDevAll, 3, RoundingMode.HALF_UP));
outMap.put("vu_dev5", BigDecimal.valueOf(vuDev5).multiply(hundred).divide(vuDevAll, 3, RoundingMode.HALF_UP));
}
//************************************频率偏差********************************************
lineParam.setColumnName("freq_dev");
lineParam.setGe("0.3");
Integer freqDev1 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("0.2");
lineParam.setLt("0.3");
Integer freqDev2 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("0.1");
lineParam.setLt("0.2");
Integer freqDev3 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("0.05");
lineParam.setLt("0.1");
Integer freqDev4 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("0");
lineParam.setLt("0.05");
Integer freqDev5 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
BigDecimal freqDevAll = BigDecimal.valueOf(freqDev1 + freqDev2 + freqDev3 + freqDev4 + freqDev5);
if (freqDevAll.compareTo(BigDecimal.ZERO) != 0) {
outMap.put("freq_dev1", BigDecimal.valueOf(freqDev1).multiply(hundred).divide(freqDevAll, 3, RoundingMode.HALF_UP));
outMap.put("freq_dev2", BigDecimal.valueOf(freqDev2).multiply(hundred).divide(freqDevAll, 3, RoundingMode.HALF_UP));
outMap.put("freq_dev3", BigDecimal.valueOf(freqDev3).multiply(hundred).divide(freqDevAll, 3, RoundingMode.HALF_UP));
outMap.put("freq_dev4", BigDecimal.valueOf(freqDev4).multiply(hundred).divide(freqDevAll, 3, RoundingMode.HALF_UP));
outMap.put("freq_dev5", BigDecimal.valueOf(freqDev5).multiply(hundred).divide(freqDevAll, 3, RoundingMode.HALF_UP));
}
//************************************谐波畸变率********************************************
lineParam.setColumnName("v_thd");
lineParam.setValueType(Arrays.asList("CP95"));
lineParam.setGe("6");
Integer vThd1 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("4");
lineParam.setLt("6");
Integer vThd2 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("2");
lineParam.setLt("4");
Integer vThd3 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("1");
lineParam.setLt("2");
Integer vThd4 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("0");
lineParam.setLt("1");
Integer vThd5 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
BigDecimal vThdAll = BigDecimal.valueOf(vThd1 + vThd2 + vThd3 + vThd4 + vThd5);
if (vThdAll.compareTo(BigDecimal.ZERO) != 0) {
outMap.put("v_thd1", BigDecimal.valueOf(vThd1).multiply(hundred).divide(vThdAll, 3, RoundingMode.HALF_UP));
outMap.put("v_thd2", BigDecimal.valueOf(vThd2).multiply(hundred).divide(vThdAll, 3, RoundingMode.HALF_UP));
outMap.put("v_thd3", BigDecimal.valueOf(vThd3).multiply(hundred).divide(vThdAll, 3, RoundingMode.HALF_UP));
outMap.put("v_thd4", BigDecimal.valueOf(vThd4).multiply(hundred).divide(vThdAll, 3, RoundingMode.HALF_UP));
outMap.put("v_thd5", BigDecimal.valueOf(vThd5).multiply(hundred).divide(vThdAll, 3, RoundingMode.HALF_UP));
}
//************************************三相电压不平衡度********************************************
lineParam.setColumnName("v_unbalance");
lineParam.setGe("4");
Integer vUnbalance1 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("2");
lineParam.setLt("4");
Integer vUnbalance2 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("1");
lineParam.setLt("2");
Integer vUnbalance3 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("0.5");
lineParam.setLt("1");
Integer vUnbalance4 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("0");
lineParam.setLt("0.5");
Integer vUnbalance5 = dataVFeignClient.getColumnNameCountRawData(lineParam).getData();
BigDecimal vUnbalanceAll = BigDecimal.valueOf(vUnbalance1 + vUnbalance2 + vUnbalance3 + vUnbalance4 + vUnbalance5);
if (vUnbalanceAll.compareTo(BigDecimal.ZERO) != 0) {
outMap.put("v_unbalance1", BigDecimal.valueOf(vUnbalance1).multiply(hundred).divide(vUnbalanceAll, 3, RoundingMode.HALF_UP));
outMap.put("v_unbalance2", BigDecimal.valueOf(vUnbalance2).multiply(hundred).divide(vUnbalanceAll, 3, RoundingMode.HALF_UP));
outMap.put("v_unbalance3", BigDecimal.valueOf(vUnbalance3).multiply(hundred).divide(vUnbalanceAll, 3, RoundingMode.HALF_UP));
outMap.put("v_unbalance4", BigDecimal.valueOf(vUnbalance4).multiply(hundred).divide(vUnbalanceAll, 3, RoundingMode.HALF_UP));
outMap.put("v_unbalance5", BigDecimal.valueOf(vUnbalance5).multiply(hundred).divide(vUnbalanceAll, 3, RoundingMode.HALF_UP));
}
//************************************电压波动(短时闪变)********************************************
lineParam.setColumnName("pst");
lineParam.setValueType(null);
lineParam.setGe("0.8");
Integer plt1 = dataFlickerFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("0.6");
lineParam.setLt("0.8");
Integer plt2 = dataFlickerFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("0.4");
lineParam.setLt("0.6");
Integer plt3 = dataFlickerFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("0.2");
lineParam.setLt("0.4");
Integer plt4 = dataFlickerFeignClient.getColumnNameCountRawData(lineParam).getData();
lineParam.setGe("0");
lineParam.setLt("0.2");
Integer plt5 = dataFlickerFeignClient.getColumnNameCountRawData(lineParam).getData();
BigDecimal pltAll = BigDecimal.valueOf(plt1 + plt2 + plt3 + plt4 + plt5);
if (pltAll.compareTo(BigDecimal.ZERO) != 0) {
outMap.put("data_plt1", BigDecimal.valueOf(plt1).multiply(hundred).divide(pltAll, 3, RoundingMode.HALF_UP));
outMap.put("data_plt2", BigDecimal.valueOf(plt2).multiply(hundred).divide(pltAll, 3, RoundingMode.HALF_UP));
outMap.put("data_plt3", BigDecimal.valueOf(plt3).multiply(hundred).divide(pltAll, 3, RoundingMode.HALF_UP));
outMap.put("data_plt4", BigDecimal.valueOf(plt4).multiply(hundred).divide(pltAll, 3, RoundingMode.HALF_UP));
outMap.put("data_plt5", BigDecimal.valueOf(plt5).multiply(hundred).divide(pltAll, 3, RoundingMode.HALF_UP));
}
if (!CollUtil.isEmpty(outMap)) {
outMap.put("event1", 100.0);
outMap.put("event2", 0.0);
outMap.put("event3", 0.0);
outMap.put("event4", 0.0);
outMap.put("event5", 0.0);
}
return outMap;
}
}

View File

@@ -34,6 +34,8 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
@@ -281,18 +283,18 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
qualified.setTime(calculatedParam.getDataDate()); qualified.setTime(calculatedParam.getDataDate());
int all = value.stream().mapToInt(DataLimitRateDto::getAllTime).sum(); int all = value.stream().mapToInt(DataLimitRateDto::getAllTime).sum();
if (all > 0) { if (all > 0) {
qualified.setFreqDevOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getFreqDevOvertime).sum() * 100.0, all))); qualified.setFreqDevOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getFreqDevOvertime).sum(), all)));
qualified.setVoltageDevOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getVoltageDevOvertime).sum() * 100.0, all))); qualified.setVoltageDevOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getVoltageDevOvertime).sum(), all)));
qualified.setUbalanceOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getUbalanceOvertime).sum() * 100.0, all))); qualified.setUbalanceOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getUbalanceOvertime).sum(), all)));
qualified.setUaberranceOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getUaberranceOvertime).sum() * 100.0, all))); qualified.setUaberranceOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getUaberranceOvertime).sum(), all)));
qualified.setINegOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getINegOvertime).sum() * 100.0, all))); qualified.setINegOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getINegOvertime).sum(), all)));
setOverTime(2, 25, "uharm", value, qualified, all); setOverTime(2, 25, "uharm", value, qualified, all);
setOverTime(2, 25, "iharm", value, qualified, all); setOverTime(2, 25, "iharm", value, qualified, all);
setOverTime(1, 16, "inuharm", value, qualified, all); setOverTime(1, 16, "inuharm", value, qualified, all);
} }
int flickerAll = value.stream().mapToInt(DataLimitRateDto::getFlickerAllTime).sum(); int flickerAll = value.stream().mapToInt(DataLimitRateDto::getFlickerAllTime).sum();
if (flickerAll > 0) { if (flickerAll > 0) {
qualified.setFlickerOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getFlickerOvertime).sum() * 100.0, flickerAll))); qualified.setFlickerOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getFlickerOvertime).sum(), flickerAll)));
} }
info.add(qualified); info.add(qualified);
@@ -344,39 +346,56 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
DataQualifiedDetail qualified = new DataQualifiedDetail(); DataQualifiedDetail qualified = new DataQualifiedDetail();
qualified.setLineId(key); qualified.setLineId(key);
qualified.setTime(lineParam.getStartTime()); qualified.setTime(lineParam.getStartTime());
qualified.setFreqDevOvertime(PubUtils.doubleRound(2, value.stream().mapToDouble(DataQualifiedDetail::getFreqDevOvertime).average().getAsDouble())); qualified.setFreqDevOvertime(getaDouble(value.stream().filter(x -> ObjectUtil.isNotNull(x.getFreqDevOvertime())).map(DataQualifiedDetail::getFreqDevOvertime).collect(Collectors.toList())));
qualified.setVoltageDevOvertime(PubUtils.doubleRound(2, value.stream().mapToDouble(DataQualifiedDetail::getVoltageDevOvertime).average().getAsDouble())); qualified.setVoltageDevOvertime(getaDouble(value.stream().filter(x -> ObjectUtil.isNotNull(x.getVoltageDevOvertime())).map(DataQualifiedDetail::getVoltageDevOvertime).collect(Collectors.toList())));
qualified.setUbalanceOvertime(PubUtils.doubleRound(2, value.stream().mapToDouble(DataQualifiedDetail::getUbalanceOvertime).average().getAsDouble())); qualified.setUbalanceOvertime(getaDouble(value.stream().filter(x -> ObjectUtil.isNotNull(x.getUbalanceOvertime())).map(DataQualifiedDetail::getUbalanceOvertime).collect(Collectors.toList())));
qualified.setUaberranceOvertime(PubUtils.doubleRound(2, value.stream().mapToDouble(DataQualifiedDetail::getUaberranceOvertime).average().getAsDouble())); qualified.setUaberranceOvertime(getaDouble(value.stream().filter(x -> ObjectUtil.isNotNull(x.getUaberranceOvertime())).map(DataQualifiedDetail::getUaberranceOvertime).collect(Collectors.toList())));
qualified.setINegOvertime(PubUtils.doubleRound(2, value.stream().mapToDouble(DataQualifiedDetail::getINegOvertime).average().getAsDouble())); qualified.setINegOvertime(getaDouble(value.stream().filter(x -> ObjectUtil.isNotNull(x.getINegOvertime())).map(DataQualifiedDetail::getINegOvertime).collect(Collectors.toList())));
qualified.setFlickerOvertime(getaDouble(value.stream().filter(x -> ObjectUtil.isNotNull(x.getFlickerOvertime())).map(DataQualifiedDetail::getFlickerOvertime).collect(Collectors.toList())));
setOverTime(2, 25, "uharm", value, qualified); setOverTime(2, 25, "uharm", value, qualified);
setOverTime(2, 25, "iharm", value, qualified); setOverTime(2, 25, "iharm", value, qualified);
setOverTime(1, 16, "inuharm", value, qualified); setOverTime(1, 16, "inuharm", value, qualified);
info.add(qualified); info.add(qualified);
} }
} }
return info; return info;
} }
private double getaDouble(double value, int all) { private Double getaDouble(List<Double> doubles) {
return value * 100.0 / all; List<Double> numList = doubles.stream().filter(x -> ObjectUtil.isNotNull(x)).collect(Collectors.toList());
if (CollUtil.isNotEmpty(numList)){
double asDouble = numList.stream().mapToDouble(Double::doubleValue).average().getAsDouble();
return PubUtils.doubleRound(2, asDouble);
} }
return null;
}
private double getaDouble(double value, int all) {
double v = BigDecimal.valueOf(value * 100.0).divide(BigDecimal.valueOf(all), 4, RoundingMode.HALF_UP).doubleValue();
return v > 100 ? 100 : v;
}
private void setOverTime(Integer start, Integer end, String targetName, List<DataQualifiedDetail> value, DataQualifiedDetail qualified) { private void setOverTime(Integer start, Integer end, String targetName, List<DataQualifiedDetail> value, DataQualifiedDetail qualified) {
for (int i = start; i <= end; i++) { for (int i = start; i <= end; i++) {
// 构造方法名 // 构造方法名
String methodName = targetName + i + "Overtime"; String methodName = targetName + i + "Overtime";
try { try {
Field finalField = DataLimitRateDto.class.getDeclaredField(methodName); Field finalField = DataQualifiedDetail.class.getDeclaredField(methodName);
finalField.setAccessible(true); finalField.setAccessible(true);
double v = PubUtils.doubleRound(2, value.stream().mapToDouble(temp -> { List<Double> collect = value.stream().map(temp -> {
Double o; Object o;
try { try {
o = (Double) finalField.get(temp); o = finalField.get(temp);
} catch (IllegalAccessException e) { } catch (IllegalAccessException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
return o.doubleValue(); if(ObjectUtil.isNotNull(o)){
}).average().getAsDouble()); return (Double)o;
}
return null;
}).collect(Collectors.toList());
Double v = getaDouble(collect);
Field declared = DataQualifiedDetail.class.getDeclaredField(methodName); Field declared = DataQualifiedDetail.class.getDeclaredField(methodName);
declared.setAccessible(true); declared.setAccessible(true);
declared.set(qualified, v); declared.set(qualified, v);
@@ -385,6 +404,7 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
} }
} }
} }
private void setOverTime(Integer start, Integer end, String targetName, List<DataLimitRateDto> value, DataQualifiedDetail qualified, int all) { private void setOverTime(Integer start, Integer end, String targetName, List<DataLimitRateDto> value, DataQualifiedDetail qualified, int all) {
for (int i = start; i <= end; i++) { for (int i = start; i <= end; i++) {
// 构造方法名 // 构造方法名
@@ -400,7 +420,7 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
return o.intValue(); return o.intValue();
}).sum() * 100.0, all)); }).sum(), all));
Field declared = DataQualifiedDetail.class.getDeclaredField(methodName); Field declared = DataQualifiedDetail.class.getDeclaredField(methodName);
declared.setAccessible(true); declared.setAccessible(true);
declared.set(qualified, v); declared.set(qualified, v);

View File

@@ -1,38 +1,27 @@
package com.njcn.algorithm.serviceimpl.line; package com.njcn.algorithm.serviceimpl.line;
import cn.hutool.core.collection.CollUtil;
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 com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.api.R;
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.dataProcess.api.DataHarmRateVFeignClient; import com.njcn.dataProcess.api.*;
import com.njcn.dataProcess.api.DataIFeignClient;
import com.njcn.dataProcess.api.DataPltFeignClient;
import com.njcn.dataProcess.api.DataVFeignClient;
import com.njcn.dataProcess.dto.DataVDTO;
import com.njcn.dataProcess.dto.PollutionDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.relation.RMpPollutionDPO; import com.njcn.dataProcess.pojo.dto.*;
import com.njcn.dataProcess.pojo.dto.DataHarmDto;
import com.njcn.dataProcess.pojo.dto.DataIDto;
import com.njcn.dataProcess.pojo.dto.DataPltDto;
import com.njcn.dataProcess.pojo.dto.DataVDto;
import com.njcn.dataProcess.pojo.po.RStatDataVD;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient; import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.biz.pojo.po.Overlimit; import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData; 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.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.*; import java.util.*;
import java.util.function.BinaryOperator; import java.util.function.BinaryOperator;
@@ -51,20 +40,16 @@ import java.util.stream.Stream;
public class PollutionServiceImpl implements IPollutionService { public class PollutionServiceImpl implements IPollutionService {
private final DicDataFeignClient dicDataFeignClient; private final DicDataFeignClient dicDataFeignClient;
private final CommTerminalGeneralClient commTerminalGeneralClient; private final CommTerminalGeneralClient commTerminalGeneralClient;
private final DataVFeignClient dataVFeignClient; private final DataVFeignClient dataVFeignClient;
private final DataHarmRateVFeignClient dataHarmRateVFeignClient; private final DataHarmRateVFeignClient dataHarmRateVFeignClient;
private final DataPltFeignClient dataPltFeignClient; private final DataPltFeignClient dataPltFeignClient;
private final DataIFeignClient dataIFeignClient; private final DataIFeignClient dataIFeignClient;
private final DataPollutionFeignClient dataPollutionFeignClient;
@Override @Override
public void handleDay(CalculatedParam<String> calculatedParam) { public void handleDay(CalculatedParam<String> calculatedParam) {
List<RMpPollutionDPO> pollutionList; 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::getId, Function.identity())); Map<String, DictData> dictData = dictDataList.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
@@ -82,49 +67,99 @@ public class PollutionServiceImpl implements IPollutionService {
lineCountEvaluateParam.setEndTime(endDay); lineCountEvaluateParam.setEndTime(endDay);
//指标数据获取 //指标数据获取
Map<String, RMpPollutionDPO> harmonicVoltageList = getHarmonicVoltage(lineCountEvaluateParam, limitMap); Map<String, DataPollutionD> harmonicVoltageList = getHarmonicVoltage(lineCountEvaluateParam, limitMap);
Map<String, RMpPollutionDPO> harmonicCurrentList = getHarmonicCurrent(lineCountEvaluateParam, limitMap); Map<String, DataPollutionD> harmonicCurrentList = getHarmonicCurrent(lineCountEvaluateParam, limitMap);
Map<String, RMpPollutionDPO> frequencyDeviationList = getFrequencyDeviation(lineCountEvaluateParam, limitMap); Map<String, DataPollutionD> frequencyDeviationList = getFrequencyDeviation(lineCountEvaluateParam, limitMap);
Map<String, RMpPollutionDPO> voltageDeviationList = getVoltageDeviation(lineCountEvaluateParam, limitMap); Map<String, DataPollutionD> voltageDeviationList = getVoltageDeviation(lineCountEvaluateParam, limitMap);
Map<String, RMpPollutionDPO> threePhaseVoltageList = getThreePhaseVoltageUnbalance(lineCountEvaluateParam, limitMap); Map<String, DataPollutionD> threePhaseVoltageList = getThreePhaseVoltageUnbalance(lineCountEvaluateParam, limitMap);
Map<String, RMpPollutionDPO> negativeSequenceList = getNegativeSequenceCurrent(lineCountEvaluateParam, limitMap); Map<String, DataPollutionD> negativeSequenceList = getNegativeSequenceCurrent(lineCountEvaluateParam, limitMap);
Map<String, RMpPollutionDPO> interHarmonicVoltageList = getInterharmonicVoltage(lineCountEvaluateParam, limitMap); Map<String, DataPollutionD> interHarmonicVoltageList = getInterharmonicVoltage(lineCountEvaluateParam, limitMap);
Map<String, RMpPollutionDPO> voltageFlickerList = getVoltageFlicker(lineCountEvaluateParam, limitMap); Map<String, DataPollutionD> voltageFlickerList = getVoltageFlicker(lineCountEvaluateParam, limitMap);
pollutionList = processPollutionList(local,idList,dictData, harmonicVoltageList, harmonicCurrentList, frequencyDeviationList, voltageDeviationList, pollutionList = processPollutionList(local, idList, dictData, harmonicVoltageList, harmonicCurrentList, frequencyDeviationList, voltageDeviationList,
threePhaseVoltageList, negativeSequenceList, interHarmonicVoltageList, voltageFlickerList); threePhaseVoltageList, negativeSequenceList, interHarmonicVoltageList, voltageFlickerList);
//TODO 插入数据库 //TODO 插入数据库
if (CollUtil.isNotEmpty(pollutionList)) {
dataPollutionFeignClient.batchInsertion(pollutionList);
}
}
@Override
public void handleOrgDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
LocalDate local = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate());
QueryWrapper<DataPollutionD> queryWrapper = new QueryWrapper<>();
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
Collection<LineDevGetDTO> union = CollectionUtils.union(Optional.ofNullable(deptGetChildrenMoreDTO.getLineBaseList()).orElse(new ArrayList<>()),
Optional.ofNullable(deptGetChildrenMoreDTO.getPwMonitorIds()).orElse(new ArrayList<>()));
List<String> lineIds = union.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
}
}
@Override
public void handleOrgMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
}
@Override
public void handleOrgQtr(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
}
@Override
public void handleOrgYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
}
@Override
public void handleSubstationDay(CalculatedParam<String> calculatedParam) {
}
@Override
public void handleSubstationMonth(CalculatedParam<String> calculatedParam) {
}
@Override
public void handleSubstationQtr(CalculatedParam<String> calculatedParam) {
}
@Override
public void handleSubstationYear(CalculatedParam<String> calculatedParam) {
} }
private void assPollution(String lineId, LocalDate local, DictData dic, Map<String, DataPollutionD> map, List<DataPollutionD> result) {
private void assPollution(String lineId, LocalDate local, DictData dic, Map<String, RMpPollutionDPO> map,List<RMpPollutionDPO> result) { DataPollutionD tem;
if(map.containsKey(lineId)){ if (map.containsKey(lineId)) {
RMpPollutionDPO tem = map.get(lineId); tem = map.get(lineId);
tem.setPollutionType(dic.getId()); tem.setPollutionType(dic.getId());
tem.setDataDate(local); tem.setDataDate(local);
result.add(tem); } else {
}else{ tem = new DataPollutionD();
RMpPollutionDPO tem = new RMpPollutionDPO();
tem.setLineId(lineId); tem.setLineId(lineId);
tem.setPollutionType(dic.getId()); tem.setPollutionType(dic.getId());
tem.setDataDate(local); tem.setDataDate(local);
tem.setValue(0.0); tem.setValue(0.0);
result.add(tem);
} }
result.add(tem);
} }
/** /**
* 参数拼装处理 * 参数拼装处理
*/ */
private List<RMpPollutionDPO> processPollutionList(LocalDate local, List<String> lineIds, Map<String, DictData> dictData, private List<DataPollutionD> processPollutionList(LocalDate local, List<String> lineIds, Map<String, DictData> dictData,
Map<String, RMpPollutionDPO> harmonicVoltageMap, Map<String, RMpPollutionDPO> harmonicCurrentMap, Map<String, DataPollutionD> harmonicVoltageMap, Map<String, DataPollutionD> harmonicCurrentMap,
Map<String, RMpPollutionDPO> frequencyDeviationMap, Map<String, RMpPollutionDPO> voltageDeviationMap, Map<String, DataPollutionD> frequencyDeviationMap, Map<String, DataPollutionD> voltageDeviationMap,
Map<String, RMpPollutionDPO> threePhaseVoltageMap, Map<String, RMpPollutionDPO> negativeSequenceMap, Map<String, DataPollutionD> threePhaseVoltageMap, Map<String, DataPollutionD> negativeSequenceMap,
Map<String, RMpPollutionDPO> interharmonicVoltageMap, Map<String,RMpPollutionDPO> voltageFlickerMap) { Map<String, DataPollutionD> interharmonicVoltageMap, Map<String, DataPollutionD> voltageFlickerMap) {
List<RMpPollutionDPO> result = new ArrayList<>(); List<DataPollutionD> result = new ArrayList<>();
DictData dicVHarmonic = dictData.get("V_Harmonic"); DictData dicVHarmonic = dictData.get("V_Harmonic");
DictData dicIHarmonic = dictData.get("I_All"); DictData dicIHarmonic = dictData.get("I_All");
DictData I_Neg = dictData.get("I_Neg"); DictData I_Neg = dictData.get("I_Neg");
@@ -134,14 +169,14 @@ public class PollutionServiceImpl implements IPollutionService {
DictData Plt = dictData.get("Plt"); DictData Plt = dictData.get("Plt");
DictData Freq_Dev = dictData.get("Freq_Dev"); DictData Freq_Dev = dictData.get("Freq_Dev");
for (String lineId : lineIds) { for (String lineId : lineIds) {
assPollution(lineId,local,dicVHarmonic,harmonicVoltageMap,result); assPollution(lineId, local, dicVHarmonic, harmonicVoltageMap, result);
assPollution(lineId,local,dicIHarmonic,harmonicCurrentMap,result); assPollution(lineId, local, dicIHarmonic, harmonicCurrentMap, result);
assPollution(lineId,local,I_Neg,negativeSequenceMap,result); assPollution(lineId, local, I_Neg, negativeSequenceMap, result);
assPollution(lineId,local,Plt,voltageFlickerMap,result); assPollution(lineId, local, Plt, voltageFlickerMap, result);
assPollution(lineId,local,V_Dev,voltageDeviationMap,result); assPollution(lineId, local, V_Dev, voltageDeviationMap, result);
assPollution(lineId,local,V_Unbalance,threePhaseVoltageMap,result); assPollution(lineId, local, V_Unbalance, threePhaseVoltageMap, result);
assPollution(lineId,local,Freq_Dev,frequencyDeviationMap,result); assPollution(lineId, local, Freq_Dev, frequencyDeviationMap, result);
assPollution(lineId,local,V_Inharm,interharmonicVoltageMap,result); assPollution(lineId, local, V_Inharm, interharmonicVoltageMap, result);
} }
return result; return result;
} }
@@ -150,64 +185,64 @@ public class PollutionServiceImpl implements IPollutionService {
/** /**
* 谐波电压取监测点最新的A、B、C三相数据再取电压总谐波畸变率、各次谐波电压含有率2~25次中的最大值作为结果 * 谐波电压取监测点最新的A、B、C三相数据再取电压总谐波畸变率、各次谐波电压含有率2~25次中的最大值作为结果
*/ */
private Map<String, RMpPollutionDPO> getHarmonicVoltage(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) { private Map<String, DataPollutionD> getHarmonicVoltage(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) {
List<RMpPollutionDPO> list = new ArrayList<>(); List<DataPollutionD> list = new ArrayList<>();
lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList())); lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList()));
lineCountEvaluateParam.setPhasicType(Stream.of("A", "B", "C").collect(Collectors.toList())); lineCountEvaluateParam.setPhasicType(Stream.of("A", "B", "C").collect(Collectors.toList()));
Map<String, RMpPollutionDPO> threePhase = getThreePhaseData(lineCountEvaluateParam, limitMap); Map<String, DataPollutionD> threePhase = getThreePhaseData(lineCountEvaluateParam, limitMap);
Map<String, RMpPollutionDPO> distortionRate = getDistortionRateData(lineCountEvaluateParam, limitMap); Map<String, DataPollutionD> distortionRate = getDistortionRateData(lineCountEvaluateParam, limitMap);
for (String key : threePhase.keySet()) { for (String key : threePhase.keySet()) {
list.add(threePhase.get(key)); list.add(threePhase.get(key));
} }
for (String key : distortionRate.keySet()) { for (String key : distortionRate.keySet()) {
list.add(distortionRate.get(key)); list.add(distortionRate.get(key));
} }
Comparator<RMpPollutionDPO> comparator = Comparator.comparing(RMpPollutionDPO::getValue); Comparator<DataPollutionD> comparator = Comparator.comparing(DataPollutionD::getValue);
Map<String, Optional<RMpPollutionDPO>> outMap = list.stream().collect(Collectors.groupingBy(RMpPollutionDPO::getLineId, Collectors.reducing(BinaryOperator.maxBy(comparator)))); Map<String, Optional<DataPollutionD>> outMap = list.stream().collect(Collectors.groupingBy(DataPollutionD::getLineId, Collectors.reducing(BinaryOperator.maxBy(comparator))));
return process(outMap); return process(outMap);
} }
/** /**
* 出参处理 * 出参处理
*/ */
private Map<String, RMpPollutionDPO> process(Map<String, Optional<RMpPollutionDPO>> outMap) { private Map<String, DataPollutionD> process(Map<String, Optional<DataPollutionD>> outMap) {
Map<String, RMpPollutionDPO> map = new HashMap<>(); Map<String, DataPollutionD> map = new HashMap<>();
for (String key : outMap.keySet()) { for (String key : outMap.keySet()) {
map.put(key, outMap.get(key).get()); map.put(key, outMap.get(key).get());
} }
return map; return map;
} }
private Map<String, RMpPollutionDPO> getThreePhaseData(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) { private Map<String, DataPollutionD> getThreePhaseData(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) {
List<DataVDto> threePhaseList = dataVFeignClient.getDataV(lineCountEvaluateParam).getData(); List<DataVDto> threePhaseList = dataVFeignClient.getDataV(lineCountEvaluateParam).getData();
Map<String, List<DataVDto>> dataVMap = threePhaseList.stream().collect(Collectors.groupingBy(DataVDto::getLineId)); Map<String, List<DataVDto>> dataVMap = threePhaseList.stream().collect(Collectors.groupingBy(DataVDto::getLineId));
Map<String, RMpPollutionDPO> map = new HashMap<>(); Map<String, DataPollutionD> map = new HashMap<>();
dataVMap.forEach((lineId, vList) -> { dataVMap.forEach((lineId, vList) -> {
RMpPollutionDPO RMpPollutionDPO = new RMpPollutionDPO(); DataPollutionD dataPollutionD = new DataPollutionD();
if (limitMap.containsKey(lineId)) { if (limitMap.containsKey(lineId)) {
Overlimit overlimit = limitMap.get(lineId); Overlimit overlimit = limitMap.get(lineId);
double val = vList.stream().mapToDouble(DataVDto::getVThd).max().getAsDouble(); double val = vList.stream().mapToDouble(DataVDto::getVThd).max().getAsDouble();
double vUnbalance = val / overlimit.getUaberrance(); double vUnbalance = val / overlimit.getUaberrance();
RMpPollutionDPO.setLineId(lineId); dataPollutionD.setLineId(lineId);
RMpPollutionDPO.setValue(vUnbalance); dataPollutionD.setValue(vUnbalance);
map.put(lineId, RMpPollutionDPO); map.put(lineId, dataPollutionD);
} }
}); });
return map; return map;
} }
private Map<String, RMpPollutionDPO> getDistortionRateData(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) { private Map<String, DataPollutionD> getDistortionRateData(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) {
Map<String, RMpPollutionDPO> mapResult = new HashMap<>(); Map<String, DataPollutionD> mapResult = new HashMap<>();
List<DataHarmDto> distortionRateList = dataHarmRateVFeignClient.getHarmRateVData(lineCountEvaluateParam).getData(); List<DataHarmDto> distortionRateList = dataHarmRateVFeignClient.getHarmRateVData(lineCountEvaluateParam).getData();
Map<String, List<DataHarmDto>> harmDataMap = distortionRateList.stream().collect(Collectors.groupingBy(DataHarmDto::getLineId)); Map<String, List<DataHarmDto>> harmDataMap = distortionRateList.stream().collect(Collectors.groupingBy(DataHarmDto::getLineId));
harmDataMap.forEach((lineId, vList) -> { harmDataMap.forEach((lineId, vList) -> {
Overlimit overlimit = limitMap.get(lineId); Overlimit overlimit = limitMap.get(lineId);
List<RMpPollutionDPO> temList = new ArrayList<>(); List<DataPollutionD> temList = new ArrayList<>();
for (DataHarmDto dayHarmrateV : vList) { for (DataHarmDto dayHarmrateV : vList) {
RMpPollutionDPO tem = new RMpPollutionDPO(); DataPollutionD tem = new DataPollutionD();
double v2 = dayHarmrateV.getV2() / overlimit.getUharm2(); double v2 = dayHarmrateV.getV2() / overlimit.getUharm2();
double v3 = dayHarmrateV.getV3() / overlimit.getUharm3(); double v3 = dayHarmrateV.getV3() / overlimit.getUharm3();
double v4 = dayHarmrateV.getV4() / overlimit.getUharm4(); double v4 = dayHarmrateV.getV4() / overlimit.getUharm4();
@@ -238,10 +273,10 @@ public class PollutionServiceImpl implements IPollutionService {
tem.setValue(result); tem.setValue(result);
temList.add(tem); temList.add(tem);
} }
RMpPollutionDPO rMpPollutionDPO = new RMpPollutionDPO(); DataPollutionD dataPollutionD = new DataPollutionD();
rMpPollutionDPO.setLineId(lineId); dataPollutionD.setLineId(lineId);
rMpPollutionDPO.setValue(temList.stream().mapToDouble(RMpPollutionDPO::getValue).max().getAsDouble()); dataPollutionD.setValue(temList.stream().mapToDouble(DataPollutionD::getValue).max().getAsDouble());
mapResult.put(lineId, rMpPollutionDPO); mapResult.put(lineId, dataPollutionD);
}); });
return mapResult; return mapResult;
@@ -250,8 +285,8 @@ public class PollutionServiceImpl implements IPollutionService {
/** /**
* 谐波电流各次谐波电流2~25次取各监测点最新的A、B、C三相数据。 * 谐波电流各次谐波电流2~25次取各监测点最新的A、B、C三相数据。
*/ */
private Map<String, RMpPollutionDPO> getHarmonicCurrent(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) { private Map<String, DataPollutionD> getHarmonicCurrent(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) {
Map<String, RMpPollutionDPO> map = new HashMap(); Map<String, DataPollutionD> map = new HashMap();
lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList())); lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList()));
lineCountEvaluateParam.setPhasicType(Stream.of("A", "B", "C").collect(Collectors.toList())); lineCountEvaluateParam.setPhasicType(Stream.of("A", "B", "C").collect(Collectors.toList()));
List<DataIDto> list = dataIFeignClient.getDataI(lineCountEvaluateParam).getData(); List<DataIDto> list = dataIFeignClient.getDataI(lineCountEvaluateParam).getData();
@@ -259,7 +294,7 @@ public class PollutionServiceImpl implements IPollutionService {
dataMap.forEach((lineId, valList) -> { dataMap.forEach((lineId, valList) -> {
if (limitMap.containsKey(lineId)) { if (limitMap.containsKey(lineId)) {
Overlimit overlimit = limitMap.get(lineId); Overlimit overlimit = limitMap.get(lineId);
List<RMpPollutionDPO> temList = new ArrayList<>(); List<DataPollutionD> temList = new ArrayList<>();
for (DataIDto dayI : valList) { for (DataIDto dayI : valList) {
double v2 = dayI.getI2() / overlimit.getIharm2(); double v2 = dayI.getI2() / overlimit.getIharm2();
double v3 = dayI.getI3() / overlimit.getIharm3(); double v3 = dayI.getI3() / overlimit.getIharm3();
@@ -287,16 +322,16 @@ public class PollutionServiceImpl implements IPollutionService {
double v25 = dayI.getI25() / overlimit.getIharm25(); double v25 = dayI.getI25() / overlimit.getIharm25();
List<Double> data = Stream.of(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25).collect(Collectors.toList()); List<Double> data = Stream.of(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25).collect(Collectors.toList());
double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get();
RMpPollutionDPO RMpPollutionDPO = new RMpPollutionDPO(); DataPollutionD dataPollutionD = new DataPollutionD();
RMpPollutionDPO.setLineId(dayI.getLineId()); dataPollutionD.setLineId(dayI.getLineId());
RMpPollutionDPO.setValue(result); dataPollutionD.setValue(result);
temList.add(RMpPollutionDPO); temList.add(dataPollutionD);
} }
double val = temList.stream().mapToDouble(RMpPollutionDPO::getValue).max().getAsDouble(); double val = temList.stream().mapToDouble(DataPollutionD::getValue).max().getAsDouble();
RMpPollutionDPO RMpPollutionDPO = new RMpPollutionDPO(); DataPollutionD dataPollutionD = new DataPollutionD();
RMpPollutionDPO.setLineId(lineId); dataPollutionD.setLineId(lineId);
RMpPollutionDPO.setValue(val); dataPollutionD.setValue(val);
map.put(lineId, RMpPollutionDPO); map.put(lineId, dataPollutionD);
} }
}); });
return map; return map;
@@ -305,8 +340,8 @@ public class PollutionServiceImpl implements IPollutionService {
/** /**
* 频率偏差各监测点最新的T相数据取频率上下偏差的绝对值中的最大值。 * 频率偏差各监测点最新的T相数据取频率上下偏差的绝对值中的最大值。
*/ */
private Map<String, RMpPollutionDPO> getFrequencyDeviation(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) { private Map<String, DataPollutionD> getFrequencyDeviation(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) {
Map<String, RMpPollutionDPO> lineData = new HashMap<>(); Map<String, DataPollutionD> lineData = new HashMap<>();
lineCountEvaluateParam.setColumnName("freq_dev,line_id"); lineCountEvaluateParam.setColumnName("freq_dev,line_id");
lineCountEvaluateParam.setValueType(Stream.of("MAX").collect(Collectors.toList())); lineCountEvaluateParam.setValueType(Stream.of("MAX").collect(Collectors.toList()));
@@ -319,10 +354,10 @@ public class PollutionServiceImpl implements IPollutionService {
Overlimit overlimit = limitMap.get(lineId); Overlimit overlimit = limitMap.get(lineId);
double dayV = valList.stream().map(it -> Math.abs(it.getFreqDev())).max(Comparator.comparing(Double::doubleValue)).get(); double dayV = valList.stream().map(it -> Math.abs(it.getFreqDev())).max(Comparator.comparing(Double::doubleValue)).get();
double freqDev = dayV / overlimit.getFreqDev(); double freqDev = dayV / overlimit.getFreqDev();
RMpPollutionDPO RMpPollutionDPO = new RMpPollutionDPO(); DataPollutionD dataPollutionD = new DataPollutionD();
RMpPollutionDPO.setLineId(lineId); dataPollutionD.setLineId(lineId);
RMpPollutionDPO.setValue(freqDev); dataPollutionD.setValue(freqDev);
lineData.put(lineId, RMpPollutionDPO); lineData.put(lineId, dataPollutionD);
} }
}); });
return lineData; return lineData;
@@ -331,8 +366,8 @@ public class PollutionServiceImpl implements IPollutionService {
/** /**
* 电压偏差各监测点最新的A、B、C三相数据取电压上下偏差的绝对值中的最大值。 * 电压偏差各监测点最新的A、B、C三相数据取电压上下偏差的绝对值中的最大值。
*/ */
private Map<String, RMpPollutionDPO> getVoltageDeviation(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) { private Map<String, DataPollutionD> getVoltageDeviation(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) {
Map<String, RMpPollutionDPO> lineData = new HashMap<>(); Map<String, DataPollutionD> lineData = new HashMap<>();
lineCountEvaluateParam.setColumnName("vu_dev,line_id"); lineCountEvaluateParam.setColumnName("vu_dev,line_id");
lineCountEvaluateParam.setValueType(Stream.of("MAX").collect(Collectors.toList())); lineCountEvaluateParam.setValueType(Stream.of("MAX").collect(Collectors.toList()));
lineCountEvaluateParam.setPhasicType(Stream.of("A", "B", "C").collect(Collectors.toList())); lineCountEvaluateParam.setPhasicType(Stream.of("A", "B", "C").collect(Collectors.toList()));
@@ -344,10 +379,10 @@ public class PollutionServiceImpl implements IPollutionService {
Overlimit overlimit = limitMap.get(lineId); Overlimit overlimit = limitMap.get(lineId);
double dayV = valList.stream().map(it -> Math.abs(it.getVuDev())).max(Comparator.comparing(Double::doubleValue)).get(); double dayV = valList.stream().map(it -> Math.abs(it.getVuDev())).max(Comparator.comparing(Double::doubleValue)).get();
double vDev = dayV / overlimit.getUvoltageDev(); double vDev = dayV / overlimit.getUvoltageDev();
RMpPollutionDPO RMpPollutionDPO = new RMpPollutionDPO(); DataPollutionD dataPollutionD = new DataPollutionD();
RMpPollutionDPO.setLineId(lineId); dataPollutionD.setLineId(lineId);
RMpPollutionDPO.setValue(vDev); dataPollutionD.setValue(vDev);
lineData.put(lineId, RMpPollutionDPO); lineData.put(lineId, dataPollutionD);
} }
}); });
return lineData; return lineData;
@@ -356,8 +391,8 @@ public class PollutionServiceImpl implements IPollutionService {
/** /**
* 三相电压不平衡度各监测点最新的T相数据。 * 三相电压不平衡度各监测点最新的T相数据。
*/ */
private Map<String, RMpPollutionDPO> getThreePhaseVoltageUnbalance(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) { private Map<String, DataPollutionD> getThreePhaseVoltageUnbalance(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) {
Map<String, RMpPollutionDPO> lineData = new HashMap<>(); Map<String, DataPollutionD> lineData = new HashMap<>();
lineCountEvaluateParam.setColumnName("v_unbalance,line_id"); lineCountEvaluateParam.setColumnName("v_unbalance,line_id");
lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList())); lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList()));
lineCountEvaluateParam.setPhasicType(Stream.of("T").collect(Collectors.toList())); lineCountEvaluateParam.setPhasicType(Stream.of("T").collect(Collectors.toList()));
@@ -369,10 +404,10 @@ public class PollutionServiceImpl implements IPollutionService {
Overlimit overlimit = limitMap.get(lineId); Overlimit overlimit = limitMap.get(lineId);
double dayV = valList.stream().mapToDouble(DataVDto::getVUnbalance).max().getAsDouble(); double dayV = valList.stream().mapToDouble(DataVDto::getVUnbalance).max().getAsDouble();
double vUb = dayV / overlimit.getUbalance(); double vUb = dayV / overlimit.getUbalance();
RMpPollutionDPO RMpPollutionDPO = new RMpPollutionDPO(); DataPollutionD dataPollutionD = new DataPollutionD();
RMpPollutionDPO.setLineId(lineId); dataPollutionD.setLineId(lineId);
RMpPollutionDPO.setValue(vUb); dataPollutionD.setValue(vUb);
lineData.put(lineId, RMpPollutionDPO); lineData.put(lineId, dataPollutionD);
} }
}); });
return lineData; return lineData;
@@ -381,8 +416,8 @@ public class PollutionServiceImpl implements IPollutionService {
/** /**
* 负序电流各监测点最新的T相数据。 * 负序电流各监测点最新的T相数据。
*/ */
private Map<String, RMpPollutionDPO> getNegativeSequenceCurrent(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) { private Map<String, DataPollutionD> getNegativeSequenceCurrent(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) {
Map<String, RMpPollutionDPO> lineData = new HashMap<>(); Map<String, DataPollutionD> lineData = new HashMap<>();
lineCountEvaluateParam.setColumnName("i_neg,line_id"); lineCountEvaluateParam.setColumnName("i_neg,line_id");
lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList())); lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList()));
lineCountEvaluateParam.setPhasicType(Stream.of("T").collect(Collectors.toList())); lineCountEvaluateParam.setPhasicType(Stream.of("T").collect(Collectors.toList()));
@@ -393,10 +428,10 @@ public class PollutionServiceImpl implements IPollutionService {
Overlimit overlimit = limitMap.get(lineId); Overlimit overlimit = limitMap.get(lineId);
double dayI = valList.stream().mapToDouble(DataIDto::getINeg).max().getAsDouble(); double dayI = valList.stream().mapToDouble(DataIDto::getINeg).max().getAsDouble();
double iNeg = dayI / overlimit.getINeg(); double iNeg = dayI / overlimit.getINeg();
RMpPollutionDPO RMpPollutionDPO = new RMpPollutionDPO(); DataPollutionD dataPollutionD = new DataPollutionD();
RMpPollutionDPO.setLineId(lineId); dataPollutionD.setLineId(lineId);
RMpPollutionDPO.setValue(iNeg); dataPollutionD.setValue(iNeg);
lineData.put(lineId, RMpPollutionDPO); lineData.put(lineId, dataPollutionD);
} }
}); });
return lineData; return lineData;
@@ -405,8 +440,8 @@ public class PollutionServiceImpl implements IPollutionService {
/** /**
* 间谐波电压含有率各监测点最新的A、B、C三相数据。 * 间谐波电压含有率各监测点最新的A、B、C三相数据。
*/ */
private Map<String, RMpPollutionDPO> getInterharmonicVoltage(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) { private Map<String, DataPollutionD> getInterharmonicVoltage(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) {
Map<String, RMpPollutionDPO> lineData = new HashMap<>(); Map<String, DataPollutionD> lineData = new HashMap<>();
lineCountEvaluateParam.setPhasicType(Stream.of("A", "B", "C").collect(Collectors.toList())); lineCountEvaluateParam.setPhasicType(Stream.of("A", "B", "C").collect(Collectors.toList()));
lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList())); lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList()));
List<DataHarmDto> dataHarmDtoList = dataHarmRateVFeignClient.getHarmRateVData(lineCountEvaluateParam).getData(); List<DataHarmDto> dataHarmDtoList = dataHarmRateVFeignClient.getHarmRateVData(lineCountEvaluateParam).getData();
@@ -415,7 +450,7 @@ public class PollutionServiceImpl implements IPollutionService {
dataMap.forEach((lineId, valList) -> { dataMap.forEach((lineId, valList) -> {
if (limitMap.containsKey(lineId)) { if (limitMap.containsKey(lineId)) {
Overlimit overlimit = limitMap.get(lineId); Overlimit overlimit = limitMap.get(lineId);
List<RMpPollutionDPO> temList = new ArrayList<>(); List<DataPollutionD> temList = new ArrayList<>();
for (DataHarmDto dayInharmV : valList) { for (DataHarmDto dayInharmV : valList) {
double v1 = Math.abs(dayInharmV.getV1() / overlimit.getInuharm1()); double v1 = Math.abs(dayInharmV.getV1() / overlimit.getInuharm1());
double v2 = Math.abs(dayInharmV.getV2() / overlimit.getInuharm2()); double v2 = Math.abs(dayInharmV.getV2() / overlimit.getInuharm2());
@@ -434,17 +469,17 @@ public class PollutionServiceImpl implements IPollutionService {
double v15 = Math.abs(dayInharmV.getV15() / overlimit.getInuharm15()); double v15 = Math.abs(dayInharmV.getV15() / overlimit.getInuharm15());
double v16 = Math.abs(dayInharmV.getV16() / overlimit.getInuharm16()); double v16 = Math.abs(dayInharmV.getV16() / overlimit.getInuharm16());
double data = Stream.of(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16).max(Comparator.comparing(Double::doubleValue)).get(); double data = Stream.of(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16).max(Comparator.comparing(Double::doubleValue)).get();
RMpPollutionDPO RMpPollutionDPO = new RMpPollutionDPO(); DataPollutionD dataPollutionD = new DataPollutionD();
RMpPollutionDPO.setLineId(lineId); dataPollutionD.setLineId(lineId);
RMpPollutionDPO.setValue(data); dataPollutionD.setValue(data);
temList.add(RMpPollutionDPO); temList.add(dataPollutionD);
} }
double val = temList.stream().map(RMpPollutionDPO::getValue).max(Comparator.comparing(Double::doubleValue)).get(); double val = temList.stream().map(DataPollutionD::getValue).max(Comparator.comparing(Double::doubleValue)).get();
RMpPollutionDPO RMpPollutionDPO = new RMpPollutionDPO(); DataPollutionD dataPollutionD = new DataPollutionD();
RMpPollutionDPO.setLineId(lineId); dataPollutionD.setLineId(lineId);
RMpPollutionDPO.setValue(val); dataPollutionD.setValue(val);
lineData.put(lineId, RMpPollutionDPO); lineData.put(lineId, dataPollutionD);
} }
}); });
return lineData; return lineData;
@@ -453,8 +488,8 @@ public class PollutionServiceImpl implements IPollutionService {
/** /**
* 长时电压闪变各监测点最新的A、B、C三相数据。 * 长时电压闪变各监测点最新的A、B、C三相数据。
*/ */
private Map<String, RMpPollutionDPO> getVoltageFlicker(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) { private Map<String, DataPollutionD> getVoltageFlicker(LineCountEvaluateParam lineCountEvaluateParam, Map<String, Overlimit> limitMap) {
Map<String, RMpPollutionDPO> lineData = new HashMap<>(); Map<String, DataPollutionD> lineData = new HashMap<>();
lineCountEvaluateParam.setColumnName("plt"); lineCountEvaluateParam.setColumnName("plt");
lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList())); lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList()));
@@ -467,10 +502,10 @@ public class PollutionServiceImpl implements IPollutionService {
Overlimit overlimit = limitMap.get(lineId); Overlimit overlimit = limitMap.get(lineId);
double dayPlt = valList.stream().mapToDouble(DataPltDto::getPlt).max().getAsDouble(); double dayPlt = valList.stream().mapToDouble(DataPltDto::getPlt).max().getAsDouble();
double plt = dayPlt / overlimit.getFlicker(); double plt = dayPlt / overlimit.getFlicker();
RMpPollutionDPO RMpPollutionDPO = new RMpPollutionDPO(); DataPollutionD dataPollutionD = new DataPollutionD();
RMpPollutionDPO.setLineId(lineId); dataPollutionD.setLineId(lineId);
RMpPollutionDPO.setValue(plt); dataPollutionD.setValue(plt);
lineData.put(lineId, RMpPollutionDPO); lineData.put(lineId, dataPollutionD);
} }
}); });
return lineData; return lineData;

View File

@@ -0,0 +1,30 @@
package com.njcn.dataProcess.api;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.fallback.DataComAssFeignClientFallbackFactory;
import com.njcn.dataProcess.api.fallback.DataIFeignClientFallbackFactory;
import com.njcn.dataProcess.dto.DataIDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataComassesDPO;
import com.njcn.dataProcess.pojo.dto.DataIDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* @author denghuajun
* @version 1.0.0
* @date 2022年01月05日 15:11
*/
@FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/dataComAss", fallbackFactory = DataComAssFeignClientFallbackFactory.class, contextId = "dataComAss")
public interface DataComAssFeignClient {
@PostMapping("/batchInsertion")
HttpResult<String> batchInsertion(@RequestBody List<DataComassesDPO> dataIDTOList);
}

View File

@@ -0,0 +1,25 @@
package com.njcn.dataProcess.api;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.fallback.DataPollutionFeignClientFallbackFactory;
import com.njcn.dataProcess.pojo.dto.DataPollutionD;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* @author denghuajun
* @version 1.0.0
* @date 2022年01月05日 15:11
*/
@FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/dataPollution", fallbackFactory = DataPollutionFeignClientFallbackFactory.class, contextId = "dataPollution")
public interface DataPollutionFeignClient {
@PostMapping("/batchInsertion")
HttpResult<String> batchInsertion(@RequestBody List<DataPollutionD> dataIDTOList);
}

View File

@@ -0,0 +1,49 @@
package com.njcn.dataProcess.api.fallback;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataComAssFeignClient;
import com.njcn.dataProcess.pojo.dto.DataComassesDPO;
import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 10:19
*/
@Slf4j
@Component
public class DataComAssFeignClientFallbackFactory implements FallbackFactory<DataComAssFeignClient> {
/**
* 输出远程请求接口异常日志
* @param cause RPC请求异常
*/
@Override
public DataComAssFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if(cause.getCause() instanceof BusinessException){
BusinessException businessException = (BusinessException) cause.getCause();
exceptionEnum = DataProcessingEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new DataComAssFeignClient() {
@Override
public HttpResult<String> batchInsertion(List<DataComassesDPO> dataFlucDTOList) {
log.error("{}异常,降级处理,异常为:{}","批量插入数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,58 @@
package com.njcn.dataProcess.api.fallback;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataPollutionFeignClient;
import com.njcn.dataProcess.api.DataVFeignClient;
import com.njcn.dataProcess.dto.DataVDTO;
import com.njcn.dataProcess.dto.MeasurementCountDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataPollutionD;
import com.njcn.dataProcess.pojo.dto.DataVCvtDto;
import com.njcn.dataProcess.pojo.dto.DataVDto;
import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author denghuajun
* @version 1.0.0
* @date 2022年01月05日 15:08
*/
@Slf4j
@Component
public class DataPollutionFeignClientFallbackFactory implements FallbackFactory<DataPollutionFeignClient> {
/**
* 输出远程请求接口异常日志
* @param cause RPC请求异常
*/
@Override
public DataPollutionFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if(cause.getCause() instanceof BusinessException){
BusinessException businessException = (BusinessException) cause.getCause();
exceptionEnum = DataProcessingEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new DataPollutionFeignClient() {
@Override
public HttpResult<String> batchInsertion(List<DataPollutionD> dataVDTOList) {
log.error("{}异常,降级处理,异常为:{}","批量插入数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,40 @@
package com.njcn.dataProcess.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 单位污区图统计日表
* @Author: wr
* @Date: 2025/3/19 14:13
*/
@Data
public class DataPollutionD implements Serializable {
/**
* 单位id
*/
@ApiModelProperty(value = "监测点")
private String lineId;
/**
* 时间
*/
@ApiModelProperty(value = "时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@ApiModelProperty(value = "污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@ApiModelProperty(value = "统计值")
private Double value;
}

View File

@@ -0,0 +1,41 @@
package com.njcn.dataProcess.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 单位污区图统计日表
* @Author: wr
* @Date: 2025/3/19 14:15
*/
@Data
public class DataPollutionOrgD implements Serializable {
/**
* 单位id
*/
@ApiModelProperty(value="单位id")
private String orgId;
/**
* 时间
*/
@ApiModelProperty(value="时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@ApiModelProperty(value="污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@ApiModelProperty(value="统计值")
private Double value;
}

View File

@@ -0,0 +1,40 @@
package com.njcn.dataProcess.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 单位污区图统计月表
* @Author: wr
* @Date: 2025/3/19 14:15
*/
@Data
public class DataPollutionOrgM implements Serializable {
/**
* 单位id
*/
@ApiModelProperty(value="单位id")
private String orgId;
/**
* 时间
*/
@ApiModelProperty(value="时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@ApiModelProperty(value="污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@ApiModelProperty(value="统计值")
private Double value;
}

View File

@@ -0,0 +1,40 @@
package com.njcn.dataProcess.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 单位污区图统计季表
* @Author: wr
* @Date: 2025/3/19 14:15
*/
@Data
public class DataPollutionOrgQ implements Serializable {
/**
* 单位id
*/
@ApiModelProperty(value="单位id")
private String orgId;
/**
* 时间
*/
@ApiModelProperty(value="时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@ApiModelProperty(value="污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@ApiModelProperty(value="统计值")
private Double value;
}

View File

@@ -0,0 +1,40 @@
package com.njcn.dataProcess.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 单位污区图统计年表
* @Author: wr
* @Date: 2025/3/19 14:15
*/
@Data
public class DataPollutionOrgY implements Serializable {
/**
* 单位id
*/
@ApiModelProperty(value="单位id")
private String orgId;
/**
* 时间
*/
@ApiModelProperty(value="时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@ApiModelProperty(value="污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@ApiModelProperty(value="统计值")
private Double value;
}

View File

@@ -0,0 +1,40 @@
package com.njcn.dataProcess.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 变电站污区图统计日表
* @Author: wr
* @Date: 2025/3/19 14:16
*/
@Data
public class DataPollutionSubstationD implements Serializable {
/**
* 变电站id
*/
@ApiModelProperty(value = "变电站id")
private String substationId;
/**
* 时间
*/
@ApiModelProperty(value = "时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@ApiModelProperty(value = "污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@ApiModelProperty(value = "统计值")
private Double value;
}

View File

@@ -0,0 +1,40 @@
package com.njcn.dataProcess.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 变电站污区图统计月表
* @Author: wr
* @Date: 2025/3/19 14:16
*/
@Data
public class DataPollutionSubstationM implements Serializable {
/**
* 变电站id
*/
@ApiModelProperty(value = "变电站id")
private String substationId;
/**
* 时间
*/
@ApiModelProperty(value = "时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@ApiModelProperty(value = "污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@ApiModelProperty(value = "统计值")
private Double value;
}

View File

@@ -0,0 +1,40 @@
package com.njcn.dataProcess.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 变电站污区图统计季表
* @Author: wr
* @Date: 2025/3/19 14:16
*/
@Data
public class DataPollutionSubstationQ implements Serializable {
/**
* 变电站id
*/
@ApiModelProperty(value="变电站id")
private String substationId;
/**
* 时间
*/
@ApiModelProperty(value="时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@ApiModelProperty(value="污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@ApiModelProperty(value="统计值")
private Double value;
}

View File

@@ -0,0 +1,40 @@
package com.njcn.dataProcess.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 变电站污区图统计年表
* @Author: wr
* @Date: 2025/3/19 14:16
*/
@Data
public class DataPollutionSubstationY implements Serializable {
/**
* 变电站id
*/
@ApiModelProperty(value="变电站id")
private String substationId;
/**
* 时间
*/
@ApiModelProperty(value="时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@ApiModelProperty(value="污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@ApiModelProperty(value="统计值")
private Double value;
}

View File

@@ -1,23 +1,28 @@
package com.njcn.dataProcess.po.relation; package com.njcn.dataProcess.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate; import java.time.LocalDate;
/** /**
* @Author: cdf * @Description: 单位污区图统计日表
* @CreateTime: 2025-03-19 * @Author: wr
* @Description: 监测点污区实体 * @Date: 2025/3/19 14:13
*/ */
@Data @Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "r_mp_pollution_d") @TableName(value = "r_mp_pollution_d")
public class RMpPollutionDPO implements Serializable { public class RMpPollutionD implements Serializable {
private static final long serialVersionUID = 1L; /**
* 单位id
*/
@TableField(value = "line_id") @TableField(value = "line_id")
@ApiModelProperty(value = "监测点") @ApiModelProperty(value = "监测点")
private String lineId; private String lineId;
@@ -43,5 +48,5 @@ public class RMpPollutionDPO implements Serializable {
@ApiModelProperty(value = "统计值") @ApiModelProperty(value = "统计值")
private Double value; private Double value;
private static final long serialVersionUID = 1L;
} }

View File

@@ -25,427 +25,427 @@ public class RStatLimitQualifiedD implements Serializable {
@MppMultiId @MppMultiId
@TableField(value = "time_id") @TableField(value = "time_id")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate time; private String time;
/** /**
* 闪变越限次数 * 闪变越限次数
*/ */
@TableField(value = "flicker_overtime") @TableField(value = "flicker_overtime")
private Integer flickerOvertime; private Double flickerOvertime;
/** /**
* 频率偏差越限次数 * 频率偏差越限次数
*/ */
@TableField(value = "freq_dev_overtime") @TableField(value = "freq_dev_overtime")
private Integer freqDevOvertime; private Double freqDevOvertime;
/** /**
* 电压偏差越限次数 * 电压偏差越限次数
*/ */
@TableField(value = "voltage_dev_overtime") @TableField(value = "voltage_dev_overtime")
private Integer voltageDevOvertime; private Double voltageDevOvertime;
/** /**
* 三相电压不平衡度越限次数 * 三相电压不平衡度越限次数
*/ */
@TableField(value = "ubalance_overtime") @TableField(value = "ubalance_overtime")
private Integer ubalanceOvertime; private Double ubalanceOvertime;
/** /**
* 电压谐波畸变率越限次数 * 电压谐波畸变率越限次数
*/ */
@TableField(value = "uaberrance_overtime") @TableField(value = "uaberrance_overtime")
private Integer uaberranceOvertime; private Double uaberranceOvertime;
/** /**
* 负序电流限值次数 * 负序电流限值次数
*/ */
@TableField(value = "i_neg_overtime") @TableField(value = "i_neg_overtime")
private Integer iNegOvertime; private Double iNegOvertime;
/** /**
* 2次电压谐波含有率越限次数 * 2次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_2_overtime") @TableField(value = "uharm_2_overtime")
private Integer uharm2Overtime; private Double uharm2Overtime;
/** /**
* 3次电压谐波含有率越限次数 * 3次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_3_overtime") @TableField(value = "uharm_3_overtime")
private Integer uharm3Overtime; private Double uharm3Overtime;
/** /**
* 4次电压谐波含有率越限次数 * 4次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_4_overtime") @TableField(value = "uharm_4_overtime")
private Integer uharm4Overtime; private Double uharm4Overtime;
/** /**
* 5次电压谐波含有率越限次数 * 5次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_5_overtime") @TableField(value = "uharm_5_overtime")
private Integer uharm5Overtime; private Double uharm5Overtime;
/** /**
* 6次电压谐波含有率越限次数 * 6次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_6_overtime") @TableField(value = "uharm_6_overtime")
private Integer uharm6Overtime; private Double uharm6Overtime;
/** /**
* 7次电压谐波含有率越限次数 * 7次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_7_overtime") @TableField(value = "uharm_7_overtime")
private Integer uharm7Overtime; private Double uharm7Overtime;
/** /**
* 8次电压谐波含有率越限次数 * 8次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_8_overtime") @TableField(value = "uharm_8_overtime")
private Integer uharm8Overtime; private Double uharm8Overtime;
/** /**
* 9次电压谐波含有率越限次数 * 9次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_9_overtime") @TableField(value = "uharm_9_overtime")
private Integer uharm9Overtime; private Double uharm9Overtime;
/** /**
* 10次电压谐波含有率越限次数 * 10次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_10_overtime") @TableField(value = "uharm_10_overtime")
private Integer uharm10Overtime; private Double uharm10Overtime;
/** /**
* 11次电压谐波含有率越限次数 * 11次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_11_overtime") @TableField(value = "uharm_11_overtime")
private Integer uharm11Overtime; private Double uharm11Overtime;
/** /**
* 12次电压谐波含有率越限次数 * 12次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_12_overtime") @TableField(value = "uharm_12_overtime")
private Integer uharm12Overtime; private Double uharm12Overtime;
/** /**
* 13次电压谐波含有率越限次数 * 13次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_13_overtime") @TableField(value = "uharm_13_overtime")
private Integer uharm13Overtime; private Double uharm13Overtime;
/** /**
* 14次电压谐波含有率越限次数 * 14次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_14_overtime") @TableField(value = "uharm_14_overtime")
private Integer uharm14Overtime; private Double uharm14Overtime;
/** /**
* 15次电压谐波含有率越限次数 * 15次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_15_overtime") @TableField(value = "uharm_15_overtime")
private Integer uharm15Overtime; private Double uharm15Overtime;
/** /**
* 16次电压谐波含有率越限次数 * 16次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_16_overtime") @TableField(value = "uharm_16_overtime")
private Integer uharm16Overtime; private Double uharm16Overtime;
/** /**
* 17次电压谐波含有率越限次数 * 17次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_17_overtime") @TableField(value = "uharm_17_overtime")
private Integer uharm17Overtime; private Double uharm17Overtime;
/** /**
* 18次电压谐波含有率越限次数 * 18次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_18_overtime") @TableField(value = "uharm_18_overtime")
private Integer uharm18Overtime; private Double uharm18Overtime;
/** /**
* 19次电压谐波含有率越限次数 * 19次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_19_overtime") @TableField(value = "uharm_19_overtime")
private Integer uharm19Overtime; private Double uharm19Overtime;
/** /**
* 20次电压谐波含有率越限次数 * 20次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_20_overtime") @TableField(value = "uharm_20_overtime")
private Integer uharm20Overtime; private Double uharm20Overtime;
/** /**
* 21次电压谐波含有率越限次数 * 21次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_21_overtime") @TableField(value = "uharm_21_overtime")
private Integer uharm21Overtime; private Double uharm21Overtime;
/** /**
* 22次电压谐波含有率越限次数 * 22次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_22_overtime") @TableField(value = "uharm_22_overtime")
private Integer uharm22Overtime; private Double uharm22Overtime;
/** /**
* 23次电压谐波含有率越限次数 * 23次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_23_overtime") @TableField(value = "uharm_23_overtime")
private Integer uharm23Overtime; private Double uharm23Overtime;
/** /**
* 24次电压谐波含有率越限次数 * 24次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_24_overtime") @TableField(value = "uharm_24_overtime")
private Integer uharm24Overtime; private Double uharm24Overtime;
/** /**
* 25次电压谐波含有率越限次数 * 25次电压谐波含有率越限次数
*/ */
@TableField(value = "uharm_25_overtime") @TableField(value = "uharm_25_overtime")
private Integer uharm25Overtime; private Double uharm25Overtime;
/** /**
* 2次电流谐波幅值越限次数 * 2次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_2_overtime") @TableField(value = "iharm_2_overtime")
private Integer iharm2Overtime; private Double iharm2Overtime;
/** /**
* 3次电流谐波幅值越限次数 * 3次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_3_overtime") @TableField(value = "iharm_3_overtime")
private Integer iharm3Overtime; private Double iharm3Overtime;
/** /**
* 4次电流谐波幅值越限次数 * 4次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_4_overtime") @TableField(value = "iharm_4_overtime")
private Integer iharm4Overtime; private Double iharm4Overtime;
/** /**
* 5次电流谐波幅值越限次数 * 5次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_5_overtime") @TableField(value = "iharm_5_overtime")
private Integer iharm5Overtime; private Double iharm5Overtime;
/** /**
* 6次电流谐波幅值越限次数 * 6次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_6_overtime") @TableField(value = "iharm_6_overtime")
private Integer iharm6Overtime; private Double iharm6Overtime;
/** /**
* 7次电流谐波幅值越限次数 * 7次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_7_overtime") @TableField(value = "iharm_7_overtime")
private Integer iharm7Overtime; private Double iharm7Overtime;
/** /**
* 8次电流谐波幅值越限次数 * 8次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_8_overtime") @TableField(value = "iharm_8_overtime")
private Integer iharm8Overtime; private Double iharm8Overtime;
/** /**
* 9次电流谐波幅值越限次数 * 9次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_9_overtime") @TableField(value = "iharm_9_overtime")
private Integer iharm9Overtime; private Double iharm9Overtime;
/** /**
* 10次电流谐波幅值越限次数 * 10次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_10_overtime") @TableField(value = "iharm_10_overtime")
private Integer iharm10Overtime; private Double iharm10Overtime;
/** /**
* 11次电流谐波幅值越限次数 * 11次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_11_overtime") @TableField(value = "iharm_11_overtime")
private Integer iharm11Overtime; private Double iharm11Overtime;
/** /**
* 12次电流谐波幅值越限次数 * 12次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_12_overtime") @TableField(value = "iharm_12_overtime")
private Integer iharm12Overtime; private Double iharm12Overtime;
/** /**
* 13次电流谐波幅值越限次数 * 13次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_13_overtime") @TableField(value = "iharm_13_overtime")
private Integer iharm13Overtime; private Double iharm13Overtime;
/** /**
* 14次电流谐波幅值越限次数 * 14次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_14_overtime") @TableField(value = "iharm_14_overtime")
private Integer iharm14Overtime; private Double iharm14Overtime;
/** /**
* 15次电流谐波幅值越限次数 * 15次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_15_overtime") @TableField(value = "iharm_15_overtime")
private Integer iharm15Overtime; private Double iharm15Overtime;
/** /**
* 16次电流谐波幅值越限次数 * 16次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_16_overtime") @TableField(value = "iharm_16_overtime")
private Integer iharm16Overtime; private Double iharm16Overtime;
/** /**
* 17次电流谐波幅值越限次数 * 17次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_17_overtime") @TableField(value = "iharm_17_overtime")
private Integer iharm17Overtime; private Double iharm17Overtime;
/** /**
* 18次电流谐波幅值越限次数 * 18次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_18_overtime") @TableField(value = "iharm_18_overtime")
private Integer iharm18Overtime; private Double iharm18Overtime;
/** /**
* 19次电流谐波幅值越限次数 * 19次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_19_overtime") @TableField(value = "iharm_19_overtime")
private Integer iharm19Overtime; private Double iharm19Overtime;
/** /**
* 20次电流谐波幅值越限次数 * 20次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_20_overtime") @TableField(value = "iharm_20_overtime")
private Integer iharm20Overtime; private Double iharm20Overtime;
/** /**
* 21次电流谐波幅值越限次数 * 21次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_21_overtime") @TableField(value = "iharm_21_overtime")
private Integer iharm21Overtime; private Double iharm21Overtime;
/** /**
* 22次电流谐波幅值越限次数 * 22次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_22_overtime") @TableField(value = "iharm_22_overtime")
private Integer iharm22Overtime; private Double iharm22Overtime;
/** /**
* 23次电流谐波幅值越限次数 * 23次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_23_overtime") @TableField(value = "iharm_23_overtime")
private Integer iharm23Overtime; private Double iharm23Overtime;
/** /**
* 24次电流谐波幅值越限次数 * 24次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_24_overtime") @TableField(value = "iharm_24_overtime")
private Integer iharm24Overtime; private Double iharm24Overtime;
/** /**
* 25次电流谐波幅值越限次数 * 25次电流谐波幅值越限次数
*/ */
@TableField(value = "iharm_25_overtime") @TableField(value = "iharm_25_overtime")
private Integer iharm25Overtime; private Double iharm25Overtime;
/** /**
* 0.5次间谐波电压限值次数 * 0.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_1_overtime") @TableField(value = "inuharm_1_overtime")
private Integer inuharm1Overtime; private Double inuharm1Overtime;
/** /**
* 1.5次间谐波电压限值次数 * 1.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_2_overtime") @TableField(value = "inuharm_2_overtime")
private Integer inuharm2Overtime; private Double inuharm2Overtime;
/** /**
* 2.5次间谐波电压限值次数 * 2.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_3_overtime") @TableField(value = "inuharm_3_overtime")
private Integer inuharm3Overtime; private Double inuharm3Overtime;
/** /**
* 3.5次间谐波电压限值次数 * 3.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_4_overtime") @TableField(value = "inuharm_4_overtime")
private Integer inuharm4Overtime; private Double inuharm4Overtime;
/** /**
* 4.5次间谐波电压限值次数 * 4.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_5_overtime") @TableField(value = "inuharm_5_overtime")
private Integer inuharm5Overtime; private Double inuharm5Overtime;
/** /**
* 5.5次间谐波电压限值次数 * 5.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_6_overtime") @TableField(value = "inuharm_6_overtime")
private Integer inuharm6Overtime; private Double inuharm6Overtime;
/** /**
* 6.5次间谐波电压限值次数 * 6.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_7_overtime") @TableField(value = "inuharm_7_overtime")
private Integer inuharm7Overtime; private Double inuharm7Overtime;
/** /**
* 7.5次间谐波电压限值次数 * 7.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_8_overtime") @TableField(value = "inuharm_8_overtime")
private Integer inuharm8Overtime; private Double inuharm8Overtime;
/** /**
* 8.5次间谐波电压限值次数 * 8.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_9_overtime") @TableField(value = "inuharm_9_overtime")
private Integer inuharm9Overtime; private Double inuharm9Overtime;
/** /**
* 9.5次间谐波电压限值次数 * 9.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_10_overtime") @TableField(value = "inuharm_10_overtime")
private Integer inuharm10Overtime; private Double inuharm10Overtime;
/** /**
* 10.5次间谐波电压限值次数 * 10.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_11_overtime") @TableField(value = "inuharm_11_overtime")
private Integer inuharm11Overtime; private Double inuharm11Overtime;
/** /**
* 11.5次间谐波电压限值次数 * 11.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_12_overtime") @TableField(value = "inuharm_12_overtime")
private Integer inuharm12Overtime; private Double inuharm12Overtime;
/** /**
* 12.5次间谐波电压限值次数 * 12.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_13_overtime") @TableField(value = "inuharm_13_overtime")
private Integer inuharm13Overtime; private Double inuharm13Overtime;
/** /**
* 13.5次间谐波电压限值次数 * 13.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_14_overtime") @TableField(value = "inuharm_14_overtime")
private Integer inuharm14Overtime; private Double inuharm14Overtime;
/** /**
* 14.5次间谐波电压限值次数 * 14.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_15_overtime") @TableField(value = "inuharm_15_overtime")
private Integer inuharm15Overtime; private Double inuharm15Overtime;
/** /**
* 15.5次间谐波电压限值次数 * 15.5次间谐波电压限值次数
*/ */
@TableField(value = "inuharm_16_overtime") @TableField(value = "inuharm_16_overtime")
private Integer inuharm16Overtime; private Double inuharm16Overtime;
} }

View File

@@ -0,0 +1,53 @@
package com.njcn.dataProcess.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 单位污区图统计日表
* @Author: wr
* @Date: 2025/3/19 14:15
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "r_stat_pollution_org_d")
public class RStatPollutionOrgD implements Serializable {
/**
* 单位id
*/
@TableField(value = "org_id")
@ApiModelProperty(value="单位id")
private String orgId;
/**
* 时间
*/
@TableField(value = "data_date")
@ApiModelProperty(value="时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@TableField(value = "pollution_type")
@ApiModelProperty(value="污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@TableField(value = "value")
@ApiModelProperty(value="统计值")
private Double value;
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,52 @@
package com.njcn.dataProcess.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 单位污区图统计月表
* @Author: wr
* @Date: 2025/3/19 14:15
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "r_stat_pollution_org_m")
public class RStatPollutionOrgM implements Serializable {
/**
* 单位id
*/
@TableField(value = "org_id")
@ApiModelProperty(value="单位id")
private String orgId;
/**
* 时间
*/
@TableField(value = "data_date")
@ApiModelProperty(value="时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@TableField(value = "pollution_type")
@ApiModelProperty(value="污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@TableField(value = "value")
@ApiModelProperty(value="统计值")
private Double value;
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,52 @@
package com.njcn.dataProcess.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 单位污区图统计季表
* @Author: wr
* @Date: 2025/3/19 14:15
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "r_stat_pollution_org_q")
public class RStatPollutionOrgQ implements Serializable {
/**
* 单位id
*/
@TableField(value = "org_id")
@ApiModelProperty(value="单位id")
private String orgId;
/**
* 时间
*/
@TableField(value = "data_date")
@ApiModelProperty(value="时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@TableField(value = "pollution_type")
@ApiModelProperty(value="污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@TableField(value = "value")
@ApiModelProperty(value="统计值")
private Double value;
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,52 @@
package com.njcn.dataProcess.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 单位污区图统计年表
* @Author: wr
* @Date: 2025/3/19 14:15
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "r_stat_pollution_org_y")
public class RStatPollutionOrgY implements Serializable {
/**
* 单位id
*/
@TableField(value = "org_id")
@ApiModelProperty(value="单位id")
private String orgId;
/**
* 时间
*/
@TableField(value = "data_date")
@ApiModelProperty(value="时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@TableField(value = "pollution_type")
@ApiModelProperty(value="污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@TableField(value = "value")
@ApiModelProperty(value="统计值")
private Double value;
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,52 @@
package com.njcn.dataProcess.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 变电站污区图统计日表
* @Author: wr
* @Date: 2025/3/19 14:16
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "r_stat_pollution_substation_d")
public class RStatPollutionSubstationD implements Serializable {
/**
* 变电站id
*/
@TableField(value = "substation_id")
@ApiModelProperty(value = "变电站id")
private String substationId;
/**
* 时间
*/
@TableField(value = "data_date")
@ApiModelProperty(value = "时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@TableField(value = "pollution_type")
@ApiModelProperty(value = "污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@TableField(value = "value")
@ApiModelProperty(value = "统计值")
private Double value;
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,52 @@
package com.njcn.dataProcess.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 变电站污区图统计月表
* @Author: wr
* @Date: 2025/3/19 14:16
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "r_stat_pollution_substation_m")
public class RStatPollutionSubstationM implements Serializable {
/**
* 变电站id
*/
@TableField(value = "substation_id")
@ApiModelProperty(value = "变电站id")
private String substationId;
/**
* 时间
*/
@TableField(value = "data_date")
@ApiModelProperty(value = "时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@TableField(value = "pollution_type")
@ApiModelProperty(value = "污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@TableField(value = "value")
@ApiModelProperty(value = "统计值")
private Double value;
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,52 @@
package com.njcn.dataProcess.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 变电站污区图统计季表
* @Author: wr
* @Date: 2025/3/19 14:16
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "r_stat_pollution_substation_q")
public class RStatPollutionSubstationQ implements Serializable {
/**
* 变电站id
*/
@TableField(value = "substation_id")
@ApiModelProperty(value="变电站id")
private String substationId;
/**
* 时间
*/
@TableField(value = "data_date")
@ApiModelProperty(value="时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@TableField(value = "pollution_type")
@ApiModelProperty(value="污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@TableField(value = "value")
@ApiModelProperty(value="统计值")
private Double value;
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,52 @@
package com.njcn.dataProcess.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @Description: 变电站污区图统计年表
* @Author: wr
* @Date: 2025/3/19 14:16
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "r_stat_pollution_substation_y")
public class RStatPollutionSubstationY implements Serializable {
/**
* 变电站id
*/
@TableField(value = "substation_id")
@ApiModelProperty(value="变电站id")
private String substationId;
/**
* 时间
*/
@TableField(value = "data_date")
@ApiModelProperty(value="时间")
private LocalDate dataDate;
/**
* 污区图统计类型
*/
@TableField(value = "pollution_type")
@ApiModelProperty(value="污区图统计类型")
private String pollutionType;
/**
* 统计值
*/
@TableField(value = "value")
@ApiModelProperty(value="统计值")
private Double value;
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,55 @@
package com.njcn.dataProcess.controller;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.pojo.dto.DataComassesDPO;
import com.njcn.dataProcess.service.IDataComAss;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author hongawen
* @version 1.0
* @data 2024/11/6 19:48
*/
@Validated
@Slf4j
@Controller
@RestController
@RequestMapping("/dataComAss")
@Api(tags = "综合评估数据")
public class DataComAssController extends BaseController {
@QueryBean
private IDataComAss dataComAssQuery;
@InsertBean
private IDataComAss dataComAssInsert;
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/batchInsertion")
@ApiOperation("批量插入")
public HttpResult<String> batchInsertion(@RequestBody List<DataComassesDPO> dataVDTOList) {
String methodDescribe = getMethodDescribe("batchInsertion");
dataComAssInsert.batchInsertion(dataVDTOList);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -0,0 +1,58 @@
package com.njcn.dataProcess.controller;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.pojo.dto.DataPollutionD;
import com.njcn.dataProcess.service.IDataPollution;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author hongawen
* @version 1.0
* @data 2024/11/6 19:48
*/
@Validated
@Slf4j
@Controller
@RestController
@RequestMapping("/dataPollution")
@Api(tags = "污区图数据")
public class DataPollutionController extends BaseController {
@QueryBean
private IDataPollution dataPollutionQuery;
@InsertBean
private IDataPollution dataPollutionInsert;
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/batchInsertion")
@ApiOperation("批量插入")
public HttpResult<String> batchInsertion(@RequestBody List<DataPollutionD> dataIDTOList) {
String methodDescribe = getMethodDescribe("batchInsertion");
dataPollutionInsert.batchInsertion(dataIDTOList);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -0,0 +1,15 @@
package com.njcn.dataProcess.dao.relation.mapper;
import com.njcn.dataProcess.pojo.po.RMpPollutionD;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
/**
* @Description: 监测点污区图统计日表 Mapper 接口
* @Author: wr
* @Date: 2025/3/19 14:30
*/
public interface RMpPollutionDMapper extends MppBaseMapper<RMpPollutionD> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.dataProcess.dao.relation.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.dataProcess.pojo.po.RStatComassesDPO;
/**
* <p>
* Mapper 接口
* </p>
*/
public interface RStatDataComAssMapper extends MppBaseMapper<RStatComassesDPO> {
}

View File

@@ -0,0 +1,15 @@
package com.njcn.dataProcess.dao.relation.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgD;
/**
* @Description: 单位污区图统计日表 Mapper 接口
* @Author: wr
* @Date: 2025/3/19 14:30
*/
public interface RStatPollutionOrgDMapper extends MppBaseMapper<RStatPollutionOrgD> {
}

View File

@@ -0,0 +1,13 @@
package com.njcn.dataProcess.dao.relation.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgM;
/**
* @Description: 单位污区图统计月表 Mapper 接口
* @Author: wr
* @Date: 2025/3/19 14:30
*/
public interface RStatPollutionOrgMMapper extends MppBaseMapper<RStatPollutionOrgM> {
}

View File

@@ -0,0 +1,14 @@
package com.njcn.dataProcess.dao.relation.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgQ;
/**
* @Description: 单位污区图统计季表 Mapper 接口
* @Author: wr
* @Date: 2025/3/19 14:31
*/
public interface RStatPollutionOrgQMapper extends MppBaseMapper<RStatPollutionOrgQ> {
}

View File

@@ -0,0 +1,13 @@
package com.njcn.dataProcess.dao.relation.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgY;
/**
* @Description: 单位污区图统计年表 Mapper 接口
* @Author: wr
* @Date: 2025/3/19 14:31
*/
public interface RStatPollutionOrgYMapper extends MppBaseMapper<RStatPollutionOrgY> {
}

View File

@@ -0,0 +1,14 @@
package com.njcn.dataProcess.dao.relation.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationD;
/**
* @Description: 变电站污区图统计日表 Mapper 接口
* @Author: wr
* @Date: 2025/3/19 14:31
*/
public interface RStatPollutionSubstationDMapper extends MppBaseMapper<RStatPollutionSubstationD> {
}

View File

@@ -0,0 +1,14 @@
package com.njcn.dataProcess.dao.relation.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationM;
/**
* @Description: 变电站污区图统计月表 Mapper 接口
* @Author: wr
* @Date: 2025/3/19 14:31
*/
public interface RStatPollutionSubstationMMapper extends MppBaseMapper<RStatPollutionSubstationM> {
}

View File

@@ -0,0 +1,13 @@
package com.njcn.dataProcess.dao.relation.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationQ;
/**
* @Description: 变电站污区图统计季表 Mapper 接口
* @Author: wr
* @Date: 2025/3/19 14:31
*/
public interface RStatPollutionSubstationQMapper extends MppBaseMapper<RStatPollutionSubstationQ> {
}

View File

@@ -0,0 +1,13 @@
package com.njcn.dataProcess.dao.relation.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationY;
/**
* @Description: 变电站污区图统计年表 Mapper 接口
* @Author: wr
* @Date: 2025/3/19 14:31
*/
public interface RStatPollutionSubstationYMapper extends MppBaseMapper<RStatPollutionSubstationY> {
}

View File

@@ -0,0 +1,23 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.pojo.dto.DataPollutionD;
import com.njcn.dataProcess.pojo.po.RMpPollutionD;
import java.util.List;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:40
*/
public interface IDataPollution extends IMppService<RMpPollutionD> {
/**
* 批量插入数据
* @param pollutionList
*/
void batchInsertion(List<DataPollutionD> pollutionList);
}

View File

@@ -0,0 +1,14 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgD;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:40
*/
public interface IDataPollutionOrgD extends IMppService<RStatPollutionOrgD> {
}

View File

@@ -0,0 +1,14 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgM;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:40
*/
public interface IDataPollutionOrgM extends IMppService<RStatPollutionOrgM> {
}

View File

@@ -0,0 +1,14 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgQ;
/**
* @author hongawen
* @version 1.0
* @data 2024/11/7 10:54
*/
public interface IDataPollutionOrgQ extends IMppService<RStatPollutionOrgQ> {
}

View File

@@ -0,0 +1,14 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgY;
/**
* @author hongawen
* @version 1.0
* @data 2024/11/7 10:54
*/
public interface IDataPollutionOrgY extends IMppService<RStatPollutionOrgY> {
}

View File

@@ -0,0 +1,14 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationD;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:41
*/
public interface IDataPollutionSubstationD extends IMppService<RStatPollutionSubstationD> {
}

View File

@@ -0,0 +1,14 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationM;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:41
*/
public interface IDataPollutionSubstationM extends IMppService<RStatPollutionSubstationM> {
}

View File

@@ -0,0 +1,14 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationQ;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:41
*/
public interface IDataPollutionSubstationQ extends IMppService<RStatPollutionSubstationQ> {
}

View File

@@ -0,0 +1,14 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationY;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:41
*/
public interface IDataPollutionSubstationY extends IMppService<RStatPollutionSubstationY> {
}

View File

@@ -2,7 +2,6 @@ package com.njcn.dataProcess.service;
import com.njcn.dataProcess.dto.RmpEventDetailDTO; import com.njcn.dataProcess.dto.RmpEventDetailDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.PqsCommunicateDto;
import java.util.List; import java.util.List;

View File

@@ -0,0 +1,26 @@
package com.njcn.dataProcess.service.impl.influxdb;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataComAssMapper;
import com.njcn.dataProcess.pojo.dto.DataComassesDPO;
import com.njcn.dataProcess.pojo.po.RStatComassesDPO;
import com.njcn.dataProcess.service.IDataComAss;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author hongawen
* @version 1.0
* @data 2024/11/7 11:02
*/
@Service("InfluxdbDataComAssImpl")
public class InfluxdbDataComAssImpl extends MppServiceImpl<RStatDataComAssMapper, RStatComassesDPO> implements IDataComAss {
@Override
public void batchInsertion(List<DataComassesDPO> limitQualifiedList) {
}
}

View File

@@ -48,7 +48,7 @@ public class InfluxdbDataFlickerImpl extends MppServiceImpl<RStatDataFlickerRela
@Override @Override
public void batchInsertion(List<DataFlickerDTO> dataFlickerDTOList) { public void batchInsertion(List<DataFlickerDTO> dataFlickerDTOList) {
int totalCount = dataFlickerDTOList.size(); int totalCount = dataFlickerDTOList.size();
if(totalCount<=0){ if (totalCount <= 0) {
return; return;
} }
@@ -68,9 +68,9 @@ public class InfluxdbDataFlickerImpl extends MppServiceImpl<RStatDataFlickerRela
public List<DataFlickerDto> getRawData(LineCountEvaluateParam lineParam) { public List<DataFlickerDto> getRawData(LineCountEvaluateParam lineParam) {
List<DataFlickerDto> result = new ArrayList<>(); List<DataFlickerDto> result = new ArrayList<>();
List<DataFlicker> list = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(), lineParam.getAbnormalTime()); List<DataFlicker> list = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(), lineParam.getAbnormalTime());
list.forEach(item->{ list.forEach(item -> {
DataFlickerDto dto = new DataFlickerDto(); DataFlickerDto dto = new DataFlickerDto();
BeanUtils.copyProperties(item,dto); BeanUtils.copyProperties(item, dto);
dto.setMinTime(DATE_TIME_FORMATTER.format(item.getTime())); dto.setMinTime(DATE_TIME_FORMATTER.format(item.getTime()));
result.add(dto); result.add(dto);
}); });
@@ -80,20 +80,20 @@ public class InfluxdbDataFlickerImpl extends MppServiceImpl<RStatDataFlickerRela
@Override @Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) { public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
List<CommonMinuteDto> result = new ArrayList<>(); List<CommonMinuteDto> result = new ArrayList<>();
List<DataFlicker> dataIList = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime()); List<DataFlicker> dataIList = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(), lineParam.getAbnormalTime());
if (CollectionUtil.isNotEmpty(dataIList)) { if (CollectionUtil.isNotEmpty(dataIList)) {
String time = TimeUtils.StringTimeToString(lineParam.getStartTime()); String time = TimeUtils.StringTimeToString(lineParam.getStartTime());
//以监测点分组 //以监测点分组
Map<String,List<DataFlicker>> lineMap = dataIList.stream().collect(Collectors.groupingBy(DataFlicker::getLineId)); Map<String, List<DataFlicker>> lineMap = dataIList.stream().collect(Collectors.groupingBy(DataFlicker::getLineId));
lineMap.forEach((line,lineList)->{ lineMap.forEach((line, lineList) -> {
CommonMinuteDto dto = new CommonMinuteDto(); CommonMinuteDto dto = new CommonMinuteDto();
dto.setLineId(line); dto.setLineId(line);
dto.setTime(time); dto.setTime(time);
dto.setQualityFlag(lineList.get(0).getQualityFlag()); dto.setQualityFlag(lineList.get(0).getQualityFlag());
//以相别分组 //以相别分组
Map<String,List<DataFlicker>> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataFlicker::getPhasicType)); Map<String, List<DataFlicker>> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataFlicker::getPhasicType));
List<CommonMinuteDto.PhasicType> phasicTypes = new ArrayList<>(); List<CommonMinuteDto.PhasicType> phasicTypes = new ArrayList<>();
phasicTypeMap.forEach((phasicType,phasicTypeList)->{ phasicTypeMap.forEach((phasicType, phasicTypeList) -> {
CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType(); CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType();
type.setPhasicType(phasicType); type.setPhasicType(phasicType);
@@ -106,7 +106,7 @@ public class InfluxdbDataFlickerImpl extends MppServiceImpl<RStatDataFlickerRela
List<Double> data2 = phasicTypeList.stream().map(DataFlicker::getPlt).collect(Collectors.toList()); List<Double> data2 = phasicTypeList.stream().map(DataFlicker::getPlt).collect(Collectors.toList());
List<Double> data3 = phasicTypeList.stream().map(DataFlicker::getPst).collect(Collectors.toList()); List<Double> data3 = phasicTypeList.stream().map(DataFlicker::getPst).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(data1,data2,data3); List<List<Double>> lists = Arrays.asList(data1, data2, data3);
value.setValueList(lists); value.setValueList(lists);
valueTypes.add(value); valueTypes.add(value);
@@ -139,10 +139,10 @@ public class InfluxdbDataFlickerImpl extends MppServiceImpl<RStatDataFlickerRela
influxQueryWrapper.regular(DataFlicker::getPhasicType, lineParam.getPhasicType()); influxQueryWrapper.regular(DataFlicker::getPhasicType, lineParam.getPhasicType());
} }
if (ObjectUtil.isNotEmpty(lineParam.getGe())) { if (ObjectUtil.isNotEmpty(lineParam.getGe())) {
influxQueryWrapper.ge(lineParam.getColumnName(), lineParam.getGe()); influxQueryWrapper.ge(lineParam.getColumnName(), Double.parseDouble(lineParam.getGe()));
} }
if (ObjectUtil.isNotEmpty(lineParam.getLt())) { if (ObjectUtil.isNotEmpty(lineParam.getLt())) {
influxQueryWrapper.lt(lineParam.getColumnName(), lineParam.getLt()); influxQueryWrapper.lt(lineParam.getColumnName(), Double.parseDouble(lineParam.getLt()));
} }
List<DataFlicker> dataFlickers = dataFlickerMapper.selectByQueryWrapper(influxQueryWrapper); List<DataFlicker> dataFlickers = dataFlickerMapper.selectByQueryWrapper(influxQueryWrapper);
return dataFlickers.size(); return dataFlickers.size();
@@ -156,7 +156,7 @@ public class InfluxdbDataFlickerImpl extends MppServiceImpl<RStatDataFlickerRela
* 2.异常数据和无异常数据参杂,剔除异常数据,只计算正常数据; * 2.异常数据和无异常数据参杂,剔除异常数据,只计算正常数据;
* 3.全是异常数据,则使用异常数据进行计算,但是日表中需要标记出来,此数据有异常 * 3.全是异常数据,则使用异常数据进行计算,但是日表中需要标记出来,此数据有异常
*/ */
public List<DataFlicker> getMinuteData(List<String> lineList, String startTime, String endTime, Map<String,List<String>> timeMap) { public List<DataFlicker> getMinuteData(List<String> lineList, String startTime, String endTime, Map<String, List<String>> timeMap) {
List<DataFlicker> result = new ArrayList<>(); List<DataFlicker> result = new ArrayList<>();
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataFlicker.class); InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataFlicker.class);
influxQueryWrapper.regular(DataFlicker::getLineId, lineList) influxQueryWrapper.regular(DataFlicker::getLineId, lineList)
@@ -167,12 +167,12 @@ public class InfluxdbDataFlickerImpl extends MppServiceImpl<RStatDataFlickerRela
.select(DataFlicker::getPlt) .select(DataFlicker::getPlt)
.select(DataFlicker::getQualityFlag) .select(DataFlicker::getQualityFlag)
.between(DataFlicker::getTime, startTime, endTime) .between(DataFlicker::getTime, startTime, endTime)
.eq(DataFlicker::getQualityFlag,"0"); .eq(DataFlicker::getQualityFlag, "0");
List<DataFlicker> list = dataFlickerMapper.selectByQueryWrapper(influxQueryWrapper); List<DataFlicker> list = dataFlickerMapper.selectByQueryWrapper(influxQueryWrapper);
Map<String,List<DataFlicker>> lineMap = list.stream().collect(Collectors.groupingBy(DataFlicker::getLineId)); Map<String, List<DataFlicker>> lineMap = list.stream().collect(Collectors.groupingBy(DataFlicker::getLineId));
//有异常数据 //有异常数据
if (CollectionUtil.isNotEmpty(timeMap)) { if (CollectionUtil.isNotEmpty(timeMap)) {
lineMap.forEach((k,v)->{ lineMap.forEach((k, v) -> {
List<String> timeList = timeMap.get(k); List<String> timeList = timeMap.get(k);
//有异常数据,当前监测点自身的异常数据 //有异常数据,当前监测点自身的异常数据
if (CollectionUtil.isNotEmpty(timeList)) { if (CollectionUtil.isNotEmpty(timeList)) {

View File

@@ -0,0 +1,28 @@
package com.njcn.dataProcess.service.impl.influxdb;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RMpPollutionDMapper;
import com.njcn.dataProcess.pojo.dto.DataPollutionD;
import com.njcn.dataProcess.pojo.po.RMpPollutionD;
import com.njcn.dataProcess.service.IDataPollution;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("InfluxdbDataPollutionImpl")
@RequiredArgsConstructor
public class InfluxdbDataPollutionImpl extends MppServiceImpl<RMpPollutionDMapper, RMpPollutionD> implements IDataPollution {
@Override
public void batchInsertion(List<DataPollutionD> pollutionList) {
}
}

View File

@@ -0,0 +1,23 @@
package com.njcn.dataProcess.service.impl.influxdb;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgDMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgD;
import com.njcn.dataProcess.service.IDataPollutionOrgD;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("InfluxdbDataPollutionOrgDImpl")
@RequiredArgsConstructor
public class InfluxdbDataPollutionOrgDImpl extends MppServiceImpl<RStatPollutionOrgDMapper, RStatPollutionOrgD> implements IDataPollutionOrgD {
}

View File

@@ -0,0 +1,23 @@
package com.njcn.dataProcess.service.impl.influxdb;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgMMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgM;
import com.njcn.dataProcess.service.IDataPollutionOrgM;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("InfluxdbDataPollutionOrgMImpl")
@RequiredArgsConstructor
public class InfluxdbDataPollutionOrgMImpl extends MppServiceImpl<RStatPollutionOrgMMapper, RStatPollutionOrgM> implements IDataPollutionOrgM {
}

View File

@@ -0,0 +1,23 @@
package com.njcn.dataProcess.service.impl.influxdb;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgQMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgQ;
import com.njcn.dataProcess.service.IDataPollutionOrgQ;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("InfluxdbDataPollutionOrgQImpl")
@RequiredArgsConstructor
public class InfluxdbDataPollutionOrgQImpl extends MppServiceImpl<RStatPollutionOrgQMapper, RStatPollutionOrgQ> implements IDataPollutionOrgQ {
}

View File

@@ -0,0 +1,23 @@
package com.njcn.dataProcess.service.impl.influxdb;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgYMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgY;
import com.njcn.dataProcess.service.IDataPollutionOrgY;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("InfluxdbDataPollutionOrgYImpl")
@RequiredArgsConstructor
public class InfluxdbDataPollutionOrgYImpl extends MppServiceImpl<RStatPollutionOrgYMapper, RStatPollutionOrgY> implements IDataPollutionOrgY {
}

View File

@@ -0,0 +1,22 @@
package com.njcn.dataProcess.service.impl.influxdb;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationDMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationD;
import com.njcn.dataProcess.service.IDataPollutionSubstationD;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("InfluxdbDataPollutionSubstationDImpl")
@RequiredArgsConstructor
public class InfluxdbDataPollutionSubstationDImpl extends MppServiceImpl<RStatPollutionSubstationDMapper, RStatPollutionSubstationD> implements IDataPollutionSubstationD {
}

View File

@@ -0,0 +1,22 @@
package com.njcn.dataProcess.service.impl.influxdb;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationMMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationM;
import com.njcn.dataProcess.service.IDataPollutionSubstationM;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("InfluxdbDataPollutionSubstationMImpl")
@RequiredArgsConstructor
public class InfluxdbDataPollutionSubstationMImpl extends MppServiceImpl<RStatPollutionSubstationMMapper, RStatPollutionSubstationM> implements IDataPollutionSubstationM {
}

View File

@@ -0,0 +1,22 @@
package com.njcn.dataProcess.service.impl.influxdb;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationQMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationQ;
import com.njcn.dataProcess.service.IDataPollutionSubstationQ;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("InfluxdbDataPollutionSubstationQImpl")
@RequiredArgsConstructor
public class InfluxdbDataPollutionSubstationQImpl extends MppServiceImpl<RStatPollutionSubstationQMapper, RStatPollutionSubstationQ> implements IDataPollutionSubstationQ {
}

View File

@@ -0,0 +1,22 @@
package com.njcn.dataProcess.service.impl.influxdb;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationYMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationY;
import com.njcn.dataProcess.service.IDataPollutionSubstationY;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("InfluxdbDataPollutionSubstationYImpl")
@RequiredArgsConstructor
public class InfluxdbDataPollutionSubstationYImpl extends MppServiceImpl<RStatPollutionSubstationYMapper, RStatPollutionSubstationY> implements IDataPollutionSubstationY {
}

View File

@@ -186,10 +186,10 @@ public class InfluxdbDataVImpl extends MppServiceImpl<RStatDataVRelationMapper,
influxQueryWrapper.regular(DataV::getValueType, lineParam.getValueType()); influxQueryWrapper.regular(DataV::getValueType, lineParam.getValueType());
} }
if (ObjectUtil.isNotEmpty(lineParam.getGe())) { if (ObjectUtil.isNotEmpty(lineParam.getGe())) {
influxQueryWrapper.ge(lineParam.getColumnName(), lineParam.getGe()); influxQueryWrapper.ge(lineParam.getColumnName(), Double.parseDouble(lineParam.getGe()));
} }
if (ObjectUtil.isNotEmpty(lineParam.getLt())) { if (ObjectUtil.isNotEmpty(lineParam.getLt())) {
influxQueryWrapper.lt(lineParam.getColumnName(), lineParam.getLt()); influxQueryWrapper.lt(lineParam.getColumnName(), Double.parseDouble(lineParam.getLt()));
} }
List<DataV> dataVS = dataVMapper.selectByQueryWrapper(influxQueryWrapper); List<DataV> dataVS = dataVMapper.selectByQueryWrapper(influxQueryWrapper);
return dataVS.size(); return dataVS.size();

View File

@@ -0,0 +1,36 @@
package com.njcn.dataProcess.service.impl.relation;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataComAssMapper;
import com.njcn.dataProcess.pojo.dto.DataComassesDPO;
import com.njcn.dataProcess.pojo.po.RStatComassesDPO;
import com.njcn.dataProcess.pojo.po.RStatLimitRateDetailD;
import com.njcn.dataProcess.service.IDataComAss;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 10:15
*/
@Service("RelationDataComAssImpl")
@RequiredArgsConstructor
public class RelationDataComAssImpl extends MppServiceImpl<RStatDataComAssMapper, RStatComassesDPO> implements IDataComAss {
@Override
public void batchInsertion(List<DataComassesDPO> limitQualifiedList) {
List<RStatComassesDPO> result = new ArrayList<>();
limitQualifiedList.forEach(item->{
RStatComassesDPO limitRate = new RStatComassesDPO();
BeanUtils.copyProperties(item, limitRate);
result.add(limitRate);
});
this.saveOrUpdateBatchByMultiId(result);
}
}

View File

@@ -0,0 +1,37 @@
package com.njcn.dataProcess.service.impl.relation;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RMpPollutionDMapper;
import com.njcn.dataProcess.pojo.dto.DataPollutionD;
import com.njcn.dataProcess.pojo.po.RMpPollutionD;
import com.njcn.dataProcess.pojo.po.RStatLimitRateD;
import com.njcn.dataProcess.service.IDataPollution;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("RelationDataPollutionImpl")
@RequiredArgsConstructor
public class RelationDataPollutionImpl extends MppServiceImpl<RMpPollutionDMapper, RMpPollutionD> implements IDataPollution {
@Override
public void batchInsertion(List<DataPollutionD> pollutionList) {
List<RMpPollutionD> result = new ArrayList<>();
pollutionList.forEach(item->{
RMpPollutionD limitRate = new RMpPollutionD();
BeanUtils.copyProperties(item, limitRate);
result.add(limitRate);
});
this.saveOrUpdateBatchByMultiId(result);
}
}

View File

@@ -0,0 +1,23 @@
package com.njcn.dataProcess.service.impl.relation;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgDMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgD;
import com.njcn.dataProcess.service.IDataPollutionOrgD;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("RelationDataPollutionOrgDImpl")
@RequiredArgsConstructor
public class RelationDataPollutionOrgDImpl extends MppServiceImpl<RStatPollutionOrgDMapper, RStatPollutionOrgD> implements IDataPollutionOrgD {
}

View File

@@ -0,0 +1,23 @@
package com.njcn.dataProcess.service.impl.relation;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgMMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgM;
import com.njcn.dataProcess.service.IDataPollutionOrgM;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("RelationDataPollutionOrgMImpl")
@RequiredArgsConstructor
public class RelationDataPollutionOrgMImpl extends MppServiceImpl<RStatPollutionOrgMMapper, RStatPollutionOrgM> implements IDataPollutionOrgM {
}

View File

@@ -0,0 +1,23 @@
package com.njcn.dataProcess.service.impl.relation;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgQMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgQ;
import com.njcn.dataProcess.service.IDataPollutionOrgQ;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("RelationDataPollutionOrgQImpl")
@RequiredArgsConstructor
public class RelationDataPollutionOrgQImpl extends MppServiceImpl<RStatPollutionOrgQMapper, RStatPollutionOrgQ> implements IDataPollutionOrgQ {
}

View File

@@ -0,0 +1,23 @@
package com.njcn.dataProcess.service.impl.relation;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgYMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionOrgY;
import com.njcn.dataProcess.service.IDataPollutionOrgY;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("RelationDataPollutionOrgYImpl")
@RequiredArgsConstructor
public class RelationDataPollutionOrgYImpl extends MppServiceImpl<RStatPollutionOrgYMapper, RStatPollutionOrgY> implements IDataPollutionOrgY {
}

View File

@@ -0,0 +1,22 @@
package com.njcn.dataProcess.service.impl.relation;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationDMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationD;
import com.njcn.dataProcess.service.IDataPollutionSubstationD;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("RelationDataPollutionSubstationDImpl")
@RequiredArgsConstructor
public class RelationDataPollutionSubstationDImpl extends MppServiceImpl<RStatPollutionSubstationDMapper, RStatPollutionSubstationD> implements IDataPollutionSubstationD {
}

View File

@@ -0,0 +1,22 @@
package com.njcn.dataProcess.service.impl.relation;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationMMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationM;
import com.njcn.dataProcess.service.IDataPollutionSubstationM;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("RelationDataPollutionSubstationMImpl")
@RequiredArgsConstructor
public class RelationDataPollutionSubstationMImpl extends MppServiceImpl<RStatPollutionSubstationMMapper, RStatPollutionSubstationM> implements IDataPollutionSubstationM {
}

View File

@@ -0,0 +1,22 @@
package com.njcn.dataProcess.service.impl.relation;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationQMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationQ;
import com.njcn.dataProcess.service.IDataPollutionSubstationQ;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("RelationDataPollutionSubstationQImpl")
@RequiredArgsConstructor
public class RelationDataPollutionSubstationQImpl extends MppServiceImpl<RStatPollutionSubstationQMapper, RStatPollutionSubstationQ> implements IDataPollutionSubstationQ {
}

View File

@@ -0,0 +1,22 @@
package com.njcn.dataProcess.service.impl.relation;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationYMapper;
import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationY;
import com.njcn.dataProcess.service.IDataPollutionSubstationY;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/19 14:44
*/
@Service("RelationDataPollutionSubstationYImpl")
@RequiredArgsConstructor
public class RelationDataPollutionSubstationYImpl extends MppServiceImpl<RStatPollutionSubstationYMapper, RStatPollutionSubstationY> implements IDataPollutionSubstationY {
}