diff --git a/src/com/engine/salary/encrypt/EncryptUtil.java b/src/com/engine/salary/encrypt/EncryptUtil.java index 000cd54ac..e35d3d53b 100644 --- a/src/com/engine/salary/encrypt/EncryptUtil.java +++ b/src/com/engine/salary/encrypt/EncryptUtil.java @@ -21,6 +21,14 @@ import java.util.stream.Collectors; @Slf4j public class EncryptUtil { + private static final String NULL = "null"; + + private static String ifNull(String value){ + if (NULL.equals(value)) { + return null; + } + return value; + } private SalarySysConfService getSalarySysConfService(User user) { return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); @@ -39,7 +47,7 @@ public class EncryptUtil { if (CollectionUtils.isNotEmpty(fieldList)) { for (Field field : fieldList) { field.setAccessible(true); - String fieldValue = String.valueOf(field.get(data)); + String fieldValue = (String)field.get(data); if (StringUtils.isNotBlank(fieldValue)) { String encryptValue = AESEncryptUtil.encrypt(fieldValue); field.set(data, encryptValue); @@ -117,7 +125,7 @@ public class EncryptUtil { field.setAccessible(true); String fieldValue = (String) field.get(data); if (StringUtils.isNotBlank(fieldValue)) { - String encryptValue = AESEncryptUtil.decrypt(fieldValue); + String encryptValue = ifNull(AESEncryptUtil.decrypt(fieldValue)); field.set(data, encryptValue); } } @@ -145,7 +153,7 @@ public class EncryptUtil { field.setAccessible(true); String fieldValue = (String) field.get(data); if (StringUtils.isNotBlank(fieldValue)) { - String encryptValue = AESEncryptUtil.decrypt(fieldValue); + String encryptValue = ifNull(AESEncryptUtil.decrypt(fieldValue)); field.set(data, encryptValue); } } diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java index 7ee01453b..4f0dbc199 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java @@ -76,6 +76,7 @@ public class SalaryArchiveBO { columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), "taxAgentName")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "分部"), "subcompanyName")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "部门"), "departmentName")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "工号"), "workcode")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86186, "手机号"), "mobile")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "员工状态"), "employeeStatus")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "起始发薪日期"), "payStartDate")); diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultMapper.java b/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultMapper.java index d1bc53212..8ef60131e 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultMapper.java +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultMapper.java @@ -125,5 +125,4 @@ public interface SalaryAcctResultMapper { */ void batchUpdateOriginResultValue(@Param("collection") List subSalaryAcctResultValues); - } \ No newline at end of file diff --git a/src/com/engine/salary/service/SalaryAcctResultService.java b/src/com/engine/salary/service/SalaryAcctResultService.java index 6404a7281..b1f3d35bd 100644 --- a/src/com/engine/salary/service/SalaryAcctResultService.java +++ b/src/com/engine/salary/service/SalaryAcctResultService.java @@ -14,6 +14,7 @@ import com.engine.salary.util.page.PageInfo; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.Set; /** * 薪资核算结果 @@ -190,4 +191,12 @@ public interface SalaryAcctResultService { * @return */ List listBySalaryAcctRecordIdsAndSalaryItemIds(Collection salaryAcctRecordIds, Collection salaryItemIds); + + /** + * @description 根据薪资核算人员id、薪资项目id获取薪资核算结果 + * @return List + * @author Harryxzy + * @date 2022/12/26 22:24 + */ + List listByAcctEmployeeIdsAndSalaryItemIds(Set salaryAcctEmpIds, Set excelSalaryItemIds); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index cf95d8697..d1b56d4c0 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -895,12 +895,17 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } } if (StringUtils.equals("importSalaryAcctResult", importType)) { + List deleteResults = new ArrayList<>(); if (CollectionUtils.isNotEmpty(salaryAcctEmpIds)) { + // 获取删除的核算结果 + deleteResults = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds); getSalaryAcctResultService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds); //删除报表 getSalaryAcctReportService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds); } if (CollectionUtils.isNotEmpty(salaryAcctResults)) { + // 处理导入薪资项的回算值 + handleOriginResultValue(deleteResults, salaryAcctResults); getSalaryAcctResultService(user).batchSave(salaryAcctResults); //报表 getSalaryAcctReportService(user).batchSave(salaryAcctReports); @@ -923,6 +928,23 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc return apidatas; } + /** + * @description + * @return void + * @author Harryxzy + * @date 2022/12/26 22:36 + */ + private void handleOriginResultValue(List deleteResults, List salaryAcctResults) { + Map> deleteMap = SalaryEntityUtil.group2Map(deleteResults, po -> po.getSalaryAcctEmpId() + "-" + po.getSalaryItemId()); + salaryAcctResults.stream().forEach(result -> { + List salaryAcctResultPOS = deleteMap.get(result.getSalaryAcctEmpId() + "-" + result.getSalaryItemId()); + if(salaryAcctResultPOS != null && salaryAcctResultPOS.size() > 0 ){ + result.setOriginResultValue(salaryAcctResultPOS.get(0).getOriginResultValue()); + } + }); + + } + // @Override // public Map exportCheckResult( // SalaryCheckResultExportParam exportParam, diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 5605f5c8b..d944577a5 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -866,6 +866,15 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe } + @Override + public List listByAcctEmployeeIdsAndSalaryItemIds(Set salaryAcctEmployeeIds, Set salaryItemIds) { + SalaryAcctResultPO build = SalaryAcctResultPO.builder().salaryAcctEmpIds(salaryAcctEmployeeIds).salaryItemIds(salaryItemIds).build(); + List list = getSalaryAcctResultMapper().listSome(build); + // 数据解密 + encryptUtil.decryptList(list, SalaryAcctResultPO.class); + return list; + } + @Override public void batchUpdateOriginResultValue(List salaryAcctResultValues) { int batchSize = 500;