气象预警历史气象预警新增
parent
e0cdd77f19
commit
5b0ce3dc41
|
|
@ -21,12 +21,15 @@ import lombok.extern.slf4j.Slf4j;
|
|||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cache.annotation.CacheEvict;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.whdc.model.MyConstant.REDIS_KEY;
|
||||
|
||||
/**
|
||||
* @author xusan
|
||||
* @date 2024-05-11
|
||||
|
|
@ -38,6 +41,8 @@ import java.util.Objects;
|
|||
@Transactional
|
||||
public class AddressBookController {
|
||||
|
||||
public static final String ADDRESS_BOOK_REDIS_KEY = REDIS_KEY + "addressbook:";
|
||||
|
||||
@Autowired
|
||||
private IAddressBookService service;
|
||||
|
||||
|
|
@ -54,7 +59,6 @@ public class AddressBookController {
|
|||
private IAbUdRService abUdRService;
|
||||
|
||||
|
||||
|
||||
// @ApiOperation(value = "查询所有")
|
||||
// @PostMapping(value = "find")
|
||||
// public ResultJson<AddressBook> find(@RequestBody AddressBook dto) {
|
||||
|
|
@ -77,67 +81,77 @@ public class AddressBookController {
|
|||
|
||||
@ApiOperation(value = "添加")
|
||||
@PostMapping(value = "save")
|
||||
@CacheEvict(value = ADDRESS_BOOK_REDIS_KEY, allEntries = true)
|
||||
public ResultJson insert(@RequestBody @Validated(Insert.class) AddressBook model) {
|
||||
User user = userService.getRole(Integer.valueOf(String.valueOf(StpUtil.getLoginId())));
|
||||
|
||||
switch (Objects.requireNonNull(Role.getByName(user.getRole()))) {
|
||||
case R000:return ResultJson.error("权限不足");
|
||||
case R000:
|
||||
return ResultJson.error("权限不足");
|
||||
case R001:
|
||||
case R099:break;
|
||||
default:return ResultJson.error("权限不足!!");
|
||||
case R099:
|
||||
break;
|
||||
default:
|
||||
return ResultJson.error("权限不足!!");
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(model.getRole())){
|
||||
if (StringUtils.isNotBlank(model.getRole())) {
|
||||
switch (Objects.requireNonNull(Role.getByName(user.getRole()))) {
|
||||
case R000:
|
||||
case R001:
|
||||
case R099:break;
|
||||
default:return ResultJson.error("权限不匹配");
|
||||
case R099:
|
||||
break;
|
||||
default:
|
||||
return ResultJson.error("权限不匹配");
|
||||
}
|
||||
if(Integer.parseInt(user.getRole()) < Integer.parseInt(model.getRole())){
|
||||
if (Integer.parseInt(user.getRole()) < Integer.parseInt(model.getRole())) {
|
||||
return ResultJson.error("权限不足!");
|
||||
}
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(
|
||||
service.lambdaQuery()
|
||||
.eq(AddressBook::getName,String.valueOf(model.getName()).trim())
|
||||
.list())
|
||||
){
|
||||
.eq(AddressBook::getName, String.valueOf(model.getName()).trim())
|
||||
.list())
|
||||
) {
|
||||
return ResultJson.error("该名称重复");
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(model.getPhone()) && CollectionUtils.isNotEmpty(
|
||||
service.lambdaQuery()
|
||||
.eq(AddressBook::getPhone,model.getPhone().trim())
|
||||
.list())
|
||||
){
|
||||
.eq(AddressBook::getPhone, model.getPhone().trim())
|
||||
.list())
|
||||
) {
|
||||
return ResultJson.error("该手机号已存在");
|
||||
}
|
||||
|
||||
// 添加日志
|
||||
versionsService.saveInfo(model,VersionsType.ADD);
|
||||
versionsService.saveInfo(model, VersionsType.ADD);
|
||||
model.setId(null);
|
||||
|
||||
boolean save = service.save(model);
|
||||
|
||||
if (save){
|
||||
if (save) {
|
||||
// 没有手机号用名字注册
|
||||
//"省防指".equals(organizationsService.getById(model.getOrganization()).getName())
|
||||
// &&
|
||||
if (StringUtils.isBlank(model.getPhone())){
|
||||
if (StringUtils.isNotBlank(model.getTel())){
|
||||
userService.register( model.getTel(), model.getId(),model.getRole());
|
||||
}else{
|
||||
userService.register( model.getName(), model.getId(),model.getRole());
|
||||
if (StringUtils.isBlank(model.getPhone())) {
|
||||
if (StringUtils.isNotBlank(model.getTel())) {
|
||||
userService.register(model.getTel(), model.getId(), model.getRole());
|
||||
} else {
|
||||
userService.register(model.getName(), model.getId(), model.getRole());
|
||||
}
|
||||
|
||||
}else{
|
||||
userService.register( model.getPhone(), model.getId(),model.getRole());
|
||||
} else {
|
||||
userService.register(model.getPhone(), model.getId(), model.getRole());
|
||||
}
|
||||
|
||||
// 添加关联关系
|
||||
abUdRService.save(new AbUdR(model.getId(),Integer.valueOf(model.getOrganization()),null,model.getType()));
|
||||
if (StringUtils.isNotBlank(model.getAdcd())) {
|
||||
abUdRService.save(new AbUdR(model.getId(), Integer.valueOf(model.getAdcd().replaceFirst("000000", "")), model.getSort(), model.getType()));
|
||||
} else {
|
||||
// 添加关联关系`
|
||||
abUdRService.save(new AbUdR(model.getId(), Integer.valueOf(model.getOrganization()), model.getSort(), model.getType()));
|
||||
}
|
||||
}
|
||||
|
||||
return ResultJson.ok(save);
|
||||
|
|
@ -146,54 +160,60 @@ public class AddressBookController {
|
|||
|
||||
@ApiOperation(value = "修改")
|
||||
@PostMapping(value = "edit")
|
||||
@CacheEvict(value = ADDRESS_BOOK_REDIS_KEY, allEntries = true)
|
||||
public ResultJson update(@RequestBody @Validated(Update.class) AddressBook model) {
|
||||
|
||||
Integer loginId = Integer.valueOf(String.valueOf(StpUtil.getLoginId()));
|
||||
User user = userService.getRole(loginId);
|
||||
|
||||
switch (Objects.requireNonNull(Role.getByName(user.getRole()))) {
|
||||
case R000:{
|
||||
case R000: {
|
||||
// 不是修改自己
|
||||
if (!model.getId().equals(user.getAbId())){
|
||||
if (!model.getId().equals(user.getAbId())) {
|
||||
return ResultJson.error("权限不足");
|
||||
}
|
||||
};
|
||||
}
|
||||
;
|
||||
case R001:
|
||||
case R099:break;
|
||||
default:return ResultJson.error("权限不足!!");
|
||||
case R099:
|
||||
break;
|
||||
default:
|
||||
return ResultJson.error("权限不足!!");
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(model.getRole())){
|
||||
if (StringUtils.isNotBlank(model.getRole())) {
|
||||
switch (Objects.requireNonNull(Role.getByName(user.getRole()))) {
|
||||
case R000:
|
||||
case R001:
|
||||
case R099:break;
|
||||
default:return ResultJson.error("权限不匹配");
|
||||
case R099:
|
||||
break;
|
||||
default:
|
||||
return ResultJson.error("权限不匹配");
|
||||
}
|
||||
if(Integer.parseInt(user.getRole()) < Integer.parseInt(model.getRole())){
|
||||
if (Integer.parseInt(user.getRole()) < Integer.parseInt(model.getRole())) {
|
||||
return ResultJson.error("权限不足!");
|
||||
}
|
||||
}
|
||||
AddressBook byId = service.getById(model.getId());
|
||||
if (Objects.isNull(byId)){
|
||||
if (Objects.isNull(byId)) {
|
||||
return ResultJson.error("当前数据不存在");
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(
|
||||
service.lambdaQuery()
|
||||
.eq(AddressBook::getName,String.valueOf(model.getName()).trim())
|
||||
.eq(AddressBook::getName, String.valueOf(model.getName()).trim())
|
||||
.ne(AddressBook::getId, model.getId())
|
||||
.list())
|
||||
){
|
||||
) {
|
||||
return ResultJson.error("该名称重复");
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(model.getPhone()) && CollectionUtils.isNotEmpty(
|
||||
service.lambdaQuery()
|
||||
.eq(AddressBook::getPhone,model.getPhone().trim())
|
||||
.eq(AddressBook::getPhone, model.getPhone().trim())
|
||||
.ne(AddressBook::getId, model.getId())
|
||||
.list())
|
||||
){
|
||||
) {
|
||||
return ResultJson.error("该手机号已存在");
|
||||
}
|
||||
|
||||
|
|
@ -211,46 +231,53 @@ public class AddressBookController {
|
|||
// }
|
||||
// // 添加日志
|
||||
// versionsService.save(new Versions(null, JSON.toJSONString(model),model.getId(),++version,model.getCreateId(),new Date(), VersionsType.UPDATE.getName()));
|
||||
versionsService.saveInfo(model,VersionsType.UPDATE);
|
||||
versionsService.saveInfo(model, VersionsType.UPDATE);
|
||||
boolean data = service.updateById(model);
|
||||
if (data) {
|
||||
abUdRService.lambdaUpdate()
|
||||
.set(AbUdR::getDictId,model.getOrganization())
|
||||
.eq(AbUdR::getAdId,model.getId());
|
||||
String organization = model.getOrganization();
|
||||
if (StringUtils.isNotBlank(model.getAdcd())) {
|
||||
organization = model.getAdcd().replaceFirst("000000", "");
|
||||
}
|
||||
boolean update = abUdRService.lambdaUpdate()
|
||||
.set(AbUdR::getSort, model.getSort())
|
||||
.set(AbUdR::getDictId, organization)
|
||||
.eq(AbUdR::getAdId, model.getId())
|
||||
.update();
|
||||
log.info("修改abUdR: " + update);
|
||||
|
||||
User one = userService.lambdaQuery().eq(User::getAbId, model.getId()).one();
|
||||
if (Objects.nonNull(one)){
|
||||
if (Objects.nonNull(one)) {
|
||||
// 没有就创建账号
|
||||
if (StringUtils.isBlank(model.getPhone())){
|
||||
if (StringUtils.isNotBlank(model.getTel())){
|
||||
if (StringUtils.isBlank(model.getPhone())) {
|
||||
if (StringUtils.isNotBlank(model.getTel())) {
|
||||
if (!one.getUsername().equals(model.getTel())) {
|
||||
one.setUsername(model.getTel())
|
||||
.updateById();
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
if (!one.getUsername().equals(model.getName())) {
|
||||
one.setUsername(model.getName())
|
||||
.updateById();
|
||||
}
|
||||
}
|
||||
|
||||
}else{
|
||||
} else {
|
||||
if (!one.getUsername().equals(model.getPhone())) {
|
||||
one.setUsername(model.getPhone())
|
||||
.updateById();
|
||||
}
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
// 没有就创建账号
|
||||
if (StringUtils.isBlank(model.getPhone())){
|
||||
if (StringUtils.isNotBlank(model.getTel())){
|
||||
userService.register( model.getTel(), model.getId(),model.getRole());
|
||||
}else{
|
||||
userService.register( model.getName(), model.getId(),model.getRole());
|
||||
if (StringUtils.isBlank(model.getPhone())) {
|
||||
if (StringUtils.isNotBlank(model.getTel())) {
|
||||
userService.register(model.getTel(), model.getId(), model.getRole());
|
||||
} else {
|
||||
userService.register(model.getName(), model.getId(), model.getRole());
|
||||
}
|
||||
|
||||
}else{
|
||||
userService.register( model.getPhone(), model.getId(),model.getRole());
|
||||
} else {
|
||||
userService.register(model.getPhone(), model.getId(), model.getRole());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -267,13 +294,16 @@ public class AddressBookController {
|
|||
|
||||
switch (Objects.requireNonNull(Role.getByName(user.getRole()))) {
|
||||
case R000:
|
||||
case R001: return ResultJson.error("权限不足");
|
||||
case R099:break;
|
||||
default:return ResultJson.error("权限不足!!");
|
||||
case R001:
|
||||
return ResultJson.error("权限不足");
|
||||
case R099:
|
||||
break;
|
||||
default:
|
||||
return ResultJson.error("权限不足!!");
|
||||
}
|
||||
|
||||
AddressBook byId = service.getById(model.getAbId());
|
||||
if (Objects.isNull(byId)){
|
||||
if (Objects.isNull(byId)) {
|
||||
return ResultJson.error("当前数据不存在");
|
||||
}
|
||||
|
||||
|
|
@ -292,7 +322,7 @@ public class AddressBookController {
|
|||
// }
|
||||
// // 添加日志
|
||||
// versionsService.save(new Versions(null, JSON.toJSONString(model),model.getId(),++version,model.getCreateId(),new Date(), VersionsType.UPDATE_ROLE.getName()));
|
||||
versionsService.saveInfo(byId,VersionsType.UPDATE_ROLE);
|
||||
versionsService.saveInfo(byId, VersionsType.UPDATE_ROLE);
|
||||
|
||||
|
||||
// 只修改角色
|
||||
|
|
@ -306,6 +336,7 @@ public class AddressBookController {
|
|||
|
||||
@ApiOperation(value = "删除")
|
||||
@GetMapping(value = "del/{id}")
|
||||
@CacheEvict(value = ADDRESS_BOOK_REDIS_KEY, allEntries = true)
|
||||
public ResultJson delete(@PathVariable("id") Integer id) {
|
||||
|
||||
Integer loginId = Integer.valueOf(String.valueOf(StpUtil.getLoginId()));
|
||||
|
|
@ -313,9 +344,12 @@ public class AddressBookController {
|
|||
|
||||
switch (Objects.requireNonNull(Role.getByName(user.getRole()))) {
|
||||
case R000:
|
||||
case R001: return ResultJson.error("权限不足");
|
||||
case R099:break;
|
||||
default:return ResultJson.error("权限不足!!");
|
||||
case R001:
|
||||
return ResultJson.error("权限不足");
|
||||
case R099:
|
||||
break;
|
||||
default:
|
||||
return ResultJson.error("权限不足!!");
|
||||
}
|
||||
|
||||
AddressBook model = service.getById(id);
|
||||
|
|
@ -340,7 +374,7 @@ public class AddressBookController {
|
|||
// }
|
||||
// // 添加日志
|
||||
// versionsService.save(new Versions(null, JSON.toJSONString(model),model.getId(),++version,model.getCreateId(),new Date(), VersionsType.DEL.getName()));
|
||||
versionsService.saveInfo(model,VersionsType.DEL);
|
||||
versionsService.saveInfo(model, VersionsType.DEL);
|
||||
|
||||
|
||||
return ResultJson.ok(service.removeById(id));
|
||||
|
|
@ -352,10 +386,10 @@ public class AddressBookController {
|
|||
public ResultJson get(@PathVariable("id") Integer id) {
|
||||
|
||||
AddressBook byId = service.getById(id);
|
||||
if (byId != null){
|
||||
if (StringUtils.isNotBlank(byId.getOrganization())){
|
||||
if (byId != null) {
|
||||
if (StringUtils.isNotBlank(byId.getOrganization())) {
|
||||
Organization byId2 = organizationsService.getById(byId.getOrganization());
|
||||
if (byId2 != null){
|
||||
if (byId2 != null) {
|
||||
byId.setOname(byId2.getName());
|
||||
}
|
||||
}
|
||||
|
|
@ -367,15 +401,15 @@ public class AddressBookController {
|
|||
@GetMapping(value = "getByUser/{userId}")
|
||||
public ResultJson getByUser(@PathVariable("userId") Integer userId) {
|
||||
User byId = userService.getById(userId);
|
||||
if (Objects.isNull(byId)){
|
||||
if (Objects.isNull(byId)) {
|
||||
return ResultJson.error("该用户不存在");
|
||||
}
|
||||
// return ResultJson.ok(JSON.parseObject(JSON.toJSONString(service.getById(byId.getAbId())).replaceAll("null","")));
|
||||
AddressBook byId1 = service.getById(byId.getAbId());
|
||||
if (byId1 != null){
|
||||
if (StringUtils.isNotBlank(byId1.getOrganization())){
|
||||
if (byId1 != null) {
|
||||
if (StringUtils.isNotBlank(byId1.getOrganization())) {
|
||||
Organization byId2 = organizationsService.getById(byId1.getOrganization());
|
||||
if (byId2 != null){
|
||||
if (byId2 != null) {
|
||||
byId1.setOname(byId2.getName());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,226 @@
|
|||
package com.whdc.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.whdc.exception.MyException;
|
||||
import com.whdc.model.dto.ApiDto;
|
||||
import com.whdc.model.dto.GroupWarningDto;
|
||||
import com.whdc.model.vo.WarningData;
|
||||
import com.whdc.model.vo.WarningHistoryListVo;
|
||||
import com.whdc.model.vo.WarningListVo;
|
||||
import com.whdc.service.IAddressBookService;
|
||||
import com.whdc.utils.HttpUtil;
|
||||
import com.whdc.utils.ResultJson;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.compress.utils.Lists;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
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.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Created by XuSan on 2024/5/23.
|
||||
*
|
||||
* @author XuSan
|
||||
* @version 1.0
|
||||
*/
|
||||
@Slf4j
|
||||
@Api(tags = "预警 - Controller")
|
||||
@RestController
|
||||
@RequestMapping("/warning")
|
||||
public class WarningController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private IAddressBookService addressBookService;
|
||||
|
||||
/**
|
||||
* 气象预警
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "气象预警")
|
||||
@PostMapping("/getGroupWarning")
|
||||
public ResultJson<List<WarningListVo>> getGroupWarning(
|
||||
@RequestBody GroupWarningDto dto) {
|
||||
|
||||
ApiDto apiDto = new ApiDto();
|
||||
apiDto.setStartTime(dto.getStartTime());
|
||||
apiDto.setEndTime(dto.getEndTime());
|
||||
apiDto.setPageNumber(dto.getPageNumber());
|
||||
apiDto.setPageSize(dto.getPageSize());
|
||||
ArrayList<ApiDto.Filter> filter = Lists.newArrayList();
|
||||
|
||||
if (StringUtils.isNotBlank(dto.getPublishUnit())) {
|
||||
filter.add(new ApiDto.Filter("publishUnit", "LIKE", String.format("%s%s%s", "%", dto.getPublishUnit(), "%")));
|
||||
}
|
||||
if (StringUtils.isNotBlank(dto.getWarnSignalLevel())) {
|
||||
filter.add(new ApiDto.Filter("warnSignalLevel", "LIKE", String.format("%s%s%s", "%", dto.getWarnSignalLevel(), "%")));
|
||||
}
|
||||
if (StringUtils.isNotBlank(dto.getWarnSignalType())) {
|
||||
filter.add(new ApiDto.Filter("warnSignalType", "LIKE", String.format("%s%s%s", "%", dto.getWarnSignalType(), "%")));
|
||||
}
|
||||
|
||||
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://64.97.146.240:9990/api/warning/getGroupWarning", JSON.toJSONString(apiDto));
|
||||
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(json);
|
||||
}
|
||||
|
||||
/**
|
||||
* 历史气象预警
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "历史气象预警")
|
||||
@PostMapping("/getHistoryGroupWarning")
|
||||
public ResultJson<List<WarningListVo>> getHistoryGroupWarning(@RequestBody GroupWarningDto dto) {
|
||||
|
||||
ApiDto apiDto = new ApiDto();
|
||||
apiDto.setStartTime(dto.getStartTime());
|
||||
apiDto.setEndTime(dto.getEndTime());
|
||||
apiDto.setPageNumber(dto.getPageNumber());
|
||||
apiDto.setPageSize(dto.getPageSize());
|
||||
ArrayList<ApiDto.Filter> filter = Lists.newArrayList();
|
||||
|
||||
if (StringUtils.isNotBlank(dto.getPublishUnit())) {
|
||||
filter.add(new ApiDto.Filter("publishUnit", "LIKE", String.format("%s%s%s", "%", dto.getPublishUnit(), "%")));
|
||||
}
|
||||
if (StringUtils.isNotBlank(dto.getWarnSignalLevel())) {
|
||||
filter.add(new ApiDto.Filter("warnSignalLevel", "LIKE", String.format("%s%s%s", "%", dto.getWarnSignalLevel(), "%")));
|
||||
}
|
||||
if (StringUtils.isNotBlank(dto.getWarnSignalType())) {
|
||||
filter.add(new ApiDto.Filter("warnSignalType", "LIKE", String.format("%s%s%s", "%", dto.getWarnSignalType(), "%")));
|
||||
}
|
||||
|
||||
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://64.97.146.240:9990/api/warning/getGroupWarning", JSON.toJSONString(apiDto));
|
||||
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(json);
|
||||
}
|
||||
|
||||
/**
|
||||
* 正在生效预警
|
||||
*
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
private List<WarningListVo> getList(List<WarningData> data) {
|
||||
|
||||
List<WarningListVo> respList = Lists.newArrayList();
|
||||
for (WarningData datum : data) {
|
||||
String effectArea = datum.getEffectArea();
|
||||
for (WarningData.TypeList typeList : datum.getTypeList()) {
|
||||
// 预警类型
|
||||
String type = typeList.getType();
|
||||
for (WarningData.Warning warning : typeList.getWarnList()) {
|
||||
WarningListVo vo = new WarningListVo();
|
||||
String publishUnit = warning.getPublishUnit();
|
||||
vo.setTitle(effectArea + publishUnit + "发布" + type + "预警");
|
||||
vo.setPublishTime(warning.getPublishTime());
|
||||
vo.setContent(warning.getContent());
|
||||
vo.setWarnSignalType(warning.getWarnSignalType());
|
||||
vo.setWarnSignalLevel(warning.getWarnSignalLevel());
|
||||
vo.setAddressBooks(addressBookService.getListByAdnm(publishUnit.replace("气象台", "")));
|
||||
respList.add(vo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return respList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 正在生效预警
|
||||
*
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
private List<WarningHistoryListVo> getCount(List<WarningData> data) {
|
||||
|
||||
List<WarningHistoryListVo> respList = Lists.newArrayList();
|
||||
for (WarningData datum : data) {
|
||||
WarningHistoryListVo vo = new WarningHistoryListVo();
|
||||
vo.setWarnSignalType("全部");
|
||||
vo.setEffectArea(datum.getEffectArea());
|
||||
|
||||
List<WarningHistoryListVo> child = Lists.newArrayList();
|
||||
for (WarningData.TypeList typeList : datum.getTypeList()) {
|
||||
// 预警类型
|
||||
|
||||
List<WarningData.Warning> warnList = typeList.getWarnList();
|
||||
|
||||
// 类型分组
|
||||
Map<String, List<WarningData.Warning>> types = warnList.stream()
|
||||
.collect(Collectors.groupingBy(WarningData.Warning::getWarnSignalType, Collectors.toList()));
|
||||
|
||||
types.forEach((k, v) -> {
|
||||
WarningHistoryListVo childVo = new WarningHistoryListVo();
|
||||
// 等级分组
|
||||
Map<String, Long> levels = v.stream()
|
||||
.collect(Collectors.groupingBy(WarningData.Warning::getWarnSignalLevel, Collectors.counting()));
|
||||
|
||||
levels.forEach((k1, v1) -> {
|
||||
switch (k1) {
|
||||
case "红色":
|
||||
childVo.setRedCount(v1.intValue());
|
||||
vo.setRedCount(v1.intValue() + vo.getRedCount());
|
||||
break;
|
||||
case "橙色":
|
||||
childVo.setOraCount(v1.intValue());
|
||||
vo.setOraCount(v1.intValue() + vo.getOraCount());
|
||||
break;
|
||||
case "黄色":
|
||||
childVo.setYelCount(v1.intValue());
|
||||
vo.setYelCount(v1.intValue() + vo.getYelCount());
|
||||
break;
|
||||
case "蓝色":
|
||||
childVo.setBluCount(v1.intValue());
|
||||
vo.setBluCount(v1.intValue() + vo.getBluCount());
|
||||
break;
|
||||
default:
|
||||
throw new MyException("当前预警等级不存在: " + k1);
|
||||
}
|
||||
});
|
||||
|
||||
childVo.setSumCount(v.size());
|
||||
vo.setSumCount(vo.getSumCount() + v.size());
|
||||
childVo.setWarnSignalType(k);
|
||||
child.add(childVo);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
vo.setSumCount(datum.getTypeList().size());
|
||||
vo.setChild(child);
|
||||
respList.add(vo);
|
||||
}
|
||||
|
||||
return respList;
|
||||
}
|
||||
}
|
||||
|
|
@ -18,4 +18,6 @@ public interface AddressBookMapper extends BaseMapper<AddressBook> {
|
|||
|
||||
List<AddressBook> find(@Param("dto") AddressBook dto);
|
||||
|
||||
List<AddressBook> getListByAdnm(@Param("adnm") String adnm);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
package com.whdc.model.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author xusan
|
||||
* @Date 2023/7/4 10:28
|
||||
* @Notes
|
||||
**/
|
||||
@Data
|
||||
public class ApiDto {
|
||||
|
||||
@ApiModelProperty(value = "开始时间, 格式应为:yyyy-MM-dd HH:mm:ss", dataType = "java.lang.String", example = "2023-06-15 08:00:00")
|
||||
private String startTime;
|
||||
|
||||
@ApiModelProperty(value = "结束时间, 格式应为:yyyy-MM-dd HH:mm:ss", dataType = "java.lang.String", example = "2023-06-15 08:00:00")
|
||||
private String endTime;
|
||||
|
||||
@ApiModelProperty(value = "页数", dataType = "java.lang.Integer", example = "1")
|
||||
private Integer pageNumber = 1;
|
||||
|
||||
@ApiModelProperty(value = "条数", dataType = "java.lang.Integer", example = "10")
|
||||
private Integer pageSize = 10;
|
||||
|
||||
@ApiModelProperty(value = "过滤条件", dataType = "java.lang.Array", example = "[]")
|
||||
private List<Filter> filter;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class Filter {
|
||||
|
||||
@ApiModelProperty(value = "查询列名 publishUnit:发布单位,warnSignalType:类型,warnSignalLevel:级别", dataType = "java.lang.String", example = "publishUnit")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "查询类型", dataType = "java.lang.String", example = "like")
|
||||
private String condition;
|
||||
|
||||
@ApiModelProperty(value = "值", dataType = "java.lang.String", example = "%1%")
|
||||
private String value;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
package com.whdc.model.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Created by XuSan on 2024/5/23.
|
||||
*
|
||||
* @author XuSan
|
||||
* @version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class GroupWarningDto {
|
||||
|
||||
@ApiModelProperty(value = "开始时间, 格式应为:yyyy-MM-dd HH:mm:ss", dataType = "java.lang.String", example = "2023-06-15 08:00:00")
|
||||
private String startTime;
|
||||
|
||||
@ApiModelProperty(value = "结束时间, 格式应为:yyyy-MM-dd HH:mm:ss", dataType = "java.lang.String", example = "2023-06-15 08:00:00")
|
||||
private String endTime;
|
||||
|
||||
@ApiModelProperty(value = "发布单位")
|
||||
private String publishUnit;
|
||||
|
||||
@ApiModelProperty(value = "类型")
|
||||
private String warnSignalType;
|
||||
|
||||
@ApiModelProperty(value = "级别")
|
||||
private String warnSignalLevel;
|
||||
|
||||
@ApiModelProperty(value = "页数", dataType = "java.lang.Integer", example = "1")
|
||||
private Integer pageNumber = 1;
|
||||
|
||||
@ApiModelProperty(value = "条数", dataType = "java.lang.Integer", example = "999")
|
||||
private Integer pageSize = 999;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
package com.whdc.model.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author xusan
|
||||
* @Date 2023/7/4 10:28
|
||||
* @Notes
|
||||
**/
|
||||
@Data
|
||||
@ApiModel(value = "预报数据", description = "预报数据")
|
||||
public class WarningData {
|
||||
|
||||
@ApiParam(value = "服务名")
|
||||
@ApiModelProperty(value = "服务名", dataType = "java.lang.String")
|
||||
private String effectArea;
|
||||
|
||||
@ApiParam(value = "预警信息列表")
|
||||
@ApiModelProperty(value = "预警信息列表", dataType = "array")
|
||||
private List<TypeList> typeList;
|
||||
|
||||
|
||||
@Data
|
||||
public static class TypeList {
|
||||
|
||||
@ApiParam(value = "预警信息详情")
|
||||
@ApiModelProperty(value = "预警信息详情", dataType = "array")
|
||||
private List<Warning> warnList;
|
||||
|
||||
@ApiParam(value = "预警信号")
|
||||
@ApiModelProperty(value = "预警信号", dataType = "java.lang.String")
|
||||
private String type;
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class Warning {
|
||||
|
||||
@ApiParam(value = "ID")
|
||||
@ApiModelProperty(value = "ID", dataType = "java.lang.Integer")
|
||||
private int id;
|
||||
|
||||
@ApiParam(value = "创建时间")
|
||||
@ApiModelProperty(value = "创建时间", dataType = "java.lang.String")
|
||||
private String createTime;
|
||||
|
||||
@ApiParam(value = "发布时间")
|
||||
@ApiModelProperty(value = "发布时间", dataType = "java.lang.String")
|
||||
private String publishTime;
|
||||
|
||||
@ApiParam(value = "预警开始时间")
|
||||
@ApiModelProperty(value = "预警开始时间", dataType = "java.lang.String")
|
||||
private String startTime;
|
||||
|
||||
@ApiParam(value = "预警结束时间")
|
||||
@ApiModelProperty(value = "预警结束时间", dataType = "java.lang.String")
|
||||
private String endTime;
|
||||
|
||||
@ApiParam(value = "预警类型")
|
||||
@ApiModelProperty(value = "预警类型", dataType = "java.lang.String")
|
||||
private String warnSignalType;
|
||||
|
||||
@ApiParam(value = "预警级别")
|
||||
@ApiModelProperty(value = "预警级别", dataType = "java.lang.String")
|
||||
private String warnSignalLevel;
|
||||
|
||||
@ApiParam(value = "预警地区")
|
||||
@ApiModelProperty(value = "预警地区", dataType = "java.lang.String")
|
||||
private String effectArea;
|
||||
|
||||
@ApiParam(value = "发布单位")
|
||||
@ApiModelProperty(value = "发布单位", dataType = "java.lang.String")
|
||||
private String publishUnit;
|
||||
|
||||
@ApiParam(value = "预警内容")
|
||||
@ApiModelProperty(value = "预警内容", dataType = "java.lang.String")
|
||||
private String content;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
package com.whdc.model.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Created by XuSan on 2024/5/24.
|
||||
*
|
||||
* @author XuSan
|
||||
* @version 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class WarningHistoryListVo {
|
||||
|
||||
@ApiModelProperty(value = "预警类型")
|
||||
private String warnSignalType;
|
||||
|
||||
@ApiModelProperty(value = "预警级别")
|
||||
private String warnSignalLevel;
|
||||
|
||||
@ApiModelProperty(value = "预警地区")
|
||||
private String effectArea;
|
||||
|
||||
@ApiModelProperty(value = "统计")
|
||||
private Integer sumCount = 0;
|
||||
|
||||
@ApiModelProperty(value = "红统计")
|
||||
private Integer redCount = 0;
|
||||
|
||||
@ApiModelProperty(value = "橙统计")
|
||||
private Integer oraCount = 0;
|
||||
|
||||
@ApiModelProperty(value = "黄统计")
|
||||
private Integer yelCount = 0;
|
||||
|
||||
@ApiModelProperty(value = "蓝统计")
|
||||
private Integer bluCount = 0;
|
||||
|
||||
@ApiModelProperty(value = "子统计")
|
||||
private List<WarningHistoryListVo> child;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
package com.whdc.model.vo;
|
||||
|
||||
import com.whdc.model.entity.AddressBook;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Created by XuSan on 2024/5/24.
|
||||
*
|
||||
* @author XuSan
|
||||
* @version 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class WarningListVo {
|
||||
|
||||
@ApiModelProperty(value = "预警标题")
|
||||
public String title;
|
||||
|
||||
@ApiModelProperty(value = "发布时间")
|
||||
private String publishTime;
|
||||
|
||||
@ApiParam(value = "预警类型")
|
||||
@ApiModelProperty(value = "预警类型", dataType = "java.lang.String")
|
||||
private String warnSignalType;
|
||||
|
||||
@ApiParam(value = "预警级别")
|
||||
@ApiModelProperty(value = "预警级别", dataType = "java.lang.String")
|
||||
private String warnSignalLevel;
|
||||
|
||||
@ApiModelProperty(value = "预警内容")
|
||||
private String content;
|
||||
|
||||
@ApiModelProperty(value = "防汛责任人")
|
||||
private List<AddressBook> addressBooks;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -23,4 +23,6 @@ public interface IAddressBookService extends IService<AddressBook> {
|
|||
// 获取所有规则
|
||||
List<AddressBook> find(AddressBook dto);
|
||||
|
||||
List<AddressBook> getListByAdnm(String adnm);
|
||||
|
||||
}
|
||||
|
|
@ -8,11 +8,13 @@ import com.whdc.model.entity.AddressBook;
|
|||
import com.whdc.model.vo.AddressBookVo;
|
||||
import com.whdc.service.IAddressBookService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.whdc.controller.AddressBookController.ADDRESS_BOOK_REDIS_KEY;
|
||||
import static com.whdc.utils.AdinfoUtils.likeAdcd;
|
||||
|
||||
/**
|
||||
|
|
@ -57,6 +59,11 @@ public class AddressBookServiceImpl extends ServiceImpl<AddressBookMapper, Addre
|
|||
return baseMapper.find(dto);
|
||||
}
|
||||
|
||||
@Cacheable(value=ADDRESS_BOOK_REDIS_KEY,key = "#root.methodname+':'+#adnm")
|
||||
@Override
|
||||
public List<AddressBook> getListByAdnm(String adnm) {
|
||||
return baseMapper.getListByAdnm(adnm);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.whdc.mapper.AddressBookMapper">
|
||||
|
||||
|
||||
<!-- AND AB.ADCD ${dto.v} #{dto.adcd}-->
|
||||
<select id="page" resultType="com.whdc.model.vo.AddressBookVo">
|
||||
SELECT
|
||||
AB.*,F.SORT FSORT,F.ID FCID,U.ROLE,F.TYPE FTYPE,IF(O.NAME IS NULL,UD.NAME,O.NAME) ONAME,A.ADNM
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
AND AB.NAME LIKE CONCAT('%', #{dto.name}, '%')
|
||||
</if>
|
||||
<if test="dto.adcd != null and dto.adcd != '' ">
|
||||
AND AB.ADCD ${dto.v} #{dto.adcd}
|
||||
AND R.DICT_ID ${dto.v} #{dto.adcd}
|
||||
</if>
|
||||
<if test="dto.phone != null and dto.phone != '' ">
|
||||
AND AB.PHONE LIKE CONCAT('', #{dto.phone}, '%')
|
||||
|
|
@ -43,11 +43,19 @@
|
|||
OR AB.POSITION LIKE CONCAT('%', #{dto.allLikeStr}, '%')
|
||||
)
|
||||
</if>
|
||||
ORDER BY F.SORT NULLS LAST,F.SORT,AB.SORT
|
||||
ORDER BY F.SORT NULLS LAST,F.SORT,R.SORT,AB.SORT
|
||||
</select>
|
||||
|
||||
|
||||
<select id="find" resultType="com.whdc.model.entity.AddressBook">
|
||||
<select id="getListByAdnm" resultType="com.whdc.model.entity.AddressBook">
|
||||
SELECT
|
||||
AB.*,
|
||||
A.ADNM
|
||||
FROM
|
||||
ADDRESS_BOOK AB
|
||||
LEFT JOIN ADINFO A ON AB.ADCD = A.ADCD
|
||||
WHERE
|
||||
A.ADNM = #{adnm}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue