From 7194ae402636ec37a7c15591cf63d683f4e6617b Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Thu, 17 Mar 2022 15:26:33 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E6=A1=A3=E6=A1=88=E8=AF=A6?= =?UTF-8?q?=E6=83=85-=E4=BF=9D=E5=AD=98=E7=AD=89=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/SIArchivesBiz.java | 85 ++++++++++- .../param/InsuranceArchivesFundSaveParam.java | 60 ++++++++ .../InsuranceArchivesOtherSaveParam.java | 54 +++++++ .../mapper/siarchives/FundSchemeMapper.java | 16 +++ .../mapper/siarchives/FundSchemeMapper.xml | 132 ++++++++++++++++++ .../mapper/siarchives/OtherSchemeMapper.java | 17 +++ .../mapper/siarchives/OtherSchemeMapper.xml | 118 ++++++++++++++++ .../mapper/siarchives/SocialSchemeMapper.java | 2 +- .../mapper/siarchives/SocialSchemeMapper.xml | 124 ++++++++++++++++ .../mapper/sicategory/ICategoryMapper.xml | 2 - .../sischeme/InsuranceSchemeDetailMapper.xml | 6 +- .../mapper/sischeme/InsuranceSchemeMapper.xml | 2 - 12 files changed, 607 insertions(+), 11 deletions(-) create mode 100644 src/com/engine/salary/entity/siarchives/param/InsuranceArchivesFundSaveParam.java create mode 100644 src/com/engine/salary/entity/siarchives/param/InsuranceArchivesOtherSaveParam.java diff --git a/src/com/engine/salary/biz/SIArchivesBiz.java b/src/com/engine/salary/biz/SIArchivesBiz.java index 43279bb1c..7d380f093 100644 --- a/src/com/engine/salary/biz/SIArchivesBiz.java +++ b/src/com/engine/salary/biz/SIArchivesBiz.java @@ -13,6 +13,8 @@ import com.engine.salary.entity.siarchives.dto.InsuranceArchivesBaseDTO; import com.engine.salary.entity.siarchives.dto.InsuranceArchivesFundSchemeDTO; import com.engine.salary.entity.siarchives.dto.InsuranceArchivesOtherSchemeDTO; import com.engine.salary.entity.siarchives.dto.InsuranceArchivesSocialSchemeDTO; +import com.engine.salary.entity.siarchives.param.InsuranceArchivesFundSaveParam; +import com.engine.salary.entity.siarchives.param.InsuranceArchivesOtherSaveParam; import com.engine.salary.entity.siarchives.param.InsuranceArchivesSaveParam; import com.engine.salary.entity.siarchives.param.InsuranceArchivesSocialSaveParam; import com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO; @@ -40,6 +42,7 @@ import weaver.conn.mybatis.MyBatisFactory; import weaver.general.Util; import weaver.hrm.User; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -408,10 +411,10 @@ public class SIArchivesBiz { socialSave(param, employeeId); break; case ACCUMULATION_FUND: - //fundSave(param, employeeId); + fundSave(param, employeeId); break; case OTHER: - //otherSave(param, employeeId); + otherSave(param, employeeId); break; default: throw new SalaryRunTimeException("福利类型不存在"); @@ -419,6 +422,84 @@ public class SIArchivesBiz { } + /** + * + * @param paramReq + * @param employeeId + */ + public void otherSave(InsuranceArchivesSaveParam paramReq, long employeeId) { + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try { + OtherSchemeMapper otherSchemeMapper = sqlSession.getMapper(OtherSchemeMapper.class); + + InsuranceArchivesOtherSaveParam param = JSONObject.parseObject(paramReq.getBaseForm(), InsuranceArchivesOtherSaveParam.class); + SalaryAssert.notNull( "员工id为空", param, param.getEmployeeId()); + otherSchemeMapper.batchDeleteByEmployeeIds(Collections.singletonList(param.getEmployeeId())); + InsuranceArchivesOtherSchemePO insuranceArchivesOtherSchemePO = + InsuranceArchivesOtherSchemePO.builder() + .otherSchemeId(param.getOtherName()) + .otherStartTime(param.getOtherStartTime()) + .underTake(param.getUnderTake().getValue()) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .welfareType(paramReq.getWelfareType().getValue()) + .otherEndTime(param.getOtherEndTime()) + .employeeId(param.getEmployeeId()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .updateTime(new Date()) + .createTime(new Date()) + //.id(IdGenerator.generate()) + .nonPayment(param.getNonPayment()) + .creator(employeeId) + .paymentOrganization(param.getPaymentOrganization()) + .otherPaymentBaseString(paramReq.getPaymentForm()) + .build(); + otherSchemeMapper.batchSave(Collections.singletonList(insuranceArchivesOtherSchemePO)); + + sqlSession.commit(); + }finally { + sqlSession.close(); + } + } + + /** + * + * @param paramReq + * @param employeeId + */ + public void fundSave(InsuranceArchivesSaveParam paramReq, long employeeId) { + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try { + FundSchemeMapper fundSchemeMapper = sqlSession.getMapper(FundSchemeMapper.class); + InsuranceArchivesFundSaveParam param = JSONObject.parseObject(paramReq.getBaseForm(), InsuranceArchivesFundSaveParam.class); + SalaryAssert.notNull("员工id为空", param, param.getEmployeeId()); + fundSchemeMapper.batchDeleteByEmployeeIds(Collections.singletonList(param.getEmployeeId())); + InsuranceArchivesFundSchemePO insuranceArchivesFundSchemePO = InsuranceArchivesFundSchemePO.builder() + .fundSchemeId(param.getFundName()) + .fundAccount(param.getFundAccount()) + .fundEndTime(param.getFundEndTime()) + .fundStartTime(param.getFundStartTime()) + .fundPaymentBaseString(paramReq.getPaymentForm()) + .supplementFundAccount(param.getSupplementFundAccount()) + //.id(IdGenerator.generate()) + .createTime(new Date()) + .creator(employeeId) + .nonPayment(param.getNonPayment()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .underTake(param.getUnderTake().getValue()) + .paymentOrganization(param.getPaymentOrganization()) + .updateTime(new Date()) + .welfareType(paramReq.getWelfareType().getValue()) + .employeeId(param.getEmployeeId()) + .build(); + fundSchemeMapper.batchSave(Collections.singletonList(insuranceArchivesFundSchemePO)); + sqlSession.commit(); + }finally { + sqlSession.close(); + } + + } + /** * * @param paramReq diff --git a/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesFundSaveParam.java b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesFundSaveParam.java new file mode 100644 index 000000000..fec8a8437 --- /dev/null +++ b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesFundSaveParam.java @@ -0,0 +1,60 @@ +package com.engine.salary.entity.siarchives.param; + +import com.engine.salary.enums.sicategory.UndertakerEnum; +import com.engine.salary.enums.sicategory.WelfareTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author weaver_cl + * @Description: TODO 公积金档案保存 + * @Date 2022/3/17 + * @Version V1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class InsuranceArchivesFundSaveParam { + //主键id + private Long id; + + //员工id + private Long employeeId; + + //暂不缴纳 + private Integer nonPayment; + + //福利类型 + private WelfareTypeEnum welfareType; + + //公积金起始缴纳月 + private String fundStartTime; + + //公积金最后缴纳月 + private String fundEndTime; + + //公积金方案id + private Long fundSchemeId; + + //公积金方案id + private Long fundName; + + //公积金账号 + private String fundAccount; + + //补充公积金账号 + private String supplementFundAccount; + + //公积金缴纳组织 + private Long paymentOrganization; + + //公积金个人实际承担方 + private UndertakerEnum underTake; + + //公积金基数jsonString + private String paymentForm; + +} diff --git a/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesOtherSaveParam.java b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesOtherSaveParam.java new file mode 100644 index 000000000..1c93c9675 --- /dev/null +++ b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesOtherSaveParam.java @@ -0,0 +1,54 @@ +package com.engine.salary.entity.siarchives.param; + +import com.engine.salary.enums.sicategory.UndertakerEnum; +import com.engine.salary.enums.sicategory.WelfareTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author weaver_cl + * @Description: TODO 其他福利档案保存 + * @Date 2022/3/17 + * @Version V1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class InsuranceArchivesOtherSaveParam { + + //主键id + private Long id; + + //员工id + private Long employeeId; + + //暂不缴纳 + private Integer nonPayment; + + //福利类型 + private WelfareTypeEnum welfareType; + + //其他福利起始缴纳月 + private String otherStartTime; + + //其他福利最后缴纳月 + private String otherEndTime; + + //其他福利方案id + private Long otherSchemeId; + + //其他福利方案id") + private Long otherName; + + //其他福利缴纳组织 + private Long paymentOrganization; + + //其他福利个人实际承担方 + private UndertakerEnum underTake; + + //其他福利基数jsonString + private String paymentForm; +} diff --git a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java index b99d0dbb3..89837bb28 100644 --- a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java @@ -3,6 +3,9 @@ package com.engine.salary.mapper.siarchives; import com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO; import org.apache.ibatis.annotations.Param; +import java.util.Collection; +import java.util.List; + /** * @Author weaver_cl * @Description: TODO @@ -17,4 +20,17 @@ public interface FundSchemeMapper { * @return */ InsuranceArchivesFundSchemePO getFundByEmployeeId(@Param("employeeId")Long employeeId); + + /** + * 批量删除 + * @param singletonList + */ + void batchDeleteByEmployeeIds(@Param("employeeIds") Collection singletonList); + + /** + * 批量保存 + * @param singletonList + */ + void batchSave(@Param("fundSchemePOS") List singletonList); + } diff --git a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml index cb909ebf8..4e649886b 100644 --- a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml @@ -51,6 +51,138 @@ WHERE employee_id = #{employeeId} AND delete_type = 0 + + + UPDATE hrsa_fund_archives + SET delete_type = 1 + WHERE delete_type = 0 + AND employee_id IN + + #{employeeIds} + + + + + + INSERT INTO hrsa_fund_archives( + fund_scheme_id, + fund_account, + fund_end_time, + fund_start_time, + fund_payment_base_string, + supplement_fund_account, + create_time, + creator, + non_payment, + delete_type, + tenant_key, + under_take, + payment_organization, + update_time, + welfare_type, + employee_id) + VALUES + + ( + #{item.fundSchemeId}, + #{item.fundAccount}, + #{item.fundEndTime}, + #{item.fundStartTime}, + #{item.fundPaymentBaseString}, + #{item.supplementFundAccount} + #{item.createTime} + #{item.creator} + #{item.nonPayment} + #{item.deleteType} + #{item.tenantKey} + #{item.underTake} + #{item.paymentOrganization} + #{item.updateTime} + #{item.welfareType} + #{item.employeeId} + ) + + + + INSERT INTO hrsa_fund_archives( + fund_scheme_id, + fund_account, + fund_end_time, + fund_start_time, + fund_payment_base_string, + supplement_fund_account, + create_time, + creator, + non_payment, + delete_type, + tenant_key, + under_take, + payment_organization, + update_time, + welfare_type, + employee_id) + + select + #{item.fundSchemeId}, + #{item.fundAccount}, + #{item.fundEndTime}, + #{item.fundStartTime}, + #{item.fundPaymentBaseString}, + #{item.supplementFundAccount} + #{item.createTime} + #{item.creator} + #{item.nonPayment} + #{item.deleteType} + #{item.tenantKey} + #{item.underTake} + #{item.paymentOrganization} + #{item.updateTime} + #{item.welfareType} + #{item.employeeId} + from dual + + + + INSERT INTO hrsa_fund_archives( + fund_scheme_id, + fund_account, + fund_end_time, + fund_start_time, + fund_payment_base_string, + supplement_fund_account, + create_time, + creator, + non_payment, + delete_type, + tenant_key, + under_take, + payment_organization, + update_time, + welfare_type, + employee_id) + VALUES + + ( + #{item.fundSchemeId}, + #{item.fundAccount}, + #{item.fundEndTime}, + #{item.fundStartTime}, + #{item.fundPaymentBaseString}, + #{item.supplementFundAccount} + #{item.createTime} + #{item.creator} + #{item.nonPayment} + #{item.deleteType} + #{item.tenantKey} + #{item.underTake} + #{item.paymentOrganization} + #{item.updateTime} + #{item.welfareType} + #{item.employeeId} + ) + + + diff --git a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java index d7ba2bc92..02e626ace 100644 --- a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java @@ -3,6 +3,9 @@ package com.engine.salary.mapper.siarchives; import com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO; import org.apache.ibatis.annotations.Param; +import java.util.Collection; +import java.util.List; + /** * @Author weaver_cl * @Description: TODO @@ -17,4 +20,18 @@ public interface OtherSchemeMapper { * @return */ InsuranceArchivesOtherSchemePO getOtherByEmployeeId(@Param("employeeId")Long employeeId); + + /** + * 批量删除 + * @param singletonList + */ + void batchDeleteByEmployeeIds(@Param("employeeIds") Collection singletonList); + + /** + * 批量保存 + * @param singletonList + */ + void batchSave(@Param("otherSchemePOS") List singletonList); + + } diff --git a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml index 88282a169..03d8d6ed6 100644 --- a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml @@ -50,7 +50,125 @@ + + + UPDATE hrsa_other_archives + SET delete_type = 1 + WHERE delete_type = 0 + AND employee_id IN + + #{employeeIds} + + + + + INSERT INTO hrsa_other_archives( + other_scheme_id, + other_start_time, + under_take, + tenant_key, + welfare_type, + other_end_time, + employee_id, + delete_type, + update_time, + create_time, + non_payment, + creator, + payment_organization, + other_payment_base_string) + VALUES + + ( + #{item.otherSchemeId}, + #{item.otherStartTime}, + #{item.underTake}, + #{item.tenantKey}, + #{item.welfareType}, + #{item.otherEndTime} + #{item.employeeId} + #{item.deleteType} + #{item.updateTime} + #{item.createTime} + #{item.nonPayment} + #{item.creator} + #{item.paymentOrganization} + #{item.otherPaymentBaseString} + ) + + + + INSERT INTO hrsa_other_archives( + other_scheme_id, + other_start_time, + under_take, + tenant_key, + welfare_type, + other_end_time, + employee_id, + delete_type, + update_time, + create_time, + non_payment, + creator, + payment_organization, + other_payment_base_string) + + select + #{item.otherSchemeId}, + #{item.otherStartTime}, + #{item.underTake}, + #{item.tenantKey}, + #{item.welfareType}, + #{item.otherEndTime} + #{item.employeeId} + #{item.deleteType} + #{item.updateTime} + #{item.createTime} + #{item.nonPayment} + #{item.creator} + #{item.paymentOrganization} + #{item.otherPaymentBaseString} + from dual + + + + INSERT INTO hrsa_other_archives( + other_scheme_id, + other_start_time, + under_take, + tenant_key, + welfare_type, + other_end_time, + employee_id, + delete_type, + update_time, + create_time, + non_payment, + creator, + payment_organization, + other_payment_base_string) + VALUES + + ( + #{item.otherSchemeId}, + #{item.otherStartTime}, + #{item.underTake}, + #{item.tenantKey}, + #{item.welfareType}, + #{item.otherEndTime} + #{item.employeeId} + #{item.deleteType} + #{item.updateTime} + #{item.createTime} + #{item.nonPayment} + #{item.creator} + #{item.paymentOrganization} + #{item.otherPaymentBaseString} + ) + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java index 091e70752..cb4c9b32a 100644 --- a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java @@ -31,5 +31,5 @@ public interface SocialSchemeMapper { * 批量保存 * @param singletonList */ - void batchSave(List singletonList); + void batchSave(@Param("socialSchemePOS") List singletonList); } diff --git a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml index 12ae46464..5f3b4afed 100644 --- a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml @@ -49,7 +49,131 @@ WHERE employee_id = #{employeeId} AND delete_type = 0 + + + UPDATE hrsa_social_archives + SET delete_type = 1 + WHERE delete_type = 0 + AND employee_id IN + + #{employeeIds} + + + + + INSERT INTO hrsa_social_archives( + welfare_type, + delete_type, + social_payment_base_string, + social_scheme_id, + create_time, + social_end_time, + social_start_time, + creator, + non_payment, + tenant_key, + employee_id, + update_time, + under_take, + social_account, + payment_organization) + VALUES + + ( + #{item.welfareType}, + #{item.deleteType}, + #{item.socialPaymentBaseString}, + #{item.socialSchemeId}, + #{item.createTime}, + #{item.socialEndTime} + #{item.socialStartTime} + #{item.creator} + #{item.nonPayment} + #{item.tenantKey} + #{item.employeeId} + #{item.updateTime} + #{item.underTake} + #{item.socialAccount} + #{item.paymentOrganization} + ) + + + + INSERT INTO hrsa_social_archives( + welfare_type, + delete_type, + social_payment_base_string, + social_scheme_id, + create_time, + social_end_time, + social_start_time, + creator, + non_payment, + tenant_key, + employee_id, + update_time, + under_take, + social_account, + payment_organization) + + select + #{item.welfareType}, + #{item.deleteType}, + #{item.socialPaymentBaseString}, + #{item.socialSchemeId}, + #{item.createTime}, + #{item.socialEndTime} + #{item.socialStartTime} + #{item.creator} + #{item.nonPayment} + #{item.tenantKey} + #{item.employeeId} + #{item.updateTime} + #{item.underTake} + #{item.socialAccount} + #{item.paymentOrganization} + from dual + + + + INSERT INTO hrsa_social_archives( + welfare_type, + delete_type, + social_payment_base_string, + social_scheme_id, + create_time, + social_end_time, + social_start_time, + creator, + non_payment, + tenant_key, + employee_id, + update_time, + under_take, + social_account, + payment_organization) + VALUES + + ( + #{item.welfareType}, + #{item.deleteType}, + #{item.socialPaymentBaseString}, + #{item.socialSchemeId}, + #{item.createTime}, + #{item.socialEndTime} + #{item.socialStartTime} + #{item.creator} + #{item.nonPayment} + #{item.tenantKey} + #{item.employeeId} + #{item.updateTime} + #{item.underTake} + #{item.socialAccount} + #{item.paymentOrganization} + ) + + diff --git a/src/com/engine/salary/mapper/sicategory/ICategoryMapper.xml b/src/com/engine/salary/mapper/sicategory/ICategoryMapper.xml index 7a653349b..daaa79aa7 100644 --- a/src/com/engine/salary/mapper/sicategory/ICategoryMapper.xml +++ b/src/com/engine/salary/mapper/sicategory/ICategoryMapper.xml @@ -47,7 +47,6 @@ > INSERT INTO hrsa_insurance_category - id, insurance_name, welfare_type, is_use, @@ -60,7 +59,6 @@ tenant_key, - #{id}, #{insuranceName}, #{welfareType}, #{isUse}, diff --git a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml index 80cdff45d..2be432060 100644 --- a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml +++ b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml @@ -95,7 +95,6 @@ > INSERT INTO hrsa_scheme_detail - id, primary_id, insurance_id, effective_time, @@ -115,7 +114,6 @@ tenant_key, - #{id}, #{primaryId}, #{insuranceId}, #{effectiveTime}, @@ -136,7 +134,7 @@ - + UPDATE hrsa_scheme_detail SET delete_type = 1 WHERE delete_type = 0 @@ -144,7 +142,7 @@ #{primaryIds} - +