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