添加水电双计设备历史数据保存逻辑,同步在线状态定时任务
This commit is contained in:
parent
f8dc8d154f
commit
24344e870a
@ -123,6 +123,11 @@ public class DeviceOtherMsgConsumer {
|
||||
//获取流量计累计用水量/瞬时流量
|
||||
Float meterSum = data1.getFloat("meterSum");
|
||||
Float meterIns = data1.getFloat("meterIns");
|
||||
|
||||
//获取瞬时功率/累计电量
|
||||
Float insPower = data1.getFloat("insPower");
|
||||
Float sumEle = data1.getFloat("sumEle");
|
||||
|
||||
//获取设备当前运行状态
|
||||
Integer valveState = data1.getInt("valveState");
|
||||
|
||||
@ -158,6 +163,22 @@ public class DeviceOtherMsgConsumer {
|
||||
}
|
||||
//同步数据
|
||||
up.update();
|
||||
//保存历史数据
|
||||
NgWaterPumpUsageRecords historyData = new NgWaterPumpUsageRecords();
|
||||
//瞬时流量
|
||||
historyData.setInsFlow(String.valueOf(meterIns));
|
||||
//累计流量
|
||||
historyData.setSumFlow(String.valueOf(meterSum));
|
||||
//瞬时功率
|
||||
historyData.setInsPower(String.valueOf(insPower));
|
||||
//累计用电量
|
||||
historyData.setSumEle(String.valueOf(sumEle));
|
||||
//实时时间
|
||||
historyData.setRealTime(DateUtils.getNowDate());
|
||||
int i = ngWaterPumpUsageRecordsMapper.insertNgWaterPumpUsageRecords(historyData);
|
||||
if(i<1){
|
||||
log.error("保存灌溉控制器历史数据失败");
|
||||
}
|
||||
}
|
||||
//收到关阀时定时报文
|
||||
else if(JSONUtil.parseObj(data1).get("action").equals("safeMsg")){
|
||||
@ -174,6 +195,9 @@ public class DeviceOtherMsgConsumer {
|
||||
//获取流量计累计用水量/瞬时流量
|
||||
Float meterSum = data1.getFloat("meterSum");
|
||||
Float meterIns = data1.getFloat("meterIns");
|
||||
//获取瞬时功率/累计电量
|
||||
Float insPower = data1.getFloat("insPower");
|
||||
Float sumEle = data1.getFloat("sumEle");
|
||||
//获取设备当前运行状态
|
||||
Integer valveState = data1.getInt("valveState");
|
||||
|
||||
@ -209,6 +233,22 @@ public class DeviceOtherMsgConsumer {
|
||||
}
|
||||
//同步数据
|
||||
up.update();
|
||||
//保存历史数据
|
||||
NgWaterPumpUsageRecords historyData = new NgWaterPumpUsageRecords();
|
||||
//瞬时流量
|
||||
historyData.setInsFlow(String.valueOf(meterIns));
|
||||
//累计流量
|
||||
historyData.setSumFlow(String.valueOf(meterSum));
|
||||
//瞬时功率
|
||||
historyData.setInsPower(String.valueOf(insPower));
|
||||
//累计用电量
|
||||
historyData.setSumEle(String.valueOf(sumEle));
|
||||
//实时时间
|
||||
historyData.setRealTime(DateUtils.getNowDate());
|
||||
int i = ngWaterPumpUsageRecordsMapper.insertNgWaterPumpUsageRecords(historyData);
|
||||
if(i<1){
|
||||
log.error("保存灌溉控制器历史数据失败");
|
||||
}
|
||||
|
||||
}
|
||||
//开阀门,关阀门
|
||||
@ -377,13 +417,7 @@ public class DeviceOtherMsgConsumer {
|
||||
}catch (Exception e){
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
deviceCmdAckHandler(new String(data));
|
||||
updateDeviceOnlineStatus( productId,serialNumber);
|
||||
// updateDeviceOnlineStatusDb(serialNumber);
|
||||
|
@ -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");
|
||||
|
Loading…
x
Reference in New Issue
Block a user