1、system服务国际化相关表免校验租户、token配置;2、system服务枚举相关国际化处理;3、system服务资金管理easyexcel导出表头国际化处理;

This commit is contained in:
gaoqr
2025-11-21 16:08:21 +08:00
parent cafdc15fad
commit ff71a6afbb
55 changed files with 472 additions and 629 deletions
@@ -5,8 +5,11 @@ import com.alibaba.excel.converters.ReadConverterContext;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.cf.imes.framework.common.constants.ResourceBundleConstants;
import com.cf.imes.framework.common.util.i18n.core.util.ResourceBundleUtils;
import com.cf.imes.framework.excel.core.annotations.EnumFormat;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.i18n.LocaleContextHolder;
import java.lang.reflect.Field;
@@ -40,7 +43,7 @@ public class EnumBoolValConvert implements Converter<Boolean> {
for (Object e : enumClass.getEnumConstants()) {
BaseBoolValEnum baseEnum = (BaseBoolValEnum) e;
if (baseEnum.getCode().equals(code)) {
return new WriteCellData<>(baseEnum.getDesc());
return new WriteCellData<>(ResourceBundleUtils.getMessage(ResourceBundleConstants.MESSAGE_ENUM_PATH, baseEnum.getDesc(), baseEnum.getDesc(), LocaleContextHolder.getLocale(), null));
}
}
}
@@ -5,8 +5,11 @@ import com.alibaba.excel.converters.ReadConverterContext;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.cf.imes.framework.common.constants.ResourceBundleConstants;
import com.cf.imes.framework.common.util.i18n.core.util.ResourceBundleUtils;
import com.cf.imes.framework.excel.core.annotations.EnumFormat;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.i18n.LocaleContextHolder;
import java.lang.reflect.Field;
@@ -40,7 +43,7 @@ public class EnumConvert implements Converter<Integer> {
for (Object e : enumClass.getEnumConstants()) {
BaseEnum baseEnum = (BaseEnum) e;
if (baseEnum.getCode().equals(code)) {
return new WriteCellData<>(baseEnum.getDesc());
return new WriteCellData<>(ResourceBundleUtils.getMessage(ResourceBundleConstants.MESSAGE_ENUM_PATH, baseEnum.getDesc(), baseEnum.getDesc(), LocaleContextHolder.getLocale(), null));
}
}
}
@@ -35,6 +35,7 @@ public class ExcelUtils {
EasyExcelFactory.write(response.getOutputStream(), head)
.autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 基于 column 长度,自动适配。最大 255 宽度
.registerWriteHandler(new I18nHeadWriteHandler())
.registerConverter(new LongStringConverter()) // 避免 Long 类型丢失精度
.sheet(sheetName).doWrite(data);
// 设置 header 和 contentType。写在最后的原因是,避免报错时,响应 contentType 已经被修改了
@@ -0,0 +1,29 @@
package com.cf.imes.framework.excel.core.util;
import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.write.handler.CellWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
import com.cf.imes.framework.common.constants.ResourceBundleConstants;
import com.cf.imes.framework.common.util.i18n.core.util.ResourceBundleUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.springframework.context.i18n.LocaleContextHolder;
import java.util.List;
/**
* 表头国际化处理器
*
* @author Gqr
* @since 2025/11/21 11:05
*/
public class I18nHeadWriteHandler implements CellWriteHandler {
@Override
public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<WriteCellData<?>> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
if (Boolean.TRUE.equals(isHead)) {
String key = head.getHeadNameList().get(0);
cell.setCellValue(ResourceBundleUtils.getMessage(ResourceBundleConstants.MESSAGE_ENUM_PATH, key, key, LocaleContextHolder.getLocale(), null));
}
}
}