diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/excel/pollution/LinePollution.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/excel/pollution/LinePollution.java index dcbd61832..16d48d18f 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/excel/pollution/LinePollution.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/excel/pollution/LinePollution.java @@ -1,6 +1,7 @@ package com.njcn.harmonic.pojo.excel.pollution; import cn.afterturn.easypoi.excel.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @@ -13,53 +14,62 @@ public class LinePollution implements Serializable { * 供电公司名称 */ @Excel(name = "供电公司", width = 30) + @ApiModelProperty("供电公司") private String gdName; /** * 所属变电站 */ @Excel(name = "变电站", width = 30) + @ApiModelProperty("变电站") private String subStationName; /** * 终端名称 */ @Excel(name = "终端名称", width = 30) + @ApiModelProperty("终端名称") private String devName; /** * 终端厂家 */ @Excel(name = "终端厂家", width = 30) + @ApiModelProperty("终端厂家") private String manufacturer; /** * 终端型号 */ @Excel(name = "终端型号", width = 30) + @ApiModelProperty("终端型号") private String devType; /** * 终端投运时间 */ @Excel(name = "投运时间", width = 30) + @ApiModelProperty("投运时间") private String loginTime; /** * 监测点索引 */ + @ApiModelProperty("监测点索引") private String lineId; /** * 监测点名称 */ @Excel(name = "监测点名称", width = 30) + @ApiModelProperty("监测点名称") private String lineName; /** * 位置,电网侧&非电网侧 */ @Excel(name = "监测位置", width = 30) + @ApiModelProperty("监测位置") private String powerFlag; /** @@ -67,24 +77,28 @@ public class LinePollution implements Serializable { * 监测点电压等级 */ @Excel(name = "监测点电压等级", width = 30) + @ApiModelProperty("监测点电压等级") private String lineVoltage; /** * 干扰源类型 */ @Excel(name = "干扰源类型", width = 30) + @ApiModelProperty("干扰源类型") private String loadType; /** * 监测对象 */ @Excel(name = "监测对象名称", width = 30) + @ApiModelProperty("监测对象名称") private String objName; /** * 统计间隔 */ @Excel(name = "统计间隔",type = 10, width = 30) + @ApiModelProperty("统计间隔") private Integer interval; /** @@ -92,6 +106,7 @@ public class LinePollution implements Serializable { * 在线率 */ @Excel(name = "在线率(%)",type = 10, width = 30) + @ApiModelProperty("在线率(%)") private Float onlineRate; /** @@ -99,25 +114,22 @@ public class LinePollution implements Serializable { * 完整性 */ @Excel(name = "完整率(%)",type = 10, width = 30) + @ApiModelProperty("完整率(%)") private Double integrity; /** * 谐波电压污染值 */ @Excel(name = "谐波电压污染值",type = 10, width = 20) - private Double vHarmonicValue; - - /** - * 谐波电压污染值 - */ - @Excel(name = "谐波电流污染值",type = 10, width = 20) - private Double iHarmonicValue; + @ApiModelProperty("谐波污染值") + private Double HarmonicValue; /** * 暂升次数 1.1~1.8 * 10ms ~ 1min */ @Excel(name = "暂升次数(次)",type = 10, width = 20) + @ApiModelProperty("暂升次数(次)") private Integer upCounts; /** @@ -125,6 +137,7 @@ public class LinePollution implements Serializable { * 10ms ~ 1min */ @Excel(name = "电压暂降(次)",type = 10, width = 20) + @ApiModelProperty("电压暂降(次)") private Integer downCounts; /** @@ -132,15 +145,19 @@ public class LinePollution implements Serializable { * 10ms ~ 1min */ @Excel(name = "短时中断(次)",type = 10, width = 20) + @ApiModelProperty("短时中断(次") private Integer breakCounts; @Excel(name = "是否关联敏感用户", width = 30, replace = "/_null") + @ApiModelProperty("是否关联敏感用户") private String isMg; @Excel(name = "敏感及重要用户", width = 30,replace = "/_null") + @ApiModelProperty("敏感及重要用户") private String importUser; @Excel(name = "一类监测点", width = 30,replace = "/_null") + @ApiModelProperty("一类监测点") private String monitorId; // /** diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/PollutionSubstationController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/PollutionSubstationController.java index f67c2ae27..d31488ce2 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/PollutionSubstationController.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/PollutionSubstationController.java @@ -1,5 +1,6 @@ package com.njcn.harmonic.controller; +import cn.hutool.core.date.DateUtil; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; @@ -124,13 +125,11 @@ public class PollutionSubstationController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiOperation(value ="监测点谐波污染值列表",produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) - @GetMapping(value ="/downPollutionLineCalc",produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) - public HttpResult> downPollutionLineCalc(@RequestParam(value = "startTime") String startTime, - @RequestParam(value = "endTime") String endTime) { + @PostMapping(value ="/downPollutionLineCalc",produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) + public HttpResult> downPollutionLineCalc(@RequestBody StatSubstationBizBaseParam param) { String methodDescribe = getMethodDescribe("getSubstationInfo"); - StatSubstationBizBaseParam param=new StatSubstationBizBaseParam(); - param.setStartTime(startTime); - param.setEndTime(endTime); + param.setStartTime(DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())).toString()); + param.setEndTime(DateUtil.endOfDay(DateUtil.parse(param.getEndTime())).toString()); List linePollutions = pollutionSubstationService.downPollutionLineCalc(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, linePollutions, methodDescribe); } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java index 291b8b293..1038b302e 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java @@ -972,25 +972,27 @@ public class PollutionSubstationServiceImpl extends ServiceImpl downPollutionLineCalc(StatSubstationBizBaseParam param) { - String startDate = DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())).toString(); - String endDate = DateUtil.endOfDay(DateUtil.parse(param.getEndTime())).toString(); - List finalLinePollutionList = pollutionCalcList(startDate, endDate); + List finalLinePollutionList = pollutionCalcList(param); // 全部监测点计算完毕后根据污染值从大到小进行排序 finalLinePollutionList = finalLinePollutionList.stream() - .sorted(Comparator.comparing(LinePollution::getVHarmonicValue).reversed()) + .sorted(Comparator.comparing(LinePollution::getHarmonicValue).reversed()) .collect(Collectors.toList()); return finalLinePollutionList; } - private List pollutionCalcList(String startDate,String endDate) { + private List pollutionCalcList(StatSubstationBizBaseParam param) { + String startDate = param.getStartTime(); + String endDate = param.getEndTime(); List linePollutionList = new ArrayList<>(); - List lineIdList = commTerminalGeneralClient.getRunMonitorIds().getData(); GridDiagramParam eventParam = new GridDiagramParam(); + List lineIdList = generalDeviceInfoClient.deptGetRunLine(param.getId()).getData(); + + eventParam.setIds(lineIdList); - eventParam.setSearchBeginTime(startDate); - eventParam.setSearchEndTime(endDate); + eventParam.setSearchBeginTime(param.getStartTime()); + eventParam.setSearchEndTime(param.getEndTime()); List eventCounts = detailFeignClient.getEventCount(eventParam).getData(); Map eventMap = new HashMap<>(); @@ -1011,14 +1013,11 @@ public class PollutionSubstationServiceImpl extends ServiceImpl onLineRateVOS = generalDeviceInfoClient.getOnlineRateByDevIds(onlineRateParam).getData(); Map onlineRateMap = onLineRateVOS.stream().collect(Collectors.toMap(RStatOnlinerateVO::getDevIndex, RStatOnlinerateVO::getOnlineRate)); - List dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.POLLUTION_CALC.getCode()).getData(); - Map dictData = dictDataList.stream().collect(Collectors.toMap(DictData::getCode, DictData::getId)); - String vHarmonicLimit = dictData.get(DicDataEnum.V_HARMONIC_LIMIT.getCode()); - String iAllLimit = dictData.get(DicDataEnum.I_ALL_LIMIT.getCode()); - List rMpPollutionDPOS = rMpPollutionDPOMapper.selectSumList(lineIdList, Arrays.asList(vHarmonicLimit, iAllLimit), startDate, endDate); + List rMpPollutionDPOS = rMpPollutionDPOMapper.selectSumList(lineIdList, param.getIds(), startDate, endDate); Map calcMap = new HashMap<>(); if (CollUtil.isNotEmpty(rMpPollutionDPOS)) { - calcMap.putAll(rMpPollutionDPOS.stream().collect(Collectors.toMap(x -> x.getLineId() + "_" + x.getPollutionType(), RMpPollutionDPO::getValue))); + //谐波电压 + calcMap.putAll(rMpPollutionDPOS.stream().collect(Collectors.toMap(x -> x.getLineId(), RMpPollutionDPO::getValue))); } if (CollUtil.isNotEmpty(lineIdList)) { // 获取谐波电压数据&总畸变率&越限限值计算基础污染值 @@ -1027,7 +1026,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl100?100.0:integrityMap.get(lineId)); //获取监测点限值 Overlimit overlimit = commTerminalGeneralClient.getOverLimitData(lineId).getData(); LineDevGetDTO lineDetailData = commTerminalGeneralClient.getMonitorDetail(lineId).getData(); @@ -1037,10 +1036,8 @@ public class PollutionSubstationServiceImpl extends ServiceImpl100?100.0:integrityMap.get(lineId):0.0); // 获取暂态数据 BeanUtil.copyProperties(eventMap.get(lineId), linePollution); //获取该监测点其他元信息 @@ -1060,9 +1057,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl loadTypeLineList = pollutionCalcList(startDate, endDate); + List loadTypeLineList = pollutionCalcList(param); /** * 1、首先过滤:重要变电站、一类变电站、跨省计量关点 todo...待优化 * 2、过滤后,以监测对象分组统计数据有多个测点的需要出结果 @@ -1081,14 +1076,11 @@ public class PollutionSubstationServiceImpl extends ServiceImpl o.getVHarmonicValue()) + .mapToDouble(o -> o.getHarmonicValue()) .sum(); objPollution.setObjVValue(PubUtils.doubleRound(2, objVValue) + ""); - double objIValue = linePollutions.stream() - .mapToDouble(o -> o.getIHarmonicValue()) - .sum(); - objPollution.setObjIValue(PubUtils.doubleRound(2, objIValue) + ""); + // 处理该监测对象下面监测点的信息 List loadTypeLineItemPollutions = new ArrayList<>(); @@ -1104,15 +1096,13 @@ public class PollutionSubstationServiceImpl extends ServiceImpl linePollutionList = pollutionCalcList(startDate, endDate); + List linePollutionList = pollutionCalcList(param); // 整合变电站待导出的数据 List gdPollutionList = new ArrayList<>(); // 以供电公司分组 @@ -1147,19 +1137,13 @@ public class PollutionSubstationServiceImpl extends ServiceImpl o.getVHarmonicValue()) + .mapToDouble(o -> o.getHarmonicValue()) .average() .orElse(0.0); // 电网侧污染值 powerFlagPollution1.setPowerVValue(PubUtils.doubleRound(2, subVValue) + ""); - // 计算电网侧下所有监测点谐波电流平均污染值 - double subIValue = temp.stream() - .mapToDouble(o -> o.getIHarmonicValue()) - .average() - .orElse(0.0); - // 电网侧污染值 - powerFlagPollution1.setPowerIValue(PubUtils.doubleRound(2, subIValue) + ""); + // 设备信息 for (LinePollution linePollution : temp) { @@ -1185,19 +1169,13 @@ public class PollutionSubstationServiceImpl extends ServiceImpl o.getVHarmonicValue()) + .mapToDouble(o -> o.getHarmonicValue()) .average() .orElse(0.0); // 电网侧污染值 powerFlagPollution2.setPowerVValue(PubUtils.doubleRound(2, subVValue) + ""); - // 计算电网侧下所有监测点谐波电流平均污染值 - double subIValue = temp1.stream() - .mapToDouble(o -> o.getIHarmonicValue()) - .average() - .orElse(0.0); // 电网侧污染值 - powerFlagPollution2.setPowerIValue(PubUtils.doubleRound(2, subIValue) + ""); for (LinePollution linePollution : temp1) { LineItemPollution lineItemPollution = new LineItemPollution(); BeanUtil.copyProperties(linePollution, lineItemPollution, true); @@ -1236,7 +1214,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl