From 5b0ce3dc4163c806d64ee176b6b97ad27099c5c7 Mon Sep 17 00:00:00 2001 From: xjm Date: Fri, 24 May 2024 14:02:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B0=94=E8=B1=A1=E9=A2=84=E8=AD=A6=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E6=B0=94=E8=B1=A1=E9=A2=84=E8=AD=A6=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AddressBookController.java | 178 ++++++++------ .../whdc/controller/WarningController.java | 226 ++++++++++++++++++ .../com/whdc/mapper/AddressBookMapper.java | 4 +- src/main/java/com/whdc/model/dto/ApiDto.java | 48 ++++ .../com/whdc/model/dto/GroupWarningDto.java | 37 +++ .../java/com/whdc/model/vo/WarningData.java | 85 +++++++ .../whdc/model/vo/WarningHistoryListVo.java | 50 ++++ .../java/com/whdc/model/vo/WarningListVo.java | 45 ++++ .../com/whdc/service/IAddressBookService.java | 2 + .../service/impl/AddressBookServiceImpl.java | 7 + .../resources/mapper/AddressBookMapper.xml | 16 +- 11 files changed, 621 insertions(+), 77 deletions(-) create mode 100644 src/main/java/com/whdc/controller/WarningController.java create mode 100644 src/main/java/com/whdc/model/dto/ApiDto.java create mode 100644 src/main/java/com/whdc/model/dto/GroupWarningDto.java create mode 100644 src/main/java/com/whdc/model/vo/WarningData.java create mode 100644 src/main/java/com/whdc/model/vo/WarningHistoryListVo.java create mode 100644 src/main/java/com/whdc/model/vo/WarningListVo.java diff --git a/src/main/java/com/whdc/controller/AddressBookController.java b/src/main/java/com/whdc/controller/AddressBookController.java index 820393c..1782b1b 100644 --- a/src/main/java/com/whdc/controller/AddressBookController.java +++ b/src/main/java/com/whdc/controller/AddressBookController.java @@ -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 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()); } } diff --git a/src/main/java/com/whdc/controller/WarningController.java b/src/main/java/com/whdc/controller/WarningController.java new file mode 100644 index 0000000..ecac71c --- /dev/null +++ b/src/main/java/com/whdc/controller/WarningController.java @@ -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> 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 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 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> 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 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 data = json.getJSONArray("data").toJavaList(WarningData.class); + return ResultJson.ok(getCount(data)); + } + + return ResultJson.ok(json); + } + + /** + * 正在生效预警 + * + * @param data + * @return + */ + private List getList(List data) { + + List 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 getCount(List data) { + + List respList = Lists.newArrayList(); + for (WarningData datum : data) { + WarningHistoryListVo vo = new WarningHistoryListVo(); + vo.setWarnSignalType("全部"); + vo.setEffectArea(datum.getEffectArea()); + + List child = Lists.newArrayList(); + for (WarningData.TypeList typeList : datum.getTypeList()) { + // 预警类型 + + List warnList = typeList.getWarnList(); + + // 类型分组 + Map> types = warnList.stream() + .collect(Collectors.groupingBy(WarningData.Warning::getWarnSignalType, Collectors.toList())); + + types.forEach((k, v) -> { + WarningHistoryListVo childVo = new WarningHistoryListVo(); + // 等级分组 + Map 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; + } +} diff --git a/src/main/java/com/whdc/mapper/AddressBookMapper.java b/src/main/java/com/whdc/mapper/AddressBookMapper.java index b2bcae4..56ddcce 100644 --- a/src/main/java/com/whdc/mapper/AddressBookMapper.java +++ b/src/main/java/com/whdc/mapper/AddressBookMapper.java @@ -17,5 +17,7 @@ public interface AddressBookMapper extends BaseMapper { IPage page(@Param("page") IPage page, @Param("dto") AddressBootDto dto); List find(@Param("dto") AddressBook dto); - + + List getListByAdnm(@Param("adnm") String adnm); + } \ No newline at end of file diff --git a/src/main/java/com/whdc/model/dto/ApiDto.java b/src/main/java/com/whdc/model/dto/ApiDto.java new file mode 100644 index 0000000..35f7b0d --- /dev/null +++ b/src/main/java/com/whdc/model/dto/ApiDto.java @@ -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; + + @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; + + } +} diff --git a/src/main/java/com/whdc/model/dto/GroupWarningDto.java b/src/main/java/com/whdc/model/dto/GroupWarningDto.java new file mode 100644 index 0000000..decaaca --- /dev/null +++ b/src/main/java/com/whdc/model/dto/GroupWarningDto.java @@ -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; + +} diff --git a/src/main/java/com/whdc/model/vo/WarningData.java b/src/main/java/com/whdc/model/vo/WarningData.java new file mode 100644 index 0000000..96ef18d --- /dev/null +++ b/src/main/java/com/whdc/model/vo/WarningData.java @@ -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; + + + @Data + public static class TypeList { + + @ApiParam(value = "预警信息详情") + @ApiModelProperty(value = "预警信息详情", dataType = "array") + private List 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; + + } +} diff --git a/src/main/java/com/whdc/model/vo/WarningHistoryListVo.java b/src/main/java/com/whdc/model/vo/WarningHistoryListVo.java new file mode 100644 index 0000000..64581d5 --- /dev/null +++ b/src/main/java/com/whdc/model/vo/WarningHistoryListVo.java @@ -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 child; + + +} diff --git a/src/main/java/com/whdc/model/vo/WarningListVo.java b/src/main/java/com/whdc/model/vo/WarningListVo.java new file mode 100644 index 0000000..a25127a --- /dev/null +++ b/src/main/java/com/whdc/model/vo/WarningListVo.java @@ -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 addressBooks; + + +} diff --git a/src/main/java/com/whdc/service/IAddressBookService.java b/src/main/java/com/whdc/service/IAddressBookService.java index f8cb016..e2da592 100644 --- a/src/main/java/com/whdc/service/IAddressBookService.java +++ b/src/main/java/com/whdc/service/IAddressBookService.java @@ -23,4 +23,6 @@ public interface IAddressBookService extends IService { // 获取所有规则 List find(AddressBook dto); + List getListByAdnm(String adnm); + } \ No newline at end of file diff --git a/src/main/java/com/whdc/service/impl/AddressBookServiceImpl.java b/src/main/java/com/whdc/service/impl/AddressBookServiceImpl.java index 2ba38e8..0ea275d 100644 --- a/src/main/java/com/whdc/service/impl/AddressBookServiceImpl.java +++ b/src/main/java/com/whdc/service/impl/AddressBookServiceImpl.java @@ -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 getListByAdnm(String adnm) { + return baseMapper.getListByAdnm(adnm); + } } diff --git a/src/main/resources/mapper/AddressBookMapper.xml b/src/main/resources/mapper/AddressBookMapper.xml index b6c2552..49f49e8 100644 --- a/src/main/resources/mapper/AddressBookMapper.xml +++ b/src/main/resources/mapper/AddressBookMapper.xml @@ -2,7 +2,7 @@ - + - + SELECT + AB.*, + A.ADNM + FROM + ADDRESS_BOOK AB + LEFT JOIN ADINFO A ON AB.ADCD = A.ADCD + WHERE + A.ADNM = #{adnm} \ No newline at end of file