2021与蓝度共同重构项目,服务端
fix
zhanzhiqin
2022-05-10 120fdb31f376deaf55001286bdeef26d268eeab2
fix
已修改12个文件
已添加1个文件
481 ■■■■ 文件已修改
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentService.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeService.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedPlayerEntityService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightPoleHeelingService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/WaterQualityEquipmentService.java 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/vo/EquipmentInfomation.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/vo/PoleBindVO.java 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
@@ -19,6 +19,7 @@
import com.sandu.ximon.admin.service.IpVolumeService;
import com.sandu.ximon.admin.service.MonitorService;
import com.sandu.ximon.admin.service.PoleService;
import com.sandu.ximon.admin.vo.PoleBindVO;
import com.sandu.ximon.dao.domain.Pole;
import com.sandu.ximon.dao.enums.MenuEnum;
import com.sandu.ximon.dao.enums.PoleBindingEnums;
@@ -26,6 +27,7 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
@@ -68,6 +70,31 @@
        return ResponseUtil.success(poleService.deletePole(poleId));
    }
    @PostMapping("/listDetail")
    public ResponseVO<Object> listPoleDetail(BaseConditionVO baseConditionVO, @RequestBody PoleStatesParam param) {
        if (!permissionConfig.check(MenuEnum.POLE_LIST.getCode())) {
            return ResponseUtil.fail("缺少对应用户权限");
        }
        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
        List<Pole> results = poleService.queryAllStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(), param);
        List<PoleBindVO> listResult = new ArrayList<>();
        for (Pole pole : results) {
            PoleBindVO bindByPoleId = poleService.getBindByPoleId(pole.getId());
            bindByPoleId.setPole(pole);
            listResult.add(bindByPoleId);
        }
        CommonPage commonPage = CommonPage.restPage(listResult);
        int size = results.size();
        commonPage.setTotal((long) size);
        commonPage.setTotalPage(size / baseConditionVO.getPageSize() + 1);
        if (size % baseConditionVO.getPageSize() == 0) {
            commonPage.setTotalPage(size / baseConditionVO.getPageSize());
        }
        return ResponseUtil.success(commonPage);
    }
    @PostMapping("/list")
    public ResponseVO<Object> listPole(BaseConditionVO baseConditionVO, @RequestBody PoleStatesParam param) {
        if (!permissionConfig.check(MenuEnum.POLE_LIST.getCode())) {
@@ -75,6 +102,7 @@
        }
        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
        List<Pole> results = poleService.queryAllStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(), param);
        CommonPage commonPage = CommonPage.restPage(results);
        int size = results.size();
        commonPage.setTotal((long) size);
