From d69aa46e33f42e1e0b4de25c98ff18034e43947f Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 9 Oct 2023 14:10:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=90=8C=E6=AD=A5=E8=80=83?= =?UTF-8?q?=E5=8B=A4=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../timer/AutoSyncAttendQuoteDataJob.java | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/com/engine/salary/timer/AutoSyncAttendQuoteDataJob.java diff --git a/src/com/engine/salary/timer/AutoSyncAttendQuoteDataJob.java b/src/com/engine/salary/timer/AutoSyncAttendQuoteDataJob.java new file mode 100644 index 000000000..7f93fd2f3 --- /dev/null +++ b/src/com/engine/salary/timer/AutoSyncAttendQuoteDataJob.java @@ -0,0 +1,76 @@ +package com.engine.salary.timer; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.datacollection.param.AttendQuoteCheckOperationParam; +import com.engine.salary.entity.datacollection.param.AttendQuoteDataSyncParam; +import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.service.SalarySobService; +import com.engine.salary.service.impl.SalarySobServiceImpl; +import com.engine.salary.util.SalaryDateUtil; +import com.engine.salary.wrapper.AttendQuoteDataWrapper; +import com.engine.salary.wrapper.AttendQuoteWrapper; +import org.apache.commons.lang3.StringUtils; +import weaver.general.BaseBean; +import weaver.hrm.User; +import weaver.interfaces.schedule.BaseCronJob; + +import java.time.LocalDate; +import java.util.Date; +import java.util.List; + +/** + * @author Harryxzy + * @ClassName AutoSyncAttendQuoteData + * @date 2023/08/11 9:53 + * @description 自动同步所有薪资账套的考勤引用 + */ +public class AutoSyncAttendQuoteDataJob extends BaseCronJob { + + private String date; + + private SalarySobService getSalarySobService(User user) { + return ServiceUtil.getService(SalarySobServiceImpl.class, user); + } + + private AttendQuoteWrapper getAttendQuoteWrapper(User user) { + return ServiceUtil.getService(AttendQuoteWrapper.class, user); + } + private AttendQuoteDataWrapper getAttendQuoteDataWrapper(User user) { + return ServiceUtil.getService(AttendQuoteDataWrapper.class, user); + } + + @Override + public void execute() { + User tempUser = new User(); + tempUser.setUid(1); + tempUser.setLoginid("sysadmin"); + // 获取所有的薪资账套 + List salarySobList = getSalarySobService(tempUser).listAll(); + LocalDate localDate = SalaryDateUtil.dateToLocalDate(new Date()); + localDate.plusMonths(-1); + if (StringUtils.isNotBlank(date)) { + localDate = SalaryDateUtil.dateToLocalDate(SalaryDateUtil.dateStrToLocalDate(date)); + } + String dateStr = SalaryDateUtil.getFormatYearMonth(localDate); + BaseBean baseBean = new BaseBean(); + // 循环所有的账套 + salarySobList.stream().forEach(sob -> { + // 校验是否可以操作 + Boolean canSync = getAttendQuoteWrapper(tempUser).checkOperation(AttendQuoteCheckOperationParam.builder() + .salarySobId(sob.getId()) + .salaryYearMonthStr(dateStr) + .build()); + if (canSync) { + // 同步数据 + try { + getAttendQuoteDataWrapper(tempUser).syncAttendQuoteData(AttendQuoteDataSyncParam.builder() + .salarySobId(sob.getId()) + .salaryYearMonth(dateStr) + .build()); + } catch (Exception e) { + baseBean.writeLog("自动同步考勤数据出错:"+ e); + } + } + }); + } +}