通过行政区划下载excel新增
parent
e39dc5b555
commit
1da721dc35
|
|
@ -27,10 +27,7 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -72,50 +69,50 @@ public class WarningController {
|
||||||
ArrayList<ApiDto.Filter> filter = Lists.newArrayList();
|
ArrayList<ApiDto.Filter> filter = Lists.newArrayList();
|
||||||
|
|
||||||
String publishUnit = dto.getPublishUnit();
|
String publishUnit = dto.getPublishUnit();
|
||||||
if (StringUtils.isNotBlank(publishUnit)) {
|
// if (StringUtils.isNotBlank(publishUnit)) {
|
||||||
String[] split = publishUnit.split(",");
|
// String[] split = publishUnit.split(",");
|
||||||
if (split.length > 1) {
|
// if (split.length > 1) {
|
||||||
String str = "(";
|
// String str = "(";
|
||||||
for (String s : split) {
|
// 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, ""));
|
// filter.add(new ApiDto.Filter("publishUnit", "in " + str, ""));
|
||||||
|
//
|
||||||
} else {
|
// } else {
|
||||||
filter.add(new ApiDto.Filter("publishUnit", "like", String.format("%s%s%s", "%", publishUnit, "%")));
|
// filter.add(new ApiDto.Filter("publishUnit", "like", String.format("%s%s%s", "%", publishUnit, "%")));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
String warnSignalLevel = dto.getWarnSignalLevel();
|
String warnSignalLevel = dto.getWarnSignalLevel();
|
||||||
if (StringUtils.isNotBlank(warnSignalLevel)) {
|
// if (StringUtils.isNotBlank(warnSignalLevel)) {
|
||||||
String[] split = warnSignalLevel.split(",");
|
// String[] split = warnSignalLevel.split(",");
|
||||||
if (split.length > 1) {
|
// if (split.length > 1) {
|
||||||
String str = "(";
|
// String str = "(";
|
||||||
for (String s : split) {
|
// 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, ""));
|
// filter.add(new ApiDto.Filter("warnSignalLevel", "in " + str, ""));
|
||||||
|
//
|
||||||
} else {
|
// } else {
|
||||||
filter.add(new ApiDto.Filter("warnSignalLevel", "like", String.format("%s%s%s", "%", warnSignalLevel, "%")));
|
// filter.add(new ApiDto.Filter("warnSignalLevel", "like", String.format("%s%s%s", "%", warnSignalLevel, "%")));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
String warnSignalType = dto.getWarnSignalType();
|
String warnSignalType = dto.getWarnSignalType();
|
||||||
if (StringUtils.isNotBlank(warnSignalType)) {
|
// if (StringUtils.isNotBlank(warnSignalType)) {
|
||||||
String[] split = warnSignalType.split(",");
|
// String[] split = warnSignalType.split(",");
|
||||||
if (split.length > 1) {
|
// if (split.length > 1) {
|
||||||
String str = "(";
|
// String str = "(";
|
||||||
for (String s : split) {
|
// 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, ""));
|
// filter.add(new ApiDto.Filter("warnSignalType", "in " + str, ""));
|
||||||
|
//
|
||||||
} else {
|
// } else {
|
||||||
filter.add(new ApiDto.Filter("warnSignalType", "like", String.format("%s%s%s", "%", warnSignalType, "%")));
|
// filter.add(new ApiDto.Filter("warnSignalType", "like", String.format("%s%s%s", "%", warnSignalType, "%")));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
apiDto.setFilter(filter);
|
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));
|
||||||
|
|
@ -123,7 +120,8 @@ public class WarningController {
|
||||||
JSONObject json = JSON.parseObject(str);
|
JSONObject json = JSON.parseObject(str);
|
||||||
if (json != null && json.getInteger("code") == HttpStatus.SC_OK) {
|
if (json != null && json.getInteger("code") == HttpStatus.SC_OK) {
|
||||||
List<WarningData> data = json.getJSONArray("data").toJavaList(WarningData.class);
|
List<WarningData> data = json.getJSONArray("data").toJavaList(WarningData.class);
|
||||||
return ResultJson.ok(getList(data));
|
|
||||||
|
return ResultJson.ok(getList(data, publishUnit, warnSignalLevel, warnSignalType));
|
||||||
}
|
}
|
||||||
|
|
||||||
return ResultJson.ok(json);
|
return ResultJson.ok(json);
|
||||||
|
|
@ -147,50 +145,50 @@ public class WarningController {
|
||||||
ArrayList<ApiDto.Filter> filter = Lists.newArrayList();
|
ArrayList<ApiDto.Filter> filter = Lists.newArrayList();
|
||||||
|
|
||||||
String publishUnit = dto.getPublishUnit();
|
String publishUnit = dto.getPublishUnit();
|
||||||
if (StringUtils.isNotBlank(publishUnit)) {
|
// if (StringUtils.isNotBlank(publishUnit)) {
|
||||||
String[] split = publishUnit.split(",");
|
// String[] split = publishUnit.split(",");
|
||||||
if (split.length > 1) {
|
// if (split.length > 1) {
|
||||||
String str = "(";
|
// String str = "(";
|
||||||
for (String s : split) {
|
// 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, ""));
|
// filter.add(new ApiDto.Filter("publishUnit", "in " + str, ""));
|
||||||
|
//
|
||||||
} else {
|
// } else {
|
||||||
filter.add(new ApiDto.Filter("publishUnit", "like", String.format("%s%s%s", "%", publishUnit, "%")));
|
// filter.add(new ApiDto.Filter("publishUnit", "like", String.format("%s%s%s", "%", publishUnit, "%")));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
String warnSignalLevel = dto.getWarnSignalLevel();
|
String warnSignalLevel = dto.getWarnSignalLevel();
|
||||||
if (StringUtils.isNotBlank(warnSignalLevel)) {
|
// if (StringUtils.isNotBlank(warnSignalLevel)) {
|
||||||
String[] split = warnSignalLevel.split(",");
|
// String[] split = warnSignalLevel.split(",");
|
||||||
if (split.length > 1) {
|
// if (split.length > 1) {
|
||||||
String str = "(";
|
// String str = "(";
|
||||||
for (String s : split) {
|
// 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, ""));
|
// filter.add(new ApiDto.Filter("warnSignalLevel", "in " + str, ""));
|
||||||
|
//
|
||||||
} else {
|
// } else {
|
||||||
filter.add(new ApiDto.Filter("warnSignalLevel", "like", String.format("%s%s%s", "%", warnSignalLevel, "%")));
|
// filter.add(new ApiDto.Filter("warnSignalLevel", "like", String.format("%s%s%s", "%", warnSignalLevel, "%")));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
String warnSignalType = dto.getWarnSignalType();
|
String warnSignalType = dto.getWarnSignalType();
|
||||||
if (StringUtils.isNotBlank(warnSignalType)) {
|
// if (StringUtils.isNotBlank(warnSignalType)) {
|
||||||
String[] split = warnSignalType.split(",");
|
// String[] split = warnSignalType.split(",");
|
||||||
if (split.length > 1) {
|
// if (split.length > 1) {
|
||||||
String str = "(";
|
// String str = "(";
|
||||||
for (String s : split) {
|
// 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, ""));
|
// filter.add(new ApiDto.Filter("warnSignalType", "in " + str, ""));
|
||||||
|
//
|
||||||
} else {
|
// } else {
|
||||||
filter.add(new ApiDto.Filter("warnSignalType", "like", String.format("%s%s%s", "%", warnSignalType, "%")));
|
// filter.add(new ApiDto.Filter("warnSignalType", "like", String.format("%s%s%s", "%", warnSignalType, "%")));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
apiDto.setFilter(filter);
|
apiDto.setFilter(filter);
|
||||||
|
|
@ -199,7 +197,7 @@ public class WarningController {
|
||||||
JSONObject json = JSON.parseObject(str);
|
JSONObject json = JSON.parseObject(str);
|
||||||
if (json != null && json.getInteger("code") == HttpStatus.SC_OK) {
|
if (json != null && json.getInteger("code") == HttpStatus.SC_OK) {
|
||||||
List<WarningData> data = json.getJSONArray("data").toJavaList(WarningData.class);
|
List<WarningData> data = json.getJSONArray("data").toJavaList(WarningData.class);
|
||||||
return ResultJson.ok(getCount(data));
|
return ResultJson.ok(getCount(data, publishUnit, warnSignalLevel, warnSignalType));
|
||||||
}
|
}
|
||||||
|
|
||||||
return ResultJson.ok(json);
|
return ResultJson.ok(json);
|
||||||
|
|
@ -211,21 +209,28 @@ public class WarningController {
|
||||||
* @param data
|
* @param data
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private List<WarningListVo> getList(List<WarningData> data) {
|
private List<WarningListVo> getList(List<WarningData> data,
|
||||||
|
String reqPublishUnit,
|
||||||
|
String reqWarnSignalLevel,
|
||||||
|
String reqWarnSignalType) {
|
||||||
|
|
||||||
List<WarningListVo> respList = Lists.newArrayList();
|
List<WarningListVo> respList = Lists.newArrayList();
|
||||||
for (WarningData datum : data) {
|
for (WarningData datum : data) {
|
||||||
for (WarningData.TypeList typeList : datum.getTypeList()) {
|
for (WarningData.TypeList typeList : datum.getTypeList()) {
|
||||||
// 预警类型
|
// 预警类型
|
||||||
String type = typeList.getType();
|
String type = typeList.getType();
|
||||||
for (WarningData.Warning warning : typeList.getWarnList()) {
|
List<WarningData.Warning> warnList = typeList.getWarnList();
|
||||||
|
|
||||||
|
warnList = warnListFilter(warnList, reqPublishUnit, reqWarnSignalLevel, reqWarnSignalType);
|
||||||
|
|
||||||
|
for (WarningData.Warning warning : warnList) {
|
||||||
WarningListVo vo = new WarningListVo();
|
WarningListVo vo = new WarningListVo();
|
||||||
String publishUnit = warning.getPublishUnit();
|
String publishUnit = warning.getPublishUnit();
|
||||||
vo.setTitle(publishUnit + "发布" + type + "预警");
|
vo.setTitle(publishUnit + "发布" + type + "预警");
|
||||||
vo.setPublishTime(warning.getPublishTime());
|
vo.setPublishTime(warning.getPublishTime());
|
||||||
vo.setContent(warning.getContent());
|
vo.setContent(warning.getContent());
|
||||||
vo.setWarnSignalType(warning.getWarnSignalType());
|
vo.setWarnSignalType(warning.getWarnSignalType());
|
||||||
vo.setWarnSignalLevel(warning.getWarnSignalLevel());
|
vo.setAdnm(publishUnit.replace("气象台", ""));
|
||||||
vo.setAddressBooks(addressBookService.getListByAdnm(publishUnit.replace("气象台", "")));
|
vo.setAddressBooks(addressBookService.getListByAdnm(publishUnit.replace("气象台", "")));
|
||||||
respList.add(vo);
|
respList.add(vo);
|
||||||
}
|
}
|
||||||
|
|
@ -238,10 +243,53 @@ public class WarningController {
|
||||||
/**
|
/**
|
||||||
* 正在生效预警
|
* 正在生效预警
|
||||||
*
|
*
|
||||||
* @param data
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private List<WarningHistoryListVo> getCount(List<WarningData> data) {
|
private List<WarningData.Warning> warnListFilter(List<WarningData.Warning> warnList,
|
||||||
|
String publishUnit,
|
||||||
|
String warnSignalLevel,
|
||||||
|
String warnSignalType
|
||||||
|
) {
|
||||||
|
if (StringUtils.isNotBlank(publishUnit)) {
|
||||||
|
HashSet<String> set = Sets.newHashSet(publishUnit.split(","));
|
||||||
|
if (CollectionUtils.isNotEmpty(set)) {
|
||||||
|
warnList = warnList.stream()
|
||||||
|
.filter(w ->
|
||||||
|
set.contains(w.getPublishUnit().split("气象")[0])
|
||||||
|
).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(warnSignalLevel)) {
|
||||||
|
HashSet<String> set = Sets.newHashSet(warnSignalLevel.split(","));
|
||||||
|
if (CollectionUtils.isNotEmpty(set)) {
|
||||||
|
warnList = warnList.stream()
|
||||||
|
.filter(w ->
|
||||||
|
set.contains(w.getWarnSignalLevel())
|
||||||
|
).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(warnSignalType)) {
|
||||||
|
HashSet<String> set = Sets.newHashSet(warnSignalType.split(","));
|
||||||
|
if (CollectionUtils.isNotEmpty(set)) {
|
||||||
|
warnList = warnList.stream()
|
||||||
|
.filter(w ->
|
||||||
|
set.contains(w.getWarnSignalType())
|
||||||
|
).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return warnList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<WarningHistoryListVo> getCount(List<WarningData> data,
|
||||||
|
String publishUnit,
|
||||||
|
String warnSignalLevel,
|
||||||
|
String reqWarnSignalType
|
||||||
|
) {
|
||||||
|
|
||||||
List<WarningData.Warning> warnList = Lists.newArrayList();
|
List<WarningData.Warning> warnList = Lists.newArrayList();
|
||||||
for (WarningData datum : data) {
|
for (WarningData datum : data) {
|
||||||
|
|
@ -253,10 +301,13 @@ public class WarningController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
warnList = warnListFilter(warnList, publishUnit, warnSignalLevel, reqWarnSignalType);
|
||||||
|
|
||||||
Map<String, List<WarningData.Warning>> warnMap = warnList.stream()
|
Map<String, List<WarningData.Warning>> warnMap = warnList.stream()
|
||||||
.collect(Collectors
|
.collect(Collectors
|
||||||
.groupingBy(WarningData.Warning::getPublishUnit, Collectors.toList()));
|
.groupingBy(WarningData.Warning::getPublishUnit, Collectors.toList()));
|
||||||
|
|
||||||
|
|
||||||
List<WarningHistoryListVo> voList = Lists.newArrayList();
|
List<WarningHistoryListVo> voList = Lists.newArrayList();
|
||||||
|
|
||||||
warnMap.forEach((k, v) -> {
|
warnMap.forEach((k, v) -> {
|
||||||
|
|
@ -310,7 +361,7 @@ public class WarningController {
|
||||||
});
|
});
|
||||||
|
|
||||||
// 保证完整数据
|
// 保证完整数据
|
||||||
warnSignalType.forEach(kt ->{
|
warnSignalType.forEach(kt -> {
|
||||||
WarningHistoryListVo voType = new WarningHistoryListVo();
|
WarningHistoryListVo voType = new WarningHistoryListVo();
|
||||||
voType.setWarnSignalType(kt);
|
voType.setWarnSignalType(kt);
|
||||||
typeList.add(voType);
|
typeList.add(voType);
|
||||||
|
|
@ -335,8 +386,8 @@ public class WarningController {
|
||||||
return setAll(voList);
|
return setAll(voList);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<WarningHistoryListVo> setAll( List<WarningHistoryListVo> vos){
|
private List<WarningHistoryListVo> setAll(List<WarningHistoryListVo> vos) {
|
||||||
if (CollectionUtils.isNotEmpty(vos)){
|
if (CollectionUtils.isNotEmpty(vos)) {
|
||||||
WarningHistoryListVo vo = new WarningHistoryListVo();
|
WarningHistoryListVo vo = new WarningHistoryListVo();
|
||||||
vo.setWarnSignalType("全部");
|
vo.setWarnSignalType("全部");
|
||||||
vo.setEffectArea("总计");
|
vo.setEffectArea("总计");
|
||||||
|
|
@ -349,7 +400,7 @@ public class WarningController {
|
||||||
int yelSum = vos.stream().mapToInt(WarningHistoryListVo::getYelCount).sum();
|
int yelSum = vos.stream().mapToInt(WarningHistoryListVo::getYelCount).sum();
|
||||||
vo.setYelCount(yelSum);
|
vo.setYelCount(yelSum);
|
||||||
vo.setSumCount(oraSum + redSum + bluSum + yelSum);
|
vo.setSumCount(oraSum + redSum + bluSum + yelSum);
|
||||||
vos.add(0,vo);
|
vos.add(0, vo);
|
||||||
}
|
}
|
||||||
return vos;
|
return vos;
|
||||||
}
|
}
|
||||||
|
|
@ -361,7 +412,7 @@ public class WarningController {
|
||||||
String adnm = adcdTree.getAdnm();
|
String adnm = adcdTree.getAdnm();
|
||||||
List<AdcdTree> children = adcdTree.getChildren();
|
List<AdcdTree> children = adcdTree.getChildren();
|
||||||
|
|
||||||
List<WarningHistoryListVo> vos = areaMap.get(adnm);
|
List<WarningHistoryListVo> vos = areaMap.remove(adnm);
|
||||||
if (CollectionUtils.isNotEmpty(vos)) {
|
if (CollectionUtils.isNotEmpty(vos)) {
|
||||||
WarningHistoryListVo vo = vos.get(0);
|
WarningHistoryListVo vo = vos.get(0);
|
||||||
List<WarningHistoryListVo> childList = Lists.newArrayList();
|
List<WarningHistoryListVo> childList = Lists.newArrayList();
|
||||||
|
|
@ -371,7 +422,7 @@ public class WarningController {
|
||||||
for (int i = 1; i < children.size(); i++) {
|
for (int i = 1; i < children.size(); i++) {
|
||||||
AdcdTree t = children.get(i);
|
AdcdTree t = children.get(i);
|
||||||
String adnm1 = t.getAdnm();
|
String adnm1 = t.getAdnm();
|
||||||
List<WarningHistoryListVo> vos1 = areaMap.get(adnm1);
|
List<WarningHistoryListVo> vos1 = areaMap.remove(adnm1);
|
||||||
if (CollectionUtils.isNotEmpty(vos1)) {
|
if (CollectionUtils.isNotEmpty(vos1)) {
|
||||||
childList.addAll(vos1);
|
childList.addAll(vos1);
|
||||||
}
|
}
|
||||||
|
|
@ -384,6 +435,7 @@ public class WarningController {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return respList;
|
return respList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,10 @@ public class WarningListVo {
|
||||||
@ApiModelProperty(value = "预警级别", dataType = "java.lang.String")
|
@ApiModelProperty(value = "预警级别", dataType = "java.lang.String")
|
||||||
private String warnSignalLevel;
|
private String warnSignalLevel;
|
||||||
|
|
||||||
|
@ApiParam(value = "行政区划")
|
||||||
|
@ApiModelProperty(value = "行政区划", dataType = "java.lang.String")
|
||||||
|
private String adnm;
|
||||||
|
|
||||||
@ApiModelProperty(value = "预警内容")
|
@ApiModelProperty(value = "预警内容")
|
||||||
private String content;
|
private String content;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue