Browse Source

水电表平台修改3

wwh 1 year ago
parent
commit
72a8975a6e

+ 90 - 0
huimv-env-admin/src/main/java/com/huimv/env/admin/timer/WaterAndElectricity.java

@@ -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);
+    }
+}