1.pms3.0稳态指标和暂态指标中部分部门排序

This commit is contained in:
wr
2024-02-02 10:23:10 +08:00
parent e8e0572485
commit a5119bbec0
11 changed files with 59 additions and 32 deletions

View File

@@ -18,10 +18,7 @@ import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -104,7 +101,7 @@ public class RStatEventController extends BaseController {
@PostMapping("/getEventBenchmarkLevelList")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("区域暂态电能质量水平评估")
public HttpResult<List<RStatEventMVO.Vo>> getEventBenchmarkLevelList(StatSubstationBizBaseParam param) {
public HttpResult<List<RStatEventMVO.Vo>> getEventBenchmarkLevelList(@RequestBody StatSubstationBizBaseParam param) {
String methodDescribe = getMethodDescribe("getEventBenchmarkLevelList");
List<RStatEventMVO.Vo> eventBenchmarkLevelList = rStatEventYService.getEventBenchmarkLevelList(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eventBenchmarkLevelList, methodDescribe);

View File

@@ -50,7 +50,7 @@
<select id="selectEventBenchmarkLevel" resultType="com.njcn.event.pojo.vo.RStatEventMVO$Vo">
SELECT
org_no as orgId,
measurement_type_class,
measurement_type_class as eventType,
SUM(IF(`event_type`=#{map.dip},event_count,0)) as eventCount,
SUM(IF(`event_type`=#{map.rise},event_count,0)) as riseCount,
SUM(IF(`event_type`=#{map.interrupt},event_count,0)) as interruptCount
@@ -84,9 +84,8 @@
AND data_date &lt;= #{param.endTime}
</if>
</where>
GROUP BY
org_no,monitoring_object
org_no,measurement_type_class
</select>
</mapper>

View File

@@ -230,12 +230,17 @@ public class RStatEventYServiceImpl extends ServiceImpl<RStatEventYMapper, RStat
});
//数据分页查询
List<RStatEventMVO.Vo> vos = this.baseMapper.selectEventBenchmarkLevel(ids, param, map, data.getId());
Map<String, String> deptDTOMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getCode, DeptDTO::getName));
vos.forEach(vo -> {
if (deptDTOMap.containsKey(vo.getOrgId())) {
vo.setOrgName(deptDTOMap.get(vo.getOrgId()));
}
});
if(CollUtil.isNotEmpty(vos)){
Map<String, DeptDTO> deptDTOMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getCode, Function.identity()));
vos.forEach(vo -> {
if (deptDTOMap.containsKey(vo.getOrgId())) {
DeptDTO deptDTO = deptDTOMap.get(vo.getOrgId());
vo.setOrgName(deptDTO.getName());
vo.setSort(deptDTO.getSort());
}
});
vos.sort(Comparator.comparing(RStatEventMVO.Vo::getSort).reversed());
}
return vos;
}

View File

@@ -2,6 +2,7 @@ package com.njcn.event.service.majornetwork.Impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.NumberUtil;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.device.pms.api.MonitorClient;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
@@ -29,6 +30,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -106,14 +108,18 @@ public class StatisticsOfTransientIndicatorssServiceImpl implements StatisticsOf
}
for (RStatOrgVO rStatOrgVO : result) {
if(rStatOrgVO.getEventMeasurementAverage()!=0&&rStatOrgVO.getEffectiveMeasurementAverage()!=0){
rStatOrgVO.setEventMeasurementRatioAverage(String.valueOf(Double.parseDouble(
df.format(((rStatOrgVO.getEventMeasurementAverage() * 1.0) / (rStatOrgVO.getAllCount() * 1.0)) * 100))));
double v = Double.parseDouble(
df.format(((rStatOrgVO.getEventMeasurementAverage() * 1.0) / (rStatOrgVO.getAllCount() * 1.0)) * 100));
BigDecimal round = NumberUtil.round(v, 2);
rStatOrgVO.setEventMeasurementRatioAverage(round.toString());
}else{
rStatOrgVO.setEventMeasurementRatioAverage("0");
}
if(rStatOrgVO.getEventMeasurementAccrued()!=0&&rStatOrgVO.getEffectiveMeasurementAccrued()!=0){
rStatOrgVO.setEventMeasurementRatioAccrued(String.valueOf(Double.parseDouble(
df.format(((rStatOrgVO.getEventMeasurementAccrued() * 1.0) / (rStatOrgVO.getAllCount() * 1.0)) * 100))));
double v = Double.parseDouble(
df.format(((rStatOrgVO.getEventMeasurementAccrued() * 1.0) / (rStatOrgVO.getAllCount() * 1.0)) * 100));
BigDecimal round = NumberUtil.round(v, 2);
rStatOrgVO.setEventMeasurementRatioAccrued(round.toString());
}else{
rStatOrgVO.setEventMeasurementRatioAccrued("0");
}
@@ -124,7 +130,7 @@ public class StatisticsOfTransientIndicatorssServiceImpl implements StatisticsOf
return result.stream().peek(vo -> {
vo.setOrgName(deptDTOMap.get(vo.getOrgNo()).getName());
vo.setSort(deptDTOMap.get(vo.getOrgNo()).getSort());
}).sorted(Comparator.comparing(RStatOrgVO::getSort)).collect(Collectors.toList());
}).sorted(Comparator.comparing(RStatOrgVO::getSort).reversed()).collect(Collectors.toList());
}
@@ -252,8 +258,7 @@ public class StatisticsOfTransientIndicatorssServiceImpl implements StatisticsOf
* @return 变电站暂态指标分类统计表
*/
@Override
public List<RStatSubstationVO> getRStatSubstation
(UniversalFrontEndParam param) {
public List<RStatSubstationVO> getRStatSubstation(UniversalFrontEndParam param) {
//获取所有子部门信息
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
if (CollectionUtil.isEmpty(deptDTOList)) {
@@ -304,19 +309,25 @@ public class StatisticsOfTransientIndicatorssServiceImpl implements StatisticsOf
// 将变电站信息根据变电站id转换成map集合
Map<String, StatationStat> powerMap = powerInfo.stream().collect(Collectors.toMap(StatationStat::getPowerId, StatationStat -> StatationStat));
// 属性赋值
return result.stream().peek(vo -> {
List<RStatSubstationVO> collect = result.stream().peek(vo -> {
String substationId = vo.getSubstationId();
vo.setDeptId(powerMap.get(substationId).getOrgId());
vo.setSubstationName(powerMap.get(substationId).getPowerName());
String deptId = vo.getDeptId();
for (DeptDTO deptDTO : deptDTOList) {
if (deptId.equals(deptDTO.getCode())){
if (deptId.equals(deptDTO.getCode())) {
vo.setDeptName(deptDTO.getName());
vo.setSort(deptDTO.getSort());
}
}
}).collect(Collectors.toList());
if (CollUtil.isEmpty(collect)){
collect.sort(Comparator.comparing(RStatSubstationVO::getSort).reversed());
}
return collect;
}
/**
* 获取主网的id
*