package com.zy.asrs.task; 
 | 
  
 | 
import com.core.exception.CoolException; 
 | 
import com.zy.asrs.entity.TaskWrk; 
 | 
import com.zy.asrs.entity.TaskWrkLog; 
 | 
import com.zy.asrs.entity.TaskWrkReport; 
 | 
import com.zy.asrs.service.TaskWrkReportService; 
 | 
import com.zy.asrs.service.TaskWrkService; 
 | 
import com.zy.asrs.service.impl.TaskWrkLogServiceImpl; 
 | 
import com.zy.common.utils.Synchro; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.scheduling.annotation.Scheduled; 
 | 
import org.springframework.stereotype.Component; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
  
 | 
import java.io.IOException; 
 | 
  
 | 
/** 
 | 
 * 定时将任务(完成、取消)转成日志 
 | 
 */ 
 | 
@Slf4j 
 | 
@Component 
 | 
public class TaskLogScheduler { 
 | 
  
 | 
    @Autowired 
 | 
    private TaskWrkService taskWrkService; 
 | 
  
 | 
    @Autowired 
 | 
    private TaskWrkLogServiceImpl wrkLogService; 
 | 
  
 | 
  
 | 
    @Autowired 
 | 
    private TaskWrkReportService taskWrkReportService; 
 | 
  
 | 
  
 | 
    @Scheduled(cron = "0/5 * * * * ? ") 
 | 
    public synchronized void execute() throws IOException { 
 | 
        for (TaskWrk taskWrk : taskWrkService.selectToBeHistoryData()) { 
 | 
            switch (taskWrk.getStatus()) { 
 | 
                case 4: 
 | 
                    break; 
 | 
                case 5: 
 | 
                    break; 
 | 
            } 
 | 
            exe(taskWrk); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    @Transactional 
 | 
    public void exe(TaskWrk taskWrk) { 
 | 
        TaskWrkReport taskWrkReport = new TaskWrkReport(); 
 | 
        TaskWrkLog taskWrkLog = new TaskWrkLog(); 
 | 
        Synchro.Copy(taskWrk, taskWrkReport); 
 | 
        Synchro.Copy(taskWrk, taskWrkLog); 
 | 
        if (!wrkLogService.insert(taskWrkLog)) { 
 | 
            throw new CoolException("转历史档失败" + taskWrk); 
 | 
        } 
 | 
        if (!taskWrkService.deleteById(taskWrk)) { 
 | 
            throw new CoolException("任务档删除失败" + taskWrk); 
 | 
        } 
 | 
        if (!taskWrkReportService.insert(taskWrkReport)) { 
 | 
            throw new CoolException("转移至上报表" + taskWrk); 
 | 
        } 
 | 
    } 
 | 
} 
 |