2021与蓝度共同重构项目,服务端
liuhaonan
2022-09-28 68ea052c01819e216c17ce292d9fcd590f91472f
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -19,16 +19,14 @@
import com.sandu.ximon.admin.manager.iot.frame.FrameBuilder;
import com.sandu.ximon.admin.manager.iot.frame.IRequestFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereHeartbeatReportInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5C3HeartbeatReportInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.request.A1TernaryCodeReqInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.request.A5LightResetReqInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.request.EmptyRequestInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.response.A1DeviceMacRespInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.response.A1TernaryCodeRespInnerFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.A1OrderEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.A2OrderEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5OrderEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.DeviceStateEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.*;
import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService;
import com.sandu.ximon.admin.param.PoleBindingParam;
import com.sandu.ximon.admin.param.PoleParam;
@@ -261,7 +259,7 @@
                DeviceOnLineCountVO ledNova = new DeviceOnLineCountVO();
                ledPlayerEntities.forEach(
                        Volume -> {
                            String s = redisUtils.get(DeviceRedisKey.IP_BROADCAST + Volume.getId());
                            String s = redisUtils.get(DeviceRedisKey.NOVA + Volume.getId());
                            if (s != null) {
                                RedisDeviceStatus redisDeviceStatus = JSON.parseObject(s, RedisDeviceStatus.class);
                                if (redisDeviceStatus.getStatus() == 0) {
@@ -368,12 +366,20 @@
        //单灯
        List<LightBo> lights = SpringContextHolder.getBean(LightService.class).listLightOnHome();
        BaseConditionVO baseConditionVO = new BaseConditionVO();
        baseConditionVO.setPageNo(1);
        baseConditionVO.setPageSize(999);
        System.out.println("单灯故障统计时间: "+ LocalDateTime.now());
        CommonPage commonPage = SpringContextHolder.getBean(LightReportErrorService.class).queryErrorCode(baseConditionVO);
        System.out.println("单灯故障统计时间: "+ LocalDateTime.now());
        new Thread(new Runnable() {
            @Override
            public void run() {
                AtomicInteger onLine = new AtomicInteger(0);
                AtomicInteger offLine = new AtomicInteger(0);
                AtomicInteger error = new AtomicInteger(0);
                AtomicInteger error = new AtomicInteger(commonPage.getList().size());
                DeviceOnLineCountVO light = new DeviceOnLineCountVO();
@@ -390,7 +396,7 @@
                                    offLine.getAndIncrement();
                                }
                            } else {
                                error.getAndIncrement();
                                offLine.getAndIncrement();
                            }
                        }
                );
@@ -420,20 +426,24 @@
                DeviceOnLineCountVO c3m = new DeviceOnLineCountVO();
                c3mChargings.forEach(
                        device -> {
                            String s = redisUtils.get(DeviceRedisKey.C3M + device.getC3Id());
//                            RedisUtils.getBean().set(C3mRedisConstant.C3_STATUS.getCode() + heartbeatReportInnerFrame.getHeartBeatDataPackage().getC3Mac()
//                                    , heartbeatReportInnerFrame.getHeartBeatDataPackage(), 300L);
                            String s = redisUtils.get(C3mRedisConstant.C3_STATUS.getCode() + device.getC3Mac());
                            RedisDeviceStatus redisDeviceStatus = new RedisDeviceStatus();
                            redisDeviceStatus.setDeviceId(device.getC3Id().toString());
                            if (s != null) {
                                RedisDeviceStatus redisDeviceStatus = JSON.parseObject(s, RedisDeviceStatus.class);
                                if (redisDeviceStatus.getStatus() == 0) {
                                A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage heartBeatDataPackage = JSON.parseObject(s, A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage.class);
                                if ("5".equals(heartBeatDataPackage.getStatusBit())) {
                                    //在线
                                    onLine.getAndIncrement();
                                } else if (redisDeviceStatus.getStatus() == 1) {
                                    //离线
                                    offLine.getAndIncrement();
                                } else {
                                    //故障
                                    onLine.getAndIncrement();
                                    error.getAndIncrement();
                                }
                            } else {
                                error.getAndIncrement();
                                //离线
                                offLine.getAndIncrement();
                            }
                        }
                );
@@ -569,7 +579,7 @@
            }
        }).start();
        try {
            countDownLatch.await(12000, TimeUnit.MILLISECONDS);
            countDownLatch.await(20000, TimeUnit.MILLISECONDS);
            countDownLatchUtil.remove(str);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
@@ -1361,14 +1371,14 @@
                System.out.println("单灯执行");
            }
        }).start();
        new Thread(new Runnable() {
            @Override
            public void run() {
                SpringContextHolder.getBean(C3ChargingService.class).setCacheData();
                countDownLatchUtil.countDown(str);
                System.out.println("充电桩执行");
            }
        }).start();
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                SpringContextHolder.getBean(C3ChargingService.class).setCacheData();
//                countDownLatchUtil.countDown(str);
//                System.out.println("充电桩执行");
//            }
//        }).start();
        new Thread(new Runnable() {
            @Override
            public void run() {