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;