2021与蓝度共同重构项目,服务端
Van333
2022-12-15 5e94332935da62448c17f89a807acf46a5ae3e75
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -329,42 +329,42 @@
        }).start();
        //摄像头
        List<MonitorBo> monitorBos = SpringContextHolder.getBean(MonitorService.class).listMonitorOnHome();
        new Thread(new Runnable() {
            @Override
            public void run() {
                AtomicInteger onLine = new AtomicInteger(0);
                AtomicInteger offLine = new AtomicInteger(0);
                DeviceOnLineCountVO Monitor = new DeviceOnLineCountVO();
                monitorBos.forEach(
                        device -> {
                            String s = redisUtils.get(DeviceRedisKey.MONITOR + device.getDeviceSerial());
                            if (s != null) {
                                RedisDeviceStatus redisDeviceStatus = JSON.parseObject(s, RedisDeviceStatus.class);
                                if (redisDeviceStatus.getStatus() == 0) {
                                    //在线
                                    onLine.getAndIncrement();
                                } else {
                                    //离线
                                    offLine.getAndIncrement();
                                }
                            } else {
                                offLine.getAndIncrement();
                            }
                        }
                );
                Monitor.setTotalCount(monitorBos.size());
                Monitor.setOnlineCount(onLine.get());
                Monitor.setOfflineCount(offLine.get());
                onLineCountVO.setMonitor(Monitor);
                System.out.println("摄像头执行时间: " + LocalDateTime.now());
                countDownLatchUtil.countDown(str);
            }
        }).start();
//        List<MonitorBo> monitorBos = SpringContextHolder.getBean(MonitorService.class).listMonitorOnHome();
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//
//                AtomicInteger onLine = new AtomicInteger(0);
//                AtomicInteger offLine = new AtomicInteger(0);
//
//                DeviceOnLineCountVO Monitor = new DeviceOnLineCountVO();
//                monitorBos.forEach(
//                        device -> {
//                            String s = redisUtils.get(DeviceRedisKey.MONITOR + device.getDeviceSerial());
//                            if (s != null) {
//                                RedisDeviceStatus redisDeviceStatus = JSON.parseObject(s, RedisDeviceStatus.class);
//                                if (redisDeviceStatus.getStatus() == 0) {
//                                    //在线
//                                    onLine.getAndIncrement();
//                                } else {
//                                    //离线
//                                    offLine.getAndIncrement();
//                                }
//                            } else {
//                                offLine.getAndIncrement();
//                            }
//                        }
//                );
//
//                Monitor.setTotalCount(monitorBos.size());
//                Monitor.setOnlineCount(onLine.get());
//                Monitor.setOfflineCount(offLine.get());
//
//                onLineCountVO.setMonitor(Monitor);
//                System.out.println("摄像头执行时间: " + LocalDateTime.now());
//                countDownLatchUtil.countDown(str);
//            }
//        }).start();
        //单灯
@@ -416,49 +416,49 @@
        //充电桩
        List<C3ChargingBo> c3mChargings = SpringContextHolder.getBean(C3ChargingService.class).getC3ChargingList();
        new Thread(new Runnable() {
            @Override
            public void run() {
                AtomicInteger onLine = new AtomicInteger(0);
                AtomicInteger offLine = new AtomicInteger(0);
                AtomicInteger error = new AtomicInteger(0);
                DeviceOnLineCountVO c3m = new DeviceOnLineCountVO();
                c3mChargings.forEach(
                        device -> {
                            String s = redisUtils.get(C3mRedisConstant.C3_STATUS.getCode() + device.getC3Mac());
                            RedisDeviceStatus redisDeviceStatus = new RedisDeviceStatus();
                            redisDeviceStatus.setDeviceId(device.getC3Id().toString());
                            if (s != null) {
                                A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage heartBeatDataPackage = JSON.parseObject(s, A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage.class);
                                //  充电桩口状态位  1.空闲 2.充电中 3.充电中断,等待服务器确认 4.充电结束,等待服务器确认 5.有故障 6.与充电桩对接中
                                if ("5".equals(heartBeatDataPackage.getStatusBit())) {
                                    //故障
                                    onLine.getAndIncrement();
                                    error.getAndIncrement();
                                } else {
                                    //在线
                                    onLine.getAndIncrement();
                                }
                            } else {
                                //离线
                                offLine.getAndIncrement();
                            }
                        }
                );
                c3m.setTotalCount(c3mChargings.size());
                c3m.setOnlineCount(onLine.get());
                c3m.setOfflineCount(offLine.get());
                c3m.setErrorCount(error.get());
                onLineCountVO.setC3m(c3m);
                System.out.println("充电桩执行时间: " + LocalDateTime.now());
                countDownLatchUtil.countDown(str);
            }
        }).start();
