mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-10-30 18:16:57 +08:00 
			
		
		
		
	BPM:完善相关的代码注释
This commit is contained in:
		| @ -11,7 +11,7 @@ import lombok.Getter; | ||||
|  */ | ||||
| @Getter | ||||
| @AllArgsConstructor | ||||
| public enum BpmTaskStatustEnum { | ||||
| public enum BpmTaskStatusEnum { | ||||
| 
 | ||||
|     RUNNING(1, "审批中"), | ||||
|     APPROVE(2, "审批通过"), | ||||
| @ -93,7 +93,7 @@ public class BpmTaskController { | ||||
|     @GetMapping("manager-page") | ||||
|     @Operation(summary = "获取全部任务的分页", description = "用于【流程任务】菜单") | ||||
|     @PreAuthorize("@ss.hasPermission('bpm:task:mananger-query')") | ||||
|     public CommonResult<PageResult<BpmTaskRespVO>> getDoneTaskPage(@Valid BpmTaskPageReqVO pageVO) { | ||||
|     public CommonResult<PageResult<BpmTaskRespVO>> getTaskManagerPage(@Valid BpmTaskPageReqVO pageVO) { | ||||
|         PageResult<HistoricTaskInstance> pageResult = taskService.getTaskPage(getLoginUserId(), pageVO); | ||||
|         if (CollUtil.isEmpty(pageResult.getList())) { | ||||
|             return success(PageResult.empty()); | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| package cn.iocoder.yudao.module.bpm.dal.dataobject.oa; | ||||
|  | ||||
| import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||||
| import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatustEnum; | ||||
| import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; | ||||
| import com.baomidou.mybatisplus.annotation.TableId; | ||||
| import com.baomidou.mybatisplus.annotation.TableName; | ||||
| import lombok.*; | ||||
| @ -57,7 +57,7 @@ public class BpmOALeaveDO extends BaseDO { | ||||
|     /** | ||||
|      * 审批结果 | ||||
|      * | ||||
|      * 枚举 {@link BpmTaskStatustEnum} | ||||
|      * 枚举 {@link BpmTaskStatusEnum} | ||||
|      * 考虑到简单,所以直接复用了 BpmProcessInstanceStatusEnum 枚举,也可以自己定义一个枚举哈 | ||||
|      */ | ||||
|     private Integer status; | ||||
|  | ||||
| @ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; | ||||
| import cn.hutool.core.lang.Assert; | ||||
| import cn.hutool.core.util.StrUtil; | ||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||
| import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; | ||||
| import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum; | ||||
| import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils; | ||||
| import cn.iocoder.yudao.module.system.api.user.AdminUserApi; | ||||
| @ -77,6 +78,7 @@ public class BpmTaskCandidateInvoker { | ||||
|      * @param execution 执行任务 | ||||
|      * @return 用户编号集合 | ||||
|      */ | ||||
|     @DataPermission(enable = false) // 忽略数据权限,避免因为过滤,导致找不到候选人 | ||||
|     public Set<Long> calculateUsers(DelegateExecution execution) { | ||||
|         Integer strategy = BpmnModelUtils.parseCandidateStrategy(execution.getCurrentFlowElement()); | ||||
|         String param = BpmnModelUtils.parseCandidateParam(execution.getCurrentFlowElement()); | ||||
|  | ||||
| @ -9,7 +9,7 @@ import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeaveCreateReqVO; | ||||
| import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.BpmOALeavePageReqVO; | ||||
| import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOALeaveDO; | ||||
| import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOALeaveMapper; | ||||
| import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatustEnum; | ||||
| import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; | ||||
| import jakarta.annotation.Resource; | ||||
| import org.springframework.stereotype.Service; | ||||
| import org.springframework.transaction.annotation.Transactional; | ||||
| @ -48,7 +48,7 @@ public class BpmOALeaveServiceImpl implements BpmOALeaveService { | ||||
|         // 插入 OA 请假单 | ||||
|         long day = LocalDateTimeUtil.between(createReqVO.getStartTime(), createReqVO.getEndTime()).toDays(); | ||||
|         BpmOALeaveDO leave = BeanUtils.toBean(createReqVO, BpmOALeaveDO.class) | ||||
|                 .setUserId(userId).setDay(day).setStatus(BpmTaskStatustEnum.RUNNING.getStatus()); | ||||
|                 .setUserId(userId).setDay(day).setStatus(BpmTaskStatusEnum.RUNNING.getStatus()); | ||||
|         leaveMapper.insert(leave); | ||||
|  | ||||
|         // 发起 BPM 流程 | ||||
|  | ||||
| @ -17,7 +17,7 @@ import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert; | ||||
| import cn.iocoder.yudao.module.bpm.enums.task.BpmCommentTypeEnum; | ||||
| import cn.iocoder.yudao.module.bpm.enums.task.BpmDeleteReasonEnum; | ||||
| import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskSignTypeEnum; | ||||
| import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatustEnum; | ||||
| import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; | ||||
| import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmConstants; | ||||
| import cn.iocoder.yudao.module.bpm.service.definition.BpmModelService; | ||||
| import cn.iocoder.yudao.module.bpm.service.message.BpmMessageService; | ||||
| @ -202,7 +202,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||||
|  | ||||
|         // 情况三:审批普通的任务。大多数情况下,都是这样 | ||||
|         // 3.1 更新 task 状态、原因 | ||||
|         updateTaskStatusAndReason(task.getId(), BpmTaskStatustEnum.APPROVE.getStatus(), reqVO.getReason()); | ||||
|         updateTaskStatusAndReason(task.getId(), BpmTaskStatusEnum.APPROVE.getStatus(), reqVO.getReason()); | ||||
|         // 3.2 添加评论 | ||||
|         taskService.addComment(task.getId(), task.getProcessInstanceId(), BpmCommentTypeEnum.APPROVE.getType(), | ||||
|                 BpmCommentTypeEnum.APPROVE.formatComment(reqVO.getReason())); | ||||
| @ -230,14 +230,14 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||||
|      */ | ||||
|     private void approveAfterSignTask(Task task, BpmTaskApproveReqVO reqVO) { | ||||
|         // 更新父 task 状态 + 原因 | ||||
|         updateTaskStatusAndReason(task.getId(), BpmTaskStatustEnum.APPROVING.getStatus(), reqVO.getReason()); | ||||
|         updateTaskStatusAndReason(task.getId(), BpmTaskStatusEnum.APPROVING.getStatus(), reqVO.getReason()); | ||||
|  | ||||
|         // 2. 激活子任务 | ||||
|         List<Task> childrenTaskList = getTaskListByParentTaskId(task.getId()); | ||||
|         for (Task childrenTask : childrenTaskList) { | ||||
|             taskService.resolveTask(childrenTask.getId()); | ||||
|             // 更新子 task 状态 | ||||
|             updateTaskStatus(childrenTask.getId(), BpmTaskStatustEnum.RUNNING.getStatus()); | ||||
|             updateTaskStatus(childrenTask.getId(), BpmTaskStatusEnum.RUNNING.getStatus()); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @ -261,7 +261,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||||
|         // 1.2 只处理加签的父任务 | ||||
|         Task parentTask = validateTaskExist(parentTaskId); | ||||
|         String scopeType = parentTask.getScopeType(); | ||||
|         if (BpmTaskSignTypeEnum.of(scopeType) == null){ | ||||
|         if (BpmTaskSignTypeEnum.of(scopeType) == null) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
| @ -275,17 +275,17 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||||
|             // 3.1.1 owner 重新赋值给父任务的 assignee,这样它就可以被审批 | ||||
|             taskService.resolveTask(parentTaskId); | ||||
|             // 3.1.2 更新流程任务 status | ||||
|             updateTaskStatus(parentTaskId, BpmTaskStatustEnum.RUNNING.getStatus()); | ||||
|             updateTaskStatus(parentTaskId, BpmTaskStatusEnum.RUNNING.getStatus()); | ||||
|         // 3.2 情况二:处理向【向后】加签 | ||||
|         } else if (BpmTaskSignTypeEnum.AFTER.getType().equals(scopeType)) { | ||||
|             // 只有 parentTask 处于 APPROVING 的情况下,才可以继续 complete 完成 | ||||
|             // 否则,一个未审批的 parentTask 任务,在加签出来的任务都被减签的情况下,就直接完成审批,这样会存在问题 | ||||
|             Integer status = (Integer) parentTask.getTaskLocalVariables().get(BpmConstants.TASK_VARIABLE_STATUS); | ||||
|             if (ObjectUtil.notEqual(status, BpmTaskStatustEnum.APPROVING.getStatus())) { | ||||
|             if (ObjectUtil.notEqual(status, BpmTaskStatusEnum.APPROVING.getStatus())) { | ||||
|                 return; | ||||
|             } | ||||
|             // 3.2.2 完成自己(因为它已经没有子任务,所以也可以完成) | ||||
|             updateTaskStatus(parentTaskId, BpmTaskStatustEnum.APPROVE.getStatus()); | ||||
|             updateTaskStatus(parentTaskId, BpmTaskStatusEnum.APPROVE.getStatus()); | ||||
|             taskService.complete(parentTaskId); | ||||
|         } | ||||
|  | ||||
| @ -311,7 +311,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||||
|         // 底层调用 TaskHelper.changeTaskAssignee(task, task.getOwner()):将 owner 设置为 assignee | ||||
|         taskService.resolveTask(task.getId()); | ||||
|         // 2.2 更新 task 状态 + 原因 | ||||
|         updateTaskStatusAndReason(task.getId(), BpmTaskStatustEnum.RUNNING.getStatus(), reqVO.getReason()); | ||||
|         updateTaskStatusAndReason(task.getId(), BpmTaskStatusEnum.RUNNING.getStatus(), reqVO.getReason()); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @ -326,7 +326,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||||
|         } | ||||
|  | ||||
|         // 2.1 更新流程实例为不通过 | ||||
|         updateTaskStatusAndReason(task.getId(), BpmTaskStatustEnum.REJECT.getStatus(), reqVO.getReason()); | ||||
|         updateTaskStatusAndReason(task.getId(), BpmTaskStatusEnum.REJECT.getStatus(), reqVO.getReason()); | ||||
|         // 2.2 添加评论 | ||||
|         taskService.addComment(task.getId(), task.getProcessInstanceId(), BpmCommentTypeEnum.REJECT.getType(), | ||||
|                 BpmCommentTypeEnum.REJECT.formatComment(reqVO.getReason())); | ||||
| @ -378,7 +378,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||||
|             log.error("[updateTaskStatusWhenCreated][taskId({}) 已经有状态({})]", task.getId(), status); | ||||
|             return; | ||||
|         } | ||||
|         updateTaskStatus(task.getId(), BpmTaskStatustEnum.RUNNING.getStatus()); | ||||
|         updateTaskStatus(task.getId(), BpmTaskStatusEnum.RUNNING.getStatus()); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @ -392,11 +392,11 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||||
|  | ||||
|         // 2. 更新 task 状态 + 原因 | ||||
|         Integer status = (Integer) task.getTaskLocalVariables().get(BpmConstants.TASK_VARIABLE_STATUS); | ||||
|         if (BpmTaskStatustEnum.isEndStatus(status)) { | ||||
|         if (BpmTaskStatusEnum.isEndStatus(status)) { | ||||
|             log.error("[updateTaskStatusWhenCanceled][taskId({}) 处于结果({}),无需进行更新]", taskId, status); | ||||
|             return; | ||||
|         } | ||||
|         updateTaskStatusAndReason(taskId, BpmTaskStatustEnum.CANCEL.getStatus(), BpmDeleteReasonEnum.CANCEL_BY_SYSTEM.getReason()); | ||||
|         updateTaskStatusAndReason(taskId, BpmTaskStatusEnum.CANCEL.getStatus(), BpmDeleteReasonEnum.CANCEL_BY_SYSTEM.getReason()); | ||||
|         // 补充说明:由于 Task 被删除成 HistoricTask 后,无法通过 taskService.addComment 添加理由,所以无法存储具体的取消理由 | ||||
|     } | ||||
|  | ||||
| @ -525,7 +525,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||||
|             taskService.addComment(task.getId(), currentTask.getProcessInstanceId(), BpmCommentTypeEnum.RETURN.getType(), | ||||
|                     BpmCommentTypeEnum.RETURN.formatComment(reqVO.getReason())); | ||||
|             // 2.2 更新 task 状态 + 原因 | ||||
|             updateTaskStatusAndReason(task.getId(), BpmTaskStatustEnum.RETURN.getStatus(), reqVO.getReason()); | ||||
|             updateTaskStatusAndReason(task.getId(), BpmTaskStatusEnum.RETURN.getStatus(), reqVO.getReason()); | ||||
|         }); | ||||
|  | ||||
|         // 3. 执行驳回 | ||||
| @ -562,7 +562,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||||
|         taskService.delegateTask(taskId, reqVO.getDelegateUserId().toString()); | ||||
|         // 3.3 更新 task 状态。 | ||||
|         // 为什么不更新原因?因为原因目前主要给审批通过、不通过时使用 | ||||
|         updateTaskStatus(taskId, BpmTaskStatustEnum.DELEGATE.getStatus()); | ||||
|         updateTaskStatus(taskId, BpmTaskStatusEnum.DELEGATE.getStatus()); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @ -616,7 +616,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||||
|         taskService.saveTask(taskEntity); | ||||
|         // 2.6 更新 task 状态为 WAIT,只有在向前加签的时候 | ||||
|         if (reqVO.getType().equals(BpmTaskSignTypeEnum.BEFORE.getType())) { | ||||
|             updateTaskStatus(taskEntity.getId(), BpmTaskStatustEnum.WAIT.getStatus()); | ||||
|             updateTaskStatus(taskEntity.getId(), BpmTaskStatusEnum.WAIT.getStatus()); | ||||
|         } | ||||
|  | ||||
|         // 3. 创建加签任务 | ||||
| @ -703,7 +703,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||||
|  | ||||
|         // 3. 向后前签,设置子任务的状态为 WAIT,因为需要等父任务审批完 | ||||
|         if (BpmTaskSignTypeEnum.AFTER.getType().equals(parentTask.getScopeType())) { | ||||
|             updateTaskStatus(task.getId(), BpmTaskStatustEnum.WAIT.getStatus()); | ||||
|             updateTaskStatus(task.getId(), BpmTaskStatusEnum.WAIT.getStatus()); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @ -727,7 +727,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||||
|         childTaskList.add(task); | ||||
|         // 2.2 更新子任务为已取消 | ||||
|         String cancelReason = StrUtil.format("任务被取消,原因:由于[{}]操作[减签],", cancelUser.getNickname()); | ||||
|         childTaskList.forEach(childTask -> updateTaskStatusAndReason(childTask.getId(), BpmTaskStatustEnum.CANCEL.getStatus(), cancelReason)); | ||||
|         childTaskList.forEach(childTask -> updateTaskStatusAndReason(childTask.getId(), BpmTaskStatusEnum.CANCEL.getStatus(), cancelReason)); | ||||
|         // 2.2 删除任务和所有子任务 | ||||
|         taskService.deleteTasks(convertList(childTaskList, Task::getId)); | ||||
|  | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| package cn.iocoder.yudao.module.crm.util; | ||||
|  | ||||
| import cn.hutool.core.lang.Assert; | ||||
| import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatustEnum; | ||||
| import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum; | ||||
| import cn.iocoder.yudao.module.crm.enums.common.CrmAuditStatusEnum; | ||||
|  | ||||
| /** | ||||
| @ -17,9 +17,9 @@ public class CrmAuditStatusUtils { | ||||
|      * @param bpmResult BPM 审批结果 | ||||
|      */ | ||||
|     public static Integer convertBpmResultToAuditStatus(Integer bpmResult) { | ||||
|         Integer auditStatus = BpmTaskStatustEnum.APPROVE.getStatus().equals(bpmResult) ? CrmAuditStatusEnum.APPROVE.getStatus() | ||||
|                 : BpmTaskStatustEnum.REJECT.getStatus().equals(bpmResult) ? CrmAuditStatusEnum.REJECT.getStatus() | ||||
|                 : BpmTaskStatustEnum.CANCEL.getStatus().equals(bpmResult) ? BpmTaskStatustEnum.CANCEL.getStatus() : null; | ||||
|         Integer auditStatus = BpmTaskStatusEnum.APPROVE.getStatus().equals(bpmResult) ? CrmAuditStatusEnum.APPROVE.getStatus() | ||||
|                 : BpmTaskStatusEnum.REJECT.getStatus().equals(bpmResult) ? CrmAuditStatusEnum.REJECT.getStatus() | ||||
|                 : BpmTaskStatusEnum.CANCEL.getStatus().equals(bpmResult) ? BpmTaskStatusEnum.CANCEL.getStatus() : null; | ||||
|         Assert.notNull(auditStatus, "BPM 审批结果({}) 转换失败", bpmResult); | ||||
|         return auditStatus; | ||||
|     } | ||||
|  | ||||
| @ -99,7 +99,7 @@ public class AuthController { | ||||
|         // 1.1 获得用户信息 | ||||
|         AdminUserDO user = userService.getUser(getLoginUserId()); | ||||
|         if (user == null) { | ||||
|             return null; | ||||
|             return success(null); | ||||
|         } | ||||
|  | ||||
|         // 1.2 获得角色列表 | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV