Commit 56ea9d2381e6aa837ce54bc841cc018a14b562cc

Authored by YunaiV
1 parent 64ea9906

【代码优化】BPM:修复停用状态下的流程删除报错问题

yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java
... ... @@ -304,7 +304,7 @@ public class BpmModelServiceImpl implements BpmModelService {
304 304 }
305 305  
306 306 // 2. 更新状态
307   - processDefinitionService.updateProcessDefinitionState(definition.getId(), state,definition.isSuspended());
  307 + processDefinitionService.updateProcessDefinitionState(definition.getId(), state);
308 308 }
309 309  
310 310 @Override
... ... @@ -403,7 +403,7 @@ public class BpmModelServiceImpl implements BpmModelService {
403 403 return;
404 404 }
405 405 processDefinitionService.updateProcessDefinitionState(oldDefinition.getId(),
406   - SuspensionState.SUSPENDED.getStateCode(),oldDefinition.isSuspended());
  406 + SuspensionState.SUSPENDED.getStateCode());
407 407 }
408 408  
409 409 private Model getModelByKey(String key) {
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionService.java
... ... @@ -60,9 +60,8 @@ public interface BpmProcessDefinitionService {
60 60 *
61 61 * @param id 流程定义的编号
62 62 * @param state 状态
63   - * @param isSuspended 是否处于激活或挂起状态
64 63 */
65   - void updateProcessDefinitionState(String id, Integer state, boolean isSuspended);
  64 + void updateProcessDefinitionState(String id, Integer state);
66 65  
67 66 /**
68 67 * 更新模型编号
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionServiceImpl.java
... ... @@ -28,8 +28,7 @@ import java.util.*;
28 28  
29 29 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
30 30 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.addIfNotNull;
31   -import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.PROCESS_DEFINITION_KEY_NOT_MATCH;
32   -import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.PROCESS_DEFINITION_NAME_NOT_MATCH;
  31 +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
33 32 import static java.util.Collections.emptyList;
34 33  
35 34 /**
... ... @@ -155,10 +154,15 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ
155 154 }
156 155  
157 156 @Override
158   - public void updateProcessDefinitionState(String id, Integer state,boolean isSuspended) {
  157 + public void updateProcessDefinitionState(String id, Integer state) {
  158 + ProcessDefinition processDefinition = repositoryService.getProcessDefinition(id);
  159 + if (processDefinition == null) {
  160 + throw exception(PROCESS_DEFINITION_NOT_EXISTS);
  161 + }
  162 +
159 163 // 激活
160 164 if (Objects.equals(SuspensionState.ACTIVE.getStateCode(), state)) {
161   - if (isSuspended) {
  165 + if (processDefinition.isSuspended()) {
162 166 repositoryService.activateProcessDefinitionById(id, false, null);
163 167 }
164 168 return;
... ... @@ -167,7 +171,7 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ
167 171 if (Objects.equals(SuspensionState.SUSPENDED.getStateCode(), state)) {
168 172 // suspendProcessInstances = false,进行中的任务,不进行挂起。
169 173 // 原因:只要新的流程不允许发起即可,老流程继续可以执行。
170   - if (!isSuspended) {
  174 + if (!processDefinition.isSuspended()) {
171 175 repositoryService.suspendProcessDefinitionById(id, false, null);
172 176 }
173 177 return;
... ...