| | |
| | | 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.admin.utils.StoreOperationRecordsUtils; |
| | | import com.sandu.ximon.admin.vo.EquipmentInfomation; |
| | | 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; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @Service |
| | |
| | | |
| | | |
| | | /** |
| | | * 模糊查询 |
| | | * 大气设备列表模糊查询 |
| | | */ |
| | | public List<AirEquipmentBo> listAirEquipmentByKeyword(BaseConditionVO baseConditionVO, String keyword) { |
| | | Long clientId = SecurityUtils.getClientId(); |
| | | 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 { |
| | | airEquipmentBos = airEquipmentMapper.listAirEquipmentByIds(keyword, SecurityUtils.getUserId()); |
| | | } |
| | | |
| | | List<AirEquipmentBo> airEquipmentBos = airEquipmentMapper.listAirEquipmentByIds(keyword,clientId); |
| | | return airEquipmentBos; |
| | | } |
| | | |
| | | /** |
| | | * 大气设备劣列表(用于首页数据统计) |
| | | */ |
| | | public List<AirEquipmentBo> listAirEquipmentOnHome() { |
| | | List<AirEquipmentBo> airEquipmentBos; |
| | | if (SecurityUtils.getClientId() == null) { |
| | | airEquipmentBos = airEquipmentMapper.listAirEquipmentByIds(null, null); |
| | | } else { |
| | | airEquipmentBos = airEquipmentMapper.listAirEquipmentByIds(null, SecurityUtils.getUserId()); |
| | | } |
| | | |
| | | return airEquipmentBos; |
| | | } |
| | | |
| | |
| | | */ |
| | | 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); |
| | | /** |
| | | * 添加大气设备 日志记录开始 |
| | | */ |
| | | List<String> listCode = new ArrayList<>(1); |
| | | listCode.add(airEquipment.getMac()); |
| | | String content = "{ 设备id:" + airEquipment.getId() + "设备code:" + airEquipment.getMac() + |
| | | "}"; |
| | | |
| | | StoreOperationRecordsUtils.storeOperationData(listCode, null, "添加大气设备", content); |
| | | /** |
| | | * 添加大气设备 日志记录结束 |
| | | */ |
| | | } |
| | | } |
| | | |
| | |
| | | if (airEquipment == null) { |
| | | throw new BusinessException("找不到大气设备数据"); |
| | | } |
| | | /** |
| | | * 删除大气设备 日志记录开始 |
| | | */ |
| | | List<String> listCode=new ArrayList<>(1); |
| | | listCode.add(airEquipment.getMac()); |
| | | String content = "{设备code:" + airEquipment.getMac() + "}"; |
| | | |
| | | StoreOperationRecordsUtils.storeOperationData(listCode, null, "删除大气设备", content); |
| | | /** |
| | | * 删除大气设备 日志记录结束 |
| | | */ |
| | | return removeById(Id); |
| | | } |
| | | |
| | | /** |
| | | * 根据Mac大气设备数据详情 |
| | | */ |
| | | public AirEquipment getAirEquipment(String mac) { |
| | | return getOne(Wrappers.lambdaQuery(AirEquipment.class).eq(AirEquipment::getMac, mac)); |
| | | public EquipmentInfomation getAirEquipmentInfo(String mac) { |
| | | EquipmentInfomation equipmentInfo = new EquipmentInfomation(); |
| | | equipmentInfo.setEquipmentType("大气设备"); |
| | | if (mac == null || mac.trim().length() == 0) { |
| | | return equipmentInfo; |
| | | } |
| | | |
| | | 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; |
| | | } |
| | | } |