From 3c77ad845b2625dc26b92995dcdb2d699606890b Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期四, 24 四月 2025 10:09:51 +0800 Subject: [PATCH] 定时计算OEE任务 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOEEJob.java | 83 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 83 insertions(+), 0 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOEEJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOEEJob.java new file mode 100644 index 0000000..57c88ca --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOEEJob.java @@ -0,0 +1,83 @@ +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<QuartzJob> 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); + } +} -- Gitblit v1.9.3