//package org.jeecg.modules.mdc.job; // //import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; //import lombok.extern.slf4j.Slf4j; //import org.apache.commons.lang.StringUtils; //import org.jeecg.common.constant.CommonConstant; //import org.jeecg.modules.mdc.dto.MdcEquipmentWaitSectionDto; //import org.jeecg.modules.mdc.entity.MdcDowntime; //import org.jeecg.modules.mdc.entity.MdcEquipmentOvertime; //import org.jeecg.modules.mdc.entity.MdcEquipmentRunningSection; //import org.jeecg.modules.mdc.service.IMdcDowntimeService; //import org.jeecg.modules.mdc.service.IMdcEquipmentRunningSectionService; //import org.jeecg.modules.mdc.util.DateUtils; //import org.jeecg.modules.mdc.util.ThrowableUtil; //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.util.Date; //import java.util.List; //import java.util.stream.Collectors; // ///** // * @Author: Lius // * @CreateTime: 2025-03-12 // * @Description: 扫描停机任务 // */ //@PersistJobDataAfterExecution //@DisallowConcurrentExecution //@Slf4j //public class ScanDowntimeJob 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 IMdcEquipmentRunningSectionService mdcEquipmentRunningSectionService; // // @Resource // private IMdcDowntimeService mdcDowntimeService; // // @Override // public void execute(JobExecutionContext context) 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("定时扫描待机时长超20分钟设备任务 ScanDowntimeJob start! 时间:{}, 参数:{}", DateUtils.getNow(), this.parameter); // long startTime = System.currentTimeMillis(); // try { // String date = ""; // if (StringUtils.isNotBlank(this.parameter)) { // date = DateUtils.format(DateUtils.toDate(this.parameter, DateUtils.STRDATE), DateUtils.STR_DATE); // // } else { // date = DateUtils.format(DateUtils.getNow(), DateUtils.STR_DATE); // } // mdcDowntimeService.remove(new LambdaQueryWrapper().eq(MdcDowntime::getTheDate, date).eq(MdcDowntime::getStatus, CommonConstant.DOWNTIME_STATUS_0)); // // List mdcEquipmentRunningSections = mdcEquipmentRunningSectionService.findWaitList(date); // // if (mdcEquipmentRunningSections != null && !mdcEquipmentRunningSections.isEmpty()) { // String finalDate = date; // List downtimeList = mdcEquipmentRunningSections.stream().map(mdcEquipmentWaitSectionDto -> { // MdcDowntime downtime = new MdcDowntime(); // downtime.setEquipmentId(mdcEquipmentWaitSectionDto.getEquipmentId()); // downtime.setEquipmentName(mdcEquipmentWaitSectionDto.getEquipmentName()); // downtime.setTheDate(finalDate); // downtime.setStartDate(mdcEquipmentWaitSectionDto.getStartTime()); // downtime.setEndDate(mdcEquipmentWaitSectionDto.getEndTime()); // return downtime; // }).collect(Collectors.toList()); // if (!downtimeList.isEmpty()) { // mdcDowntimeService.saveBatch(downtimeList); // } // } // quartzLog.setIsSuccess(0); // } catch (Exception e) { // quartzLog.setIsSuccess(-1); // quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); // // 发送消息通知 // sysAnnouncementService.jobSendMessage("定时扫描待机时长超20分钟设备任务", quartzLog.getExceptionDetail()); // } // long endTime = System.currentTimeMillis(); // quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); // sysQuartzLogService.save(quartzLog); // } //}