From c66ed91b47929f1fbb79afbf07db1f3387f92612 Mon Sep 17 00:00:00 2001 From: zmc <zmc_li@foxmail.com> Date: 星期一, 13 十一月 2023 16:21:34 +0800 Subject: [PATCH] 新增查询风险值的接口 --- src/main/java/com/flightfeather/monitor/analysis/dust/RiskAnalysisController.kt | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 109 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/flightfeather/monitor/analysis/dust/RiskAnalysisController.kt b/src/main/java/com/flightfeather/monitor/analysis/dust/RiskAnalysisController.kt new file mode 100644 index 0000000..afc6bc1 --- /dev/null +++ b/src/main/java/com/flightfeather/monitor/analysis/dust/RiskAnalysisController.kt @@ -0,0 +1,109 @@ +package com.flightfeather.monitor.analysis.dust + +import com.flightfeather.monitor.analysis.dust.risk.* +import com.flightfeather.monitor.domain.ds1.repository.* +import com.flightfeather.monitor.enumration.dust.DeviceStatus +import com.flightfeather.monitor.utils.DateUtil +import org.springframework.stereotype.Component +import java.time.LocalDate +import java.time.LocalDateTime +import java.time.ZoneId + +/** + * 鏁版嵁椋庨櫓鍒嗘瀽鎺у埗鍣� + */ +@Component +class RiskAnalysisController( + private val dustExceptionSettingRep: DustExceptionSettingRep, + private val riskValueRep: RiskValueRep, + private val dustSiteStatusRep: DustSiteStatusRep, + private val dustSiteDataRep: DustSiteDataRep, + private val dustExceptionDataRep: DustExceptionDataRep, + private val dustStatisticValueRep: DustStatisticsValueRep, +) { + + private var running1 = false + private var running2 = false + + private var taskDaily: DustRiskAnalysis? = null + private var taskMonthly: DustRiskMonthAnalysis? = null + + fun init() { + dustExceptionSettingRep.findLatestSetting("閲戝北鍖�")?.let { + taskDaily = DustRiskAnalysis(it) + taskMonthly = DustRiskMonthAnalysis(it) + } + } + + fun autoRunDaily() { + val data = riskValueRep.findLatestData("day") + val yesterday = LocalDate.now().minusDays(1) + if (data == null) { + runDaily(yesterday) + } else { + val date = LocalDateTime.ofInstant(data.lst.toInstant(), ZoneId.systemDefault()) + val sT = if (date.hour == 0 && date.minute == 0 && date.second == 0) { + date.toLocalDate() + } else { + date.plusDays(1).toLocalDate() + } + val du = DateUtil.findDurationDate(sT, yesterday) + du.forEach { + runDaily(it) + } + } + } + + fun autoRunMonthly() { + val data = riskValueRep.findLatestData("month") + val lastMonth = LocalDate.now().minusMonths(1).withDayOfMonth(1) + if (data == null) { + runMonthly(lastMonth) + } else { + val date = LocalDateTime.ofInstant(data.lst.toInstant(), ZoneId.systemDefault()) + val sT = date.plusMonths(1).toLocalDate() + val du = DateUtil.findDurationMonth(sT, lastMonth) + du.forEach { + runMonthly(it) + } + } + } + + fun runDaily(date: LocalDate) { + running1 = true + taskDaily?.init() + // 鑾峰彇鎵�鏈夊綋鍓嶄笂绾垮拰鍋滆繍鐨勮澶� + dustSiteStatusRep.select(listOf(DeviceStatus.ONLINE, DeviceStatus.STOP)).forEach { s -> + s?.let { + taskDaily?.roundInit() + val dustSiteDataList = dustSiteDataRep.select(s.mnCode, date) + val dustExceptionDataList = dustExceptionDataRep.select(s.mnCode, date) + val dustStatisticValueList = dustStatisticValueRep.select(s.mnCode, date) + if (dustStatisticValueList.isEmpty()) return@forEach + taskDaily?.roundCal(dustStatisticValueList[0]!!, dustSiteDataList, dustExceptionDataList) + } + } + // 鎵�鏈夊垎鏋愮粨鏋滃叆搴� + if (taskDaily?.resultList?.isNotEmpty() == true) { + riskValueRep.insert(taskDaily?.resultList!!) + } + running1 = false + } + + fun runMonthly(date: LocalDate) { + running2 = true + taskMonthly?.init() + dustSiteStatusRep.select(listOf(DeviceStatus.ONLINE, DeviceStatus.STOP)).forEach { s -> + s?.let { + taskMonthly?.roundInit() + val riskValueList = riskValueRep.select(s.mnCode, date) + taskMonthly?.roundCal(riskValueList) + } + } + // 鎵�鏈夊垎鏋愮粨鏋滃叆搴� + if (taskMonthly?.resultList?.isNotEmpty() == true) { + riskValueRep.insert(taskMonthly?.resultList!!) + } + running2 = false + } +} \ No newline at end of file -- Gitblit v1.9.3