2021与蓝度共同重构项目,服务端
fix
zhanzhiqin
2022-05-10 120fdb31f376deaf55001286bdeef26d268eeab2
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -30,6 +30,7 @@
import com.sandu.ximon.admin.param.*;
import com.sandu.ximon.admin.redis.LightKey;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.utils.LightemitUtils;
import com.sandu.ximon.admin.utils.RedisUtils;
import com.sandu.ximon.admin.utils.response.VnnoxResult;
import com.sandu.ximon.admin.vo.PoleBindVO;
@@ -166,9 +167,9 @@
        MonitorParam monitorParam = new MonitorParam();
        monitorParam.setEquipmentState(2);
        monitorParam.setBindingState(2);
        List<MonitorBo> monitorBos = SpringContextHolder.getBean(MonitorService.class).listMonitorByKeyword(null, monitorParam);
        List<MonitorBo> monitorBos = SpringContextHolder.getBean(MonitorService.class).listMonitorByKeyword(null, monitorParam).getList();
        monitorParam.setEquipmentState(1);
        List<MonitorBo> online = SpringContextHolder.getBean(MonitorService.class).listMonitorByKeyword(null, monitorParam);
        List<MonitorBo> online = SpringContextHolder.getBean(MonitorService.class).listMonitorByKeyword(null, monitorParam).getList();
        result.put("monitorOnlineCount", online.size());
        result.put("monitorTotalCount", monitorBos.size());
