温湿度抄表优化在线状态

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;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
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.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.*;
@Slf4j
@Service
@ -231,29 +230,53 @@ public class HumidDeviceServiceImpl extends ServiceImpl<HumidDeviceMapper, Humid
Integer limit = dataObj.getInt("rows");
Integer page = dataObj.getInt("page");
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();
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.setSn(sn);
dh.setStatus(status);
dh.setElectricity(electricity);
dh.setTemperature(temperature);
dh.setHumidity(humidity);
dh.setReportingTime(reportingTime);
baseMapper.updateValue(dh);
dh.setSn(humidDevice.getSn());
dh.setStatus("1");
dh.setElectricity("0");
dh.setTemperature("0");
dh.setHumidity("0");
dh.setReportingTime(DateUtil.now());
dh.setOptType("read");
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(sysUser!=null){
dh.setOptBy(sysUser.getUsername());
}
baseMapper.insertLog(dh);
baseMapper.updateValue(dh);
}
if((page+1)*limit<count){
Map<String, Object> params = getParmas(page+1,limit,humidDevice);
@ -344,7 +367,8 @@ public class HumidDeviceServiceImpl extends ServiceImpl<HumidDeviceMapper, Humid
if(deviceParameters!=null){
return Result.OK(deviceParameters);
}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)){
JSONObject dataObj = jsonObject.getJSONObject("data");
JSONArray dataArr = dataObj.getJSONArray("dataList");
for(int i=0;i<dataArr.size();i++){
JSONObject json = (JSONObject)dataArr.get(i);
String sn = json.getStr("sn");
String deviceName = json.getStr("deviceName");
String deviceTypes = json.getStr("deviceTypes");
String reportingInterval = json.getStr("reportingInterval");
String recordInterval = json.getStr("recordInterval");
String historyReportTime = json.getStr("historyReportTime");
String historyInterval = json.getStr("historyInterval");
String temperatureHigh = json.getStr("temperatureHigh");
String temperatureLow = json.getStr("temperatureLow");
String temperatureBuffer = json.getStr("temperatureBuffer");
String humidityHigh = json.getStr("humidityHigh");
String humidityLow = json.getStr("humidityLow");
String humidityBuffer = json.getStr("humidityBuffer");
String timeCode = json.getStr("timeCode");
String isOutages = json.getStr("isOutages");
String isLowBattery = json.getStr("isLowBattery");
String isOnline = json.getStr("isOnline");
if(dataArr.size()>0){
for(int i=0;i<dataArr.size();i++){
JSONObject json = (JSONObject)dataArr.get(i);
String sn = json.getStr("sn");
String deviceName = json.getStr("deviceName");
String deviceTypes = json.getStr("deviceTypes");
String reportingInterval = json.getStr("reportingInterval");
String recordInterval = json.getStr("recordInterval");
String historyReportTime = json.getStr("historyReportTime");
String historyInterval = json.getStr("historyInterval");
String temperatureHigh = json.getStr("temperatureHigh");
String temperatureLow = json.getStr("temperatureLow");
String temperatureBuffer = json.getStr("temperatureBuffer");
String humidityHigh = json.getStr("humidityHigh");
String humidityLow = json.getStr("humidityLow");
String humidityBuffer = json.getStr("humidityBuffer");
String timeCode = json.getStr("timeCode");
String isOutages = json.getStr("isOutages");
String isLowBattery = json.getStr("isLowBattery");
String isOnline = json.getStr("isOnline");
dh.setSn(sn);
dh.setDeviceName(deviceName);
dh.setDeviceTypes(deviceTypes);
dh.setReportingInterval(reportingInterval);
dh.setRecordInterval(recordInterval);
dh.setHistoryReportTime(historyReportTime);
dh.setHistoryInterval(historyInterval);
dh.setTemperatureHigh(temperatureHigh);
dh.setTemperatureLow(temperatureLow);
dh.setTemperatureBuffer(temperatureBuffer);
dh.setHumidityHigh(humidityHigh);
dh.setHumidityLow(humidityLow);
dh.setHumidityBuffer(humidityBuffer);
dh.setTimeCode(timeCode);
dh.setIzOutages(isOutages);
dh.setIzLowBattery(isLowBattery);
dh.setIzOnline(isOnline);
break;
dh.setSn(sn);
dh.setDeviceName(deviceName);
dh.setDeviceTypes(deviceTypes);
dh.setReportingInterval(reportingInterval);
dh.setRecordInterval(recordInterval);
dh.setHistoryReportTime(historyReportTime);
dh.setHistoryInterval(historyInterval);
dh.setTemperatureHigh(temperatureHigh);
dh.setTemperatureLow(temperatureLow);
dh.setTemperatureBuffer(temperatureBuffer);
dh.setHumidityHigh(humidityHigh);
dh.setHumidityLow(humidityLow);
dh.setHumidityBuffer(humidityBuffer);
dh.setTimeCode(timeCode);
dh.setIzOutages(isOutages);
dh.setIzLowBattery(isLowBattery);
dh.setIzOnline(isOnline);
break;
}
}else{
return null;
}
}else{
return null;