Browse Source

BPM:完善相关的代码注释

YunaiV 11 months ago
parent
commit
3b8dee4963

+ 1 - 1
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmTaskStatustEnum.java → yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmTaskStatusEnum.java

@@ -11,7 +11,7 @@ import lombok.Getter;
  */
 @Getter
 @AllArgsConstructor
-public enum BpmTaskStatustEnum {
+public enum BpmTaskStatusEnum {
 
     RUNNING(1, "审批中"),
     APPROVE(2, "审批通过"),

+ 1 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java

@@ -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());

+ 2 - 2
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java

@@ -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;

+ 2 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/BpmTaskCandidateInvoker.java

@@ -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());

+ 2 - 2
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOALeaveServiceImpl.java

@@ -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 流程

+ 18 - 18
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java

@@ -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));
 

+ 4 - 4
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/util/CrmAuditStatusUtils.java

@@ -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;
     }

+ 1 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java

@@ -99,7 +99,7 @@ public class AuthController {
         // 1.1 获得用户信息
         AdminUserDO user = userService.getUser(getLoginUserId());
         if (user == null) {
-            return null;
+            return success(null);
         }
 
         // 1.2 获得角色列表