| | |
| | | private val dustStatisticValueRep: DustStatisticsValueRep, |
| | | ) { |
| | | |
| | | private var running1 = false |
| | | private var running2 = false |
| | | var running1 = false |
| | | var running2 = false |
| | | |
| | | private var taskDaily: DustRiskAnalysis? = null |
| | | private var taskMonthly: DustRiskMonthAnalysis? = null |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 日风险统计,默认统计昨天的风险值 |
| | | */ |
| | | fun autoRunDaily() { |
| | | val data = riskValueRep.findLatestData("day") |
| | | val yesterday = LocalDate.now().minusDays(1) |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 月风险统计,根据昨日最新数据所在月份,统计该月的综合风险,截至昨天 |
| | | */ |
| | | fun autoRunMonthly() { |
| | | val data = riskValueRep.findLatestData("month") |
| | | val lastMonth = LocalDate.now().minusMonths(1).withDayOfMonth(1) |
| | | if (data == null) { |
| | | runMonthly(lastMonth) |
| | | } else { |
| | | // 获取需要统计的最新月份,是昨天所在的月份(因为监测数据是今天获取昨天一整天的数据) |
| | | val thisMonth = LocalDate.now().minusDays(1) |
| | | // 最新月统计记录的时间 |
| | | val date = LocalDateTime.ofInstant(data.lst.toInstant(), ZoneId.systemDefault()) |
| | | val sT = date.plusMonths(1).toLocalDate() |
| | | val du = DateUtil.findDurationMonth(sT, lastMonth) |
| | | val sT = date.toLocalDate() |
| | | val du = DateUtil.findDurationMonth(sT, thisMonth) |
| | | du.forEach { |
| | | runMonthly(it) |
| | | } |
| | |
| | | // 获取所有当前上线和停运的设备 |
| | | dustSiteStatusRep.select(listOf(DeviceStatus.ONLINE, DeviceStatus.STOP)).forEach { s -> |
| | | s?.let { |
| | | taskDaily?.roundInit() |
| | | taskDaily?.roundInit(s.mnCode, date) |
| | | val dustSiteDataList = dustSiteDataRep.select(s.mnCode, date) |
| | | val dustExceptionDataList = dustExceptionDataRep.select(s.mnCode, date) |
| | | val dustStatisticValueList = dustStatisticValueRep.select(s.mnCode, date) |
| | |
| | | taskMonthly?.init() |
| | | dustSiteStatusRep.select(listOf(DeviceStatus.ONLINE, DeviceStatus.STOP)).forEach { s -> |
| | | s?.let { |
| | | taskMonthly?.roundInit() |
| | | val riskValueList = riskValueRep.select(s.mnCode, date) |
| | | taskMonthly?.roundInit(s.mnCode, date) |
| | | val riskValueList = riskValueRep.select(s.mnCode, date, "day") |
| | | taskMonthly?.roundCal(riskValueList) |
| | | } |
| | | } |
| | | // 所有分析结果入库 |
| | | if (taskMonthly?.resultList?.isNotEmpty() == true) { |
| | | riskValueRep.insert(taskMonthly?.resultList!!) |
| | | riskValueRep.insertOrUpdate(taskMonthly?.resultList!!) |
| | | } |
| | | running2 = false |
| | | } |