Commit 480ed8db802fac0693a301c0f79d7078b05114a8
Committed by
Gitee
!1197 BPM:更多设置-提交人权限
Merge pull request !1197 from Lesan/feature/bpm-提交人权限
Showing
4 changed files
with
17 additions
and
0 deletions
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,6 +38,7 @@ public interface ErrorCodeConstants { | ||
| 38 | ErrorCode PROCESS_INSTANCE_START_USER_SELECT_ASSIGNEES_NOT_CONFIG = new ErrorCode(1_009_004_003, "任务({})的候选人未配置"); | 38 | ErrorCode PROCESS_INSTANCE_START_USER_SELECT_ASSIGNEES_NOT_CONFIG = new ErrorCode(1_009_004_003, "任务({})的候选人未配置"); |
| 39 | ErrorCode PROCESS_INSTANCE_START_USER_SELECT_ASSIGNEES_NOT_EXISTS = new ErrorCode(1_009_004_004, "任务({})的候选人({})不存在"); | 39 | ErrorCode PROCESS_INSTANCE_START_USER_SELECT_ASSIGNEES_NOT_EXISTS = new ErrorCode(1_009_004_004, "任务({})的候选人({})不存在"); |
| 40 | ErrorCode PROCESS_INSTANCE_START_USER_CAN_START = new ErrorCode(1_009_004_005, "发起流程失败,你没有权限发起该流程"); | 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 | // ========== 流程任务 1-009-005-000 ========== | 43 | // ========== 流程任务 1-009-005-000 ========== |
| 43 | ErrorCode TASK_OPERATE_FAIL_ASSIGN_NOT_SELF = new ErrorCode(1_009_005_001, "操作失败,原因:该任务的审批人不是你"); | 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,4 +62,7 @@ public class BpmModelMetaInfoVO { | ||
| 62 | @Schema(description = "排序", example = "1") | 62 | @Schema(description = "排序", example = "1") |
| 63 | private Long sort; // 创建时,后端自动生成 | 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,4 +150,10 @@ public class BpmProcessDefinitionInfoDO extends BaseDO { | ||
| 150 | @TableField(typeHandler = StringListTypeHandler.class) // 为了可以使用 find_in_set 进行过滤 | 150 | @TableField(typeHandler = StringListTypeHandler.class) // 为了可以使用 find_in_set 进行过滤 |
| 151 | private List<Long> managerUserIds; | 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,6 +642,13 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService | ||
| 642 | if (!Objects.equals(instance.getStartUserId(), String.valueOf(userId))) { | 642 | if (!Objects.equals(instance.getStartUserId(), String.valueOf(userId))) { |
| 643 | throw exception(PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF); | 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 | // 2. 取消流程 | 653 | // 2. 取消流程 |
| 647 | updateProcessInstanceCancel(cancelReqVO.getId(), | 654 | updateProcessInstanceCancel(cancelReqVO.getId(), |