@@ -199,7 +200,7 @@
        number = 0;
        List<AirEquipmentBo> airEquipments = SpringContextHolder.getBean(AirEquipmentService.class).listAirEquipmentByKeyword(null, null);
        for (AirEquipmentBo airEquipmentBo : airEquipments) {
            if (RedisUtils.getBean().get(AtmoFunctionCode.AIR_HEARTBEAT.getCode() + airEquipmentBo.getMac()) != null) {
            if (RedisUtils.getBean().get(AtmoFunctionCode.AIR_HEARTBEAT_STATE.getCode() + airEquipmentBo.getMac()) != null) {
                number++;
            }
        }
@@ -209,7 +210,7 @@
        number = 0;
        List<AirEquipmentNongGengBo> airEquipmentNongGengBos = SpringContextHolder.getBean(AirEquipmentNongGengService.class).listAirEquipmentByKeyword(null, null);
        for (AirEquipmentNongGengBo airEquipmentNongGengBo : airEquipmentNongGengBos) {
            if (RedisUtils.getBean().get(AtmoFunctionCode.AIR_HEARTBEAT_NONG_GENG.getCode() + airEquipmentNongGengBo.getMac()) != null) {
            if (RedisUtils.getBean().get(AtmoFunctionCode.AIR_HEARTBEAT_NONG_GENG_STATE.getCode() + airEquipmentNongGengBo.getMac()) != null) {
                number++;
            }
        }
@@ -797,36 +798,50 @@
    public PoleBindVO getBindByPoleId(Long poleId) {
        List<PoleBinding> bind = poleBindingService.list(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getPoleId, poleId));
        PoleBindVO bindVO = new PoleBindVO();
        bindVO.setPole(getPoleByMac(poleId));
        bind.forEach(poleBinding -> {
            if (poleBinding.getDeviceType() == 0) {//单灯
                bindVO.setLight(SpringContextHolder.getBean(LightService.class).getLight(poleBinding.getDeviceCode()));
            } else if (poleBinding.getDeviceType() == 1) {//诺瓦
                bindVO.setNova(SpringContextHolder.getBean(LedPlayerEntityService.class).getBySnAndPlayerSn(poleBinding.getDeviceCode()));
            } else if (poleBinding.getDeviceType() == 2) {//充电桩
                bindVO.setC3mCharging(SpringContextHolder.getBean(C3ChargingService.class).getByC3Mac(poleBinding.getDeviceCode()));
            } else if (poleBinding.getDeviceType() == 3) {//大气
                bindVO.setAirMonitoring(SpringContextHolder.getBean(AirEquipmentService.class).getAirEquipment(poleBinding.getDeviceCode()));
            } else if (poleBinding.getDeviceType() == 4) {//水质
                bindVO.setWaterMonitoring(SpringContextHolder.getBean(WaterQualityDataService.class).getWaterQualityDataInfo(poleBinding.getDeviceCode()));
            } else if (poleBinding.getDeviceType() == 5) {//音柱
                bindVO.setIpVolume(SpringContextHolder.getBean(IpVolumeService.class).getIpTerminalDetail(Integer.valueOf(poleBinding.getDeviceCode())));
            } else if (poleBinding.getDeviceType() == 6) {//LCD
                //lcd暂无
            } else if (poleBinding.getDeviceType() == 7) {//摄像头
                bindVO.setMonitor(SpringContextHolder.getBean(MonitorService.class).getMonitorInfo(poleBinding.getDeviceCode()));
            } else if (poleBinding.getDeviceType() == 8) {//杆体倾测
                bindVO.setLightPoleHeeling(SpringContextHolder.getBean(LightPoleHeelingService.class).getLightPoleHeelingByMac(poleBinding.getDeviceCode()));
            } else if (poleBinding.getDeviceType() == 9) {//一键求助
                //一键求助暂无
            } else if (poleBinding.getDeviceType() == 10) {//熙讯
                bindVO.setXiXun(SpringContextHolder.getBean(PoleLightemitService.class).getLedByLightControlCode(poleBinding.getDeviceCode()));
            } else {
                throw new BusinessException("未知设备类型");
            }
        });
        return bindVO;
        Map<Integer, String> map = new HashMap<>();
        for (int i = 0; i < 11; i++) {
            map.put(i, null);
        }
        for (PoleBinding poleBinding : bind) {
            map.put(poleBinding.getDeviceType(), poleBinding.getDeviceCode());
        }
        PoleBindVO poleBindVO = new PoleBindVO();
//        //灯杆信息
//        poleBindVOTest.setPole(getPoleByMac(poleId));
        /**
         * 设备信息
         */
        //单灯
        poleBindVO.getList().add(SpringContextHolder.getBean(LightService.class).getLightInfo(map.get(0)));
        //诺瓦
        poleBindVO.getList().add(SpringContextHolder.getBean(LedPlayerEntityService.class).getBySnAndPlayerSnInfo(map.get(1)));
        //充电桩
        poleBindVO.getList().add(SpringContextHolder.getBean(C3ChargingService.class).getByC3MacInfo(map.get(2)));
        //大气
        poleBindVO.getList().add(SpringContextHolder.getBean(AirEquipmentService.class).getAirEquipmentInfo(map.get(3)));
        //水质
        poleBindVO.getList().add(SpringContextHolder.getBean(WaterQualityEquipmentService.class).getWaterQualityDataInfo(map.get(4)));
        //音柱
        poleBindVO.getList().add(SpringContextHolder.getBean(IpVolumeService.class).getIpTerminalDetail(map.get(5)));
        //LCD
        //lcd暂无
        //摄像头
        poleBindVO.getList().add(SpringContextHolder.getBean(MonitorService.class).getMonitorInfo(map.get(7)));
        //杆体倾测
        poleBindVO.getList().add(SpringContextHolder.getBean(LightPoleHeelingService.class).getLightPoleHeelingByMac(map.get(8)));
        //一键求助
        //一键求助暂无
        //熙讯
        poleBindVO.getList().add(SpringContextHolder.getBean(PoleLightemitService.class).getLedByLightControlCodeInfo(map.get(10)));
        return poleBindVO;
    }
@@ -873,6 +888,12 @@
     */
    public boolean pushAirDataToXiXun(Long poleId) {
        Pole pole = getById(poleId);
        //判断归属权
        if (SecurityUtils.getClientId() != null) {
            if (!pole.getClientId().equals(SecurityUtils.getUserId()) && !pole.getUserId().equals(SecurityUtils.getUserId())) {
                throw new BusinessException("无权限操作");
            }
        }
        PoleBinding air = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getPoleId, poleId).eq(PoleBinding::getDeviceType, 3));
        PoleBinding xixun = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getPoleId, poleId).eq(PoleBinding::getDeviceType, 10));
        if (pole == null) {
@@ -890,6 +911,27 @@
        return SpringContextHolder.getBean(XiXunPlayerService.class).pushWeather(xixun.getDeviceCode(), data, pole);
    }
    /**
     * 关闭熙讯大气推送
     */
    public void closeXiXunAirPush(Long poleId) {
        Pole pole = getById(poleId);
        if (SecurityUtils.getClientId() != null) {
            if (!pole.getClientId().equals(SecurityUtils.getUserId()) && !pole.getUserId().equals(SecurityUtils.getUserId())) {
                throw new BusinessException("无权限操作");
            }
        }
        PoleBinding air = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getPoleId, poleId).eq(PoleBinding::getDeviceType, 3));
        PoleBinding xixun = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getPoleId, poleId).eq(PoleBinding::getDeviceType, 10));
        if (pole == null || air == null || xixun == null) {
            throw new BusinessException("设备不存在");
        }
        //关闭推送
        SpringContextHolder.getBean(LightemitUtils.class).clear(xixun.getDeviceCode());
    }
    /**
     * 推送大气监测数据到novaLED
     */