From 0225e40e57b40bd8cd0942ec72c2ae182719a8c8 Mon Sep 17 00:00:00 2001 From: sy Date: Tue, 17 Oct 2023 17:46:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F-=E7=A6=8F?= =?UTF-8?q?=E5=88=A9=E6=A1=A3=E6=A1=88=EF=BC=8C=E7=A6=8F=E5=88=A9=E6=A1=A3?= =?UTF-8?q?=E6=A1=88=E7=BC=96=E8=BE=91=E4=BF=9D=E5=AD=98=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=B8=AD=E5=A2=9E=E5=8A=A0=E5=9F=BA=E6=95=B0=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/SIArchivesBiz.java | 101 ++++++++++++++++-- .../InsuranceBaseAdjustHistoryMapper.xml | 11 +- .../service/impl/SISchemeServiceImpl.java | 6 +- 3 files changed, 101 insertions(+), 17 deletions(-) diff --git a/src/com/engine/salary/biz/SIArchivesBiz.java b/src/com/engine/salary/biz/SIArchivesBiz.java index f670de0e0..5730ffa05 100644 --- a/src/com/engine/salary/biz/SIArchivesBiz.java +++ b/src/com/engine/salary/biz/SIArchivesBiz.java @@ -662,8 +662,22 @@ public class SIArchivesBiz { otherIds.add(param.getId()); List oldOtherInfoList = otherSchemeMapper.getOtherById(otherIds); + //设置福利档案基数调整记录数据 + InsuranceArchivesBaseAdjustHistoryDTO adjustInfo = InsuranceArchivesBaseAdjustHistoryDTO.builder() + .adjustAfterSchemeId(param.getOtherSchemeId()) + .adjustAfterBaseJson(paramReq.getPaymentForm()) + .welfareType(paramReq.getWelfareType().getValue()) + .employeeId(param.getEmployeeId()) + .paymentOrganization(param.getPaymentOrganization()) + .build(); + if (oldOtherInfoList.size() == 1) { InsuranceArchivesOtherSchemePO oldOtherInfo = oldOtherInfoList.get(0); + //设置福利档案基数调整记录数据 + encryptUtil.decrypt(oldOtherInfo, InsuranceArchivesOtherSchemePO.class); + adjustInfo.setAdjustBeforeBaseJson(oldOtherInfo.getOtherPaymentBaseString()); + adjustInfo.setAdjustBeforeSchemeId(oldOtherInfo.getOtherSchemeId()); + //新数据 InsuranceArchivesOtherSchemePO updateOtherInfo = InsuranceArchivesOtherSchemePO.builder() .id(oldOtherInfo.getId()) @@ -740,10 +754,13 @@ public class SIArchivesBiz { } else { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "档案不存在!")); } - - } + //生成福利档案基数调整记录数据 + List adjustHistoryList = createAdjustInfo(adjustInfo, employeeId); + //福利档案基数调整记录数据入库 + batchInsertAdjustHistory(adjustHistoryList, employeeId); + } finally { sqlSession.close(); } @@ -771,8 +788,22 @@ public class SIArchivesBiz { fundIds.add(param.getId()); List oldFundInfoList = fundSchemeMapper.getFundById(fundIds); + //设置福利档案基数调整记录数据 + InsuranceArchivesBaseAdjustHistoryDTO adjustInfo = InsuranceArchivesBaseAdjustHistoryDTO.builder() + .adjustAfterSchemeId(param.getFundSchemeId()) + .adjustAfterBaseJson(paramReq.getPaymentForm()) + .welfareType(paramReq.getWelfareType().getValue()) + .employeeId(param.getEmployeeId()) + .paymentOrganization(param.getPaymentOrganization()) + .build(); + if (oldFundInfoList.size() == 1) { InsuranceArchivesFundSchemePO oldFundInfo = oldFundInfoList.get(0); + //设置福利档案基数调整记录数据 + encryptUtil.decrypt(oldFundInfo, InsuranceArchivesFundSchemePO.class); + adjustInfo.setAdjustBeforeBaseJson(oldFundInfo.getFundPaymentBaseString()); + adjustInfo.setAdjustBeforeSchemeId(oldFundInfo.getFundSchemeId()); + //新数据 InsuranceArchivesFundSchemePO updateFundInfo = InsuranceArchivesFundSchemePO.builder() .id(oldFundInfo.getId()) .fundSchemeId(param.getFundSchemeId()) @@ -855,6 +886,11 @@ public class SIArchivesBiz { } + //生成福利档案基数调整记录数据 + List adjustHistoryList = createAdjustInfo(adjustInfo, employeeId); + //福利档案基数调整记录数据入库 + batchInsertAdjustHistory(adjustHistoryList, employeeId); + } finally { sqlSession.close(); } @@ -888,10 +924,25 @@ public class SIArchivesBiz { List socialIds = new ArrayList(); socialIds.add(param.getId()); List oldSocialInfoList = socialSchemeMapper.getSocialById(socialIds); + + //设置福利档案基数调整记录数据 + InsuranceArchivesBaseAdjustHistoryDTO adjustInfo = InsuranceArchivesBaseAdjustHistoryDTO.builder() + .adjustAfterSchemeId(param.getSocialSchemeId()) + .adjustAfterBaseJson(paramReq.getPaymentForm()) + .welfareType(paramReq.getWelfareType().getValue()) + .employeeId(param.getEmployeeId()) + .paymentOrganization(param.getPaymentOrganization()) + .build(); + //组装新数据 if (oldSocialInfoList.size() == 1) { + //老数据 InsuranceArchivesSocialSchemePO oldSocialInfo = oldSocialInfoList.get(0); - + //设置福利档案基数调整记录数据 + encryptUtil.decrypt(oldSocialInfo, InsuranceArchivesSocialSchemePO.class); + adjustInfo.setAdjustBeforeBaseJson(oldSocialInfo.getSocialPaymentBaseString()); + adjustInfo.setAdjustBeforeSchemeId(oldSocialInfo.getSocialSchemeId()); + //新数据 InsuranceArchivesSocialSchemePO updateSocialInfo = InsuranceArchivesSocialSchemePO.builder() .id(oldSocialInfo.getId()) @@ -974,6 +1025,10 @@ public class SIArchivesBiz { } + //生成福利档案基数调整记录数据 + List adjustHistoryList = createAdjustInfo(adjustInfo, employeeId); + //福利档案基数调整记录数据入库 + batchInsertAdjustHistory(adjustHistoryList, employeeId); } finally { sqlSession.close(); } @@ -1818,9 +1873,10 @@ public class SIArchivesBiz { return getInsuranceBaseInfoMapper().listEndDateIsNull(employeeIds); } - public List dealSocialBaseAdjustInfoList(List adjustList) { + public List dealSocialBaseAdjustInfoList(List adjustList, Long creator) { List adjustHistoryList = new ArrayList<>(); if (adjustList.size() > 0) { + //遍历待更新的福利档案数据,对每组档案生成基数调整记录(基数单元未变化则忽略) for (InsuranceArchivesSocialSchemePO po : adjustList) { List oldBaseInfoList = getSocialSchemeMapper().getSocialByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder() .paymentOrganization(po.getPaymentOrganization()).employeeId(po.getEmployeeId()).build()); @@ -1835,20 +1891,22 @@ public class SIArchivesBiz { if (oldBaseInfoList.size() == 1) { //新增调整记录,变更 InsuranceArchivesSocialSchemePO oldBaseInfo = oldBaseInfoList.get(0); + encryptUtil.decrypt(oldBaseInfo, InsuranceArchivesSocialSchemePO.class); adjustInfo.setAdjustBeforeBaseJson(oldBaseInfo.getSocialPaymentBaseString()); adjustInfo.setAdjustBeforeSchemeId(oldBaseInfo.getSocialSchemeId()); } else if (oldBaseInfoList.size() > 1) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"社保档案存在冗余数据!")); } - adjustHistoryList.addAll(createAdjustInfo(adjustInfo)); + adjustHistoryList.addAll(createAdjustInfo(adjustInfo, creator)); } } return adjustHistoryList; } - public List dealFundBaseAdjustInfoList(List adjustList) { + public List dealFundBaseAdjustInfoList(List adjustList, Long creator) { List adjustHistoryList = new ArrayList<>(); if (adjustList.size() > 0) { + //遍历待更新的福利档案数据,对每组档案生成基数调整记录(基数单元未变化则忽略) for (InsuranceArchivesFundSchemePO po : adjustList) { List oldBaseInfoList = getFundSchemeMapper().getFundByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder() .paymentOrganization(po.getPaymentOrganization()).employeeId(po.getEmployeeId()).build()); @@ -1863,19 +1921,21 @@ public class SIArchivesBiz { if (oldBaseInfoList.size() == 1) { //新增调整记录,变更 InsuranceArchivesFundSchemePO oldBaseInfo = oldBaseInfoList.get(0); + encryptUtil.decrypt(oldBaseInfo, InsuranceArchivesFundSchemePO.class); adjustInfo.setAdjustBeforeBaseJson(oldBaseInfo.getFundPaymentBaseString()); adjustInfo.setAdjustBeforeSchemeId(oldBaseInfo.getFundSchemeId()); } else if (oldBaseInfoList.size() > 1) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"公积金档案存在冗余数据!")); } - adjustHistoryList.addAll(createAdjustInfo(adjustInfo)); + adjustHistoryList.addAll(createAdjustInfo(adjustInfo, creator)); } } return adjustHistoryList; } - public List dealOtherBaseAdjustInfoList(List adjustList) { + public List dealOtherBaseAdjustInfoList(List adjustList, Long creator) { List adjustHistoryList = new ArrayList<>(); if (adjustList.size() > 0) { + //遍历待更新的福利档案数据,对每组档案生成基数调整记录(基数单元未变化则忽略) for (InsuranceArchivesOtherSchemePO po : adjustList) { List oldBaseInfoList = getOtherSchemeMapper().getOtherByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder() .paymentOrganization(po.getPaymentOrganization()).employeeId(po.getEmployeeId()).build()); @@ -1890,19 +1950,23 @@ public class SIArchivesBiz { if (oldBaseInfoList.size() == 1) { //新增调整记录,变更 InsuranceArchivesOtherSchemePO oldBaseInfo = oldBaseInfoList.get(0); + encryptUtil.decrypt(oldBaseInfo, InsuranceArchivesOtherSchemePO.class); adjustInfo.setAdjustBeforeBaseJson(oldBaseInfo.getOtherPaymentBaseString()); adjustInfo.setAdjustBeforeSchemeId(oldBaseInfo.getOtherSchemeId()); } else if (oldBaseInfoList.size() > 1) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"其他福利档案存在冗余数据!")); } - adjustHistoryList.addAll(createAdjustInfo(adjustInfo)); + adjustHistoryList.addAll(createAdjustInfo(adjustInfo, creator)); } } return adjustHistoryList; } - public List createAdjustInfo(InsuranceArchivesBaseAdjustHistoryDTO adjustInfo) { + //生成基数调整记录(基数单元未变化则忽略) + public List createAdjustInfo(InsuranceArchivesBaseAdjustHistoryDTO adjustInfo, Long creator) { + Date now = new Date(); List toCreateAdjustHistoryList = new ArrayList<>(); + //旧档案不存在基数信息,则直接遍历新的基数数据,生成调整记录;旧档案存在基数信息,则合并新旧基数数据,遍历合并后的技术数据中的key,生成调整记录。 if(adjustInfo.getAdjustAfterBaseJson() != null && adjustInfo.getAdjustBeforeBaseJson() == null) { Map adjustAfterBaseMap = JSON.parseObject(adjustInfo.getAdjustAfterBaseJson(), new TypeReference>() { }); @@ -1911,7 +1975,14 @@ public class SIArchivesBiz { BeanUtils.copyProperties(adjustInfo, adjustItem); adjustItem.setAdjustWelfareItemId(Long.valueOf(key)); adjustItem.setAdjustAfterBaseValue((String) adjustAfterBaseMap.get(key)); - + adjustItem.setOperateTime(now); + adjustItem.setOperator(creator); + adjustItem.setCreator(creator); + adjustItem.setCreateTime(now); + adjustItem.setUpdateTime(now); + adjustItem.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); + adjustItem.setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY); + adjustItem.setId(IdGenerator.generate()); toCreateAdjustHistoryList.add(adjustItem); } } else if (adjustInfo.getAdjustAfterBaseJson() != null && adjustInfo.getAdjustBeforeBaseJson() != null) { @@ -1933,6 +2004,14 @@ public class SIArchivesBiz { adjustItem.setAdjustWelfareItemId(Long.valueOf(key)); adjustItem.setAdjustBeforeBaseValue(beforeValue); adjustItem.setAdjustAfterBaseValue(afterValue); + adjustItem.setOperateTime(now); + adjustItem.setOperator(creator); + adjustItem.setCreator(creator); + adjustItem.setCreateTime(now); + adjustItem.setUpdateTime(now); + adjustItem.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); + adjustItem.setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY); + adjustItem.setId(IdGenerator.generate()); toCreateAdjustHistoryList.add(adjustItem); } diff --git a/src/com/engine/salary/mapper/siarchives/InsuranceBaseAdjustHistoryMapper.xml b/src/com/engine/salary/mapper/siarchives/InsuranceBaseAdjustHistoryMapper.xml index 25cd391ed..46a9d044a 100644 --- a/src/com/engine/salary/mapper/siarchives/InsuranceBaseAdjustHistoryMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/InsuranceBaseAdjustHistoryMapper.xml @@ -6,6 +6,7 @@ + @@ -26,6 +27,7 @@ t.id , t.employee_id , t.payment_organization + , t.welfare_type , t.adjust_before_scheme_id , t.adjust_after_scheme_id , t.adjust_before_base_value @@ -42,7 +44,7 @@ INSERT INTO hrsa_insurance_base_adjust_history - (id,employee_id,payment_organization, + (id,employee_id,payment_organization,welfare_type, adjust_before_scheme_id,adjust_after_scheme_id, adjust_before_base_value,adjust_after_base_value, adjust_welfare_item_id,operator,operate_time, @@ -53,6 +55,7 @@ #{item.id}, #{item.employeeId}, #{item.paymentOrganization}, + #{item.welfareType}, #{item.adjustBeforeSchemeId}, #{item.adjustAfterSchemeId}, #{item.adjustBeforeBaseValue}, @@ -70,7 +73,7 @@ INSERT INTO hrsa_insurance_base_adjust_history - (id,employee_id,payment_organization, + (id,employee_id,payment_organization,welfare_type, adjust_before_scheme_id,adjust_after_scheme_id, adjust_before_base_value,adjust_after_base_value, adjust_welfare_item_id,operator,operate_time, @@ -80,6 +83,7 @@ #{item.id,jdbcType=DOUBLE}, #{item.employeeId,jdbcType=DOUBLE}, #{item.paymentOrganization,jdbcType=DOUBLE}, + #{item.welfareType,jdbcType=DOUBLE}, #{item.adjustBeforeSchemeId,jdbcType=DOUBLE}, #{item.adjustAfterSchemeId,jdbcType=DOUBLE}, #{item.adjustBeforeBaseValue,jdbcType=VARCHAR}, @@ -98,7 +102,7 @@ INSERT INTO hrsa_insurance_base_adjust_history - (id,employee_id,payment_organization, + (id,employee_id,payment_organization,welfare_type, adjust_before_scheme_id,adjust_after_scheme_id, adjust_before_base_value,adjust_after_base_value, adjust_welfare_item_id,operator,operate_time, @@ -108,6 +112,7 @@ #{item.id}, #{item.employeeId}, #{item.paymentOrganization}, + #{item.welfareType}, #{item.adjustBeforeSchemeId}, #{item.adjustAfterSchemeId}, #{item.adjustBeforeBaseValue}, diff --git a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java index a807040d8..84d9a4db4 100644 --- a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java @@ -1385,7 +1385,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getPaymentOrganization() + "-" + f.getEmployeeId()))), ArrayList::new)); //生成福利档案基数调整历史记录 - List adjustSocialHistoryPOList = siArchivesBiz.dealSocialBaseAdjustInfoList(socialSchemePOS); + List adjustSocialHistoryPOList = siArchivesBiz.dealSocialBaseAdjustInfoList(socialSchemePOS, (long) user.getUID()); //根据人员id和个税扣缴义务人id删除对应旧档案 socialSchemePOS.forEach(getSocialSchemeMapper()::deleteByEmployeeIdAndPayOrg); @@ -1407,7 +1407,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getPaymentOrganization() + "-" + f.getEmployeeId()))), ArrayList::new)); //生成福利档案基数调整历史记录 - List adjustFundHistoryPOList = siArchivesBiz.dealFundBaseAdjustInfoList(fundSchemePOS); + List adjustFundHistoryPOList = siArchivesBiz.dealFundBaseAdjustInfoList(fundSchemePOS, (long) user.getUID()); //根据人员id和个税扣缴义务人id删除对应档案 fundSchemePOS.forEach(getFundSchemeMapper()::deleteByEmployeeIdAndPayOrg); //新建新档案 @@ -1426,7 +1426,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getPaymentOrganization() + "-" + f.getEmployeeId()))), ArrayList::new)); //生成福利档案基数调整历史记录 - List adjustOtherHistoryPOList = siArchivesBiz.dealOtherBaseAdjustInfoList(otherSchemePOS); + List adjustOtherHistoryPOList = siArchivesBiz.dealOtherBaseAdjustInfoList(otherSchemePOS, (long) user.getUID()); //根据人员id和个税扣缴义务人id删除对应档案 otherSchemePOS.forEach(getOtherSchemeMapper()::deleteByEmployeeIdAndPayOrg);