自动同步离职人员社保档案、薪资档案最后缴纳日期
This commit is contained in:
parent
c1893f9152
commit
bd75ef8d3b
|
|
@ -1778,4 +1778,16 @@ public class SIArchivesBiz {
|
|||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取没有设置社保、公积金最后缴纳月的档案
|
||||
* @param employeeIds
|
||||
* @return
|
||||
*/
|
||||
public List<InsuranceArchivesBaseInfoPO> listEndDateIsNull(List<Long> employeeIds) {
|
||||
if (CollectionUtils.isEmpty(employeeIds)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return getInsuranceBaseInfoMapper().listEndDateIsNull(employeeIds);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -559,6 +559,13 @@
|
|||
</if>
|
||||
</foreach>
|
||||
</trim>
|
||||
<trim prefix="update_time =case" suffix="end,">
|
||||
<foreach collection="collection" item="item" index="index">
|
||||
<if test="item.updateTime!=null">
|
||||
when id=#{item.id} then #{item.updateTime}
|
||||
</if>
|
||||
</foreach>
|
||||
</trim>
|
||||
</trim>
|
||||
where
|
||||
id in
|
||||
|
|
|
|||
|
|
@ -120,4 +120,11 @@ public interface InsuranceBaseInfoMapper {
|
|||
* @param po
|
||||
*/
|
||||
void updateById(InsuranceArchivesBaseInfoPO po);
|
||||
|
||||
/**
|
||||
* 获取没有设置社保、公积金最后缴纳月的档案
|
||||
* @param employeeIds
|
||||
* @return
|
||||
*/
|
||||
List<InsuranceArchivesBaseInfoPO> listEndDateIsNull(@Param("employeeIds") List<Long> employeeIds);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -272,6 +272,34 @@
|
|||
AND payment_organization = #{paymentOrganization}
|
||||
|
||||
</select>
|
||||
<select id="listEndDateIsNull"
|
||||
resultType="com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO">
|
||||
select
|
||||
a.id
|
||||
, a.employee_id
|
||||
, a.payment_organization
|
||||
, a.social_archives_id
|
||||
, a.fund_archives_id
|
||||
, a.other_archives_id
|
||||
, a.run_status
|
||||
, a.create_time
|
||||
, a.update_time
|
||||
, a.creator
|
||||
, a.delete_type
|
||||
, a.tenant_key
|
||||
, a.employee_type
|
||||
from hrsa_insurance_base_info a
|
||||
left join hrsa_social_archives s on a.social_archives_id=s.id and s.delete_type=0
|
||||
left join hrsa_fund_archives f on a.fund_archives_id=f.id and f.delete_type=0
|
||||
left join hrsa_other_archives o on a.other_archives_id=o.id and o.delete_type=0
|
||||
where a.delete_type = 0
|
||||
and (social_end_time is null or social_end_time ='' or fund_end_time is null or fund_end_time =''
|
||||
or other_end_time is null or other_end_time ='' )
|
||||
and a.employee_id in
|
||||
<foreach collection="employeeIds" open="(" item="employeeId" separator="," close=")">
|
||||
#{employeeId}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<update id="updateRunStatusByIds" parameterType="com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO">
|
||||
UPDATE hrsa_insurance_base_info
|
||||
|
|
|
|||
|
|
@ -1,8 +1,16 @@
|
|||
package com.engine.salary.timer;
|
||||
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.salary.biz.SIArchivesBiz;
|
||||
import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO;
|
||||
import com.engine.salary.mapper.archive.SalaryArchiveMapper;
|
||||
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;
|
||||
import com.engine.salary.service.SalaryArchiveService;
|
||||
import com.engine.salary.service.SalaryEmployeeService;
|
||||
import com.engine.salary.service.impl.SalaryArchiveServiceImpl;
|
||||
|
|
@ -31,8 +39,16 @@ public class AutoSyncResignationEmpArchiveJob extends BaseCronJob {
|
|||
return ServiceUtil.getService(SalaryEmployeeServiceImpl.class,user);
|
||||
}
|
||||
|
||||
private SalaryArchiveMapper getSalaryArchiveMapper() {
|
||||
return MapperProxyFactory.getProxy(SalaryArchiveMapper.class);
|
||||
private SocialSchemeMapper getSocialSchemeMapper() {
|
||||
return MapperProxyFactory.getProxy(SocialSchemeMapper.class);
|
||||
}
|
||||
|
||||
private FundSchemeMapper getFundSchemeMapper() {
|
||||
return MapperProxyFactory.getProxy(FundSchemeMapper.class);
|
||||
}
|
||||
|
||||
private OtherSchemeMapper getOtherSchemeMapper() {
|
||||
return MapperProxyFactory.getProxy(OtherSchemeMapper.class);
|
||||
}
|
||||
|
||||
private Integer preMonth;
|
||||
|
|
@ -46,11 +62,11 @@ public class AutoSyncResignationEmpArchiveJob extends BaseCronJob {
|
|||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(new Date());
|
||||
if (preMonth == null) {
|
||||
preMonth = 3;
|
||||
preMonth = 2;
|
||||
}
|
||||
cal.add(Calendar.MONTH, -preMonth);
|
||||
Map<Long, String> resignationMap = getSalaryEmployeeService(user).getResignationMapByDate(SalaryDateUtil.getFormatDate(cal.getTime()));
|
||||
// 获取离职人员中没有设置最后缴纳月的档案
|
||||
// 获取离职人员中没有设置最后发薪日期的薪资档案
|
||||
List<SalaryArchivePO> salaryArchivePOS = getSalaryArchiveService(user).listPayEndDateIsNull(new ArrayList<>(resignationMap.keySet()));
|
||||
Date now = new Date();
|
||||
List<SalaryArchivePO> needUpdateSalaryArchiveList = new ArrayList<>();
|
||||
|
|
@ -58,12 +74,44 @@ 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 获取离职人员中没有设置最后缴纳月的社保福利档案
|
||||
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());
|
||||
if (StringUtils.isNotEmpty(dismissDate)) {
|
||||
dismissDate = StringUtils.substring(dismissDate,0,7);
|
||||
// 更新社保最后缴纳月
|
||||
Long socialArchivesId = po.getSocialArchivesId();
|
||||
getSocialSchemeMapper().updateById(InsuranceArchivesSocialSchemePO.builder()
|
||||
.id(socialArchivesId)
|
||||
.socialEndTime(dismissDate)
|
||||
.updateTime(now)
|
||||
.build());
|
||||
// 更新公积金最后缴纳月
|
||||
Long fundArchivesId = po.getFundArchivesId();
|
||||
getFundSchemeMapper().updateById(InsuranceArchivesFundSchemePO.builder()
|
||||
.id(fundArchivesId)
|
||||
.fundEndTime(dismissDate)
|
||||
.updateTime(now)
|
||||
.build());
|
||||
// 更新企业年金及其他福利最后缴纳月
|
||||
Long otherArchivesId = po.getOtherArchivesId();
|
||||
getOtherSchemeMapper().updateById(InsuranceArchivesOtherSchemePO.builder()
|
||||
.id(otherArchivesId)
|
||||
.otherEndTime(dismissDate)
|
||||
.updateTime(now)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue