diff --git a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml index 4e2a2640e..b54ee6cba 100644 --- a/src/com/engine/salary/mapper/datacollection/EmployMapper.xml +++ b/src/com/engine/salary/mapper/datacollection/EmployMapper.xml @@ -380,7 +380,7 @@ e.workcode as workcode, e.companystartdate as companystartdate, e.mobile as mobile, - e.enddate as dismissdate, + e.enddate as dismissdate from hrmresource e where e.status not in (7) AND e.enddate >= #{dismissDate} diff --git a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java index ca0cb78fb..203509ca1 100644 --- a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java @@ -91,4 +91,11 @@ public interface FundSchemeMapper { * @param insuranceArchivesFundSchemePO */ void insert(InsuranceArchivesFundSchemePO insuranceArchivesFundSchemePO); + + /** + * 更新最后缴纳月 + * @param id + * @param endTime + */ + void updateEndTime(@Param("id")Long id, @Param("endTime")String endTime); } diff --git a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml index 8590a88e6..0b8f650b7 100644 --- a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml @@ -327,6 +327,12 @@ + + UPDATE hrsa_fund_archives + SET fund_end_time = #{endTime} + WHERE delete_type = 0 + AND id = #{id} + diff --git a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java index 26d684d21..5281c07ce 100644 --- a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java @@ -83,4 +83,11 @@ public interface OtherSchemeMapper { * @param insuranceArchivesOtherSchemePO */ void insert(InsuranceArchivesOtherSchemePO insuranceArchivesOtherSchemePO); + + /** + * 更新最后缴纳月 + * @param id + * @param endTime + */ + void updateEndTime(@Param("id")Long id, @Param("endTime")String endTime); } diff --git a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml index 74c514a6e..9ab21e2f4 100644 --- a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml @@ -306,6 +306,13 @@ + + UPDATE hrsa_other_archives + SET other_end_time = #{endTime} + WHERE delete_type = 0 + AND id = #{id} + + INSERT INTO hrsa_other_archives( other_scheme_id, diff --git a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java index b2857ba99..26b174dc8 100644 --- a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java @@ -121,4 +121,11 @@ public interface SocialSchemeMapper { * @param insuranceArchivesSocialSchemePO */ void insert(InsuranceArchivesSocialSchemePO insuranceArchivesSocialSchemePO); + + /** + * 更新最后缴纳月 + * @param id + * @param endTime + */ + void updateEndTime(@Param("id")Long id, @Param("endTime")String endTime); } diff --git a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml index cc73ff033..8ee102829 100644 --- a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml @@ -970,6 +970,13 @@ + + UPDATE hrsa_social_archives + SET social_end_time = #{endTime} + WHERE delete_type = 0 AND id = #{id} + + + INSERT INTO hrsa_social_archives( welfare_type, diff --git a/src/com/engine/salary/timer/AutoSyncResignationEmpArchiveJob.java b/src/com/engine/salary/timer/AutoSyncResignationEmpArchiveJob.java index 1055b61d1..8039af208 100644 --- a/src/com/engine/salary/timer/AutoSyncResignationEmpArchiveJob.java +++ b/src/com/engine/salary/timer/AutoSyncResignationEmpArchiveJob.java @@ -2,12 +2,9 @@ package com.engine.salary.timer; import com.engine.common.util.ServiceUtil; import com.engine.salary.biz.SIArchivesBiz; +import com.engine.salary.biz.SalaryArchiveBiz; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO; -import com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO; -import com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO; -import com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO; -import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum; import com.engine.salary.mapper.siarchives.FundSchemeMapper; import com.engine.salary.mapper.siarchives.OtherSchemeMapper; import com.engine.salary.mapper.siarchives.SocialSchemeMapper; @@ -17,6 +14,7 @@ import com.engine.salary.service.impl.SalaryArchiveServiceImpl; import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.db.MapperProxyFactory; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.hrm.User; import weaver.interfaces.schedule.BaseCronJob; @@ -39,6 +37,8 @@ public class AutoSyncResignationEmpArchiveJob extends BaseCronJob { return ServiceUtil.getService(SalaryEmployeeServiceImpl.class,user); } + private SalaryArchiveBiz getSalaryArchiveMapper = new SalaryArchiveBiz(); + private SocialSchemeMapper getSocialSchemeMapper() { return MapperProxyFactory.getProxy(SocialSchemeMapper.class); } @@ -74,16 +74,17 @@ public class AutoSyncResignationEmpArchiveJob extends BaseCronJob { String dismissDate = resignationMap.get(archive.getEmployeeId()); if (StringUtils.isNotBlank(dismissDate)) { archive.setPayEndDate(SalaryDateUtil.dateStrToLocalDate(dismissDate)); - archive.setRunStatus(SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue()); archive.setUpdateTime(now); needUpdateSalaryArchiveList.add(archive); } } + if (CollectionUtils.isNotEmpty(needUpdateSalaryArchiveList)) { + getSalaryArchiveMapper.batchUpdate(needUpdateSalaryArchiveList); + } // 获取离职人员中没有设置最后缴纳月的社保福利档案 SIArchivesBiz siArchivesBiz = new SIArchivesBiz(); List needSyncList = siArchivesBiz.listEndDateIsNull(new ArrayList<>(resignationMap.keySet())); - now = new Date(); // 设置社保、公积金最后缴纳月 for(InsuranceArchivesBaseInfoPO po : needSyncList){ String dismissDate = resignationMap.get(po.getEmployeeId()); @@ -91,25 +92,13 @@ public class AutoSyncResignationEmpArchiveJob extends BaseCronJob { dismissDate = StringUtils.substring(dismissDate,0,7); // 更新社保最后缴纳月 Long socialArchivesId = po.getSocialArchivesId(); - getSocialSchemeMapper().updateById(InsuranceArchivesSocialSchemePO.builder() - .id(socialArchivesId) - .socialEndTime(dismissDate) - .updateTime(now) - .build()); + getSocialSchemeMapper().updateEndTime(socialArchivesId, dismissDate); // 更新公积金最后缴纳月 Long fundArchivesId = po.getFundArchivesId(); - getFundSchemeMapper().updateById(InsuranceArchivesFundSchemePO.builder() - .id(fundArchivesId) - .fundEndTime(dismissDate) - .updateTime(now) - .build()); + getFundSchemeMapper().updateEndTime(fundArchivesId, dismissDate); // 更新企业年金及其他福利最后缴纳月 Long otherArchivesId = po.getOtherArchivesId(); - getOtherSchemeMapper().updateById(InsuranceArchivesOtherSchemePO.builder() - .id(otherArchivesId) - .otherEndTime(dismissDate) - .updateTime(now) - .build()); + getOtherSchemeMapper().updateEndTime(otherArchivesId, dismissDate); } } }