TaskStateNew.java 1.86 KB
package com.ruoyi.service.impl;

import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.domain.Task;
import com.ruoyi.service.TaskService;
import com.ruoyi.service.TaskState;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.List;

@Transactional
@Service
public class TaskStateNew extends TaskStateAdapter implements TaskState, InitializingBean {

    @Autowired
    private TaskStateContext taskStateContext;

    @Autowired
    private ApplicationContext applicationContext;

    @Autowired
    private TaskService taskService;

    @Override
    public void doCreate(Task task, List<String> taskList) {

        List<String> subTasks = new ArrayList<>();

        // 保存体系审查任务
        if(taskList.contains(Task.SUB_TASK_SRAIF)) {
            subTasks.add(Task.SUB_TASK_SRAIF);
        }

        // 保存车型审查问卷任务
        if(taskList.contains(Task.SUB_TASK_GRFIS)) {
            subTasks.add(Task.SUB_TASK_GRFIS);
        }

        // 车型试验任务
        if(taskList.contains(Task.SUB_TASK_TRFIS)) {
            subTasks.add(Task.SUB_TASK_TRFIS);
        }

        task.setPointer(0);
        task.setMaxPointer(subTasks.size());

        taskService.updateById(task);
    }

    @Override
    public void doSubmit(Task task) {
        throw new ServiceException("不能提交一个尚未开始的任务", HttpStatus.ERROR);
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        taskStateContext.putResource(Task.TASK_STATUS_NEW, applicationContext.getBean(this.getClass()));
    }

}