fix: 复杂流程父流程被流转BUG
This commit is contained in:
+14
-2
@@ -26,6 +26,7 @@ import com.jero.modules.activiti.service.ProcessNodeService;
|
||||
import com.jero.modules.activiti.util.SpringContextUtil;
|
||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.delegate.event.ActivitiEvent;
|
||||
import org.activiti.engine.delegate.event.ActivitiEventListener;
|
||||
@@ -39,6 +40,7 @@ import org.springframework.stereotype.Component;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import static com.jero.modules.activiti.common.ActivitiCommon.UNALLOCATED_QUANTITY;
|
||||
import static com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_DISTRIBUTE;
|
||||
import static com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_REDISTRIBUTE;
|
||||
|
||||
@@ -426,13 +428,23 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
||||
.isNotNull(ProcessApprovalRecord::getParentTaskId)
|
||||
.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue()));
|
||||
if (childCount == 0){
|
||||
// 子流程都结束并且没有未分发数据才完成父任务
|
||||
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
|
||||
taskService.complete(parentTaskId);
|
||||
RuntimeService runtimeService = SpringContextUtil.getBean(RuntimeService.class);
|
||||
int unallocatedQuantity = (int) runtimeService.getVariable(mainInstanceId, UNALLOCATED_QUANTITY);
|
||||
if (unallocatedQuantity == 0){
|
||||
taskService.complete(parentTaskId);
|
||||
}
|
||||
}
|
||||
}else {
|
||||
if (i == 0) {
|
||||
// 子流程都结束并且没有未分发数据才完成父任务
|
||||
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
|
||||
taskService.complete(parentTaskId);
|
||||
RuntimeService runtimeService = SpringContextUtil.getBean(RuntimeService.class);
|
||||
int unallocatedQuantity = (int) runtimeService.getVariable(mainInstanceId, UNALLOCATED_QUANTITY);
|
||||
if (unallocatedQuantity == 0){
|
||||
taskService.complete(parentTaskId);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user