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 f3c669d7cd..1390ed7a3a 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 @@ -636,4 +636,8 @@ public class RedisKeys { public static String getOrgTreeCacheKey(String agencyId) { return rootPrefix.concat("org:temp:orgtree").concat(agencyId); } + + public static String getHouseInfoCacheKey(String houseId){ + return rootPrefix.concat("house:").concat(houseId); + } } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java index 853558739b..312befe6ca 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java @@ -71,4 +71,9 @@ public class HouseInfoDTO implements Serializable { * 楼的纬度 */ private String buildingLatitude; + + /** + * 小区名+楼栋名+单元名+房屋名 + */ + private String allName; } 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 93c5af18e5..a394aaaef5 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 @@ -59,6 +59,8 @@ public interface IcHouseDao extends BaseDao { List queryHouseInfo(@Param("houseIdList") Set houseIdList); + HouseInfoDTO queryHouseInfoByHouseId(@Param("houseId") String houseId); + /** * @Description 查询房屋信息 * @param idCard diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java index 9159c6eb88..f5b7b8639b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java @@ -17,9 +17,17 @@ package com.epmet.redis; +import cn.hutool.core.bean.BeanUtil; +import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.IcHouseDao; +import com.epmet.dto.result.HouseInfoDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.Map; /** * 房屋信息 @@ -32,6 +40,9 @@ public class IcHouseRedis { @Autowired private RedisUtils redisUtils; + @Autowired + private IcHouseDao icHouseDao; + public void delete(Object[] ids) { } @@ -44,4 +55,28 @@ public class IcHouseRedis { return null; } + /** + * @Description 往缓存放房屋信息 + * @param houseId + * @param map + * @author zxc + * @date 2022/1/18 3:55 下午 + */ + public void setHouseInfo(String houseId, Map map){ + String key = RedisKeys.getHouseInfoCacheKey(houseId); + redisUtils.hMSet(key, map); + } + + public HouseInfoDTO getHouseInfo(String houseId){ + String key = RedisKeys.getHouseInfoCacheKey(houseId); + Map map = redisUtils.hGetAll(key); + if (!CollectionUtils.isEmpty(map)){ + return ConvertUtils.mapToEntity(map,HouseInfoDTO.class); + } + HouseInfoDTO houseInfo = icHouseDao.queryHouseInfoByHouseId(houseId); + Map result = BeanUtil.beanToMap(houseInfo, false, true); + setHouseInfo(houseId,result); + return houseInfo; + } + } \ No newline at end of file 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 90a46acfc0..551cd9a82f 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 @@ -1,6 +1,7 @@ package com.epmet.service.impl; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.epmet.commons.tools.constant.NumConstant; @@ -31,6 +32,7 @@ import com.epmet.enums.HouseRentFlagEnums; import com.epmet.enums.HouseTypeEnums; import com.epmet.excel.IcHouseExcel; import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.redis.IcHouseRedis; import com.epmet.service.HouseService; import com.epmet.service.IcBuildingService; import com.epmet.service.IcBuildingUnitService; @@ -69,6 +71,8 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { private IcHouseDao icHouseDao; @Autowired private GovOrgOpenFeignClient govOrgOpenFeignClient; + @Autowired + private IcHouseRedis icHouseRedis; @Override @Transactional(rollbackFor = Exception.class) @@ -313,6 +317,10 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { if(org.apache.commons.collections4.CollectionUtils.isEmpty(houseIdList)){ return new ArrayList<>(); } - return icHouseDao.queryHouseInfo(houseIdList); + List result = new ArrayList<>(); + houseIdList.forEach(h -> { + result.add(icHouseRedis.getHouseInfo(h)); + }); + return result; } } 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 b5a8b72a25..900d34ba66 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 @@ -300,4 +300,28 @@ and ih.id !=#{houseId} + diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.23__ic_user_transfer_and_change.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.23__ic_user_transfer_and_change.sql new file mode 100644 index 0000000000..0ec0f9e094 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.23__ic_user_transfer_and_change.sql @@ -0,0 +1,96 @@ + +ALTER TABLE `ic_resi_user` +ADD COLUMN `STATUS` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '用户状态【0:正常 1:转出】' AFTER `JTXX_REMAKES`; + +ALTER TABLE `ic_resi_user` +DROP INDEX `customer_idcard_unique`; + +CREATE TABLE `ic_user_transfer_record` ( + `ID` varchar(64) NOT NULL COMMENT '唯一标识', + `IC_USER_ID` varchar(64) NOT NULL COMMENT '被调动人Id【ic_resi_user表id】', + `OPERATOR_ID` varchar(64) NOT NULL COMMENT '调动(工作)人员Id【customer_staff表userId】', + `IC_USER_NAME` varchar(64) NOT NULL COMMENT '被调动人名称【ic_resi_user表name】', + `OPERATOR_NAME` varchar(64) NOT NULL COMMENT '调动(工作)人员名称【customer_staff表real_name】', + `OLD_CUSTOMER_ID` varchar(64) NOT NULL COMMENT '调动前客户Id', + `NEW_CUSTOMER_ID` varchar(64) DEFAULT NULL COMMENT '调动后客户Id', + `OLD_AGENCY_ID` varchar(64) DEFAULT NULL COMMENT '调动前组织Id', + `NEW_AGENCY_ID` varchar(64) DEFAULT NULL COMMENT '调动后组织Id', + `OLD_AGENCY_NAME` varchar(64) DEFAULT NULL COMMENT '调动前组织名称', + `NEW_AGENCY_NAME` varchar(255) DEFAULT NULL COMMENT '调动后组织名称', + `OLD_GRID_ID` varchar(64) DEFAULT NULL COMMENT '调动前网格Id', + `NEW_GRID_ID` varchar(64) DEFAULT NULL COMMENT '调动后网格Id', + `OLD_GRID_NAME` varchar(255) DEFAULT NULL COMMENT '调动前网格名称', + `NEW_GRID_NAME` varchar(255) DEFAULT NULL COMMENT '调动后网格名称', + `OLD_NEIGHBOR_HOOD_ID` varchar(64) DEFAULT NULL COMMENT '调动前小区Id', + `NEW_NEIGHBOR_HOOD_ID` varchar(64) DEFAULT NULL COMMENT '调动后小区Id', + `OLD_NEIGHBOR_HOOD_NAME` varchar(255) DEFAULT NULL COMMENT '调动前小区名称', + `NEW_NEIGHBOR_HOOD_NAME` varchar(255) DEFAULT NULL COMMENT '调动后小区名称', + `OLD_BUILDING_ID` varchar(64) DEFAULT NULL COMMENT '调动前楼栋Id', + `NEW_BUILDING_ID` varchar(64) DEFAULT NULL COMMENT '调动后楼栋Id', + `OLD_BUILDING_NAME` varchar(255) DEFAULT NULL COMMENT '调动前楼栋名称', + `NEW_BUILDING_NAME` varchar(255) DEFAULT NULL COMMENT '调动后楼栋名称', + `OLD_BUILDING_UNIT_ID` varchar(64) DEFAULT NULL COMMENT '调动前单元Id', + `NEW_BUILDING_UNIT_ID` varchar(64) DEFAULT NULL COMMENT '调动后单元Id', + `OLD_BUILDING_UNIT_NAME` varchar(255) DEFAULT NULL COMMENT '调动前单元名称', + `NEW_BUILDING_UNIT_NAME` varchar(255) DEFAULT NULL COMMENT '调动后单元名称', + `OLD_HOUSE_ID` varchar(64) DEFAULT NULL COMMENT '调动前房屋Id', + `NEW_HOUSE_ID` varchar(64) DEFAULT NULL COMMENT '调动后房屋Id', + `OLD_HOUSE_NAME` varchar(255) DEFAULT NULL COMMENT '调动前房屋名称', + `NEW_HOUSE_NAME` varchar(255) DEFAULT NULL COMMENT '调动后房屋名称', + `TRANSFER_TIME` datetime NOT NULL COMMENT '调动时间', + `REMARK` varchar(512) DEFAULT NULL COMMENT '备注说明', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标识', + `REVISION` int(10) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='居民调动记录表'; + +CREATE TABLE `ic_user_change_record` ( + `ID` varchar(64) NOT NULL COMMENT '唯一标识', + `IC_USER_TRANSFER_RECORD_ID` varchar(64) DEFAULT NULL COMMENT '调动表Id【只有调动记录此列才有值】', + `CUSTOMER_ID` varchar(64) DEFAULT NULL COMMENT '当前所属客户Id[迁出客户的此列没值]', + `OPERATOR_ID` varchar(64) NOT NULL COMMENT '操作人Id【customer_staff表userId】', + `IC_USER_ID` varchar(64) NOT NULL COMMENT '被操作人Id【ic_resi_user表id】', + `OPERATOR_NAME` varchar(64) NOT NULL COMMENT '操作人名称【customer_staff表real_name】', + `IC_USER_NAME` varchar(64) NOT NULL COMMENT '被操作人名称【ic_resi_user表name】', + `TYPE` varchar(64) NOT NULL COMMENT '操作类型【add:新增 category:类别 transfer:调动】', + `TYPE_NAME` varchar(64) NOT NULL COMMENT '操作类型名称【add:新增 category:类别 transfer:调动】', + `BEFORE_CHANGE_NAME` varchar(512) DEFAULT NULL COMMENT '变更前文字描述', + `AFTER_CHANGE_NAME` varchar(512) DEFAULT NULL COMMENT '变更后文字描述', + `CHANGE_TIME` datetime NOT NULL COMMENT '调整时间', + `REMARK` varchar(512) DEFAULT NULL COMMENT '备注说明', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标识', + `REVISION` int(10) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='居民变更记录表'; + +CREATE TABLE `ic_user_change_detailed` ( + `ID` varchar(64) NOT NULL COMMENT '唯一标识', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id', + `IC_USER_CHANGE_RECORD_ID` varchar(64) NOT NULL COMMENT '变更记录表主键【ic_user_change_record.id】', + `AGENCY_ID` varchar(64) NOT NULL COMMENT '组织Id', + `GRID_ID` varchar(64) NOT NULL COMMENT '网格Id', + `NEIGHBOR_HOOD_ID` varchar(64) NOT NULL COMMENT '小区Id', + `BUILDING_ID` varchar(64) NOT NULL COMMENT '楼栋Id', + `BUILDING_UNIT_ID` varchar(64) NOT NULL COMMENT '单元Id', + `HOUSE_ID` varchar(64) NOT NULL COMMENT '房屋Id', + `IC_USER_ID` varchar(64) NOT NULL COMMENT '变更人Id', + `TYPE` varchar(255) NOT NULL COMMENT '操作类型【add:新增 category:类别 in:迁入 out:迁出】', + `TYPE_NAME` varchar(255) NOT NULL COMMENT '操作类型名称【add:新增 category:类别 in:迁入 out:迁出】', + `FIELD_NAME` varchar(64) NOT NULL COMMENT '字段名【18类对应的ic_resi_user表字段名】', + `VALUE` int(3) NOT NULL COMMENT '当前类别的值', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标识', + `REVISION` int(10) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='变更明细表\r\n[一条变更记录对应多条人员类别数据]'; \ No newline at end of file