From 7b52312207ad4ce7f5cd817e155af00a06f6addb Mon Sep 17 00:00:00 2001 From: xjm Date: Mon, 27 May 2024 14:50:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B0=94=E8=B1=A1=E9=A2=84=E8=AD=A6=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=BF=AE=E6=94=B9,=E5=8E=86=E5=8F=B2=E6=B0=94?= =?UTF-8?q?=E8=B1=A1=E9=A2=84=E8=AD=A6=E7=BB=9F=E8=AE=A1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OrganizationController.java | 2 +- .../whdc/controller/WarningController.java | 134 ++++++++++-------- src/main/java/com/whdc/model/vo/AdcdTree.java | 2 +- .../whdc/service/impl/AdinfoServiceImpl.java | 10 +- 4 files changed, 84 insertions(+), 64 deletions(-) diff --git a/src/main/java/com/whdc/controller/OrganizationController.java b/src/main/java/com/whdc/controller/OrganizationController.java index fd325f3..188210a 100644 --- a/src/main/java/com/whdc/controller/OrganizationController.java +++ b/src/main/java/com/whdc/controller/OrganizationController.java @@ -81,7 +81,7 @@ public class OrganizationController { .setName(o.getAdnm()) .setAdlevel(o.getAdlevel()) .setType("4"); - fcCommVo.setAdinfo(findAdcdTree(o.getAdcdChildren())); + fcCommVo.setAdinfo(findAdcdTree(o.getChildren())); list.add(fcCommVo); } diff --git a/src/main/java/com/whdc/controller/WarningController.java b/src/main/java/com/whdc/controller/WarningController.java index e798632..20d3e42 100644 --- a/src/main/java/com/whdc/controller/WarningController.java +++ b/src/main/java/com/whdc/controller/WarningController.java @@ -66,51 +66,51 @@ public class WarningController { String publishUnit = dto.getPublishUnit(); if (StringUtils.isNotBlank(publishUnit)) { String[] split = publishUnit.split(","); - if (split.length > 1){ + if (split.length > 1) { String str = "("; for (String s : split) { - str += s +","; + str += s + ","; } - str = str.substring(0,str.length()-1) + ")"; + str = str.substring(0, str.length() - 1) + ")"; filter.add(new ApiDto.Filter("publishUnit", "in " + str, "")); - }else{ + } else { filter.add(new ApiDto.Filter("publishUnit", "like", String.format("%s%s%s", "%", publishUnit, "%"))); } } String warnSignalLevel = dto.getWarnSignalLevel(); if (StringUtils.isNotBlank(warnSignalLevel)) { String[] split = warnSignalLevel.split(","); - if (split.length > 1){ + if (split.length > 1) { String str = "("; for (String s : split) { - str += s +","; + str += s + ","; } - str = str.substring(0,str.length()-1) + ")"; + str = str.substring(0, str.length() - 1) + ")"; filter.add(new ApiDto.Filter("warnSignalLevel", "in " + str, "")); - }else{ + } else { filter.add(new ApiDto.Filter("warnSignalLevel", "like", String.format("%s%s%s", "%", warnSignalLevel, "%"))); } } String warnSignalType = dto.getWarnSignalType(); if (StringUtils.isNotBlank(warnSignalType)) { String[] split = warnSignalType.split(","); - if (split.length > 1){ + if (split.length > 1) { String str = "("; for (String s : split) { - str += s +","; + str += s + ","; } - str = str.substring(0,str.length()-1) + ")"; + str = str.substring(0, str.length() - 1) + ")"; filter.add(new ApiDto.Filter("warnSignalType", "in " + str, "")); - }else{ + } else { filter.add(new ApiDto.Filter("warnSignalType", "like", String.format("%s%s%s", "%", warnSignalType, "%"))); } } apiDto.setFilter(filter); - String str = HttpUtil.sendPost("http://223.75.53.141:8000/shzh/met/zyqxfw/api/warning/getGroupWarning", JSON.toJSONString(apiDto)); + String str = HttpUtil.sendPost("http://223.75.53.141:8000/shzh/met/zyqxfw/api/warning/getGroupWarning", JSON.toJSONString(apiDto)); // String str = HttpUtil.sendPost("http://127.0.0.1:20000/shzh/met/zyqxfw/api/warning/getGroupWarning", JSON.toJSONString(apiDto)); JSONObject json = JSON.parseObject(str); if (json != null && json.getInteger("code") == HttpStatus.SC_OK) { @@ -141,53 +141,53 @@ public class WarningController { String publishUnit = dto.getPublishUnit(); if (StringUtils.isNotBlank(publishUnit)) { String[] split = publishUnit.split(","); - if (split.length > 1){ + if (split.length > 1) { String str = "("; for (String s : split) { - str += s +","; + str += s + ","; } - str = str.substring(0,str.length()-1) + ")"; + str = str.substring(0, str.length() - 1) + ")"; filter.add(new ApiDto.Filter("publishUnit", "in " + str, "")); - }else{ + } else { filter.add(new ApiDto.Filter("publishUnit", "like", String.format("%s%s%s", "%", publishUnit, "%"))); } } String warnSignalLevel = dto.getWarnSignalLevel(); if (StringUtils.isNotBlank(warnSignalLevel)) { String[] split = warnSignalLevel.split(","); - if (split.length > 1){ + if (split.length > 1) { String str = "("; for (String s : split) { - str += s +","; + str += s + ","; } - str = str.substring(0,str.length()-1) + ")"; + str = str.substring(0, str.length() - 1) + ")"; filter.add(new ApiDto.Filter("warnSignalLevel", "in " + str, "")); - }else{ + } else { filter.add(new ApiDto.Filter("warnSignalLevel", "like", String.format("%s%s%s", "%", warnSignalLevel, "%"))); } } String warnSignalType = dto.getWarnSignalType(); if (StringUtils.isNotBlank(warnSignalType)) { String[] split = warnSignalType.split(","); - if (split.length > 1){ + if (split.length > 1) { String str = "("; for (String s : split) { - str += s +","; + str += s + ","; } - str = str.substring(0,str.length()-1) + ")"; + str = str.substring(0, str.length() - 1) + ")"; filter.add(new ApiDto.Filter("warnSignalType", "in " + str, "")); - }else{ + } else { filter.add(new ApiDto.Filter("warnSignalType", "like", String.format("%s%s%s", "%", warnSignalType, "%"))); } } apiDto.setFilter(filter); -// String str = HttpUtil.sendPost("http://223.75.53.141:8000/shzh/met/zyqxfw/api/warning/getGroupWarning", JSON.toJSONString(apiDto)); - String str = HttpUtil.sendPost("http://127.0.0.1:20000/shzh/met/zyqxfw/api/warning/getGroupWarning", JSON.toJSONString(apiDto)); + String str = HttpUtil.sendPost("http://223.75.53.141:8000/shzh/met/zyqxfw/api/warning/getGroupWarning", JSON.toJSONString(apiDto)); +// String str = HttpUtil.sendPost("http://127.0.0.1:20000/shzh/met/zyqxfw/api/warning/getGroupWarning", JSON.toJSONString(apiDto)); JSONObject json = JSON.parseObject(str); if (json != null && json.getInteger("code") == HttpStatus.SC_OK) { List data = json.getJSONArray("data").toJavaList(WarningData.class); @@ -248,42 +248,60 @@ public class WarningController { List warnList = typeList.getWarnList(); - // 类型分组 - Map> types = warnList.stream() - .collect(Collectors.groupingBy(WarningData.Warning::getWarnSignalType, Collectors.toList())); + // 地区分组 + Map> area = warnList.stream() + .collect(Collectors.groupingBy(WarningData.Warning::getEffectArea, Collectors.toList())); - types.forEach((k, v) -> { + area.forEach((areaStr, areaV) -> { + List countyChild = Lists.newArrayList(); WarningHistoryListVo childVo = new WarningHistoryListVo(); - // 等级分组 - Map levels = v.stream() - .collect(Collectors.groupingBy(WarningData.Warning::getWarnSignalLevel, Collectors.counting())); + childVo.setWarnSignalType("全部"); + childVo.setEffectArea(areaStr); - levels.forEach((k1, v1) -> { - switch (k1) { - case "红色": - childVo.setRedCount(v1.intValue()); - vo.setRedCount(v1.intValue() + vo.getRedCount()); - break; - case "橙色": - childVo.setOraCount(v1.intValue()); - vo.setOraCount(v1.intValue() + vo.getOraCount()); - break; - case "黄色": - childVo.setYelCount(v1.intValue()); - vo.setYelCount(v1.intValue() + vo.getYelCount()); - break; - case "蓝色": - childVo.setBluCount(v1.intValue()); - vo.setBluCount(v1.intValue() + vo.getBluCount()); - break; - default: - throw new MyException("当前预警等级不存在: " + k1); - } + // 类型分组 + Map> types = area.get(areaStr).stream() + .collect(Collectors.groupingBy(WarningData.Warning::getEffectArea, Collectors.toList())); + types.forEach((k, v) -> { + WarningHistoryListVo county = new WarningHistoryListVo(); + // 等级分组 + Map levels = v.stream() + .collect(Collectors.groupingBy(WarningData.Warning::getWarnSignalLevel, Collectors.counting())); + + levels.forEach((k1, v1) -> { + switch (k1) { + case "红色": + county.setRedCount(v1.intValue()); + childVo.setRedCount(v1.intValue() + childVo.getRedCount()); + vo.setRedCount(v1.intValue() + vo.getRedCount()); + break; + case "橙色": + county.setOraCount(v1.intValue()); + childVo.setOraCount(v1.intValue() + childVo.getOraCount()); + vo.setOraCount(v1.intValue() + vo.getOraCount()); + break; + case "黄色": + county.setYelCount(v1.intValue()); + childVo.setYelCount(v1.intValue() + childVo.getYelCount()); + vo.setYelCount(v1.intValue() + vo.getYelCount()); + break; + case "蓝色": + county.setBluCount(v1.intValue()); + childVo.setBluCount(v1.intValue() + childVo.getBluCount()); + vo.setBluCount(v1.intValue() + vo.getBluCount()); + break; + default: + throw new MyException("当前预警等级不存在: " + k1); + } + }); + county.setWarnSignalType(k); + county.setSumCount(levels.size()); + countyChild.add(county); }); - childVo.setSumCount(v.size()); - vo.setSumCount(vo.getSumCount() + v.size()); - childVo.setWarnSignalType(k); + childVo.setSumCount(areaV.size()); + childVo.setChild(countyChild); + vo.setSumCount(vo.getSumCount() + areaV.size()); + child.add(childVo); }); diff --git a/src/main/java/com/whdc/model/vo/AdcdTree.java b/src/main/java/com/whdc/model/vo/AdcdTree.java index e93b81c..c13a3d6 100644 --- a/src/main/java/com/whdc/model/vo/AdcdTree.java +++ b/src/main/java/com/whdc/model/vo/AdcdTree.java @@ -20,7 +20,7 @@ public class AdcdTree { private Integer adlevel; @ApiModelProperty("下属行政区") - private List adcdChildren; + private List children; } diff --git a/src/main/java/com/whdc/service/impl/AdinfoServiceImpl.java b/src/main/java/com/whdc/service/impl/AdinfoServiceImpl.java index 5de1a58..c3b92fd 100644 --- a/src/main/java/com/whdc/service/impl/AdinfoServiceImpl.java +++ b/src/main/java/com/whdc/service/impl/AdinfoServiceImpl.java @@ -75,7 +75,7 @@ public class AdinfoServiceImpl extends ServiceImpl impleme for (Adinfo adinfo : list) { String ad = adinfo.getAdcd(); String nm = adinfo.getAdnm(); - AdcdTree adcdTree = new AdcdTree().setAdcd(ad).setAdnm(nm).setAdcdChildren(new ArrayList<>()); + AdcdTree adcdTree = new AdcdTree().setAdcd(ad).setAdnm(nm).setChildren(new ArrayList<>()); // 判断行政区划编码 String provinceStr = ad.substring(0, 2); @@ -86,8 +86,10 @@ public class AdinfoServiceImpl extends ServiceImpl impleme List adcdChildren = county.get(cityStr); AdcdTree adcdTree1 = new AdcdTree(); BeanUtils.copyProperties(adcdTree,adcdTree1); - adcdChildren.add(0,adcdTree1); - adcdTree.setAdcdChildren(adcdChildren); + if (CollectionUtils.isNotEmpty(adcdChildren)){ + adcdChildren.add(0,adcdTree1); + } + adcdTree.setChildren(adcdChildren); addTree(city, provinceStr, adcdTree); tree.add(adcdTree); @@ -133,7 +135,7 @@ public class AdinfoServiceImpl extends ServiceImpl impleme sorteds = tree.stream().sorted(Comparator.comparing(AdcdTree::getAdcd) ).collect(Collectors.toList()); sorteds.forEach(o->{ - o.setAdcdChildren(sorted(o.getAdcdChildren())); + o.setChildren(sorted(o.getChildren())); }); }