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/RiskMonthlyAnalysisTask.kt |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/RiskMonthlyAnalysisTask.kt b/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/RiskMonthlyAnalysisTask.kt
new file mode 100644
index 0000000..62f485f
--- /dev/null
+++ b/src/main/java/com/flightfeather/monitor/scheduledtasks/dust/RiskMonthlyAnalysisTask.kt
@@ -0,0 +1,47 @@
+package com.flightfeather.monitor.scheduledtasks.dust
+
+import com.flightfeather.monitor.analysis.dust.RiskAnalysisController
+import com.flightfeather.monitor.domain.ds1.repository.RequestTaskRep
+import com.flightfeather.monitor.domain.ds1.repository.RiskValueRep
+import org.springframework.stereotype.Component
+import java.time.LocalDate
+import java.time.LocalDateTime
+import java.time.ZoneId
+
+/**
+ * 鎵皹鏈堥闄╁垎鏋愪换鍔�
+ */
+@Component
+class RiskMonthlyAnalysisTask(
+    private val riskAnalysisController: RiskAnalysisController,
+    private val riskValueRep: RiskValueRep,
+    requestTaskRep: RequestTaskRep,
+) : BaseDustTimingTask(requestTaskRep) {
+
+    override fun doTask(localtime: LocalDateTime) {
+        if (taskDelay || (localtime.dayOfMonth == 1 && localtime.hour == 11 && localtime.minute == 0)) {
+            taskDelay = isTaskDelay(localtime)
+            if (!taskDelay) {
+                log.info("鏈堥闄╁垎鏋愭墽琛�")
+                riskAnalysisController.init()
+                riskAnalysisController.autoRunMonthly()
+            }
+        }
+    }
+
+    /**
+     * 褰撲笂鏈堝簳鐨勬棩椋庨櫓鍒嗘瀽瀹屾垚鍚庯紝鎵嶆墽琛屾湀椋庨櫓鍒嗘瀽浠诲姟锛屽惁鍒欏欢杩熸墽琛�
+     * @param localtime 褰撳墠鏃堕棿
+     * @return 鏄惁寤惰繜鎵ц
+     */
+    override fun isTaskDelay(localtime: LocalDateTime): Boolean {
+        val lastMonth = LocalDate.now().withDayOfMonth(1).minusDays(1)
+        val data = riskValueRep.findLatestData("day") ?: return true
+        val dataTime = LocalDateTime.ofInstant(data.lst.toInstant(), ZoneId.systemDefault()).toLocalDate()
+        val b1 = lastMonth.isEqual(dataTime)
+        val b2 = riskAnalysisController.running1
+
+        return !(b1 && !b2)
+
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3