|
@@ -0,0 +1,90 @@
|
|
|
+package com.huimv.env.admin.timer;
|
|
|
+
|
|
|
+import cn.hutool.http.HttpRequest;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.huimv.env.common.entity.EnergyElectricity;
|
|
|
+import com.huimv.env.common.entity.EnergyEnvDevice;
|
|
|
+import com.huimv.env.common.entity.EnergyWater;
|
|
|
+import com.huimv.env.common.mapper.EnergyElectricityMapper;
|
|
|
+import com.huimv.env.common.mapper.EnergyEnvDeviceMapper;
|
|
|
+import com.huimv.env.common.mapper.EnergyWaterMapper;
|
|
|
+import com.huimv.env.common.service.IEnergyElectricityService;
|
|
|
+import com.huimv.env.common.service.IEnergyWaterService;
|
|
|
+import com.mysql.cj.xdevapi.JsonArray;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.context.annotation.Configuration;
|
|
|
+import org.springframework.http.HttpEntity;
|
|
|
+import org.springframework.http.HttpHeaders;
|
|
|
+import org.springframework.http.MediaType;
|
|
|
+import org.springframework.scheduling.annotation.EnableScheduling;
|
|
|
+import org.springframework.scheduling.annotation.Scheduled;
|
|
|
+import org.springframework.web.client.RestTemplate;
|
|
|
+
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+@Configuration
|
|
|
+@EnableScheduling
|
|
|
+public class WaterAndElectricity {
|
|
|
+ @Autowired
|
|
|
+ private EnergyWaterMapper waterMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private EnergyElectricityMapper electricityMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private EnergyEnvDeviceMapper envDeviceMapper;
|
|
|
+
|
|
|
+
|
|
|
+ @Scheduled(cron = "0 0/20 * * * ? ")
|
|
|
+ private void sendDate() throws Exception {
|
|
|
+ QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("farm_id", 26);
|
|
|
+ List<EnergyEnvDevice> devices = envDeviceMapper.selectList(queryWrapper);
|
|
|
+ Date date = new Date();//获取当前时间
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(date);
|
|
|
+ calendar.add(Calendar.MINUTE, -20);// 20分钟前
|
|
|
+ //获取到完整的时间
|
|
|
+ SimpleDateFormat sdf= new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
+
|
|
|
+ for (EnergyEnvDevice device : devices) {
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ if (device.getDeviceType() == 3) {
|
|
|
+ //电
|
|
|
+ QueryWrapper<EnergyElectricity> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("farm_id", 26).eq("chip_code", device.getDeviceCode());
|
|
|
+ queryWrapper1.between("upload_date", sdf.format(calendar.getTime()), sdf.format(date));
|
|
|
+ queryWrapper1.select(" IFNULL(SUM(electricity_value),0) electricityValue");
|
|
|
+ EnergyElectricity electricity = electricityMapper.selectOne(queryWrapper1);
|
|
|
+ jsonObject.put("electricity", electricity.getElectricityValue());
|
|
|
+ jsonObject.put("water", 0);
|
|
|
+ } else {
|
|
|
+ //水
|
|
|
+ QueryWrapper<EnergyWater> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("farm_id", 26).eq("chip_code", device.getDeviceCode());
|
|
|
+ queryWrapper1.between("upload_date", sdf.format(calendar.getTime()), sdf.format(date));
|
|
|
+ queryWrapper1.select(" IFNULL(SUM(water_value),0) waterValue");
|
|
|
+ EnergyWater water = waterMapper.selectOne(queryWrapper1);
|
|
|
+ jsonObject.put("water", water.getWaterValue());
|
|
|
+ jsonObject.put("electricity", 0);
|
|
|
+ }
|
|
|
+ jsonObject.put("deviceCode", device.getDeviceCode());
|
|
|
+ jsonObject.put("time", sdf.format(date));
|
|
|
+ jsonArray.add(jsonObject);
|
|
|
+ }
|
|
|
+
|
|
|
+ RestTemplate restTemplate = new RestTemplate();
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
+
|
|
|
+ HttpEntity<JSONArray> httpEntity = new HttpEntity<>(jsonArray, headers);
|
|
|
+
|
|
|
+ String url = "https://huatong.ifarmcloud.com/huatongApi/energy-data/getData";
|
|
|
+ String responseBody = restTemplate.postForObject(url, httpEntity, String.class);
|
|
|
+ System.out.println(responseBody);
|
|
|
+ }
|
|
|
+}
|