package org.jeecg.modules.mdc.job; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.util.DateUtils; import org.jeecg.modules.mdc.service.IMdcOeeInfoService; import org.jeecg.modules.mdc.util.ThrowableUtil; import org.jeecg.modules.mdc.vo.MdcOeeComputeVo; import org.jeecg.modules.quartz.entity.QuartzJob; import org.jeecg.modules.quartz.entity.SysQuartzLog; import org.jeecg.modules.quartz.service.IQuartzJobService; import org.jeecg.modules.quartz.service.ISysQuartzLogService; import org.jeecg.modules.system.service.ISysAnnouncementService; import org.quartz.*; import javax.annotation.Resource; import java.time.LocalDate; import java.util.Date; import java.util.List; /** * @Author: Lius * @CreateTime: 2025-04-24 * @Description: OEE */ @PersistJobDataAfterExecution @DisallowConcurrentExecution @Slf4j public class RunningOEEJob implements Job { /** * 若参数变量名修改 QuartzJobController中也需对应修改 时间: yyyyMMdd 例: 20230414 */ private String parameter; public void setParameter(String parameter) { this.parameter = parameter; } @Resource private IQuartzJobService quartzJobService; @Resource private ISysAnnouncementService sysAnnouncementService; @Resource private ISysQuartzLogService sysQuartzLogService; @Resource private IMdcOeeInfoService mdcOeeInfoService; @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { SysQuartzLog quartzLog = new SysQuartzLog(); quartzLog.setCreateTime(new Date()); List byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName()); if (byJobClassName != null && !byJobClassName.isEmpty()) { quartzLog.setJobId(byJobClassName.get(0).getId()); } quartzLog.setParams(this.parameter); log.info("定时计算设备综合效率OEE任务 RunningOEEJob start! 时间:" + DateUtils.now(), this.parameter); long startTime = System.currentTimeMillis(); try { MdcOeeComputeVo mdcOeeComputeVo = new MdcOeeComputeVo(); String dateTime = LocalDate.now().plusDays(-1).toString(); if (StringUtils.isNotBlank(this.parameter)) { dateTime = DateUtils.date2Str(DateUtils.str2Date(this.parameter, DateUtils.yyyyMMdd.get()), DateUtils.date_sdf.get()); } mdcOeeComputeVo.setStartTime(dateTime); mdcOeeComputeVo.setEndTime(dateTime); mdcOeeInfoService.computeOee(mdcOeeComputeVo); quartzLog.setIsSuccess(0); } catch (Exception e) { quartzLog.setIsSuccess(-1); quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); // 发送消息通知 sysAnnouncementService.jobSendMessage("定时计算设备综合效率OEE任务", quartzLog.getExceptionDetail()); } long endTime = System.currentTimeMillis(); quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); sysQuartzLogService.save(quartzLog); } }