diff --git a/src/main/java/com/budwk/app/flow/engine/handlers/impl/CountersignHandler.java b/src/main/java/com/budwk/app/flow/engine/handlers/impl/CountersignHandler.java index de6c981..8da9555 100644 --- a/src/main/java/com/budwk/app/flow/engine/handlers/impl/CountersignHandler.java +++ b/src/main/java/com/budwk/app/flow/engine/handlers/impl/CountersignHandler.java @@ -85,6 +85,13 @@ public class CountersignHandler implements IHandler { if (!isMerged && CountersignTypeEnum.PARALLEL.toString().equalsIgnoreCase(countersignType)) { // 是否所有会签任务已完成 boolean finished = execution.getEngine().processTaskService().getDoingTaskList(execution.getProcessInstanceId(), new String[]{taskModel.getName()}).size() == 0; + + if(StrUtil.isNotBlank(countersignCompletionCondition) && finished) { + execution.getEngine().processTaskService().rejectTask(execution.getProcessModel(), execution.getProcessTask()); + } else { + isMerged = finished; + } + if (!isMerged) { // 未通过,更新已完成实例数量 Dict addVariable = Dict.create(); @@ -92,9 +99,6 @@ public class CountersignHandler implements IHandler { addVariable.put(prefix + FlowConst.NR_OF_COMPLETED_AGREE_INSTANCES, execution.getArgs().get(prefix + FlowConst.NR_OF_COMPLETED_AGREE_INSTANCES)); execution.getEngine().processInstanceService().addVariable(execution.getProcessInstanceId(), addVariable); } - if(finished) { - execution.getEngine().processTaskService().rejectTask(execution.getProcessModel(), execution.getProcessTask()); - } } if (isMerged) { // 获取所有会签参数键值