自动同步离职人员结束发薪日期

This commit is contained in:
Harryxzy 2023-08-30 15:34:54 +08:00
parent bd75ef8d3b
commit 64f64c4f89
8 changed files with 52 additions and 22 deletions

View File

@ -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}

View File

@ -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);
}

View File

@ -327,6 +327,12 @@
</foreach>
</if>
</update>
<update id="updateEndTime">
UPDATE hrsa_fund_archives
SET fund_end_time = #{endTime}
WHERE delete_type = 0
AND id = #{id}
</update>
<insert id="insert" parameterType="com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO">

View File

@ -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);
}

View File

@ -306,6 +306,13 @@
</if>
</update>
<update id="updateEndTime">
UPDATE hrsa_other_archives
SET other_end_time = #{endTime}
WHERE delete_type = 0
AND id = #{id}
</update>
<insert id="insert" parameterType="com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO">
INSERT INTO hrsa_other_archives(
other_scheme_id,

View File

@ -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);
}

View File

@ -970,6 +970,13 @@
</if>
</update>
<update id="updateEndTime">
UPDATE hrsa_social_archives
SET social_end_time = #{endTime}
WHERE delete_type = 0 AND id = #{id}
</update>
<insert id="insert" parameterType="com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO">
INSERT INTO hrsa_social_archives(
welfare_type,

View File

@ -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<InsuranceArchivesBaseInfoPO> 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);
}
}
}