Browse Source

创建项目

523096025 8 tháng trước cách đây
mục cha
commit
4ba07f9d94

+ 5 - 1
musk/src/main/java/com/huimv/farm/musk/entity/DevEnergy.java

@@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -28,7 +31,8 @@ public class DevEnergy implements Serializable {
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
-    private LocalDateTime dateTime;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date dateTime;
 
     private String water;
 

+ 5 - 1
musk/src/main/java/com/huimv/farm/musk/entity/DevEnv.java

@@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -31,7 +34,8 @@ public class DevEnv implements Serializable {
     /**
      * 时间
      */
-    private LocalDateTime dateTime;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date dateTime;
 
     /**
      * 温度

+ 5 - 1
musk/src/main/java/com/huimv/farm/musk/entity/DevWarning.java

@@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -31,7 +34,8 @@ public class DevWarning implements Serializable {
     /**
      * 创建时间
      */
-    private LocalDateTime createTime;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createTime;
 
     /**
      * 内容

+ 116 - 11
musk/src/main/java/com/huimv/farm/musk/timer/DevTimer.java

@@ -1,16 +1,17 @@
 package com.huimv.farm.musk.timer;
 
-import com.huimv.farm.musk.entity.BaseBuilding;
-import com.huimv.farm.musk.entity.DevEnergy;
-import com.huimv.farm.musk.entity.DevEnv;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.farm.musk.common.utils.NumberUtils;
+import com.huimv.farm.musk.entity.*;
 import com.huimv.farm.musk.entity.vo.WeatherVo;
-import com.huimv.farm.musk.service.IBaseBuildingService;
+import com.huimv.farm.musk.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
 
+import java.util.Date;
 import java.util.List;
 
 @Component
@@ -20,28 +21,132 @@ public class DevTimer {
     @Autowired
     private IBaseBuildingService baseBuildingService;
 
-//    @Autowired
-//    private  RestTemplate restTemplate;
+    @Autowired
+    private IDevEnvService iDevEnvService;
+
+    @Autowired
+    private IDevEnergyService iDevEnergyService;
+
+    @Autowired
+    private IDevThresholdService thresholdService;
+
+    @Autowired
+    private IDevWarningService warningService;
+
+
     @Scheduled(cron = "0 0 * * * ?")
     private void saveDevEnv(){
         List<BaseBuilding> listUnit  = baseBuildingService.listUnit();
-        DevEnv devEnv = new DevEnv();
-        DevEnergy devEnergy = new DevEnergy();
         WeatherVo weatherVo = getWeater("杭州");
-        String humidity = weatherVo.getHumidity().replace("%","");
-        String tem = weatherVo.getTem();
+        Integer humidity = Integer.parseInt(weatherVo.getHumidity().replace("%",""));
+        Integer temp =    (int) Double.parseDouble(weatherVo.getTem());
+        DevThreshold byId = thresholdService.getById(1);
+        Date date = new Date();
         for (BaseBuilding baseBuilding : listUnit) {
+            DevEnv devEnv = new DevEnv();
+            DevEnergy devEnergy = new DevEnergy();
+            String hum  =  NumberUtils.getNum(humidity -5, humidity +5, 0);
+            String tem  =  NumberUtils.getNum(temp -1, temp +2, 1);
+            String elec = NumberUtils.getNum(100, 200, 0);
+            String water = NumberUtils.getNum(5, 15, 0);
 
+            devEnv.setHumi(hum);
+            devEnv.setTem(tem);
+            devEnv.setDateTime(date);
+            devEnv.setFarmId(baseBuilding.getFarmId());
+            devEnv.setGas("0");
+            devEnv.setUnitId(baseBuilding.getId());
+            devEnv.setUnitName(baseBuilding.getBuildName());
+            iDevEnvService.save(devEnv);
 
+            devEnergy.setDateTime(date);
+            devEnergy.setElec(elec);
+            devEnergy.setFarmId(baseBuilding.getFarmId());
+            devEnergy.setUnitId(baseBuilding.getId());
+            devEnergy.setUnitName(baseBuilding.getBuildName());
+            devEnergy.setWater(water);
+            iDevEnergyService.save(devEnergy);
+
+            saveWaning(hum,tem,elec,water,baseBuilding,byId,date);
         }
 
     }
 
+    private void saveWaning(String hum, String tem, String elec, String water, BaseBuilding baseBuilding, DevThreshold byId, Date date) {
+        String humDown = byId.getHumDown();
+        String humUpper = byId.getHumUpper();
+
+        String tempDown = byId.getTempDown();
+        String tempUpper = byId.getTempUpper();
+
+        String elecDown = byId.getElecDown();
+        String elecUpper = byId.getElecUpper();
+
+        String waterDown = byId.getWaterDown();
+        String waterUpper = byId.getWaterUpper();
+
+        DevWarning devWarning = new DevWarning();
+        devWarning.setCreateTime(date);
+        devWarning.setUnitId(baseBuilding.getId());
+        devWarning.setUnitName(baseBuilding.getBuildName());
+        devWarning.setFarmId(baseBuilding.getFarmId());
+        if (Integer.parseInt(hum )< Integer.parseInt(humDown)){
+            devWarning.setWarningType(3);
+            devWarning.setContent(baseBuilding.getBuildName() +"出现低湿");
+            warningService.save(devWarning);
+        }
+        if (Integer.parseInt(hum )> Integer.parseInt(humUpper)){
+            devWarning.setWarningType(2);
+            devWarning.setContent(baseBuilding.getBuildName() +"出现高湿");
+            warningService.save(devWarning);
+        }
+
+        if (Integer.parseInt(tem )< Integer.parseInt(tempDown)){
+            devWarning.setWarningType(1);
+            devWarning.setContent(baseBuilding.getBuildName() +"出现低温预警");
+            warningService.save(devWarning);
+        }
+        if (Integer.parseInt(tem )> Integer.parseInt(tempUpper)){
+            devWarning.setWarningType(0);
+            devWarning.setContent(baseBuilding.getBuildName() +"出现高温预警");
+            warningService.save(devWarning);
+        }
+
+        if (Integer.parseInt(elec )< Integer.parseInt(elecDown)){
+            devWarning.setWarningType(9);
+            devWarning.setContent(baseBuilding.getBuildName() +"出现低电量预警");
+            warningService.save(devWarning);
+        }
+        if (Integer.parseInt(elec )> Integer.parseInt(elecUpper)){
+            devWarning.setWarningType(8);
+            devWarning.setContent(baseBuilding.getBuildName() +"出现高电量预警");
+            warningService.save(devWarning);
+        }
+
+        if (Integer.parseInt(water )< Integer.parseInt(waterDown)){
+            devWarning.setWarningType(7);
+            devWarning.setContent(baseBuilding.getBuildName() +"出现低水量预警");
+            warningService.save(devWarning);
+        }
+        if (Integer.parseInt(water )> Integer.parseInt(waterUpper)){
+            devWarning.setWarningType(6);
+            devWarning.setContent(baseBuilding.getBuildName() +"出现高水量预警");
+            warningService.save(devWarning);
+        }
+
+
+    }
+
+    public static void main(String[] args) {
+        String str = "1.5";
+        System.out.println(NumberUtils.getNum(8000, 20001, 1));
+
+    }
+
 
 
     private static   WeatherVo getWeater(String city){
         RestTemplate restTemplate = new RestTemplate();
-
         return   restTemplate.getForObject("http://v1.yiketianqi.com/api?unescape=1&appid=59521471&appsecret=HnCqt3I6&version=v61&city="+city, WeatherVo.class);
     }