141 lines
4.2 KiB
Java
141 lines
4.2 KiB
Java
package com.czlis.system.config;
|
||
|
||
import com.czlis.common.asyncmanager.AsyncManager;
|
||
import com.czlis.common.config.RuoYiConfig;
|
||
import com.czlis.common.utils.ComDictUtils;
|
||
import com.czlis.interfaceCommon.mapper.ComDictMapper;
|
||
import com.czlis.quartz.service.impl.SysJobServiceImpl;
|
||
import com.czlis.system.service.impl.SysConfigServiceImpl;
|
||
import lombok.extern.slf4j.Slf4j;
|
||
import org.mybatis.spring.annotation.MapperScan;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
|
||
import org.springframework.context.annotation.Bean;
|
||
import org.springframework.context.annotation.Configuration;
|
||
import org.springframework.context.annotation.EnableAspectJAutoProxy;
|
||
|
||
import java.io.File;
|
||
import java.util.Arrays;
|
||
import java.util.List;
|
||
import java.util.TimeZone;
|
||
import java.util.TimerTask;
|
||
|
||
/**
|
||
* 程序注解配置
|
||
* 项目初始化运行逻辑
|
||
*
|
||
* @author admin
|
||
*/
|
||
@Configuration
|
||
// 表示通过aop框架暴露该代理对象,AopContext能够访问
|
||
@EnableAspectJAutoProxy(exposeProxy = true)
|
||
// 指定要扫描的Mapper类的包的路径
|
||
@MapperScan("com.czlis.**.mapper")
|
||
@Slf4j
|
||
public class ApplicationConfig {
|
||
|
||
@Autowired
|
||
private ComDictMapper comDictMapper;
|
||
@Autowired
|
||
private SysConfigServiceImpl sysConfigService;
|
||
@Autowired
|
||
private SysJobServiceImpl sysJobService;
|
||
|
||
//选择性提供缓存的字典类别
|
||
private List<String> list = Arrays.asList("GROUP","AU","BT","DG", "DP", "FT", "HOS","LG","PT","PW","SRD","SX","UT","CM","VF");
|
||
|
||
/**
|
||
* 时区配置
|
||
*/
|
||
@Bean
|
||
public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() {
|
||
return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
|
||
}
|
||
|
||
/**
|
||
* 加载字典缓存数据
|
||
*/
|
||
@Bean
|
||
public void loadingDictCache() {
|
||
TimerTask task = new TimerTask(){
|
||
@Override
|
||
public void run() {
|
||
try {
|
||
//清空所有com_dict缓存
|
||
ComDictUtils.clearDictCache();
|
||
list.stream().forEach(zdlb -> ComDictUtils.setDictCache(zdlb, comDictMapper.getComDictListByZdlb(zdlb)));
|
||
} catch (Exception e) {
|
||
log.error("获取lis代码字典失败,异步执行{}方法失败",this, e);
|
||
}
|
||
}
|
||
};
|
||
AsyncManager.me().execute(task);
|
||
|
||
}
|
||
|
||
/**
|
||
* 加载系统配置缓存
|
||
*/
|
||
@Bean
|
||
public void loadingSysConfigCache() {
|
||
TimerTask task = new TimerTask(){
|
||
@Override
|
||
public void run() {
|
||
try {
|
||
sysConfigService.loadingConfigCache();
|
||
} catch (Exception e) {
|
||
log.error("获取系统配置字典失败,异步执行{}方法失败",this, e);
|
||
}
|
||
}
|
||
};
|
||
AsyncManager.me().execute(task);
|
||
|
||
}
|
||
|
||
/**
|
||
* 加载定时任务列表
|
||
*/
|
||
@Bean
|
||
public void loadingSysJobCache() {
|
||
TimerTask task = new TimerTask(){
|
||
@Override
|
||
public void run() {
|
||
try {
|
||
sysJobService.init();
|
||
} catch (Exception e) {
|
||
log.error("获取系统配置字典失败,异步执行{}方法失败",this, e);
|
||
}
|
||
}
|
||
};
|
||
AsyncManager.me().execute(task);
|
||
}
|
||
|
||
/**
|
||
* 创建文件夹
|
||
*/
|
||
@Bean
|
||
public void createFolder(){
|
||
String folderPath = RuoYiConfig.getProfile();
|
||
|
||
// 创建File对象
|
||
File folder = new File(folderPath);
|
||
|
||
// 检查文件夹是否存在,不存在则创建(包括多级目录)
|
||
if (!folder.exists()) {
|
||
boolean isCreated = folder.mkdirs(); // mkdirs()可创建多级目录,mkdir()仅创建单级目录
|
||
if (isCreated) {
|
||
System.out.println("文件夹创建成功:" + folderPath);
|
||
} else {
|
||
System.out.println("文件夹创建失败:" + folderPath);
|
||
}
|
||
} else {
|
||
System.out.println("文件夹已存在:" + folderPath);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
}
|