薪酬系统-福利档案改造,增量数据处理逻辑调整,对已有其他个税扣缴义务人的员工福利档案,不进行增量处理
This commit is contained in:
parent
b1122ae391
commit
0000e52433
|
|
@ -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());
|
||||
|
|
|
|||
Loading…
Reference in New Issue