Commit 480ed8db802fac0693a301c0f79d7078b05114a8

Authored by 芋道源码
Committed by Gitee
2 parents 25c86c05 68b7a9a9

!1197 BPM:更多设置-提交人权限

Merge pull request !1197 from Lesan/feature/bpm-提交人权限
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java
... ... @@ -38,6 +38,7 @@ public interface ErrorCodeConstants {
38 38 ErrorCode PROCESS_INSTANCE_START_USER_SELECT_ASSIGNEES_NOT_CONFIG = new ErrorCode(1_009_004_003, "任务({})的候选人未配置");
39 39 ErrorCode PROCESS_INSTANCE_START_USER_SELECT_ASSIGNEES_NOT_EXISTS = new ErrorCode(1_009_004_004, "任务({})的候选人({})不存在");
40 40 ErrorCode PROCESS_INSTANCE_START_USER_CAN_START = new ErrorCode(1_009_004_005, "发起流程失败,你没有权限发起该流程");
  41 + ErrorCode PROCESS_INSTANCE_CANCEL_FAIL_NOT_ALLOW = new ErrorCode(1_009_004_005, "流程取消失败,该流程不允许取消");
41 42  
42 43 // ========== 流程任务 1-009-005-000 ==========
43 44 ErrorCode TASK_OPERATE_FAIL_ASSIGN_NOT_SELF = new ErrorCode(1_009_005_001, "操作失败,原因:该任务的审批人不是你");
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/BpmModelMetaInfoVO.java
... ... @@ -62,4 +62,7 @@ public class BpmModelMetaInfoVO {
62 62 @Schema(description = "排序", example = "1")
63 63 private Long sort; // 创建时,后端自动生成
64 64  
  65 + @Schema(description = "允许撤销审批中的申请")
  66 + private Boolean allowCancelRunningProcess;
  67 +
65 68 }
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmProcessDefinitionInfoDO.java
... ... @@ -150,4 +150,10 @@ public class BpmProcessDefinitionInfoDO extends BaseDO {
150 150 @TableField(typeHandler = StringListTypeHandler.class) // 为了可以使用 find_in_set 进行过滤
151 151 private List<Long> managerUserIds;
152 152  
  153 + /**
  154 + * 允许撤销审批中的申请
  155 + * TODO @芋艿 需要同步修改数据库字段
  156 + */
  157 + private Boolean allowCancelRunningProcess;
  158 +
153 159 }
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java
... ... @@ -642,6 +642,13 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
642 642 if (!Objects.equals(instance.getStartUserId(), String.valueOf(userId))) {
643 643 throw exception(PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF);
644 644 }
  645 + // 1.3 校验允许撤销审批中的申请
  646 + BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService.getProcessDefinitionInfo(instance.getProcessDefinitionId());
  647 + Assert.notNull(processDefinitionInfo, "流程定义({})不存在", processDefinitionInfo);
  648 + if (processDefinitionInfo.getAllowCancelRunningProcess() != null // 防止未配置 AllowCancelRunningProcess , 默认为可取消
  649 + && !processDefinitionInfo.getAllowCancelRunningProcess()) {
  650 + throw exception(PROCESS_INSTANCE_CANCEL_FAIL_NOT_ALLOW);
  651 + }
645 652  
646 653 // 2. 取消流程
647 654 updateProcessInstanceCancel(cancelReqVO.getId(),
... ...