薪酬系统-福利档案改造,增量数据处理逻辑调整,对已有其他个税扣缴义务人的员工福利档案,不进行增量处理

This commit is contained in:
sy 2022-10-24 14:12:28 +08:00
parent b1122ae391
commit 0000e52433
1 changed files with 6 additions and 3 deletions

View File

@ -55,17 +55,20 @@ public class InsuranceArchivesBaseInfoBO {
Map<String, InsuranceArchivesBaseInfoPO> insuranceArchivesBaseInfoListMap = SalaryEntityUtil.convert2Map(insuranceArchivesBaseInfoList, k -> k.getPaymentOrganization() + "-" + k.getEmployeeId());
taxAgentEmpChanges.forEach(change -> {
//以人员id筛选出侧面比较的档案数据避免存在当前个税扣缴义务人外的该人员档案数据
List<InsuranceArchivesBaseInfoPO> moreBaseInfos = insuranceArchivesBaseInfoList.stream().filter(f -> f.getEmployeeId().equals(change.getEmployeeId())).collect(Collectors.toList());
//以个税扣缴义务人和人员id为条件筛选当前数据直接对比的档案数据
InsuranceArchivesBaseInfoPO insuranceBaseInfo = insuranceArchivesBaseInfoListMap.get(change.getTaxAgentId() + "-" + change.getEmployeeId());
// 如果是新增 说明如果没有档案则新增如果有档案而且是停止缴纳就转移到待增员中以个税扣缴义务人和人员id判断唯一
if (change.getChangeType() == TaxAgentEmpChangeTypeEnum.ADD.getValue()) {
if (insuranceBaseInfo != null) {
if (insuranceBaseInfo != null && moreBaseInfos.size() == 1) {
// 停止缴纳->待增员
if (insuranceBaseInfo.getRunStatus().equals(EmployeeStatusEnum.STOP_PAYMENT_FROM_DEL.getValue()) || insuranceBaseInfo.getRunStatus().equals(EmployeeStatusEnum.STOP_PAYMENT_FROM_ADD.getValue())) {
insuranceBaseInfo.setRunStatus(EmployeeStatusEnum.STAY_ADD.getValue());
insuranceBaseInfo.setUpdateTime(now);
baseInfoUpdateTodoList.add(insuranceBaseInfo);
}
} else {
} else if (insuranceBaseInfo == null && moreBaseInfos.size() == 0) {
//新增社保公积金其他福利档案
// 新增基础信息
baseInfoAddTodoList.add(InsuranceArchivesBaseInfoPO.builder()
@ -82,7 +85,7 @@ public class InsuranceArchivesBaseInfoBO {
}
// 如果是删除 说明如果有档案并且是在缴纳中才处理没档案不用管
} else if (change.getChangeType() == TaxAgentEmpChangeTypeEnum.DEL.getValue()) {
if (insuranceBaseInfo != null) {
if (insuranceBaseInfo != null && moreBaseInfos.size() == 1) {
if (insuranceBaseInfo.getRunStatus().equals(EmployeeStatusEnum.PAYING.getValue())) {
// 正在缴纳->待减员
insuranceBaseInfo.setRunStatus(EmployeeStatusEnum.STAY_DEL.getValue());