update - 在加签时,将被加签人加入到原节点的审批人快照中, 以便能在 onAssignee 事件中正确的发出待办消息
This commit is contained in:
parent
7186ed1f64
commit
ec4f2870df
@ -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<Task> 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<BpmnTaskDelegateAssigner> 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)));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user