diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseManageTreeFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseManageTreeFormDTO.java new file mode 100644 index 0000000000..6ef78708be --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseManageTreeFormDTO.java @@ -0,0 +1,61 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 烟台,房屋信息界面,左侧树查询入参 + * @Author yzm + * @Date 2023/1/6 13:39 + */ +@Data +public class HouseManageTreeFormDTO implements Serializable { + public interface InitTreeGroup { + } + + // public interface AddUserShowGroup extends CustomerClientShowGroup {} + public interface NodeEventGroup { + } + + /** + * 当前工作人员所属组织id + * 房屋信息界面左侧树初始化 + */ + @NotBlank(message = "工作人员所属组织id不能为空", groups = InitTreeGroup.class) + private String staffAgencyId; + + + /** + * 组织id、网格id、小区id、楼栋id + */ + @NotBlank(message = "id不能为空", groups = NodeEventGroup.class) + private String id; + /** + * 省级:province + * 市级: city + * 区县级: district, + * 乡(镇、街道)级:street, + * 社区级:community, + * 网格:grid + * 小区:neighborHood + * 楼栋:building + */ + @NotBlank(message = "level不能为空", groups = NodeEventGroup.class) + private String level; + + + // ------------------------------------ + /** + * tokenDto.customerId + */ + @NotBlank(message = "customerId不能为空", groups = InitTreeGroup.class) + private String customerId; + /** + * tokenDto.userId + */ + @NotBlank(message = "staffId不能为空", groups = InitTreeGroup.class) + private String staffId; +} + diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/BuildingController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/BuildingController.java index 9185571640..c144b425b9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/BuildingController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/BuildingController.java @@ -109,12 +109,32 @@ public class BuildingController { return new Result(); } + /** + * 房屋信息左侧树 + * 此接口返回的树是完整的,针对烟台市这个客户,改为逐级展开,烟台调用下面的接口: + * @param tokenDTO + * @return + */ @PostMapping("treelist") - public Result treeList(@LoginUser TokenDto tokenDTO){ + public Result> treeList(@LoginUser TokenDto tokenDTO){ List buildingTreeLevelDTOS =buildingService.treeList(tokenDTO.getCustomerId(), tokenDTO.getUserId()); return new Result().ok(buildingTreeLevelDTOS); } + /** + * 房屋信息左侧树 + * 逐级展开,用户点击树节点去查询 + * @param tokenDTO + * @return + */ + @PostMapping("treeinit") + public Result> treeInit(@LoginUser TokenDto tokenDTO,@RequestBody HouseManageTreeFormDTO formDTO){ + formDTO.setCustomerId(tokenDTO.getCustomerId()); + formDTO.setStaffId(tokenDTO.getUserId()); + List buildingTreeLevelDTOS =buildingService.treeInit(formDTO); + return new Result>().ok(buildingTreeLevelDTOS); + } + /** * Desc: 根据前端方便,新开接口,只返回树的ID * @param tokenDTO diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java index 46f0041e8d..4b10e94bf1 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcBuildingDao.java @@ -51,7 +51,9 @@ public interface IcBuildingDao extends BaseDao { List searchAllBuilding( @Param("building")IcBuildingEntity building, @Param("house")IcHouseEntity house); - List selectAgencyChildrenList(@Param("agencyId") String agencyId); + List selectAgencyChildrenList(@Param("customerId")String customerId, + @Param("pidsKey") String pidsKey, + @Param("pid")String pid); List> selectListByName(@Param("customerId") String customerId, @Param("neighborNameList")ArrayList strings, diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/BuildingService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/BuildingService.java index 441995271b..0b6beb0aa8 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/BuildingService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/BuildingService.java @@ -20,10 +20,7 @@ package com.epmet.service; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.BuildingTreeLevelDTO; -import com.epmet.dto.form.IcBuildingListFormDTO; -import com.epmet.dto.form.IcBulidingAddFormDTO; -import com.epmet.dto.form.IcHouseListFormDTO; -import com.epmet.dto.form.ImportInfoFormDTO; +import com.epmet.dto.form.*; import com.epmet.dto.result.BuildingResultDTO; import com.epmet.dto.result.BuildingResultPagedDTO; import com.epmet.dto.result.IcBuildingListResultDTO; @@ -57,7 +54,20 @@ public interface BuildingService { void addBuilding(String customerId, IcBulidingAddFormDTO formDTO); + /** + * 房屋信息左侧树 + * @param customerId + * @param staffId + * @return + */ List treeList(String customerId, String staffId); + + /** + * 房屋信息左侧树 + * @param houseManageTreeFormDTO + * @return 逐级展开,用户点击树节点去查询 + */ + List treeInit(HouseManageTreeFormDTO houseManageTreeFormDTO); List treeIds(String customerId, String staffId); PageData listBuilding(IcBuildingListFormDTO formDTO); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java index 36dde00dfe..060e41dc4c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java @@ -181,7 +181,7 @@ public class BuildingServiceImpl implements BuildingService { // agency.setAgencyId("77f6bc7f07064bf4c09ef848139a344c"); //1.获取所在组织及下级组织 CustomerAgencyEntity customerAgency = customerAgencyDao.selectById(agency.getAgencyId()); - List customerAgencyList = icBuildingDao.selectAgencyChildrenList(agency.getAgencyId()); + List customerAgencyList = icBuildingDao.selectAgencyChildrenList(customerId,agency.getAgencyId(),null); customerAgencyList.add(customerAgency); if (CollectionUtils.isEmpty(customerAgencyList)) { @@ -313,6 +313,66 @@ public class BuildingServiceImpl implements BuildingService { } + /** + * 房屋信息左侧树 + * + * @param formDTO + * @return 逐级展开,用户点击树节点去查询 + */ + @Override + public List treeInit(HouseManageTreeFormDTO formDTO) { + List customerAgencyList=new ArrayList<>(); + // 1.获取所在组织及下级组织 + CustomerAgencyEntity customerAgency = customerAgencyDao.selectById(formDTO.getStaffAgencyId()); + customerAgencyList.add(customerAgency); + // 2、查询直属下级组织 + List subAgencyList = icBuildingDao.selectAgencyChildrenList(formDTO.getCustomerId(), null, formDTO.getStaffAgencyId()); + if (!CollectionUtils.isEmpty(customerAgencyList)) { + customerAgencyList.addAll(subAgencyList); + } + + List resultList = customerAgencyList.stream().map(item -> { + BuildingTreeLevelDTO buildingTreeLevelDTO = new BuildingTreeLevelDTO(); + buildingTreeLevelDTO.setId(item.getId()); + buildingTreeLevelDTO.setPId(item.getPid()); + buildingTreeLevelDTO.setLabel(item.getOrganizationName()); + buildingTreeLevelDTO.setLevel(item.getLevel()); + buildingTreeLevelDTO.setLongitude(item.getLongitude()); + buildingTreeLevelDTO.setLatitude(item.getLatitude()); + buildingTreeLevelDTO.setChildren(new ArrayList<>()); + // 当前组织有几个下级组织 + buildingTreeLevelDTO.setShowNum(StrConstant.EPMETY_STR); + return buildingTreeLevelDTO; + }).collect(Collectors.toList()); + + // 3.获取组织下的网格 + LambdaQueryWrapper gridWrapper = new LambdaQueryWrapper<>(); + gridWrapper.eq(CustomerGridEntity::getPid, formDTO.getStaffAgencyId()); + gridWrapper.last("ORDER BY sort,CAST(GRID_NAME AS SIGNED),CONVERT(GRID_NAME using gbk)"); + List customerGridList = customerGridDao.selectList(gridWrapper); + + if (CollectionUtils.isEmpty(customerGridList)) { + return covertToTree(customerAgency, resultList); + } + + List gridList = customerGridList.stream().map(item -> { + BuildingTreeLevelDTO buildingTreeLevelDTO = new BuildingTreeLevelDTO(); + buildingTreeLevelDTO.setId(item.getId()); + buildingTreeLevelDTO.setLabel(item.getGridName()); + buildingTreeLevelDTO.setLevel("grid"); + buildingTreeLevelDTO.setPId(item.getPid()); + buildingTreeLevelDTO.setLongitude(item.getLongitude()); + buildingTreeLevelDTO.setLatitude(item.getLatitude()); + buildingTreeLevelDTO.setChildren(new ArrayList<>()); + // 当前网格下有几个小区 + buildingTreeLevelDTO.setShowNum(StrConstant.EPMETY_STR); + return buildingTreeLevelDTO; + }).collect(Collectors.toList()); + + resultList.addAll(gridList); + return covertToTree(customerAgency, resultList); + } + /** * Desc: * 2022-06-06 需求变动,只返回当前组织下级ID diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml index a825c2538a..ded214fc88 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml @@ -195,8 +195,13 @@ customer_agency ca WHERE ca.del_flag = '0' - and - CONCAT(':',ca.pids, ':') like CONCAT('%:',#{agencyId},':%') + and ca.customer_id = #{customerId} + + and CONCAT(':',ca.pids, ':') like CONCAT('%:',#{pidsKey},':%') + + + and ca.pid = #{pid} + ORDER BY CAST(organization_name AS SIGNED),CONVERT(organization_name using gbk)