From e24d9db24de54dbb1740b7c83e28b6b0df2b7c7b Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Mon, 17 Jan 2022 12:50:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=201.=E7=A4=BE?= =?UTF-8?q?=E5=8C=BA=E6=9F=A5=E8=AF=A2-=E6=90=9C=E7=B4=A2=E9=9C=80?= =?UTF-8?q?=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复: 2.社区查询-搜索房屋 --- .../form/demand/PageListAnalysisFormDTO.java | 5 + .../form/demand/UserDemandPageFormDTO.java | 5 + .../controller/IcUserDemandRecController.java | 43 ++++- .../epmet/service/IcUserDemandRecService.java | 10 ++ .../impl/IcUserDemandRecServiceImpl.java | 151 +++++++++++------- .../resources/mapper/IcUserDemandRecDao.xml | 7 + .../com/epmet/controller/HouseController.java | 27 +++- .../main/java/com/epmet/dao/IcHouseDao.java | 1 + .../java/com/epmet/service/HouseService.java | 3 +- .../epmet/service/impl/HouseServiceImpl.java | 32 +++- .../src/main/resources/mapper/IcHouseDao.xml | 4 +- 11 files changed, 222 insertions(+), 66 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/PageListAnalysisFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/PageListAnalysisFormDTO.java index 2eb55979b1..dea90b14ad 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/PageListAnalysisFormDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/PageListAnalysisFormDTO.java @@ -53,4 +53,9 @@ public class PageListAnalysisFormDTO implements Serializable { * 数据分析-服务措施分析排除,已取消 */ private String excludeStatus; + + /** + * 搜索关键词 + */ + private String keyword; } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/UserDemandPageFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/UserDemandPageFormDTO.java index a574bb3100..bfeb9203e2 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/UserDemandPageFormDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/UserDemandPageFormDTO.java @@ -74,4 +74,9 @@ public class UserDemandPageFormDTO extends PageFormDTO implements Serializable { * 希望截止 */ private String wantServiceEndTime; + + /** + * 搜索关键词 + */ + private String keyword; } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java index 0eb686a401..019771d846 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java @@ -21,8 +21,12 @@ import com.epmet.commons.rocketmq.messages.ServerSatisfactionCalFormDTO; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.constant.MqConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.dto.form.mq.eventmsg.BasePointEventMsg; import com.epmet.commons.tools.enums.EventEnum; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; @@ -30,12 +34,16 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.constant.SystemMessageType; import com.epmet.constant.UserDemandConstant; +import com.epmet.dto.form.LoginUserDetailsFormDTO; import com.epmet.dto.form.SystemMsgFormDTO; import com.epmet.dto.form.demand.*; +import com.epmet.dto.result.LoginUserDetailsResultDTO; import com.epmet.dto.result.demand.*; import com.epmet.feign.EpmetMessageOpenFeignClient; +import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.service.*; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.PostMapping; @@ -57,7 +65,7 @@ import java.util.List; @Slf4j @RestController @RequestMapping("userdemand") -public class IcUserDemandRecController { +public class IcUserDemandRecController implements ResultDataResolver { @Autowired private IcUserDemandRecService icUserDemandRecService; @@ -71,6 +79,8 @@ public class IcUserDemandRecController { private IcPartyUnitService icPartyUnitService; @Autowired private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; + @Autowired + private EpmetUserOpenFeignClient userOpenFeignClient; /** * 根据服务方类型查询 下拉框 @@ -321,5 +331,36 @@ public class IcUserDemandRecController { return new Result().ok(icUserDemandRecService.categoryAnalysis(formDTO)); } + /** + * 搜索需求。根据需求人精确搜索;需求方、需求内容模糊搜索 + * @return + */ + @PostMapping("search") + public Result search(@RequestBody UserDemandPageFormDTO input, @LoginUser TokenDto loginUser) { + ValidatorUtils.validateEntity(input); + String keyword = input.getKeyword(); + Integer pageNo = input.getPageNo(); + Integer pageSize = input.getPageSize(); + + if (StringUtils.isBlank(keyword)) { + return new Result(); + } + + LoginUserDetailsFormDTO form = new LoginUserDetailsFormDTO(); + form.setApp(loginUser.getApp()); + form.setClient(loginUser.getClient()); + form.setUserId(loginUser.getUserId()); + + LoginUserDetailsResultDTO loginUserDetail = getResultDataOrThrowsException(userOpenFeignClient.getLoginUserDetails(form), + ServiceConstant.EPMET_USER_SERVER, + EpmetErrorCode.SERVER_ERROR.getCode(), + "【社区查询】查找当前人所属组织失败", + null); + + PageData page = icUserDemandRecService.search(loginUser.getCustomerId(), loginUserDetail.getAgencyId(), keyword, pageNo, pageSize); + + return new Result().ok(page); + } + } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java index da3fd68cdf..336cd21999 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java @@ -214,4 +214,14 @@ public interface IcUserDemandRecService extends BaseService search(String customerId, String agencyId, String keyword, Integer pageNo, Integer pageSize); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java index 34f7f2070f..f7034a63ee 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java @@ -22,12 +22,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.enums.DictTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.scan.param.TextScanParamDTO; @@ -77,7 +79,7 @@ import java.util.stream.Collectors; */ @Slf4j @Service -public class IcUserDemandRecServiceImpl extends BaseServiceImpl implements IcUserDemandRecService { +public class IcUserDemandRecServiceImpl extends BaseServiceImpl implements IcUserDemandRecService, ResultDataResolver { @Autowired private IcUserDemandOperateLogDao operateLogDao; @Autowired @@ -792,67 +794,76 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl gridIds=list.stream().map(DemandRecResultDTO::getGridId).collect(Collectors.toList()); - Result> gridInfoRes=govOrgOpenFeignClient.getGridListByGridIds(gridIds); - List gridInfoList = gridInfoRes.success() && !CollectionUtils.isEmpty(gridInfoRes.getData()) ? gridInfoRes.getData() : new ArrayList<>(); - Map gridInfoMap = gridInfoList.stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, Function.identity())); - - //2、查询分类名称 - List categoryCodes=list.stream().map(DemandRecResultDTO::getCategoryCode).collect(Collectors.toList()); - List dictList=demandDictService.listByCodes(formDTO.getCustomerId(),categoryCodes); - Map dictMap = dictList.stream().collect(Collectors.toMap(IcResiDemandDictEntity::getCategoryCode, IcResiDemandDictEntity::getCategoryName)); + fillDemandsInfo(list, formDTO.getCustomerId()); + } + return new PageData<>(list, total); + } - //3、查询志愿者 - // 服务方类型:志愿者:volunteer;社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit; - Map userInfoMap=new HashMap<>(); - Set userIdList=list.stream().filter(item->null!=item.getServiceType()&&item.getServiceType().equals(UserDemandConstant.VOLUNTEER)).map(DemandRecResultDTO::getServerId).collect(Collectors.toSet()); - if(CollectionUtils.isNotEmpty(userIdList)){ - Result> userInfoRes = epmetUserOpenFeignClient.queryUserBaseInfo(new ArrayList<>(userIdList)); - if(!userInfoRes.success()||CollectionUtils.isEmpty(userInfoRes.getData())){ - throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(),"查询志愿者信息异常"); - } - userInfoMap=userInfoRes.getData().stream().collect(Collectors.toMap(UserBaseInfoResultDTO::getUserId, UserBaseInfoResultDTO::getRealName)); + /** + * 填充需求信息 + * @param demandList 需求列表 + * @param customerId 客户id + */ + public void fillDemandsInfo(List demandList, String customerId) { + //1、查询网格信息 + List gridIds=demandList.stream().map(DemandRecResultDTO::getGridId).collect(Collectors.toList()); + Result> gridInfoRes=govOrgOpenFeignClient.getGridListByGridIds(gridIds); + List gridInfoList = gridInfoRes.success() && !CollectionUtils.isEmpty(gridInfoRes.getData()) ? gridInfoRes.getData() : new ArrayList<>(); + Map gridInfoMap = gridInfoList.stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, Function.identity())); + + //2、查询分类名称 + List categoryCodes=demandList.stream().map(DemandRecResultDTO::getCategoryCode).collect(Collectors.toList()); + List dictList=demandDictService.listByCodes(customerId,categoryCodes); + Map dictMap = dictList.stream().collect(Collectors.toMap(IcResiDemandDictEntity::getCategoryCode, IcResiDemandDictEntity::getCategoryName)); + + //3、查询志愿者 + // 服务方类型:志愿者:volunteer;社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit; + Map userInfoMap=new HashMap<>(); + Set userIdList=demandList.stream().filter(item->null!=item.getServiceType()&&item.getServiceType().equals(UserDemandConstant.VOLUNTEER)).map(DemandRecResultDTO::getServerId).collect(Collectors.toSet()); + if(CollectionUtils.isNotEmpty(userIdList)){ + Result> userInfoRes = epmetUserOpenFeignClient.queryUserBaseInfo(new ArrayList<>(userIdList)); + if(!userInfoRes.success()||CollectionUtils.isEmpty(userInfoRes.getData())){ + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(),"查询志愿者信息异常"); } + userInfoMap=userInfoRes.getData().stream().collect(Collectors.toMap(UserBaseInfoResultDTO::getUserId, UserBaseInfoResultDTO::getRealName)); + } - for(DemandRecResultDTO res:list){ - if (null != gridInfoMap && gridInfoMap.containsKey(res.getGridId())) { - res.setGridName(gridInfoMap.get(res.getGridId()).getGridName()); - } + for(DemandRecResultDTO res:demandList){ + if (null != gridInfoMap && gridInfoMap.containsKey(res.getGridId())) { + res.setGridName(gridInfoMap.get(res.getGridId()).getGridName()); + } - if (null != dictMap && dictMap.containsKey(res.getCategoryCode())) { - res.setCategoryName(dictMap.get(res.getCategoryCode())); - } - res.setFirstCategoryName(demandDictService.getCategoryName(formDTO.getCustomerId(), res.getFirstCategoryCode())); - if (null != userInfoMap && userInfoMap.containsKey(res.getServerId())) { - res.setServiceName(userInfoMap.get(res.getServerId())); - } - //社区帮办:community;楼长帮办:building_caption;党员帮办:party;自身上报:self_help - //待处理:pending;已取消canceled;已派单:assigned;已接单:have_order;已完成:finished - //服务方类型:志愿者:volunteer;社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit; - switch (res.getServiceType()) - { - case UserDemandConstant.PARTY_UNIT: - res.setServiceShowName(res.getServiceName().concat("(区域化党建单位)")); - break; - case UserDemandConstant.SOCIAL_ORG: - res.setServiceShowName(res.getServiceName().concat("(社会组织)")); - break; - case UserDemandConstant.COMMUNITY_ORG: - res.setServiceShowName(res.getServiceName().concat("(社区自组织)")); - break; - case UserDemandConstant.VOLUNTEER: - res.setServiceShowName(res.getServiceName().concat("(志愿者)")); - break; - default: - res.setServiceShowName(res.getServiceName()); - log.warn("serviceType 错误"); - break; - } - res.setServiceShowFlag(StringUtils.isNotBlank(res.getServerId())); + if (null != dictMap && dictMap.containsKey(res.getCategoryCode())) { + res.setCategoryName(dictMap.get(res.getCategoryCode())); + } + res.setFirstCategoryName(demandDictService.getCategoryName(customerId, res.getFirstCategoryCode())); + if (null != userInfoMap && userInfoMap.containsKey(res.getServerId())) { + res.setServiceName(userInfoMap.get(res.getServerId())); } + //社区帮办:community;楼长帮办:building_caption;党员帮办:party;自身上报:self_help + //待处理:pending;已取消canceled;已派单:assigned;已接单:have_order;已完成:finished + //服务方类型:志愿者:volunteer;社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit; + switch (res.getServiceType()) + { + case UserDemandConstant.PARTY_UNIT: + res.setServiceShowName(res.getServiceName().concat("(区域化党建单位)")); + break; + case UserDemandConstant.SOCIAL_ORG: + res.setServiceShowName(res.getServiceName().concat("(社会组织)")); + break; + case UserDemandConstant.COMMUNITY_ORG: + res.setServiceShowName(res.getServiceName().concat("(社区自组织)")); + break; + case UserDemandConstant.VOLUNTEER: + res.setServiceShowName(res.getServiceName().concat("(志愿者)")); + break; + default: + res.setServiceShowName(res.getServiceName()); + log.warn("serviceType 错误"); + break; + } + res.setServiceShowFlag(StringUtils.isNotBlank(res.getServerId())); } - return new PageData<>(list, total); } /** @@ -1603,7 +1614,35 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl search(String customerId, String agencyId, String keyword, Integer pageNo, Integer pageSize) { + CustomerAgencyDTO agency = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(agencyId), ServiceConstant.GOV_ORG_SERVER, + EpmetErrorCode.SERVER_ERROR.getCode(), "【社区查询-查询需求列表】查询当前staff所属组织信息失败", null); + + if (agency == null) { + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "【社区查询-查询需求列表】查询当前staff所属组织信息失败"); + } + + String gridPids; + if(NumConstant.ZERO_STR.equals(agency.getPid())){ + gridPids = agencyId; + }else{ + gridPids = agency.getPids().concat(StrConstant.COLON).concat(agencyId); + } + PageListAnalysisFormDTO queryForm = new PageListAnalysisFormDTO(); + queryForm.setCustomerId(customerId); + queryForm.setGridPids(gridPids); + queryForm.setKeyword(keyword); + + PageHelper.startPage(pageNo, pageSize); + List list = baseDao.pageListAnalysis(queryForm); + + // 填充信息 + fillDemandsInfo(list, customerId); + + return new PageData<>(list, new PageInfo<>(list).getTotal()); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml index 4bb193f075..b59fa44be5 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml @@ -325,6 +325,13 @@ and r.STATUS !=#{excludeStatus} + + AND ( + r.DEMAND_USER_NAME = #{keyword} + OR match(r.CONTENT) against (#{keyword} in boolean mode ) + OR s.SERVER_NAME like CONCAT('%',#{keyword},'%') + ) + order by r.WANT_SERVICE_TIME desc,r.REPORT_TIME asc diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java index 1edcfe206d..44593788a9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java @@ -22,15 +22,22 @@ import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.feign.ResultDataResolver; 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.dto.form.IcHouseFormDTO; import com.epmet.dto.form.IcNeighborHoodFormDTO; import com.epmet.dto.form.ListIcNeighborHoodFormDTO; +import com.epmet.dto.form.LoginUserDetailsFormDTO; import com.epmet.dto.result.HouseInfoDTO; import com.epmet.dto.result.IcNeighborHoodResultDTO; +import com.epmet.dto.result.LoginUserDetailsResultDTO; import com.epmet.excel.IcHouseExcel; +import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.service.HouseService; import com.epmet.util.ExcelPoiUtils; import lombok.extern.slf4j.Slf4j; @@ -55,11 +62,14 @@ import java.util.stream.Collectors; @Slf4j @RestController @RequestMapping("house") -public class HouseController { +public class HouseController implements ResultDataResolver { @Autowired private HouseService houseService; + @Autowired + private EpmetUserOpenFeignClient userOpenFeignClient; + @PostMapping("houselist") public Result houseList(@RequestBody ListIcNeighborHoodFormDTO formDTO){ @@ -68,7 +78,7 @@ public class HouseController { String queryScene = "house_manage"; - IcNeighborHoodResultDTO icNeighborHoodResultDTO = houseService.listNeighborhood(formDTO.getBuildingId(), formDTO.getOwnerName(), + IcNeighborHoodResultDTO icNeighborHoodResultDTO = houseService.listNeighborhood(null, formDTO.getBuildingId(), formDTO.getOwnerName(), formDTO.getOwnerPhone(), null, null, queryScene, formDTO.getPageNo(), formDTO.getPageSize()); @@ -84,7 +94,7 @@ public class HouseController { *@return */ @PostMapping("search") - public Result searchHouse(@RequestBody ListIcNeighborHoodFormDTO formDTO) { + public Result searchHouse(@RequestBody ListIcNeighborHoodFormDTO formDTO, @LoginUser TokenDto loginUser) { String keyword = formDTO.getKeyword(); if (StringUtils.isBlank(keyword)) { IcNeighborHoodResultDTO r = new IcNeighborHoodResultDTO(); @@ -108,7 +118,16 @@ public class HouseController { // 使用场景:社区查询 String scene = "community_search"; - IcNeighborHoodResultDTO icNeighborHoodResultDTO = houseService.listNeighborhood(null, null, null, + LoginUserDetailsFormDTO form = new LoginUserDetailsFormDTO(); + form.setUserId(loginUser.getUserId()); + form.setClient(loginUser.getClient()); + form.setApp(loginUser.getApp()); + LoginUserDetailsResultDTO loginUserDetail = getResultDataOrThrowsException(userOpenFeignClient.getLoginUserDetails(form), ServiceConstant.EPMET_USER_SERVER, + EpmetErrorCode.SERVER_ERROR.getCode(), + "【社区查询-查询房屋】查询当前staff所在组织信息失败", + null); + + IcNeighborHoodResultDTO icNeighborHoodResultDTO = houseService.listNeighborhood(loginUserDetail.getAgencyId(),null, null, null, neighborhoodName, buildingName, scene, formDTO.getPageNo(), formDTO.getPageSize()); return new Result().ok(icNeighborHoodResultDTO); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java index a974510a38..93c5af18e5 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java @@ -47,6 +47,7 @@ public interface IcHouseDao extends BaseDao { // @Param("building") IcBuildingEntity building, // @Param("house") IcHouseEntity house); IPage> searchHouseByPage(IPage page, + @Param("pids") String pids, @Param("buildingId") String buildingId, @Param("ownerName") String ownerName, @Param("ownerPhone") String ownerPhone, diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java index e92fbd0e57..ac7f28dbbc 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java @@ -49,7 +49,8 @@ public interface HouseService { List importExcel(String customerId, List list, String staffId, List numList); - IcNeighborHoodResultDTO listNeighborhood(String buildingId, + IcNeighborHoodResultDTO listNeighborhood(String ancestorAgencyId, + String buildingId, String ownerName, String ownerPhone, String neighborHoodName, diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index 6f072441f9..90a46acfc0 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java @@ -3,15 +3,21 @@ package com.epmet.service.impl; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.IcBuildingDao; import com.epmet.dao.IcBuildingUnitDao; import com.epmet.dao.IcHouseDao; import com.epmet.dao.IcNeighborHoodDao; +import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.IcBuildingDTO; import com.epmet.dto.IcBuildingUnitDTO; import com.epmet.dto.IcHouseDTO; @@ -24,6 +30,7 @@ import com.epmet.enums.HousePurposeEnums; import com.epmet.enums.HouseRentFlagEnums; import com.epmet.enums.HouseTypeEnums; import com.epmet.excel.IcHouseExcel; +import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.service.HouseService; import com.epmet.service.IcBuildingService; import com.epmet.service.IcBuildingUnitService; @@ -42,7 +49,7 @@ import java.util.stream.Collectors; @Slf4j @Service -public class HouseServiceImpl implements HouseService { +public class HouseServiceImpl implements HouseService, ResultDataResolver { @@ -60,6 +67,8 @@ public class HouseServiceImpl implements HouseService { private IcBuildingUnitDao icBuildingUnitDao; @Resource private IcHouseDao icHouseDao; + @Autowired + private GovOrgOpenFeignClient govOrgOpenFeignClient; @Override @Transactional(rollbackFor = Exception.class) @@ -207,7 +216,8 @@ public class HouseServiceImpl implements HouseService { } @Override - public IcNeighborHoodResultDTO listNeighborhood(String buildingId, + public IcNeighborHoodResultDTO listNeighborhood(String ancestorAgencyId, + String buildingId, String ownerName, String ownerPhone, String neighborHoodName, @@ -219,9 +229,25 @@ public class HouseServiceImpl implements HouseService { //如果类型是house 查房屋 //IPage> resultMap = searchHouse(buildingId, ownerName, ownerPhone, neighborHoodName, buildingName, pageNo, pageSize); + // 查询pids + CustomerAgencyDTO agency = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(ancestorAgencyId), ServiceConstant.GOV_ORG_SERVER, + EpmetErrorCode.SERVER_ERROR.getCode(), "【社区查询-查询需求列表】查询当前staff所属组织信息失败", null); + + if (agency == null) { + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "【社区查询-查询需求列表】查询当前staff所属组织信息失败"); + } + + String pids; + + if(NumConstant.ZERO_STR.equals(agency.getPid())){ + pids = ancestorAgencyId; + }else{ + pids = agency.getPids().concat(StrConstant.COLON).concat(ancestorAgencyId); + } + IPage page = new Page(pageNo,pageSize); - IPage> mapIPage = icHouseDao.searchHouseByPage(page, buildingId, ownerName, ownerPhone, neighborHoodName, buildingName, queryScene); + IPage> mapIPage = icHouseDao.searchHouseByPage(page, pids, buildingId, ownerName, ownerPhone, neighborHoodName, buildingName, queryScene); List> records = mapIPage.getRecords(); records.forEach(item->{ item.put("houseType", HouseTypeEnums.getTypeValue(item.get("houseTypeKey"))); diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml index ab84f43e0f..b5a8b72a25 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml @@ -129,7 +129,9 @@ LEFT JOIN ic_neighbor_hood c on a.NEIGHBOR_HOOD_ID = c.ID and c.DEL_FLAG = '0' LEFT JOIN ic_building_unit d on a.BUILDING_UNIT_ID = d.ID and d.DEL_FLAG = '0' - + + AND c.AGENCY_PIDS like CONCAT(#{pids},'%') + AND a.BUILDING_ID = #{buildingId}