package com.ruoyi.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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; import com.ruoyi.domain.*; import com.ruoyi.mapper.ReviewDetailsMapper; import com.ruoyi.service.CarReviewTaskService; import com.ruoyi.mapper.CarReviewTaskMapper; import com.ruoyi.service.TaskUserRelationService; import com.ruoyi.service.StandardService; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.web.request.CarReviewTaskConfirmRequest; import com.ruoyi.web.request.CarReviewTaskCreateRequest; import com.ruoyi.web.request.CarReviewTaskStartRequest; import com.ruoyi.web.request.CarReviewTaskSubmitRequest; import com.ruoyi.web.response.CarReviewTaskViewResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.List; /** * @author wangfei * @description 针对表【t_car_review_task(车型审查任务)】的数据库操作Service实现 * @createDate 2024-01-08 13:14:13 */ @Transactional @Service public class CarReviewTaskServiceImpl extends ServiceImpl<CarReviewTaskMapper, CarReviewTask> implements CarReviewTaskService{ @Autowired private CarReviewTaskMapper carReviewTaskMapper; @Autowired private ISysUserService sysUserService; @Autowired private StandardService standardService; @Autowired private CarReviewTaskService carReviewTaskService; @Autowired private TaskUserRelationService relationService; @Autowired private StrategyCarReviewTaskContext strategyCarReviewTaskContext; @Autowired private ReviewDetailsMapper reviewDetailsMapper; @Override public List<CarReviewTask> findListByReviewStatus(String reviewStatus) { return carReviewTaskMapper.findListByReviewStatus(reviewStatus); } @Override public void createTask(CarReviewTaskCreateRequest request) { // 构建任务创建者 LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser initiator = sysUserService.selectUserById(loginUser.getUserId()); Standard standard = standardService.findListById(request.getStandardId()); // 找到审查组长 TaskUserRelation leader = null; List<TaskUserRelation> auditors = request.getAuditors(); for(TaskUserRelation auditor : auditors) { if(auditor.getIsLeader() == 1) { leader = auditor; break; } } // 构建并保存任务信息 CarReviewTask task = new CarReviewTask() .setTaskNo(SnowflakeUtil.generate().toString()) .setTaskInitiator(initiator.getNickName()) .setTaskInitiatorDept(initiator.getDept().getDeptName()) .setTaskStatus(CarReviewTask.TASK_STATUS_NEW) .setLeaderId(leader.getUserId()) .setLeader(leader.getName()) .setCreateTime(new Date()) .setStandardId(standard.getId()) .setName(standard.getName()) .setStandardNo(standard.getStandardNo()) .setFile(standard.getFile()); if (request.getReview()) { task.setTaskStatus(CarReviewTask.TASK_STATUS_NEW); } carReviewTaskService.save(task); // 构建并保存该任务所关联的审核组信息 for(TaskUserRelation auditor : auditors) { auditor.setTaskId(task.getId()); } relationService.saveBatch(auditors); } @Override public CarReviewTaskViewResponse viewReviewTask(Long taskId) { CarReviewTask carReviewTask = carReviewTaskService.getById(taskId); return strategyCarReviewTaskContext.getResource(carReviewTask.getTaskStatus()).doView(carReviewTask); } @Override public void startReviewTask(CarReviewTaskStartRequest request) { startReviewTask(request.getTaskId()); } @Override public void startReviewTask(Long id) { CarReviewTask carReviewTask = carReviewTaskService.getById(id); strategyCarReviewTaskContext.getResource(carReviewTask.getTaskStatus()).doStartReview(carReviewTask); } @Override public void confirmReviewTask(CarReviewTaskConfirmRequest request) { CarReviewTask carReviewTask = carReviewTaskService.getById(request.getTaskId()); strategyCarReviewTaskContext.getResource(carReviewTask.getTaskStatus()).doConfirmReview(carReviewTask); } @Override public void submitReviewTask(CarReviewTaskSubmitRequest request) { CarReviewTask carReviewTask = carReviewTaskService.getById(request.getTaskId()); strategyCarReviewTaskContext.getResource(carReviewTask.getTaskStatus()).doSubmitReview(carReviewTask,request.getImagesUrl()); } @Override public List<CarReviewTask> findListByStatus(String status) { return carReviewTaskMapper.findListByTaskStatus(status); } }