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 8e179837e2..580a8d97e1 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 @@ -684,4 +684,15 @@ public class RedisKeys { public static String getTemporaryBuildingInfoCacheKey(String customerId,String userId){ return rootPrefix.concat("temporary:").concat("temporaryBuilding:").concat(customerId).concat(":").concat(userId); } + + /** + * @Description 临时楼栋单元缓存key + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 1:54 下午 + */ + public static String getTemporaryBuildingUnitInfoCacheKey(String customerId,String userId){ + return rootPrefix.concat("temporary:").concat("temporaryBuildingUnit:").concat(customerId).concat(":").concat(userId); + } } 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 8a1092573a..4a04c1ee71 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 @@ -122,4 +122,20 @@ public interface IcBuildingDao extends BaseDao { */ List selectAllNeighborHoodByGridIds(@Param("orgIds")List orgId); + /** + * @Description 根据小区ID查询楼栋 + * @param neighborHoodId + * @author zxc + * @date 2022/2/14 1:25 下午 + */ + List selectAllBuildingByNeighborHoodId(@Param("neighborHoodId")String neighborHoodId); + + /** + * @Description 根据楼栋ID查询楼栋单元 + * @param building + * @author zxc + * @date 2022/2/14 1:58 下午 + */ + List selectAllBuildingUnitByBuildingId(@Param("building")String building); + } \ 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 d8c402b040..3d2aed1a32 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 @@ -4,6 +4,9 @@ import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; 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.GridInfoCache; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.IcBuildingDao; import com.epmet.dto.ImportHouseGeneralDTO; @@ -12,10 +15,7 @@ import com.epmet.redis.IcHouseRedis; import org.apache.commons.lang3.StringUtils; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -26,17 +26,24 @@ import java.util.stream.Collectors; public class ImportHouseInfoListener extends AnalysisEventListener { List nums = new ArrayList<>(); + Integer num = NumConstant.ZERO; + List needDisposeList = new ArrayList<>(); List needInsertList = new ArrayList<>(); - Integer num = NumConstant.ZERO; + String buildingName = null; String neighborHoodName = null; String gridName = null; String agencyName = null; + Map gridInfos = null; List gridInfoDTOs = null; Map neighborHoodInfos = null; List neighborHoodInfoDTOs = null; + Map buildingInfos = null; + List buildingInfoDTOs = null; + Map buildingUnitInfos = null; + List buildingUnitInfoDTOs = null; private ImportInfoFormDTO formDTO; private IcBuildingDao icBuildingDao; @@ -53,8 +60,9 @@ public class ImportHouseInfoListener extends AnalysisEventListener getBuildingInfos(String neighborHoodId){ + buildingInfoDTOs = icBuildingDao.selectAllBuildingByNeighborHoodId(neighborHoodId); + buildingInfos = buildingInfoDTOs.stream().collect(Collectors.toMap(n -> n.getNeighborHoodId() + "_" + n.getBuildingName(), n -> n.getBuildingId())); + icHouseRedis.setTemporaryCacheBuilding(formDTO.getCustomerId(), buildingInfos, formDTO.getUserId()); + return buildingInfos; + } + + /** + * @Description 获取楼栋下的单元 + * @param buildingId + * @author zxc + * @date 2022/2/14 2:04 下午 + */ + public Map getBuildingUnitInfos(String buildingId){ + buildingUnitInfoDTOs = icBuildingDao.selectAllBuildingUnitByBuildingId(buildingId); + buildingUnitInfos = buildingInfoDTOs.stream().collect(Collectors.toMap(n -> n.getBuildingId() + "_" + n.getBuildingUnit(), n -> n.getBuildingUnitId())); + icHouseRedis.setTemporaryCacheBuildingUnit(formDTO.getCustomerId(), buildingUnitInfos, formDTO.getUserId()); + return buildingInfos; + } + @Override public void doAfterAllAnalysed(AnalysisContext context) { @@ -151,6 +246,7 @@ public class ImportHouseInfoListener extends AnalysisEventListener map,String userId) { String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId, userId); redisUtils.hMSet(key, map, RedisUtils.NOT_EXPIRE); } + + /** + * @Description 获取网格临时缓存【单个】 + * @param customerId + * @param userId + * @param gridName + * @author zxc + * @date 2022/2/14 1:49 下午 + */ public Object getTemporaryCacheGrid(String customerId,String userId,String gridName){ String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId,userId); Object o = redisUtils.hGet(key, gridName); return o; } + + /** + * @Description 获取网格临时缓存【多个】 + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 1:50 下午 + */ public Map getTemporaryCacheGrids(String customerId,String userId){ String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId,userId); return redisUtils.hGetAll(key); } + + /** + * @Description 删除网格临时缓存 + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 1:50 下午 + */ public void delTemporaryCacheGrids(String customerId,String userId){ String key = RedisKeys.getTemporaryGridInfoCacheKey(customerId,userId); redisUtils.delete(key); } + /** + * @Description 保存临时小区缓存 + * @param customerId + * @param map + * @param userId + * @author zxc + * @date 2022/2/14 1:50 下午 + */ public void setTemporaryCacheNeighBorHood(String customerId, Map map,String userId) { String key = RedisKeys.getTemporaryNeighborHoodInfoCacheKey(customerId, userId); redisUtils.hMSet(key, map, RedisUtils.NOT_EXPIRE); } + + /** + * @Description 获取临时小区缓存【单个】 + * @param customerId + * @param userId + * @param gridIdAndNeighborHoodName + * @author zxc + * @date 2022/2/14 1:50 下午 + */ public Object getTemporaryCacheNeighBorHood(String customerId,String userId,String gridIdAndNeighborHoodName){ String key = RedisKeys.getTemporaryNeighborHoodInfoCacheKey(customerId,userId); return redisUtils.hGet(key, gridIdAndNeighborHoodName); } + + /** + * @Description 删除临时小区缓存 + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 1:51 下午 + */ public void delTemporaryCacheNeighBorHood(String customerId,String userId){ String key = RedisKeys.getTemporaryNeighborHoodInfoCacheKey(customerId,userId); redisUtils.delete(key); } + /** + * @Description 保存临时楼栋缓存 + * @param customerId + * @param map + * @param userId + * @author zxc + * @date 2022/2/14 1:51 下午 + */ public void setTemporaryCacheBuilding(String customerId, Map map,String userId) { String key = RedisKeys.getTemporaryBuildingInfoCacheKey(customerId, userId); redisUtils.hMSet(key, map, RedisUtils.NOT_EXPIRE); } + + /** + * @Description 获取临时楼栋缓存【单个】 + * @param customerId + * @param userId + * @param neighborHoodIdAndBuildingName + * @author zxc + * @date 2022/2/14 1:51 下午 + */ public Object getTemporaryCacheBuilding(String customerId,String userId,String neighborHoodIdAndBuildingName){ String key = RedisKeys.getTemporaryBuildingInfoCacheKey(customerId,userId); return redisUtils.hGet(key, neighborHoodIdAndBuildingName); } + + /** + * @Description 删除临时楼栋缓存 + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 1:51 下午 + */ public void delTemporaryCacheBuilding(String customerId,String userId){ String key = RedisKeys.getTemporaryBuildingInfoCacheKey(customerId,userId); redisUtils.delete(key); } + /** + * @Description 保存临时楼栋单元缓存 + * @param customerId + * @param map + * @param userId + * @author zxc + * @date 2022/2/14 1:51 下午 + */ + public void setTemporaryCacheBuildingUnit(String customerId, Map map,String userId) { + String key = RedisKeys.getTemporaryBuildingUnitInfoCacheKey(customerId, userId); + redisUtils.hMSet(key, map, RedisUtils.NOT_EXPIRE); + } + + /** + * @Description 获取临时楼栋单元缓存【单个】 + * @param customerId + * @param userId + * @param buildingIdAndUnitName + * @author zxc + * @date 2022/2/14 1:51 下午 + */ + public Object getTemporaryCacheBuildingUnit(String customerId,String userId,String buildingIdAndUnitName){ + String key = RedisKeys.getTemporaryBuildingUnitInfoCacheKey(customerId,userId); + return redisUtils.hGet(key, buildingIdAndUnitName); + } + /** + * @Description 删除临时楼栋单元缓存 + * @param customerId + * @param userId + * @author zxc + * @date 2022/2/14 1:51 下午 + */ + public void delTemporaryCacheBuildingUnit(String customerId,String userId){ + String key = RedisKeys.getTemporaryBuildingUnitInfoCacheKey(customerId,userId); + redisUtils.delete(key); + } } \ No newline at end of file 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 19291a2fc4..93ff429c4e 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 @@ -261,4 +261,26 @@ ) + + + + + +