lis8.0/lis-system/src/main/java/com/czlis/system/config/ApplicationConfig.java
2025-08-21 18:15:49 +08:00

141 lines
4.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}
}