From 24a12ec54f9e80474343b478042f804cca966716 Mon Sep 17 00:00:00 2001 From: zhangbaojian <1065122561@qq.com> Date: Fri, 7 Apr 2023 14:17:51 +0800 Subject: [PATCH] =?UTF-8?q?zbj//1.=E7=A8=B3=E6=80=81=E6=8C=87=E6=A0=87?= =?UTF-8?q?=E8=B6=85=E6=A0=87=E5=8D=A0=E6=AF=94(=E8=B4=9F=E8=8D=B7?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/njcn/device/pq/pojo/vo/AllDataVO.java | 6 ++ .../Impl/LargeScreenServiceImpl.java | 7 +- .../majornetwork/LargeScreenController.java | 13 ++++ .../majornetwork/LargeScreenMapper.java | 3 + .../mapping/LargeScreenMapper.xml | 21 ++++- .../majornetwork/LargeScreenService.java | 3 + .../impl/LargeScreenServiceImpl.java | 76 ++++++++++++++++--- 7 files changed, 116 insertions(+), 13 deletions(-) diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/AllDataVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/AllDataVO.java index 054580d6f..57d344089 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/AllDataVO.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/AllDataVO.java @@ -27,6 +27,12 @@ public class AllDataVO implements Serializable { @ApiModelProperty("部门id") private String index; + /** + * 监测点数量 + */ + @ApiModelProperty("监测点数量") + private Integer num; + /** * 暂降事件次数 */ diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java index 5b3f1e596..ac2a59d5d 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java @@ -273,6 +273,7 @@ public class LargeScreenServiceImpl implements LargeScreenService { AllDataVO allDataVO = largeScreenMapper.getFlagCount(generalDeviceDTO.getDeviceIndexes()); allDataVO.setAreaName(generalDeviceDTO.getName()); allDataVO.setIndex(generalDeviceDTO.getIndex()); + allDataVO.setNum(generalDeviceDTO.getLineIndexes().size()); allDataVO.setSteadyLoad("0.0"); if (generalDeviceDTO.getLineIndexes().size() > 0) { Map map = largeScreenMapper.getDownCount(generalDeviceDTO.getLineIndexes(), largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); @@ -285,6 +286,7 @@ public class LargeScreenServiceImpl implements LargeScreenService { AllDataVO allDataVO = new AllDataVO(); allDataVO.setAreaName(generalDeviceDTO.getName()); allDataVO.setIndex(generalDeviceDTO.getIndex()); + allDataVO.setNum(generalDeviceDTO.getLineIndexes().size()); allDataVO.setRunning("0"); allDataVO.setHotSpare("0"); allDataVO.setShutdown("0"); @@ -382,7 +384,7 @@ public class LargeScreenServiceImpl implements LargeScreenService { vo.setIp(stringObjectMap.get("ip").toString()); vo.setPort(stringObjectMap.get("port").toString()); vo.setComFlag(stringObjectMap.get("comFlag").toString()); - vo.setProportion(s + "%"); + vo.setProportion(s); result.add(vo); } return result; @@ -392,7 +394,8 @@ public class LargeScreenServiceImpl implements LargeScreenService { NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(2);//保留两位小数,即四舍五入到小数点后两位 nf.setRoundingMode(RoundingMode.HALF_UP);//设置四舍五入模式为四舍五入 - return nf.format(value); + float v = Float.parseFloat(nf.format(value)); + return String.valueOf(v*100); } /** diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/LargeScreenController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/LargeScreenController.java index 7c23d3789..85655816b 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/LargeScreenController.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/LargeScreenController.java @@ -49,4 +49,17 @@ public class LargeScreenController extends BaseController { List result = largeScreenService.getHomeostasisArea(largeScreenParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + + /** + * 稳态指标超标占比(负荷类型) + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getHomeostasisLoad") + @ApiOperation("稳态指标超标占比(负荷类型)") + @ApiImplicitParam(name = "largeScreenParam", value = "稳态指标超标占比(负荷类型)", required = true) + public HttpResult> getHomeostasisLoad(@RequestBody @Validated LargeScreenParam largeScreenParam) { + String methodDescribe = getMethodDescribe("getHomeostasisLoad"); + List result = largeScreenService.getHomeostasisLoad(largeScreenParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/LargeScreenMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/LargeScreenMapper.java index 53ee2108c..da298fc48 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/LargeScreenMapper.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/LargeScreenMapper.java @@ -13,4 +13,7 @@ import java.util.Map; public interface LargeScreenMapper { List> getHomeostasisArea (@Param("indexIds") List indexIds, @Param("startTime") String startTime, @Param("endTime") String endTime); + + List> getHomeostasisLoad (@Param("indexIds") List indexIds, @Param("startTime") String startTime, @Param("endTime") String endTime); + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/LargeScreenMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/LargeScreenMapper.xml index ab38313dd..ed1e33a9e 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/LargeScreenMapper.xml +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/LargeScreenMapper.xml @@ -2,7 +2,6 @@ - + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/LargeScreenService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/LargeScreenService.java index 08221993c..fc6c8df37 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/LargeScreenService.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/LargeScreenService.java @@ -14,4 +14,7 @@ import java.util.List; public interface LargeScreenService { List getHomeostasisArea(LargeScreenParam largeScreenParam); + + List getHomeostasisLoad(LargeScreenParam largeScreenParam); + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/LargeScreenServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/LargeScreenServiceImpl.java index cc2622394..f5c8f9981 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/LargeScreenServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/LargeScreenServiceImpl.java @@ -62,21 +62,77 @@ public class LargeScreenServiceImpl implements LargeScreenService { List> homeostasisArea = largeScreenMapper.getHomeostasisArea(indexIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); - for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) { + float f = 0.0f; + for (int i = 0; i < generalDeviceDTOList.size(); i++) { for (Map map : homeostasisArea) { - if (Objects.equals(generalDeviceDTO.getIndex(), map.get("id"))) { + if (Objects.equals(generalDeviceDTOList.get(i).getIndex(), map.get("id"))) { HomeostasisAreaVO homeostasisAreaVO = new HomeostasisAreaVO(); - homeostasisAreaVO.setName(generalDeviceDTO.getName()); - homeostasisAreaVO.setAvg(map.get("avg").toString()); + homeostasisAreaVO.setName(generalDeviceDTOList.get(i).getName()); + f = Float.parseFloat(map.get("avg").toString()) * 100; + homeostasisAreaVO.setAvg(String.valueOf(f)); result.add(homeostasisAreaVO); - } else { - HomeostasisAreaVO homeostasisAreaVO = new HomeostasisAreaVO(); - homeostasisAreaVO.setName(generalDeviceDTO.getName()); - homeostasisAreaVO.setAvg("0"); - result.add(homeostasisAreaVO); - } } } + } + List collect = result.stream().map(HomeostasisAreaVO::getName).collect(Collectors.toList()); + for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) { + if (!collect.contains(generalDeviceDTO.getName())) { + HomeostasisAreaVO homeostasisAreaVO = new HomeostasisAreaVO(); + homeostasisAreaVO.setName(generalDeviceDTO.getName()); + homeostasisAreaVO.setAvg("0"); + result.add(homeostasisAreaVO); + } + } return result; } + + /** + * 稳态指标超标占比(负荷类型) + */ + @Override + public List getHomeostasisLoad(LargeScreenParam largeScreenParam) { + //创建返回VO + List result = new ArrayList<>(); + + DeviceInfoParam.BusinessParam deviceInfoParam = new DeviceInfoParam.BusinessParam(); + //部门索引 + deviceInfoParam.setDeptIndex(largeScreenParam.getDeptIndex()); + //统计类型 + SimpleDTO simpleDTO = new SimpleDTO(); + simpleDTO.setCode(String.valueOf(StatisticsEnum.LOAD_TYPE)); + deviceInfoParam.setStatisticalType(simpleDTO); + //添加时间 + deviceInfoParam.setSearchBeginTime(largeScreenParam.getSearchBeginTime()); + deviceInfoParam.setSearchEndTime(largeScreenParam.getSearchEndTime()); + + // 获取所有数据 + List generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData(); + //部门id集合 + List indexIds = generalDeviceDTOList.stream().map(GeneralDeviceDTO::getIndex).collect(Collectors.toList()); + + List> homeostasisArea = largeScreenMapper.getHomeostasisLoad(indexIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); + float f = 0.0f; + for (int i = 0; i < generalDeviceDTOList.size(); i++) { + for (Map map : homeostasisArea) { + if (Objects.equals(generalDeviceDTOList.get(i).getIndex(), map.get("id"))) { + HomeostasisAreaVO homeostasisAreaVO = new HomeostasisAreaVO(); + homeostasisAreaVO.setName(generalDeviceDTOList.get(i).getName()); + f = Float.parseFloat(map.get("avg").toString()) * 100; + homeostasisAreaVO.setAvg(String.valueOf(f)); + result.add(homeostasisAreaVO); + } + } + } + List collect = result.stream().map(HomeostasisAreaVO::getName).collect(Collectors.toList()); + for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) { + if (!collect.contains(generalDeviceDTO.getName())) { + HomeostasisAreaVO homeostasisAreaVO = new HomeostasisAreaVO(); + homeostasisAreaVO.setName(generalDeviceDTO.getName()); + homeostasisAreaVO.setAvg("0"); + result.add(homeostasisAreaVO); + } + } + return result; + } + }