diff --git a/src/main/java/com/whdc/controller/QXWarnController.java b/src/main/java/com/whdc/controller/QXWarnController.java index cca54a9..99536e1 100644 --- a/src/main/java/com/whdc/controller/QXWarnController.java +++ b/src/main/java/com/whdc/controller/QXWarnController.java @@ -1015,9 +1015,9 @@ public class QXWarnController { warnStr.append(stm.getYear()).append("年").append(stm.getMonthValue()).append("月").append(stm.getDayOfMonth()).append("日至") .append(etm.getYear()).append("年").append(etm.getMonthValue()).append("月").append(etm.getDayOfMonth()).append("日,"); - List qxWarnings = service.lambdaQuery().between(QXWarning::getPublishTime, stm, etm).list(); +// List qxWarnings = service.lambdaQuery().between(QXWarning::getPublishTime, stm, etm).list(); - Map> map = qxWarnings.stream() + Map> map = list.stream() .collect(Collectors.groupingBy(QXWarning::getWarnSignalLevel)); List orange = map.get("橙色"); List red = map.get("红色"); @@ -1026,35 +1026,48 @@ public class QXWarnController { warnStr.append("我省共产生橙色气象预警").append(orange.size()).append("次,电话叫应"); Map> orangeList = orange.stream().collect(Collectors.groupingBy(QXWarning::getCtnm, Collectors.toList())); + List oraCnnms = Lists.newArrayList(); orangeList.forEach((k, v) -> { - warnStr.append(getCnnmStr(v)); + warnStr.append(getCnnmStr(v,oraCnnms)); }); - warnStr.setCharAt(warnStr.length() - 1, '。'); + + warnStr.setCharAt(warnStr.length() - 1, '等'); + warnStr.append(oraCnnms.size()).append("个县市区,").append(orange.stream().filter(o -> Objects.nonNull(o.getCallTime())).count()).append("次。"); warnStr.append("红色气象预警").append(red.size()).append("次,电话叫应"); Map> redList = red.stream().collect(Collectors.groupingBy(QXWarning::getCtnm, Collectors.toList())); + List redCnnms = Lists.newArrayList(); redList.forEach((k, v) -> { - warnStr.append(getCnnmStr(v)); + warnStr.append(getCnnmStr(v,redCnnms)); }); - warnStr.setCharAt(warnStr.length() - 1, '。'); + warnStr.setCharAt(warnStr.length() - 1, '等'); + warnStr.append(redCnnms.size()).append("个县市区,").append(red.stream().filter(o -> Objects.nonNull(o.getCallTime())).count()).append("次。"); + } else if (CollectionUtils.isNotEmpty(orange) && CollectionUtils.isEmpty(red)) { warnStr.append("我省共产生橙色气象预警").append(orange.size()).append("次,电话叫应"); Map> orangeList = orange.stream().collect(Collectors.groupingBy(QXWarning::getCtnm, Collectors.toList())); + List oraCnnms = Lists.newArrayList(); + orangeList.forEach((k, v) -> { - warnStr.append(getCnnmStr(v)); + warnStr.append(getCnnmStr(v,oraCnnms)); }); - warnStr.setCharAt(warnStr.length() - 1, '。'); + + warnStr.setCharAt(warnStr.length() - 1, '等'); + warnStr.append(oraCnnms.size()).append("个县市区,").append(orange.stream().filter(o -> Objects.nonNull(o.getCallTime())).count()).append("次。"); } else if (CollectionUtils.isNotEmpty(red) && CollectionUtils.isEmpty(orange)) { warnStr.append("我省共产生红色气象预警").append(red.size()).append("次,电话叫应"); Map> redList = red.stream().collect(Collectors.groupingBy(QXWarning::getCtnm, Collectors.toList())); + List redCnnms = Lists.newArrayList(); redList.forEach((k, v) -> { - warnStr.append(getCnnmStr(v)); + warnStr.append(getCnnmStr(v,redCnnms)); }); + warnStr.setCharAt(warnStr.length() - 1, '等'); + warnStr.append(redCnnms.size()).append("个县市区,").append(red.stream().filter(o -> Objects.nonNull(o.getCallTime())).count()).append("次。"); } vo.setByWarnStr(warnStr.toString()); @@ -1064,7 +1077,7 @@ public class QXWarnController { } - private StringBuilder getCnnmStr(List list) { + private StringBuilder getCnnmStr(List list,List cnnms) { List lists = list.stream().map(QXWarning::getCnnm).distinct().collect(Collectors.toList()); HashSet cnnmSet = Sets.newHashSet(); @@ -1074,7 +1087,7 @@ public class QXWarnController { } StringBuilder builder = new StringBuilder(); cnnmSet.forEach(s -> builder.append(s).append("、")); - + cnnms.addAll(cnnmSet); return builder; } } \ No newline at end of file diff --git a/src/main/java/com/whdc/model/entity/QXWarning.java b/src/main/java/com/whdc/model/entity/QXWarning.java index 0fe8415..ce9b0b6 100644 --- a/src/main/java/com/whdc/model/entity/QXWarning.java +++ b/src/main/java/com/whdc/model/entity/QXWarning.java @@ -84,6 +84,10 @@ public class QXWarning { @ApiModelProperty(value = "预警县名称", dataType = "java.lang.String") private String cnnm; + @TableField(exist = false) + @ApiModelProperty(value = "预警通知时间") + private Date callTime; + @Excel(name = "handleTime") @TableField(exist = false) @ApiModelProperty(value = "预警信息处理时间", dataType = "java.lang.String") diff --git a/src/main/resources/mapper/QXWarningMapper.xml b/src/main/resources/mapper/QXWarningMapper.xml index e4bf987..c5c43f9 100644 --- a/src/main/resources/mapper/QXWarningMapper.xml +++ b/src/main/resources/mapper/QXWarningMapper.xml @@ -8,12 +8,13 @@ SELECT Q.WARN_SIGNAL_LEVEL, Q.CTNM, - Q.CNNM + Q.CNNM, + WF.CALL_TIME FROM FXKH_TXL.WARNMSG_FEEDBACK WF LEFT JOIN FXKH_TXL.QXWARNING Q ON WF.WARNID = Q.WARNID WHERE - WF.HANDLE_TIME BETWEEN #{stm} AND #{etm} + Q.PUBLISH_TIME BETWEEN #{stm} AND #{etm} AND Q.WARN_SIGNAL_LEVEL IS NOT NULL AND Q.CNNM IS NOT NULL ORDER BY Q.WARNID DESC