1.调整稳态电能质量水平评估返回默认信息
This commit is contained in:
@@ -8,14 +8,6 @@ import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.device.pq.pojo.param.DevRunEvaluateParam;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.vo.DeviceRunEvaluateVO;
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
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.device.pq.pojo.dto.DevComFlagDTO;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.po.Device;
|
||||
import com.njcn.device.pq.pojo.vo.TerminalEvaluateAreaVO;
|
||||
import com.njcn.device.pq.service.DeviceRunEvaluateService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
@@ -28,10 +20,6 @@ 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 org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -60,7 +48,7 @@ public class DeviceRunEvaluateController extends BaseController {
|
||||
|
||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
||||
@PostMapping("/getRunEvaluateDetail")
|
||||
@ApiOperation("终端运行评价")
|
||||
@ApiOperation("异常终端详情")
|
||||
public HttpResult<List<DeviceRunEvaluateVO>> getRunEvaluateDetail(@RequestBody @Validated DevRunEvaluateParam param) {
|
||||
String methodDescribe = getMethodDescribe("getRunEvaluateDetail");
|
||||
List<DeviceRunEvaluateVO> runEvaluate = deviceRunEvaluateService.getRunEvaluateDetail(param);
|
||||
@@ -78,7 +66,6 @@ public class DeviceRunEvaluateController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
||||
@PostMapping("/lastWeekTrend")
|
||||
@ApiOperation("最近一周终端评价趋势")
|
||||
|
||||
@@ -32,9 +32,7 @@ import com.njcn.harmonic.api.RStatLimitRateDClient;
|
||||
import com.njcn.harmonic.pojo.param.RStatLimitQueryParam;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.supervision.api.UserLedgerFeignClient;
|
||||
import com.njcn.supervision.pojo.param.user.UserReportParam;
|
||||
import com.njcn.supervision.pojo.vo.user.NewUserReportVO;
|
||||
import com.njcn.supervision.pojo.vo.user.UserLedgerVO;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -134,29 +132,11 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
||||
List<RStatLimitRateDPO> limitRateDPOS = limitRateList.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(limitRateDPOS)) {
|
||||
double overTime = limitRateDPOS.stream().mapToDouble(x -> (x.getUaberranceOvertime() +
|
||||
x.getUharm2Overtime() +
|
||||
x.getUharm3Overtime() +
|
||||
x.getUharm4Overtime() +
|
||||
x.getUharm5Overtime() +
|
||||
x.getUharm6Overtime() +
|
||||
x.getUharm7Overtime() +
|
||||
x.getUharm8Overtime() +
|
||||
x.getUharm9Overtime() +
|
||||
x.getUharm10Overtime() +
|
||||
x.getUharm11Overtime() +
|
||||
x.getUharm12Overtime() +
|
||||
x.getUharm13Overtime() +
|
||||
x.getUharm14Overtime() +
|
||||
x.getUharm15Overtime() +
|
||||
x.getUharm16Overtime() +
|
||||
x.getUharm17Overtime() +
|
||||
x.getUharm18Overtime() +
|
||||
x.getUharm19Overtime() +
|
||||
x.getUharm20Overtime() +
|
||||
x.getUharm21Overtime() +
|
||||
x.getUharm22Overtime() +
|
||||
x.getUharm23Overtime() +
|
||||
x.getUharm24Overtime() +
|
||||
x.getUharm2Overtime() + x.getUharm3Overtime() + x.getUharm4Overtime() + x.getUharm5Overtime() +
|
||||
x.getUharm6Overtime() + x.getUharm7Overtime() + x.getUharm8Overtime() + x.getUharm9Overtime() +
|
||||
x.getUharm10Overtime() + x.getUharm11Overtime() + x.getUharm12Overtime() + x.getUharm13Overtime() + x.getUharm14Overtime() +
|
||||
x.getUharm15Overtime() + x.getUharm16Overtime() + x.getUharm17Overtime() + x.getUharm18Overtime() + x.getUharm19Overtime() +
|
||||
x.getUharm20Overtime() + x.getUharm21Overtime() + x.getUharm22Overtime() + x.getUharm23Overtime() + x.getUharm24Overtime() +
|
||||
x.getUharm25Overtime())).sum();
|
||||
double allTime = limitRateDPOS.stream().mapToDouble(x -> x.getAllTime() * 25.0).sum();
|
||||
if (allTime == 0) {
|
||||
@@ -225,8 +205,6 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public List<TerminalEvaluateAreaVO> areaTerminalStatistic(DeviceInfoParam.BusinessParam businessParam) {
|
||||
List<TerminalEvaluateAreaVO> result = new ArrayList<>();
|
||||
@@ -236,30 +214,30 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
||||
//已经最底层,展示电站和用户场站
|
||||
List<MonitorInfoDTO> lineDetailList = lineMapper.getLineListByIds(generalDeviceDTOList.get(0).getLineIndexes());
|
||||
List<String> ids = lineDetailList.stream().map(MonitorInfoDTO::getId).distinct().collect(Collectors.toList());
|
||||
List<String> devIds = lineDetailList.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).distinct().collect(Collectors.toList());
|
||||
List<String> devIds = lineDetailList.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).distinct().collect(Collectors.toList());
|
||||
List<RStatIntegrityD> rStatIntegrityDList = new ArrayList<>();
|
||||
List<RStatOnlinerateD> rStatOnlinerateDList = new ArrayList<>();
|
||||
List<RStatLimitRateDPO> rStatLimitRateDPOList = new ArrayList<>();
|
||||
getData(rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,ids,devIds,businessParam.getSearchBeginTime(),businessParam.getSearchEndTime());
|
||||
getData(rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, ids, devIds, businessParam.getSearchBeginTime(), businessParam.getSearchEndTime());
|
||||
List<MonitorInfoDTO> detailList = lineDetailList.stream().filter(it -> StrUtil.isNotBlank(it.getObjId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(detailList)) {
|
||||
List<String> objIds = detailList.stream().map(MonitorInfoDTO::getObjId).distinct().collect(Collectors.toList());
|
||||
Map<String,NewUserReportVO> userReportVOMap = getUserLedgerByObjIds(objIds);
|
||||
Map<String, NewUserReportVO> userReportVOMap = getUserLedgerByObjIds(objIds);
|
||||
Map<String, List<MonitorInfoDTO>> map = detailList.stream().collect(Collectors.groupingBy(MonitorInfoDTO::getObjId));
|
||||
map.forEach((objId, list) -> {
|
||||
NewUserReportVO userLedgerVO = userReportVOMap.get(objId);
|
||||
commDataCat(list,rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,result,userLedgerVO.getProjectName());
|
||||
commDataCat(list, rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, result, userLedgerVO.getProjectName());
|
||||
});
|
||||
}
|
||||
List<MonitorInfoDTO> otherDetailList = lineDetailList.stream().filter(it -> StrUtil.isBlank(it.getObjId())).collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(otherDetailList)){
|
||||
List<String> subIds = otherDetailList.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]).collect(Collectors.toList());
|
||||
List<Line> subList = lineMapper.selectList(new LambdaQueryWrapper<Line>().in(Line::getId,subIds));
|
||||
Map<String,Line> subMap = subList.stream().collect(Collectors.toMap(Line::getId,Function.identity()));
|
||||
Map<String, List<MonitorInfoDTO>> map = otherDetailList.stream().collect(Collectors.groupingBy(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]));
|
||||
if (CollUtil.isNotEmpty(otherDetailList)) {
|
||||
List<String> subIds = otherDetailList.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]).collect(Collectors.toList());
|
||||
List<Line> subList = lineMapper.selectList(new LambdaQueryWrapper<Line>().in(Line::getId, subIds));
|
||||
Map<String, Line> subMap = subList.stream().collect(Collectors.toMap(Line::getId, Function.identity()));
|
||||
Map<String, List<MonitorInfoDTO>> map = otherDetailList.stream().collect(Collectors.groupingBy(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]));
|
||||
map.forEach((subId, list) -> {
|
||||
String name = subMap.get(subId).getName();
|
||||
commDataCat(list,rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,result,name);
|
||||
commDataCat(list, rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, result, name);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
@@ -267,8 +245,8 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
||||
List<RStatIntegrityD> rStatIntegrityDList = new ArrayList<>();
|
||||
List<RStatOnlinerateD> rStatOnlinerateDList = new ArrayList<>();
|
||||
List<RStatLimitRateDPO> rStatLimitRateDPOList = new ArrayList<>();
|
||||
getData(rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,generalDeviceDTO.getLineIndexes(),generalDeviceDTO.getDeviceIndexes(),businessParam.getSearchBeginTime(),businessParam.getSearchEndTime());
|
||||
result.add(getScoreData(generalDeviceDTO.getName(),generalDeviceDTO.getDeviceIndexes(),rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList));
|
||||
getData(rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, generalDeviceDTO.getLineIndexes(), generalDeviceDTO.getDeviceIndexes(), businessParam.getSearchBeginTime(), businessParam.getSearchEndTime());
|
||||
result.add(getScoreData(generalDeviceDTO.getName(), generalDeviceDTO.getDeviceIndexes(), rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -284,41 +262,41 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
||||
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(businessParam, Stream.of(RunFlagEnum.RUNNING.getStatus()).collect(Collectors.toList()), Stream.of(PowerFlagEnum.REAL_DEVICE.getCode()).collect(Collectors.toList()));
|
||||
if (CollectionUtil.isNotEmpty(generalDeviceDTOList)) {
|
||||
DateTime end = DateUtil.parse(businessParam.getSearchBeginTime(), DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
|
||||
DateTime start = DateUtil.offsetDay(end,-7);
|
||||
DateTime start = DateUtil.offsetDay(end, -7);
|
||||
List<DateTime> dateRange = DateUtil.rangeToList(start, end, DateField.DAY_OF_MONTH);
|
||||
for (DateTime dateTime :dateRange){
|
||||
dateList.add(DateUtil.format(dateTime,DatePattern.NORM_DATE_PATTERN));
|
||||
for (DateTime dateTime : dateRange) {
|
||||
dateList.add(DateUtil.format(dateTime, DatePattern.NORM_DATE_PATTERN));
|
||||
}
|
||||
if (generalDeviceDTOList.size() == 1 && generalDeviceDTOList.get(0).getIndex().equals(businessParam.getDeptIndex())) {
|
||||
List<MonitorInfoDTO> lineDetailList = lineMapper.getLineListByIds(generalDeviceDTOList.get(0).getLineIndexes());
|
||||
List<RStatIntegrityD> rStatIntegrityDList = new ArrayList<>();
|
||||
List<RStatOnlinerateD> rStatOnlinerateDList = new ArrayList<>();
|
||||
List<RStatLimitRateDPO> rStatLimitRateDPOList = new ArrayList<>();
|
||||
getRangeData2(rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,generalDeviceDTOList.get(0).getLineIndexes(),generalDeviceDTOList.get(0).getDeviceIndexes(),DateUtil.format(start,DatePattern.NORM_DATE_PATTERN),DateUtil.format(end,DatePattern.NORM_DATE_PATTERN));
|
||||
Map<String,List<MonitorInfoDTO>> lineMap = lineDetailList.stream().collect(Collectors.groupingBy(MonitorInfoDTO::getObjId));
|
||||
lineMap.forEach((key,detailList)->{
|
||||
getRangeData2(rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, generalDeviceDTOList.get(0).getLineIndexes(), generalDeviceDTOList.get(0).getDeviceIndexes(), DateUtil.format(start, DatePattern.NORM_DATE_PATTERN), DateUtil.format(end, DatePattern.NORM_DATE_PATTERN));
|
||||
Map<String, List<MonitorInfoDTO>> lineMap = lineDetailList.stream().collect(Collectors.groupingBy(MonitorInfoDTO::getObjId));
|
||||
lineMap.forEach((key, detailList) -> {
|
||||
if (StrUtil.isNotBlank(key)) {
|
||||
List<String> objIds = detailList.stream().map(MonitorInfoDTO::getObjId).distinct().collect(Collectors.toList());
|
||||
Map<String,NewUserReportVO> userReportVOMap = getUserLedgerByObjIds(objIds);
|
||||
Map<String, NewUserReportVO> userReportVOMap = getUserLedgerByObjIds(objIds);
|
||||
Map<String, List<MonitorInfoDTO>> map = detailList.stream().collect(Collectors.groupingBy(MonitorInfoDTO::getObjId));
|
||||
map.forEach((objId, list) -> {
|
||||
NewUserReportVO userLedgerVO = userReportVOMap.get(objId);
|
||||
nameList.add(userLedgerVO.getProjectName());
|
||||
rangeCatData(list,dateRange,rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,scoreList);
|
||||
rangeCatData(list, dateRange, rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, scoreList);
|
||||
});
|
||||
} else {
|
||||
List<String> subIds = detailList.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]).collect(Collectors.toList());
|
||||
List<Line> subList = lineMapper.selectList(new LambdaQueryWrapper<Line>().in(Line::getId, subIds));
|
||||
Map<String, Line> subMap = subList.stream().collect(Collectors.toMap(Line::getId, Function.identity()));
|
||||
Map<String, List<MonitorInfoDTO>> map = detailList.stream().collect(Collectors.groupingBy(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]));
|
||||
map.forEach((subId, list) -> {
|
||||
String name = subMap.get(subId).getName();
|
||||
nameList.add(name);
|
||||
rangeCatData(list, dateRange, rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, scoreList);
|
||||
});
|
||||
} else {
|
||||
List<String> subIds = detailList.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]).collect(Collectors.toList());
|
||||
List<Line> subList = lineMapper.selectList(new LambdaQueryWrapper<Line>().in(Line::getId,subIds));
|
||||
Map<String,Line> subMap = subList.stream().collect(Collectors.toMap(Line::getId,Function.identity()));
|
||||
Map<String, List<MonitorInfoDTO>> map = detailList.stream().collect(Collectors.groupingBy(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]));
|
||||
map.forEach((subId, list) -> {
|
||||
String name = subMap.get(subId).getName();
|
||||
nameList.add(name);
|
||||
rangeCatData(list,dateRange,rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,scoreList);
|
||||
});
|
||||
}
|
||||
});
|
||||
}else {
|
||||
} else {
|
||||
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
|
||||
if (CollUtil.isEmpty(generalDeviceDTO.getLineIndexes())) {
|
||||
continue;
|
||||
@@ -346,21 +324,21 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
||||
return lastWeekTrendVO;
|
||||
}
|
||||
|
||||
private Map<String,NewUserReportVO> getUserLedgerByObjIds(List<String> objIds){
|
||||
private Map<String, NewUserReportVO> getUserLedgerByObjIds(List<String> objIds) {
|
||||
List<NewUserReportVO> userReportVOList = userLedgerFeignClient.getUserReportByIds(objIds).getData();
|
||||
return userReportVOList.stream().collect(Collectors.toMap(NewUserReportVO::getId, Function.identity()));
|
||||
}
|
||||
|
||||
private void commDataCat(List<MonitorInfoDTO> list,List<RStatIntegrityD> rStatIntegrityDList,List<RStatOnlinerateD> rStatOnlinerateDList,List<RStatLimitRateDPO> rStatLimitRateDPOList,List<TerminalEvaluateAreaVO> result,String name){
|
||||
private void commDataCat(List<MonitorInfoDTO> list, List<RStatIntegrityD> rStatIntegrityDList, List<RStatOnlinerateD> rStatOnlinerateDList, List<RStatLimitRateDPO> rStatLimitRateDPOList, List<TerminalEvaluateAreaVO> result, String name) {
|
||||
List<String> lineIds = list.stream().map(MonitorInfoDTO::getId).collect(Collectors.toList());
|
||||
List<String> devList = list.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).collect(Collectors.toList());
|
||||
List<RStatIntegrityD> temIntegrityList = rStatIntegrityDList.stream().filter(it->lineIds.contains(it.getLineIndex())).collect(Collectors.toList());
|
||||
List<RStatLimitRateDPO> temlimitList = rStatLimitRateDPOList.stream().filter(it->lineIds.contains(it.getLineId())).collect(Collectors.toList());
|
||||
List<RStatOnlinerateD> onlineList = rStatOnlinerateDList.stream().filter(it->devList.contains(it.getDevIndex())).collect(Collectors.toList());
|
||||
result.add(getScoreData(name,devList,temIntegrityList,onlineList,temlimitList));
|
||||
List<String> devList = list.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).collect(Collectors.toList());
|
||||
List<RStatIntegrityD> temIntegrityList = rStatIntegrityDList.stream().filter(it -> lineIds.contains(it.getLineIndex())).collect(Collectors.toList());
|
||||
List<RStatLimitRateDPO> temlimitList = rStatLimitRateDPOList.stream().filter(it -> lineIds.contains(it.getLineId())).collect(Collectors.toList());
|
||||
List<RStatOnlinerateD> onlineList = rStatOnlinerateDList.stream().filter(it -> devList.contains(it.getDevIndex())).collect(Collectors.toList());
|
||||
result.add(getScoreData(name, devList, temIntegrityList, onlineList, temlimitList));
|
||||
}
|
||||
|
||||
private TerminalEvaluateAreaVO getScoreData(String name,List<String> devIds,List<RStatIntegrityD> rStatIntegrityDList,List<RStatOnlinerateD> rStatOnlinerateDList,List<RStatLimitRateDPO> rStatLimitRateDPOList) {
|
||||
private TerminalEvaluateAreaVO getScoreData(String name, List<String> devIds, List<RStatIntegrityD> rStatIntegrityDList, List<RStatOnlinerateD> rStatOnlinerateDList, List<RStatLimitRateDPO> rStatLimitRateDPOList) {
|
||||
double integrityRate = 0;
|
||||
double onlineRate = 0;
|
||||
double qualifiedRate = 0;
|
||||
@@ -370,11 +348,11 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
||||
terminalEvaluateAreaVO.setCount(devIds.size());
|
||||
if (CollectionUtil.isNotEmpty(rStatIntegrityDList)) {
|
||||
integrityRate = rStatIntegrityDList.stream().mapToDouble(it -> (double) it.getRealTime() / it.getDueTime()).average().orElse(0);
|
||||
terminalEvaluateAreaVO.setIntegrity(NumberUtil.round(integrityRate*100,2).doubleValue());
|
||||
terminalEvaluateAreaVO.setIntegrity(NumberUtil.round(integrityRate * 100, 2).doubleValue());
|
||||
}
|
||||
if (CollectionUtil.isNotEmpty(rStatOnlinerateDList)) {
|
||||
onlineRate = rStatOnlinerateDList.stream().mapToDouble(it -> (double) it.getOnlineMin() / (it.getOnlineMin() + it.getOfflineMin())).average().orElse(0);
|
||||
terminalEvaluateAreaVO.setOnline(NumberUtil.round(onlineRate*100,2).doubleValue());
|
||||
terminalEvaluateAreaVO.setOnline(NumberUtil.round(onlineRate * 100, 2).doubleValue());
|
||||
}
|
||||
if (CollectionUtil.isNotEmpty(rStatLimitRateDPOList)) {
|
||||
qualifiedRate = rStatLimitRateDPOList.stream().mapToDouble(it -> {
|
||||
@@ -389,20 +367,20 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
||||
return 1 - ((double) (limit) / it.getAllTime() * 25);
|
||||
}
|
||||
}).average().orElse(0);
|
||||
terminalEvaluateAreaVO.setQualified(NumberUtil.round(qualifiedRate*100,2).doubleValue());
|
||||
terminalEvaluateAreaVO.setQualified(NumberUtil.round(qualifiedRate * 100, 2).doubleValue());
|
||||
}
|
||||
pingFen = integrityRate * 0.5 + onlineRate * 0.2 + qualifiedRate * 0.3;
|
||||
terminalEvaluateAreaVO.setScore(BigDecimal.valueOf(pingFen*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
terminalEvaluateAreaVO.setScore(BigDecimal.valueOf(pingFen * 100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
return terminalEvaluateAreaVO;
|
||||
}
|
||||
|
||||
private void rangeCatData(List<MonitorInfoDTO> list,List<DateTime> dateRange,List<RStatIntegrityD> rStatIntegrityDList,List<RStatOnlinerateD> rStatOnlinerateDList,List<RStatLimitRateDPO> rStatLimitRateDPOList,List<List<Double>> scoreList){
|
||||
private void rangeCatData(List<MonitorInfoDTO> list, List<DateTime> dateRange, List<RStatIntegrityD> rStatIntegrityDList, List<RStatOnlinerateD> rStatOnlinerateDList, List<RStatLimitRateDPO> rStatLimitRateDPOList, List<List<Double>> scoreList) {
|
||||
List<String> lineIds = list.stream().map(MonitorInfoDTO::getId).collect(Collectors.toList());
|
||||
List<String> devList = list.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).collect(Collectors.toList());
|
||||
List<String> devList = list.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).collect(Collectors.toList());
|
||||
List<Double> scoreDetailList = new ArrayList<>();
|
||||
for (DateTime day : dateRange) {
|
||||
List<RStatIntegrityD> temIntegrityList = rStatIntegrityDList.stream().filter(it -> it.getTimeId().equals(day.toLocalDateTime().toLocalDate()) && lineIds.contains(it.getLineIndex())).collect(Collectors.toList());
|
||||
List<RStatOnlinerateD> temOnlinerateList = rStatOnlinerateDList.stream().filter(it -> it.getTimeId().equals(day.toLocalDateTime().toLocalDate())&& devList.contains(it.getDevIndex())).collect(Collectors.toList());
|
||||
List<RStatOnlinerateD> temOnlinerateList = rStatOnlinerateDList.stream().filter(it -> it.getTimeId().equals(day.toLocalDateTime().toLocalDate()) && devList.contains(it.getDevIndex())).collect(Collectors.toList());
|
||||
List<RStatLimitRateDPO> temLimitRateList = rStatLimitRateDPOList.stream().filter(it -> it.getTime().equals(day.toLocalDateTime().toLocalDate()) && lineIds.contains(it.getLineId())).collect(Collectors.toList());
|
||||
TerminalEvaluateAreaVO terminalEvaluateAreaVO = getScoreData("", new ArrayList<>(), temIntegrityList, temOnlinerateList, temLimitRateList);
|
||||
scoreDetailList.add(terminalEvaluateAreaVO.getScore());
|
||||
@@ -411,12 +389,12 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
||||
}
|
||||
|
||||
|
||||
private void getData(List<RStatIntegrityD> rStatIntegrityDList,List<RStatOnlinerateD> rStatOnlinerateDList,List<RStatLimitRateDPO> rStatLimitRateDPOList,List<String> lineIds,List<String> devIds,String startTime,String endTime){
|
||||
if(CollUtil.isNotEmpty(lineIds)){
|
||||
private void getData(List<RStatIntegrityD> rStatIntegrityDList, List<RStatOnlinerateD> rStatOnlinerateDList, List<RStatLimitRateDPO> rStatLimitRateDPOList, List<String> lineIds, List<String> devIds, String startTime, String endTime) {
|
||||
if (CollUtil.isNotEmpty(lineIds)) {
|
||||
rStatIntegrityDList.addAll(integrityDMapper.selectList(new QueryWrapper<RStatIntegrityD>()
|
||||
.select("sum(real_time) as realTime,sum(due_time) as dueTime,line_index as lineIndex")
|
||||
.in("line_index", lineIds)
|
||||
.between("time_id",startTime,endTime)
|
||||
.between("time_id", startTime, endTime)
|
||||
.groupBy("line_index")));
|
||||
RStatLimitQueryParam rStatLimitQueryParam = new RStatLimitQueryParam();
|
||||
rStatLimitQueryParam.setIds(lineIds);
|
||||
@@ -424,22 +402,22 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
||||
rStatLimitQueryParam.setEndDate(endTime);
|
||||
rStatLimitRateDPOList.addAll(rStatLimitRateDClient.monitorIdsGetLimitInfo(rStatLimitQueryParam).getData());
|
||||
}
|
||||
if(CollectionUtil.isNotEmpty(devIds)) {
|
||||
if (CollectionUtil.isNotEmpty(devIds)) {
|
||||
rStatOnlinerateDList.addAll(onLineRateDMapper.selectList(new QueryWrapper<RStatOnlinerateD>()
|
||||
.select("sum(online_min) as onlineMin,sum(offline_min) as offlineMin,dev_index as devIndex")
|
||||
.in( "dev_index", devIds)
|
||||
.between("time_id",startTime,endTime)
|
||||
.in("dev_index", devIds)
|
||||
.between("time_id", startTime, endTime)
|
||||
.groupBy("dev_index")));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void getRangeData(List<RStatIntegrityD> rStatIntegrityDList,List<RStatOnlinerateD> rStatOnlinerateDList,List<RStatLimitRateDPO> rStatLimitRateDPOList,List<String> lineIds,List<String> devIds,String startTime,String endTime){
|
||||
if(CollUtil.isNotEmpty(lineIds)){
|
||||
private void getRangeData(List<RStatIntegrityD> rStatIntegrityDList, List<RStatOnlinerateD> rStatOnlinerateDList, List<RStatLimitRateDPO> rStatLimitRateDPOList, List<String> lineIds, List<String> devIds, String startTime, String endTime) {
|
||||
if (CollUtil.isNotEmpty(lineIds)) {
|
||||
rStatIntegrityDList.addAll(integrityDMapper.selectList(new QueryWrapper<RStatIntegrityD>()
|
||||
.select("time_id as timeId,sum(real_time) as realTime,sum(due_time) as dueTime")
|
||||
.in("line_index", lineIds)
|
||||
.between("time_id",startTime,endTime)
|
||||
.between("time_id", startTime, endTime)
|
||||
.groupBy("time_id")));
|
||||
|
||||
RStatLimitQueryParam rStatLimitQueryParam = new RStatLimitQueryParam();
|
||||
@@ -448,21 +426,21 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
||||
rStatLimitQueryParam.setEndDate(endTime);
|
||||
rStatLimitRateDPOList.addAll(rStatLimitRateDClient.monitorIdsGetLimitInfo(rStatLimitQueryParam).getData());
|
||||
}
|
||||
if(CollectionUtil.isNotEmpty(devIds)) {
|
||||
if (CollectionUtil.isNotEmpty(devIds)) {
|
||||
rStatOnlinerateDList.addAll(onLineRateDMapper.selectList(new QueryWrapper<RStatOnlinerateD>()
|
||||
.select("time_id as timeId,sum(online_min) as onlineMin,sum(offline_min) as offlineMin")
|
||||
.in( "dev_index", devIds)
|
||||
.between("time_id",startTime,endTime)
|
||||
.in("dev_index", devIds)
|
||||
.between("time_id", startTime, endTime)
|
||||
.groupBy("time_id")));
|
||||
}
|
||||
}
|
||||
|
||||
private void getRangeData2(List<RStatIntegrityD> rStatIntegrityDList,List<RStatOnlinerateD> rStatOnlinerateDList,List<RStatLimitRateDPO> rStatLimitRateDPOList,List<String> lineIds,List<String> devIds,String startTime,String endTime){
|
||||
if(CollUtil.isNotEmpty(lineIds)){
|
||||
private void getRangeData2(List<RStatIntegrityD> rStatIntegrityDList, List<RStatOnlinerateD> rStatOnlinerateDList, List<RStatLimitRateDPO> rStatLimitRateDPOList, List<String> lineIds, List<String> devIds, String startTime, String endTime) {
|
||||
if (CollUtil.isNotEmpty(lineIds)) {
|
||||
rStatIntegrityDList.addAll(integrityDMapper.selectList(new QueryWrapper<RStatIntegrityD>()
|
||||
.select("time_id as timeId,line_index as lineIndex,sum(real_time) as realTime,sum(due_time) as dueTime")
|
||||
.in("line_index", lineIds)
|
||||
.between("time_id",startTime,endTime)
|
||||
.between("time_id", startTime, endTime)
|
||||
.groupBy("time_id,line_index")));
|
||||
|
||||
RStatLimitQueryParam rStatLimitQueryParam = new RStatLimitQueryParam();
|
||||
@@ -471,16 +449,13 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService {
|
||||
rStatLimitQueryParam.setEndDate(endTime);
|
||||
rStatLimitRateDPOList.addAll(rStatLimitRateDClient.monitorIdsGetLimitInfo(rStatLimitQueryParam).getData());
|
||||
}
|
||||
if(CollectionUtil.isNotEmpty(devIds)) {
|
||||
if (CollectionUtil.isNotEmpty(devIds)) {
|
||||
rStatOnlinerateDList.addAll(onLineRateDMapper.selectList(new QueryWrapper<RStatOnlinerateD>()
|
||||
.select("time_id as timeId,dev_index as devIndex,sum(online_min) as onlineMin,sum(offline_min) as offlineMin")
|
||||
.in( "dev_index", devIds)
|
||||
.between("time_id",startTime,endTime)
|
||||
.in("dev_index", devIds)
|
||||
.between("time_id", startTime, endTime)
|
||||
.groupBy("time_id,dev_index")));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
||||
//终端id集合
|
||||
List<String> devIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())).map(LineDevGetDTO::getDevId).distinct().collect(Collectors.toList());
|
||||
|
||||
gridDiagramAdd(statisticsData, onlineRateByDevIds,value, onIntegrityByIds, devIds, lineIds, onLineNumIds);
|
||||
gridDiagramAdd(statisticsData, onlineRateByDevIds, value, onIntegrityByIds, devIds, lineIds, onLineNumIds);
|
||||
|
||||
}
|
||||
|
||||
@@ -180,10 +180,10 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
||||
List<String> lineIdsAll = lineBaseList.stream().map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
|
||||
List<String> onLineNumAll = lineBaseList.stream().filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
gridDiagramAdd(statisticsData, onlineRateByDevIds,null, onIntegrityByIds, devIdsAll, lineIdsAll, onLineNumAll);
|
||||
gridDiagramAdd(statisticsData, onlineRateByDevIds, null, onIntegrityByIds, devIdsAll, lineIdsAll, onLineNumAll);
|
||||
}
|
||||
|
||||
private void gridDiagramAdd(List<GridDiagramVO.LineStatisticsData> statisticsData, List<RStatOnlinerateD> onlineRateByDevIds,String value, List<RStatIntegrityD> onIntegrityByIds, List<String> devIdsAll, List<String> lineIdsAll, List<String> onLineNumAll) {
|
||||
private void gridDiagramAdd(List<GridDiagramVO.LineStatisticsData> statisticsData, List<RStatOnlinerateD> onlineRateByDevIds, String value, List<RStatIntegrityD> onIntegrityByIds, List<String> devIdsAll, List<String> lineIdsAll, List<String> onLineNumAll) {
|
||||
GridDiagramVO.LineStatisticsData lineStatisticsData = new GridDiagramVO.LineStatisticsData();
|
||||
lineStatisticsData.setColumnName(value);
|
||||
lineStatisticsData.setNum(lineIdsAll.size());
|
||||
@@ -214,7 +214,7 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
||||
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());
|
||||
|
||||
gridDiagramAdd(statisticsData, onlineRateByDevIds,null, onIntegrityByIds, devIdsAll, lineIdsAll, onLineNumAll);
|
||||
gridDiagramAdd(statisticsData, onlineRateByDevIds, null, onIntegrityByIds, devIdsAll, lineIdsAll, onLineNumAll);
|
||||
}
|
||||
|
||||
private void onLineAndIntegrity(List<String> lineIds, List<RStatIntegrityD> onIntegrityByIds, List<String> devIds, List<RStatOnlinerateD> onlineRateByDevIds, GridDiagramVO.LineStatisticsData lineStatisticsData) {
|
||||
@@ -247,10 +247,10 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
||||
List<DictData> v = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.PANORAMIC_VOLTAGE.getCode()).getData();
|
||||
List<String> voltageIds;
|
||||
//获取电压等级550 220 110 35
|
||||
if(CollUtil.isNotEmpty(v)){
|
||||
if (CollUtil.isNotEmpty(v)) {
|
||||
List<String> vName = v.stream().map(DictData::getName).collect(Collectors.toList());
|
||||
voltageIds = dictDataList.stream().filter(item -> vName.contains(item.getName())).sorted(Comparator.comparing(DictData::getSort).reversed()).map(DictData::getId).collect(Collectors.toList());
|
||||
}else{
|
||||
} else {
|
||||
voltageIds = dictDataList.stream().filter(item -> Objects.equals(DicDataEnum.DY_500KV.getCode(), item.getCode()) || Objects.equals(DicDataEnum.DY_220KV.getCode(), item.getCode()) || Objects.equals(DicDataEnum.DY_110KV.getCode(), item.getCode()) || Objects.equals(DicDataEnum.DY_35KV.getCode(), item.getCode())).sorted(Comparator.comparing(DictData::getSort).reversed()).map(DictData::getId).collect(Collectors.toList());
|
||||
|
||||
}
|
||||
@@ -297,7 +297,7 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
||||
@Override
|
||||
public Map<String, Long> getGridDiagramDevTendency(GridDiagramParam param, Integer type) {
|
||||
param.getDeviceInfoParam().setLineRunFlag(0);
|
||||
if(type==3){
|
||||
if (type == 3) {
|
||||
param.getDeviceInfoParam().setPowerFlag(0);
|
||||
}
|
||||
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(param.getDeviceInfoParam(), Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList()));
|
||||
@@ -330,27 +330,27 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
||||
List<Line> list = lineService.list(new LambdaQueryWrapper<Line>().in(CollUtil.isNotEmpty(ids), Line::getId, ids).eq(Line::getState, DataStateEnum.ENABLE.getCode()).eq(Line::getLevel, type));
|
||||
times = list.stream().map(x -> Date.from(x.getCreateTime().atZone(ZoneId.systemDefault()).toInstant())).collect(Collectors.toList());
|
||||
}
|
||||
long num =0;
|
||||
long num = 0;
|
||||
for (int i = 0; i < dateTimes.size(); i++) {
|
||||
if(i==0){
|
||||
if (i == 0) {
|
||||
if (1 == param.getType()) {
|
||||
long count = times.stream().filter(x -> DateUtil.isIn(x, DateUtil.beginOfYear(DateUtil.parse("1970-01-01 00:00:00")), DateUtil.endOfYear(dateTimes.get(0)))).count();
|
||||
num=num+count;
|
||||
num = num + count;
|
||||
map.put(dateTimes.get(0).toString().substring(0, 4), num);
|
||||
} else {
|
||||
long count = times.stream().filter(x -> DateUtil.isIn(x, DateUtil.beginOfYear(DateUtil.parse("1970-01-01 00:00:00")), DateUtil.endOfMonth(dateTimes.get(0)))).count();
|
||||
num=num+count;
|
||||
num = num + count;
|
||||
map.put(dateTimes.get(0).toString().substring(0, 7), num);
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
int finalI = i;
|
||||
if (1 == param.getType()) {
|
||||
long count = times.stream().filter(x -> DateUtil.isIn(x, DateUtil.beginOfYear(dateTimes.get(finalI)), DateUtil.endOfYear(dateTimes.get(finalI)))).count();
|
||||
num=num+count;
|
||||
num = num + count;
|
||||
map.put(dateTimes.get(finalI).toString().substring(0, 4), num);
|
||||
} else {
|
||||
long count = times.stream().filter(x -> DateUtil.isIn(x, DateUtil.beginOfMonth(dateTimes.get(finalI)), DateUtil.endOfMonth(dateTimes.get(finalI)))).count();
|
||||
num=num+count;
|
||||
num = num + count;
|
||||
map.put(dateTimes.get(finalI).toString().substring(0, 7), num);
|
||||
}
|
||||
}
|
||||
@@ -424,10 +424,10 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
||||
list.add(String.valueOf(devices.size()));
|
||||
//当终端信息是0标识需要进行在线率查询,并进行赋值
|
||||
if (i == 0) {
|
||||
if(CollUtil.isNotEmpty(devices)) {
|
||||
if (CollUtil.isNotEmpty(devices)) {
|
||||
onlineRateParam.setIds(devices);
|
||||
list.add(String.valueOf(onLineRateDMapper.getTotalOnlineRates(onlineRateParam)));
|
||||
}else {
|
||||
} else {
|
||||
list.add("0");
|
||||
}
|
||||
}
|
||||
@@ -495,9 +495,9 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
||||
details.setOnLineNum(onIds.size());
|
||||
details.setOnLineNumList(onIds);
|
||||
baseQueryParam.setLineIds(ids);
|
||||
if(CollUtil.isNotEmpty(ids)){
|
||||
if (CollUtil.isNotEmpty(ids)) {
|
||||
details.setIntegrityRate(integrityDMapper.selectTotalIntegrityByLineIds(baseQueryParam));
|
||||
}else{
|
||||
} else {
|
||||
details.setIntegrityRate(0.0f);
|
||||
}
|
||||
return details;
|
||||
|
||||
Reference in New Issue
Block a user