ScheduledService.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package com.szwl.controller;
  2. import com.szwl.mapper.TLocationCheckMapper;
  3. import com.szwl.model.entity.TLocationCheck;
  4. import com.szwl.service.*;
  5. import com.szwl.service.es.EsTCoinOrderService;
  6. import com.szwl.service.es.EsTOrderService;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.context.annotation.Configuration;
  9. import org.springframework.scheduling.annotation.EnableScheduling;
  10. import org.springframework.scheduling.annotation.Scheduled;
  11. import org.springframework.stereotype.Component;
  12. import javax.annotation.Resource;
  13. import java.io.IOException;
  14. import java.net.InetAddress;
  15. import java.net.UnknownHostException;
  16. import java.util.Calendar;
  17. import java.util.List;
  18. @Configuration //1.主要用于标记配置类,兼备Component的效果。
  19. @Component
  20. @EnableScheduling // 2.开启定时任务
  21. public class ScheduledService {
  22. @Autowired
  23. private TDepartmentService tDepartmentService;
  24. @Autowired
  25. EsTCoinOrderService esTCoinOrderService;
  26. @Autowired
  27. EsTOrderService esTOrderService;
  28. @Autowired
  29. THotUpdateService hotUpdateService;
  30. @Autowired
  31. TEquipmentService equipmentService;
  32. @Resource
  33. TLocationCheckMapper locationCheckMapper;
  34. @Resource
  35. TLocationCheckService locationCheckService;
  36. @Resource
  37. TWechatService wechatService;
  38. // 每周二上午8点10分去校验设备位置
  39. @Scheduled(cron = "0 10 8 ? * TUE")
  40. public void equipmentLocCheck() throws IOException {
  41. if (isDo()) {
  42. // List<TLocationCheck> locationChecks = locationCheckMapper.selectNotNullIp();
  43. List<TLocationCheck> locationChecks = locationCheckMapper.selectNotNullAddr();
  44. // String locErrorEq = null;
  45. StringBuilder locErrorEq = new StringBuilder();
  46. for (TLocationCheck locationChc : locationChecks) {
  47. String clientId = locationChc.getClientId();
  48. String addr = locationChc.getAddr();
  49. // 这里不需要更新ip,只需要校验有ip的设备位置对不对
  50. // locationCheckService.locCheckMsg(locationChc, clientId, addr);
  51. String check = locationCheckService.schLocCheck(locationChc, clientId, addr);
  52. locErrorEq.append(check);
  53. }
  54. if (!locErrorEq.toString().isEmpty()) {
  55. locationCheckService.schSendMsg(locErrorEq.toString());
  56. }
  57. // Optional.ofNullable(locErrorEq)
  58. // .filter(stringBuilder -> stringBuilder.length() > 0)
  59. // .ifPresent(stringBuilder -> {
  60. // try {
  61. // locationCheckService.schSendMsg(locErrorEq.toString());
  62. // } catch (IOException e) {
  63. // throw new RuntimeException(e);
  64. // }
  65. // });
  66. }
  67. }
  68. // 每天4:30去检查多少设备进行了热更新
  69. // @Scheduled(cron = "0 30 4 * * ?")
  70. // public void haveUpdateNum() {
  71. // // 遍历所有设备的apk_version,看多少台设备的apk_version = patch_veriosn
  72. // // 获取热更新表中所有的 patch_version 信息
  73. // List<String> patchVersions = hotUpdateService.list().stream().map(THotUpdate::getPatchVersion).collect(Collectors.toList());
  74. // for (String patchVersion : patchVersions) {
  75. // // 查询所有设备表中的的 apk_version 等于 patch_version的
  76. // List<TEquipment> equipmentList = equipmentService.lambdaQuery().eq(TEquipment::getApkVersion, patchVersion).list();
  77. // // 计算当前的 patch_version = apk_version 的设备数量
  78. // int count = equipmentList.size();
  79. //
  80. // THotUpdate hotUpdate = hotUpdateService.lambdaQuery().eq(THotUpdate::getPatchVersion, patchVersion).one();
  81. // if (hotUpdate != null) {
  82. // hotUpdate.setHaveUpdateNum(count);
  83. // hotUpdateService.updateById(hotUpdate);
  84. // }
  85. // }
  86. // }
  87. // 值日通知1
  88. // 每天8:20执行一次
  89. @Scheduled(cron = "0 20 8 * * ?")
  90. public void scheduled() {
  91. if (isDo()) {
  92. Calendar calendar = Calendar.getInstance();
  93. int number = calendar.get(Calendar.DAY_OF_WEEK);
  94. // 如果不是周日 1
  95. if (number != 1) {
  96. tDepartmentService.onTime();
  97. }
  98. }
  99. }
  100. private Boolean isDo() {
  101. try {
  102. String hostAddress = InetAddress.getLocalHost().getHostAddress();
  103. // 弹性112.74.63.148服务器的私网ip
  104. if (hostAddress.equals("10.0.0.153")) {
  105. return true;
  106. } else {
  107. return false;
  108. }
  109. } catch (UnknownHostException e) {
  110. e.printStackTrace();
  111. }
  112. return false;
  113. }
  114. // 值日通知2
  115. // 每天17:55执行一次
  116. @Scheduled(cron = "0 55 17 * * ?")
  117. public void scheduled2() {
  118. if (isDo()) {
  119. Calendar calendar = Calendar.getInstance();
  120. int number = calendar.get(Calendar.DAY_OF_WEEK);
  121. if (number != 1) {
  122. tDepartmentService.onTime2();
  123. }
  124. }
  125. }
  126. // 设备状态检测
  127. @Scheduled(cron = "0 30 * * * ?")
  128. public void checkEquipmentStatus() {
  129. if (isDo()) {
  130. equipmentService.checkEquipmentStatus();
  131. }
  132. }
  133. /**
  134. * 定时更新access_token
  135. */
  136. @Scheduled(cron = "0 20 * * * ?")
  137. public void updateAccessToken() {
  138. if (isDo()) {
  139. wechatService.getAccessToken("0");
  140. wechatService.getAccessToken("1");
  141. }
  142. }
  143. }