update - 调整转交任务时,给转交的人发对应待办

This commit is contained in:
wangli 2023-12-07 21:20:00 +08:00
parent d6be63d5b5
commit 14b5e5d755
3 changed files with 17 additions and 1 deletions

View File

@ -705,6 +705,18 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService {
taskService.addComment(task.getId(), task.getProcessInstanceId(), COMMENT_TYPE_OPERATION_TRANSFER, taskService.addComment(task.getId(), task.getProcessInstanceId(), COMMENT_TYPE_OPERATION_TRANSFER,
"转交给 " + dto.getTargetAssigner().getAssignerName()); "转交给 " + dto.getTargetAssigner().getAssignerName());
List<BpmnTaskDelegateAssigner> originAssingeeList = runtimeService.getVariable(task.getProcessInstanceId(),
INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + task.getTaskDefinitionKey(), List.class);
for (BpmnTaskDelegateAssigner assigner : originAssingeeList) {
if (Objects.equals(assigner.buildAssigneeId(), dto.getOriginAssigner().buildAssigneeId())) {
originAssingeeList.remove(assigner);
break;
}
}
originAssingeeList.add(dto.getTargetAssigner());
runtimeService.setVariable(task.getProcessInstanceId(),
INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + task.getTaskDefinitionKey(), originAssingeeList);
this.createSubTask((TaskEntity) task, task.getId(), dto.getTargetAssigner()); this.createSubTask((TaskEntity) task, task.getId(), dto.getTargetAssigner());
saveAttachment(dto.getAttachmentList(), task.getProcessInstanceId(), task.getId()); saveAttachment(dto.getAttachmentList(), task.getProcessInstanceId(), task.getId());

View File

@ -27,6 +27,7 @@ import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT; import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT;
import static cn.axzo.workflow.common.constant.BpmnConstants.TASK_ASSIGNEE_SKIP_FLAT;
/** /**
* UserTask 节点被设置审批人时,推送待办消息 * UserTask 节点被设置审批人时,推送待办消息
@ -50,6 +51,9 @@ public class PushPendingTaskEventListener implements BpmnTaskEventListener, Orde
@Override @Override
public void onAssigned(DelegateTask delegateTask) { public void onAssigned(DelegateTask delegateTask) {
if (Objects.equals(TASK_ASSIGNEE_SKIP_FLAT, delegateTask.getAssignee())) {
return;
}
pushPending(delegateTask); pushPending(delegateTask);
} }

View File

@ -125,7 +125,7 @@ public class RocketMqBpmnTaskEventListener implements BpmnTaskEventListener, Ord
.setStartTime(delegateTask.getCreateTime()) .setStartTime(delegateTask.getCreateTime())
.setTenantId(delegateTask.getTenantId()); .setTenantId(delegateTask.getTenantId());
BpmnMetaParserHelper.getNoticeConfig(mainProcess).ifPresent(dto::setNoticeConf); BpmnMetaParserHelper.getNoticeConfig(mainProcess).ifPresent(dto::setNoticeConf);
BpmnProcessInstanceResultEnum resultEnum = runtimeService.getVariable(delegateTask.getExecutionId(), BpmnProcessInstanceResultEnum resultEnum = runtimeService.getVariable(delegateTask.getProcessInstanceId(),
TASK_COMPLETE_OPERATION_TYPE + delegateTask.getId(), BpmnProcessInstanceResultEnum.class); TASK_COMPLETE_OPERATION_TYPE + delegateTask.getId(), BpmnProcessInstanceResultEnum.class);
dto.setTaskResult(Objects.nonNull(resultEnum) ? resultEnum : APPROVED); dto.setTaskResult(Objects.nonNull(resultEnum) ? resultEnum : APPROVED);
return dto; return dto;