From 47d7a12280b02d35cd929bf49645c0228137f02a Mon Sep 17 00:00:00 2001 From: zhaoxianglong Date: Thu, 21 Mar 2024 13:18:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E7=8E=87=E6=89=80=E9=9C=80=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zc/business/controller/StatusController.java | 14 ++++++++------ .../resources/mapper/business/StatusMapper.xml | 3 +++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/controller/StatusController.java b/zc-business/src/main/java/com/zc/business/controller/StatusController.java index cb1a077c..a9a310e8 100644 --- a/zc-business/src/main/java/com/zc/business/controller/StatusController.java +++ b/zc-business/src/main/java/com/zc/business/controller/StatusController.java @@ -167,7 +167,7 @@ public class StatusController extends BaseController { List lastEntry = ipMap.get(lastKey); Map> typeMap = lastEntry.stream().filter(iteam -> iteam.getType() != null).collect(Collectors.groupingBy(Status::getType)); Map> subMap=new HashMap<>(); - + Long sumUseState = 0L; for (Map.Entry> entrys : typeMap.entrySet()) { Map maps=new HashMap<>(); List groupItems = entrys.getValue(); @@ -185,9 +185,12 @@ public class StatusController extends BaseController { //离线率 maps.put("failRate",failRate); //已使用数量 - maps.put("sum",String.valueOf(groupItems.size())); + List collect = dcDeviceList.stream().filter(item -> Objects.equals(item.getDeviceType(), entrys.getKey())).map(DcDevice::getSumAll).collect(Collectors.toList()); + String useStateNum = collect.size() > 0 ? String.valueOf(collect.get(0)) : "0"; + sumUseState += Long.valueOf(useStateNum); + maps.put("sumUseState",useStateNum); //总数 - maps.put("sumUseState", String.valueOf(dcDeviceList.stream().filter(item -> Objects.equals(item.getDeviceType(), entrys.getKey())).map(DcDevice::getSumAll).collect(Collectors.toList()).get(0))); + maps.put("sum",String.valueOf(groupItems.size())); if(itemTypeMap.get(entrys.getKey())!=null) { subMap.put(itemTypeMap.get(entrys.getKey()), maps); } @@ -207,10 +210,9 @@ public class StatusController extends BaseController { //离线率 maps.put("failRate",failRate); //已使用数量 - List list = dcDeviceService.list(); - maps.put("sumUseState",String.valueOf(lastEntry.size())); + maps.put("sumUseState", String.valueOf(sumUseState)); //总数 - maps.put("sum",String.valueOf(list.size())); + maps.put("sum",String.valueOf(lastEntry.size())); subMap.put("全部设备",maps); return AjaxResult.success(subMap); diff --git a/zc-business/src/main/resources/mapper/business/StatusMapper.xml b/zc-business/src/main/resources/mapper/business/StatusMapper.xml index 94b29f40..cc5d9b16 100644 --- a/zc-business/src/main/resources/mapper/business/StatusMapper.xml +++ b/zc-business/src/main/resources/mapper/business/StatusMapper.xml @@ -103,6 +103,9 @@ AND s.device_id = #{status.deviceId} + + AND d.use_state = #{status.useState} + From 3fa8b8155930214fd2e8be80636826f730e398d1 Mon Sep 17 00:00:00 2001 From: zhaoxianglong Date: Thu, 21 Mar 2024 15:24:00 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E7=8E=87=E6=89=80=E9=9C=80=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/controller/StatusController.java | 105 ++++++++++++++++-- .../zc/business/mapper/DcDeviceMapper.java | 1 + .../zc/business/service/IDcDeviceService.java | 2 + .../service/impl/DcDeviceServiceImpl.java | 5 + 4 files changed, 102 insertions(+), 11 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/controller/StatusController.java b/zc-business/src/main/java/com/zc/business/controller/StatusController.java index a9a310e8..4d2c6c49 100644 --- a/zc-business/src/main/java/com/zc/business/controller/StatusController.java +++ b/zc-business/src/main/java/com/zc/business/controller/StatusController.java @@ -129,9 +129,93 @@ public class StatusController extends BaseController { @GetMapping ("/type") public AjaxResult getTypeList() { - DcDevice dcDevice = new DcDevice(); - dcDevice.setUseState(1); - List dcDeviceList = dcDeviceService.numberOfDevicesByType(dcDevice); + //DcDevice dcDevice = new DcDevice(); + //dcDevice.setUseState(1); + //List dcDeviceList = dcDeviceService.numberOfDevicesByType(dcDevice); + //HashMap itemTypeMap = new HashMap<>(); + //itemTypeMap.put("1-1", "高清网络枪型固定摄像机"); + //itemTypeMap.put("1-2", "高清网络球形摄像机"); + //itemTypeMap.put("1-3", "桥下高清网络球形摄像机"); + //itemTypeMap.put("1-4", "360°全景摄像机"); + //itemTypeMap.put("1-5", "180°全景摄像机"); + //itemTypeMap.put("2-1", "门架式可变信息标志"); + //itemTypeMap.put("2-3", "雨棚可变信息标志"); + //itemTypeMap.put("2-4", "站前悬臂式可变信息标志"); + //itemTypeMap.put("3", "气象检测器"); + //itemTypeMap.put("5", "路段语音广播系统"); + //itemTypeMap.put("6", "护栏碰撞预警系统"); + //itemTypeMap.put("7", "毫米波雷达"); + //itemTypeMap.put("8", "合流区预警系统"); + //itemTypeMap.put("10", "激光疲劳唤醒"); + //itemTypeMap.put("11", "一类交通量调查站"); + //itemTypeMap.put("12", "智能行车诱导系统"); + //itemTypeMap.put("13", "智能设备箱"); + //LocalDateTime todayStart = LocalDateTime.now().truncatedTo(ChronoUnit.DAYS); + //LocalDateTime currentTime = LocalDateTime.now(); + //Status status = new Status(); + //status.setStartTime(todayStart); + //status.setTime(currentTime); + //List listStatus = statusService.list(status); + ////根据时间分组 + //Map> map = listStatus.stream() + // .collect(Collectors.groupingBy(Status -> Status.getTime().getHour())); + //if(StringUtils.isEmpty(map)){ + // return AjaxResult.success("暂无数据"); + //} + //Map> ipMap = new TreeMap<>(map); + //Integer lastKey = Collections.max(ipMap.keySet()); + //List lastEntry = ipMap.get(lastKey); + //Map> typeMap = lastEntry.stream().filter(iteam -> iteam.getType() != null).collect(Collectors.groupingBy(Status::getType)); + //Map> subMap=new HashMap<>(); + //Long sumUseState = 0L; + //for (Map.Entry> entrys : typeMap.entrySet()) { + // Map maps=new HashMap<>(); + // List groupItems = entrys.getValue(); + // double lostRate = groupItems.stream() + // .mapToDouble(Status -> Double.parseDouble(Status.getLostRate().replace("%", ""))) // 去掉%,并转换为double + // .average().getAsDouble(); + // double sucessRate = groupItems.stream() + // .mapToDouble(Status -> Double.parseDouble(Status.getSuccessRate().replace("%", ""))) // 去掉%,并转换为double + // .average().getAsDouble(); + // String failRate=String.format("%.2f", (100-sucessRate))+"%"; + // //丢包率 + // maps.put("lostRate",String.format("%.2f", lostRate)+"%"); + // //在线率 + // maps.put("sucessRate",String.format("%.2f", sucessRate)+"%"); + // //离线率 + // maps.put("failRate",failRate); + // //已使用数量 + // List collect = dcDeviceList.stream().filter(item -> Objects.equals(item.getDeviceType(), entrys.getKey())).map(DcDevice::getSumAll).collect(Collectors.toList()); + // String useStateNum = collect.size() > 0 ? String.valueOf(collect.get(0)) : "0"; + // sumUseState += Long.valueOf(useStateNum); + // maps.put("sumUseState",useStateNum); + // //总数 + // maps.put("sum",String.valueOf(groupItems.size())); + // if(itemTypeMap.get(entrys.getKey())!=null) { + // subMap.put(itemTypeMap.get(entrys.getKey()), maps); + // } + //} + //Map maps=new HashMap<>(); + //double lostRate = lastEntry.stream() + // .mapToDouble(Status -> Double.parseDouble(Status.getLostRate().replace("%", ""))) // 去掉%,并转换为double + // .average().getAsDouble(); + //double sucessRate = lastEntry.stream() + // .mapToDouble(Status -> Double.parseDouble(Status.getSuccessRate().replace("%", ""))) // 去掉%,并转换为double + // .average().getAsDouble(); + //String failRate=String.format("%.2f", (100-sucessRate))+"%"; + ////丢包率 + //maps.put("lostRate",String.format("%.2f", lostRate)+"%"); + ////在线率 + //maps.put("sucessRate",String.format("%.2f", sucessRate)+"%"); + ////离线率 + //maps.put("failRate",failRate); + ////已使用数量 + //maps.put("sumUseState", String.valueOf(sumUseState)); + ////总数 + //maps.put("sum",String.valueOf(lastEntry.size())); + //subMap.put("全部设备",maps); + + List dcDeviceList = dcDeviceService.numberOfDevicesByType(); HashMap itemTypeMap = new HashMap<>(); itemTypeMap.put("1-1", "高清网络枪型固定摄像机"); itemTypeMap.put("1-2", "高清网络球形摄像机"); @@ -155,6 +239,7 @@ public class StatusController extends BaseController { Status status = new Status(); status.setStartTime(todayStart); status.setTime(currentTime); + status.setUseState(1); List listStatus = statusService.list(status); //根据时间分组 Map> map = listStatus.stream() @@ -167,7 +252,7 @@ public class StatusController extends BaseController { List lastEntry = ipMap.get(lastKey); Map> typeMap = lastEntry.stream().filter(iteam -> iteam.getType() != null).collect(Collectors.groupingBy(Status::getType)); Map> subMap=new HashMap<>(); - Long sumUseState = 0L; + for (Map.Entry> entrys : typeMap.entrySet()) { Map maps=new HashMap<>(); List groupItems = entrys.getValue(); @@ -185,12 +270,9 @@ public class StatusController extends BaseController { //离线率 maps.put("failRate",failRate); //已使用数量 - List collect = dcDeviceList.stream().filter(item -> Objects.equals(item.getDeviceType(), entrys.getKey())).map(DcDevice::getSumAll).collect(Collectors.toList()); - String useStateNum = collect.size() > 0 ? String.valueOf(collect.get(0)) : "0"; - sumUseState += Long.valueOf(useStateNum); - maps.put("sumUseState",useStateNum); + maps.put("sumUseState",String.valueOf(groupItems.size())); //总数 - maps.put("sum",String.valueOf(groupItems.size())); + maps.put("sum", String.valueOf(dcDeviceList.stream().filter(item -> Objects.equals(item.getDeviceType(), entrys.getKey())).map(DcDevice::getSumAll).collect(Collectors.toList()).get(0))); if(itemTypeMap.get(entrys.getKey())!=null) { subMap.put(itemTypeMap.get(entrys.getKey()), maps); } @@ -209,10 +291,11 @@ public class StatusController extends BaseController { maps.put("sucessRate",String.format("%.2f", sucessRate)+"%"); //离线率 maps.put("failRate",failRate); + List list = dcDeviceService.list(); //已使用数量 - maps.put("sumUseState", String.valueOf(sumUseState)); + maps.put("sumUseState",String.valueOf(lastEntry.size())); //总数 - maps.put("sum",String.valueOf(lastEntry.size())); + maps.put("sum",String.valueOf(list.size())); subMap.put("全部设备",maps); return AjaxResult.success(subMap); diff --git a/zc-business/src/main/java/com/zc/business/mapper/DcDeviceMapper.java b/zc-business/src/main/java/com/zc/business/mapper/DcDeviceMapper.java index 0fb3a492..13576c48 100644 --- a/zc-business/src/main/java/com/zc/business/mapper/DcDeviceMapper.java +++ b/zc-business/src/main/java/com/zc/business/mapper/DcDeviceMapper.java @@ -16,6 +16,7 @@ public interface DcDeviceMapper extends BaseMapper { List selectDcDeviceList(DcDevice dcDevice); List numberOfDevicesByType(DcDevice dcDevice); + List numberOfDevicesByType(); } diff --git a/zc-business/src/main/java/com/zc/business/service/IDcDeviceService.java b/zc-business/src/main/java/com/zc/business/service/IDcDeviceService.java index 9ccb83fe..5144990d 100644 --- a/zc-business/src/main/java/com/zc/business/service/IDcDeviceService.java +++ b/zc-business/src/main/java/com/zc/business/service/IDcDeviceService.java @@ -79,4 +79,6 @@ public interface IDcDeviceService extends IService { List devicePileNumberQueryDevice(Map parameter); List numberOfDevicesByType(DcDevice dcDevice); + + List numberOfDevicesByType(); } diff --git a/zc-business/src/main/java/com/zc/business/service/impl/DcDeviceServiceImpl.java b/zc-business/src/main/java/com/zc/business/service/impl/DcDeviceServiceImpl.java index f011b351..77460775 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/DcDeviceServiceImpl.java +++ b/zc-business/src/main/java/com/zc/business/service/impl/DcDeviceServiceImpl.java @@ -452,6 +452,11 @@ public class DcDeviceServiceImpl extends ServiceImpl i return dcDeviceMapper.numberOfDevicesByType(dcDevice); } + @Override + public List numberOfDevicesByType() { + return dcDeviceMapper.numberOfDevicesByType(); + } + public static List castList(Object obj, Class clazz) { List result = new ArrayList(); if (obj instanceof List) {