预警统计修改

master
徐杰盟 2024-06-27 15:06:29 +08:00
parent 1722e89ca7
commit e039c4da78
3 changed files with 31 additions and 13 deletions

View File

@ -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<QXWarning> qxWarnings = service.lambdaQuery().between(QXWarning::getPublishTime, stm, etm).list();
// List<QXWarning> qxWarnings = service.lambdaQuery().between(QXWarning::getPublishTime, stm, etm).list();
Map<String, List<QXWarning>> map = qxWarnings.stream()
Map<String, List<QXWarning>> map = list.stream()
.collect(Collectors.groupingBy(QXWarning::getWarnSignalLevel));
List<QXWarning> orange = map.get("橙色");
List<QXWarning> red = map.get("红色");
@ -1026,35 +1026,48 @@ public class QXWarnController {
warnStr.append("我省共产生橙色气象预警").append(orange.size()).append("次,电话叫应");
Map<String, List<QXWarning>> orangeList = orange.stream().collect(Collectors.groupingBy(QXWarning::getCtnm, Collectors.toList()));
List<String> 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<String, List<QXWarning>> redList = red.stream().collect(Collectors.groupingBy(QXWarning::getCtnm, Collectors.toList()));
List<String> 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<String, List<QXWarning>> orangeList = orange.stream().collect(Collectors.groupingBy(QXWarning::getCtnm, Collectors.toList()));
List<String> 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<String, List<QXWarning>> redList = red.stream().collect(Collectors.groupingBy(QXWarning::getCtnm, Collectors.toList()));
List<String> 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<QXWarning> list) {
private StringBuilder getCnnmStr(List<QXWarning> list,List<String> cnnms) {
List<String> lists = list.stream().map(QXWarning::getCnnm).distinct().collect(Collectors.toList());
HashSet<String> 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;
}
}

View File

@ -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")

View File

@ -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