ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/processor/c3ChargingProcessor.java
@@ -46,7 +46,7 @@ , heartbeatReportInnerFrame.getHeartBeatDataPackage().getDeviceTemperature()); RedisUtils.getBean().set(C3mRedisConstant.C3_STATUS.getCode() + heartbeatReportInnerFrame.getHeartBeatDataPackage().getC3Mac() , 1, 300L); , heartbeatReportInnerFrame.getHeartBeatDataPackage(), 300L); } } else if (C3ChargingEnum.StartCharging.getCode().equals(functionCode)) { log.info("心跳响应——C3充电桩开始充电"); ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/AtmoFunctionCode.java
@@ -13,7 +13,7 @@ // 设置心跳包间隔 SettingHeartBeatTime("11"), // 大气设备心跳包存储(设备状态)) AIR_EQUIPMENT_STATE("air_equipment_state"); AIR_HEARTBEAT("air_heartbeat"); private String code; ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/C3mRedisConstant.java
@@ -1,7 +1,13 @@ package com.sandu.ximon.admin.manager.iot.rrpc.enums; public enum C3mRedisConstant { //充电桩口状态位: //1.空闲 //2.充电中 //3.充电中断,等待服务器确认 //4.充电结束,等待服务器确认 //5.有故障 //6.与充电桩对接中 // 充电桩心跳包存储(mac-list(充电桩口状态)) C3_STATUS("m_c3_port_status:"), // 充电桩订单 @@ -18,6 +24,7 @@ public String getCode() { return code; } C3mRedisConstant(String code) { this.code = code; } ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirDataService.java
@@ -5,7 +5,9 @@ import com.github.pagehelper.PageHelper; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.service.impl.BaseServiceImpl; 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.dao.bo.AirDataBo; import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereHeartbeatReportInnerFrame; import com.sandu.ximon.dao.domain.AirData; @@ -41,6 +43,9 @@ airEquipment.setCreateTime(airData.getCreateTime()); airEquipmentService.addAirEquipment(airEquipment); //存缓存 RedisUtils.getBean().set(AtmoFunctionCode.AIR_HEARTBEAT.getCode() + deviceName, heartBeatDataPackage, 300L); return save(airData); } ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentService.java
@@ -1,22 +1,13 @@ package com.sandu.ximon.admin.service; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.manager.iot.rrpc.enums.AtmoFunctionCode; import com.sandu.ximon.admin.manager.iot.rrpc.enums.C3mRedisConstant; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.admin.utils.RedisUtils; import com.sandu.ximon.dao.bo.AirDataBo; import com.sandu.ximon.dao.bo.AirEquipmentBo; import com.sandu.ximon.dao.domain.AirData; import com.sandu.ximon.dao.domain.AirEquipment; import com.sandu.ximon.dao.domain.Monitor; import com.sandu.ximon.dao.mapper.AirDataMapper; import com.sandu.ximon.dao.mapper.AirEquipmentMapper; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -34,11 +25,13 @@ * 模糊查询 */ public List<AirEquipmentBo> listAirEquipmentByKeyword(BaseConditionVO baseConditionVO, String keyword) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); if (baseConditionVO != null) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); } List<AirEquipmentBo> airEquipmentBos; if (SecurityUtils.getClientId() == null) { airEquipmentBos = airEquipmentMapper.listAirEquipmentByIds(keyword, null); }else{ } else { airEquipmentBos = airEquipmentMapper.listAirEquipmentByIds(keyword, SecurityUtils.getUserId()); } @@ -52,9 +45,9 @@ */ public void addAirEquipment(AirEquipment airEquipment) { AirEquipment one = getOne(Wrappers.lambdaQuery(AirEquipment.class).eq(AirEquipment::getMac, airEquipment.getMac())); //存储设备状态到缓存 RedisUtils.getBean().set(AtmoFunctionCode.AIR_EQUIPMENT_STATE.getCode() + airEquipment.getMac() , 1, 300L); // //存储设备状态到缓存 // RedisUtils.getBean().set(AtmoFunctionCode.AIR_EQUIPMENT_STATE.getCode() + airEquipment.getMac() // , 1, 300L); if (one == null) { save(airEquipment); } ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java
@@ -184,7 +184,9 @@ * @return */ public List<C3ChargingBo> getC3ChargingListByKeyword(BaseConditionVO baseConditionVO, C3ChargingParam c3ChargingParam) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); if (baseConditionVO != null) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); } if (c3ChargingParam == null) { c3ChargingParam = new C3ChargingParam(); } @@ -195,15 +197,20 @@ } List<C3ChargingBo> c3ChargingBoList; if(SecurityUtils.getClientId() == null){ if (SecurityUtils.getClientId() == null) { c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(c3ChargingParam.getKeyword(), null); }else{ } else { c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(c3ChargingParam.getKeyword(), SecurityUtils.getUserId()); } for (C3ChargingBo one : c3ChargingBoList) { String s = RedisUtils.getBean().get(C3mRedisConstant.C3_STATUS.getCode() + one.getC3Mac()); if (s != null) { one.setStatusBit(1); try { A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage beatDataPackage = JSON.parseObject(s, A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage.class); one.setStatusBit((Integer.valueOf(beatDataPackage.getStatusBit()))); } catch (Exception e) { e.printStackTrace(); } } else { one.setStatusBit(0); } @@ -221,7 +228,12 @@ C3mCharging one = getOne(Wrappers.lambdaQuery(C3mCharging.class).eq(C3mCharging::getMcuUdid, udid)); String s = RedisUtils.getBean().get(C3mRedisConstant.C3_STATUS.getCode() + one.getC3Mac()); if (s != null) { one.setStatusBit(1); try { A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage beatDataPackage = JSON.parseObject(s, A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage.class); one.setStatusBit((Integer.valueOf(beatDataPackage.getStatusBit()))); } catch (Exception e) { e.printStackTrace(); } } else { one.setStatusBit(0); } ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeService.java
@@ -67,7 +67,7 @@ } //在线状态全部的话需要分页 if (2 == broadcastTerminalV2Param.getWorkState()) { if (baseConditionVO != null && 2 == broadcastTerminalV2Param.getWorkState()) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); } ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightPoleHeelingService.java
@@ -11,9 +11,11 @@ import com.sandu.ximon.admin.manager.iot.frame.inner.request.*; import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame; import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5OrderEnum; import com.sandu.ximon.admin.manager.iot.rrpc.enums.LightPoleHeelingEnum; import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService; 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.dao.domain.Light; import com.sandu.ximon.dao.domain.LightPoleHeeling; import com.sandu.ximon.dao.domain.LightPoleHeelingEquipment; @@ -34,7 +36,9 @@ * 模糊查询 */ public List<LightPoleHeeling> listLightPoleHeelingByKeyword(BaseConditionVO baseConditionVO, LightPoleHeelingListParam lightPoleHeelingListParam) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); if (baseConditionVO != null) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); } if (lightPoleHeelingListParam == null) { lightPoleHeelingListParam = new LightPoleHeelingListParam(); } @@ -216,6 +220,10 @@ } else { lightPoleHeeling.setWarningLevel(0);//正常 } //存储设备状态到缓存 RedisUtils.getBean().set(LightPoleHeelingEnum.LIGHT_POLE_HEELING_STATE.getCode() + deviceName , heartBeatDataPackage, 300L); /** * 将灯杆倾斜硬件添加到硬件表 */ @@ -223,7 +231,6 @@ if (one == null) { LightPoleHeelingEquipment equipment = new LightPoleHeelingEquipment(); equipment.setMac(deviceName); lightPoleHeelingEquipmentService.addLightPoleHeelingEquipment(equipment); } return save(lightPoleHeeling); ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
@@ -246,8 +246,12 @@ * @return */ public List<Light> listLight() { Long clientId = SecurityUtils.getClientId(); List<LightBo> listLight = baseMapper.listLight(clientId, null); List<LightBo> listLight; if (SecurityUtils.getClientId() != null) { listLight = baseMapper.listLight(SecurityUtils.getUserId(), null); } else { listLight = baseMapper.listLight(null, null); } List<Light> lightList = new ArrayList<>(); for (LightBo bean : listLight) { Light light = getLight(bean.getDeviceCode()); ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
@@ -55,7 +55,9 @@ */ public List<MonitorBo> listMonitorByKeyword(BaseConditionVO baseConditionVO, MonitorParam monitorParam) { Long clientId = SecurityUtils.getClientId(); PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); if (baseConditionVO != null) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); } List<MonitorBo> monitorList; //绑定状态:已绑定/未绑定/全部 if (monitorParam.getBindingState() == null) { ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -13,6 +13,7 @@ import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.common.util.SpringContextHolder; import com.sandu.ximon.admin.dto.DeviceStatus; import com.sandu.ximon.admin.dto.WaterQualityDataDto; import com.sandu.ximon.admin.manager.iot.frame.A1Frame; import com.sandu.ximon.admin.manager.iot.frame.FrameBuilder; import com.sandu.ximon.admin.manager.iot.frame.IRequestFrame; @@ -23,21 +24,15 @@ 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.dto.WrapResponseCommonFrame; 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.*; import com.sandu.ximon.admin.redis.LightKey; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.admin.utils.RedisUtils; import com.sandu.ximon.admin.vo.PoleBindVO; import com.sandu.ximon.dao.bo.BroadcastTerminalV2EntityBo; import com.sandu.ximon.dao.bo.MonitorBo; import com.sandu.ximon.dao.domain.LedPlayerEntity; import com.sandu.ximon.dao.domain.Pole; import com.sandu.ximon.dao.domain.PoleBinding; import com.sandu.ximon.dao.domain.PoleGroupRelation; import com.sandu.ximon.dao.bo.*; import com.sandu.ximon.dao.domain.*; import com.sandu.ximon.dao.mapper.PoleMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -121,7 +116,6 @@ */ public Map<String, Integer> poleCount() { Map<String, Integer> result = new HashMap<>(); List<Pole> list = new ArrayList<>(); LambdaQueryWrapper<Pole> wrapper = new LambdaQueryWrapper<>(); if (SecurityUtils.getClientId() == null) { wrapper = Wrappers.lambdaQuery(Pole.class); @@ -132,7 +126,7 @@ }); } //灯杆 list = list(wrapper); List<Pole> list = list(wrapper); List<Pole> poles = isOnLine(list); result.put("poleOnlineCount", poles.size()); result.put("poleTotalCount", list.size()); @@ -149,11 +143,12 @@ result.put("novaTotalCount", ledPlayerEntities.size()); //ip音柱 number = 0; BroadcastTerminalV2Param broadcastTerminalV2Param = new BroadcastTerminalV2Param(); broadcastTerminalV2Param.setBindingState(2); broadcastTerminalV2Param.setWorkState(-1); List<BroadcastTerminalV2EntityBo> broadcastTerminalList = SpringContextHolder.getBean(IpVolumeService.class).getBroadcastTerminalList(null, broadcastTerminalV2Param); number = 0; broadcastTerminalV2Param.setWorkState(2); List<BroadcastTerminalV2EntityBo> broadcastTerminalList = SpringContextHolder.getBean(IpVolumeService.class).getBroadcastTerminalList(null, broadcastTerminalV2Param); for (BroadcastTerminalV2EntityBo bean : broadcastTerminalList) { if (bean.getStatus() == 1 || bean.getStatus() == 0) { number++; @@ -161,9 +156,9 @@ } result.put("broadcastOnlineCount", number); result.put("broadcastTotalCount", broadcastTerminalList.size()); number = 0; //摄像头 number = 0; MonitorParam monitorParam = new MonitorParam(); monitorParam.setEquipmentState(2); monitorParam.setBindingState(2); @@ -174,13 +169,77 @@ result.put("monitorTotalCount", monitorBos.size()); //单灯 number = 0; List<Light> lights = SpringContextHolder.getBean(LightService.class).listLight(); for (Light light : lights) { if (light.getOnlineStatus() == 1) { number++; } } result.put("LightOnlineCount", number); result.put("LightTotalCount", lights.size()); //充电桩 number = 0; List<C3ChargingBo> c3mChargings = SpringContextHolder.getBean(C3ChargingService.class).getC3ChargingListByKeyword(null, null); for (C3ChargingBo c3ChargingBo : c3mChargings) { if (c3ChargingBo.getStatusBit() != 0) { number++; } } result.put("C3ChargingOnlineCount", number); result.put("C3ChargingTotalCount", c3mChargings.size()); //大气 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) { number++; } } result.put("AirEquipmentOnlineCount", number); result.put("AirEquipmentTotalCount", airEquipments.size()); //水质 number = 0; List<WaterQualityEquipmentBo> waterQualityEquipments = SpringContextHolder.getBean(WaterQualityEquipmentService.class).listWaterQualityEquipmentByKeyword(null, null); for (WaterQualityEquipmentBo waterQualityEquipmentBo : waterQualityEquipments) { WaterQualityDataDto waterQualityDataDto = SpringContextHolder.getBean(WaterQualityDataService.class).getWaterQualityDataInfo(waterQualityEquipmentBo.getWaterQualityEquipmentCode()); if (waterQualityDataDto != null) { number++; } } result.put("WaterQualityEquipmentOnlineCount", number); result.put("WaterQualityEquipmentTotalCount", waterQualityEquipments.size()); //灯杆倾斜 number = 0; List<LightPoleHeeling> lightPoleHeelings = SpringContextHolder.getBean(LightPoleHeelingService.class).listLightPoleHeelingByKeyword(null, null); for (LightPoleHeeling lightPoleHeeling : lightPoleHeelings) { if (RedisUtils.getBean().get(LightPoleHeelingEnum.LIGHT_POLE_HEELING_STATE.getCode() + lightPoleHeeling.getMac()) != null) { number++; } } result.put("LightPoleHeelingOnlineCount", number); result.put("LightPoleHeelingTotalCount", lightPoleHeelings.size()); //熙讯 List<PoleLightemitEntity> poleLightemitEntities = SpringContextHolder.getBean(PoleLightemitService.class).listLed(null, false); List<PoleLightemitEntity> poleLightemitEntityOnlineList = SpringContextHolder.getBean(PoleLightemitService.class).ledOnline(poleLightemitEntities); result.put("XiXunOnlineCount", poleLightemitEntityOnlineList.size()); result.put("XiXunTotalCount", poleLightemitEntities.size()); return result; } public List<Pole> queryAllStatesAndList(Integer pageNo, Integer pageSize, PoleStatesParam param) { List<Pole> list = new ArrayList<>(); LambdaQueryWrapper<Pole> wrapper = new LambdaQueryWrapper<>(); if (SecurityUtils.getClientId() == null) { ximon-admin/src/main/java/com/sandu/ximon/admin/service/WaterQualityDataService.java
@@ -31,9 +31,9 @@ public List<WaterQualityDataBo> listWaterQualityDataByKeyword(BaseConditionVO baseConditionVO, String keyword) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); List<Long> waterQualityDataId; if(SecurityUtils.getClientId() == null){ if (SecurityUtils.getClientId() == null) { waterQualityDataId = waterQualityDataMapper.listWaterQualityDataId(keyword, null); }else{ } else { waterQualityDataId = waterQualityDataMapper.listWaterQualityDataId(keyword, SecurityUtils.getUserId()); } if (CollUtil.isEmpty(waterQualityDataId)) { @@ -83,7 +83,8 @@ save(waterQualityData); } catch (Exception e) { e.printStackTrace(); throw new BusinessException("水质设备号不正确"); log.error("水质设备号不正确"); // throw new BusinessException("水质设备号不正确"); } return waterQualityDataDto; ximon-admin/src/main/java/com/sandu/ximon/admin/service/WaterQualityEquipmentService.java
@@ -39,7 +39,9 @@ */ public List<WaterQualityEquipmentBo> listWaterQualityEquipmentByKeyword(BaseConditionVO baseConditionVO, String keyword) { Long userId = SecurityUtils.getUserId(); PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); if (baseConditionVO != null) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); } List<WaterQualityEquipmentBo> waterQualityEquipmentBoList; //为空是超管 if (SecurityUtils.getClientId() == null) {