diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/format/PositionNameFormatProcess.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/format/PositionNameFormatProcess.java
index 7995736d4..177d544f7 100644
--- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/format/PositionNameFormatProcess.java
+++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/format/PositionNameFormatProcess.java
@@ -7,6 +7,8 @@ import cn.stylefeng.roses.kernel.sys.api.PositionServiceApi;
/**
* 职位名称的格式化
+ *
+ * 采用职位名称缓存,加速获取
*
* @author fengshuonan
* @since 2023/7/15 21:58
diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/position/cache/PositionMemoryCache.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/position/cache/PositionMemoryCache.java
new file mode 100644
index 000000000..db33db303
--- /dev/null
+++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/position/cache/PositionMemoryCache.java
@@ -0,0 +1,26 @@
+package cn.stylefeng.roses.kernel.sys.modular.position.cache;
+
+import cn.hutool.cache.impl.TimedCache;
+import cn.stylefeng.roses.kernel.cache.memory.AbstractMemoryCacheOperator;
+import cn.stylefeng.roses.kernel.sys.modular.position.constants.PositionConstants;
+
+/**
+ * 职位信息缓存
+ *
+ * key是职位id,value是职位名称
+ *
+ * @author fengshuonan
+ * @since 2025/1/10 14:10
+ */
+public class PositionMemoryCache extends AbstractMemoryCacheOperator {
+
+ public PositionMemoryCache(TimedCache timedCache) {
+ super(timedCache);
+ }
+
+ @Override
+ public String getCommonKeyPrefix() {
+ return PositionConstants.POSITION_CACHE_PREFIX;
+ }
+
+}
\ No newline at end of file
diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/position/cache/PositionRedisCache.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/position/cache/PositionRedisCache.java
new file mode 100644
index 000000000..4fc84e33b
--- /dev/null
+++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/position/cache/PositionRedisCache.java
@@ -0,0 +1,26 @@
+package cn.stylefeng.roses.kernel.sys.modular.position.cache;
+
+import cn.stylefeng.roses.kernel.cache.redis.AbstractRedisCacheOperator;
+import cn.stylefeng.roses.kernel.sys.modular.position.constants.PositionConstants;
+import org.springframework.data.redis.core.RedisTemplate;
+
+/**
+ * 职位信息缓存
+ *
+ * key是职位id,value是职位名称
+ *
+ * @author fengshuonan
+ * @since 2025/1/10 14:10
+ */
+public class PositionRedisCache extends AbstractRedisCacheOperator {
+
+ public PositionRedisCache(RedisTemplate redisTemplate) {
+ super(redisTemplate);
+ }
+
+ @Override
+ public String getCommonKeyPrefix() {
+ return PositionConstants.POSITION_CACHE_PREFIX;
+ }
+
+}
diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/position/constants/PositionConstants.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/position/constants/PositionConstants.java
new file mode 100644
index 000000000..d297e42fe
--- /dev/null
+++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/position/constants/PositionConstants.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright [2020-2030] [https://www.stylefeng.cn]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Guns源码头部的版权声明。
+ * 3.请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns
+ * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns
+ * 6.若您的项目无法满足以上几点,可申请商业授权
+ */
+package cn.stylefeng.roses.kernel.sys.modular.position.constants;
+
+/**
+ * 职位缓存
+ *
+ * @author fengshuonan
+ * @since 2025/1/10 14:14
+ */
+public interface PositionConstants {
+
+ /**
+ * 职位缓存前缀
+ */
+ String POSITION_CACHE_PREFIX = "SYS:POSITION:INFO:";
+
+}
diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/position/service/impl/HrPositionServiceImpl.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/position/service/impl/HrPositionServiceImpl.java
index 1628b3ecd..5ba9b3c8a 100644
--- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/position/service/impl/HrPositionServiceImpl.java
+++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/position/service/impl/HrPositionServiceImpl.java
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.extra.spring.SpringUtil;
+import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
@@ -21,6 +22,7 @@ import cn.stylefeng.roses.kernel.sys.modular.position.service.HrPositionService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -38,6 +40,9 @@ import java.util.Set;
@Service
public class HrPositionServiceImpl extends ServiceImpl implements HrPositionService {
+ @Resource(name = "positionNameCache")
+ private CacheOperatorApi positionNameCache;
+
@Override
public void add(HrPositionRequest hrPositionRequest) {
HrPosition hrPosition = new HrPosition();
@@ -96,6 +101,9 @@ public class HrPositionServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HrPosition::getPositionId, positionId);
queryWrapper.select(HrPosition::getPositionName);
@@ -153,6 +167,7 @@ public class HrPositionServiceImpl extends ServiceImpl positionNameCache() {
+ TimedCache cache = CacheUtil.newTimedCache(1000 * SysConstants.DEFAULT_SYS_CACHE_TIMEOUT_SECONDS);
+ return new PositionMemoryCache(cache);
+ }
+
+}
diff --git a/kernel-s-system/system-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/sys/starter/cache/position/PositionRedisCacheAutoConfiguration.java b/kernel-s-system/system-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/sys/starter/cache/position/PositionRedisCacheAutoConfiguration.java
new file mode 100644
index 000000000..f3187617a
--- /dev/null
+++ b/kernel-s-system/system-spring-boot-starter/src/main/java/cn/stylefeng/roses/kernel/sys/starter/cache/position/PositionRedisCacheAutoConfiguration.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright [2020-2030] [https://www.stylefeng.cn]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Guns源码头部的版权声明。
+ * 3.请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns
+ * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns
+ * 6.若您的项目无法满足以上几点,可申请商业授权
+ */
+package cn.stylefeng.roses.kernel.sys.starter.cache.position;
+
+import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
+import cn.stylefeng.roses.kernel.cache.redis.util.CreateRedisTemplateUtil;
+import cn.stylefeng.roses.kernel.sys.modular.position.cache.PositionRedisCache;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+
+/**
+ * 职位信息的缓存
+ *
+ * @author fengshuonan
+ * @since 2025/1/10 14:18
+ */
+@Configuration
+@ConditionalOnClass(name = "org.springframework.data.redis.connection.RedisConnectionFactory")
+public class PositionRedisCacheAutoConfiguration {
+
+ /**
+ * 职位名称的缓存
+ *
+ * @author fengshuonan
+ * @since 2025/1/10 14:23
+ */
+ @Bean
+ public CacheOperatorApi positionNameCache(RedisConnectionFactory redisConnectionFactory) {
+ RedisTemplate redisTemplate = CreateRedisTemplateUtil.createObject(redisConnectionFactory);
+ return new PositionRedisCache(redisTemplate);
+ }
+
+}
diff --git a/kernel-s-system/system-spring-boot-starter/src/main/resources/META-INF/spring.factories b/kernel-s-system/system-spring-boot-starter/src/main/resources/META-INF/spring.factories
index b141f77fd..ef65f432a 100644
--- a/kernel-s-system/system-spring-boot-starter/src/main/resources/META-INF/spring.factories
+++ b/kernel-s-system/system-spring-boot-starter/src/main/resources/META-INF/spring.factories
@@ -11,4 +11,6 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.stylefeng.roses.kernel.sys.starter.cache.role.RoleMemoryCacheAutoConfiguration,\
cn.stylefeng.roses.kernel.sys.starter.cache.role.RoleRedisCacheAutoConfiguration,\
cn.stylefeng.roses.kernel.sys.starter.cache.menu.MenuCacheAutoConfiguration,\
- cn.stylefeng.roses.kernel.sys.starter.cache.menu.MenuRedisCacheAutoConfiguration
+ cn.stylefeng.roses.kernel.sys.starter.cache.menu.MenuRedisCacheAutoConfiguration,\
+ cn.stylefeng.roses.kernel.sys.starter.cache.position.PositionMemoryCacheAutoConfiguration,\
+ cn.stylefeng.roses.kernel.sys.starter.cache.position.PositionRedisCacheAutoConfiguration