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.SystemReviewTaskMapper; import com.ruoyi.service.*; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.web.request.SystemReviewTaskCreateRequest; import com.ruoyi.web.request.SystemReviewTaskStartRequest; import com.ruoyi.web.response.SystemReviewTaskViewResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; /** * @author wangfei * @description 针对表【t_system_review_task(体系审查任务)】的数据库操作Service实现 * @createDate 2023-12-15 09:56:07 */ @Transactional @Service public class SystemReviewTaskServiceImpl extends ServiceImpl<SystemReviewTaskMapper, SystemReviewTask> implements SystemReviewTaskService { @Autowired private SystemReviewTaskUserRelationService systemReviewTaskUserRelationService; @Autowired private SystemReviewTaskService systemReviewTaskService; @Autowired private StrategySystemReviewTaskContext strategySystemReviewTaskContext; @Autowired private SystemReviewTaskMapper systemReviewTaskMapper; @Autowired private ISysUserService sysUserService; @Override public void createTaskTest(SystemReviewTaskCreateRequest request) { // 构建任务创建者 LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser initiator = sysUserService.selectUserById(loginUser.getUserId()); // 找到审查组长 SystemReviewTaskUserRelation leader = null; List<SystemReviewTaskUserRelation> auditors = request.getAuditors(); for(SystemReviewTaskUserRelation auditor : auditors) { if(auditor.getIsLeader() == 1) { leader = auditor; break; } } // 构建并保存任务信息 SystemReviewTask task = new SystemReviewTask() .setTaskNo(SnowflakeUtil.generate().toString()) .setTaskInitiator(initiator.getNickName()) .setTaskInitiatorDept(initiator.getDept().getDeptName()) .setTaskStatus(SystemReviewTask.STATUS_NEW) .setBizInfo(request.getBizInfo()) .setLeaderId(leader.getUserId()) .setLeader(leader.getName()) .setCreateTime(new Date()); systemReviewTaskService.save(task); // 构建并保存该任务所关联的审核组信息 for(SystemReviewTaskUserRelation auditor : auditors) { auditor.setTaskId(task.getId()); } systemReviewTaskUserRelationService.saveBatch(auditors); } @Override public SystemReviewTaskViewResponse view(Long taskId) { SystemReviewTask systemReviewTask = systemReviewTaskService.getById(taskId); return strategySystemReviewTaskContext.getResource(systemReviewTask.getTaskStatus()).doView(systemReviewTask); } @Override public void start(SystemReviewTaskStartRequest request) { SystemReviewTask systemReviewTask = systemReviewTaskService.getById(request.getTaskId()); strategySystemReviewTaskContext.getResource(systemReviewTask.getTaskStatus()).doStart(systemReviewTask); } @Override public List<SystemReviewTask> findListByStatus(String status) { return systemReviewTaskMapper.findListByStatus(status); } }