From 1cbb3ed5c0c412cd407b7d32e7978f491857d670 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期一, 31 七月 2023 14:43:52 +0800 Subject: [PATCH] 1 --- src/main/java/com/yssh/service/WarningAnalyseService.java | 29 ++++++++++++++++++++++++++--- 1 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/yssh/service/WarningAnalyseService.java b/src/main/java/com/yssh/service/WarningAnalyseService.java index 2557340..5fc3490 100644 --- a/src/main/java/com/yssh/service/WarningAnalyseService.java +++ b/src/main/java/com/yssh/service/WarningAnalyseService.java @@ -46,7 +46,7 @@ @Resource private VocValsService vocValsService; - private SimpleDateFormat ym = new SimpleDateFormat("yyyyMM%"); + private static HashMap<String, String> filterMap = new HashMap<>(); @Async("threadPoolTaskExecutor") public void insertWarningDetails(List<WarningDetail> warning) throws Exception { @@ -168,8 +168,12 @@ WarningDetail wd = new WarningDetail(0L, tab, suYuanId, qxsh.getName(), null, 0, qxsh.getValue()); DistanceSuYuan suYuan = suYuanMapper.getSuYuanById(tab, suYuanId); - List<String> ids3d = CalculateUtils.aloneCrosswiseExtend(point, 50); - DistanceSuYuan suMax = suYuanMapper.getSuYuan500Max(tab, ids3d); + //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); suMax.setAddr(getAddr(suMax.getId())); Report report = Report.calcReport(wd, suYuan, suMax); @@ -184,6 +188,25 @@ return list; } + public static String getFilterByPoint(MonitorPointPosition point, int range) { + String key = String.format("%d_%d_%d", point.getX(), point.getY(), range); + if (filterMap.containsKey(key)) { + return filterMap.get(key); + } + + List<String> ids = CalculateUtils.aloneCrosswiseExtend(point, range); + for (int i = 0, c = ids.size(); i < c; i++) { + ids.set(i, "'" + ids.get(i) + "'"); + } + + String filter = "id in (" + StringUtils.join(ids, ",") + ")"; + if (!filterMap.containsKey(key)) { + filterMap.put(key, filter); + } + + return filter; + } + private Hashtable<String, Boolean> getExistTabDict(List<Qxsh> rsList) { Hashtable<String, Boolean> dict = new Hashtable<>(); for (Qxsh qxsh : rsList) { -- Gitblit v1.9.3