diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java index 5a03583011..926c96e340 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/CommonAggFeignClient.java @@ -3,6 +3,7 @@ package com.epmet.commons.tools.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.feign.fallback.CommonAggFeignClientFallBackFactory; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.redis.common.bean.CustomerStaffInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.Result; @@ -17,7 +18,8 @@ import org.springframework.web.bind.annotation.RequestParam; * @Description * @Author sun */ -@FeignClient(name = ServiceConstant.DATA_AGGREGATOR_SERVER, fallbackFactory = CommonAggFeignClientFallBackFactory.class) +// @FeignClient(name = ServiceConstant.DATA_AGGREGATOR_SERVER, fallbackFactory = CommonAggFeignClientFallBackFactory.class) +@FeignClient(name = ServiceConstant.DATA_AGGREGATOR_SERVER, fallbackFactory = CommonAggFeignClientFallBackFactory.class,url = "localhost:8114") public interface CommonAggFeignClient { /** @@ -45,4 +47,12 @@ public interface CommonAggFeignClient { */ @PostMapping("/data/aggregator/org/grid") Result getGridInfo(@RequestParam("gridId")String gridId); + + /** + * 查询楼栋信息 + * @param buildingId + * @return + */ + @PostMapping("/data/aggregator/org/querybuildinginfo") + Result queryBuildingInfo(@RequestParam("buildingId")String buildingId); } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java index 02f209f4f2..8d6f5f1260 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/fallback/CommonAggFeignClientFallback.java @@ -3,6 +3,7 @@ package com.epmet.commons.tools.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.feign.CommonAggFeignClient; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.redis.common.bean.CustomerStaffInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ModuleUtils; @@ -32,4 +33,16 @@ public class CommonAggFeignClientFallback implements CommonAggFeignClient { public Result getGridInfo(String gridId) { return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "getGridInfo", gridId); } + + /** + * 查询楼栋信息 + * + * @param buildingId + * @return + */ + @Override + public Result queryBuildingInfo(String buildingId) { + return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "queryBuildingInfo", buildingId); + } + } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index 0798627046..8ba08b9f05 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -539,6 +539,15 @@ public class RedisKeys { return rootPrefix.concat("gov:grid:").concat(gridId); } + /** + * 楼栋信息缓存key + * @param buildingId + * @return + */ + public static String getBuildingInfoKey(String buildingId) { + return rootPrefix.concat("gov:building:").concat(buildingId); + } + /** * @description 调查问卷accessKey * diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerIcHouseRedis.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerIcHouseRedis.java new file mode 100644 index 0000000000..ec0a79f1db --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerIcHouseRedis.java @@ -0,0 +1,65 @@ +package com.epmet.commons.tools.redis.common; + +import cn.hutool.core.bean.BeanUtil; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.feign.CommonAggFeignClient; +import com.epmet.commons.tools.redis.RedisKeys; +import com.epmet.commons.tools.redis.RedisUtils; +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.MapUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.util.Map; + +/** + * 楼栋 + * 房屋 + * 小区这三个的缓存放这吧 + */ +@Slf4j +@Component +public class CustomerIcHouseRedis { + @Autowired + private RedisUtils redisUtils; + @Autowired + private CommonAggFeignClient commonAggFeignClient; + private static CustomerIcHouseRedis customerIcHouseRedis; + + @PostConstruct + public void init() { + customerIcHouseRedis = this; + customerIcHouseRedis.redisUtils = this.redisUtils; + customerIcHouseRedis.commonAggFeignClient = this.commonAggFeignClient; + } + + + /** + * @Description 获取楼栋信息 + * @param buildingId + * @author yinzuomei + * @date 2022/03/09 + */ + public static BuildingInfoCache getBuildingInfo(String buildingId){ + String key = RedisKeys.getBuildingInfoKey(buildingId); + Map build = customerIcHouseRedis.redisUtils.hGetAll(key); + if (!MapUtils.isEmpty(build)) { + return ConvertUtils.mapToEntity(build, BuildingInfoCache.class); + } + Result buildInfoResult = customerIcHouseRedis.commonAggFeignClient.queryBuildingInfo(buildingId); + if (!buildInfoResult.success()){ + throw new RenException("查询楼栋信息失败..."); + } + if (null == buildInfoResult.getData()){ + return null; + } + Map map = BeanUtil.beanToMap(buildInfoResult.getData(), false, true); + customerIcHouseRedis.redisUtils.hMSet(key, map); + return buildInfoResult.getData(); + } + +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java index 449a90116a..f624c04bbc 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java @@ -1,12 +1,12 @@ package com.epmet.commons.tools.redis.common; import cn.hutool.core.bean.BeanUtil; -import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.feign.CommonAggFeignClient; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; -import com.epmet.commons.tools.redis.common.bean.*; +import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import lombok.extern.slf4j.Slf4j; @@ -33,7 +33,6 @@ public class CustomerOrgRedis { private CommonAggFeignClient commonAggFeignClient; private static CustomerOrgRedis customerOrgRedis; - private static final String ROLE_MAP_KEY = "roleMap"; @PostConstruct public void init() { diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/BuildingInfoCache.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/BuildingInfoCache.java new file mode 100644 index 0000000000..4cb2416328 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/BuildingInfoCache.java @@ -0,0 +1,44 @@ +package com.epmet.commons.tools.redis.common.bean; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 楼栋信息缓存 + */ +@Data +public class BuildingInfoCache implements Serializable { + /** + * !!!!!楼栋id + */ + private String buildingId; + + /** + * 楼栋名称 + */ + private String buildingName; + + /** + * 网格id + */ + private String gridId; + + /** + * XXX组织-网格名 + */ + private String gridName; + + /** + * 小区id + */ + private String neighborHoodId; + + /** + * 小区名称 + */ + private String neighborHoodName; + private String agencyId; + + // 后续用到啥再加吧........ +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java index c1b2b0e98a..45e29f3599 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovOrgController.java @@ -13,6 +13,7 @@ import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ConvertUtils; @@ -412,4 +413,17 @@ public class GovOrgController { govOrgService.pcworkRecordListExportSendMsg(formDTO); return new Result(); } + + /** + * 查询楼栋信息 + * @param buildingId + * @return + */ + @PostMapping("/querybuildinginfo") + public Result queryBuildingInfo(@RequestParam("buildingId")String buildingId){ + if(StringUtils.isBlank(buildingId)){ + return new Result<>(); + } + return new Result().ok(govOrgService.queryBuildingInfo(buildingId)); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcBuildingDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcBuildingDao.java new file mode 100644 index 0000000000..fbf5d8de14 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcBuildingDao.java @@ -0,0 +1,15 @@ +package com.epmet.dataaggre.dao.govorg; + +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface IcBuildingDao { + + /** + * 查询楼栋信息,返回楼栋明,小区名....简要信息 + * @param buildingId + * @return + */ + BuildingInfoCache selectBuildInfo(String buildingId); +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java index 51d938bb2e..53c1f3200c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java @@ -1,5 +1,6 @@ package com.epmet.dataaggre.service.govorg; +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dataaggre.dto.govorg.CustomerAgencyDTO; import com.epmet.dataaggre.dto.govorg.CustomerDepartmentDTO; @@ -188,4 +189,11 @@ public interface GovOrgService { * @Description 查询组织的直属下级组织下网格活跃度统计--文件导出 **/ void pcworkRecordListExportSendMsg(GridLivelyFormDTO formDTO); + + /** + * 获取楼栋信息 + * @param buildingId + * @return + */ + BuildingInfoCache queryBuildingInfo(String buildingId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index dc63adc141..9d66d82982 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -17,6 +17,8 @@ import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; +import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.Result; @@ -88,6 +90,8 @@ public class GovOrgServiceImpl implements GovOrgService { private DataStatsService dataStatsService; @Autowired private OssFeignClient ossFeignClient; + @Autowired + private IcBuildingDao icBuildingDao; /** * @param staffId @@ -990,5 +994,22 @@ public class GovOrgServiceImpl implements GovOrgService { } } + /** + * 获取楼栋信息 + * + * @param buildingId + * @return + */ + @Override + public BuildingInfoCache queryBuildingInfo(String buildingId) { + BuildingInfoCache infoCache=icBuildingDao.selectBuildInfo(buildingId); + if(null!=infoCache){ + GridInfoCache gridInfoCache= CustomerOrgRedis.getGridInfo(infoCache.getGridId()); + //赋值 XXX-网格名 + infoCache.setGridName(null == gridInfoCache || StringUtils.isBlank(gridInfoCache.getGridNamePath()) ? StrConstant.EPMETY_STR : gridInfoCache.getGridNamePath()); + } + return infoCache; + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcBuildingDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcBuildingDao.xml new file mode 100644 index 0000000000..342c05e0c8 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcBuildingDao.xml @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserWarnNoticeFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserWarnNoticeFormDTO.java new file mode 100644 index 0000000000..0179217f1d --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserWarnNoticeFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import com.epmet.commons.tools.validator.group.AddGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 人员预警通知入参 + */ +@Data +public class IcUserWarnNoticeFormDTO implements Serializable { + + /** + * + */ + @NotBlank(message = "组织id不能为空",groups = AddGroup.class) + private String agencyId; + /** + * + */ + @NotBlank(message = "客户id不能为空",groups = AddGroup.class) + private String customerId; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcStatsResiWarnBuildingResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcStatsResiWarnBuildingResultDTO.java index f4c317274a..ba3c2a9822 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcStatsResiWarnBuildingResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcStatsResiWarnBuildingResultDTO.java @@ -84,6 +84,10 @@ public class IcStatsResiWarnBuildingResultDTO implements Serializable { * 房屋显示分类图标 */ private String houseShowIcon; + + /** + * 当前类别,符合预警的共多少栋楼 + */ private Integer count; private List buildingIdList1; diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserWarnNoticeResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserWarnNoticeResultDTO.java new file mode 100644 index 0000000000..fb6fde9599 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserWarnNoticeResultDTO.java @@ -0,0 +1,23 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 人员预警通知返参 + */ +@Data +public class IcUserWarnNoticeResultDTO implements Serializable { + + /** + * 预警配置id + */ + private String configId; + /** + * 预警内容:南宁路社区第二网格亿联小区2号楼失业人员超出预警! + */ + private String noticeContent; + // @JsonIgnore + private String buildingId; +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsResiWarnController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsResiWarnController.java index 3d18050f66..5f7ea56e4a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsResiWarnController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StatsResiWarnController.java @@ -21,11 +21,14 @@ import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.dto.form.IcUserWarnNoticeFormDTO; import com.epmet.dto.form.StatsResiListFormDTO; import com.epmet.dto.form.StatsResiWarnCountFormDTO; import com.epmet.dto.form.StatsResiWarnFormDTO; import com.epmet.dto.result.IcStatsResiResultDTO; import com.epmet.dto.result.IcStatsResiWarnBuildingResultDTO; +import com.epmet.dto.result.IcUserWarnNoticeResultDTO; import com.epmet.service.IcStatsResiWarnService; import com.epmet.service.StatsResiWarnService; import org.springframework.beans.factory.annotation.Autowired; @@ -128,4 +131,16 @@ public class StatsResiWarnController { return new Result(); } + /** + * 人员预警,通知列表 + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("queryuserwarnnotice") + public Result> queryUserWarnNotice(@LoginUser TokenDto tokenDto,@RequestBody IcUserWarnNoticeFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO, AddGroup.class); + return new Result>().ok(statsResiWarnService.queryUserWarnNotice(formDTO)); + } } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java index 0a46c4bc06..3e261b041f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcStatsResiWarnDao.java @@ -19,6 +19,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.PersonWarnLeftPieDTO; +import com.epmet.dto.result.IcUserWarnNoticeResultDTO; import com.epmet.dto.result.UserWarnNameListResultDTO; import com.epmet.entity.IcStatsResiWarnEntity; import org.apache.ibatis.annotations.Mapper; @@ -76,4 +77,14 @@ public interface IcStatsResiWarnDao extends BaseDao { List> selectCategoryCountByColumn(@Param("columnNames") List columnNames,@Param("agencyId")String agencyId); + /** + * 获取预警楼栋列表 + * @param customerId + * @param agencyId + * @param configIds + * @return + */ + List queryUserWarnNotice(@Param("customerId") String customerId, + @Param("agencyId") String agencyId, + @Param("configIds") List configIds); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsResiWarnService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsResiWarnService.java index 7c5477b61b..babce11f37 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsResiWarnService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/StatsResiWarnService.java @@ -17,9 +17,11 @@ package com.epmet.service; +import com.epmet.dto.form.IcUserWarnNoticeFormDTO; import com.epmet.dto.form.StatsResiListFormDTO; import com.epmet.dto.result.IcStatsResiResultDTO; import com.epmet.dto.result.IcStatsResiWarnBuildingResultDTO; +import com.epmet.dto.result.IcUserWarnNoticeResultDTO; import java.util.List; import java.util.Map; @@ -58,4 +60,11 @@ public interface StatsResiWarnService{ void resiWarn(String customerId); void resiWarnByOne(String customerId,String userId); + + /** + * 人员预警通知列表 + * @param formDTO + * @return + */ + List queryUserWarnNotice(IcUserWarnNoticeFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java index 789b189016..79fbdc4ca3 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StatsResiWarnServiceImpl.java @@ -3,7 +3,10 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.redis.common.CustomerIcHouseRedis; +import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dao.IcResiUserDao; @@ -11,6 +14,7 @@ import com.epmet.dao.IcStatsResiWarnDao; import com.epmet.dto.IcResiCategoryStatsConfigDTO; import com.epmet.dto.IcResiCategoryWarnConfigDTO; import com.epmet.dto.form.IcResiCategoryStatsConfigFormDTO; +import com.epmet.dto.form.IcUserWarnNoticeFormDTO; import com.epmet.dto.form.StatsResiListFormDTO; import com.epmet.dto.result.*; import com.epmet.entity.IcResiUserEntity; @@ -21,6 +25,7 @@ import com.epmet.service.IcStatsResiWarnService; import com.epmet.service.StatsResiWarnService; import com.github.pagehelper.PageHelper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -338,5 +343,40 @@ public class StatsResiWarnServiceImpl implements StatsResiWarnService { } } + /** + * 人员预警通知列表 + * + * @param formDTO + * @return + */ + @Override + public List queryUserWarnNotice(IcUserWarnNoticeFormDTO formDTO) { + //1、feign查询是否有配置的预警分类 + Result> warnResult = operCustomizeOpenFeignClient.resiCategoryWarnList(formDTO.getCustomerId()); + if (!warnResult.success()) { + throw new RenException("预警配置查询失败:" + warnResult.getMsg()); + } + if (CollectionUtils.isEmpty(warnResult.getData())) { + return new ArrayList<>(); + } + //2、符合条件的楼栋 + Map configMap = warnResult.getData().stream().collect(Collectors.toMap(IcResiCategoryWarnConfigDTO::getId, IcResiCategoryWarnConfigDTO::getLabel)); + List configIds = warnResult.getData().stream().map(m -> m.getId()).collect(Collectors.toList()); + List list = icStatsResiWarnDao.queryUserWarnNotice(formDTO.getCustomerId(), formDTO.getAgencyId(), configIds); + List resList = new ArrayList<>(); + for (IcUserWarnNoticeResultDTO dto : list) { + //南宁路社区第二网格亿联小区2号楼失业人员超出预警! + BuildingInfoCache infoCache = CustomerIcHouseRedis.getBuildingInfo(dto.getBuildingId()); + if (null == infoCache) { + log.error(String.format("获取楼栋信息为null,buildingId=%s", dto.getBuildingId())); + continue; + } + String categoryName = StringUtils.isBlank(configMap.get(dto.getConfigId())) ? StrConstant.EPMETY_STR : configMap.get(dto.getConfigId()); + dto.setNoticeContent(String.format("%s%s%s%s超出预警!", infoCache.getGridName(), infoCache.getNeighborHoodName(), infoCache.getBuildingName(), categoryName)); + resList.add(dto); + } + return resList; + } + } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml index 572f9d8577..9a82e55133 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml @@ -184,4 +184,20 @@ AND CONCAT(PIDS,':',AGENCY_ID) LIKE CONCAT('%',#{agencyId},'%') + \ No newline at end of file