/getFBStats:历史7天暴雨预警叫应信息统计。
parent
6a6ccb1419
commit
0f3fc836d7
|
|
@ -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<FBStatsVO> 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<ApiDto.Filter> 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<WarningData> data = weekjson.getJSONArray("data").toJavaList(WarningData.class);
|
||||
// return ResultJson.ok(getCount(data, publishUnit, warnSignalLevel, warnSignalType));
|
||||
// List<WarningHistoryListVo> 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<WarningData> data){
|
||||
int sum = 0;
|
||||
FBStatsVO fbStats = new FBStatsVO();
|
||||
// Set<String> cnCallList = new ArrayList<>();
|
||||
Set cnOrgCallList = new HashSet<>();
|
||||
Set cnRedCallList = new HashSet<>();
|
||||
int orgfbSum = 0;
|
||||
int redfbSum = 0;
|
||||
List<WarningData.Warning> warnList = Lists.newArrayList();//汇总
|
||||
for (WarningData datum : data) {
|
||||
for (WarningData.TypeList typeList : datum.getTypeList()) {
|
||||
warnList.addAll(typeList.getWarnList());
|
||||
}
|
||||
}
|
||||
List<WarningData.Warning> list = warnList.stream().filter(o -> "暴雨".equals(o.getWarnSignalType())).collect(Collectors.toList());
|
||||
//统计暴雨橙色预警
|
||||
List<WarningData.Warning> orgList = list.stream().filter(o -> "橙色".equals(o.getWarnSignalLevel())).collect(Collectors.toList());
|
||||
//统计暴雨红色预警
|
||||
List<WarningData.Warning> 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<WarnMsgFB> msgfbList = warnMsgFBService.find(new WarnMsgFB().setWarnid(warning.getId()));//查询msgfb
|
||||
String cn = warning.getEffectArea();
|
||||
String[] cnList = cn.split(",");
|
||||
for(int i=0;i<cnList.length;i++){
|
||||
cnOrgCallList.add(cnList[i]);
|
||||
}
|
||||
orgfbSum += msgfbList.size();
|
||||
}
|
||||
fbStats.setCallOrgSum(orgfbSum);
|
||||
fbStats.setCnOrgCallList(new ArrayList<>(cnOrgCallList));
|
||||
//查询叫应信息:根据warnid查询——暴雨红色预警
|
||||
//根据预警id,查找有没有呼叫过
|
||||
for(WarningData.Warning warning:redList){
|
||||
List<WarnMsgFB> msgfbList = warnMsgFBService.find(new WarnMsgFB().setWarnid(warning.getId()));//查询msgfb
|
||||
String cn = warning.getEffectArea();
|
||||
String[] cnList = cn.split(",");
|
||||
for(int i=0;i<cnList.length;i++){
|
||||
cnRedCallList.add(cnList[i]);
|
||||
}
|
||||
redfbSum += msgfbList.size();
|
||||
}
|
||||
fbStats.setCallOrgSum(redfbSum);
|
||||
fbStats.setCnOrgCallList(new ArrayList<>(cnRedCallList));
|
||||
return fbStats;
|
||||
}
|
||||
|
||||
private List<QXWarningVO> getPageWarning(List<WarningData> data, int pageNumber, int pageSize){
|
||||
List<QXWarningVO> qxWarningVOS = new ArrayList<>();
|
||||
// List<WarningData.Warning> warnList = Lists.newArrayList();//汇总
|
||||
|
|
|
|||
|
|
@ -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<String> cnOrgCallList;//叫应的县列表-暴雨黄色预警
|
||||
private int callOrgSum;//叫应次数-暴雨黄色预警
|
||||
private List<String> cnRedCallList;//叫应的县列表-暴雨红色预警
|
||||
private int callRedSum;//叫应次数-暴雨红色预警
|
||||
}
|
||||
Loading…
Reference in New Issue