2021与蓝度共同重构项目,服务端
MercuryZ
2022-10-18 48b53715401b16eecb40b4ed7563e4d2c9ca1938
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/RemoteUpdateController.java
@@ -91,44 +91,10 @@
        if (!permissionConfig.check(MenuEnum.REMOTE_UPDATE_START.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        String orderType;
        boolean UpdateFlag = false;
        String deviceType;
        if(remotePrarm.getDeviceType()==null){
            throw new BusinessException("升级硬件设备类型指令有误,请确认!");
        }
        if (RemoteUpdateTypeEnum.MQTT_MAIN.equals(remotePrarm.getDeviceType())) {
            //MQTT主板
            orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
            deviceType=RemoteUpdateTypeEnum.MQTT_MAIN;
        } else if (RemoteUpdateTypeEnum.MQTT_CORE.equals(remotePrarm.getDeviceType())) {
            //MQTT核心板
            orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
            deviceType=RemoteUpdateTypeEnum.MQTT_CORE;
        } else if (RemoteUpdateTypeEnum.LIGHT.equals(remotePrarm.getDeviceType())) {
            //单灯模块
            orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
            deviceType=RemoteUpdateTypeEnum.LIGHT;
        } else if (RemoteUpdateTypeEnum.C3_CHARGING.equals(remotePrarm.getDeviceType())) {
            //C3充电桩模块
            orderType = A5OrderEnum.REQUEST_C3_DATA.getCode();
            deviceType=RemoteUpdateTypeEnum.C3_CHARGING;
        } else if (RemoteUpdateTypeEnum.CAT1_MAIN.equals(remotePrarm.getDeviceType())) {
            //Cat.1主板
            orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
            deviceType=RemoteUpdateTypeEnum.CAT1_MAIN;
        } else if (RemoteUpdateTypeEnum.LIGHT_POLE_HELING.equals(remotePrarm.getDeviceType())) {
            //灯杆倾斜模块
            orderType = A5OrderEnum.REQUEST_POLE_MONITOR_DATA.getCode();
            deviceType=RemoteUpdateTypeEnum.LIGHT_POLE_HELING;
        } else if (RemoteUpdateTypeEnum.AIR_EQUIPMENT.equals(remotePrarm.getDeviceType())) {
            //大气设备模块
            orderType = A5OrderEnum.REQUEST_ATMOSPHERE_DATA.getCode();
            deviceType=RemoteUpdateTypeEnum.AIR_EQUIPMENT;
        } else {
            throw new BusinessException("升级硬件设备类型指令有误,请确认!");
        }
        String deviceType = remotePrarm.getDeviceType();
        String orderType = deviceType2OrderType(deviceType);
        boolean UpdateFlag = false;
        //启动远程升级命令
        boolean startRemoteUpdateFlag = remoteUpdateService.StartRemoteUpdate(orderType, remotePrarm.getMac(), remotePrarm.getHardwareVersion()
@@ -179,43 +145,9 @@
//        if (!permissionConfig.check(MenuEnum.REMOTE_UPDATE_START.getCode())) {
//            return ResponseUtil.fail("缺少对应用户权限");
//        }
        String orderType;
        String deviceType;
        String deviceType = remotePrarm.getDeviceType();
        if(remotePrarm.getDeviceType()==null){
            throw new BusinessException("升级硬件设备类型指令有误,请确认!");
        }
        if (RemoteUpdateTypeEnum.MQTT_MAIN.equals(remotePrarm.getDeviceType())) {
            //MQTT主板
            orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
            deviceType=RemoteUpdateTypeEnum.MQTT_MAIN;
        } else if (RemoteUpdateTypeEnum.MQTT_CORE.equals(remotePrarm.getDeviceType())) {
            //MQTT核心板
            orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
            deviceType=RemoteUpdateTypeEnum.MQTT_CORE;
        } else if (RemoteUpdateTypeEnum.LIGHT.equals(remotePrarm.getDeviceType())) {
            //单灯模块
            orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
            deviceType=RemoteUpdateTypeEnum.LIGHT;
        } else if (RemoteUpdateTypeEnum.C3_CHARGING.equals(remotePrarm.getDeviceType())) {
            //C3充电桩模块
            orderType = A5OrderEnum.REQUEST_C3_DATA.getCode();
            deviceType=RemoteUpdateTypeEnum.C3_CHARGING;
        } else if (RemoteUpdateTypeEnum.CAT1_MAIN.equals(remotePrarm.getDeviceType())) {
            //Cat.1主板
            orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
            deviceType=RemoteUpdateTypeEnum.CAT1_MAIN;
        } else if (RemoteUpdateTypeEnum.LIGHT_POLE_HELING.equals(remotePrarm.getDeviceType())) {
            //灯杆倾斜模块
            orderType = A5OrderEnum.REQUEST_POLE_MONITOR_DATA.getCode();
            deviceType=RemoteUpdateTypeEnum.LIGHT_POLE_HELING;
        } else if (RemoteUpdateTypeEnum.AIR_EQUIPMENT.equals(remotePrarm.getDeviceType())) {
            //大气设备模块
            orderType = A5OrderEnum.REQUEST_ATMOSPHERE_DATA.getCode();
            deviceType=RemoteUpdateTypeEnum.AIR_EQUIPMENT;
        } else {
            throw new BusinessException("升级硬件设备类型指令有误,请确认!");
        }
        isDeviceType(deviceType);
        RemoteUpgradeProgress progress = new RemoteUpgradeProgress();
        String s = RedisUtils.getBean().get(deviceType + ":" + SecurityUtils.getUserId() + remotePrarm.getMac());
@@ -250,24 +182,7 @@
        if (remotePrarm.getMac() == null || remotePrarm.getDeviceType() == null) {
            throw new BusinessException("缺少相关参数!");
        }
        String orderType;
        switch (remotePrarm.getDeviceType()) {
            case "MQTT串口":
            case "CAT1":
                orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
                break;
            case "大气":
                orderType = A5OrderEnum.REQUEST_ATMOSPHERE_DATA.getCode();
                break;
            case "C3充电桩":
                orderType = A5OrderEnum.REQUEST_C3_DATA.getCode();
                break;
            case "杆体倾斜":
                orderType = A5OrderEnum.REQUEST_POLE_MONITOR_DATA.getCode();
                break;
            default:
                throw new BusinessException("升级硬件设备类型指令有误,请确认!");
        }
        String orderType = deviceType2OrderType(remotePrarm.getDeviceType());
        //服务器下发升级结果查询
        String result = remoteUpdateService.SearchUpdateResult(orderType, remotePrarm.getMac());
@@ -288,24 +203,7 @@
        if (remotePrarm.getMac() == null || remotePrarm.getDeviceType() == null) {
            throw new BusinessException("缺少相关参数!");
        }
        String orderType;
        switch (remotePrarm.getDeviceType()) {
            case "MQTT串口":
            case "CAT1":
                orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
                break;
            case "大气":
                orderType = A5OrderEnum.REQUEST_ATMOSPHERE_DATA.getCode();
                break;
            case "C3充电桩":
                orderType = A5OrderEnum.REQUEST_C3_DATA.getCode();
                break;
            case "杆体倾斜":
                orderType = A5OrderEnum.REQUEST_POLE_MONITOR_DATA.getCode();
                break;
            default:
                throw new BusinessException("升级硬件设备类型指令有误,请确认!");
        }
        String orderType = deviceType2OrderType(remotePrarm.getDeviceType());
        //服务器下发升级结果查询
        boolean flag = remoteUpdateService.stopUpdate(orderType, remotePrarm.getMac());
@@ -315,4 +213,66 @@
            return ResponseUtil.success("紧急结束升级失败");
        }
    }
    /**
     * 设备类型转指令类型
     *
     * @param deviceType
     * @return
     */
    private String deviceType2OrderType(String deviceType) {
        String orderType;
        if (RemoteUpdateTypeEnum.MQTT_MAIN.equals(deviceType)) {
            //MQTT主板
            orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
        } else if (RemoteUpdateTypeEnum.MQTT_CORE.equals(deviceType)) {
            //MQTT核心板
            orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
        } else if (RemoteUpdateTypeEnum.LIGHT.equals(deviceType)) {
            //单灯模块
            orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
        } else if (RemoteUpdateTypeEnum.C3_CHARGING.equals(deviceType)) {
            //C3充电桩模块
            orderType = A5OrderEnum.REQUEST_C3_DATA.getCode();
        } else if (RemoteUpdateTypeEnum.CAT1_MAIN.equals(deviceType)) {
            //Cat.1主板
            orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
        } else if (RemoteUpdateTypeEnum.LIGHT_POLE_HELING.equals(deviceType)) {
            //灯杆倾斜模块
            orderType = A5OrderEnum.REQUEST_POLE_MONITOR_DATA.getCode();
        } else if (RemoteUpdateTypeEnum.AIR_EQUIPMENT.equals(deviceType)) {
            //大气设备模块
            orderType = A5OrderEnum.REQUEST_ATMOSPHERE_DATA.getCode();
        } else {
            throw new BusinessException("升级硬件设备类型指令有误,请确认!");
        }
        return orderType;
    }
    /**
     * 是否为系统内的设备类型
     *
     * @param deviceType
     * @return
     */
    private boolean isDeviceType(String deviceType) {
        if (RemoteUpdateTypeEnum.MQTT_MAIN.equals(deviceType)) {
            //MQTT主板
        } else if (RemoteUpdateTypeEnum.MQTT_CORE.equals(deviceType)) {
            //MQTT核心板
        } else if (RemoteUpdateTypeEnum.LIGHT.equals(deviceType)) {
            //单灯模块
        } else if (RemoteUpdateTypeEnum.C3_CHARGING.equals(deviceType)) {
            //C3充电桩模块
        } else if (RemoteUpdateTypeEnum.CAT1_MAIN.equals(deviceType)) {
            //Cat.1主板
        } else if (RemoteUpdateTypeEnum.LIGHT_POLE_HELING.equals(deviceType)) {
            //灯杆倾斜模块
        } else if (RemoteUpdateTypeEnum.AIR_EQUIPMENT.equals(deviceType)) {
            //大气设备模块
        } else {
            throw new BusinessException("升级硬件设备类型指令有误,请确认!");
        }
        return true;
    }
}