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.activiti.util.SpringContextUtil;
|
||||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.activiti.engine.RuntimeService;
|
||||||
import org.activiti.engine.TaskService;
|
import org.activiti.engine.TaskService;
|
||||||
import org.activiti.engine.delegate.event.ActivitiEvent;
|
import org.activiti.engine.delegate.event.ActivitiEvent;
|
||||||
import org.activiti.engine.delegate.event.ActivitiEventListener;
|
import org.activiti.engine.delegate.event.ActivitiEventListener;
|
||||||
@@ -39,6 +40,7 @@ import org.springframework.stereotype.Component;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
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_DISTRIBUTE;
|
||||||
import static com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_REDISTRIBUTE;
|
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)
|
.isNotNull(ProcessApprovalRecord::getParentTaskId)
|
||||||
.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue()));
|
.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue()));
|
||||||
if (childCount == 0){
|
if (childCount == 0){
|
||||||
|
// 子流程都结束并且没有未分发数据才完成父任务
|
||||||
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
|
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 {
|
}else {
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
|
// 子流程都结束并且没有未分发数据才完成父任务
|
||||||
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
|
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 {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user