| | |
| | | |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.sandu.common.domain.CommonPage; |
| | | import com.sandu.common.execption.BusinessException; |
| | | import com.sandu.common.object.BaseConditionVO; |
| | | import com.sandu.common.service.impl.BaseServiceImpl; |
| | | import com.sandu.common.util.ResUtils; |
| | | import com.sandu.common.util.SpringContextHolder; |
| | | import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereHeartbeatReportInnerFrame; |
| | | 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.utils.StringUtil; |
| | | import com.sandu.ximon.dao.bo.AirDataBo; |
| | | import com.sandu.ximon.dao.domain.AirData; |
| | | import com.sandu.ximon.dao.domain.AirEquipment; |
| | | import com.sandu.ximon.dao.domain.PoleBinding; |
| | | import com.sandu.ximon.dao.mapper.AirDataMapper; |
| | | import lombok.AllArgsConstructor; |
| | | import org.apache.commons.lang.StringUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | * @return 是否成功 |
| | | */ |
| | | public boolean saveReportData(String deviceName, A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage heartBeatDataPackage) { |
| | | if (heartBeatDataPackage == null) { |
| | | System.out.println("保存大气设备心跳包数据异常,心跳包为空!"); |
| | | return false; |
| | | } |
| | | |
| | | AirData airData = new AirData(); |
| | | BeanUtils.copyProperties(heartBeatDataPackage, airData); |
| | |
| | | AirEquipment airEquipment = new AirEquipment(); |
| | | airEquipment.setId(airData.getId()); |
| | | airEquipment.setMac(airData.getDeviceMac()); |
| | | airEquipment.setCreateTime(airData.getCreateTime()); |
| | | airEquipment.setDeviceType(heartBeatDataPackage.getDeviceType()); |
| | | airEquipment.setModuleWarmUpStatusFlag(heartBeatDataPackage.getModuleWarmUpStatusFlag()); |
| | | //温度传感器 |
| | | airEquipment.setTemperature(heartBeatDataPackage.getTemperature() != null ? 1 : 0); |
| | | //湿度传感器 |
| | | airEquipment.setHumidity(heartBeatDataPackage.getHumidity() != null ? 1 : 0); |
| | | //风速传感器 |
| | | airEquipment.setWindSpeed(heartBeatDataPackage.getWindSpeed() != null ? 1 : 0); |
| | | //风向传感器 |
| | | if (heartBeatDataPackage.getWindDirection() == null) { |
| | | airEquipment.setWindDirection(0); |
| | | } else if (heartBeatDataPackage.getWindDirection().contains("度")) { |
| | | //360度传感器 |
| | | airEquipment.setWindDirection(2); |
| | | } else { |
| | | //八向仪传感器 |
| | | airEquipment.setWindDirection(1); |
| | | } |
| | | //风力传感器 |
| | | airEquipment.setWindPower(heartBeatDataPackage.getWindPower() != null ? 1 : 0); |
| | | //气压传感器 |
| | | airEquipment.setPressure(heartBeatDataPackage.getPressure() != null ? 1 : 0); |
| | | //光强传感器 |
| | | airEquipment.setLightIntensity(heartBeatDataPackage.getLightIntensity() != null ? 1 : 0); |
| | | //噪音传感器 |
| | | airEquipment.setNoise(heartBeatDataPackage.getNoise() != null ? 1 : 0); |
| | | //PM25传感器 |
| | | airEquipment.setPm25(heartBeatDataPackage.getPm25() != null ? 1 : 0); |
| | | //PM10传感器 |
| | | airEquipment.setPm10(heartBeatDataPackage.getPm10() != null ? 1 : 0); |
| | | //TSP传感器 |
| | | airEquipment.setTsp(heartBeatDataPackage.getTsp() != null ? 1 : 0); |
| | | //雨量传感器 |
| | | airEquipment.setRain(heartBeatDataPackage.getRain() != null ? 1 : 0); |
| | | //SO2传感器 |
| | | airEquipment.setSo2(heartBeatDataPackage.getSo2() != null ? 1 : 0); |
| | | //甲醛传感器 |
| | | airEquipment.setEch2o(heartBeatDataPackage.getEch2o() != null ? 1 : 0); |
| | | //NO2传感器 |
| | | airEquipment.setNo2(heartBeatDataPackage.getNo2() != null ? 1 : 0); |
| | | //TVOC传感器 |
| | | airEquipment.setTvoc(heartBeatDataPackage.getTvoc() != null ? 1 : 0); |
| | | //CO传感器 |
| | | airEquipment.setCo(heartBeatDataPackage.getCo() != null ? 1 : 0); |
| | | //CO2传感器 |
| | | airEquipment.setCo2(heartBeatDataPackage.getCo2() != null ? 1 : 0); |
| | | //03传感器 |
| | | airEquipment.setO3(heartBeatDataPackage.getO3() != null ? 1 : 0); |
| | | //氟化物传感器 |
| | | airEquipment.setFluoride(heartBeatDataPackage.getFluoride() != null ? 1 : 0); |
| | | |
| | | airEquipmentService.addAirEquipment(airEquipment); |
| | | |
| | | //存缓存 |
| | | RedisUtils.getBean().set(AtmoFunctionCode.AIR_HEARTBEAT.getCode() + deviceName, heartBeatDataPackage, 300L); |
| | | //存缓存心跳包 |
| | | RedisUtils.getBean().set(AtmoFunctionCode.AIR_HEARTBEAT.getCode() + deviceName, heartBeatDataPackage); |
| | | //存缓存状态 |
| | | RedisUtils.getBean().set(AtmoFunctionCode.AIR_HEARTBEAT_STATE.getCode() + deviceName, heartBeatDataPackage, 300L); |
| | | |
| | | return save(airData); |
| | | } |
| | |
| | | /** |
| | | * 查询大气数据(模糊查询) |
| | | */ |
| | | public List<AirDataBo> listAirDataByKeyword(BaseConditionVO baseConditionVO, String keyword) { |
| | | public CommonPage listAirDataByKeyword(BaseConditionVO baseConditionVO, String keyword) { |
| | | PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); |
| | | List<Long> listAirId; |
| | | if (SecurityUtils.getClientId() == null) { |
| | |
| | | } else { |
| | | listAirId = baseMapper.listAirId(keyword, SecurityUtils.getUserId()); |
| | | } |
| | | CommonPage commonPage = CommonPage.restPage(listAirId); |
| | | if (CollUtil.isEmpty(listAirId)) { |
| | | return CollUtil.newArrayList(); |
| | | return commonPage; |
| | | } |
| | | List<AirDataBo> airDataBos = baseMapper.listAirDataByIds(listAirId); |
| | | return airDataBos; |
| | | commonPage.setList(airDataBos); |
| | | return commonPage; |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 查询大气设备MAC地址 |
| | | * 查询大气设备历史数据 |
| | | */ |
| | | public List<String> listAirEquipmentMAC() { |
| | | return airDataMapper.listAirEquipmentMAC(); |
| | | public List<AirDataBo> listAirDataOfDeviceCode(BaseConditionVO baseConditionVO, String deviceMac) { |
| | | if (StringUtils.isEmpty(deviceMac)) { |
| | | throw new BusinessException("设备号不能为空!"); |
| | | } |
| | | PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); |
| | | List<AirDataBo> list = baseMapper.listAirDataHistory(deviceMac); |
| | | |
| | | return list; |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * + |
| | | * 根据灯杆id查询大气数据 |
| | | */ |
| | | public A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage listAirDataByLightPoleId(Long poleId) { |
| | | public A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage getDataByPoleid(Long poleId) { |
| | | String code; |
| | | if (SecurityUtils.getClientId() != null) { |
| | | code = baseMapper.getCodeByPoleId(poleId, SecurityUtils.getUserId()); |