fix(87436):标准解读流程(标准主解读人重新分发) --审核没全提交,汇总节点的待办就出来了
This commit is contained in:
+40
-6
@@ -19,6 +19,7 @@ import com.jero.modules.activiti.enums.CommitFlagEnum;
|
||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||
import com.jero.modules.activiti.enums.ProcessStatusEnum;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.standardinterpret.common.StandardInterpretCommon;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import com.jero.modules.activiti.service.ProcessNodeService;
|
||||
@@ -412,14 +413,21 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
||||
int i = processAllService.countByParentTaskId(parentTaskId);
|
||||
if (i == 0) {
|
||||
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
|
||||
Object variable = taskService.getVariable(parentTaskId, UNALLOCATED_QUANTITY);
|
||||
if (variable != null) {
|
||||
int unallocatedQuantity = (int) variable;
|
||||
if (unallocatedQuantity == 0) {
|
||||
if (StandardInterpretCommon.KEY_1.equals(processDefinitionId)){
|
||||
boolean b = isChildrenNodeAllComplete(processInstanceId, parentTaskId);
|
||||
if (b){
|
||||
taskService.complete(parentTaskId);
|
||||
}
|
||||
}else {
|
||||
Object variable = taskService.getVariable(parentTaskId, UNALLOCATED_QUANTITY);
|
||||
if (variable != null) {
|
||||
int unallocatedQuantity = (int) variable;
|
||||
if (unallocatedQuantity == 0) {
|
||||
taskService.complete(parentTaskId);
|
||||
}
|
||||
} else {
|
||||
taskService.complete(parentTaskId);
|
||||
}
|
||||
} else {
|
||||
taskService.complete(parentTaskId);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -459,4 +467,30 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
||||
.eq(ProcessNode::getSort, 1));
|
||||
return record.getNodeId().equals(node.getXmlNodeId()) && record.getTaskName().equals(node.getNodeName());
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断所有子流程是否都完成
|
||||
* @param processInstanceId
|
||||
* @param parentTaskId
|
||||
* @return true:都完成 false:未都完成
|
||||
*/
|
||||
private boolean isChildrenNodeAllComplete(String processInstanceId, String parentTaskId){
|
||||
// 判断当前parentTaskId是否是第一个自动处理任务节点
|
||||
ProcessApprovalRecordService processApprovalRecordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class);
|
||||
int count = processApprovalRecordService.count(
|
||||
new LambdaQueryWrapper<ProcessApprovalRecord>()
|
||||
.eq(ProcessApprovalRecord::getProcessInstanceId, processInstanceId)
|
||||
.eq(ProcessApprovalRecord::getNodeId, StandardInterpretCommon.INTERPRETING_PEOPLE_FILLOUT)
|
||||
.eq(ProcessApprovalRecord::getParentTaskId, parentTaskId));
|
||||
if (count > 0){
|
||||
// 判断子流程是否还有未完成的节点
|
||||
int childCount = processApprovalRecordService.count(
|
||||
new LambdaQueryWrapper<ProcessApprovalRecord>()
|
||||
.eq(ProcessApprovalRecord::getProcessInstanceId, processInstanceId)
|
||||
.isNotNull(ProcessApprovalRecord::getParentTaskId)
|
||||
.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue()));
|
||||
return childCount == 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user