1.冀北电网一张图,区域终端统计,监测点分布统计修改
This commit is contained in:
@@ -105,4 +105,26 @@ public class GridDiagramVO {
|
|||||||
private Float outOfStandardRate;
|
private Float outOfStandardRate;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class DevData {
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "orgId", value = "单位id")
|
||||||
|
private String orgId;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "orgName", value = "单位名称")
|
||||||
|
private String orgName;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "onLineRate", value = "运行个数")
|
||||||
|
private Long runNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "integrityRate", value = "检修个数")
|
||||||
|
private Long overhaulNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "outOfStandardRate", value = "退役个数")
|
||||||
|
private Long refundNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "onLineRate", value = "数据在线率")
|
||||||
|
private Float onLineRate;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,6 +75,15 @@ public class GridDiagramController extends BaseController {
|
|||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, gridDiagramDevData, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, gridDiagramDevData, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/getGridDiagramDevDataList")
|
||||||
|
@ApiOperation("区域终端统计")
|
||||||
|
public HttpResult<List<GridDiagramVO.DevData>> getGridDiagramDevDataList(@RequestBody GridDiagramParam param){
|
||||||
|
String methodDescribe = getMethodDescribe("getGridDiagramDevDataList");
|
||||||
|
List<GridDiagramVO.DevData> gridDiagramDevDataList = gridDiagramService.getGridDiagramDevDataList(param);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, gridDiagramDevDataList, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/getGridDiagramLineTendency")
|
@PostMapping("/getGridDiagramLineTendency")
|
||||||
@ApiOperation("监测点趋势分析")
|
@ApiOperation("监测点趋势分析")
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
</select>
|
</select>
|
||||||
<select id="selectTotalIntegrityByLineIds" resultType="java.lang.Float">
|
<select id="selectTotalIntegrityByLineIds" resultType="java.lang.Float">
|
||||||
select
|
select
|
||||||
ROUND( sum(real_time)/sum(due_time)*100,2) as integrityRate
|
IFNULL(ROUND( sum(real_time)/sum(due_time)*100,2),0) as integrityRate
|
||||||
from
|
from
|
||||||
r_stat_integrity_d
|
r_stat_integrity_d
|
||||||
<where>
|
<where>
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
</select>
|
</select>
|
||||||
<select id="getTotalOnlineRates" resultType="java.lang.Float">
|
<select id="getTotalOnlineRates" resultType="java.lang.Float">
|
||||||
select
|
select
|
||||||
ROUND( sum(online_min)/(sum(online_min) + sum(offline_min))*100,2) as online_rate
|
IFNULL(ROUND( sum(online_min)/(sum(online_min) + sum(offline_min))*100,2),0) as online_rate
|
||||||
from r_stat_onlinerate_d
|
from r_stat_onlinerate_d
|
||||||
<where>
|
<where>
|
||||||
<if test="param!=null and param.ids != null and param.ids.size > 0">
|
<if test="param!=null and param.ids != null and param.ids.size > 0">
|
||||||
|
|||||||
@@ -49,6 +49,18 @@ public interface GridDiagramService {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
List<GridDiagramVO.DeviceData> getGridDiagramDevData(GridDiagramParam param);
|
List<GridDiagramVO.DeviceData> getGridDiagramDevData(GridDiagramParam param);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 终端统计详细列表
|
||||||
|
* @param
|
||||||
|
* @Author: wr
|
||||||
|
*/
|
||||||
|
|
||||||
|
List<GridDiagramVO.DevData> getGridDiagramDevDataList(GridDiagramParam param);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------市级---------------------------------------
|
//---------------------------------------------------市级---------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -361,6 +361,48 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<GridDiagramVO.DevData> getGridDiagramDevDataList(GridDiagramParam param) {
|
||||||
|
List<GridDiagramVO.DevData> info=new ArrayList<>();
|
||||||
|
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfoAsDept(param.getDeviceInfoParam(), null, Stream.of(1).collect(Collectors.toList()));
|
||||||
|
List<String> devIds = generalDeviceDTOList.stream().flatMap(x -> x.getDeviceIndexes().stream()).collect(Collectors.toList());
|
||||||
|
//终端信息
|
||||||
|
List<Device> devList =new ArrayList<>();
|
||||||
|
if(CollUtil.isNotEmpty(devIds)){
|
||||||
|
devList = deviceService.list(new LambdaQueryWrapper<Device>().in(CollUtil.isNotEmpty(devIds), Device::getId, devIds));
|
||||||
|
}
|
||||||
|
GridDiagramVO.DevData data;
|
||||||
|
OnlineRateParam onlineRateParam = new OnlineRateParam();
|
||||||
|
onlineRateParam.setStartTime(param.getSearchBeginTime());
|
||||||
|
onlineRateParam.setEndTime(param.getSearchEndTime());
|
||||||
|
for (GeneralDeviceDTO dto : generalDeviceDTOList) {
|
||||||
|
List<String> list = new ArrayList<>();
|
||||||
|
for (int i = 0; i < 3; i++) {
|
||||||
|
int finalI = i;
|
||||||
|
List<String> devices = devList.stream()
|
||||||
|
.filter(x->dto.getDeviceIndexes().contains(x.getId()))
|
||||||
|
.filter(x -> finalI == x.getRunFlag())
|
||||||
|
.map(Device::getId).distinct().collect(Collectors.toList());
|
||||||
|
list.add(String.valueOf(devices.size()));
|
||||||
|
if (i == 0) {
|
||||||
|
onlineRateParam.setIds(devices);
|
||||||
|
list.add(String.valueOf(onLineRateDMapper.getTotalOnlineRates(onlineRateParam)));
|
||||||
|
} else {
|
||||||
|
list.add(String.valueOf(3.14159));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data=new GridDiagramVO.DevData();
|
||||||
|
data.setOrgId(dto.getIndex());
|
||||||
|
data.setOrgName(dto.getName());
|
||||||
|
data.setRunNum(Long.valueOf(list.get(0)));
|
||||||
|
data.setOverhaulNum(Long.valueOf(list.get(2)));
|
||||||
|
data.setRefundNum(Long.valueOf(list.get(4)));
|
||||||
|
data.setOnLineRate(Float.valueOf(list.get(1)));
|
||||||
|
info.add(data);
|
||||||
|
}
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getGridDiagramCityDev(GridDiagramParam param) {
|
public List<String> getGridDiagramCityDev(GridDiagramParam param) {
|
||||||
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfoAsDept(param.getDeviceInfoParam(), null, Stream.of(1).collect(Collectors.toList()));
|
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfoAsDept(param.getDeviceInfoParam(), null, Stream.of(1).collect(Collectors.toList()));
|
||||||
|
|||||||
@@ -3,8 +3,10 @@ package com.njcn.harmonic.service.majornetwork.impl;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.njcn.common.pojo.dto.SimpleDTO;
|
||||||
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
||||||
import com.njcn.device.pq.api.LineIntegrityClient;
|
import com.njcn.device.pq.api.LineIntegrityClient;
|
||||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||||
@@ -21,6 +23,7 @@ import com.njcn.harmonic.mapper.RStatLimitTargetMapper;
|
|||||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||||
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
||||||
import com.njcn.harmonic.service.majornetwork.RStatLimitService;
|
import com.njcn.harmonic.service.majornetwork.RStatLimitService;
|
||||||
|
import com.njcn.system.pojo.enums.StatisticsEnum;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -60,7 +63,6 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
|||||||
@Override
|
@Override
|
||||||
public List<GridDiagramVO.LineData> getGridDiagramLineData(DeviceInfoParam.BusinessParam deviceInfoParam) {
|
public List<GridDiagramVO.LineData> getGridDiagramLineData(DeviceInfoParam.BusinessParam deviceInfoParam) {
|
||||||
List<GridDiagramVO.LineData> info=new ArrayList<>();
|
List<GridDiagramVO.LineData> info=new ArrayList<>();
|
||||||
|
|
||||||
List<GeneralDeviceDTO> data = generalDeviceInfoClient.getPracticalRunDeviceInfo(deviceInfoParam).getData();
|
List<GeneralDeviceDTO> data = generalDeviceInfoClient.getPracticalRunDeviceInfo(deviceInfoParam).getData();
|
||||||
List<GeneralDeviceDTO> list = data.stream().sorted(Comparator.comparing(x -> x.getLineIndexes().size(),Comparator.reverseOrder())).collect(Collectors.toList());
|
List<GeneralDeviceDTO> list = data.stream().sorted(Comparator.comparing(x -> x.getLineIndexes().size(),Comparator.reverseOrder())).collect(Collectors.toList());
|
||||||
//终端总数量
|
//终端总数量
|
||||||
@@ -89,39 +91,49 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
|||||||
}
|
}
|
||||||
List<GeneralDeviceDTO> topList=new ArrayList<>();
|
List<GeneralDeviceDTO> topList=new ArrayList<>();
|
||||||
List<GeneralDeviceDTO> otherList=new ArrayList<>();
|
List<GeneralDeviceDTO> otherList=new ArrayList<>();
|
||||||
if(list.size()>4){
|
if(ObjectUtil.isNotNull(deviceInfoParam.getStatisticalType())){
|
||||||
topList.addAll(list.subList(0, 4));
|
SimpleDTO statisticalType = deviceInfoParam.getStatisticalType();
|
||||||
otherList.addAll(list.subList(4, list.size()));
|
if(!StatisticsEnum.POWER_NETWORK.getCode().equals(statisticalType.getCode())){
|
||||||
}else{
|
if(list.size()>4){
|
||||||
if(list.size()>3){
|
topList.addAll(list.subList(0, 4));
|
||||||
topList.addAll(list.subList(0, 3));
|
otherList.addAll(list.subList(4, list.size()));
|
||||||
otherList.addAll(list.subList(3, list.size()));
|
|
||||||
}else{
|
|
||||||
if(list.size()>2){
|
|
||||||
topList.addAll(list.subList(0, 2));
|
|
||||||
otherList.addAll(list.subList(2, list.size()));
|
|
||||||
}else{
|
}else{
|
||||||
topList.addAll(list.subList(0, 1));
|
if(list.size()>3){
|
||||||
otherList.addAll(list.subList(1, list.size()));
|
topList.addAll(list.subList(0, 3));
|
||||||
|
otherList.addAll(list.subList(3, list.size()));
|
||||||
|
}else{
|
||||||
|
if(list.size()>2){
|
||||||
|
topList.addAll(list.subList(0, 2));
|
||||||
|
otherList.addAll(list.subList(2, list.size()));
|
||||||
|
}else{
|
||||||
|
topList.addAll(list.subList(0, 1));
|
||||||
|
otherList.addAll(list.subList(1, list.size()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
topList.addAll(list);
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
topList.addAll(list);
|
||||||
}
|
}
|
||||||
GridDiagramVO.LineData lineData;
|
GridDiagramVO.LineData lineData;
|
||||||
for (GeneralDeviceDTO dto : topList) {
|
for (GeneralDeviceDTO dto : topList) {
|
||||||
lineData=new GridDiagramVO.LineData();
|
lineData=new GridDiagramVO.LineData();
|
||||||
lineData.setOrgId(dto.getIndex());
|
lineData.setOrgId(dto.getIndex());
|
||||||
lineData.setOrgName(dto.getName()+"("+dto.getLineIndexes().size()+")");
|
lineData.setOrgName(dto.getName()+"\n("+dto.getLineIndexes().size()+")");
|
||||||
onLineAndIntegrity(dto.getLineIndexes(), integrityList, dto.getDeviceIndexes(), onlineRateList,limitTargetList, lineData);
|
onLineAndIntegrity(dto.getLineIndexes(), integrityList, dto.getDeviceIndexes(), onlineRateList,limitTargetList, lineData);
|
||||||
info.add(lineData);
|
info.add(lineData);
|
||||||
}
|
}
|
||||||
List<String> otherDevIds = otherList.stream().flatMap(x -> x.getDeviceIndexes().stream()).distinct().collect(Collectors.toList());
|
if(CollUtil.isNotEmpty(otherList)){
|
||||||
List<String> otherLineIds = otherList.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList());
|
List<String> otherDevIds = otherList.stream().flatMap(x -> x.getDeviceIndexes().stream()).distinct().collect(Collectors.toList());
|
||||||
lineData=new GridDiagramVO.LineData();
|
List<String> otherLineIds = otherList.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList());
|
||||||
lineData.setOrgId("123456");
|
lineData=new GridDiagramVO.LineData();
|
||||||
lineData.setOrgName("其他("+otherLineIds.size()+")");
|
lineData.setOrgId("123456");
|
||||||
onLineAndIntegrity(otherLineIds, integrityList, otherDevIds, onlineRateList,limitTargetList, lineData);
|
lineData.setOrgName("其他\n("+otherLineIds.size()+")");
|
||||||
info.add(lineData);
|
onLineAndIntegrity(otherLineIds, integrityList, otherDevIds, onlineRateList,limitTargetList, lineData);
|
||||||
|
info.add(lineData);
|
||||||
|
}
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user