From 7fbfc58435d98b87898c74d277c841d815a06390 Mon Sep 17 00:00:00 2001 From: zhangbaojian <1065122561@qq.com> Date: Thu, 6 Apr 2023 15:04:00 +0800 Subject: [PATCH] =?UTF-8?q?zbj//1.=E5=A4=A7=E5=B1=8F=E4=B8=AD=E9=97=B4?= =?UTF-8?q?=E7=BB=88=E7=AB=AF=E5=BC=82=E5=B8=B8=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/pq/pojo/vo/MiddleTerminalVO.java | 48 +++++++++++++++ .../majornetwork/LargeScreenController.java | 13 +++++ .../majornetwork/LargeScreenMapper.java | 2 + .../mapping/LargeScreenMapper.xml | 43 ++++++++++++++ .../Impl/LargeScreenServiceImpl.java | 58 ++++++++++++++++++- .../majornetwork/LargeScreenService.java | 1 + 6 files changed, 163 insertions(+), 2 deletions(-) create mode 100644 pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/MiddleTerminalVO.java diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/MiddleTerminalVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/MiddleTerminalVO.java new file mode 100644 index 000000000..69434f8fb --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/MiddleTerminalVO.java @@ -0,0 +1,48 @@ +package com.njcn.device.pq.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @version 1.0.0 + * @author: zbj + * @date: 2023/04/06 + */ +@Data +public class MiddleTerminalVO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 变电站 + */ + @ApiModelProperty("变电站") + private String name; + + /** + * 网络参数 + */ + @ApiModelProperty("网络参数") + private String ip; + + /** + * 端口 + */ + @ApiModelProperty("端口") + private String port; + + /** + * 通讯状态 + */ + @ApiModelProperty("通讯状态") + private String comFlag; + + /** + * 流量占比 + */ + @ApiModelProperty("流量占比") + private String proportion; + +} diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/LargeScreenController.java b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/LargeScreenController.java index 91b6edc1d..728fb2c3a 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/LargeScreenController.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/LargeScreenController.java @@ -114,4 +114,17 @@ public class LargeScreenController extends BaseController { List result = largeScreenService.getMiddleDown(largeScreenParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + + /** + * 大屏中间终端异常信息 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getMiddleTerminal") + @ApiOperation("大屏中间终端异常信息") + @ApiImplicitParam(name = "largeScreenParam", value = "大屏中间终端异常信息", required = true) + public HttpResult> getMiddleTerminal(@RequestBody @Validated LargeScreenParam largeScreenParam) { + String methodDescribe = getMethodDescribe("getMiddleTerminal"); + List result = largeScreenService.getMiddleTerminal(largeScreenParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java index f203e3656..cc0dd23ef 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java @@ -27,4 +27,6 @@ public interface LargeScreenMapper { Map getDownCount (@Param("lineIds") List lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime); List getMiddleDown (@Param("lineIds") List lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime); + + List> getMiddleTerminal (@Param("deviceIds") List deviceIds, @Param("startTime") String startTime, @Param("endTime") String endTime); } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml index 405a5d126..ba6effe37 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml @@ -127,5 +127,48 @@ order by ed.create_time desc + + 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 df834520c..eff6eb29f 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 @@ -15,6 +15,8 @@ import org.apache.commons.collections.map.HashedMap; import org.springframework.stereotype.Service; import com.njcn.device.pq.api.GeneralDeviceInfoClient; +import java.math.RoundingMode; +import java.text.NumberFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; @@ -310,7 +312,7 @@ public class LargeScreenServiceImpl implements LargeScreenService { deviceInfoParam.setDeptIndex(largeScreenParam.getDeptIndex()); //统计类型 SimpleDTO simpleDTO = new SimpleDTO(); - simpleDTO.setCode(String.valueOf(StatisticsEnum.POWER_NETWORK)); + simpleDTO.setCode(String.valueOf(StatisticsEnum.LOAD_TYPE)); deviceInfoParam.setStatisticalType(simpleDTO); //添加时间 deviceInfoParam.setSearchBeginTime(largeScreenParam.getSearchBeginTime()); @@ -322,7 +324,59 @@ public class LargeScreenServiceImpl implements LargeScreenService { //获取所有监测点集合 List lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList()); return largeScreenMapper.getMiddleDown(lineIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); - } + /** + * 大屏中间终端异常信息 + */ + @Override + public List getMiddleTerminal(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.POWER_NETWORK)); + deviceInfoParam.setStatisticalType(simpleDTO); + //添加时间 + deviceInfoParam.setSearchBeginTime(largeScreenParam.getSearchBeginTime()); + deviceInfoParam.setSearchEndTime(largeScreenParam.getSearchEndTime()); + + // 获取所有数据 + List generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData(); + //获取所有监测点集合 + List deviceIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getDeviceIndexes().stream()).collect(Collectors.toList()); + List> map = largeScreenMapper.getMiddleTerminal(deviceIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); + + float base = 0.0f; + float ream = 0.0f; + float statusValue = 0.0f; + float v = 0.0f; + String s = ""; + for (Map stringObjectMap : map) { + MiddleTerminalVO vo = new MiddleTerminalVO(); + base = Float.parseFloat(stringObjectMap.get("base").toString()); + ream = Float.parseFloat(stringObjectMap.get("ream").toString()); + statusValue = Float.parseFloat(stringObjectMap.get("statusValue").toString()); + statusValue = statusValue / 1024.0f/1024.0f; + v = statusValue / (base + ream); + s = formatFloat(v); + vo.setName(stringObjectMap.get("name").toString()); + vo.setIp(stringObjectMap.get("ip").toString()); + vo.setPort(stringObjectMap.get("port").toString()); + vo.setComFlag(stringObjectMap.get("comFlag").toString()); + vo.setProportion(s+"%"); + result.add(vo); + } + return result; + } + + public static String formatFloat(Float value) { + NumberFormat nf = NumberFormat.getNumberInstance(); + nf.setMaximumFractionDigits(2);//保留两位小数,即四舍五入到小数点后两位 + nf.setRoundingMode(RoundingMode.HALF_UP);//设置四舍五入模式为四舍五入 + return nf.format(value); + } } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/LargeScreenService.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/LargeScreenService.java index 5b29d23aa..c808db965 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/LargeScreenService.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/LargeScreenService.java @@ -25,4 +25,5 @@ public interface LargeScreenService { List getMiddleDown(LargeScreenParam largeScreenParam); + List getMiddleTerminal(LargeScreenParam largeScreenParam); }