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