From ec4f2870df1a902729b9b22e82ffea3c7c4161a7 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Sat, 9 Dec 2023 14:48:05 +0800 Subject: [PATCH] =?UTF-8?q?update=20-=20=E5=9C=A8=E5=8A=A0=E7=AD=BE?= =?UTF-8?q?=E6=97=B6,=E5=B0=86=E8=A2=AB=E5=8A=A0=E7=AD=BE=E4=BA=BA?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E5=88=B0=E5=8E=9F=E8=8A=82=E7=82=B9=E7=9A=84?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E4=BA=BA=E5=BF=AB=E7=85=A7=E4=B8=AD,=20?= =?UTF-8?q?=E4=BB=A5=E4=BE=BF=E8=83=BD=E5=9C=A8=20onAssignee=20=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E4=B8=AD=E6=AD=A3=E7=A1=AE=E7=9A=84=E5=8F=91=E5=87=BA?= =?UTF-8?q?=E5=BE=85=E5=8A=9E=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BpmnProcessTaskServiceImpl.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java index 03ee5c065..d25a4d601 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java @@ -326,20 +326,17 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { saveAttachment(dto.getAttachmentList(), instance.getId(), task.getId()); // 完成任务,审批通过 - if (StringUtil.isNotEmpty(task.getExecutionId())) { - taskService.complete(task.getId(), runtimeService.getVariables(task.getExecutionId())); - } else { - //加签子任务 没有executionId - taskService.complete(task.getId()); - } + taskService.complete(task.getId(), runtimeService.getVariables(task.getExecutionId())); + // } else { + // //加签子任务 没有executionId + // taskService.complete(task.getId()); + // } //add by zuoqinbo 处理加签任务,分为向前加签和向后加签 String parentTaskId = task.getParentTaskId(); if (StringUtils.hasLength(parentTaskId)) { - String tableName = managementService.getTableName(TaskEntity.class); - String sql = "select count(1) from " + tableName + " where PARENT_TASK_ID_=#{parentTaskId}"; - long subTaskCount = - taskService.createNativeTaskQuery().sql(sql).parameter("parentTaskId", parentTaskId).count(); + List subTasks = taskService.getSubTasks(parentTaskId); + long subTaskCount = subTasks.size(); TaskEntity taskEntity = (TaskEntity) taskService.createTaskQuery().taskId(parentTaskId).singleResult(); //当前任务是加签任务,parentTask下没有其他子任务 subTaskCount == 0 //目前子任务是依次顺序审批, taskService.complete(task.getId()) 已经把当前任务完成,则subTaskCount == 0 @@ -386,6 +383,11 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { if (!CollectionUtils.isEmpty(targetAssignerList)) { newTargetAssignerList.addAll(targetAssignerList); } + // 这个节点下所有审批人快照 + List taskAssignerListSnapshot = + runtimeService.getVariable(taskEntity.getProcessInstanceId(), + INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + taskEntity.getId(), List.class); + taskAssignerListSnapshot.addAll(newTargetAssignerList); // 向前加签 BpmnTaskDelegateAssigner assigner = (BpmnTaskDelegateAssigner) runtimeService.getVariable(taskEntity.getProcessInstanceId(), INTERNAL_TASK_RELATION_ASSIGNEE_INFO_SNAPSHOT + taskEntity.getId()); if (Objects.equals(BpmnCountersignType.FORWARD_COUNTERSIGN.getType(), countersignDTO.getCountersignType())) { @@ -431,7 +433,7 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { task.setProcessInstanceId(parentTask.getProcessInstanceId()); task.setTaskDefinitionKey(parentTask.getTaskDefinitionKey()); task.setTaskDefinitionId(parentTask.getTaskDefinitionId()); - //task.setExecutionId(parentTask.getExecutionId()); + task.setExecutionId(parentTask.getExecutionId()); task.setPriority(parentTask.getPriority()); task.setCreateTime(new Date()); log.info("流程加签父任务:{},正在创建加签子任务:{},", parentTaskId, JSONUtil.toJsonStr(Lists.newArrayList(task)));