diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageHomeSearchFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageHomeSearchFormDTO.java index 49575e02fc..4650740bf6 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageHomeSearchFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageHomeSearchFormDTO.java @@ -37,4 +37,8 @@ public class CoverageHomeSearchFormDTO extends PageFormDTO implements Serializab * searchType为resource时,此字段必填 */ private String resourceType; + + private String resourceId; + private String icEventId; + private String icUserId; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/SearchDetailFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/SearchDetailFormDTO.java new file mode 100644 index 0000000000..61fe3607a5 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/SearchDetailFormDTO.java @@ -0,0 +1,39 @@ +package com.epmet.dataaggre.dto.govorg.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/7/29 08:48 + * @DESC + */ +@Data +public class SearchDetailFormDTO implements Serializable { + + private static final long serialVersionUID = 3499320376768396157L; + + public interface SearchUserDetailForm{} + public interface SearchEventDetailForm{} + public interface SearchResourceDetailForm{} + + @NotBlank(message = "icUserId不能为空",groups = SearchUserDetailForm.class) + private String icUserId; + + @NotBlank(message = "icEventId不能为空",groups = SearchEventDetailForm.class) + private String icEventId; + + @NotBlank(message = "resourceId不能为空",groups = SearchResourceDetailForm.class) + private String resourceId; + + /** + * 资源类型:社区自组织:community_org;优势资源:superior_resource;城市管理:city_management;重点危化企业:dangerous_chemicals;公共服务:public_service;企事业单位巡查:enterprise_patrol; + */ + @NotBlank(message = "resourceType不能为空",groups = SearchResourceDetailForm.class) + private String resourceType; + + private String customerId; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java index f300875b13..ea436eb916 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java @@ -7,14 +7,14 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.EpmetRequestHolder; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dataaggre.dto.coverage.AnalysisGovernedTargetsResult; import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult; import com.epmet.dataaggre.dto.govorg.form.CoverageAnalisisDataListFormDTO; import com.epmet.dataaggre.dto.govorg.form.CoverageAnalisisDataListLeftFormDTO; import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; -import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; -import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTOV2; -import com.epmet.dataaggre.dto.govorg.result.CoverageHomeSearchResultDTO; +import com.epmet.dataaggre.dto.govorg.form.SearchDetailFormDTO; +import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.service.CoverageService; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -118,4 +118,26 @@ public class CoverageController { PageData page = coverageService.dataListLeft(formDTO); return new Result>().ok(page); } + + @PostMapping("search-user-detail") + public Result searchUserDetail(@RequestBody SearchDetailFormDTO formDTO,@LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(formDTO, SearchDetailFormDTO.SearchUserDetailForm.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result().ok(coverageService.searchUserDetail(formDTO)); + } + + @PostMapping("search-event-detail") + public Result searchEventDetail(@RequestBody SearchDetailFormDTO formDTO,@LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(formDTO, SearchDetailFormDTO.SearchEventDetailForm.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result().ok(coverageService.searchEventDetail(formDTO)); + } + + @PostMapping("search-resource-detail") + public Result searchResourceDetail(@RequestBody SearchDetailFormDTO formDTO,@LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(formDTO, SearchDetailFormDTO.SearchResourceDetailForm.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result().ok(coverageService.searchResourceDetail(formDTO)); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java index 5c39087be8..9c2179e7e8 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java @@ -5,9 +5,8 @@ import com.epmet.dataaggre.dto.coverage.AnalysisGovernedTargetsResult; import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult; import com.epmet.dataaggre.dto.govorg.form.CoverageAnalisisDataListLeftFormDTO; import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; -import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; -import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTOV2; -import com.epmet.dataaggre.dto.govorg.result.CoverageHomeSearchResultDTO; +import com.epmet.dataaggre.dto.govorg.form.SearchDetailFormDTO; +import com.epmet.dataaggre.dto.govorg.result.*; import java.util.List; @@ -50,4 +49,11 @@ public interface CoverageService { * @return */ PageData dataListLeft(CoverageAnalisisDataListLeftFormDTO formDTO); + + UserInfoResultDTO searchUserDetail(SearchDetailFormDTO formDTO); + + EventInfoResultDTO searchEventDetail(SearchDetailFormDTO formDTO); + + ResourceInfoResultDTO searchResourceDetail(SearchDetailFormDTO formDTO); + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java index ee4a6682fe..3d5b75f9bd 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java @@ -8,10 +8,14 @@ import com.epmet.commons.tools.enums.CoveragePlaceTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerIcHouseRedis; 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.redis.common.bean.HouseInfoCache; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.EpmetRequestHolder; import com.epmet.dataaggre.constant.OrgConstant; import com.epmet.dataaggre.constant.TableConstant; @@ -20,6 +24,7 @@ import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult; import com.epmet.dataaggre.dto.epmetuser.result.IcResiInfoResultDTO; import com.epmet.dataaggre.dto.govorg.form.CoverageAnalisisDataListLeftFormDTO; import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; +import com.epmet.dataaggre.dto.govorg.form.SearchDetailFormDTO; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; import com.epmet.dataaggre.entity.govorg.*; @@ -959,4 +964,76 @@ public class CoverageServiceImpl implements CoverageService { // page.getTotal()是多少条业务数据 return new PageData<>(list, page.getTotal()); } + + @Override + public UserInfoResultDTO searchUserDetail(SearchDetailFormDTO formDTO) { + CoverageHomeSearchFormDTO dto = ConvertUtils.sourceToTarget(formDTO, CoverageHomeSearchFormDTO.class); + UserInfoResultDTO result = new UserInfoResultDTO(); + List allIcUser = icResiService.getAllIcUser(dto); + if (CollectionUtils.isNotEmpty(allIcUser)){ + result = allIcUser.get(NumConstant.ZERO); + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(result.getGridId()); + if (null == gridInfo){ + throw new EpmetException("获取网格信息失败:"+result.getGridId()); + } + result.setGridName(gridInfo.getGridNamePath()); + HouseInfoCache houseInfo = CustomerIcHouseRedis.getHouseInfo(formDTO.getCustomerId(), result.getHomeId()); + if (null == houseInfo){ + throw new EpmetException("获取房屋信息失败:"+result.getHomeId()); + } + result.setHouseName(houseInfo.getAllName()); + result.setLongitude(houseInfo.getBuildingLongitude()); + result.setLatitude(houseInfo.getBuildingLatitude()); + } + return result; + } + + @Override + public EventInfoResultDTO searchEventDetail(SearchDetailFormDTO formDTO) { + CoverageHomeSearchFormDTO dto = ConvertUtils.sourceToTarget(formDTO, CoverageHomeSearchFormDTO.class); + EventInfoResultDTO result = new EventInfoResultDTO(); + List eventInfos = govProjectService.getEventInfos(dto); + if (CollectionUtils.isNotEmpty(eventInfos)){ + result = eventInfos.get(NumConstant.ZERO); + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(result.getGridId()); + if (null == gridInfo){ + throw new EpmetException("获取网格信息失败:"+result.getGridId()); + } + result.setGridName(gridInfo.getGridNamePath()); + } + return result; + } + + @Override + public ResourceInfoResultDTO searchResourceDetail(SearchDetailFormDTO formDTO) { + CoverageHomeSearchFormDTO dto = ConvertUtils.sourceToTarget(formDTO, CoverageHomeSearchFormDTO.class); + ResourceInfoResultDTO result = new ResourceInfoResultDTO(); + List infos = new ArrayList<>(); + switch (formDTO.getResourceType()){ + case "community_org": + infos = heartService.getCommunitySelOrgInfos(dto); + break; + case "superior_resource": + infos = govOrgService.getSuperiorResourceInfos(dto); + break; + case "city_management": + infos = govOrgService.getCityManageInfos(dto); + break; + case "dangerous_chemicals": + infos = govOrgService.getDangerousChemicalsInfos(dto); + break; + case "public_service": + infos = govOrgService.getPublicServiceInfos(dto); + break; + case "enterprise_patrol": + infos = govOrgService.getEnterpriseInfos(dto); + break; + default: + break; + } + if (CollectionUtils.isNotEmpty(infos)){ + result = infos.get(NumConstant.ZERO); + } + return result; + } } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCityManagementDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCityManagementDao.xml index 29476955de..c0696d0d94 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCityManagementDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcCityManagementDao.xml @@ -18,8 +18,15 @@ IFNULL(MOBILE,'') AS MOBILE FROM ic_city_management WHERE DEL_FLAG = 0 - AND CUSTOMER_ID = #{customerId} - AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + + AND ID = #{resourceId} + + + AND CUSTOMER_ID = #{customerId} + + + AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + AND `NAME` LIKE CONCAT('%',#{name},'%') @@ -40,8 +47,15 @@ IFNULL(MOBILE,'') AS MOBILE FROM ic_public_service WHERE DEL_FLAG = 0 - AND CUSTOMER_ID = #{customerId} - AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + + AND ID = #{resourceId} + + + AND CUSTOMER_ID = #{customerId} + + + AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + AND `NAME` LIKE CONCAT('%',#{name},'%') @@ -60,8 +74,15 @@ ifnull(PRINCIPAL_MOBILE,'') AS mobile FROM ic_dangerous_chemicals WHERE DEL_FLAG = 0 - AND CUSTOMER_ID = #{customerId} - AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + + AND ID = #{resourceId} + + + AND CUSTOMER_ID = #{customerId} + + + AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + AND `NAME` LIKE CONCAT('%',#{name},'%') @@ -80,8 +101,15 @@ ifnull(ADDRESS,'') as ADDRESS FROM ic_superior_resource WHERE DEL_FLAG = 0 - AND CUSTOMER_ID = #{customerId} - AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + + AND ID = #{resourceId} + + + AND CUSTOMER_ID = #{customerId} + + + AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + AND `NAME` LIKE CONCAT('%',#{name},'%') @@ -99,8 +127,15 @@ ifnull(MOBILE,'') AS mobile FROM ic_enterprise WHERE DEL_FLAG = 0 - AND CUSTOMER_ID = #{customerId} - AND CONCAT(AGENCY_PIDS,':',AGENCY_ID) LIKE CONCAT('%',#{orgId},'%') + + AND ID = #{resourceId} + + + AND CUSTOMER_ID = #{customerId} + + + AND CONCAT(AGENCY_PIDS,':',AGENCY_ID) LIKE CONCAT('%',#{orgId},'%') + AND PLACE_ORG_NAME LIKE CONCAT('%',#{name},'%') @@ -109,8 +144,15 @@ select count(id) FROM ic_city_management WHERE DEL_FLAG = 0 - AND CUSTOMER_ID = #{customerId} - AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + + AND ID = #{resourceId} + + + AND CUSTOMER_ID = #{customerId} + + + AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + AND `NAME` LIKE CONCAT('%',#{name},'%') @@ -119,8 +161,12 @@ select count(id) FROM ic_public_service WHERE DEL_FLAG = 0 - AND CUSTOMER_ID = #{customerId} - AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + + AND CUSTOMER_ID = #{customerId} + + + AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + AND `NAME` LIKE CONCAT('%',#{name},'%') @@ -129,8 +175,12 @@ select count(id) FROM ic_dangerous_chemicals WHERE DEL_FLAG = 0 - AND CUSTOMER_ID = #{customerId} - AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + + AND CUSTOMER_ID = #{customerId} + + + AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + AND `NAME` LIKE CONCAT('%',#{name},'%') @@ -139,8 +189,12 @@ select count(id) FROM ic_superior_resource WHERE DEL_FLAG = 0 - AND CUSTOMER_ID = #{customerId} - AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + + AND CUSTOMER_ID = #{customerId} + + + AND AGENCY_ID_PATH LIKE CONCAT('%',#{orgId},'%') + AND `NAME` LIKE CONCAT('%',#{name},'%') @@ -149,8 +203,12 @@ select count(id) FROM ic_enterprise WHERE DEL_FLAG = 0 - AND CUSTOMER_ID = #{customerId} - AND CONCAT(AGENCY_PIDS,':',AGENCY_ID) LIKE CONCAT('%',#{orgId},'%') + + AND CUSTOMER_ID = #{customerId} + + + AND CONCAT(AGENCY_PIDS,':',AGENCY_ID) LIKE CONCAT('%',#{orgId},'%') + AND PLACE_ORG_NAME LIKE CONCAT('%',#{name},'%')