添加水电双计设备历史数据保存逻辑,同步在线状态定时任务

This commit is contained in:
蒾酒
2025-01-02 13:34:34 +08:00
parent f8dc8d154f
commit 24344e870a
4 changed files with 80 additions and 8 deletions

View File

@ -1,7 +1,10 @@
package com.fastbee.iot.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fastbee.iot.domain.DeviceReportInfo;
import com.fastbee.iot.domain.NgFlowDeviceData;
/**
* 设备上电审核前上报的基础信息Service接口
@ -9,7 +12,7 @@ import com.fastbee.iot.domain.DeviceReportInfo;
* @author kerwincui
* @date 2024-12-05
*/
public interface IDeviceReportInfoService
public interface IDeviceReportInfoService extends IService<DeviceReportInfo>
{
/**
* 查询设备上电审核前上报的基础信息

View File

@ -5,9 +5,12 @@ import java.util.List;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fastbee.common.exception.ServiceException;
import com.fastbee.iot.domain.Device;
import com.fastbee.iot.domain.NgFlowDeviceData;
import com.fastbee.iot.mapper.DeviceMapper;
import com.fastbee.iot.mapper.NgFlowDeviceDataMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.fastbee.iot.mapper.DeviceReportInfoMapper;
@ -21,7 +24,7 @@ import com.fastbee.iot.service.IDeviceReportInfoService;
* @date 2024-12-05
*/
@Service
public class DeviceReportInfoServiceImpl implements IDeviceReportInfoService
public class DeviceReportInfoServiceImpl extends ServiceImpl<DeviceReportInfoMapper, DeviceReportInfo> implements IDeviceReportInfoService
{
@Autowired
private DeviceReportInfoMapper deviceReportInfoMapper;

View File

@ -15,6 +15,7 @@ import com.fastbee.iot.domain.DeviceReportInfo;;
import com.fastbee.iot.domain.NgFlowDeviceData;
import com.fastbee.iot.mapper.DeviceReportInfoMapper;
import com.fastbee.iot.mapper.NgFlowDeviceDataMapper;
import com.fastbee.iot.service.IDeviceReportInfoService;
import com.fastbee.iot.service.INgFlowDeviceDataService;
import com.fastbee.iot.zhanlian.ZhanLianConfig;
import lombok.extern.slf4j.Slf4j;
@ -48,6 +49,9 @@ public class NGFlowDeviceDateTask {
@Autowired
private DeviceReportInfoMapper deviceReportInfoMapper;
@Autowired
private IDeviceReportInfoService deviceReportInfoService;
@Autowired
private NgFlowDeviceDataMapper ngFlowDeviceDataMapper;
@ -275,6 +279,34 @@ public class NGFlowDeviceDateTask {
boolean saveBatch = ngFlowDeviceDataService.saveBatch(ngFlowDeviceDataList);
}
/**
* 同步水电双计设备在线状态
*/
public void syncDeviceOnLineStatus(){
List<DeviceReportInfo> list = new LambdaQueryChainWrapper<>(deviceReportInfoMapper).select(DeviceReportInfo::getSerialNumber).list();
//查询设备在线状态
//批量更新在线状态设备列表
List<DeviceReportInfo> batchUpList = new ArrayList<>();
list.forEach(d->{
if(d.getType()==1){
Boolean hassed = stringRedisTemplate.hasKey("neixiang_device_online_status:" + 147 + ":" + d.getSerialNumber());
DeviceReportInfo dev = new DeviceReportInfo();
dev.setSerialNumber(d.getSerialNumber());
if(hassed){
dev.setOnLine(1);
}else{
dev.setOnLine(0);
}
batchUpList.add(dev);
}
});
boolean batch = deviceReportInfoService.updateBatchById(batchUpList);
if(!batch){
log.error("批量同步水电双计设备在线状态失败!");
}
}
public static void main(String[] args) {
NGFlowDeviceDateTask ngFlowDeviceDateTask = new NGFlowDeviceDateTask();
Map<String, String> deviceRealTimeData =ngFlowDeviceDateTask.getDeviceRealTimeData("3834");