CarReviewTaskServiceImpl.java 5.09 KB
Newer Older
王飞's avatar
王飞 committed
1 2 3
package com.ruoyi.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
W_Y's avatar
W_Y committed
4 5 6 7
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.SnowflakeUtil;
8 9
import com.ruoyi.domain.*;
import com.ruoyi.mapper.ReviewDetailsMapper;
王飞's avatar
王飞 committed
10 11
import com.ruoyi.service.CarReviewTaskService;
import com.ruoyi.mapper.CarReviewTaskMapper;
W_Y's avatar
W_Y committed
12
import com.ruoyi.service.TaskUserRelationService;
W_Y's avatar
W_Y committed
13 14
import com.ruoyi.service.StandardService;
import com.ruoyi.system.service.ISysUserService;
15
import com.ruoyi.web.request.CarReviewTaskConfirmRequest;
王飞's avatar
王飞 committed
16 17 18
import com.ruoyi.web.request.CarReviewTaskCreateRequest;
import com.ruoyi.web.request.CarReviewTaskStartRequest;
import com.ruoyi.web.request.CarReviewTaskSubmitRequest;
W_Y's avatar
W_Y committed
19
import com.ruoyi.web.response.CarReviewTaskViewResponse;
王飞's avatar
王飞 committed
20 21
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
王飞's avatar
王飞 committed
22
import org.springframework.transaction.annotation.Transactional;
王飞's avatar
王飞 committed
23

W_Y's avatar
W_Y committed
24
import java.util.Date;
王飞's avatar
王飞 committed
25 26 27 28 29 30 31
import java.util.List;

/**
* @author wangfei
* @description 针对表【t_car_review_task(车型审查任务)】的数据库操作Service实现
* @createDate 2024-01-08 13:14:13
*/
王飞's avatar
王飞 committed
32
@Transactional
王飞's avatar
王飞 committed
33 34 35 36 37 38 39
@Service
public class CarReviewTaskServiceImpl extends ServiceImpl<CarReviewTaskMapper, CarReviewTask>
    implements CarReviewTaskService{

    @Autowired
    private CarReviewTaskMapper carReviewTaskMapper;

W_Y's avatar
W_Y committed
40 41 42 43 44 45 46 47 48 49
    @Autowired
    private ISysUserService sysUserService;

    @Autowired
    private StandardService standardService;

    @Autowired
    private CarReviewTaskService carReviewTaskService;

    @Autowired
W_Y's avatar
W_Y committed
50
    private TaskUserRelationService relationService;
W_Y's avatar
W_Y committed
51

W_Y's avatar
W_Y committed
52 53 54
    @Autowired
    private StrategyCarReviewTaskContext strategyCarReviewTaskContext;

55 56 57
    @Autowired
    private ReviewDetailsMapper reviewDetailsMapper;

王飞's avatar
王飞 committed
58 59 60 61
    @Override
    public List<CarReviewTask> findListByReviewStatus(String reviewStatus) {
        return carReviewTaskMapper.findListByReviewStatus(reviewStatus);
    }
王飞's avatar
王飞 committed
62 63 64 65

    @Override
    public void createTask(CarReviewTaskCreateRequest request) {

W_Y's avatar
W_Y committed
66 67 68 69 70 71
        // 构建任务创建者
        LoginUser loginUser = SecurityUtils.getLoginUser();
        SysUser initiator = sysUserService.selectUserById(loginUser.getUserId());
        Standard standard = standardService.findListById(request.getStandardId());

        // 找到审查组长
72 73 74
        TaskUserRelation leader = null;
        List<TaskUserRelation> auditors = request.getAuditors();
        for(TaskUserRelation auditor : auditors) {
W_Y's avatar
W_Y committed
75 76 77 78 79 80 81 82 83 84 85
            if(auditor.getIsLeader() == 1) {
                leader = auditor;
                break;
            }
        }

        // 构建并保存任务信息
        CarReviewTask task = new CarReviewTask()
                .setTaskNo(SnowflakeUtil.generate().toString())
                .setTaskInitiator(initiator.getNickName())
                .setTaskInitiatorDept(initiator.getDept().getDeptName())
W_Y's avatar
W_Y committed
86
                .setTaskStatus(CarReviewTask.TASK_STATUS_NEW)
W_Y's avatar
W_Y committed
87 88 89 90 91 92 93 94
                .setLeaderId(leader.getUserId())
                .setLeader(leader.getName())
                .setCreateTime(new Date())
                .setStandardId(standard.getId())
                .setName(standard.getName())
                .setStandardNo(standard.getStandardNo())
                .setFile(standard.getFile());
        if (request.getReview()) {
95
            task.setTaskStatus(CarReviewTask.TASK_STATUS_NEW);
W_Y's avatar
W_Y committed
96 97 98 99 100 101
        }

        carReviewTaskService.save(task);


        // 构建并保存该任务所关联的审核组信息
102
        for(TaskUserRelation auditor : auditors) {
W_Y's avatar
W_Y committed
103 104 105
            auditor.setTaskId(task.getId());
        }
        relationService.saveBatch(auditors);
王飞's avatar
王飞 committed
106 107 108
    }

    @Override
W_Y's avatar
W_Y committed
109 110
    public CarReviewTaskViewResponse viewReviewTask(Long taskId) {
        CarReviewTask carReviewTask = carReviewTaskService.getById(taskId);
111
        return strategyCarReviewTaskContext.getResource(carReviewTask.getTaskStatus()).doView(carReviewTask);
王飞's avatar
王飞 committed
112 113 114 115
    }

    @Override
    public void startReviewTask(CarReviewTaskStartRequest request) {
116 117 118 119 120 121
        startReviewTask(request.getTaskId());
    }

    @Override
    public void startReviewTask(Long id) {
        CarReviewTask carReviewTask = carReviewTaskService.getById(id);
122
        strategyCarReviewTaskContext.getResource(carReviewTask.getTaskStatus()).doStartReview(carReviewTask);
王飞's avatar
王飞 committed
123 124
    }

125 126 127 128
    @Override
    public void confirmReviewTask(CarReviewTaskConfirmRequest request) {

        CarReviewTask carReviewTask = carReviewTaskService.getById(request.getTaskId());
129
        strategyCarReviewTaskContext.getResource(carReviewTask.getTaskStatus()).doConfirmReview(carReviewTask);
130 131
    }

王飞's avatar
王飞 committed
132 133
    @Override
    public void submitReviewTask(CarReviewTaskSubmitRequest request) {
W_Y's avatar
W_Y committed
134

W_Y's avatar
W_Y committed
135
        CarReviewTask carReviewTask = carReviewTaskService.getById(request.getTaskId());
136
        strategyCarReviewTaskContext.getResource(carReviewTask.getTaskStatus()).doSubmitReview(carReviewTask,request.getImagesUrl());
王飞's avatar
王飞 committed
137 138 139 140
    }

    @Override
    public List<CarReviewTask> findListByStatus(String status) {
141
        return carReviewTaskMapper.findListByTaskStatus(status);
王飞's avatar
王飞 committed
142 143
    }

王飞's avatar
王飞 committed
144 145 146 147 148
}