From 0f3fc836d7389c5d07de6e5d711a38654a463d3a Mon Sep 17 00:00:00 2001 From: ForwithyNew <2008nmj@sina.com> Date: Fri, 7 Jun 2024 16:45:21 +0800 Subject: [PATCH] =?UTF-8?q?/getFBStats=EF=BC=9A=E5=8E=86=E5=8F=B27?= =?UTF-8?q?=E5=A4=A9=E6=9A=B4=E9=9B=A8=E9=A2=84=E8=AD=A6=E5=8F=AB=E5=BA=94?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=BB=9F=E8=AE=A1=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/whdc/controller/QXWarnController.java | 104 ++++++++++++++++++ .../java/com/whdc/model/vo/FBStatsVO.java | 15 +++ 2 files changed, 119 insertions(+) create mode 100644 src/main/java/com/whdc/model/vo/FBStatsVO.java diff --git a/src/main/java/com/whdc/controller/QXWarnController.java b/src/main/java/com/whdc/controller/QXWarnController.java index d26defd..b3f670d 100644 --- a/src/main/java/com/whdc/controller/QXWarnController.java +++ b/src/main/java/com/whdc/controller/QXWarnController.java @@ -364,6 +364,110 @@ public class QXWarnController { return ResultJson.ok(""); } + /** + * 历史7天暴雨预警叫应信息统计 + * + * @param dto + * @return + */ + @ApiOperation(value = "历史7天暴雨预警叫应信息统计") + @PostMapping("/getFBStats") + @Cacheable(value = THIS_REDIS_KEY, key = "#root.method.name+':'+#dto.toString()") + public ResultJson getFeedBackStats(@RequestBody GroupWarningDto dto) { + //当前时间 + Calendar startCalendarDay = Calendar.getInstance(); + int year = startCalendarDay.get(Calendar.YEAR); + int month = startCalendarDay.get(Calendar.MONTH) + 1; //第一个月从0开始,所以得到月份+1 + int day = startCalendarDay.get(Calendar.DAY_OF_MONTH); + int hour = startCalendarDay.get(Calendar.HOUR_OF_DAY); + int minute = startCalendarDay.get(Calendar.MINUTE); + int second = startCalendarDay.get(Calendar.SECOND); + String nowTime = zerofill(year)+"-"+zerofill(month)+"-"+zerofill(day)+" "+ + zerofill(hour)+":"+zerofill(minute)+":"+zerofill(second); + System.out.println(nowTime); + ArrayList filter = Lists.newArrayList(); + FBStatsVO fbStatsVO = null; + //当前时间往前7天——本周预警统计 + Calendar weekStartDay = Calendar.getInstance(); + weekStartDay.add(Calendar.DAY_OF_YEAR, 37*(-1)); + String weekStartTime = CalendarDayStartToString(weekStartDay); + System.out.println(weekStartTime); + ApiDto weekDto = new ApiDto(); + weekDto.setStartTime(weekStartTime); + weekDto.setEndTime(nowTime); + weekDto.setPageNumber(dto.getPageNumber()); + weekDto.setPageSize(99999); + weekDto.setFilter(filter); + String weekstr = HttpUtil.sendPost("http://223.75.53.141:8000/shzh/met/zyqxfw/api/warning/getGroupWarning", JSON.toJSONString(weekDto)); + JSONObject weekjson = JSON.parseObject(weekstr); + System.out.println("weekstr:"+weekjson); + if (weekjson != null && weekjson.getInteger("code") == HttpStatus.SC_OK) { + List data = weekjson.getJSONArray("data").toJavaList(WarningData.class); +// return ResultJson.ok(getCount(data, publishUnit, warnSignalLevel, warnSignalType)); +// List listWarnStats = getCount(data, publishUnit, warnSignalLevel, warnSignalType); +// System.out.println("周统计:"+listWarnStats.size()); +// for(WarningHistoryListVo warnList:listWarnStats){ +// System.out.println("周统计-:"+warnList.getSumCount()+"个"); +// } + fbStatsVO = getCount3(data); +// System.out.println("周统计:"+weekWarnNum +"个"); + + } + return ResultJson.ok(fbStatsVO); + } + + private FBStatsVO getCount3(List data){ + int sum = 0; + FBStatsVO fbStats = new FBStatsVO(); +// Set cnCallList = new ArrayList<>(); + Set cnOrgCallList = new HashSet<>(); + Set cnRedCallList = new HashSet<>(); + int orgfbSum = 0; + int redfbSum = 0; + List warnList = Lists.newArrayList();//汇总 + for (WarningData datum : data) { + for (WarningData.TypeList typeList : datum.getTypeList()) { + warnList.addAll(typeList.getWarnList()); + } + } + List list = warnList.stream().filter(o -> "暴雨".equals(o.getWarnSignalType())).collect(Collectors.toList()); + //统计暴雨橙色预警 + List orgList = list.stream().filter(o -> "橙色".equals(o.getWarnSignalLevel())).collect(Collectors.toList()); + //统计暴雨红色预警 + List redList = list.stream().filter(o -> "红色".equals(o.getWarnSignalLevel())).collect(Collectors.toList()); + //暴雨橙色预警个数 + fbStats.setOrgWarnSum(orgList.size()); + //暴雨红色预警个数 + fbStats.setRedWarnSum(redList.size()); + //查询叫应信息:根据warnid查询——暴雨橙色预警 + //根据预警id,查找有没有呼叫过 + for(WarningData.Warning warning:orgList){ + List msgfbList = warnMsgFBService.find(new WarnMsgFB().setWarnid(warning.getId()));//查询msgfb + String cn = warning.getEffectArea(); + String[] cnList = cn.split(","); + for(int i=0;i(cnOrgCallList)); + //查询叫应信息:根据warnid查询——暴雨红色预警 + //根据预警id,查找有没有呼叫过 + for(WarningData.Warning warning:redList){ + List msgfbList = warnMsgFBService.find(new WarnMsgFB().setWarnid(warning.getId()));//查询msgfb + String cn = warning.getEffectArea(); + String[] cnList = cn.split(","); + for(int i=0;i(cnRedCallList)); + return fbStats; + } + private List getPageWarning(List data, int pageNumber, int pageSize){ List qxWarningVOS = new ArrayList<>(); // List warnList = Lists.newArrayList();//汇总 diff --git a/src/main/java/com/whdc/model/vo/FBStatsVO.java b/src/main/java/com/whdc/model/vo/FBStatsVO.java new file mode 100644 index 0000000..0ef8e68 --- /dev/null +++ b/src/main/java/com/whdc/model/vo/FBStatsVO.java @@ -0,0 +1,15 @@ +package com.whdc.model.vo; + +import lombok.Data; + +import java.util.List; + +@Data +public class FBStatsVO { + private int orgWarnSum;//暴雨黄色预警次数 + private int redWarnSum;//暴雨红色预警次数 + private List cnOrgCallList;//叫应的县列表-暴雨黄色预警 + private int callOrgSum;//叫应次数-暴雨黄色预警 + private List cnRedCallList;//叫应的县列表-暴雨红色预警 + private int callRedSum;//叫应次数-暴雨红色预警 +}