From 8f069a80ed15dd431450f58304513aa3985e62ba Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期二, 14 十一月 2023 16:48:16 +0800
Subject: [PATCH] 1. 新增风险值的查询逻辑;

---
 src/main/java/com/flightfeather/monitor/scheduledtasks/dust/RiskDailyAnalysisTask.kt |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 59 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/RiskDailyAnalysisTask.kt b/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/RiskDailyAnalysisTask.kt
new file mode 100644
index 0000000..11744a8
--- /dev/null
+++ b/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/RiskDailyAnalysisTask.kt
@@ -0,0 +1,59 @@
+package com.flightfeather.monitor.scheduledtasks.dust
+
+import com.flightfeather.monitor.analysis.dust.ExceptionAnalysisController
+import com.flightfeather.monitor.analysis.dust.RiskAnalysisController
+import com.flightfeather.monitor.analysis.dust.StatisticAnalysisController
+import com.flightfeather.monitor.domain.ds1.repository.DustExceptionDataRep
+import com.flightfeather.monitor.domain.ds1.repository.DustStatisticsValueRep
+import com.flightfeather.monitor.domain.ds1.repository.RequestTaskRep
+import org.springframework.stereotype.Component
+import java.time.LocalDate
+import java.time.LocalDateTime
+import java.time.ZoneId
+
+/**
+ * 鎵皹鏃ラ闄╁垎鏋愪换鍔�
+ */
+@Component
+class RiskDailyAnalysisTask(
+    private val riskAnalysisController: RiskAnalysisController,
+    private val exceptionAnalysisController: ExceptionAnalysisController,
+    private val statisticAnalysisController: StatisticAnalysisController,
+    private val dustExceptionDataRep: DustExceptionDataRep,
+    private val dustStatisticsValueRep: DustStatisticsValueRep,
+    requestTaskRep: RequestTaskRep,
+) : BaseDustTimingTask(requestTaskRep) {
+
+    override fun doTask(localtime: LocalDateTime) {
+        if (taskDelay || (localtime.hour == 10 && localtime.minute == 0)) {
+            taskDelay = isTaskDelay(localtime)
+            if (!taskDelay) {
+                log.info("鏃ラ闄╁垎鏋愭墽琛�")
+                riskAnalysisController.init()
+                riskAnalysisController.autoRunDaily()
+            }
+        }
+    }
+
+    /**
+     * 褰撴槰鏃ョ殑寮傚父鍒嗘瀽鍜屾棩缁熻浠诲姟閮藉畬鎴愬悗锛屾墠鎵ц鏃ラ闄╁垎鏋愪换鍔★紝鍚﹀垯寤惰繜鎵ц
+     * @param localtime 褰撳墠鏃堕棿
+     * @return 鏄惁寤惰繜鎵ц
+     */
+    override fun isTaskDelay(localtime: LocalDateTime): Boolean {
+        val yesterday = LocalDate.now().minusDays(1)
+        // 妫�鏌ュ紓甯稿垎鏋愯褰曠殑鏈�鏂版椂闂村拰寮傚父鍒嗘瀽浠诲姟鐨勮繍琛岀姸鎬�
+        val eData = dustExceptionDataRep.findLatestData() ?: return true
+        val eDataTime = LocalDateTime.ofInstant(eData.endTime.toInstant(), ZoneId.systemDefault()).toLocalDate()
+        val b1 = yesterday.isEqual(eDataTime)
+        val b2 = exceptionAnalysisController.running
+        // 妫�鏌ユ棩缁熻鍒嗘瀽璁板綍鐨勬渶鏂版椂闂村拰鏃ョ粺璁″垎鏋愪换鍔$殑杩愯鐘舵��
+        val sData = dustStatisticsValueRep.findLatestData("day") ?: return true
+        val sDataTime = LocalDateTime.ofInstant(sData.lst.toInstant(), ZoneId.systemDefault()).toLocalDate()
+        val b3 = yesterday.isEqual(sDataTime)
+        val b4 = statisticAnalysisController.running1
+
+        return !(b1 && !b2 && b3 && !b4)
+
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3