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; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.domain.*; import com.ruoyi.mapper.CarReviewTaskMapper; import com.ruoyi.mapper.ReviewDetailsMapper; import com.ruoyi.mapper.ReviewDetailsResultMapper; import com.ruoyi.mapper.TaskMapper; import com.ruoyi.service.ReviewDetailsResultService; import com.ruoyi.service.ReviewSceneChangeTaskService; import com.ruoyi.service.ReviewStandardService; import com.ruoyi.service.StrategyCarReviewTask; import com.ruoyi.web.response.CarReviewTaskViewResponse; 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 javax.swing.table.TableModel; 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 StrategyCarReviewTaskSigned implements StrategyCarReviewTask, InitializingBean { @Autowired private StrategyCarReviewTaskContext strategyCarReviewTaskContext; @Autowired private ApplicationContext applicationContext; @Autowired private CarReviewTaskMapper carReviewTaskMapper; @Autowired private TaskMapper taskMapper; @Autowired private TaskStateFacade taskStateFacade; // SIGNED状态下 // 1.standard字段使用task中归档的问卷 // 2.不查询场景变更任务 // 3.无需联查问卷答案 @Override public CarReviewTaskViewResponse doView(CarReviewTask carReviewTask) { CarReviewTaskViewResponse response = new CarReviewTaskViewResponse(); response.setCarReviewTask(carReviewTask); return response; } @Override public void doStartReview(CarReviewTask carReviewTask) { throw new ServiceException("不能开始一个已确认的任务", HttpStatus.ERROR); } @Override public void doConfirmReview(CarReviewTask carReviewTask) { throw new ServiceException("不能确认一个已确认的任务", HttpStatus.ERROR); } @Override public void doSubmitReview(CarReviewTask carReviewTask, List<String> imagesUrl) { // 1. 填充review_submit_time carReviewTask.setTaskEndTime(new Date()); // 2. 修改任务状态为 FINISH carReviewTask.setTaskStatus(CarReviewTask.TASK_STATUS_FINISH); // 3. 填写当前用户id // 获取当前登陆人 SysUser loginUser = SecurityUtils.getLoginUser().getUser(); carReviewTask.setSubmitId(loginUser.getUserId()); carReviewTask.setSubmitName(loginUser.getNickName()); // 4. 保存签名图片地址 String joinImageUrl = StringUtils.join(imagesUrl,","); carReviewTask.setImagesUrl(joinImageUrl); // 5.再找带该子任务所属的总任务,将总任务的状态由 RUNNING 改回 RUNNABLE Task task = taskMapper.selectById(taskMapper.findByCarReviewTaskId(carReviewTask.getId())); taskStateFacade.doSubmit(task); carReviewTaskMapper.updateById(carReviewTask); taskMapper.updateById(task); } @Override public void afterPropertiesSet() throws Exception { strategyCarReviewTaskContext.putResource(CarReviewTask.TASK_STATUS_SIGNED, applicationContext.getBean(this.getClass())); } }