|
@@ -0,0 +1,174 @@
|
|
|
+package com.qunzhixinxi.hnqz.admin.config;
|
|
|
+
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEntDrugtable;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
|
|
|
+import com.qunzhixinxi.hnqz.admin.mapper.SysDeptMapper;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.SysUserService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntDrugtableService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
|
|
|
+import com.qunzhixinxi.hnqz.common.core.constant.CacheConstants;
|
|
|
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
|
|
|
+import com.qunzhixinxi.hnqz.common.gateway.support.DynamicRouteInitEvent;
|
|
|
+import java.util.List;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.boot.web.context.WebServerInitializedEvent;
|
|
|
+import org.springframework.context.annotation.Configuration;
|
|
|
+import org.springframework.context.event.EventListener;
|
|
|
+import org.springframework.core.annotation.Order;
|
|
|
+import org.springframework.data.redis.core.RedisTemplate;
|
|
|
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
|
|
|
+import org.springframework.scheduling.annotation.Async;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 系统信息初始化
|
|
|
+ *
|
|
|
+ * @author jimmy
|
|
|
+ * @date 2024-12-18 15:54
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Configuration
|
|
|
+@AllArgsConstructor
|
|
|
+public class SysInitRunner {
|
|
|
+
|
|
|
+ private final RedisTemplate redisTemplate;
|
|
|
+ private final SysDeptMapper deptMapper;
|
|
|
+ private final SysUserService sysUserService;
|
|
|
+ private final WmTaskTypeService taskTypeService;
|
|
|
+ private final WmDaDrugEntDrugtableService drugtableService;
|
|
|
+
|
|
|
+ @Async
|
|
|
+ @Order
|
|
|
+ @EventListener({WebServerInitializedEvent.class, DynamicRouteInitEvent.class})
|
|
|
+ public void init() {
|
|
|
+
|
|
|
+ // 缓存企业信息
|
|
|
+ initDept();
|
|
|
+
|
|
|
+ // 缓存人员信息
|
|
|
+ initUser();
|
|
|
+
|
|
|
+ // 任务类型
|
|
|
+ initTaskType();
|
|
|
+
|
|
|
+ // 初始化药品名录
|
|
|
+ initDrug();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initUser() {
|
|
|
+ log.info("======> 初始化人员开始 <======");
|
|
|
+ Boolean result = redisTemplate.delete(CacheConstants.USER_KEY);
|
|
|
+ log.info("======> 删除人员信息:【{}】 ", result);
|
|
|
+
|
|
|
+ // 获取全部企业
|
|
|
+ List<SysUser> users =
|
|
|
+ sysUserService.list(
|
|
|
+ Wrappers.<SysUser>lambdaQuery()
|
|
|
+ .eq(SysUser::getLockFlag, CommonConstants.STATUS_NORMAL)
|
|
|
+ .eq(SysUser::getDelFlag, CommonConstants.STATUS_NORMAL));
|
|
|
+
|
|
|
+ log.info("======> 获取人员信息:全部【{}】", users.size());
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(users)) {
|
|
|
+ log.info("======> 可用人员信息为0,结束初始化");
|
|
|
+ } else {
|
|
|
+
|
|
|
+ users.forEach(
|
|
|
+ user -> {
|
|
|
+// log.info("缓存人员信息:{}, {}", user.getUserId(), user);
|
|
|
+ redisTemplate.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(SysUser.class));
|
|
|
+ redisTemplate.opsForList().rightPush(CacheConstants.USER_KEY, user);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ log.debug("======> 初始化人员信息结束 <======");
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initDrug() {
|
|
|
+ log.info("======> 初始化产品开始 <======");
|
|
|
+ Boolean result = redisTemplate.delete(CacheConstants.DRUG_KEY);
|
|
|
+ log.info("======> 删除产品:【{}】 ", result);
|
|
|
+
|
|
|
+ // 获取全部企业
|
|
|
+ List<WmDaDrugEntDrugtable> drugtables =
|
|
|
+ drugtableService.list(
|
|
|
+ Wrappers.<WmDaDrugEntDrugtable>lambdaQuery()
|
|
|
+ .eq(WmDaDrugEntDrugtable::getEnableFlag, CommonConstants.STATUS_NORMAL)
|
|
|
+ .eq(WmDaDrugEntDrugtable::getDelFlag, CommonConstants.STATUS_NORMAL));
|
|
|
+
|
|
|
+ log.info("======> 获取产品:全部【{}】", drugtables.size());
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(drugtables)) {
|
|
|
+ log.info("======> 可用产品为0,结束初始化");
|
|
|
+ } else {
|
|
|
+
|
|
|
+ drugtables.forEach(
|
|
|
+ drugtable -> {
|
|
|
+// log.info("缓存产品:{}, {}", drugtable.getId(), drugtable);
|
|
|
+ redisTemplate.setHashValueSerializer(
|
|
|
+ new Jackson2JsonRedisSerializer<>(WmDaDrugEntDrugtable.class));
|
|
|
+ redisTemplate.opsForList().rightPush(CacheConstants.DRUG_KEY, drugtable);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ log.debug("======> 初始产品结束 <======");
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initDept() {
|
|
|
+ log.info("======> 初始化企业信息开始 <======");
|
|
|
+ Boolean result = redisTemplate.delete(CacheConstants.DEPT_KEY);
|
|
|
+ log.info("======> 删除企业信息:【{}】 ", result);
|
|
|
+
|
|
|
+ // 获取全部企业
|
|
|
+ List<SysDept> deptList =
|
|
|
+ deptMapper.selectList(
|
|
|
+ Wrappers.<SysDept>lambdaQuery().eq(SysDept::getDelFlag, CommonConstants.STATUS_NORMAL));
|
|
|
+
|
|
|
+ log.info("======> 获取企业信息:全部【{}】", deptList.size());
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(deptList)) {
|
|
|
+ log.info("======> 可用企业信息为0,结束初始化");
|
|
|
+ } else {
|
|
|
+
|
|
|
+ deptList.forEach(
|
|
|
+ dept -> {
|
|
|
+// log.info("缓存企业信息:{}, {}", dept.getDeptId(), dept);
|
|
|
+ redisTemplate.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(SysDept.class));
|
|
|
+ redisTemplate.opsForList().rightPush(CacheConstants.DEPT_KEY, dept);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ log.debug("======> 初始化企业信息结束 <======");
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initTaskType() {
|
|
|
+ log.info("======> 初始化任务类型信息开始 <======");
|
|
|
+ Boolean result = redisTemplate.delete(CacheConstants.TASK_TYPE_KEY);
|
|
|
+ log.info("======> 删除任务类型:【{}】 ", result);
|
|
|
+
|
|
|
+ // 获取全部企业
|
|
|
+ List<WmTaskType> taskTypes =
|
|
|
+ taskTypeService.list(
|
|
|
+ Wrappers.<WmTaskType>lambdaQuery()
|
|
|
+ .eq(WmTaskType::getEnableFlag, CommonConstants.STATUS_NORMAL)
|
|
|
+ .eq(WmTaskType::getDelFlag, CommonConstants.STATUS_NORMAL)
|
|
|
+ .le(WmTaskType::getId, "100"));
|
|
|
+
|
|
|
+ log.info("======> 获取任务类型:全部【{}】", taskTypes.size());
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(taskTypes)) {
|
|
|
+ log.info("======> 可用任务类型为0,结束初始化");
|
|
|
+ } else {
|
|
|
+
|
|
|
+ taskTypes.forEach(
|
|
|
+ tt -> {
|
|
|
+// log.info("缓存任务类型:{}, {}", tt.getId(), tt);
|
|
|
+ redisTemplate.setHashValueSerializer(
|
|
|
+ new Jackson2JsonRedisSerializer<>(WmTaskType.class));
|
|
|
+ redisTemplate.opsForList().rightPush(CacheConstants.TASK_TYPE_KEY, tt);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ log.debug("======> 初始化任务类型结束 <======");
|
|
|
+ }
|
|
|
+}
|