温湿度抄表优化在线状态

This commit is contained in:
曹磊 2025-06-26 17:39:22 +08:00
parent 5439480a39
commit 8315c0b3d5
1 changed files with 85 additions and 57 deletions

View File

@ -1,5 +1,6 @@
package com.nu.modules.yiweilian.humid.service.impl; package com.nu.modules.yiweilian.humid.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONArray; import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
@ -25,9 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.HashMap; import java.util.*;
import java.util.Map;
import java.util.UUID;
@Slf4j @Slf4j
@Service @Service
@ -231,29 +230,53 @@ public class HumidDeviceServiceImpl extends ServiceImpl<HumidDeviceMapper, Humid
Integer limit = dataObj.getInt("rows"); Integer limit = dataObj.getInt("rows");
Integer page = dataObj.getInt("page"); Integer page = dataObj.getInt("page");
JSONArray dataArr = dataObj.getJSONArray("dataList"); JSONArray dataArr = dataObj.getJSONArray("dataList");
for(int i=0;i<dataArr.size();i++){ if(dataArr.size()>0){
for(int i=0;i<dataArr.size();i++){
HumidDevice dh = new HumidDevice();
JSONObject json = (JSONObject)dataArr.get(i);
String sn = json.getStr("sn");
String status = json.getStr("status");
String electricity = json.getStr("electricity");
String temperature = json.getStr("temperature");
String humidity = json.getStr("humidity");
String reportingTime = json.getStr("date");
dh.setStatus(status);
Date reportingDate = DateUtil.parse(reportingTime,"yyyy-MM-dd HH:mm:ss");
Calendar ca = Calendar.getInstance();
ca.add(Calendar.MINUTE,-5);
Date currentDate = ca.getTime();
if(reportingDate.getTime()<=currentDate.getTime()){
dh.setStatus("1");
}
dh.setSn(sn);
dh.setElectricity(electricity);
dh.setTemperature(temperature);
dh.setHumidity(humidity);
dh.setReportingTime(reportingTime);
baseMapper.updateValue(dh);
dh.setOptType("read");
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(sysUser!=null){
dh.setOptBy(sysUser.getUsername());
}
baseMapper.insertLog(dh);
}
}else{
errorMsg += humidDevice.getSn()+"温湿度设备丢失,请联系管理员";
HumidDevice dh = new HumidDevice(); HumidDevice dh = new HumidDevice();
JSONObject json = (JSONObject)dataArr.get(i); dh.setSn(humidDevice.getSn());
String sn = json.getStr("sn"); dh.setStatus("1");
String status = json.getStr("status"); dh.setElectricity("0");
String electricity = json.getStr("electricity"); dh.setTemperature("0");
String temperature = json.getStr("temperature"); dh.setHumidity("0");
String humidity = json.getStr("humidity"); dh.setReportingTime(DateUtil.now());
String reportingTime = json.getStr("date");
dh.setSn(sn);
dh.setStatus(status);
dh.setElectricity(electricity);
dh.setTemperature(temperature);
dh.setHumidity(humidity);
dh.setReportingTime(reportingTime);
baseMapper.updateValue(dh);
dh.setOptType("read"); dh.setOptType("read");
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(sysUser!=null){ if(sysUser!=null){
dh.setOptBy(sysUser.getUsername()); dh.setOptBy(sysUser.getUsername());
} }
baseMapper.insertLog(dh); baseMapper.insertLog(dh);
baseMapper.updateValue(dh);
} }
if((page+1)*limit<count){ if((page+1)*limit<count){
Map<String, Object> params = getParmas(page+1,limit,humidDevice); Map<String, Object> params = getParmas(page+1,limit,humidDevice);
@ -344,7 +367,8 @@ public class HumidDeviceServiceImpl extends ServiceImpl<HumidDeviceMapper, Humid
if(deviceParameters!=null){ if(deviceParameters!=null){
return Result.OK(deviceParameters); return Result.OK(deviceParameters);
}else{ }else{
return Result.error("获取设备配置参数错误"); return Result.error("温湿度设备丢失获取配置错误,请联系管理员");
// return Result.error("获取设备配置参数错误");
} }
} }
@ -361,44 +385,48 @@ public class HumidDeviceServiceImpl extends ServiceImpl<HumidDeviceMapper, Humid
if(responseCode.equals(0)){ if(responseCode.equals(0)){
JSONObject dataObj = jsonObject.getJSONObject("data"); JSONObject dataObj = jsonObject.getJSONObject("data");
JSONArray dataArr = dataObj.getJSONArray("dataList"); JSONArray dataArr = dataObj.getJSONArray("dataList");
for(int i=0;i<dataArr.size();i++){ if(dataArr.size()>0){
JSONObject json = (JSONObject)dataArr.get(i); for(int i=0;i<dataArr.size();i++){
String sn = json.getStr("sn"); JSONObject json = (JSONObject)dataArr.get(i);
String deviceName = json.getStr("deviceName"); String sn = json.getStr("sn");
String deviceTypes = json.getStr("deviceTypes"); String deviceName = json.getStr("deviceName");
String reportingInterval = json.getStr("reportingInterval"); String deviceTypes = json.getStr("deviceTypes");
String recordInterval = json.getStr("recordInterval"); String reportingInterval = json.getStr("reportingInterval");
String historyReportTime = json.getStr("historyReportTime"); String recordInterval = json.getStr("recordInterval");
String historyInterval = json.getStr("historyInterval"); String historyReportTime = json.getStr("historyReportTime");
String temperatureHigh = json.getStr("temperatureHigh"); String historyInterval = json.getStr("historyInterval");
String temperatureLow = json.getStr("temperatureLow"); String temperatureHigh = json.getStr("temperatureHigh");
String temperatureBuffer = json.getStr("temperatureBuffer"); String temperatureLow = json.getStr("temperatureLow");
String humidityHigh = json.getStr("humidityHigh"); String temperatureBuffer = json.getStr("temperatureBuffer");
String humidityLow = json.getStr("humidityLow"); String humidityHigh = json.getStr("humidityHigh");
String humidityBuffer = json.getStr("humidityBuffer"); String humidityLow = json.getStr("humidityLow");
String timeCode = json.getStr("timeCode"); String humidityBuffer = json.getStr("humidityBuffer");
String isOutages = json.getStr("isOutages"); String timeCode = json.getStr("timeCode");
String isLowBattery = json.getStr("isLowBattery"); String isOutages = json.getStr("isOutages");
String isOnline = json.getStr("isOnline"); String isLowBattery = json.getStr("isLowBattery");
String isOnline = json.getStr("isOnline");
dh.setSn(sn); dh.setSn(sn);
dh.setDeviceName(deviceName); dh.setDeviceName(deviceName);
dh.setDeviceTypes(deviceTypes); dh.setDeviceTypes(deviceTypes);
dh.setReportingInterval(reportingInterval); dh.setReportingInterval(reportingInterval);
dh.setRecordInterval(recordInterval); dh.setRecordInterval(recordInterval);
dh.setHistoryReportTime(historyReportTime); dh.setHistoryReportTime(historyReportTime);
dh.setHistoryInterval(historyInterval); dh.setHistoryInterval(historyInterval);
dh.setTemperatureHigh(temperatureHigh); dh.setTemperatureHigh(temperatureHigh);
dh.setTemperatureLow(temperatureLow); dh.setTemperatureLow(temperatureLow);
dh.setTemperatureBuffer(temperatureBuffer); dh.setTemperatureBuffer(temperatureBuffer);
dh.setHumidityHigh(humidityHigh); dh.setHumidityHigh(humidityHigh);
dh.setHumidityLow(humidityLow); dh.setHumidityLow(humidityLow);
dh.setHumidityBuffer(humidityBuffer); dh.setHumidityBuffer(humidityBuffer);
dh.setTimeCode(timeCode); dh.setTimeCode(timeCode);
dh.setIzOutages(isOutages); dh.setIzOutages(isOutages);
dh.setIzLowBattery(isLowBattery); dh.setIzLowBattery(isLowBattery);
dh.setIzOnline(isOnline); dh.setIzOnline(isOnline);
break; break;
}
}else{
return null;
} }
}else{ }else{
return null; return null;