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.FinishFlagEnum;
|
||||||
import com.jero.modules.activiti.enums.ProcessStatusEnum;
|
import com.jero.modules.activiti.enums.ProcessStatusEnum;
|
||||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
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.ProcessAllService;
|
||||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||||
import com.jero.modules.activiti.service.ProcessNodeService;
|
import com.jero.modules.activiti.service.ProcessNodeService;
|
||||||
@@ -412,14 +413,21 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
|||||||
int i = processAllService.countByParentTaskId(parentTaskId);
|
int i = processAllService.countByParentTaskId(parentTaskId);
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
|
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
|
||||||
Object variable = taskService.getVariable(parentTaskId, UNALLOCATED_QUANTITY);
|
if (StandardInterpretCommon.KEY_1.equals(processDefinitionId)){
|
||||||
if (variable != null) {
|
boolean b = isChildrenNodeAllComplete(processInstanceId, parentTaskId);
|
||||||
int unallocatedQuantity = (int) variable;
|
if (b){
|
||||||
if (unallocatedQuantity == 0) {
|
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);
|
taskService.complete(parentTaskId);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
taskService.complete(parentTaskId);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -459,4 +467,30 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
|||||||
.eq(ProcessNode::getSort, 1));
|
.eq(ProcessNode::getSort, 1));
|
||||||
return record.getNodeId().equals(node.getXmlNodeId()) && record.getTaskName().equals(node.getNodeName());
|
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