//        List<C3ChargingBo> c3mChargings = SpringContextHolder.getBean(C3ChargingService.class).getC3ChargingList();
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                AtomicInteger onLine = new AtomicInteger(0);
//                AtomicInteger offLine = new AtomicInteger(0);
//                AtomicInteger error = new AtomicInteger(0);
//
//
//                DeviceOnLineCountVO c3m = new DeviceOnLineCountVO();
//                c3mChargings.forEach(
//                        device -> {
//                            String s = redisUtils.get(C3mRedisConstant.C3_STATUS.getCode() + device.getC3Mac());
//                            RedisDeviceStatus redisDeviceStatus = new RedisDeviceStatus();
//                            redisDeviceStatus.setDeviceId(device.getC3Id().toString());
//                            if (s != null) {
//                                A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage heartBeatDataPackage = JSON.parseObject(s, A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage.class);
//                                //  充电桩口状态位  1.空闲 2.充电中 3.充电中断,等待服务器确认 4.充电结束,等待服务器确认 5.有故障 6.与充电桩对接中
//                                if ("5".equals(heartBeatDataPackage.getStatusBit())) {
//                                    //故障
//                                    onLine.getAndIncrement();
//                                    error.getAndIncrement();
//                                } else {
//                                    //在线
//                                    onLine.getAndIncrement();
//                                }
//                            } else {
//                                //离线
//                                offLine.getAndIncrement();
//                            }
//                        }
//                );
//
//                c3m.setTotalCount(c3mChargings.size());
//                c3m.setOnlineCount(onLine.get());
//                c3m.setOfflineCount(offLine.get());
//                c3m.setErrorCount(error.get());
//
//                onLineCountVO.setC3m(c3m);
//                System.out.println("充电桩执行时间: " + LocalDateTime.now());
//                countDownLatchUtil.countDown(str);
//            }
//        }).start();
        //大气
@@ -509,76 +509,76 @@
//        result.put("AirEquipmentNongGengTotalCount", airEquipmentNongGengBos.size());
        //水质
        List<WaterQualityEquipmentBo> waterQualityEquipments = SpringContextHolder.getBean(WaterQualityEquipmentService.class).listWaterQualityEquipmentByKeyword(null, null);
        new Thread(new Runnable() {
            @Override
            public void run() {
                DeviceOnLineCountVO water = new DeviceOnLineCountVO();
                water.setTotalCount(waterQualityEquipments.size());
                water.setOnlineCount(waterQualityEquipments.size());
                water.setOfflineCount(0);
                water.setErrorCount(0);
                onLineCountVO.setWaterEquipment(water);
                System.out.println("水质执行时间: " + LocalDateTime.now());
                countDownLatchUtil.countDown(str);
            }
        }).start();
//        List<WaterQualityEquipmentBo> waterQualityEquipments = SpringContextHolder.getBean(WaterQualityEquipmentService.class).listWaterQualityEquipmentByKeyword(null, null);
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//
//                DeviceOnLineCountVO water = new DeviceOnLineCountVO();
//                water.setTotalCount(waterQualityEquipments.size());
//                water.setOnlineCount(waterQualityEquipments.size());
//                water.setOfflineCount(0);
//                water.setErrorCount(0);
//                onLineCountVO.setWaterEquipment(water);
//                System.out.println("水质执行时间: " + LocalDateTime.now());
//                countDownLatchUtil.countDown(str);
//            }
//        }).start();
        //灯杆倾斜
        List<LightPoleHeelingEquipmentBo> lightPoleHeelingEquipmentBos = SpringContextHolder.getBean(LightPoleHeelingEquipmentService.class).LightPoleHeelingEquipmentListOnHome();
        new Thread(new Runnable() {
            @Override
            public void run() {
                DeviceOnLineCountVO PoleHeeling = new DeviceOnLineCountVO();
                PoleHeeling.setTotalCount(lightPoleHeelingEquipmentBos.size());
                PoleHeeling.setOnlineCount(lightPoleHeelingEquipmentBos.size());
                PoleHeeling.setOfflineCount(0);
                PoleHeeling.setErrorCount(0);
                onLineCountVO.setLightPoleHeeling(PoleHeeling);
                System.out.println("灯杆倾斜执行时间: " + LocalDateTime.now());
                countDownLatchUtil.countDown(str);
            }
        }).start();
//        List<LightPoleHeelingEquipmentBo> lightPoleHeelingEquipmentBos = SpringContextHolder.getBean(LightPoleHeelingEquipmentService.class).LightPoleHeelingEquipmentListOnHome();
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//
//                DeviceOnLineCountVO PoleHeeling = new DeviceOnLineCountVO();
//                PoleHeeling.setTotalCount(lightPoleHeelingEquipmentBos.size());
//                PoleHeeling.setOnlineCount(lightPoleHeelingEquipmentBos.size());
//                PoleHeeling.setOfflineCount(0);
//                PoleHeeling.setErrorCount(0);
//                onLineCountVO.setLightPoleHeeling(PoleHeeling);
//                System.out.println("灯杆倾斜执行时间: " + LocalDateTime.now());
//                countDownLatchUtil.countDown(str);
//            }
//        }).start();
        //熙讯
        List<PoleLightemitEntity> xiXuns = SpringContextHolder.getBean(PoleLightemitService.class).listLedOnHome();
        new Thread(new Runnable() {
            @Override
            public void run() {
                AtomicInteger onLine = new AtomicInteger(0);
                AtomicInteger offLine = new AtomicInteger(0);
                DeviceOnLineCountVO xixunLed = new DeviceOnLineCountVO();
                xiXuns.forEach(
                        device -> {
                            String s = redisUtils.get(DeviceRedisKey.XIXUN + device.getLightemitControlCode());
                            if (s != null) {
                                RedisDeviceStatus redisDeviceStatus = JSON.parseObject(s, RedisDeviceStatus.class);
                                if (redisDeviceStatus.getStatus() == 0) {
                                    //在线
                                    onLine.getAndIncrement();
                                } else {
                                    //离线
                                    offLine.getAndIncrement();
                                }
                            } else {
                                offLine.getAndIncrement();
                            }
                        }
                );
                xixunLed.setTotalCount(xiXuns.size());
                xixunLed.setOnlineCount(onLine.get());
                xixunLed.setOfflineCount(offLine.get());
                onLineCountVO.setLedXiXun(xixunLed);
                System.out.println("熙汛执行时间: " + LocalDateTime.now());
                countDownLatchUtil.countDown(str);
            }
        }).start();
