diff --git a/src/com/engine/salary/annotation/I18n.java b/src/com/engine/salary/annotation/I18n.java
new file mode 100644
index 000000000..ca9b71fd8
--- /dev/null
+++ b/src/com/engine/salary/annotation/I18n.java
@@ -0,0 +1,20 @@
+package com.engine.salary.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 国际化标识
+ *
Copyright: Copyright (c) 2024
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface I18n {
+
+}
diff --git a/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java b/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java
index 7d83f0348..66e581915 100644
--- a/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java
+++ b/src/com/engine/salary/entity/datacollection/DataCollectionEmployee.java
@@ -1,5 +1,6 @@
package com.engine.salary.entity.datacollection;
+import com.engine.salary.annotation.I18n;
import com.engine.salary.annotation.SalaryFormulaVar;
import lombok.AllArgsConstructor;
import lombok.Builder;
@@ -33,16 +34,19 @@ public class DataCollectionEmployee {
//姓名
@SalaryFormulaVar(defaultLabel = "姓名", labelId = 85429, dataType = "string")
+ @I18n
private String username;
//部门
@SalaryFormulaVar(defaultLabel = "部门", labelId = 86185, dataType = "string")
+ @I18n
private String departmentName;
@SalaryFormulaVar(defaultLabel = "部门ID", labelId = 86185, dataType = "string")
private Long departmentId;
//分部名
@SalaryFormulaVar(defaultLabel = "分部", labelId = 82465, dataType = "string")
+ @I18n
private String subcompanyName;
@SalaryFormulaVar(defaultLabel = "分部ID", labelId = 82465, dataType = "string")
private Long subcompanyid;
@@ -55,6 +59,7 @@ public class DataCollectionEmployee {
//岗位
@SalaryFormulaVar(defaultLabel = "岗位", labelId = 90633, dataType = "string")
+ @I18n
private String jobtitleName;
@SalaryFormulaVar(defaultLabel = "岗位ID", labelId = 90633, dataType = "string")
private Long jobtitleId;
diff --git a/src/com/engine/salary/entity/hrm/PositionInfo.java b/src/com/engine/salary/entity/hrm/PositionInfo.java
index b88828139..2eb787624 100644
--- a/src/com/engine/salary/entity/hrm/PositionInfo.java
+++ b/src/com/engine/salary/entity/hrm/PositionInfo.java
@@ -1,5 +1,6 @@
package com.engine.salary.entity.hrm;
+import com.engine.salary.annotation.I18n;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -24,6 +25,7 @@ public class PositionInfo {
/**
* 名称
*/
+ @I18n
private String name;
diff --git a/src/com/engine/salary/entity/hrm/SubCompanyInfo.java b/src/com/engine/salary/entity/hrm/SubCompanyInfo.java
index 84fb417f9..e9e2637d3 100644
--- a/src/com/engine/salary/entity/hrm/SubCompanyInfo.java
+++ b/src/com/engine/salary/entity/hrm/SubCompanyInfo.java
@@ -1,5 +1,6 @@
package com.engine.salary.entity.hrm;
+import com.engine.salary.annotation.I18n;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -24,5 +25,6 @@ public class SubCompanyInfo {
/**
* 名称
*/
+ @I18n
private String name;
}
diff --git a/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java b/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java
index f8db43919..a92867137 100644
--- a/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java
+++ b/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java
@@ -1,6 +1,7 @@
package com.engine.salary.entity.salaryarchive.dto;
import com.cloudstore.eccom.pc.table.WeaTableType;
+import com.engine.salary.annotation.I18n;
import com.engine.salary.annotation.SalaryTable;
import com.engine.salary.annotation.SalaryTableOperate;
import com.engine.salary.annotation.TableTitle;
@@ -42,6 +43,7 @@ public class SalaryArchiveListDTO {
* 姓名
*/
@TableTitle(title = "姓名", dataIndex = "username", key = "username")
+ @I18n
private String username;
/**
@@ -55,12 +57,14 @@ public class SalaryArchiveListDTO {
* 分部
*/
@TableTitle(title = "分部", dataIndex = "subcompanyName", key = "subcompanyName")
+ @I18n
private String subcompanyName;
/**
* 部门
*/
@TableTitle(title = "部门", dataIndex = "departmentName", key = "departmentName")
+ @I18n
private String departmentName;
private Long departmentId;
/**
diff --git a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java
index 529a1d2d0..1b4f95f5e 100644
--- a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java
@@ -2,7 +2,8 @@ package com.engine.salary.service.impl;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
-import com.engine.salary.biz.*;
+import com.engine.salary.biz.SalaryArchiveBiz;
+import com.engine.salary.biz.SalaryArchiveItemBiz;
import com.engine.salary.config.SalaryElogConfig;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.constant.SalaryItemConstant;
@@ -24,7 +25,6 @@ import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum;
import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum;
import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum;
import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum;
-import com.engine.salary.mapper.archive.SalaryArchiveMapper;
import com.engine.salary.service.*;
import com.engine.salary.sys.entity.po.SalarySysConfPO;
import com.engine.salary.sys.service.SalarySysConfService;
@@ -32,7 +32,6 @@ import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.SalaryLoggerUtil;
-import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.excel.ExcelComment;
import com.engine.salary.util.excel.ExcelParseHelper;
import com.engine.salary.util.excel.ExcelSupport;
@@ -43,8 +42,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import weaver.file.ImageFileManager;
import weaver.general.Util;
import weaver.hrm.User;
@@ -63,12 +60,6 @@ import static com.engine.salary.util.excel.ExcelSupport.EXCEL_TYPE_XLSX;
*/
public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArchiveExcelService {
- private static final Logger log = LoggerFactory.getLogger(SalaryArchiveExcelServiceImpl.class);
-
- private SalaryArchiveMapper getSalaryArchiveMapper() {
- return MapperProxyFactory.getProxy(SalaryArchiveMapper.class);
- }
-
private SalaryArchiveItemService salaryArchiveItemService(User user) {
return ServiceUtil.getService(SalaryArchiveItemServiceImpl.class, user);
}
@@ -101,9 +92,6 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch
private SalaryArchiveBiz salaryArchiveMapper = new SalaryArchiveBiz();
private SalaryArchiveItemBiz salaryArchiveItemMapper = new SalaryArchiveItemBiz();
- private SalaryArchiveTaxAgentBiz salaryArchiveTaxAgentMapper = new SalaryArchiveTaxAgentBiz();
- private SalaryArchiveDimissionBiz salaryArchiveDimissionMapper = new SalaryArchiveDimissionBiz();
- private SalaryItemBiz salaryItemMapper = new SalaryItemBiz();
// private SalaryArchiveSobService salaryArchiveSobService;
//
@@ -331,14 +319,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch
rows.add(header);
// 获取所有个税扣缴义务人
Collection taxAgentList = getTaxAgentService(user).listAll();
- Collection salaryArchives = new ArrayList<>();
-
- if (queryParam.isExtSalaryArchiveList()) {
- //非系统人员档案
- salaryArchives = getSalaryArchiveMapper().listExtSalaryArchive(queryParam);
- } else {
- salaryArchives = getSalaryArchiveMapper().list(queryParam);
- }
+ Collection salaryArchives = salaryArchiveService(user).getSalaryArchiveList(queryParam);
long employeeId = user.getUID();
if (getTaxAgentService(user).isNeedAuth(employeeId)) {
@@ -897,7 +878,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch
// 修改薪资档案
if (CollectionUtils.isNotEmpty(salaryArchiveUpdates)) {
// 查询更新前档案信息
- List oldArchive = getSalaryArchiveMapper().listSome(SalaryArchivePO.builder().ids(salaryArchiveUpdates.stream().map(SalaryArchivePO::getId).collect(Collectors.toList())).build());
+ List oldArchive = salaryArchiveService(user).listSome(SalaryArchivePO.builder().ids(salaryArchiveUpdates.stream().map(SalaryArchivePO::getId).collect(Collectors.toList())).build());
Map oldArchiveMap = SalaryEntityUtil.convert2Map(oldArchive, SalaryArchivePO::getId);
// 薪资档案
salaryArchiveMapper.batchUpdate(salaryArchiveUpdates);
diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java
index 357173be4..207e36e2b 100644
--- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java
@@ -182,7 +182,9 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
if (Objects.nonNull(queryParam.getPayEndDateEndDateStr())) {
queryParam.setPayEndDateEndDate(SalaryDateUtil.stringToDate(queryParam.getPayEndDateEndDateStr()));
}
- return getSalaryArchiveMapper().list(queryParam);
+
+ List list = getSalaryArchiveMapper().list(queryParam);
+ return SalaryI18nUtil.i18nList(list);
}
@Override
diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java
index 8d897e204..a55e34791 100644
--- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java
@@ -29,6 +29,7 @@ import com.engine.salary.service.SalarySobExtRangeService;
import com.engine.salary.service.SalarySobRangeService;
import com.engine.salary.sys.entity.po.SalarySysConfPO;
import com.engine.salary.util.SalaryEntityUtil;
+import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.IdGenerator;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
@@ -96,6 +97,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
result.addAll(employBiz.listAll());
result.addAll(getExtEmpService(user).listEmployee());
}
+ SalaryI18nUtil.i18nList(result);
return result;
}
@@ -105,6 +107,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
if (openExtEmp) {
result.addAll(getExtEmpService(user).listAllForReport());
}
+ SalaryI18nUtil.i18nList(result);
return result;
}
@@ -150,7 +153,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
includeSalaryEmployees.addAll(extEmps);
}
-
+ SalaryI18nUtil.i18nList(includeSalaryEmployees);
return includeSalaryEmployees;
}
@@ -163,6 +166,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
if (openExtEmp) {
employeeList.addAll(getExtEmpService(user).getEmployeeByIds(ids));
}
+ SalaryI18nUtil.i18nList(employeeList);
return employeeList;
}
@@ -176,18 +180,20 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
result.addAll(getExtEmpService(user).getEmployeeByIds(ids));
}
result.addAll(employBiz.getEmployeeByIdsAll(ids));
+ SalaryI18nUtil.i18nList(result);
return result;
}
@Override
public DataCollectionEmployee getEmployeeById(Long employeeId) {
if (openExtEmp) {
- DataCollectionEmployee employeeById = getExtEmpService(user).getEmployeeById(employeeId);
- if (Objects.nonNull(employeeById)) {
- return employeeById;
+ DataCollectionEmployee employee = getExtEmpService(user).getEmployeeById(employeeId);
+ if (Objects.nonNull(employee)) {
+ return SalaryI18nUtil.i18n(employee);
}
}
- return employBiz.getEmployeeById(employeeId);
+ DataCollectionEmployee employee = employBiz.getEmployeeById(employeeId);
+ return SalaryI18nUtil.i18n(employee);
}
@Override
@@ -203,8 +209,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
employeeList.addAll(getExtEmpService(user).getEmployeeByIds(longs));
}
}
-
- return employeeList;
+ return SalaryI18nUtil.i18nList(employeeList);
}
@@ -219,7 +224,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
.filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus()))
.collect(Collectors.toList());
- return employeeSameIds;
+ return SalaryI18nUtil.i18nList(employeeSameIds);
}
@Override
@@ -242,7 +247,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
.collect(Collectors.toList());
}
- return employees;
+ return SalaryI18nUtil.i18nList(employees);
}
@@ -265,12 +270,12 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
@Override
public List getSubCompanyInfoList(List subDepartmentIds) {
- return employBiz.getSubCompanyInfoList(subDepartmentIds);
+ return SalaryI18nUtil.i18nList(employBiz.getSubCompanyInfoList(subDepartmentIds));
}
@Override
public List listPositionInfo(List positionIds) {
- return employBiz.listPositionInfo(positionIds);
+ return SalaryI18nUtil.i18nList(employBiz.listPositionInfo(positionIds));
}
@Override
@@ -279,7 +284,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
if (openExtEmp) {
result.addAll(getExtEmpService(user).listEmployee());
}
- return result;
+ return SalaryI18nUtil.i18nList(result);
}
@Override
@@ -288,7 +293,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
if (openExtEmp) {
result.addAll(getExtEmpService(user).listByParams(includeQueryParams));
}
- return result;
+ return SalaryI18nUtil.i18nList(result);
}
/**
@@ -332,7 +337,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
.forEach(e -> e.setExtendData(extendData));
}
}
- return employees;
+ return SalaryI18nUtil.i18nList(employees);
}
@Override
diff --git a/src/com/engine/salary/util/SalaryI18nUtil.java b/src/com/engine/salary/util/SalaryI18nUtil.java
index d85f6984b..7964fbe8a 100644
--- a/src/com/engine/salary/util/SalaryI18nUtil.java
+++ b/src/com/engine/salary/util/SalaryI18nUtil.java
@@ -1,5 +1,18 @@
package com.engine.salary.util;
+import com.engine.salary.annotation.I18n;
+import com.engine.salary.exception.SalaryRunTimeException;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.jetbrains.annotations.NotNull;
+import weaver.general.Util;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
/**
* 多语言工具类
* Copyright: Copyright (c) 2022
@@ -10,6 +23,68 @@ package com.engine.salary.util;
**/
public class SalaryI18nUtil {
+
+ public static T i18n(T data) {
+ if (data == null ) {
+ return data;
+ }
+ try {
+ List fieldList = getFields(data.getClass());
+ if (CollectionUtils.isNotEmpty(fieldList)) {
+ for (Field field : fieldList) {
+ field.setAccessible(true);
+ String fieldValue = (String) field.get(data);
+ if (StringUtils.isNotBlank(fieldValue)) {
+ String encryptValue = Util.formatMultiLang(fieldValue);
+ field.set(data, encryptValue);
+ }
+ }
+ }
+ return data;
+ } catch (Exception e) {
+ throw new SalaryRunTimeException("国际化解析异常");
+ }
+ }
+
+ public static List i18nList(List dataList) {
+ if (CollectionUtils.isEmpty(dataList) ) {
+ return dataList;
+ }
+ try {
+ List fieldList = getFields(dataList.get(0).getClass());
+ if (CollectionUtils.isNotEmpty(fieldList)) {
+ for (T data : dataList) {
+ for (Field field : fieldList) {
+ field.setAccessible(true);
+ String fieldValue = (String) field.get(data);
+ if (StringUtils.isNotBlank(fieldValue)) {
+ String encryptValue = Util.formatMultiLang(fieldValue);
+ field.set(data, encryptValue);
+ }
+ }
+ }
+
+ }
+ return dataList;
+ } catch (Exception e) {
+ throw new SalaryRunTimeException("国际化批量解析异常");
+ }
+ }
+
+ @NotNull
+ private static List getFields(Class clazz) {
+ List> allClasses = new ArrayList>();
+ for (Class> superClass = clazz; superClass != null; superClass = superClass.getSuperclass()) {
+ if (superClass != Object.class) {
+ allClasses.add(superClass);
+ }
+ }
+ return allClasses.stream()
+ .map(Class::getDeclaredFields)
+ .flatMap(Arrays::stream)
+ .filter(field -> field.isAnnotationPresent(I18n.class)).collect(Collectors.toList());
+ }
+
/**
* 获取多语言信息
*
diff --git a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java
index 8e9f2b1cd..64cc4ae20 100644
--- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java
+++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java
@@ -463,7 +463,7 @@ public class SalaryArchiveWrapper extends Service {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(109712, "列表类型必传"));
} else {
// 定薪列表导入有调薪导入和初始化导入
- if (queryParam.getListType().equals(SalaryArchiveListTypeEnum.FIXED.getValue())) {
+ if (queryParam.getListType().equals(SalaryArchiveListTypeEnum.FIXED)) {
Optional optional = Arrays.stream(SalaryArchiveImportTypeEnum.values())
.filter(e -> StringUtils.isNotEmpty(queryParam.getImportType()) && e.getValue().equals(queryParam.getImportType())).findFirst();
if (!optional.isPresent()) {