From 8185e5cdc2bbdf7fb4ca46a10864106893a01ed3 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 20 十一月 2024 15:30:12 +0800 Subject: [PATCH] 1 --- src/main/java/com/yssh/service/WarningAnalyseService.java | 45 ++++++++++++++++++++++++++++++++++++++------- 1 files changed, 38 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/yssh/service/WarningAnalyseService.java b/src/main/java/com/yssh/service/WarningAnalyseService.java index 7629dae..ddc29a7 100644 --- a/src/main/java/com/yssh/service/WarningAnalyseService.java +++ b/src/main/java/com/yssh/service/WarningAnalyseService.java @@ -3,6 +3,7 @@ import java.util.*; import java.util.concurrent.CountDownLatch; +import com.yssh.config.InitConfig; import com.yssh.entity.*; import com.yssh.mapper.DictRecordMapper; import com.yssh.mapper.QxshMapper; @@ -66,18 +67,32 @@ * 鑾峰彇瀹炴椂鎶ヨ */ public List<Qxsh> getRunTimeAlarmAnalyse(Integer start, Integer end) { - List<Qxsh> list = qxshMapper.selectAlarmByBeginAndEnd(start, end); + //List<Qxsh> list = qxshMapper.selectAlarmByBeginAndEnd(start, end); + String key = "qxshMapper.selectAlarmByBeginAndEnd." + start + "." + end; + List<Qxsh> list = CacheUtils.getListByKey(key); + if (null == list) { + list = qxshMapper.selectAlarmByBeginAndEnd(start, end); + copeHasSuYuan(list); + CacheUtils.putListByKey(key, list); + } - return copeHasSuYuan(list); + return list; } /** * 鑾峰彇瀹炴椂棰勮 */ public List<Qxsh> getRunTimeWarningAnalyse(Integer start, Integer end) { - List<Qxsh> list = qxshMapper.selectWarnByBeginAndEnd(start, end); + //List<Qxsh> list = qxshMapper.selectWarnByBeginAndEnd(start, end); + String key = "qxshMapper.selectWarnByBeginAndEnd." + start + "." + end; + List<Qxsh> list = CacheUtils.getListByKey(key); + if (null == list) { + list = qxshMapper.selectWarnByBeginAndEnd(start, end); + copeHasSuYuan(list); + CacheUtils.putListByKey(key, list); + } - return copeHasSuYuan(list); + return list; } /** @@ -89,12 +104,20 @@ Integer start = Integer.parseInt(DateUtils.getYyyyMmDdHh(startDate)); Integer end = Integer.parseInt(DateUtils.getYyyyMmDdHh(endDate)); + String key = "WAS.monthCount." + start + "." + end; + Object obj = CacheUtils.get(key); + if (obj instanceof Map<?, ?>) { + return (Map<String, Integer>) obj; + } + Map<String, Integer> result = new HashMap<>(); Integer warnNum = qxshMapper.countMonthForWarn(start, end); result.put("warningNumber", null == warnNum ? 0 : warnNum); Integer alarmNum = qxshMapper.countMonthForAlarm(start, end); result.put("alarmNumber", null == alarmNum ? 0 : alarmNum); + + CacheUtils.put(key, result); return result; } @@ -164,7 +187,7 @@ * 鑾峰彇鏈湀鐩戞祴绔欑偣鏈�澶у�糡OP10 */ public List<Qxsh> selectMonthTop10() { - String time = DateUtils.getYyyyMm(new Date()); + String time = DateUtils.getYyyyMm(InitConfig.getDate()); //List<Qxsh> list = qxshMapper.selectMonthTop10(time + "%"); String key = "qxshMapper.selectMonthTop10." + time; @@ -181,7 +204,7 @@ * 鑾峰彇鏈懆鐩戞祴绔欑偣鏈�澶у�糡OP10 */ public List<Qxsh> selectWeekTop10() { - Date now = new Date(); + Date now = InitConfig.getDate(); int weekOfYear = DateUtils.getWeekOfYear(now); int year = Integer.parseInt(DateUtils.parseDateToStr(DateUtils.YYYY, now)); Date lastSun = DateUtils.getWeekOfYearForSun(year, weekOfYear); @@ -205,7 +228,7 @@ * 鑾峰彇鏈棩鐩戞祴绔欑偣鏈�澶у�糡OP10 */ public List<Qxsh> selectDayTop10() { - String time = DateUtils.getYyyyMmDd(new Date()); + String time = DateUtils.getYyyyMmDd(InitConfig.getDate()); //List<Qxsh> list = qxshMapper.selectDayTop10(time + "%"); String key = "qxshMapper.selectDayTop10." + time; @@ -242,12 +265,20 @@ WarningDetail wd = new WarningDetail(0L, tab, suYuanId, qxsh.getName(), null, 0, qxsh.getValue()); DistanceSuYuan suYuan = suYuanMapper.getSuYuanById(tab, suYuanId); + if (null == suYuan) { + String[] strs = suYuanId.split("_"); + suYuan = new DistanceSuYuan(null, null, 0.0, suYuanId, Integer.parseInt(strs[0]), Integer.parseInt(strs[1]), 0, 0, null, 0.0, 0.0, 0.0, 0.0); + } //List<String> ids3d = CalculateUtils.aloneCrosswiseExtend(point, 50); //DistanceSuYuan suMax = suYuanMapper.getSuYuan500Max(tab, ids3d); //String filter = CalculateUtils.getFilterByExtend(point, 50); String filter = getFilterByPoint(point, 50); DistanceSuYuan suMax = suYuanMapper.getSuYuan500MaxByFilter(tab, filter); + if (null == suMax) { + String[] strs = suYuanId.split("_"); + suMax = new DistanceSuYuan(null, null, 0.0, suYuanId, Integer.parseInt(strs[0]), Integer.parseInt(strs[1]), 0, 0, null, 0.0, 0.0, 0.0, 0.0); + } suMax.setAddr(getAddr(suMax.getId())); Report report = Report.calcReport(wd, suYuan, suMax); -- Gitblit v1.9.3