添加水电双计设备历史数据保存逻辑,同步在线状态定时任务
This commit is contained in:
@ -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>
|
||||
{
|
||||
/**
|
||||
* 查询设备上电审核前上报的基础信息
|
||||
|
@ -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;
|
||||
|
@ -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");
|
||||
|
Reference in New Issue
Block a user