FeedTimer.java 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. package com.huimv.admin.timer;
  2. import cn.hutool.core.codec.Base64;
  3. import cn.hutool.core.date.DateTime;
  4. import cn.hutool.core.date.DateUtil;
  5. import cn.hutool.core.io.FileUtil;
  6. import cn.hutool.core.util.ObjectUtil;
  7. import cn.hutool.http.HttpRequest;
  8. import cn.hutool.http.HttpUtil;
  9. import cn.hutool.json.JSONUtil;
  10. import com.alibaba.fastjson.JSON;
  11. import com.alibaba.fastjson.JSONArray;
  12. import com.alibaba.fastjson.JSONObject;
  13. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  14. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  15. import com.huimv.admin.common.utils.HttpClientSSLUtils;
  16. import com.huimv.admin.common.utils.NumberUtils;
  17. import com.huimv.admin.common.utils.Result;
  18. import com.huimv.admin.entity.*;
  19. import com.huimv.admin.entity.zengxindto.*;
  20. import com.huimv.admin.mapper.FeedAreaMapper;
  21. import com.huimv.admin.mapper.FeedingDataMapper;
  22. import com.huimv.admin.mapper.FeedingEnvMapper;
  23. import com.huimv.admin.service.*;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.context.annotation.Configuration;
  26. import org.springframework.http.HttpEntity;
  27. import org.springframework.http.HttpHeaders;
  28. import org.springframework.http.HttpMethod;
  29. import org.springframework.http.ResponseEntity;
  30. import org.springframework.scheduling.annotation.EnableScheduling;
  31. import org.springframework.scheduling.annotation.Scheduled;
  32. import org.springframework.transaction.annotation.Transactional;
  33. import org.springframework.web.client.RestTemplate;
  34. import java.text.NumberFormat;
  35. import java.text.SimpleDateFormat;
  36. import java.time.Duration;
  37. import java.time.LocalDateTime;
  38. import java.util.*;
  39. import java.util.concurrent.ThreadLocalRandom;
  40. @Configuration
  41. @EnableScheduling
  42. public class FeedTimer {
  43. @Autowired
  44. private FeedAreaMapper feedAreaMapper;
  45. @Autowired
  46. private FeedingEnvMapper envMapper;
  47. @Autowired
  48. private FeedingDataMapper dataMapper;
  49. @Scheduled(cron = "0 0/11 * * * ? ")
  50. @Transactional
  51. public void getFeed() throws Exception {
  52. QueryWrapper<FeedArea> queryWrapper = new QueryWrapper<>();
  53. queryWrapper.eq("farm_id", 26);
  54. List<FeedArea> feedAreas = feedAreaMapper.selectList(queryWrapper);
  55. Date now = new Date(); // 获取当前时间
  56. long oneHour = 1 * 30 * 1000; // 1小时的毫秒数
  57. Date oneHourAgo = new Date(now.getTime() - oneHour); // 获取1小时前的时间
  58. List<String> time = new ArrayList<>();
  59. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  60. time.add(sdf.format(oneHourAgo));
  61. time.add(sdf.format(new Date()));
  62. for (FeedArea feedArea : feedAreas) {
  63. HashMap<String, String> paramMap = new HashMap<>();
  64. JSONObject jsonObject = new JSONObject();
  65. jsonObject.put("pageNum", "1");
  66. jsonObject.put("pageSize", "20");
  67. jsonObject.put("createTime", time);
  68. jsonObject.put("fdQrcode", "");
  69. jsonObject.put("fenceNum", "");
  70. jsonObject.put("gatewayNo", "");
  71. jsonObject.put("areaId", feedArea.getAreaId());
  72. paramMap.put("Content-Type", "application/json;charset=utf-8");
  73. paramMap.put("AuthorizationF", getToken());
  74. String post = HttpRequest.post("http://xxxxxxxx:xx /feed/api/mqtt/pageQryRealtime").headerMap(paramMap, false).body(jsonObject.toJSONString()).timeout(30 * 1000).execute().body();
  75. JSONObject jsonObject1 = JSONObject.parseObject(post);
  76. Map map = (Map) jsonObject1.get("data");
  77. List<Map<String, String>> list = (List) map.get("records");
  78. for (Map<String, String> stringMap : list) {
  79. FeedingData data = new FeedingData();
  80. data.setFarmId(26);
  81. data.setUnitName(feedArea.getUnitName());
  82. QueryWrapper<FeedingEnv> queryWrapper1 = new QueryWrapper<>();
  83. queryWrapper1.eq("device_code", stringMap.get("fdQrcode"));
  84. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
  85. data.setUploadTime(dateFormat.parse(stringMap.get("createTime")));
  86. data.setBlanking(stringMap.get("zkAlram"));
  87. data.setFoodIntake(stringMap.get("intFdWeight"));
  88. data.setMeals(ThreadLocalRandom.current().nextInt());
  89. dataMapper.insert(data);
  90. }
  91. }
  92. }
  93. public String getToken() {
  94. HashMap<String, String> paramMap = new HashMap<>();
  95. JSONObject jsonObject = new JSONObject();
  96. jsonObject.put("username", "henlu");
  97. jsonObject.put("password", "123456");
  98. paramMap.put("Content-Type", "application/json;charset=utf-8");
  99. String post = HttpRequest.post("http://znsw.zxkj2006.com/feed/api/admin/appLogin").headerMap(paramMap, false).body(jsonObject.toJSONString()).timeout(30 * 1000).execute().body();
  100. System.out.println(post);
  101. JSONObject jsonObject1 = JSONObject.parseObject(post);
  102. System.out.println(jsonObject1);
  103. Map map = (Map) jsonObject1.get("data");
  104. String s = map.get("tokenHead") + " " + map.get("token");
  105. System.out.println(s);
  106. return s;
  107. }
  108. public static void main(String[] args) {
  109. Date now = new Date(); // 获取当前时间
  110. long oneHour = 1 * 30 * 1000; // 1小时的毫秒数
  111. Date oneHourAgo = new Date(now.getTime() - oneHour); // 获取1小时前的时间
  112. List<String> time = new ArrayList<>();
  113. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  114. time.add(sdf.format(oneHourAgo));
  115. time.add(sdf.format(new Date()));
  116. HashMap<String, String> paramMap = new HashMap<>();
  117. JSONObject jsonObject = new JSONObject();
  118. jsonObject.put("pageNum", 1);
  119. jsonObject.put("pageSize", 20);
  120. jsonObject.put("createTime", time);
  121. jsonObject.put("areaId","1017517");
  122. paramMap.put("Content-Type", "application/json;charset=utf-8");
  123. paramMap.put("AuthorizationF","Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJoZW5sdSIsImNyZWF0ZWQiOjE2OTUzNjg1OTE4MjEsImV4cCI6MTY5NTQ1NDk5MX0.63A5FNJD714MVLp2cdH9HLyN25lYtAzsXHysXLEp1eR-FfkQZel6FnuoLfkIoFbgaht1OsEN-2ERabw0Lby7Pg");
  124. String post = HttpRequest.post("http://znsw.zxkj2006.com/feed/api/mqtt/pageQryRealtime").headerMap(paramMap, false).body(jsonObject.toJSONString()).timeout(30 * 1000).execute().body();
  125. JSONObject jsonObject1 = JSONObject.parseObject(post);
  126. Map map = (Map) jsonObject1.get("data");
  127. System.out.println(map);
  128. List<Map<String, String>> list = (List) map.get("records");
  129. System.out.println(list);
  130. // List<String> jsonArray = (ArrayList) map.get("records");
  131. // System.out.println(jsonArray);
  132. }
  133. //饲养器添加
  134. @Scheduled(cron = "0 0/1 * * * ? ")
  135. @Transactional
  136. public void getFeedEnv() throws Exception {
  137. QueryWrapper<FeedArea> queryWrapper = new QueryWrapper<>();
  138. queryWrapper.eq("farm_id", 26);
  139. List<FeedArea> feedAreas = feedAreaMapper.selectList(queryWrapper);
  140. for (FeedArea feedArea : feedAreas) {
  141. HashMap<String, String> paramMap = new HashMap<>();
  142. JSONObject jsonObject = new JSONObject();
  143. jsonObject.put("pageNum", "1");
  144. jsonObject.put("pageSize", "20");
  145. jsonObject.put("areaId", feedArea.getAreaId());
  146. paramMap.put("Content-Type", "application/json;charset=utf-8");
  147. paramMap.put("AuthorizationF", getToken());
  148. String post = HttpRequest.post("http://znsw.zxkj2006.com/feed/api/api/v1/feeder/pageQry").headerMap(paramMap, false).body(jsonObject.toJSONString()).timeout(30 * 1000).execute().body();
  149. JSONObject jsonObject1 = JSONObject.parseObject(post);
  150. Map map = (Map) jsonObject1.get("data");
  151. List<Map<String, String>> list = (List) map.get("records");
  152. for (Map<String, String> stringMap : list) {
  153. QueryWrapper<FeedingEnv> queryWrapper1 = new QueryWrapper<>();
  154. queryWrapper1.eq("farm_id", 26).eq("eartag", stringMap.get("earTag"));
  155. if (ObjectUtil.isEmpty(envMapper.selectOne(queryWrapper1))) {
  156. FeedingEnv feedingEnv = new FeedingEnv();
  157. feedingEnv.setFarmId(26);
  158. feedingEnv.setEartag(stringMap.get("earTag"));
  159. feedingEnv.setDeviceCode(stringMap.get("qrcode"));
  160. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
  161. feedingEnv.setLastTime(dateFormat.parse(stringMap.get("createTime")));
  162. feedingEnv.setDeviceType(Integer.valueOf(stringMap.get("feedStatus")));
  163. envMapper.insert(feedingEnv);
  164. }
  165. }
  166. }
  167. }
  168. }