diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/GeneralDeviceInfoClient.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/GeneralDeviceInfoClient.java index a2c062b94..ea4fdf60e 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/GeneralDeviceInfoClient.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/GeneralDeviceInfoClient.java @@ -9,7 +9,7 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.OnlineRateParam; import com.njcn.device.pq.pojo.po.TopMsgPO; import com.njcn.device.pq.pojo.vo.DevDetail; -import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO; +import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -111,7 +111,7 @@ public interface GeneralDeviceInfoClient { * @return */ @PostMapping("/getOnlineRateByDevIds") - HttpResult> getOnlineRateByDevIds(@RequestBody OnlineRateParam param); + HttpResult> getOnlineRateByDevIds(@RequestBody OnlineRateParam param); /** *根据单位获取投运监测点(双系统) diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/fallback/GeneralDeviceInfoClientFallbackFactory.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/fallback/GeneralDeviceInfoClientFallbackFactory.java index bfe4a75bf..3ef15e2ca 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/fallback/GeneralDeviceInfoClientFallbackFactory.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/fallback/GeneralDeviceInfoClientFallbackFactory.java @@ -10,7 +10,7 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.OnlineRateParam; import com.njcn.device.pq.pojo.po.TopMsgPO; import com.njcn.device.pq.pojo.vo.DevDetail; -import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO; +import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO; import com.njcn.device.biz.utils.DeviceEnumUtil; import feign.hystrix.FallbackFactory; import lombok.extern.slf4j.Slf4j; @@ -84,7 +84,7 @@ public class GeneralDeviceInfoClientFallbackFactory implements FallbackFactory> getOnlineRateByDevIds(OnlineRateParam param) { + public HttpResult> getOnlineRateByDevIds(OnlineRateParam param) { log.error("{}异常,降级处理,异常为:{}", "获取终端在线率(谐波专用)", throwable.toString()); throw new BusinessException(finalExceptionEnum); } diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/RStatIntegrityVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/RStatIntegrityVO.java index a20628793..fb9e10f99 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/RStatIntegrityVO.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/RStatIntegrityVO.java @@ -1,8 +1,8 @@ package com.njcn.device.pq.pojo.vo; -import com.github.jeffreyning.mybatisplus.anno.MppMultiId; import lombok.Data; +import java.math.BigDecimal; import java.time.LocalDateTime; /** @@ -26,6 +26,6 @@ public class RStatIntegrityVO { private Integer realTime; - private Double integrityRate; + private BigDecimal integrityRate; } diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/RStatOnlinerateVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/RStatOnlineRateVO.java similarity index 78% rename from pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/RStatOnlinerateVO.java rename to pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/RStatOnlineRateVO.java index 2fdcf4723..01a7f1c3f 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/RStatOnlinerateVO.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/RStatOnlineRateVO.java @@ -2,6 +2,7 @@ package com.njcn.device.pq.pojo.vo; import lombok.Data; +import java.math.BigDecimal; import java.time.LocalDateTime; /** @@ -11,7 +12,7 @@ import java.time.LocalDateTime; * @createTime: 2023-04-03 */ @Data -public class RStatOnlinerateVO { +public class RStatOnlineRateVO { private static final long serialVersionUID = 1L; private LocalDateTime timeId; @@ -22,5 +23,5 @@ public class RStatOnlinerateVO { private Integer offlineMin; - private Float onlineRate; + private BigDecimal onlineRate; } diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/common/DeviceOnlineRate.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/common/DeviceOnlineRate.java index e0257b9fc..d4e3a0fe1 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/common/DeviceOnlineRate.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/common/DeviceOnlineRate.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @@ -23,7 +24,7 @@ public class DeviceOnlineRate { private Integer belowNum; @ApiModelProperty("总终端在线率") - private String totalOnlineRate; + private BigDecimal totalOnlineRate; @ApiModelProperty("统计信息") List citDetailList; @@ -41,7 +42,7 @@ public class DeviceOnlineRate { private Integer citBelowNum; @ApiModelProperty("总终端在线率") - private String citTotalOnlineRate; + private BigDecimal citTotalOnlineRate; @ApiModelProperty("统计信息") List detailList; @@ -82,7 +83,7 @@ public class DeviceOnlineRate { private LocalDateTime timeID; @ApiModelProperty("在线率") - private String onlineRate; + private BigDecimal onlineRate; } @Data @@ -123,7 +124,7 @@ public class DeviceOnlineRate { private LocalDateTime latestTime; @ApiModelProperty("数据完整性") - private Double integrity; + private BigDecimal integrity; } } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/GeneralDeviceInfoController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/GeneralDeviceInfoController.java index 6be3b9362..ff25f374e 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/GeneralDeviceInfoController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/GeneralDeviceInfoController.java @@ -269,9 +269,9 @@ public class GeneralDeviceInfoController extends BaseController { @PostMapping("/getOnlineRateByDevIds") @ApiOperation("终端在线率(谐波专用)") @ApiImplicitParam(name = "param", value = "参数实体", required = true) - public HttpResult> getOnlineRateByDevIds(@RequestBody OnlineRateParam param) { + public HttpResult> getOnlineRateByDevIds(@RequestBody OnlineRateParam param) { String methodDescribe = getMethodDescribe("getOnlineRateByDevIds"); - List onlineRateByDevIds = onlineRateMapper.getOnlineRateByDevIds(param); + List onlineRateByDevIds = onlineRateMapper.getOnlineRateByDevIds(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onlineRateByDevIds,methodDescribe); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalOnlineRateDataController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalOnlineRateDataController.java index 6fe98bbdd..277f5cfcc 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalOnlineRateDataController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalOnlineRateDataController.java @@ -6,13 +6,11 @@ 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.mapper.RStatOnlinerateDMapper; -import com.njcn.device.pq.pojo.dto.LineDataQualityDTO; import com.njcn.device.pq.pojo.param.DeviceInfoParam; -import com.njcn.device.pq.pojo.param.LineDataQualityParam; import com.njcn.device.pq.pojo.param.OnlineRateParam; import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam; import com.njcn.device.pq.pojo.vo.OnlineRateCensusVO; -import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO; +import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO; import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO; import com.njcn.device.pq.service.TerminalOnlineRateDataService; import com.njcn.web.controller.BaseController; @@ -80,9 +78,9 @@ public class TerminalOnlineRateDataController extends BaseController { @PostMapping("/getOnlineRateByDevIds") @ApiOperation("终端在线率(谐波专用)") @ApiImplicitParam(name = "param", value = "参数实体", required = true) - public HttpResult> getOnlineRateByDevIds(@RequestBody OnlineRateParam param) { + public HttpResult> getOnlineRateByDevIds(@RequestBody OnlineRateParam param) { String methodDescribe = getMethodDescribe("getOnlineRateByDevIds"); - List onlineRateByDevIds = onlineRateMapper.getOnlineRateByDevIds(param); + List onlineRateByDevIds = onlineRateMapper.getOnlineRateByDevIds(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onlineRateByDevIds,methodDescribe); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/RStatOnlinerateDMapper.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/RStatOnlinerateDMapper.java index 3923f9a48..9032ad7b8 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/RStatOnlinerateDMapper.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/RStatOnlinerateDMapper.java @@ -4,7 +4,7 @@ package com.njcn.device.pq.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.njcn.device.pq.pojo.param.OnlineRateParam; import com.njcn.device.pq.pojo.po.RStatOnlinerateD; -import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO; +import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -26,7 +26,7 @@ public interface RStatOnlinerateDMapper extends BaseMapper { * @param param * @return List */ - List getOnlineRateByDevIds(@Param("param") OnlineRateParam param); + List getOnlineRateByDevIds(@Param("param") OnlineRateParam param); /** * @Description: 根据终端id集合获取总终端在线lv diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/RStatOnlinerateDMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/RStatOnlinerateDMapper.xml index 8a75f9946..e6ba44ea2 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/RStatOnlinerateDMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/RStatOnlinerateDMapper.xml @@ -1,7 +1,7 @@ - select dev_index, sum(online_min) as onlineMin, diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/CommunicateServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/CommunicateServiceImpl.java index ff73f2616..54b4e044c 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/CommunicateServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/CommunicateServiceImpl.java @@ -128,7 +128,7 @@ public class CommunicateServiceImpl implements CommunicateService { param.setEndTime(DateUtil.endOfDay(DateUtil.parse(endTime)).toString()); if (state == 1) { //在线率 - List onlineRateByDevIds = onlinerateDMapper.getOnlineRateByDevIds(param); + List onlineRateByDevIds = onlinerateDMapper.getOnlineRateByDevIds(param); if (CollUtil.isNotEmpty(onlineRateByDevIds)) { onlineRateByDevIds.forEach(po -> { //数据完整性 保留四位小数 diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceRunEvaluateServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceRunEvaluateServiceImpl.java index 62aacdecc..142a9a2b4 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceRunEvaluateServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceRunEvaluateServiceImpl.java @@ -14,7 +14,6 @@ import com.njcn.device.common.mapper.onlinerate.OnLineRateMapper; import com.njcn.device.common.service.GeneralDeviceService; import com.njcn.device.line.mapper.LineMapper; import com.njcn.device.line.service.DeptLineService; -import com.njcn.device.line.service.LineService; import com.njcn.device.pq.mapper.RStatOnlinerateDMapper; import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pq.pojo.param.DevRunEvaluateParam; @@ -381,7 +380,7 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService { //超标率 List limitRatePOList = rStatLimitRateDClient.monitorIdsGetLimitInfo(rStatLimitQueryParam).getData(); //获取所有终端在线率 - List onlineRateByDev = onLineRateMapper.getOnlineRateByDevIds(onlineRateParam); + List onlineRateByDev = onLineRateMapper.getOnlineRateByDevIds(onlineRateParam); for (GeneralDeviceDTO dto : deviceInfo) { detail = new DeviceRunEvaluateVO.Detail(); @@ -444,12 +443,12 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService { } } - private BigDecimal onLineRate(List onlineRateByDev, List devIds) { + private BigDecimal onLineRate(List onlineRateByDev, List devIds) { //终端在线率 - List onlineRateDS = onlineRateByDev.stream().filter(x -> devIds.contains(x.getDevIndex())).collect(Collectors.toList()); + List onlineRateDS = onlineRateByDev.stream().filter(x -> devIds.contains(x.getDevIndex())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(onlineRateDS)) { - double onlineTime = onlineRateDS.stream().mapToDouble(RStatOnlinerateVO::getOnlineMin).sum(); - double offlineTime = onlineRateDS.stream().mapToDouble(RStatOnlinerateVO::getOfflineMin).sum(); + double onlineTime = onlineRateDS.stream().mapToDouble(RStatOnlineRateVO::getOnlineMin).sum(); + double offlineTime = onlineRateDS.stream().mapToDouble(RStatOnlineRateVO::getOfflineMin).sum(); return NumberUtil.round(Math.min(onlineTime * 100.0 / (onlineTime + offlineTime), 100), 2); } else { return new BigDecimal(0); diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RStatIntegrityDServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RStatIntegrityDServiceImpl.java index 577b9b43f..cd0804d22 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RStatIntegrityDServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RStatIntegrityDServiceImpl.java @@ -156,20 +156,20 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl LineInfoByIds = lineService.getLineDetailByIds(lineIds); rate.setBelowNum(CollUtil.isNotEmpty(lineIntegrityRateInfo) ? calculateIntegrityRate(lineIntegrityRateInfo, 90, lineIds.size()) : lineIds.size()); - rate.setTotalOnlineRate(calculateIntegrityRate(lineIntegrityRateInfo, lineIds).toString()); + rate.setTotalOnlineRate(calculateIntegrityRate(lineIntegrityRateInfo, lineIds)); List citDetailList = new ArrayList<>(); DeviceOnlineRate.CitDetail citDetail; DeviceOnlineRate.LineDetail detail; for (GeneralDeviceDTO dto : deviceInfo) { //获取部门终端集合 List citDevOnRate = lineIntegrityRateInfo.stream().filter(x -> dto.getLineIndexes().contains(x.getLineIndex())).collect(Collectors.toList()); - Map onlineRateByDevMap = citDevOnRate.stream() + Map onlineRateByDevMap = citDevOnRate.stream() .collect(Collectors.toMap(RStatIntegrityVO::getLineIndex, RStatIntegrityVO::getIntegrityRate)); citDetail = new DeviceOnlineRate.CitDetail(); citDetail.setCitName(dto.getName()); citDetail.setCitTotalNum(dto.getLineIndexes().size()); citDetail.setCitBelowNum(CollUtil.isNotEmpty(citDevOnRate) ? calculateIntegrityRate(citDevOnRate, 90, dto.getLineIndexes().size()) : dto.getLineIndexes().size()); - citDetail.setCitTotalOnlineRate(calculateIntegrityRate(lineIntegrityRateInfo, dto.getLineIndexes()).toString()); + citDetail.setCitTotalOnlineRate(calculateIntegrityRate(lineIntegrityRateInfo, dto.getLineIndexes())); List detailList = new ArrayList<>(); List lineDetail = LineInfoByIds.stream().filter(x -> dto.getLineIndexes().contains(x.getLineId())).collect(Collectors.toList()); for (LineDetailVO.Detail line : lineDetail) { @@ -185,7 +185,7 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl lineIntegrityRateInfo, List deviceIds) { + private BigDecimal calculateIntegrityRate(List lineIntegrityRateInfo, List deviceIds) { List list = lineIntegrityRateInfo.stream().filter(x -> deviceIds.contains(x.getLineIndex())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(list)) { - BigDecimal onlineMin = BigDecimal.valueOf(list.stream().mapToLong(RStatIntegrityVO::getDueTime).sum()); - BigDecimal offlineMin = BigDecimal.valueOf(list.stream().mapToLong(RStatIntegrityVO::getRealTime).sum()); - BigDecimal sumMin = onlineMin.add(offlineMin); - return onlineMin.multiply(BigDecimal.valueOf(100.0)).divide(sumMin, 2, RoundingMode.HALF_UP).doubleValue(); + BigDecimal dueTime = BigDecimal.valueOf(list.stream().mapToLong(RStatIntegrityVO::getDueTime).sum()); + BigDecimal realTime = BigDecimal.valueOf(list.stream().mapToLong(RStatIntegrityVO::getRealTime).sum()); + return realTime.multiply(BigDecimal.valueOf(100.0)).divide(dueTime, 2, RoundingMode.HALF_UP); } - return 0.0; + return BigDecimal.valueOf(0); } private Integer calculateIntegrityRate(List onlineRateByDev, Integer limit, Integer count) { - return count - onlineRateByDev.stream().filter(x -> x.getIntegrityRate() >= limit).collect(Collectors.toList()).size(); + return count - onlineRateByDev.stream().filter(x -> x.getIntegrityRate().doubleValue() >= limit).collect(Collectors.toList()).size(); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalOnlineRateDataServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalOnlineRateDataServiceImpl.java index 408323e9a..81de180cf 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalOnlineRateDataServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalOnlineRateDataServiceImpl.java @@ -2,12 +2,8 @@ package com.njcn.device.pq.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.date.DatePattern; -import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; 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.config.GeneralInfo; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.device.common.service.GeneralDeviceService; @@ -16,20 +12,15 @@ import com.njcn.device.biz.enums.DeviceResponseEnum; import com.njcn.device.pq.enums.LineBaseEnum; import com.njcn.device.pq.mapper.*; import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO; -import com.njcn.device.pq.pojo.dto.LineDataQualityDTO; import com.njcn.device.pq.pojo.dto.PublicDTO; import com.njcn.device.pq.pojo.param.DeviceInfoParam; -import com.njcn.device.pq.pojo.param.LineDataQualityParam; import com.njcn.device.pq.pojo.param.OnlineRateParam; import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam; -import com.njcn.device.pq.pojo.po.Line; -import com.njcn.device.pq.pojo.po.RStatIntegrityD; -import com.njcn.device.pq.pojo.po.RStatOnlinerateD; import com.njcn.device.pq.pojo.po.TerminalOnlineRateData; import com.njcn.device.pq.pojo.vo.AlarmStrategyVO; import com.njcn.device.pq.pojo.vo.OnlineRateCensusVO; -import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO; +import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO; import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO; import com.njcn.device.pq.service.TerminalOnlineRateDataService; import com.njcn.device.pq.utils.DataStatisticsUtil; @@ -215,7 +206,7 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData param.setIds(deviceIndexes); param.setStartTime( DateUtil.beginOfDay(DateUtil.parse(searchBeginTime)).toString()); param.setEndTime( DateUtil.endOfDay(DateUtil.parse(searchEndTime)).toString()); - List data = onlineRateMapper.getOnlineRateByDevIds(param); + List data = onlineRateMapper.getOnlineRateByDevIds(param); if (CollUtil.isNotEmpty(data)) { data.forEach(po -> { PublicDTO publicDTO = new PublicDTO(); diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/mapper/onlinerate/OnLineRateMapper.java b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/mapper/onlinerate/OnLineRateMapper.java index 62b068551..c0290a45c 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/mapper/onlinerate/OnLineRateMapper.java +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/mapper/onlinerate/OnLineRateMapper.java @@ -4,7 +4,7 @@ package com.njcn.device.common.mapper.onlinerate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.njcn.device.pq.pojo.param.OnlineRateParam; import com.njcn.device.pq.pojo.po.RStatOnlinerateD; -import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO; +import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -26,6 +26,6 @@ public interface OnLineRateMapper extends BaseMapper { * @param param * @return List */ - List getOnlineRateByDevIds(@Param("param") OnlineRateParam param); + List getOnlineRateByDevIds(@Param("param") OnlineRateParam param); } diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/mapper/onlinerate/mapping/OnLineRateMapper.xml b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/mapper/onlinerate/mapping/OnLineRateMapper.xml index 683baa89b..5efdaf5dd 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/mapper/onlinerate/mapping/OnLineRateMapper.xml +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/mapper/onlinerate/mapping/OnLineRateMapper.xml @@ -1,7 +1,7 @@ - select dev_index, sum(online_min) as onlineMin, diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/controller/OnLineRateController.java b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/controller/OnLineRateController.java index c7a196a4d..25fb4d733 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/controller/OnLineRateController.java +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/controller/OnLineRateController.java @@ -9,7 +9,7 @@ import com.njcn.common.utils.HttpResultUtil; import com.njcn.device.device.service.OnLineRateService; import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.OnlineRateParam; -import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO; +import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO; import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; @@ -48,9 +48,9 @@ public class OnLineRateController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/getOnlineRateByDevIds") @ApiOperation("通用终端在线率(冀北)") - public HttpResult> getOnlineRateByDevIds(@RequestBody OnlineRateParam deviceInfoParam) { + public HttpResult> getOnlineRateByDevIds(@RequestBody OnlineRateParam deviceInfoParam) { String methodDescribe = getMethodDescribe("deviceOnlineRateInfo"); - List rate = onLineRateService.getOnlineRateByDevIds(deviceInfoParam); + List rate = onLineRateService.getOnlineRateByDevIds(deviceInfoParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rate, methodDescribe); } diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/service/OnLineRateService.java b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/service/OnLineRateService.java index fd9c37545..2731c4378 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/service/OnLineRateService.java +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/service/OnLineRateService.java @@ -3,7 +3,7 @@ package com.njcn.device.device.service; import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.OnlineRateParam; -import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO; +import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO; import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate; import java.util.List; @@ -31,5 +31,5 @@ public interface OnLineRateService { * @param * @return */ - List getOnlineRateByDevIds(OnlineRateParam onlineRateParam); + List getOnlineRateByDevIds(OnlineRateParam onlineRateParam); } diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/service/impl/OnLineRateServiceImpl.java b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/service/impl/OnLineRateServiceImpl.java index 1c99a5859..3b23cf85b 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/service/impl/OnLineRateServiceImpl.java +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/service/impl/OnLineRateServiceImpl.java @@ -12,7 +12,7 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.OnlineRateParam; import com.njcn.device.pq.pojo.po.RStatOnlinerateD; import com.njcn.device.pq.pojo.vo.DevDetail; -import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO; +import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO; import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -50,7 +50,7 @@ public class OnLineRateServiceImpl extends ServiceImpl onlineRateByDev = this.baseMapper.getOnlineRateByDevIds(onlineRateParam); + List onlineRateByDev = this.baseMapper.getOnlineRateByDevIds(onlineRateParam); //获取所有终端信息 List devInfoByIds = deviceService.getDevInfoByIds(deviceIds); @@ -61,9 +61,9 @@ public class OnLineRateServiceImpl extends ServiceImpl citDevOnRate = onlineRateByDev.stream().filter(x -> dto.getDeviceIndexes().contains(x.getDevIndex())).collect(Collectors.toList()); - Map onlineRateByDevMap = citDevOnRate.stream() - .collect(Collectors.toMap(RStatOnlinerateVO::getDevIndex, RStatOnlinerateVO::getOnlineRate)); + List citDevOnRate = onlineRateByDev.stream().filter(x -> dto.getDeviceIndexes().contains(x.getDevIndex())).collect(Collectors.toList()); + Map onlineRateByDevMap = citDevOnRate.stream() + .collect(Collectors.toMap(x -> x.getDevIndex(), x -> x.getOnlineRate())); citDetail = new DeviceOnlineRate.CitDetail(); citDetail.setCitName(dto.getName()); citDetail.setCitTotalNum(dto.getDeviceIndexes().size()); @@ -83,7 +83,7 @@ public class OnLineRateServiceImpl extends ServiceImpl getOnlineRateByDevIds(OnlineRateParam onlineRateParam) { + public List getOnlineRateByDevIds(OnlineRateParam onlineRateParam) { return this.baseMapper.getOnlineRateByDevIds(onlineRateParam); } - private String calculateOnLineRate(List onlineRateByDev, List deviceIds) { - List list = onlineRateByDev.stream().filter(x -> deviceIds.contains(x.getDevIndex())).collect(Collectors.toList()); + private BigDecimal calculateOnLineRate(List onlineRateByDev, List deviceIds) { + List list = onlineRateByDev.stream().filter(x -> deviceIds.contains(x.getDevIndex())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(list)) { - BigDecimal onlineMin = BigDecimal.valueOf(list.stream().mapToLong(RStatOnlinerateVO::getOnlineMin).sum()); - BigDecimal offlineMin = BigDecimal.valueOf(list.stream().mapToLong(RStatOnlinerateVO::getOfflineMin).sum()); + BigDecimal onlineMin = BigDecimal.valueOf(list.stream().mapToLong(RStatOnlineRateVO::getOnlineMin).sum()); + BigDecimal offlineMin = BigDecimal.valueOf(list.stream().mapToLong(RStatOnlineRateVO::getOfflineMin).sum()); BigDecimal sumMin = onlineMin.add(offlineMin); - return onlineMin.multiply(BigDecimal.valueOf(100.0)).divide(sumMin, 2, RoundingMode.HALF_UP).toString(); + return onlineMin.multiply(BigDecimal.valueOf(100.0)).divide(sumMin, 2, RoundingMode.HALF_UP); } - return "0"; + return BigDecimal.valueOf(0); } - private Integer calculateOnLineRate(List onlineRateByDev, Integer limit, Integer count) { - return count - onlineRateByDev.stream().filter(x -> x.getOnlineRate() >= limit).collect(Collectors.toList()).size(); + private Integer calculateOnLineRate(List onlineRateByDev, Integer limit, Integer count) { + return count - onlineRateByDev.stream().filter(x -> x.getOnlineRate().doubleValue() >= limit).collect(Collectors.toList()).size(); } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java index b165fac5f..b51640aac 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java @@ -8,7 +8,7 @@ import com.njcn.device.pq.api.GeneralDeviceInfoClient; import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.OnlineRateParam; -import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO; +import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO; import com.njcn.harmonic.mapper.OnlineRateDataMapper; import com.njcn.harmonic.pojo.dto.PublicDTO; import com.njcn.harmonic.pojo.vo.OnlineRateCensusVO; @@ -143,7 +143,7 @@ public class OnlineRateDataServiceImpl implements OnlineRateDataService { param.setIds(deviceIndexes); param.setStartTime(DateUtil.beginOfDay(DateUtil.parse(startTime)).toString()); param.setEndTime( DateUtil.endOfDay(DateUtil.parse(endTime)).toString()); - List data = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData(); + List data = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData(); if (CollUtil.isNotEmpty(data)) { data.forEach(po -> { PublicDTO publicDTO = new PublicDTO(); 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 9d19beef8..e49d8983a 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 @@ -41,7 +41,7 @@ import com.njcn.device.pq.pojo.po.Line; import com.njcn.device.pq.pojo.po.LineDetail; import com.njcn.device.pq.pojo.vo.GridDiagramVO; import com.njcn.device.pq.pojo.vo.RStatIntegrityVO; -import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO; +import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO; import com.njcn.event.api.RmpEventDetailFeignClient; import com.njcn.event.pojo.dto.EventCount; import com.njcn.harmonic.mapper.*; @@ -1001,11 +1001,11 @@ public class PollutionSubstationServiceImpl extends ServiceImpl integrityVOS = lineFeignClient.getOnIntegrityByIds(onlineRateParam).getData(); - Map integrityMap = integrityVOS.stream().collect(Collectors.toMap(RStatIntegrityVO::getLineIndex, RStatIntegrityVO::getIntegrityRate)); + Map integrityMap = integrityVOS.stream().collect(Collectors.toMap(RStatIntegrityVO::getLineIndex, RStatIntegrityVO::getIntegrityRate)); //获取装置在线率 - List onLineRateVOS = generalDeviceInfoClient.getOnlineRateByDevIds(onlineRateParam).getData(); - Map onlineRateMap = onLineRateVOS.stream().collect(Collectors.toMap(RStatOnlinerateVO::getDevIndex, RStatOnlinerateVO::getOnlineRate)); + List onLineRateVOS = generalDeviceInfoClient.getOnlineRateByDevIds(onlineRateParam).getData(); + Map onlineRateMap = onLineRateVOS.stream().collect(Collectors.toMap(RStatOnlineRateVO::getDevIndex, RStatOnlineRateVO::getOnlineRate)); List rMpPollutionDPOS = rMpPollutionDPOMapper.selectSumList(lineIdList, param.getIds(), startDate, endDate); Map calcMap = new HashMap<>(); @@ -1023,12 +1023,12 @@ public class PollutionSubstationServiceImpl extends ServiceImpl100?100.0:integrityMap.get(lineId)); + linePollution.setIntegrity(Objects.isNull(integrityMap.get(lineId)) ? 0.0 : integrityMap.get(lineId).doubleValue()>100?100.0:integrityMap.get(lineId).doubleValue()); // 计算谐波的污染值 - linePollution.setHarmonicValue(calcMap.containsKey(lineId)?calcMap.get(lineId)>100?100.0:integrityMap.get(lineId):0.0); + linePollution.setHarmonicValue(calcMap.containsKey(lineId)?calcMap.get(lineId)>100?100.0:integrityMap.get(lineId).doubleValue():0.0); linePollution.setInterval(data.getTimeInterval()); linePollutionList.add(linePollution); } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/TerminalServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/TerminalServiceImpl.java index 3ba448839..d3a9b39a4 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/TerminalServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/TerminalServiceImpl.java @@ -7,7 +7,7 @@ import com.njcn.device.pq.api.GeneralDeviceInfoClient; import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.OnlineRateParam; -import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO; +import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO; import com.njcn.harmonic.mapper.TerminalDataMapper; import com.njcn.harmonic.pojo.dto.PublicDTO; import com.njcn.harmonic.pojo.vo.TerminalCensusVO; @@ -211,7 +211,7 @@ public class TerminalServiceImpl implements TerminalService { param.setIds(deviceIndexes); param.setStartTime( DateUtil.beginOfDay(DateUtil.parse(startTime)).toString()); param.setEndTime( DateUtil.endOfDay(DateUtil.parse(endTime)).toString()); - List data = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData(); + List data = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData(); if (CollUtil.isNotEmpty(data)) { data.forEach(po -> { PublicDTO publicDTO = new PublicDTO(); diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatLimitServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatLimitServiceImpl.java index 3a4913f94..4066135f4 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatLimitServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatLimitServiceImpl.java @@ -25,7 +25,7 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.OnlineRateParam; import com.njcn.device.pq.pojo.po.RStatIntegrityD; import com.njcn.device.pq.pojo.vo.GridDiagramVO; -import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO; +import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO; import com.njcn.harmonic.mapper.RStatLimitTargetDMapper; import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO; @@ -103,7 +103,7 @@ public class RStatLimitServiceImpl implements RStatLimitService { integrityList = lineIntegrityClient.getIntegrityByLineIds(lineIds, deviceInfoParam.getSearchBeginTime(), deviceInfoParam.getSearchEndTime()).getData(); } //终端在线率 - List onlineRateList =new ArrayList<>(); + List onlineRateList =new ArrayList<>(); if(CollUtil.isNotEmpty(devIds)){ OnlineRateParam param=new OnlineRateParam(); param.setIds(devIds); @@ -580,7 +580,7 @@ public class RStatLimitServiceImpl implements RStatLimitService { } - private void onLineAndIntegrity(List lineIds, List onIntegrityByIds, List devIds, List onlineRateByDevIds,List limitTargetList, GridDiagramVO.LineData lineData) { + private void onLineAndIntegrity(List lineIds, List onIntegrityByIds, List devIds, List onlineRateByDevIds, List limitTargetList, GridDiagramVO.LineData lineData) { //监测完整率 List integrityDS = onIntegrityByIds.stream().filter(x -> lineIds.contains(x.getLineIndex())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(integrityDS)) { @@ -591,10 +591,10 @@ public class RStatLimitServiceImpl implements RStatLimitService { lineData.setIntegrityRate(0.0f); } //终端在线率 - List onlineRateDS = onlineRateByDevIds.stream().filter(x -> devIds.contains(x.getDevIndex())).collect(Collectors.toList()); + List onlineRateDS = onlineRateByDevIds.stream().filter(x -> devIds.contains(x.getDevIndex())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(onlineRateDS)) { - double onlineTime = onlineRateDS.stream().mapToDouble(RStatOnlinerateVO::getOnlineMin).sum(); - double offlineTime = onlineRateDS.stream().mapToDouble(RStatOnlinerateVO::getOfflineMin).sum(); + double onlineTime = onlineRateDS.stream().mapToDouble(RStatOnlineRateVO::getOnlineMin).sum(); + double offlineTime = onlineRateDS.stream().mapToDouble(RStatOnlineRateVO::getOfflineMin).sum(); lineData.setOnLineRate(Math.min(NumberUtil.round(onlineTime * 100.0 / (onlineTime + offlineTime), 2).floatValue(),100)); } else { lineData.setOnLineRate(0.0f);