From 4b823ccca78c0bf37672930343d67712124ee5a0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com>
Date: Mon, 11 Mar 2024 16:50:47 +0800
Subject: [PATCH] =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96=E6=B3=A8=E8=A7=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/com/engine/salary/annotation/I18n.java | 20 +++++
.../DataCollectionEmployee.java | 5 ++
.../salary/entity/hrm/PositionInfo.java | 2 +
.../salary/entity/hrm/SubCompanyInfo.java | 2 +
.../dto/SalaryArchiveListDTO.java | 4 +
.../impl/SalaryArchiveExcelServiceImpl.java | 27 +------
.../impl/SalaryArchiveServiceImpl.java | 4 +-
.../impl/SalaryEmployeeServiceImpl.java | 33 ++++----
.../engine/salary/util/SalaryI18nUtil.java | 75 +++++++++++++++++++
.../salary/wrapper/SalaryArchiveWrapper.java | 2 +-
10 files changed, 135 insertions(+), 39 deletions(-)
create mode 100644 src/com/engine/salary/annotation/I18n.java
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 107b71b50..82b97bf05 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;
/**
diff --git a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java
index e4cecc326..8e0986007 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;
@@ -62,12 +59,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);
}
@@ -100,9 +91,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;
//
@@ -322,14 +310,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)) {
@@ -841,7 +822,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 575f39242..32c6cbd30 100644
--- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java
@@ -180,7 +180,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 307d48b75..3293bf105 100644
--- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java
@@ -27,6 +27,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;
@@ -90,6 +91,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
result.addAll(employBiz.listAll());
result.addAll(getExtEmpService(user).listEmployee());
}
+ SalaryI18nUtil.i18nList(result);
return result;
}
@@ -99,6 +101,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
if (openExtEmp) {
result.addAll(getExtEmpService(user).listAllForReport());
}
+ SalaryI18nUtil.i18nList(result);
return result;
}
@@ -144,7 +147,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
includeSalaryEmployees.addAll(extEmps);
}
-
+ SalaryI18nUtil.i18nList(includeSalaryEmployees);
return includeSalaryEmployees;
}
@@ -157,6 +160,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
if (openExtEmp) {
employeeList.addAll(getExtEmpService(user).getEmployeeByIds(ids));
}
+ SalaryI18nUtil.i18nList(employeeList);
return employeeList;
}
@@ -170,18 +174,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
@@ -197,8 +203,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
employeeList.addAll(getExtEmpService(user).getEmployeeByIds(longs));
}
}
-
- return employeeList;
+ return SalaryI18nUtil.i18nList(employeeList);
}
@@ -213,7 +218,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
@@ -236,7 +241,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
.collect(Collectors.toList());
}
- return employees;
+ return SalaryI18nUtil.i18nList(employees);
}
@@ -259,12 +264,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
@@ -273,7 +278,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
if (openExtEmp) {
result.addAll(getExtEmpService(user).listEmployee());
}
- return result;
+ return SalaryI18nUtil.i18nList(result);
}
@Override
@@ -282,7 +287,7 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
if (openExtEmp) {
result.addAll(getExtEmpService(user).listByParams(includeQueryParams));
}
- return result;
+ return SalaryI18nUtil.i18nList(result);
}
/**
@@ -326,7 +331,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 f7d9272ce..14dc4644a 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 0efa4f23f..83f728b23 100644
--- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java
+++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java
@@ -459,7 +459,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()) {