@@ -83,7 +111,6 @@
            commonPage.setTotalPage(size / baseConditionVO.getPageSize());
        }
        return ResponseUtil.success(commonPage);
        // return ResponseUtil.success(poles);
    }
    @GetMapping("/listPoleAndState")
ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentService.java
@@ -9,6 +9,7 @@
import com.sandu.ximon.admin.manager.iot.rrpc.enums.AtmoFunctionCode;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.utils.RedisUtils;
import com.sandu.ximon.admin.vo.EquipmentInfomation;
import com.sandu.ximon.dao.bo.AirEquipmentBo;
import com.sandu.ximon.dao.domain.AirEquipment;
import com.sandu.ximon.dao.mapper.AirEquipmentMapper;
@@ -73,13 +74,24 @@
    /**
     * æ ¹æ®Mac大气设备数据详情
     */
    public AirEquipment getAirEquipment(String mac) {
        AirEquipment one = getOne(Wrappers.lambdaQuery(AirEquipment.class).eq(AirEquipment::getMac, mac));
        if (RedisUtils.getBean().get(AtmoFunctionCode.AIR_HEARTBEAT_STATE.getCode() + mac) != null) {
            one.setState(1);
        } else {
            one.setState(0);
    public EquipmentInfomation getAirEquipmentInfo(String mac) {
        EquipmentInfomation equipmentInfo = new EquipmentInfomation();
        equipmentInfo.setEquipmentType("大气设备");
        if (mac == null || mac.trim().length() == 0) {
            return equipmentInfo;
        }
        return one;
        if (RedisUtils.getBean().get(AtmoFunctionCode.AIR_HEARTBEAT_STATE.getCode() + mac) != null) {
            equipmentInfo.setEquipmentState("在线");
        } else {
            equipmentInfo.setEquipmentState("离线");
        }
        AirEquipment one = getOne(Wrappers.lambdaQuery(AirEquipment.class).eq(AirEquipment::getMac, mac));
        if (one != null) {
            equipmentInfo.setEquipmentMac(mac);
            equipmentInfo.setEquipmentCreateTime(one.getCreateTime());
        }
        return equipmentInfo;
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java
@@ -22,6 +22,7 @@
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.utils.LogUtils;
import com.sandu.ximon.admin.utils.RedisUtils;
import com.sandu.ximon.admin.vo.EquipmentInfomation;
import com.sandu.ximon.dao.bo.C3ChargingBo;
import com.sandu.ximon.dao.domain.C3mCharging;
import com.sandu.ximon.dao.domain.C3mChargingCharge;
@@ -240,6 +241,57 @@
        return one;
    }
    /**
     * é¦–页灯杆绑定信息
     *
     * @return
     */
    public EquipmentInfomation getByC3MacInfo(String udid) {
        EquipmentInfomation equipmentInfo = new EquipmentInfomation();
        equipmentInfo.setEquipmentType("C3充电桩");
        if (udid == null || udid.trim().length() == 0) {
            return equipmentInfo;
        }
        C3mCharging one = getOne(Wrappers.lambdaQuery(C3mCharging.class).eq(C3mCharging::getMcuUdid, udid));
        if (one != null) {
            String s = RedisUtils.getBean().get(C3mRedisConstant.C3_STATUS.getCode() + one.getC3Mac());
            if (s != null) {
                try {
                    A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage beatDataPackage = JSON.parseObject(s, A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage.class);
                    switch (beatDataPackage.getStatusBit()) {
                        case "1":
                            equipmentInfo.setEquipmentState("空闲");
                            break;
                        case "2":
                            equipmentInfo.setEquipmentState("充电中");
                            break;
                        case "3":
                            equipmentInfo.setEquipmentState("充电中断,等待服务器确认");
                            break;
                        case "4":
                            equipmentInfo.setEquipmentState("充电结束,等待服务器确认");
                            break;
                        case "5":
                            equipmentInfo.setEquipmentState("有故障");
                            break;
                        case "6":
                            equipmentInfo.setEquipmentState("与充电桩对接中");
                            break;
                        default:
                            equipmentInfo.setEquipmentState("未知");
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            } else {
                equipmentInfo.setEquipmentState("离线");
            }
            equipmentInfo.setEquipmentCreateTime(one.getUpdateTime());
            equipmentInfo.setEquipmentMac(one.getMcuUdid());
        }
        return equipmentInfo;
    }
    /**
     * å¼€å§‹å……电
ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeService.java
@@ -8,6 +8,7 @@
import com.sandu.ximon.admin.param.BroadcastTerminalV2Param;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.utils.TerminalAPIUtils;
import com.sandu.ximon.admin.vo.EquipmentInfomation;
import com.sandu.ximon.admin.vo.TerminalVO;
import com.sandu.ximon.dao.bo.BroadcastTerminalV2EntityBo;
import com.sandu.ximon.dao.domain.BroadcastTerminalV2Entity;
@@ -194,8 +195,38 @@
    /**
     * ç»ˆç«¯è¯¦æƒ…
     */
    public TerminalVO getIpTerminalDetail(Integer id) {
        return TerminalAPIUtils.getTerminalInfo(id);
    public EquipmentInfomation getIpTerminalDetail(String id) {
        EquipmentInfomation equipmentInfo = new EquipmentInfomation();
        equipmentInfo.setEquipmentType("IP音柱");
        if (id == null || id.trim().length() == 0) {
            return equipmentInfo;
        }
        equipmentInfo.setEquipmentMac(id);
        TerminalVO terminalInfo = TerminalAPIUtils.getTerminalInfo(Integer.valueOf(id));
        if (terminalInfo != null) {
            //空闲 1、   å·¥ä½œä¸­ 2 æˆ–者 4、     æ–­çº¿ 0,    æŠ¥ é”™ 8
            switch (terminalInfo.getStatus()) {
                case 1:
                    equipmentInfo.setEquipmentState("空闲");
                    break;
                case 2:
                case 4:
                    equipmentInfo.setEquipmentState("工作中");
                    break;
                case 0:
                    equipmentInfo.setEquipmentState("断线");
                    break;
                case 8:
                    equipmentInfo.setEquipmentState("报错");
                    break;
                default:
                    equipmentInfo.setEquipmentState("未知");
            }
        } else {
            equipmentInfo.setEquipmentState("未知");
        }
        return equipmentInfo;
    }
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedPlayerEntityService.java
@@ -7,12 +7,14 @@
import com.sandu.common.util.SpringContextHolder;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.utils.VnnoxAPIUtil;
import com.sandu.ximon.admin.vo.EquipmentInfomation;
import com.sandu.ximon.dao.domain.LedPlayerEntity;
import com.sandu.ximon.dao.domain.PoleBinding;
import com.sandu.ximon.dao.mapper.LedPlayerEntityMapper;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -62,6 +64,25 @@
        return one;
    }
    /**
     * é¦–页灯杆绑定信息
     */
    //TODO
    public EquipmentInfomation getBySnAndPlayerSnInfo(String sn) {
        EquipmentInfomation equipmentInfo = new EquipmentInfomation();
        equipmentInfo.setEquipmentType("诺瓦LED");
        if (sn == null || sn.trim().length() == 0) {
            return equipmentInfo;
        }
        LedPlayerEntity one = getOne(Wrappers.lambdaQuery(LedPlayerEntity.class).eq(LedPlayerEntity::getSn, sn));
        if (one != null) {
            equipmentInfo.setEquipmentMac(one.getSn());
        }
        return equipmentInfo;
    }
    public List<LedPlayerEntity> ledPlayerEntityList(BaseConditionVO baseConditionVO, String keyword) {
        if (baseConditionVO != null) {
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightPoleHeelingService.java
@@ -16,6 +16,7 @@
import com.sandu.ximon.admin.param.LightPoleHeelingListParam;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.utils.RedisUtils;
import com.sandu.ximon.admin.vo.EquipmentInfomation;
import com.sandu.ximon.dao.domain.Light;
import com.sandu.ximon.dao.domain.LightPoleHeeling;
import com.sandu.ximon.dao.domain.LightPoleHeelingEquipment;
@@ -63,8 +64,27 @@
    /**
     * æ ¹æ®Mac获取最新数据
     */
    public LightPoleHeeling getLightPoleHeelingByMac(String mac) {
        return getOne(Wrappers.lambdaQuery(LightPoleHeeling.class).eq(LightPoleHeeling::getMac, mac));
    public EquipmentInfomation getLightPoleHeelingByMac(String mac) {
        EquipmentInfomation equipmentInfo = new EquipmentInfomation();
        equipmentInfo.setEquipmentType("杆体倾测");
        if (mac == null || mac.trim().length() == 0) {
            return equipmentInfo;
        }
        LightPoleHeeling one = getOne(Wrappers.lambdaQuery(LightPoleHeeling.class).eq(LightPoleHeeling::getMac, mac));
        if (one != null) {
            equipmentInfo.setEquipmentCreateTime(one.getCreateTime());
            equipmentInfo.setEquipmentMac(one.getMac());
        }
        //存储设备状态到缓存
        String s = RedisUtils.getBean().get(LightPoleHeelingEnum.LIGHT_POLE_HEELING_STATE.getCode() + mac);
        if (s == null) {
            equipmentInfo.setEquipmentState("离线");
        } else {
            equipmentInfo.setEquipmentState("在线");
        }
        return equipmentInfo;
    }
    /**
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
@@ -24,6 +24,7 @@
import com.sandu.ximon.admin.redis.LightKey;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.vo.ControlLightCommandVO;
import com.sandu.ximon.admin.vo.EquipmentInfomation;
import com.sandu.ximon.dao.bo.LightBo;
import com.sandu.ximon.dao.bo.PoleTaskLightPowerBo;
import com.sandu.ximon.dao.domain.Light;
@@ -146,6 +147,33 @@
        return one;
    }
    /**
     * é¦–页灯杆绑定信息
     *
     * @param deviceCode
     * @return
     */
    public EquipmentInfomation getLightInfo(String deviceCode) {
        EquipmentInfomation equipmentInfo = new EquipmentInfomation();
        equipmentInfo.setEquipmentType("单灯");
        if (deviceCode == null || deviceCode.trim().length() == 0) {
            return equipmentInfo;
        }
        Light one = getOne(Wrappers.<Light>lambdaQuery().eq(Light::getDeviceCode, deviceCode));
        if (one != null) {
            equipmentInfo.setEquipmentMac(one.getDeviceCode());
            equipmentInfo.setEquipmentCreateTime(one.getCreateTime());
        }
        Object o = redisService.get(LightKey.REPORT_MAC.key(deviceCode));
        if (o != null) {
            equipmentInfo.setEquipmentState("在线");
        } else {
            equipmentInfo.setEquipmentState("离线");
        }
        return equipmentInfo;
    }
    public boolean addRemark(LightRemarkParam param) {
        Light light = getById(param.getLightId());
        if (light == null) {
ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
@@ -11,6 +11,7 @@
import com.sandu.ximon.admin.param.MonitorParam;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.utils.ListPagingUtils;
import com.sandu.ximon.admin.vo.EquipmentInfomation;
import com.sandu.ximon.dao.bo.MonitorBo;
import com.sandu.ximon.dao.domain.Monitor;
import com.sandu.ximon.admin.dto.YSY_AccessTokenDto;
@@ -99,7 +100,7 @@
            }
        }
        if(baseConditionVO==null){
        if (baseConditionVO == null) {
            baseConditionVO = new BaseConditionVO();
            baseConditionVO.setPageSize(null);
            baseConditionVO.setPageNo(null);
@@ -211,20 +212,39 @@
     *
     * @return
     */
    public YSY_MonitorDto.MonitorDto getMonitorInfo(String deviceSerial) {
    public EquipmentInfomation getMonitorInfo(String deviceSerial) {
        EquipmentInfomation equipmentInfo = new EquipmentInfomation();
        equipmentInfo.setEquipmentType("摄像头");
        if (deviceSerial == null || deviceSerial.trim().length() == 0) {
            return equipmentInfo;
        }
        Monitor one = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, deviceSerial));
        if (one != null) {
            equipmentInfo.setEquipmentCreateTime(one.getAddTime());
            equipmentInfo.setEquipmentMac(one.getDeviceSerial());
        }
        String token = getAccessToken();
        Map<String, Object> paramMap = new HashMap<>();
        paramMap.put("accessToken", token);
        paramMap.put("deviceSerial", deviceSerial);
        String s = HttpUtil.post(YSY_URL + GET_DEVICE_URL, paramMap);
        YSY_MonitorDto monitorDto = null;
        try {
            monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
            return monitorDto.getData();
            YSY_MonitorDto monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
            if (monitorDto != null) {
                //在线状态:0-不在线,1-在线
                if (monitorDto.getData().getStatus() == 1) {
                    equipmentInfo.setEquipmentState("在线");
                } else {
                    equipmentInfo.setEquipmentState("离线");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
        return equipmentInfo;
    }
    /**
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java
@@ -11,6 +11,7 @@
import com.sandu.ximon.admin.utils.FileUtil;
import com.sandu.ximon.admin.utils.HtmlTemplateUtils;
import com.sandu.ximon.admin.utils.LightemitUtils;
import com.sandu.ximon.admin.vo.EquipmentInfomation;
import com.sandu.ximon.dao.domain.Pole;
import com.sandu.ximon.dao.domain.PoleLightemitEntity;
import com.sandu.ximon.dao.mapper.PoleLightemitEntityMapper;
@@ -78,6 +79,7 @@
    /**
     * å–出在线的熙讯
     *
     * @param list
     * @return
     */
@@ -102,6 +104,7 @@
    /**
     * è®¾ç½®åœ¨çº¿çŠ¶æ€
     *
     * @param list
     */
    public void ledOnlineCheck(List<PoleLightemitEntity> list) {
@@ -134,6 +137,31 @@
        return xiXun;
    }
    /**
     * é¦–页灯杆绑定信息
     */
    public EquipmentInfomation getLedByLightControlCodeInfo(String lightControlCode) {
        EquipmentInfomation equipmentInfo = new EquipmentInfomation();
        equipmentInfo.setEquipmentType("熙讯LED");
        if (lightControlCode == null || lightControlCode.trim().length() == 0) {
            return equipmentInfo;
        }
        PoleLightemitEntity xiXun = getOne(Wrappers.lambdaQuery(PoleLightemitEntity.class).eq(PoleLightemitEntity::getLightemitControlCode, lightControlCode));
        if (xiXun != null) {
            equipmentInfo.setEquipmentCreateTime(xiXun.getCreateTime());
            equipmentInfo.setEquipmentMac(xiXun.getLightemitControlCode());
        }
        boolean isScreenOpen = lightemitUtils.getLedOnLine(xiXun.getLightemitControlCode());
        if (isScreenOpen) {
            equipmentInfo.setEquipmentState("在线");
        } else {
            equipmentInfo.setEquipmentState("离线");
        }
        return equipmentInfo;
    }
    public void savePoleLightemit(PoleLightemitEntity poleLightemit) {
        boolean save = this.save(poleLightemit);
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -798,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;
    }
ximon-admin/src/main/java/com/sandu/ximon/admin/service/WaterQualityEquipmentService.java
@@ -1,20 +1,17 @@
package com.sandu.ximon.admin.service;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.ximon.admin.param.WaterQualityEquipmentParam;
import com.sandu.ximon.admin.dto.WaterQualityDataDto;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.dao.bo.AirEquipmentBo;
import com.sandu.ximon.admin.vo.EquipmentInfomation;
import com.sandu.ximon.dao.bo.WaterQualityEquipmentBo;
import com.sandu.ximon.dao.domain.AirEquipment;
import com.sandu.ximon.dao.domain.Monitor;
import com.sandu.ximon.dao.domain.WaterQualityEquipment;
import com.sandu.ximon.dao.mapper.AirEquipmentMapper;
import com.sandu.ximon.dao.mapper.WaterQualityEquipmentMapper;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@@ -24,6 +21,8 @@
@Service
@AllArgsConstructor
public class WaterQualityEquipmentService extends BaseServiceImpl<WaterQualityEquipmentMapper, WaterQualityEquipment> {
    //水质参数获取网址,例如:"http://iot.ainongye.cn/json/设备编号.json"
    private final String WATER_QUALITY_DATA_URL = "http://iot.ainongye.cn/json/";
    private WaterQualityEquipmentMapper waterQualityEquipmentMapper;
    private final PoleBindingService poleBindingService;
@@ -87,7 +86,43 @@
            result.setWaterQualityEquipmentCode(waterQualityEquipment.getWaterQualityEquipmentCode());
            return save(result);
        } else {
            throw  new BusinessException("该水质设备已存在!");
            throw new BusinessException("该水质设备已存在!");
        }
    }
    /**
     * é¦–页灯杆绑定信息
     */
    public EquipmentInfomation getWaterQualityDataInfo(String waterQualityEquipmentCode) {
        EquipmentInfomation equipmentInfo = new EquipmentInfomation();
        equipmentInfo.setEquipmentType("水质设备");
        if (waterQualityEquipmentCode == null || waterQualityEquipmentCode.trim().length() == 0) {
            return equipmentInfo;
        }
        WaterQualityEquipment one = getOne(Wrappers.lambdaQuery(WaterQualityEquipment.class).eq(WaterQualityEquipment::getWaterQualityEquipmentCode,
                waterQualityEquipmentCode));
        if (one != null) {
            equipmentInfo.setEquipmentCreateTime(one.getCreateTime());
            equipmentInfo.setEquipmentMac(one.getWaterQualityEquipmentCode());
        }
        try {
            String s = HttpUtil.get(WATER_QUALITY_DATA_URL + waterQualityEquipmentCode + ".json");
            System.out.println(s);
            WaterQualityDataDto waterQualityDataDto = JSON.parseObject(s, WaterQualityDataDto.class);
            //设置水质设备状态
            if (waterQualityDataDto != null) {
                equipmentInfo.setEquipmentState("在线");
            } else {
                equipmentInfo.setEquipmentState("离线");
            }
        } catch (Exception e) {
            e.printStackTrace();
            log.error("水质设备号不正确");
            equipmentInfo.setEquipmentState("未知");
        }
        return equipmentInfo;
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/vo/EquipmentInfomation.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.sandu.ximon.admin.vo;
import lombok.Data;
import java.time.LocalDateTime;
/**
 * @author ZZQ
 * @date 2022/5/10 11:03
 */
@Data
public class EquipmentInfomation {
    private String EquipmentType;
    private String EquipmentMac;
    private String EquipmentState;
    private LocalDateTime EquipmentCreateTime;
}
ximon-admin/src/main/java/com/sandu/ximon/admin/vo/PoleBindVO.java
@@ -1,65 +1,17 @@
package com.sandu.ximon.admin.vo;
import com.sandu.ximon.admin.dto.WaterQualityDataDto;
import com.sandu.ximon.admin.dto.YSY_MonitorDto;
import com.sandu.ximon.dao.domain.*;
import com.sandu.ximon.dao.domain.Pole;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
 * @Author liuhaonan
 * @Date 2022/4/12
 * @Version 1.0
 * @author ZZQ
 * @date 2022/5/10 10:37
 */
@Data
public class PoleBindVO {
    private Pole pole; //
    /**
     * å¤§æ°”监测
     */
    private AirEquipment airMonitoring; //
    /**
     * ip音柱
     */
    private TerminalVO ipVolume; //
    /**
     * å……电桩
     */
    private C3mCharging c3mCharging; //
    /**
     * è·¯ç¯
     */
    private Light light; //
    /**
     * æ†ä½“倾测
     */
    private LightPoleHeeling lightPoleHeeling; //
    /**
     * æ‘„像头
     */
    private YSY_MonitorDto.MonitorDto monitor; //
    /**
     * LED诺瓦
     */
    private LedPlayerEntity nova; //
    /**
     * led熙讯
     */
    private PoleLightemitEntity xiXun;  //
    /**
     * æ°´è´¨ç›‘测
     */
    private WaterQualityDataDto waterMonitoring;
    private Pole pole;
    private List<EquipmentInfomation> list = new ArrayList<>(11);
}