|
@@ -2,24 +2,22 @@ package com.huimv.admin.timer;
|
|
|
|
|
|
|
|
|
import cn.hutool.core.codec.Base64;
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.huimv.admin.common.utils.HttpClientSSLUtils;
|
|
|
-import com.huimv.admin.entity.EnvData;
|
|
|
-import com.huimv.admin.entity.EnvDevice;
|
|
|
-import com.huimv.admin.entity.EnvWarningInfo;
|
|
|
-import com.huimv.admin.entity.EnvWarningThreshold;
|
|
|
+import com.huimv.admin.common.utils.Result;
|
|
|
+import com.huimv.admin.entity.*;
|
|
|
import com.huimv.admin.entity.zengxindto.LoginOnlyDto;
|
|
|
import com.huimv.admin.entity.zengxindto.LonginOnlyDtoToken;
|
|
|
import com.huimv.admin.entity.zengxindto.ShackDatasDto;
|
|
|
import com.huimv.admin.entity.zengxindto.ShackDatasSensor;
|
|
|
-import com.huimv.admin.service.IEnvDataService;
|
|
|
-import com.huimv.admin.service.IEnvDeviceService;
|
|
|
-import com.huimv.admin.service.IEnvWarningInfoService;
|
|
|
-import com.huimv.admin.service.IEnvWarningThresholdService;
|
|
|
+import com.huimv.admin.service.*;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
import org.springframework.http.HttpEntity;
|
|
@@ -31,6 +29,8 @@ import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.text.NumberFormat;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
@@ -44,6 +44,10 @@ public class EnvTimer {
|
|
|
private RestTemplate restTemplate;
|
|
|
@Autowired
|
|
|
private IEnvDeviceService envDeviceService;
|
|
|
+ @Autowired
|
|
|
+ private IEnvDeviceOnlineService envDeviceOnlineService;
|
|
|
+ @Autowired
|
|
|
+ private IFarmService farmService;
|
|
|
|
|
|
@Autowired
|
|
|
private IEnvDataService envDataService;
|
|
@@ -215,4 +219,51 @@ public class EnvTimer {
|
|
|
return Base64.encode(token.getUserId() + "_" + token.getToken());
|
|
|
}
|
|
|
|
|
|
+ @Scheduled(cron = "0 0 0 * * ? ")
|
|
|
+ private void update(HttpServletRequest httpServletRequest) throws Exception {
|
|
|
+ Date date = new Date();
|
|
|
+ DateTime beginOfMonth = DateUtil.beginOfMonth(date);
|
|
|
+ List<Farm> list = farmService.list();
|
|
|
+ for (Farm farm : list) {
|
|
|
+ Integer farmId = farm.getId();
|
|
|
+ QueryWrapper<EnvDevice> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("farm_id", farmId);
|
|
|
+ Integer count = envDeviceService.count(queryWrapper);
|
|
|
+ QueryWrapper<EnvDevice> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("device_status", 1);
|
|
|
+ Integer count1 = envDeviceService.count(queryWrapper1);
|
|
|
+ Integer OffDeviceCount = count- count1;
|
|
|
+ //创建一个数值格式化对象
|
|
|
+ NumberFormat numberFormat = NumberFormat.getInstance();
|
|
|
+ //设置精确到小数点后两位
|
|
|
+ numberFormat.setMaximumFractionDigits(2);
|
|
|
+ String onDeviceRate = numberFormat.format((float)count1 / (float) count* 100) + "%";
|
|
|
+
|
|
|
+ EnvDeviceOnline envDeviceOnline = envDeviceOnlineService.getOne(new QueryWrapper<EnvDeviceOnline>().eq("farm_id", farmId).ge("creat_time", beginOfMonth));
|
|
|
+ if (ObjectUtil.isEmpty(envDeviceOnline)){
|
|
|
+ envDeviceOnline = new EnvDeviceOnline();
|
|
|
+ envDeviceOnline.setCreatTime(date);
|
|
|
+ envDeviceOnline.setDeviceOff(OffDeviceCount);
|
|
|
+ envDeviceOnline.setDeviceOn(count1);
|
|
|
+ envDeviceOnline.setFarmId(farmId+"");
|
|
|
+ envDeviceOnline.setOnlineRate(onDeviceRate);
|
|
|
+ envDeviceOnline.setNowMonth(beginOfMonth.month());
|
|
|
+ envDeviceOnline.setNowYear(beginOfMonth.year());
|
|
|
+ envDeviceOnlineService.save(envDeviceOnline);
|
|
|
+ }else {
|
|
|
+ envDeviceOnline = new EnvDeviceOnline();
|
|
|
+ envDeviceOnline.setCreatTime(date);
|
|
|
+ envDeviceOnline.setDeviceOff(OffDeviceCount);
|
|
|
+ envDeviceOnline.setDeviceOn(count1);
|
|
|
+ envDeviceOnline.setFarmId(farmId+"");
|
|
|
+ envDeviceOnline.setOnlineRate(onDeviceRate);
|
|
|
+ envDeviceOnline.setNowMonth(beginOfMonth.month());
|
|
|
+ envDeviceOnline.setNowYear(beginOfMonth.year());
|
|
|
+ envDeviceOnlineService.updateById(envDeviceOnline);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|