package com.ots.project.monitor.job.task; import com.ots.project.exam.domain.TExamReport; import com.ots.project.exam.mapper.TExamReportMapper; import com.ots.project.exam.service.impl.TExamPaperServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; import java.util.Optional; /** * 针对发送Hr邮件失败,系统做自动重新发送,1个小时发送一次,发送3次后还是失败。不再处理。 */ @Component("HrEmailTask") @Slf4j public class HrEmailTask { @Autowired private TExamPaperServiceImpl examPaperService; @Autowired private TExamReportMapper examReportMapper; /** * send_hr_status 状态3是发送失败,且重试次数小于3的数据 * finish 为 1的数据 */ public void hrEmailFailedRetransmission() { TExamReport tExamReport = new TExamReport(); tExamReport.setFinish(1); tExamReport.setRetriesTime(3); tExamReport.setSendHrStatus(3); List tExamReports = examReportMapper.selectHrResendTask(tExamReport); tExamReports.stream().forEach(p -> { try { Integer retriesTime = p.getRetriesTime(); Integer integer = Optional.ofNullable(retriesTime).orElse(1); p.setRetriesTime(++integer); examPaperService.sendHRAndMemberEmail(p, true, false); } catch (Exception ex) { log.error("Hr 重发邮件异常:{}", ex.getMessage(), ex); } }); } }