package com.sandu.ximon.admin.service; 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.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereHeartbeatReportInnerFrame; import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereNewHeartbeatReportInnerFrame; 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.bo.AirDataNongGengBo; import com.sandu.ximon.dao.domain.AirData; import com.sandu.ximon.dao.domain.AirDataNongGeng; import com.sandu.ximon.dao.domain.AirEquipment; import com.sandu.ximon.dao.domain.AirEquipmentNongGeng; import com.sandu.ximon.dao.mapper.AirDataNongGengMapper; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.List; /** * 大气数据,农耕硬件 * * @author ZZQ * @date 2022/4/25 14:16 */ @Service @AllArgsConstructor public class AirDataNongGengService extends BaseServiceImpl { private final AirEquipmentNongGengService airEquipmentNongGengService; /** * 保存上报大气心跳数据 * * @return 是否成功 */ public boolean saveReportData(String deviceName, A5AtmosphereNewHeartbeatReportInnerFrame.HeartBeatDataPackage heartBeatDataPackage) { AirDataNongGeng airDataNongGeng = new AirDataNongGeng(); BeanUtils.copyProperties(heartBeatDataPackage, airDataNongGeng); airDataNongGeng.setMac(deviceName); //将设备信息添加到大气设备表 AirEquipmentNongGeng airEquipmentNongGeng = new AirEquipmentNongGeng(); airEquipmentNongGeng.setId(airDataNongGeng.getId()); airEquipmentNongGeng.setMac(airDataNongGeng.getMac()); airEquipmentNongGeng.setCreateTime(airDataNongGeng.getCreateTime()); airEquipmentNongGengService.addAirEquipment(airEquipmentNongGeng); //存缓存 RedisUtils.getBean().set(AtmoFunctionCode.AIR_HEARTBEAT_NONG_GENG.getCode() + deviceName, heartBeatDataPackage); RedisUtils.getBean().set(AtmoFunctionCode.AIR_HEARTBEAT_NONG_GENG_STATE.getCode() + deviceName, heartBeatDataPackage, 300L); return save(airDataNongGeng); } // // /** // * 查询大气数据(模糊查询) // */ // public List listAirDataByKeyword(BaseConditionVO baseConditionVO, String keyword) { // PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); // List 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 airDataBos = baseMapper.listAirDataByIds(listAirId); // return airDataBos; // // } }