WaterVolumeBizMgr.java 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package com.shkpr.service.aimodelpower.bizmgr;
  2. import com.shkpr.service.aimodelpower.commproperties.CollectProperties;
  3. import com.shkpr.service.aimodelpower.components.WaterVolumeCollector;
  4. import org.springframework.beans.factory.annotation.Qualifier;
  5. import org.springframework.scheduling.annotation.Scheduled;
  6. import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
  7. import org.springframework.stereotype.Component;
  8. import javax.annotation.PostConstruct;
  9. /**
  10. * 水量管理
  11. *
  12. * @author 欧阳劲驰
  13. * @serial 1.0.4
  14. */
  15. @Component
  16. public class WaterVolumeBizMgr {
  17. final
  18. ThreadPoolTaskExecutor taskScheduler;
  19. final
  20. CollectProperties collectProperties;
  21. final
  22. WaterVolumeCollector waterVolumeCollector;
  23. public WaterVolumeBizMgr(@Qualifier("taskExecutor") ThreadPoolTaskExecutor taskScheduler
  24. , CollectProperties collectProperties
  25. , WaterVolumeCollector waterVolumeCollector) {
  26. this.taskScheduler = taskScheduler;
  27. this.collectProperties = collectProperties;
  28. this.waterVolumeCollector = waterVolumeCollector;
  29. }
  30. /**
  31. * 初始化
  32. */
  33. @PostConstruct
  34. public void init() {
  35. //采集4天数据
  36. if (collectProperties.getBusinessCollected()) {
  37. taskScheduler.execute(() -> waterVolumeCollector.collectBusinessMinuteData(4 * 24, null));
  38. taskScheduler.execute(() -> waterVolumeCollector.collectBusinessHourData(4 * 24, null));
  39. }
  40. taskScheduler.execute(() -> waterVolumeCollector.collectDifferenceMinuteData(4 * 24, null));
  41. taskScheduler.execute(() -> waterVolumeCollector.collectDifferenceHourData(4 * 24, null));
  42. taskScheduler.execute(() -> waterVolumeCollector.collectRawData(4 * 24, null));
  43. }
  44. /**
  45. * 分钟任务
  46. */
  47. @Scheduled(cron = "0 */10 * * * *")
  48. public void minuteTask() {
  49. //采集营业所1小时的分钟数据
  50. if (collectProperties.getBusinessCollected())
  51. taskScheduler.execute(() -> waterVolumeCollector.collectBusinessMinuteData(1, null));
  52. //采集1小时的分钟数据
  53. taskScheduler.execute(() -> waterVolumeCollector.collectDifferenceMinuteData(1, null));
  54. }
  55. /**
  56. * 小时任务
  57. */
  58. @Scheduled(cron = "0 5 * * * *")
  59. public void hourTask() {
  60. //采集营业所2小时的小时数据
  61. if (collectProperties.getBusinessCollected())
  62. taskScheduler.execute(() -> waterVolumeCollector.collectBusinessHourData(2, null));
  63. //采集2小时的小时数据
  64. taskScheduler.execute(() -> waterVolumeCollector.collectDifferenceHourData(2, null));
  65. }
  66. /**
  67. * 日任务
  68. */
  69. @Scheduled(cron = "0 5 0 * * ?")
  70. public void dayTask() {
  71. //采集次日的原始数据
  72. taskScheduler.execute(() -> waterVolumeCollector.collectRawData(24, null));
  73. }
  74. }