通过行政区划下载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.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -72,50 +69,50 @@ public class WarningController {
|
|||
ArrayList<ApiDto.Filter> filter = Lists.newArrayList();
|
||||
|
||||
String publishUnit = dto.getPublishUnit();
|
||||
if (StringUtils.isNotBlank(publishUnit)) {
|
||||
String[] split = publishUnit.split(",");
|
||||
if (split.length > 1) {
|
||||
String str = "(";
|
||||
for (String s : split) {
|
||||
str += s + ",";
|
||||
}
|
||||
str = str.substring(0, str.length() - 1) + ")";
|
||||
filter.add(new ApiDto.Filter("publishUnit", "in " + str, ""));
|
||||
|
||||
} else {
|
||||
filter.add(new ApiDto.Filter("publishUnit", "like", String.format("%s%s%s", "%", publishUnit, "%")));
|
||||
}
|
||||
}
|
||||
// if (StringUtils.isNotBlank(publishUnit)) {
|
||||
// String[] split = publishUnit.split(",");
|
||||
// if (split.length > 1) {
|
||||
// String str = "(";
|
||||
// for (String s : split) {
|
||||
// str += s + ",";
|
||||
// }
|
||||
// str = str.substring(0, str.length() - 1) + ")";
|
||||
// filter.add(new ApiDto.Filter("publishUnit", "in " + str, ""));
|
||||
//
|
||||
// } else {
|
||||
// filter.add(new ApiDto.Filter("publishUnit", "like", String.format("%s%s%s", "%", publishUnit, "%")));
|
||||
// }
|
||||
// }
|
||||
String warnSignalLevel = dto.getWarnSignalLevel();
|
||||
if (StringUtils.isNotBlank(warnSignalLevel)) {
|
||||
String[] split = warnSignalLevel.split(",");
|
||||
if (split.length > 1) {
|
||||
String str = "(";
|
||||
for (String s : split) {
|
||||
str += s + ",";
|
||||
}
|
||||
str = str.substring(0, str.length() - 1) + ")";
|
||||
filter.add(new ApiDto.Filter("warnSignalLevel", "in " + str, ""));
|
||||
|
||||
} else {
|
||||
filter.add(new ApiDto.Filter("warnSignalLevel", "like", String.format("%s%s%s", "%", warnSignalLevel, "%")));
|
||||
}
|
||||
}
|
||||
// if (StringUtils.isNotBlank(warnSignalLevel)) {
|
||||
// String[] split = warnSignalLevel.split(",");
|
||||
// if (split.length > 1) {
|
||||
// String str = "(";
|
||||
// for (String s : split) {
|
||||
// str += s + ",";
|
||||
// }
|
||||
// str = str.substring(0, str.length() - 1) + ")";
|
||||
// filter.add(new ApiDto.Filter("warnSignalLevel", "in " + str, ""));
|
||||
//
|
||||
// } else {
|
||||
// filter.add(new ApiDto.Filter("warnSignalLevel", "like", String.format("%s%s%s", "%", warnSignalLevel, "%")));
|
||||
// }
|
||||
// }
|
||||
String warnSignalType = dto.getWarnSignalType();
|
||||
if (StringUtils.isNotBlank(warnSignalType)) {
|
||||
String[] split = warnSignalType.split(",");
|
||||
if (split.length > 1) {
|
||||
String str = "(";
|
||||
for (String s : split) {
|
||||
str += s + ",";
|
||||
}
|
||||
str = str.substring(0, str.length() - 1) + ")";
|
||||
filter.add(new ApiDto.Filter("warnSignalType", "in " + str, ""));
|
||||
|
||||
} else {
|
||||
filter.add(new ApiDto.Filter("warnSignalType", "like", String.format("%s%s%s", "%", warnSignalType, "%")));
|
||||
}
|
||||
}
|
||||
// if (StringUtils.isNotBlank(warnSignalType)) {
|
||||
// String[] split = warnSignalType.split(",");
|
||||
// if (split.length > 1) {
|
||||
// String str = "(";
|
||||
// for (String s : split) {
|
||||
// str += s + ",";
|
||||
// }
|
||||
// str = str.substring(0, str.length() - 1) + ")";
|
||||
// filter.add(new ApiDto.Filter("warnSignalType", "in " + str, ""));
|
||||
//
|
||||
// } else {
|
||||
// filter.add(new ApiDto.Filter("warnSignalType", "like", String.format("%s%s%s", "%", warnSignalType, "%")));
|
||||
// }
|
||||
// }
|
||||
|
||||
apiDto.setFilter(filter);
|
||||
// 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);
|
||||
if (json != null && json.getInteger("code") == HttpStatus.SC_OK) {
|
||||
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);
|
||||
|
|
@ -147,50 +145,50 @@ public class WarningController {
|
|||
ArrayList<ApiDto.Filter> filter = Lists.newArrayList();
|
||||
|
||||
String publishUnit = dto.getPublishUnit();
|
||||
if (StringUtils.isNotBlank(publishUnit)) {
|
||||
String[] split = publishUnit.split(",");
|
||||
if (split.length > 1) {
|
||||
String str = "(";
|
||||
for (String s : split) {
|
||||
str += s + ",";
|
||||
}
|
||||
str = str.substring(0, str.length() - 1) + ")";
|
||||
filter.add(new ApiDto.Filter("publishUnit", "in " + str, ""));
|
||||
|
||||
} else {
|
||||
filter.add(new ApiDto.Filter("publishUnit", "like", String.format("%s%s%s", "%", publishUnit, "%")));
|
||||
}
|
||||
}
|
||||
// if (StringUtils.isNotBlank(publishUnit)) {
|
||||
// String[] split = publishUnit.split(",");
|
||||
// if (split.length > 1) {
|
||||
// String str = "(";
|
||||
// for (String s : split) {
|
||||
// str += s + ",";
|
||||
// }
|
||||
// str = str.substring(0, str.length() - 1) + ")";
|
||||
// filter.add(new ApiDto.Filter("publishUnit", "in " + str, ""));
|
||||
//
|
||||
// } else {
|
||||
// filter.add(new ApiDto.Filter("publishUnit", "like", String.format("%s%s%s", "%", publishUnit, "%")));
|
||||
// }
|
||||
// }
|
||||
String warnSignalLevel = dto.getWarnSignalLevel();
|
||||
if (StringUtils.isNotBlank(warnSignalLevel)) {
|
||||
String[] split = warnSignalLevel.split(",");
|
||||
if (split.length > 1) {
|
||||
String str = "(";
|
||||
for (String s : split) {
|
||||
str += s + ",";
|
||||
}
|
||||
str = str.substring(0, str.length() - 1) + ")";
|
||||
filter.add(new ApiDto.Filter("warnSignalLevel", "in " + str, ""));
|
||||
|
||||
} else {
|
||||
filter.add(new ApiDto.Filter("warnSignalLevel", "like", String.format("%s%s%s", "%", warnSignalLevel, "%")));
|
||||
}
|
||||
}
|
||||
// if (StringUtils.isNotBlank(warnSignalLevel)) {
|
||||
// String[] split = warnSignalLevel.split(",");
|
||||
// if (split.length > 1) {
|
||||
// String str = "(";
|
||||
// for (String s : split) {
|
||||
// str += s + ",";
|
||||
// }
|
||||
// str = str.substring(0, str.length() - 1) + ")";
|
||||
// filter.add(new ApiDto.Filter("warnSignalLevel", "in " + str, ""));
|
||||
//
|
||||
// } else {
|
||||
// filter.add(new ApiDto.Filter("warnSignalLevel", "like", String.format("%s%s%s", "%", warnSignalLevel, "%")));
|
||||
// }
|
||||
// }
|
||||
String warnSignalType = dto.getWarnSignalType();
|
||||
if (StringUtils.isNotBlank(warnSignalType)) {
|
||||
String[] split = warnSignalType.split(",");
|
||||
if (split.length > 1) {
|
||||
String str = "(";
|
||||
for (String s : split) {
|
||||
str += s + ",";
|
||||
}
|
||||
str = str.substring(0, str.length() - 1) + ")";
|
||||
filter.add(new ApiDto.Filter("warnSignalType", "in " + str, ""));
|
||||
|
||||
} else {
|
||||
filter.add(new ApiDto.Filter("warnSignalType", "like", String.format("%s%s%s", "%", warnSignalType, "%")));
|
||||
}
|
||||
}
|
||||
// if (StringUtils.isNotBlank(warnSignalType)) {
|
||||
// String[] split = warnSignalType.split(",");
|
||||
// if (split.length > 1) {
|
||||
// String str = "(";
|
||||
// for (String s : split) {
|
||||
// str += s + ",";
|
||||
// }
|
||||
// str = str.substring(0, str.length() - 1) + ")";
|
||||
// filter.add(new ApiDto.Filter("warnSignalType", "in " + str, ""));
|
||||
//
|
||||
// } else {
|
||||
// filter.add(new ApiDto.Filter("warnSignalType", "like", String.format("%s%s%s", "%", warnSignalType, "%")));
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
apiDto.setFilter(filter);
|
||||
|
|
@ -199,7 +197,7 @@ public class WarningController {
|
|||
JSONObject json = JSON.parseObject(str);
|
||||
if (json != null && json.getInteger("code") == HttpStatus.SC_OK) {
|
||||
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);
|
||||
|
|
@ -211,21 +209,28 @@ public class WarningController {
|
|||
* @param data
|
||||
* @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();
|
||||
for (WarningData datum : data) {
|
||||
for (WarningData.TypeList typeList : datum.getTypeList()) {
|
||||
// 预警类型
|
||||
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();
|
||||
String publishUnit = warning.getPublishUnit();
|
||||
vo.setTitle(publishUnit + "发布" + type + "预警");
|
||||
vo.setPublishTime(warning.getPublishTime());
|
||||
vo.setContent(warning.getContent());
|
||||
vo.setWarnSignalType(warning.getWarnSignalType());
|
||||
vo.setWarnSignalLevel(warning.getWarnSignalLevel());
|
||||
vo.setAdnm(publishUnit.replace("气象台", ""));
|
||||
vo.setAddressBooks(addressBookService.getListByAdnm(publishUnit.replace("气象台", "")));
|
||||
respList.add(vo);
|
||||
}
|
||||
|
|
@ -238,10 +243,53 @@ public class WarningController {
|
|||
/**
|
||||
* 正在生效预警
|
||||
*
|
||||
* @param data
|
||||
* @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();
|
||||
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()
|
||||
.collect(Collectors
|
||||
.groupingBy(WarningData.Warning::getPublishUnit, Collectors.toList()));
|
||||
|
||||
|
||||
List<WarningHistoryListVo> voList = Lists.newArrayList();
|
||||
|
||||
warnMap.forEach((k, v) -> {
|
||||
|
|
@ -361,7 +412,7 @@ public class WarningController {
|
|||
String adnm = adcdTree.getAdnm();
|
||||
List<AdcdTree> children = adcdTree.getChildren();
|
||||
|
||||
List<WarningHistoryListVo> vos = areaMap.get(adnm);
|
||||
List<WarningHistoryListVo> vos = areaMap.remove(adnm);
|
||||
if (CollectionUtils.isNotEmpty(vos)) {
|
||||
WarningHistoryListVo vo = vos.get(0);
|
||||
List<WarningHistoryListVo> childList = Lists.newArrayList();
|
||||
|
|
@ -371,7 +422,7 @@ public class WarningController {
|
|||
for (int i = 1; i < children.size(); i++) {
|
||||
AdcdTree t = children.get(i);
|
||||
String adnm1 = t.getAdnm();
|
||||
List<WarningHistoryListVo> vos1 = areaMap.get(adnm1);
|
||||
List<WarningHistoryListVo> vos1 = areaMap.remove(adnm1);
|
||||
if (CollectionUtils.isNotEmpty(vos1)) {
|
||||
childList.addAll(vos1);
|
||||
}
|
||||
|
|
@ -384,6 +435,7 @@ public class WarningController {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
return respList;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,10 @@ public class WarningListVo {
|
|||
@ApiModelProperty(value = "预警级别", dataType = "java.lang.String")
|
||||
private String warnSignalLevel;
|
||||
|
||||
@ApiParam(value = "行政区划")
|
||||
@ApiModelProperty(value = "行政区划", dataType = "java.lang.String")
|
||||
private String adnm;
|
||||
|
||||
@ApiModelProperty(value = "预警内容")
|
||||
private String content;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue