薪资回算Excel导入BUG

This commit is contained in:
Harryxzy 2022-12-26 23:17:32 +08:00
parent c49017f63b
commit 6262f62292
4 changed files with 40 additions and 1 deletions

View File

@ -125,5 +125,4 @@ public interface SalaryAcctResultMapper {
*/
void batchUpdateOriginResultValue(@Param("collection") List<SalaryAcctResultPO> subSalaryAcctResultValues);
}

View File

@ -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<SalaryAcctResultPO> listBySalaryAcctRecordIdsAndSalaryItemIds(Collection<Long> salaryAcctRecordIds, Collection<Long> salaryItemIds);
/**
* @description 根据薪资核算人员id薪资项目id获取薪资核算结果
* @return List<SalaryAesultPO>
* @author Harryxzy
* @date 2022/12/26 22:24
*/
List<SalaryAcctResultPO> listByAcctEmployeeIdsAndSalaryItemIds(Set<Long> salaryAcctEmpIds, Set<Long> excelSalaryItemIds);
}

View File

@ -895,12 +895,17 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
}
}
if (StringUtils.equals("importSalaryAcctResult", importType)) {
List<SalaryAcctResultPO> 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<SalaryAcctResultPO> deleteResults, List<SalaryAcctResultPO> salaryAcctResults) {
Map<String, List<SalaryAcctResultPO>> deleteMap = SalaryEntityUtil.group2Map(deleteResults, po -> po.getSalaryAcctEmpId() + "-" + po.getSalaryItemId());
salaryAcctResults.stream().forEach(result -> {
List<SalaryAcctResultPO> salaryAcctResultPOS = deleteMap.get(result.getSalaryAcctEmpId() + "-" + result.getSalaryItemId());
if(salaryAcctResultPOS != null && salaryAcctResultPOS.size() > 0 ){
result.setOriginResultValue(salaryAcctResultPOS.get(0).getOriginResultValue());
}
});
}
// @Override
// public Map<String, Object> exportCheckResult(
// SalaryCheckResultExportParam exportParam,

View File

@ -866,6 +866,15 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
}
@Override
public List<SalaryAcctResultPO> listByAcctEmployeeIdsAndSalaryItemIds(Set<Long> salaryAcctEmployeeIds, Set<Long> salaryItemIds) {
SalaryAcctResultPO build = SalaryAcctResultPO.builder().salaryAcctEmpIds(salaryAcctEmployeeIds).salaryItemIds(salaryItemIds).build();
List<SalaryAcctResultPO> list = getSalaryAcctResultMapper().listSome(build);
// 数据解密
encryptUtil.decryptList(list, SalaryAcctResultPO.class);
return list;
}
@Override
public void batchUpdateOriginResultValue(List<SalaryAcctResultPO> salaryAcctResultValues) {
int batchSize = 500;