//        List<PoleLightemitEntity> xiXuns = SpringContextHolder.getBean(PoleLightemitService.class).listLedOnHome();
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                AtomicInteger onLine = new AtomicInteger(0);
//                AtomicInteger offLine = new AtomicInteger(0);
//
//                DeviceOnLineCountVO xixunLed = new DeviceOnLineCountVO();
//                xiXuns.forEach(
//                        device -> {
//                            String s = redisUtils.get(DeviceRedisKey.XIXUN + device.getLightemitControlCode());
//                            if (s != null) {
//                                RedisDeviceStatus redisDeviceStatus = JSON.parseObject(s, RedisDeviceStatus.class);
//                                if (redisDeviceStatus.getStatus() == 0) {
//                                    //在线
//                                    onLine.getAndIncrement();
//                                } else {
//                                    //离线
//                                    offLine.getAndIncrement();
//                                }
//                            } else {
//                                offLine.getAndIncrement();
//                            }
//                        }
//                );
//
//                xixunLed.setTotalCount(xiXuns.size());
//                xixunLed.setOnlineCount(onLine.get());
//                xixunLed.setOfflineCount(offLine.get());
//
//                onLineCountVO.setLedXiXun(xixunLed);
//                System.out.println("熙汛执行时间: " + LocalDateTime.now());
//                countDownLatchUtil.countDown(str);
//            }
//        }).start();
        try {
            countDownLatch.await(20000, TimeUnit.MILLISECONDS);
            countDownLatchUtil.remove(str);
@@ -649,7 +649,7 @@
        setCount(PoleResult);
        CommonPage commonPage = ListPagingUtils.pages(PoleResult, pageNo, pageSize);
//
        return commonPage;
    }
@@ -1345,24 +1345,24 @@
        //获取一个7位随机数
        String str = RandomStringUtils.randomAlphanumeric(7);
        countDownLatchUtil.push(str, countDownLatch);
        new Thread(new Runnable() {
            @Override
            public void run() {
                SpringContextHolder.getBean(IpVolumeService.class).setCacheData();
                countDownLatchUtil.countDown(str);
                System.out.println("音柱执行");
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                SpringContextHolder.getBean(IpVolumeService.class).setCacheData();
//                countDownLatchUtil.countDown(str);
//                System.out.println("音柱执行");
//
//            }
//        }).start();
            }
        }).start();
        new Thread(new Runnable() {
            @Override
            public void run() {
                SpringContextHolder.getBean(MonitorService.class).setCacheData();
                countDownLatchUtil.countDown(str);
                System.out.println("摄像头执行");
            }
        }).start();
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                SpringContextHolder.getBean(MonitorService.class).setCacheData();
//                countDownLatchUtil.countDown(str);
//                System.out.println("摄像头执行");
//            }
//        }).start();
        new Thread(new Runnable() {
            @Override
            public void run() {
@@ -1387,14 +1387,14 @@
                System.out.println("大气执行");
            }
        }).start();
        new Thread(new Runnable() {
            @Override
            public void run() {
                SpringContextHolder.getBean(PoleLightemitService.class).setCacheData();
                countDownLatchUtil.countDown(str);
                System.out.println("熙汛执行");
            }
        }).start();
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                SpringContextHolder.getBean(PoleLightemitService.class).setCacheData();
//                countDownLatchUtil.countDown(str);
//                System.out.println("熙汛执行");
//            }
//        }).start();
        new Thread(new Runnable() {
            @Override
            public void run() {
@@ -1403,14 +1403,14 @@
                System.out.println("诺瓦执行");        //todo 诺瓦故障暂无
            }
        }).start();
        new Thread(new Runnable() {
            @Override
            public void run() {
                SpringContextHolder.getBean(PoleLightemitService.class).setCacheData();
                countDownLatchUtil.countDown(str);
                System.out.println("熙汛执行");
            }
        }).start();
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                SpringContextHolder.getBean(PoleLightemitService.class).setCacheData();
//                countDownLatchUtil.countDown(str);
//                System.out.println("熙汛执行");
//            }
//        }).start();
        try {