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 | 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
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(), | ... | ... |