SavWarning.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package com.huimv.produce.warning.timer;
  2. import cn.hutool.core.date.DateTime;
  3. import cn.hutool.core.date.DateUtil;
  4. import cn.hutool.json.JSONObject;
  5. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  6. import com.huimv.produce.warning.entity.BaseWarningInfo;
  7. import com.huimv.produce.warning.service.IBaseWarningInfoService;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.http.HttpEntity;
  11. import org.springframework.http.HttpHeaders;
  12. import org.springframework.http.HttpMethod;
  13. import org.springframework.http.ResponseEntity;
  14. import org.springframework.scheduling.annotation.Scheduled;
  15. import org.springframework.stereotype.Component;
  16. import org.springframework.web.bind.annotation.GetMapping;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RestController;
  19. import org.springframework.web.client.RestTemplate;
  20. import java.text.ParseException;
  21. import java.text.SimpleDateFormat;
  22. import java.util.Date;
  23. //@RestController
  24. //@RequestMapping(value = "/test")
  25. @Component
  26. public class SavWarning {
  27. private static final String BASE_URL= "https://iot1.bigherdsman.com/api/v2/";
  28. private static final String TOKEN= "72438b180e9168fe90db126e3310cd0b20a7196d";
  29. private static final String HISTORY_LIST= "record/alarm?code=";
  30. private static final String FARM_CODE = "2022011710";
  31. @Autowired
  32. private IBaseWarningInfoService baseWarningInfoService;
  33. // @GetMapping("/test")
  34. @Scheduled(cron = "0 0/10 * * * ? ")
  35. public void saveEggData () throws ParseException {
  36. RestTemplate restTemplate = new RestTemplate();
  37. HttpHeaders headers = new HttpHeaders();
  38. headers.set("Authorization","Token "+TOKEN);
  39. HttpEntity<JSONObject> httpEntity = new HttpEntity<>(headers);
  40. Date date= new Date();
  41. long end = date.getTime();
  42. // DateTime dateTime = DateUtil.offsetMinute(date, -10);
  43. // long start = dateTime.getTime();
  44. long start = DateUtil.offsetMonth(date, -12).getTime();
  45. ResponseEntity<OneWarnig> exchange = restTemplate.exchange(BASE_URL + HISTORY_LIST + FARM_CODE + "&start=" + start + "&end=" + end, HttpMethod.GET, httpEntity, OneWarnig.class);
  46. OneWarnig body = exchange.getBody();
  47. SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  48. System.out.println(body);
  49. for (TwoWarning datum : body.getData()) {
  50. String i = datum.getI();
  51. String startTime = datum.getStart_time();
  52. String endTime = datum.getEnd_time();
  53. if(StringUtils.isNotBlank(startTime)){
  54. BaseWarningInfo baseWarningInfo = new BaseWarningInfo();
  55. baseWarningInfo.setFarmId(1);
  56. baseWarningInfo.setLevel(1);
  57. baseWarningInfo.setLevelName("一级报警");
  58. baseWarningInfo.setUploadTime(new Date());
  59. baseWarningInfo.setWarningTime(new Date(Long.parseLong(datum.getStart_time()+"000")));
  60. //高温报警
  61. if ("a_t_h".equals(datum.getName())){
  62. if (StringUtils.isNotBlank(startTime) && startTime.length() > 5){
  63. baseWarningInfo.setMsg(i+"号舍高温预警,报警时段:"+sf.format(new Date(Long.parseLong(startTime+"000")))+"至"+sf.format(new Date(Long.parseLong(endTime+"000"))));
  64. }
  65. baseWarningInfo.setAlarmType(7);
  66. baseWarningInfo.setWarningName("高温报警");
  67. baseWarningInfoService.save(baseWarningInfo);
  68. }
  69. //低温报警
  70. if ("a_t_l".equals(datum.getName())){
  71. if (StringUtils.isNotBlank(startTime) && startTime.length() > 5){
  72. baseWarningInfo.setMsg(i+"号舍低温预警,报警时段:"+sf.format(new Date(Long.parseLong(startTime+"000")))+"至"+sf.format(new Date(Long.parseLong(endTime+"000"))));
  73. }
  74. baseWarningInfo.setAlarmType(7);
  75. baseWarningInfo.setWarningName("低温报警");
  76. baseWarningInfoService.save(baseWarningInfo);
  77. }
  78. //高湿度
  79. if ("a_h_h".equals(datum.getName())){
  80. if (StringUtils.isNotBlank(startTime) && startTime.length() > 5){
  81. baseWarningInfo.setMsg(i+"号舍高湿度预警,报警时段:"+sf.format(new Date(Long.parseLong(startTime+"000")))+"至"+sf.format(new Date(Long.parseLong(endTime+"000"))));
  82. }
  83. baseWarningInfo.setAlarmType(7);
  84. baseWarningInfo.setWarningName("高湿度报警");
  85. baseWarningInfoService.save(baseWarningInfo);
  86. }
  87. //低湿度
  88. if ("a_h_l".equals(datum.getName())){
  89. if (StringUtils.isNotBlank(startTime) && startTime.length() > 5){
  90. baseWarningInfo.setMsg(i+"号舍低湿度预警,报警时段:"+sf.format(new Date(Long.parseLong(startTime+"000")))+"至"+sf.format(new Date(Long.parseLong(endTime+"000"))));
  91. }
  92. baseWarningInfo.setAlarmType(7);
  93. baseWarningInfo.setWarningName("低湿度报警");
  94. baseWarningInfoService.save(baseWarningInfo);
  95. }
  96. }
  97. }
  98. }
  99. public static void main(String[] args) {
  100. SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  101. String str = "1656737608";
  102. System.out.println(sf.format(new Date(Long.parseLong(str))));
  103. }
  104. }