From d51f3f1fa829b3a86eb563ba2c88201c3542f451 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 14 Feb 2022 16:00:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=BF=E5=B1=8B=E5=AF=BC=E5=85=A5=E6=9A=82?= =?UTF-8?q?=E6=8F=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/constant/CustomerGridConstant.java | 1 + .../java/com/epmet/dao/IcBuildingDao.java | 8 ++ .../epmet/model/ImportHouseInfoListener.java | 124 +++++++++++++----- .../main/resources/mapper/IcBuildingDao.xml | 12 ++ 4 files changed, 109 insertions(+), 36 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerGridConstant.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerGridConstant.java index 5b8289ffa1..bfe1fbe93c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerGridConstant.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerGridConstant.java @@ -18,4 +18,5 @@ public interface CustomerGridConstant { String GRID = "grid"; String NEIGHBORHOOD = "neighborHood"; + String BUILDING = "building"; } 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 4a04c1ee71..9971ff2016 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 @@ -138,4 +138,12 @@ public interface IcBuildingDao extends BaseDao { */ List selectAllBuildingUnitByBuildingId(@Param("building")String building); + /** + * @Description 根据ID查询小区 + * @param id + * @author zxc + * @date 2022/2/14 3:16 下午 + */ + ImportHouseGeneralDTO selectNeighborHoodById(@Param("id")String id); + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java index 3d2aed1a32..f7a9ab5681 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java @@ -6,8 +6,11 @@ import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; +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.constant.CustomerAgencyConstant; +import com.epmet.constant.CustomerGridConstant; import com.epmet.dao.IcBuildingDao; import com.epmet.dto.ImportHouseGeneralDTO; import com.epmet.dto.form.ImportInfoFormDTO; @@ -40,6 +43,7 @@ public class ImportHouseInfoListener extends AnalysisEventListener gridInfoDTOs = null; Map neighborHoodInfos = null; List neighborHoodInfoDTOs = null; + ImportHouseGeneralDTO neighborHoodGeneralDTO = null; Map buildingInfos = null; List buildingInfoDTOs = null; Map buildingUnitInfos = null; @@ -63,47 +67,62 @@ public class ImportHouseInfoListener extends AnalysisEventListener collect = needDisposeList.stream().collect(Collectors.toMap(n -> n.getBuildingId() + "_" + n.getBuildingUnitId() + "_" + n.getDoorName(), n -> StringUtils.isNotBlank(n.getHouseId()) ? n.getHouseId() : "")); - icHouseRedis.setTemporaryCacheHouse(formDTO.getCustomerId(), collect, formDTO.getUserId()); -// Map temporaryCacheHouses = icHouseRedis.getTemporaryCacheHouses(formDTO.getCustomerId(), formDTO.getUserId()); - // TODO 等待方法 - List result = new ArrayList<>(); - //把房屋ID不为空的行号加入nums,说明已存在 - result.forEach(r -> { - if (StringUtils.isNotBlank(r.getHouseId())){ - nums.add(r.getNum()); - } - }); - } - }else if (formDTO.getOrgType().equals("neighborHood")){ + if (formDTO.getOrgType().equals(CustomerGridConstant.BUILDING)){ + disposeBuildingHouse(dto); + }else if (formDTO.getOrgType().equals(CustomerGridConstant.NEIGHBORHOOD)){ disposeNeighborHoodHouse(dto); - }else if (formDTO.getOrgType().equals("grid")){ + }else if (formDTO.getOrgType().equals(CustomerGridConstant.GRID)){ disposeGridHouse(dto); - }else if (formDTO.getOrgType().equals("agency")){ + }else if (formDTO.getOrgType().equals(CustomerGridConstant.AGENCY)){ disposeAgencyHouse(dto); } } - public void disposeNeighborHoodHouse(ImportHouseGeneralDTO dto){ - neighborHoodName = null == neighborHoodName ? icBuildingDao.selectNeighborHoodNameById(formDTO.getOrgId()) : neighborHoodName; - //不是本小区的 - if (!dto.getNeighborHoodName().equals(neighborHoodName)){ + /** + * @Description 左侧树点击楼栋时调用 + * @param dto + * @author zxc + * @date 2022/2/14 3:23 下午 + */ + public void disposeBuildingHouse(ImportHouseGeneralDTO dto){ + buildingName = null == buildingName ? icBuildingDao.selectBuildingNameById(formDTO.getOrgId()) : buildingName; + // 排除不是本楼的 + if (!dto.getBuildingName().equals(buildingName)){ nums.add(num); }else { } } + /** + * @Description 左侧树点击小区时调用 + * @param dto + * @author zxc + * @date 2022/2/14 3:23 下午 + */ + public void disposeNeighborHoodHouse(ImportHouseGeneralDTO dto){ + neighborHoodGeneralDTO = null == neighborHoodGeneralDTO ? icBuildingDao.selectNeighborHoodById(formDTO.getOrgId()) : neighborHoodGeneralDTO; + //排除不是本小区的 + if (!dto.getNeighborHoodName().equals(neighborHoodGeneralDTO.getNeighborHoodName())){ + nums.add(num); + }else { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(neighborHoodGeneralDTO.getGridId()); + if (null == gridInfo){ + throw new EpmetException("查询网格失败..."); + } + // 排除网格名不一样但小区名一样 + if (!gridInfo.getGridName().equals(dto.getGridName()) && neighborHoodGeneralDTO.getNeighborHoodName().equals(dto.getNeighborHoodName())){ + nums.add(num); + return; + } + dto.setNeighborHoodId(formDTO.getOrgId()); + dto.setGridId(neighborHoodGeneralDTO.getGridId()); + dto.setAgencyId(neighborHoodGeneralDTO.getAgencyId()); + // 填充各种ID + fillData(dto,CustomerGridConstant.NEIGHBORHOOD); + } + } + /** * @Description 左侧树点击网格时调用 * @param dto @@ -123,7 +142,14 @@ public class ImportHouseInfoListener extends AnalysisEventListener gridIds = new ArrayList<>(); + if (orgType.equals(CustomerGridConstant.GRID)){ + gridIds = Arrays.asList(formDTO.getOrgId()); + }else if (orgType.equals(CustomerGridConstant.AGENCY)){ + gridIds = gridInfoDTOs.stream().map(m -> m.getGridId()).collect(Collectors.toList()); + } + neighborHoodInfos = null == neighborHoodInfos ? getNeighborHoodInfos(gridIds) : neighborHoodInfos; + Object cacheNeighBorHood = icHouseRedis.getTemporaryCacheNeighBorHood(formDTO.getCustomerId(), formDTO.getUserId(), formDTO.getOrgId() + "_" + dto.getNeighborHoodName()); + // 赋值小区ID + dto.setNeighborHoodId(null == cacheNeighBorHood ? "" : cacheNeighBorHood.toString()); + } if (StringUtils.isNotBlank(dto.getNeighborHoodId())){ //小区ID不为空赋值楼栋ID buildingInfos = null == buildingInfos ? getBuildingInfos(dto.getNeighborHoodId()) : buildingInfos; @@ -239,6 +280,17 @@ public class ImportHouseInfoListener extends AnalysisEventListener + + +