StrategySystemReviewTaskSigned.java 3.8 KB
Newer Older
1 2 3 4 5 6
package com.ruoyi.service.impl;

import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
wdy's avatar
wdy committed
7
import com.ruoyi.common.utils.StringUtils;
8 9 10 11
import com.ruoyi.domain.*;
import com.ruoyi.mapper.ReviewDetailsMapper;
import com.ruoyi.mapper.ReviewDetailsResultMapper;
import com.ruoyi.mapper.SystemReviewTaskMapper;
12
import com.ruoyi.mapper.TaskMapper;
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
import com.ruoyi.service.ReviewDetailsResultService;
import com.ruoyi.service.ReviewSceneChangeTaskService;
import com.ruoyi.service.ReviewStandardService;
import com.ruoyi.service.StrategySystemReviewTask;
import com.ruoyi.web.response.SystemReviewTaskViewResponse;
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.Date;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

@Transactional
@Service
public class StrategySystemReviewTaskSigned implements StrategySystemReviewTask, InitializingBean {

    @Autowired
    private StrategySystemReviewTaskContext strategySystemReviewTaskContext;

    @Autowired
    private ApplicationContext applicationContext;

    @Autowired
    private SystemReviewTaskMapper systemReviewTaskMapper;

43 44 45
    @Autowired
    private TaskMapper taskMapper;

46 47 48
    @Autowired
    private TaskStateFacade taskStateFacade;

49 50 51 52 53 54 55 56 57 58 59 60

    @Override
    public void doStart(SystemReviewTask systemReviewTask) {
        throw new ServiceException("不能开始一个已确认的任务", HttpStatus.ERROR);
    }

    @Override
    public void doConfirm(SystemReviewTask systemReviewTask) {
        throw new ServiceException("不能确认一个已确认的任务", HttpStatus.ERROR);
    }

    @Override
wdy's avatar
wdy committed
61
    public void doSubmit(SystemReviewTask systemReviewTask, List<String> imagesUrl) {
62 63 64 65 66 67 68 69 70 71 72 73 74

        // 1. 填充task_end_time
        systemReviewTask.setTaskEndTime(new Date());

        // 2. 修改任务状态为 FINISH
        systemReviewTask.setTaskStatus(SystemReviewTask.STATUS_FINISH);

        // 3. 填写当前用户id
        // 获取当前登陆人
        SysUser loginUser = SecurityUtils.getLoginUser().getUser();
        systemReviewTask.setSubmitById(loginUser.getUserId());
        systemReviewTask.setSubmitByName(loginUser.getNickName());

75
        // 4.保存签名图片地址
wdy's avatar
wdy committed
76 77
        String joinImageUrl = StringUtils.join(imagesUrl,",");
        systemReviewTask.setImagesUrl(joinImageUrl);
78

79 80
        // 5.再找带该子任务所属的总任务,将总任务的状态由 RUNNING 改回 RUNNABLE
        Task task = taskMapper.selectById(taskMapper.findBySystemReviewTaskId(systemReviewTask.getId()));
81
        taskStateFacade.doSubmit(task);
82

83
        systemReviewTaskMapper.updateById(systemReviewTask);
84
        taskMapper.updateById(task);
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
    }

    @Override
    public void doClose(SystemReviewTask systemReviewTask) {
        throw new ServiceException("不能关闭一个已确认的任务", HttpStatus.ERROR);
    }

    // SIGNED状态下
    // 1.standard字段使用task中归档的问卷
    // 2.不查询场景变更任务
    // 3.无需联查问卷答案
    @Override
    public SystemReviewTaskViewResponse doView(SystemReviewTask systemReviewTask) {
        SystemReviewTaskViewResponse response = new SystemReviewTaskViewResponse();
        response.setSystemReviewTask(systemReviewTask);

        return response;
    }


    @Override
    public void afterPropertiesSet() throws Exception {
        strategySystemReviewTaskContext.putResource(SystemReviewTask.STATUS_SIGNED, applicationContext.getBean(this.getClass()));
    }
}