冀北电网一张图

This commit is contained in:
wr
2024-04-28 17:53:05 +08:00
parent 6cb222359f
commit 17add817e0
3 changed files with 58 additions and 13 deletions

View File

@@ -86,4 +86,14 @@ public class GridDiagramController extends BaseController {
Map<String, Long> gridDiagramDevTendency = gridDiagramService.getGridDiagramDevTendency(param,6);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, gridDiagramDevTendency, methodDescribe);
}
//---------------------------------------------------市级---------------------------------------
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getGridDiagramCityDev")
@ApiOperation("监测终端状态")
public HttpResult<List<String>> getGridDiagramCityDev(@RequestBody GridDiagramParam param){
String methodDescribe = getMethodDescribe("getGridDiagramCityDev");
List<String> gridDiagramCityDev = gridDiagramService.getGridDiagramCityDev(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, gridDiagramCityDev, methodDescribe);
}
}

View File

@@ -47,5 +47,15 @@ public interface GridDiagramService {
*/
List<GridDiagramVO.DeviceData> getGridDiagramDevData(GridDiagramParam param);
//---------------------------------------------------市级---------------------------------------
/**
* @Description: 监测终端状态
* @param
* @Author: wr
*/
List<String> getGridDiagramCityDev(GridDiagramParam param);
}

View File

@@ -8,7 +8,6 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.njcn.common.pojo.dto.SimpleDTO;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
@@ -16,8 +15,8 @@ import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.device.pq.mapper.RStatIntegrityDMapper;
import com.njcn.device.pq.mapper.RStatOnlinerateDMapper;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.param.GridDiagramParam;
import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.po.Device;
import com.njcn.device.pq.pojo.po.Line;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
@@ -33,17 +32,18 @@ import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @author wr
* @description
@@ -154,7 +154,7 @@ public class GridDiagramServiceImpl implements GridDiagramService {
private void statisticsDataList(List<GridDiagramVO.LineStatisticsData> statisticsData, List<LineDevGetDTO> lineBaseList, String value, List<RStatOnlinerateD> onlineRateByDevIds, List<RStatIntegrityD> onIntegrityByIds) {
//监测点集合
List<String> lineIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
List<String> onLineNumIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())&&1==x.getComFlag()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
List<String> onLineNumIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel()) && 1 == x.getComFlag()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
//终端id集合
List<String> devIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())).map(LineDevGetDTO::getDevId).distinct().collect(Collectors.toList());
@@ -184,7 +184,7 @@ public class GridDiagramServiceImpl implements GridDiagramService {
private void gwStatisticsDataList(List<GridDiagramVO.LineStatisticsData> statisticsData, List<LineDevGetDTO> lineBaseList, String value, List<RStatOnlinerateD> onlineRateByDevIds, List<RStatIntegrityD> onIntegrityByIds) {
//监测点集合
List<String> lineIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())).filter(x -> 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
List<String> onLineNumIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())&&1==x.getComFlag()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
List<String> onLineNumIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel()) && 1 == x.getComFlag()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
//终端id集合
List<String> devIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())).filter(x -> 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getDevId).distinct().collect(Collectors.toList());
@@ -200,7 +200,7 @@ public class GridDiagramServiceImpl implements GridDiagramService {
List<String> devIdsAll = lineBaseList.stream().filter(x -> 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getDevId).distinct().collect(Collectors.toList());
//监测点集合
List<String> lineIdsAll = lineBaseList.stream().filter(x -> 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
List<String> onLineNumAll = lineBaseList.stream().filter(x -> 1 == x.getComFlag()&&1 == x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
List<String> onLineNumAll = lineBaseList.stream().filter(x -> 1 == x.getComFlag() && 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
GridDiagramVO.LineStatisticsData lineStatisticsData = new GridDiagramVO.LineStatisticsData();
lineStatisticsData.setNum(lineIdsAll.size());
lineStatisticsData.setOnLineNum(onLineNumAll.size());
@@ -285,7 +285,7 @@ public class GridDiagramServiceImpl implements GridDiagramService {
DateTime parse;
if (1 == param.getType()) {
dateField = DateField.YEAR;
parse =DateUtil.offset(DateUtil.parse(param.getSearchBeginTime()),DateField.YEAR,-5);
parse = DateUtil.offset(DateUtil.parse(param.getSearchBeginTime()), DateField.YEAR, -5);
} else {
dateField = DateField.MONTH;
parse = DateUtil.parse(param.getSearchBeginTime());
@@ -330,10 +330,10 @@ public class GridDiagramServiceImpl implements GridDiagramService {
.ge(StrUtil.isNotBlank(param.getSearchBeginTime()), "time_id", DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())))
.le(StrUtil.isNotBlank(param.getSearchEndTime()), "time_id", DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())))
.groupBy("dev_index"));
List<GridDiagramVO.DeviceData> info=new ArrayList<>();
List<GridDiagramVO.DeviceData> info = new ArrayList<>();
GridDiagramVO.DeviceData data;
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
data=new GridDiagramVO.DeviceData();
data = new GridDiagramVO.DeviceData();
data.setOrgId(generalDeviceDTO.getIndex());
data.setOrgName(generalDeviceDTO.getName());
data.setDevCount(generalDeviceDTO.getDeviceIndexes().stream().distinct().count());
@@ -350,6 +350,31 @@ public class GridDiagramServiceImpl implements GridDiagramService {
return info;
}
@Override
public List<String> getGridDiagramCityDev(GridDiagramParam param) {
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 = deviceService.list(new LambdaQueryWrapper<Device>().in(CollUtil.isNotEmpty(devIds), Device::getId, devIds));
OnlineRateParam onlineRateParam = new OnlineRateParam();
onlineRateParam.setStartTime(param.getSearchBeginTime());
onlineRateParam.setEndTime(param.getSearchEndTime());
List<String> list = new ArrayList<>();
for (int i = 0; i < 3; i++) {
int finalI = i;
List<String> devices = devList.stream().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));
}
}
return list;
}
private void getDevStatisticsData(List<GridDiagramVO.StatisticsData> statisticsData, List<GridDiagramVO.StatisticsData> gwStatisticsData, List<LineDevGetDTO> lineBaseList, List<String> voltageIds) {
long countOne = 0;
@@ -362,7 +387,7 @@ public class GridDiagramServiceImpl implements GridDiagramService {
data = new GridDiagramVO.StatisticsData();
int finalI = i;
//todo 0
long count = lineBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).distinct().count();
long count = lineBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).map(LineDevGetDTO::getDevId).distinct().count();
data.setNumOne(count);
long count1 = lineBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getDevId).distinct().count();
data.setNumTwo(count1);