From 9b9d75e463777192cb2ace66c2ffb84bb3532b34 Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Thu, 27 Nov 2025 11:01:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=80=E5=8C=97=E7=BB=88=E7=AB=AF=E5=9C=A8?= =?UTF-8?q?=E7=BA=BF=E7=8E=87=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../njcn/device/pq/enums/JbPowerFlagEnum.java | 41 ++++++++++++ .../pq/pojo/vo/common/DeviceOnlineRate.java | 13 ++-- .../common/service/GeneralDeviceService.java | 66 +++++++++++++------ .../common/service/TerminalBaseService.java | 2 + .../service/impl/TerminalBaseServiceImpl.java | 5 ++ .../controller/OnLineRateController.java | 12 ++++ .../device/service/OnLineRateService.java | 16 ++++- .../service/impl/OnLineRateServiceImpl.java | 39 ++++++----- .../njcn/device/line/mapper/LineMapper.java | 2 + .../device/line/mapper/mapping/LineMapper.xml | 23 +++++++ 10 files changed, 176 insertions(+), 43 deletions(-) create mode 100644 pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/enums/JbPowerFlagEnum.java diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/enums/JbPowerFlagEnum.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/enums/JbPowerFlagEnum.java new file mode 100644 index 000000000..ed7030995 --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/enums/JbPowerFlagEnum.java @@ -0,0 +1,41 @@ +package com.njcn.device.pq.enums; + +import lombok.Getter; + +import java.util.Arrays; + +/** + * pqs + * + * @author cdf + * @date 2022/1/4 + */ +@Getter +public enum JbPowerFlagEnum { + + /** + * 系统拓扑各层级描述 + */ + GRID_SIDE(0, "电网侧"), + NO_GRID_SIDE(1, "非电网侧"), + SEND_NETWORK(2, "上送国网"), + NOT_NETWORK(3, "非上送国网"), + unknown(4, "未知"), + ; + + private final Integer code; + private final String message; + + JbPowerFlagEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public static JbPowerFlagEnum getPowerFlagEnumByCode(Integer code) { + return Arrays.stream(JbPowerFlagEnum.values()) + .filter(x -> x.getCode().equals(code)) + .findAny() + .orElse(unknown); + } + +} 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 315e8a246..d5e45547c 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 @@ -3,7 +3,7 @@ package com.njcn.device.pq.pojo.vo.common; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.List; /** @@ -71,11 +71,14 @@ public class DeviceOnlineRate { @ApiModelProperty("终端IP") private String ip; - @ApiModelProperty("终端运行状态") - private Integer runFlag; + @ApiModelProperty("终端运行状态(0:运行;1:检修;2:停运;3:调试;4:退运)") + private String runFlag; - @ApiModelProperty("终端运行状态") - private Integer comFlag; + @ApiModelProperty("终端通讯状态(0:中断;1:正常)") + private String comFlag; + + @ApiModelProperty("最新数据时间") + private LocalDateTime timeID; @ApiModelProperty("在线率") private String onlineRate; diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/GeneralDeviceService.java b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/GeneralDeviceService.java index d57decee1..1c02fcf15 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/GeneralDeviceService.java +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/GeneralDeviceService.java @@ -13,6 +13,7 @@ import com.njcn.device.common.mapper.TopMsgMapper; import com.njcn.device.device.mapper.DeviceMapper; import com.njcn.device.line.mapper.LineMapper; import com.njcn.device.line.service.DeptLineService; +import com.njcn.device.pq.enums.JbPowerFlagEnum; import com.njcn.device.pq.enums.LineBaseEnum; import com.njcn.device.pq.enums.PowerFlagEnum; import com.njcn.device.pq.pojo.bo.DeviceType; @@ -320,7 +321,7 @@ public class GeneralDeviceService { } else { deviceType.setRunFlag(runFlag); } - if(ObjectUtil.isNotNull(deviceInfoParam.getComFlagStatus())){ + if (ObjectUtil.isNotNull(deviceInfoParam.getComFlagStatus())) { deviceType.setComFlag(Arrays.asList(deviceInfoParam.getComFlagStatus())); } filterDataType(deviceType, deviceInfoParam.getServerName()); @@ -375,6 +376,8 @@ public class GeneralDeviceService { return filterDataByManufacturer(deviceInfos, deviceInfoParam.getManufacturer()); case POWER_FLAG: return filterDataByPowerFlag(deviceInfos, deviceInfoParam.getManufacturer()); + case JB_POWER_FLAG: + return filterDataByJbPowerFlag(deviceInfos, deviceInfoParam.getManufacturer()); default: return deviceInfos; } @@ -418,17 +421,17 @@ public class GeneralDeviceService { } //1.筛选出母线id,理论上监测点的pids中第六个id为母线id 联查: pq_line t1 ,pq_voltage t2 - List voltageIds=lines.stream().map(Line::getPid).distinct().collect(Collectors.toList()); + List voltageIds = lines.stream().map(Line::getPid).distinct().collect(Collectors.toList()); //再根据电压等级筛选合法母线信息 List voltages = terminalBaseService.getVoltageByCondition(voltageIds, deviceInfoParam.getScale()); //2.筛选出终端id,理论上监测点的pids中第五个id为终端id - List devIds=voltages.stream().map(Line::getPid).distinct().collect(Collectors.toList()); + List devIds = voltages.stream().map(Line::getPid).distinct().collect(Collectors.toList()); // 再根据终端条件筛选合法终端信息 联查:pq_line t1,pq_device t2 List devices = terminalBaseService.getDeviceByCondition(devIds, deviceType, deviceInfoParam.getManufacturer()); //3.筛选出变电站id,理论上监测点的pids中第四个id为变电站id 联查: pq_line t1 ,pq_substation t2 - List subIds=devices.stream().map(Line::getPid).distinct().collect(Collectors.toList()); + List subIds = devices.stream().map(Line::getPid).distinct().collect(Collectors.toList()); List sub = terminalBaseService.getSubByCondition(subIds, new ArrayList<>()); //筛选最终的数据 @@ -453,7 +456,7 @@ public class GeneralDeviceService { String[] idsArray = line.getPids().split(","); //监测点同时满足条件筛选后的终端、母线信息,才是最终的结果 if (devIds.contains(idsArray[LineBaseEnum.DEVICE_LEVEL.getCode()]) && - volIds.contains(idsArray[LineBaseEnum.SUB_V_LEVEL.getCode()])&& + volIds.contains(idsArray[LineBaseEnum.SUB_V_LEVEL.getCode()]) && subIds.contains(idsArray[LineBaseEnum.SUB_LEVEL.getCode()]) ) { gdIndexes.add(idsArray[LineBaseEnum.GD_LEVEL.getCode()]); @@ -557,8 +560,8 @@ public class GeneralDeviceService { private List filterDataByPowerFlag(List deviceInfos, List manufacturer) { List generalDeviceDTOS = new ArrayList<>(); - List deviceIds = deviceInfos.stream().flatMap(x->x.getLineIndexes().stream()).collect(Collectors.toList()); - List lineIds = deviceInfos.stream().flatMap(x->x.getLineIndexes().stream()).collect(Collectors.toList()); + List deviceIds = deviceInfos.stream().flatMap(x -> x.getLineIndexes().stream()).collect(Collectors.toList()); + List lineIds = deviceInfos.stream().flatMap(x -> x.getLineIndexes().stream()).collect(Collectors.toList()); //监测点为空,则返回空的分类数据 if (CollectionUtil.isEmpty(lineIds)) { return assembleCommonData(manufacturer); @@ -567,15 +570,36 @@ public class GeneralDeviceService { List lines = terminalBaseService.getLineById(lineIds); for (int i = 0; i < 6; i++) { List powerFlagIds = terminalBaseService.getDeviceIdByPowerFlag(deviceIds, i); - dto=new SimpleDTO(); + dto = new SimpleDTO(); PowerFlagEnum enumByCode = PowerFlagEnum.getPowerFlagEnumByCode(i); dto.setId(enumByCode.getCode().toString()); dto.setName(enumByCode.getMessage()); generalDeviceDTOS.add(assembleDataByLine(dto, lines, powerFlagIds, LineBaseEnum.LINE_LEVEL.getCode())); } - return generalDeviceDTOS; } + + private List filterDataByJbPowerFlag(List deviceInfos, List manufacturer) { + List generalDeviceDTOS = new ArrayList<>(); + List deviceIds = deviceInfos.stream().flatMap(x -> x.getLineIndexes().stream()).collect(Collectors.toList()); + List lineIds = deviceInfos.stream().flatMap(x -> x.getLineIndexes().stream()).collect(Collectors.toList()); + //监测点为空,则返回空的分类数据 + if (CollectionUtil.isEmpty(lineIds)) { + return assembleCommonData(manufacturer); + } + SimpleDTO dto; + List lines = terminalBaseService.getLineById(lineIds); + for (int i = 0; i < 4; i++) { + List powerFlagIds = terminalBaseService.getDeviceIdByJbPowerFlag(deviceIds, i); + dto = new SimpleDTO(); + JbPowerFlagEnum enumByCode = JbPowerFlagEnum.getPowerFlagEnumByCode(i); + dto.setId(enumByCode.getCode().toString()); + dto.setName(enumByCode.getMessage()); + generalDeviceDTOS.add(assembleDataByLine(dto, lines, powerFlagIds, LineBaseEnum.LINE_LEVEL.getCode())); + } + return generalDeviceDTOS; + } + /** * 当该部门不存在监测点时,返回空的分类数据 * @@ -725,7 +749,7 @@ public class GeneralDeviceService { /*实际运行*/ QueryWrapper query = new QueryWrapper<>(); query.in("Id", DeviceIds). - eq("Run_Flag", 0).eq("Com_Flag",1); + eq("Run_Flag", 0).eq("Com_Flag", 1); Integer runDeviceCount = deviceMapper.selectCount(query); BigDecimal rate = BigDecimal.valueOf(runDeviceCount).divide(BigDecimal.valueOf(deviceCount), 4, BigDecimal.ROUND_HALF_UP); deptDeviceDetailVO.setDeviceCount(deviceCount); @@ -757,17 +781,17 @@ public class GeneralDeviceService { /** - * @param deptId 部门id - * @param runFlag 设备运行状态 0:投运 1.热备用 2.停运 + * @param deptId 部门id + * @param runFlag 设备运行状态 0:投运 1.热备用 2.停运 * @param dataType 系统 0:暂态系统;1:稳态系统;2:两个系统 * @author cdf * @date 2023/7/20 */ - public List deptGetRunLine(String deptId,List runFlag,List dataType) { + public List deptGetRunLine(String deptId, List runFlag, List dataType) { List deptDTOList = deptFeignClient.getDeptDescendantIndexes(deptId, Stream.of(0, 1).collect(Collectors.toList())).getData(); if (CollUtil.isNotEmpty(deptDTOList)) { List deptIds = deptDTOList.stream().map(DeptDTO::getId).distinct().collect(Collectors.toList()); - return deptLineService.getLineByDeptIds(deptIds,null,runFlag,dataType,null); + return deptLineService.getLineByDeptIds(deptIds, null, runFlag, dataType, null); } return new ArrayList<>(); } @@ -779,12 +803,12 @@ public class GeneralDeviceService { * @date 2023/7/20 */ public List deptGetRunDev(String deptId) { - List runLineIds = this.deptGetRunLine(deptId,Stream.of(0).collect(Collectors.toList()),Stream.of(0,2).collect(Collectors.toList())); + List runLineIds = this.deptGetRunLine(deptId, Stream.of(0).collect(Collectors.toList()), Stream.of(0, 2).collect(Collectors.toList())); List lines = lineMapper.selectList(new LambdaQueryWrapper() - .select(Line::getPids) - .in(Line::getId,runLineIds) + .select(Line::getPids) + .in(Line::getId, runLineIds) ); - if(CollUtil.isNotEmpty(lines)){ + if (CollUtil.isNotEmpty(lines)) { return lines.stream().map(line -> { String[] idsArray = line.getPids().split(","); return idsArray[4]; @@ -805,15 +829,15 @@ public class GeneralDeviceService { List devDetails = deviceMapper.selectDevByIds(devIds); for (DevDetail devDetail : devDetails) { //终端等级 - if(gradeMap.containsKey(devDetail.getLineGrade())){ + if (gradeMap.containsKey(devDetail.getLineGrade())) { devDetail.setLineGrade(String.valueOf(gradeMap.get(devDetail.getLineGrade()))); } //部门 - if(deptMap.containsKey(devDetail.getDeptName())){ + if (deptMap.containsKey(devDetail.getDeptName())) { devDetail.setDeptName(deptMap.get(devDetail.getDeptName())); } //终端厂商 - if(manufacturerMap.containsKey(devDetail.getManufacturer())){ + if (manufacturerMap.containsKey(devDetail.getManufacturer())) { devDetail.setManufacturer(manufacturerMap.get(devDetail.getManufacturer())); } } diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/TerminalBaseService.java b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/TerminalBaseService.java index 317a82cc9..57a53715e 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/TerminalBaseService.java +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/TerminalBaseService.java @@ -188,6 +188,8 @@ public interface TerminalBaseService { */ List getDeviceIdByPowerFlag(List lineIds, Integer manufacturer); + List getDeviceIdByJbPowerFlag(List lineIds, Integer powerFlag); + /** * 根据监测点集合查询基础信息 diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/impl/TerminalBaseServiceImpl.java b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/impl/TerminalBaseServiceImpl.java index 854fc2d53..31283c508 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/impl/TerminalBaseServiceImpl.java +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/common/service/impl/TerminalBaseServiceImpl.java @@ -1666,6 +1666,11 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple return this.baseMapper.getDeviceIdByPowerFlag(lineIds, manufacturer); } + @Override + public List getDeviceIdByJbPowerFlag(List lineIds, Integer powerFlag) { + return this.baseMapper.getDeviceIdByJbPowerFlag(lineIds, powerFlag); + } + @Override public List getBaseLineInfo(List lineIndex) { return this.baseMapper.getBaseLineInfo(lineIndex); 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 43f896173..c7a196a4d 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 @@ -8,6 +8,8 @@ import com.njcn.common.pojo.response.HttpResult; 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.common.DeviceOnlineRate; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; @@ -16,6 +18,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; +import java.util.List; /** @@ -42,5 +45,14 @@ public class OnLineRateController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rate, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getOnlineRateByDevIds") + @ApiOperation("通用终端在线率(冀北)") + public HttpResult> getOnlineRateByDevIds(@RequestBody OnlineRateParam deviceInfoParam) { + String methodDescribe = getMethodDescribe("deviceOnlineRateInfo"); + 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 bf8af7967..fd9c37545 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 @@ -2,8 +2,12 @@ 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.common.DeviceOnlineRate; +import java.util.List; + /** * @Description: 终端在线率 * @Author: wr @@ -14,8 +18,18 @@ public interface OnLineRateService { /** * 终端详情列表 + * * @param deviceInfoParam * @return */ - DeviceOnlineRate deviceOnlineRateInfo(DeviceInfoParam.BusinessParam deviceInfoParam); + DeviceOnlineRate deviceOnlineRateInfo(DeviceInfoParam.BusinessParam deviceInfoParam); + + + /** + * 终端详情列表 + * + * @param + * @return + */ + 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 5e35f4778..176a7db33 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 @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.device.common.service.GeneralDeviceService; import com.njcn.device.device.service.OnLineRateService; import com.njcn.device.common.mapper.onlinerate.OnLineRateMapper; +import com.njcn.device.pq.enums.RunFlagEnum; import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.OnlineRateParam; @@ -51,9 +52,9 @@ public class OnLineRateServiceImpl extends ServiceImpl devInfoByIds = deviceService.getDevInfoByIds(deviceIds); - rate.setBelowNum(CollUtil.isNotEmpty(onlineRateByDev)?calculateOnLineRate(onlineRateByDev,90):deviceIds.size()); - rate.setTotalOnlineRate(calculateOnLineRate(onlineRateByDev,deviceIds)); - List citDetailList=new ArrayList<>(); + rate.setBelowNum(CollUtil.isNotEmpty(onlineRateByDev) ? calculateOnLineRate(onlineRateByDev, 90) : deviceIds.size()); + rate.setTotalOnlineRate(calculateOnLineRate(onlineRateByDev, deviceIds)); + List citDetailList = new ArrayList<>(); DeviceOnlineRate.CitDetail citDetail; DeviceOnlineRate.Detail detail; for (GeneralDeviceDTO dto : deviceInfo) { @@ -61,15 +62,15 @@ 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)); - citDetail=new DeviceOnlineRate.CitDetail(); + citDetail = new DeviceOnlineRate.CitDetail(); citDetail.setCitName(dto.getName()); citDetail.setCitTotalNum(dto.getDeviceIndexes().size()); - citDetail.setCitBelowNum(CollUtil.isNotEmpty(citDevOnRate)?calculateOnLineRate(onlineRateByDev,90):dto.getDeviceIndexes().size()); - citDetail.setCitTotalOnlineRate(calculateOnLineRate(onlineRateByDev,dto.getDeviceIndexes())); + citDetail.setCitBelowNum(CollUtil.isNotEmpty(citDevOnRate) ? calculateOnLineRate(onlineRateByDev, 90) : dto.getDeviceIndexes().size()); + citDetail.setCitTotalOnlineRate(calculateOnLineRate(onlineRateByDev, dto.getDeviceIndexes())); List detailList = new ArrayList<>(); List details = devInfoByIds.stream().filter(x -> dto.getDeviceIndexes().contains(x.getDevIndex())).collect(Collectors.toList()); for (DevDetail dev : details) { - detail=new DeviceOnlineRate.Detail(); + detail = new DeviceOnlineRate.Detail(); detail.setCit(dev.getDeptName()); detail.setCompany(dev.getGdName()); detail.setSubStation(dev.getBdzName()); @@ -77,9 +78,10 @@ public class OnLineRateServiceImpl extends ServiceImpl onlineRateByDev ,List deviceIds){ + @Override + 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()); - if(CollUtil.isNotEmpty(list)){ + 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 sumMin= onlineMin.add(offlineMin); - return onlineMin.divide(sumMin,2).toString(); + BigDecimal offlineMin = BigDecimal.valueOf(list.stream().mapToLong(RStatOnlinerateVO::getOfflineMin).sum()); + BigDecimal sumMin = onlineMin.add(offlineMin); + return onlineMin.divide(sumMin, 2).toString(); } return "0"; } - private Integer calculateOnLineRate(List onlineRateByDev,Integer limit){ + private Integer calculateOnLineRate(List onlineRateByDev, Integer limit) { return onlineRateByDev.stream().filter(x -> x.getOnlineRate() < limit).collect(Collectors.toList()).size(); } diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/LineMapper.java b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/LineMapper.java index f52b6d957..de5c42df6 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/LineMapper.java +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/LineMapper.java @@ -548,6 +548,8 @@ public interface LineMapper extends BaseMapper { List getDeviceIdByPowerFlag(@Param("lineIds")List lineIds, @Param("powerFlag")Integer manufacturer); + List getDeviceIdByJbPowerFlag(@Param("lineIds")List lineIds, @Param("powerFlag")Integer manufacturer); + DeviceVO getDeviceDetailData(@Param("id")String id); List getDeptDeviceDetailData(@Param("ids")List ids, diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/LineMapper.xml b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/LineMapper.xml index f853ea6c6..8ec1d18fe 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/LineMapper.xml +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/LineMapper.xml @@ -1884,5 +1884,28 @@ +