修改设备在线状态获取方式

This commit is contained in:
wyw 2024-08-16 03:26:52 +08:00
parent ab9792668c
commit 77386bfbb0
2 changed files with 43 additions and 13 deletions

View File

@ -1608,18 +1608,18 @@ public class DeviceServiceImpl implements IDeviceService {
devices.setProductId(136L); devices.setProductId(136L);
List<Device> deviceList = selectDeviceList(devices); List<Device> deviceList = selectDeviceList(devices);
for (Device device : deviceList) { for (Device device : deviceList) {
MaWatereleRecord maWatereleRecord = new MaWatereleRecord(); // MaWatereleRecord maWatereleRecord = new MaWatereleRecord();
maWatereleRecord.setDevSn(device.getSerialNumber()); // maWatereleRecord.setDevSn(device.getSerialNumber());
TableDataInfo tableDataInfo = watereleRecordService.selectMaWatereleRecordList(maWatereleRecord); // TableDataInfo tableDataInfo = watereleRecordService.selectMaWatereleRecordList(maWatereleRecord);
List<MaWatereleRecord> list = (List<MaWatereleRecord>) tableDataInfo.getRows(); // List<MaWatereleRecord> list = (List<MaWatereleRecord>) tableDataInfo.getRows();
int status = 4; // int status = 4;
if(list.size() > 0){ // if(list.size() > 0){
MaWatereleRecord record = list.get(0); // MaWatereleRecord record = list.get(0);
if(new Date().getTime() - record.getCreateTime().getTime() < 3600000){ // if(new Date().getTime() - record.getCreateTime().getTime() < 3600000){
status = 3; // status = 3;
} // }
} // }
device.setStatus(status); // device.setStatus(status);
HashMap<String, Object> itemMap = new HashMap<>(); HashMap<String, Object> itemMap = new HashMap<>();
resultList.add(itemMap); resultList.add(itemMap);
Integer integer = 0; Integer integer = 0;

View File

@ -1,5 +1,6 @@
package com.fastbee.iot.timer;//package com.fastbee.farming; package com.fastbee.iot.timer;//package com.fastbee.farming;
import com.fastbee.common.core.page.TableDataInfo;
import com.fastbee.common.core.redis.RedisCache; import com.fastbee.common.core.redis.RedisCache;
import com.fastbee.common.core.redis.RedisKeyBuilder; import com.fastbee.common.core.redis.RedisKeyBuilder;
import com.fastbee.common.utils.DateUtils; import com.fastbee.common.utils.DateUtils;
@ -17,6 +18,8 @@ import com.fastbee.iot.model.haiwei.HaiWeiPropertyVo;
import com.fastbee.iot.service.IDeviceService; import com.fastbee.iot.service.IDeviceService;
import com.fastbee.iot.tdengine.service.ILogService; import com.fastbee.iot.tdengine.service.ILogService;
import com.fastbee.iot.tdengine.service.model.TdLogDto; import com.fastbee.iot.tdengine.service.model.TdLogDto;
import com.fastbee.waterele.domain.MaWatereleRecord;
import com.fastbee.waterele.service.IMaWatereleRecordService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -43,7 +46,8 @@ public class QxtrTask {
private ILogService iLogService; private ILogService iLogService;
@Resource @Resource
RedisCache redisCache; RedisCache redisCache;
@Resource
private IMaWatereleRecordService watereleRecordService;
private static Pattern pattern = Pattern.compile("[-+]?[0-9]+(\\.[0-9]+)?$"); private static Pattern pattern = Pattern.compile("[-+]?[0-9]+(\\.[0-9]+)?$");
/** /**
@ -57,6 +61,32 @@ public class QxtrTask {
getDeviceInfo(Long.valueOf(SOLAR_DEVICE.getType()), devices); getDeviceInfo(Long.valueOf(SOLAR_DEVICE.getType()), devices);
} }
/**
* 定时任务 更新设备在线状态
*/
public void updateDeviceStatus() throws Exception {
log.info("定时任务,更新设备在线状态");
Device device = new Device();
ArrayList<Map<String, Object>> resultList = new ArrayList<>();
device.setProductId(136L);
List<Device> deviceList = iDeviceService.selectDeviceList(device);
for (Device item : deviceList) {
MaWatereleRecord maWatereleRecord = new MaWatereleRecord();
maWatereleRecord.setDevSn(item.getSerialNumber());
TableDataInfo tableDataInfo = watereleRecordService.selectMaWatereleRecordList(maWatereleRecord);
List<MaWatereleRecord> list = (List<MaWatereleRecord>) tableDataInfo.getRows();
int status = 4;
if(list.size() > 0){
MaWatereleRecord record = list.get(0);
if(new Date().getTime() - record.getCreateTime().getTime() < 3600000){
status = 3;
}
}
item.setStatus(status);
iDeviceService.updateDevice(item);
}
}
/** /**
* 定时任务 流量计设备 * 定时任务 流量计设备
*/ */