| | |
| | | package com.sandu.ximon.admin.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.sandu.common.execption.BusinessException; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.sandu.common.object.BaseConditionVO; |
| | | import com.sandu.common.service.impl.BaseServiceImpl; |
| | | import com.sandu.common.util.ResUtils; |
| | | 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.dao.bo.AirDataBo; |
| | | import com.sandu.ximon.dao.domain.AirData; |
| | | import com.sandu.ximon.dao.domain.Monitor; |
| | | import com.sandu.ximon.dao.domain.AirEquipment; |
| | | import com.sandu.ximon.dao.mapper.AirDataMapper; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | |
| | | @Service |
| | | @AllArgsConstructor |
| | | public class AirDataService extends BaseServiceImpl<AirDataMapper, AirData> { |
| | | private final AirDataMapper airDataMapper; |
| | | private final AirEquipmentService airEquipmentService; |
| | | |
| | | /** |
| | | * 查询全部大气设备数据 |
| | | */ |
| | | public List<AirData> listAirData() { |
| | | LambdaQueryWrapper<AirData> wrapper = Wrappers.lambdaQuery(AirData.class); |
| | | List<AirData> list = list(wrapper); |
| | | |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * 模糊查询 |
| | | */ |
| | | public List<AirData> listAirDataByKeyword(String keyword) { |
| | | |
| | | LambdaQueryWrapper<AirData> wrapper = Wrappers.lambdaQuery(AirData.class); |
| | | if(keyword != null){ |
| | | wrapper.like(AirData::getBelongTo,keyword); |
| | | } |
| | | List<AirData> airDataList = list(wrapper); |
| | | return airDataList; |
| | | } |
| | | |
| | | /** |
| | | * 删除大气设备 |
| | | * 保存上报大气心跳数据 |
| | | * |
| | | * @param Id |
| | | * @return |
| | | * @return 是否成功 |
| | | */ |
| | | public boolean deleteAirData(Long Id) { |
| | | AirData airData = getById(Id); |
| | | if (airData == null) { |
| | | throw new BusinessException("找不到大气设备"); |
| | | } |
| | | return removeById(Id); |
| | | public boolean saveReportData(String deviceName, A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage heartBeatDataPackage) { |
| | | |
| | | AirData airData = new AirData(); |
| | | BeanUtils.copyProperties(heartBeatDataPackage, airData); |
| | | airData.setDeviceMac(deviceName); |
| | | |
| | | //将设备信息添加到大气设备表 |
| | | AirEquipment airEquipment = new AirEquipment(); |
| | | airEquipment.setId(airData.getId()); |
| | | airEquipment.setMac(airData.getDeviceMac()); |
| | | airEquipment.setCreateTime(airData.getCreateTime()); |
| | | airEquipmentService.addAirEquipment(airEquipment); |
| | | |
| | | //存缓存 |
| | | RedisUtils.getBean().set(AtmoFunctionCode.AIR_HEARTBEAT.getCode() + deviceName, heartBeatDataPackage, 300L); |
| | | |
| | | return save(airData); |
| | | } |
| | | |
| | | /** |
| | | * 查询大气数据(模糊查询) |
| | | */ |
| | | public List<AirDataBo> listAirDataByKeyword(BaseConditionVO baseConditionVO, String keyword) { |
| | | PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); |
| | | List<Long> listAirId; |
| | | if (SecurityUtils.getClientId() == null) { |
| | | listAirId = baseMapper.listAirId(keyword, null); |
| | | } else { |
| | | listAirId = baseMapper.listAirId(keyword, SecurityUtils.getUserId()); |
| | | } |
| | | if (CollUtil.isEmpty(listAirId)) { |
| | | return CollUtil.newArrayList(); |
| | | } |
| | | List<AirDataBo> airDataBos = baseMapper.listAirDataByIds(listAirId); |
| | | return airDataBos; |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 查询大气设备MAC地址 |
| | | */ |
| | | public List<String> listAirEquipmentMAC() { |
| | | return airDataMapper.listAirEquipmentMAC(); |
| | | } |
| | | |
| | | /** |
| | | * + |
| | | * 根据灯杆id查询大气数据 |
| | | */ |
| | | public A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage getDataByPoleid(Long poleId) { |
| | | String code; |
| | | if (SecurityUtils.getClientId() != null) { |
| | | code = baseMapper.getCodeByPoleId(poleId, SecurityUtils.getUserId()); |
| | | } else { |
| | | code = baseMapper.getCodeByPoleId(poleId, null); |
| | | } |
| | | A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage heartBeatDataPackage |
| | | = RedisUtils.getBean().get(AtmoFunctionCode.AIR_HEARTBEAT.getCode() + code, A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage.class); |
| | | if (heartBeatDataPackage == null) { |
| | | return null; |
| | | } |
| | | |
| | | return heartBeatDataPackage; |
| | | } |
| | | |
| | | } |