From 7c9e9f387e929b0affe466b49a134d2eb387ba1e Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Thu, 12 Sep 2024 19:03:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-2924)=20-=20=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/engine/cmd/CustomApproveTaskCmd.java | 2 +- .../core/engine/cmd/CustomCommentTaskCmd.java | 2 +- .../cmd/CustomCountersignUserTaskCmd.java | 18 ++++++------- .../engine/cmd/CustomRejectionTaskCmd.java | 3 ++- .../entity/type/TaskEntityEventHandle.java | 15 +++++------ .../common/aspectj/ErrorReportAspect.java | 2 +- .../web/bpmn/BpmnProcessTaskController.java | 27 ++++++++++++------- 7 files changed, 39 insertions(+), 30 deletions(-) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomApproveTaskCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomApproveTaskCmd.java index fe3aca1e0..13e26a173 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomApproveTaskCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomApproveTaskCmd.java @@ -139,7 +139,7 @@ public class CustomApproveTaskCmd extends AbstractCommand implements Seria runtimeService.setVariable(task.getProcessInstanceId(), INTERNAL_SPECIFY_NEXT_APPROVER, nextApprover); } - ((TaskEntity) task).setTransientVariable(TASK_COMPLETE_OPERATION_TYPE + taskId, APPROVED.getStatus()); + task.setTransientVariable(TASK_COMPLETE_OPERATION_TYPE + taskId, APPROVED.getStatus()); executeSynchronous(task, taskService, runtimeService); return null; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCommentTaskCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCommentTaskCmd.java index c712829b0..020348eb5 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCommentTaskCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCommentTaskCmd.java @@ -129,7 +129,7 @@ public class CustomCommentTaskCmd extends AbstractCommand implements Seria taskService.saveTask(task); // 设置快照信息 - task.setVariable(INTERNAL_TASK_RELATION_ASSIGNEE_INFO + task.getId(), operator.toJson()); + task.setTransientVariable(INTERNAL_TASK_RELATION_ASSIGNEE_INFO + task.getId(), operator.toJson()); // 完成临时节点 taskService.complete(task.getId()); diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCountersignUserTaskCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCountersignUserTaskCmd.java index 7f190bc6b..577e5af01 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCountersignUserTaskCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomCountersignUserTaskCmd.java @@ -81,20 +81,20 @@ public class CustomCountersignUserTaskCmd extends AbstractCommand implemen @Override public Void execute(CommandContext commandContext) { ProcessEngineConfigurationImpl processEngineConfiguration = - CommandContextUtil.getProcessEngineConfiguration(commandContext); + CommandContextUtil.getProcessEngineConfiguration(commandContext); HistoricTaskInstanceQuery taskQuery = - processEngineConfiguration.getHistoryService().createHistoricTaskInstanceQuery(); + processEngineConfiguration.getHistoryService().createHistoricTaskInstanceQuery(); HistoricTaskInstance historicTaskInstance = taskQuery.taskId(originTaskId).singleResult(); TaskService taskService = processEngineConfiguration.getTaskService(); - Task task = taskService.createTaskQuery().taskId(originTaskId).singleResult(); + TaskEntity task = (TaskEntity) taskService.createTaskQuery().taskId(originTaskId).singleResult(); - validTask(historicTaskInstance, (TaskEntity) task, originTaskAssignee, null); + validTask(historicTaskInstance, task, originTaskAssignee, null); - validTaskAssignerCount(processEngineConfiguration.getRuntimeService(), (TaskEntity) task, targetTaskAssigneeList); + validTaskAssignerCount(processEngineConfiguration.getRuntimeService(), task, targetTaskAssigneeList); List taskDelegateAssigners = - validTaskAssignerDuplicated(commandContext, (TaskEntity) task, targetTaskAssigneeList); + validTaskAssignerDuplicated(commandContext, task, targetTaskAssigneeList); resolveOriginTask(commandContext, extAxHiTaskInstService, taskService, task); @@ -110,7 +110,7 @@ public class CustomCountersignUserTaskCmd extends AbstractCommand implemen break; default: // share_counterSign - shareCountSign(commandContext, (TaskEntity) task, taskDelegateAssigners); + shareCountSign(commandContext, task, taskDelegateAssigners); break; } @@ -127,11 +127,11 @@ public class CustomCountersignUserTaskCmd extends AbstractCommand implemen private void shareCountSign(CommandContext commandContext, TaskEntity taskEntity, List taskDelegateAssigners) { ProcessEngineConfigurationImpl processEngineConfiguration = - CommandContextUtil.getProcessEngineConfiguration(commandContext); + CommandContextUtil.getProcessEngineConfiguration(commandContext); RuntimeService runtimeService = processEngineConfiguration.getRuntimeService(); // 这个节点下所有审批人快照 String activityListSnapshot = - INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + taskEntity.getTaskDefinitionKey(); + INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + taskEntity.getTaskDefinitionKey(); taskDelegateAssigners.addAll(targetTaskAssigneeList); runtimeService.setVariable(taskEntity.getProcessInstanceId(), activityListSnapshot, taskDelegateAssigners); log.info("正在进行加签任务:{},待加签人合并列表:{}", taskEntity.getId(), JSONUtil.toJsonStr(taskDelegateAssigners)); diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomRejectionTaskCmd.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomRejectionTaskCmd.java index 9dc1225a3..7d73db2b6 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomRejectionTaskCmd.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/cmd/CustomRejectionTaskCmd.java @@ -31,6 +31,7 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_END_USER_N import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_PROCESS_DELETE_REASON; import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_PROCESS_TYPE_REJECT; import static cn.axzo.workflow.common.constant.BpmnConstants.TASK_COMPLETE_OPERATION_TYPE; +import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.DELETED; import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.REJECTED; import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.batchAddAttachment; import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.completeVirtualTask; @@ -101,7 +102,7 @@ public class CustomRejectionTaskCmd extends AbstractCommand implements Ser validTask(historicTaskInstance, task, approver, nodeTypes); - task.setTransientVariable(TASK_COMPLETE_OPERATION_TYPE + task.getId(), REJECTED.getStatus()); + task.setTransientVariable(TASK_COMPLETE_OPERATION_TYPE + task.getId(), DELETED.getStatus()); Task virtualTask = createVirtualTask(commandContext, extAxHiTaskInstService, task.getProcessInstanceId(), task.getName(), task.getTaskDefinitionKey(), advice, Objects.equals(operationDesc, "自动驳回") ? null : approver, REJECTED.getStatus(), diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/entity/type/TaskEntityEventHandle.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/entity/type/TaskEntityEventHandle.java index f83db2ff5..bed2cf0bd 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/entity/type/TaskEntityEventHandle.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/entity/type/TaskEntityEventHandle.java @@ -76,15 +76,15 @@ public class TaskEntityEventHandle implements EntityEventHandle { @Override public void onActivated(TaskEntity taskEntity) { - log.error("onActivated"); + log.debug("onActivated"); } public void onSuspended(TaskEntity taskEntity) { - log.error("onSuspended"); + log.debug("onSuspended"); } public void onDeleted(TaskEntity taskEntity) { - log.error("onDeleted"); + log.debug("onDeleted"); ExtAxProcessLog queryLog = new ExtAxProcessLog(); queryLog.setProcessInstanceId(taskEntity.getProcessInstanceId()); queryLog.setTaskId(taskEntity.getId()); @@ -93,7 +93,6 @@ public class TaskEntityEventHandle implements EntityEventHandle { ProcessEngineConfigurationImpl processEngineConfiguration = CommandContextUtil.getProcessEngineConfiguration(); RuntimeService runtimeService = processEngineConfiguration.getRuntimeService(); -// BpmnTaskDelegateAssigner assignee = BpmnTaskDelegateAssigner.toObjectCompatible(runtimeService.getVariable(taskEntity.getProcessInstanceId(), INTERNAL_TASK_RELATION_ASSIGNEE_INFO + taskEntity.getId())); BpmnTaskDelegateAssigner assignee = BpmnTaskDelegateAssigner.toObjectCompatible(taskEntity.getVariable(INTERNAL_TASK_RELATION_ASSIGNEE_INFO + taskEntity.getId())); if (Objects.nonNull(assignee) && !Objects.equals(NO_ASSIGNEE, assignee.buildAssigneeId())) { update.setAssigneeFull(Lists.newArrayList(assignee)); @@ -125,7 +124,7 @@ public class TaskEntityEventHandle implements EntityEventHandle { String completionType = taskEntity.getVariable(TASK_COMPLETE_OPERATION_TYPE + taskEntity.getId(), String.class); - if (StringUtils.hasText(completionType)) { + if (StringUtils.hasText(completionType) && !Objects.equals(DELETED.getStatus(), completionType)) { log.info("TASK_COMPLETE_OPERATION_TYPE: {}", completionType); update.setStatus(completionType); } else { @@ -164,7 +163,7 @@ public class TaskEntityEventHandle implements EntityEventHandle { } public void onUpdated(TaskEntity taskEntity) { - log.error("onUpdated"); + log.debug("onUpdated"); if (Objects.equals(HIDDEN_ASSIGNEE_ID, taskEntity.getAssignee())) { ExtAxProcessLog queryLog = new ExtAxProcessLog(); queryLog.setProcessInstanceId(taskEntity.getProcessInstanceId()); @@ -187,7 +186,7 @@ public class TaskEntityEventHandle implements EntityEventHandle { } public void onInitialized(TaskEntity taskEntity) { - log.error("onInitialized"); + log.debug("onInitialized"); BpmnMetaParserHelper.getButtonConfig(ProcessDefinitionUtil.getProcess(taskEntity.getProcessDefinitionId()), taskEntity.getTaskDefinitionKey()) .ifPresent(buttons -> { ExtAxProcessLog queryLog = new ExtAxProcessLog(); @@ -201,7 +200,7 @@ public class TaskEntityEventHandle implements EntityEventHandle { } public void onCreate(TaskEntity taskEntity) { - log.error("onCreate"); + log.debug("onCreate"); ProcessEngineConfigurationImpl processEngineConfiguration = CommandContextUtil.getProcessEngineConfiguration(); // 记录发起人 boolean isNodeStarter = Objects.equals(taskEntity.getTaskDefinitionKey(), NODE_STARTER.getType()); diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/aspectj/ErrorReportAspect.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/aspectj/ErrorReportAspect.java index 9dfcba629..dbebfcaae 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/aspectj/ErrorReportAspect.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/aspectj/ErrorReportAspect.java @@ -137,7 +137,7 @@ public class ErrorReportAspect implements Ordered { filterSendDingTalk = false; } - log.error("request header server name: {}", getHeader()); + log.warn("request header server name: {}", getHeader()); envConfig.type().executeAction(profile, operation.summary(), filterSendDingTalk, joinPoint.getArgs(), joinPoint.getSignature().toShortString(), e, workflowProperties.getFilterOperations().contains(operation.summary())); diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java index 89be07059..17fecb552 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java @@ -69,8 +69,6 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp @Resource private BpmnProcessTaskService bpmnProcessTaskService; - @Resource - private FlowSupportApi flowSupportApi; /** * 待审核列表 @@ -113,6 +111,7 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp tempAttachments.add(signature); dto.setAttachmentList(tempAttachments); } + populateUsersAvatar(dto.getApprover()); bpmnProcessTaskService.approveTask(dto); return success(true); } @@ -126,6 +125,8 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp @RepeatSubmit public CommonResponse batchApproveTask(@Validated @RequestBody List dtos) { log.info("批量同意 approveTaskList===>>>参数:{}", JSON.toJSONString(dtos)); + List assigners = dtos.stream().map(BpmnTaskAuditDTO::getApprover).collect(Collectors.toList()); + populateUsersAvatar(assigners); return success(bpmnProcessTaskService.batchApproveTask(dtos)); } @@ -152,6 +153,7 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp @Override public CommonResponse backTask(@Validated @RequestBody BpmnTaskBackAuditDTO dto) { log.info("回退 backTask===>>>参数:{}", JSON.toJSONString(dto)); + populateUsersAvatar(dto.getApprover()); bpmnProcessTaskService.backTask(dto); return success(true); } @@ -165,6 +167,7 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp @RepeatSubmit public CommonResponse rejectTask(@Validated @RequestBody BpmnTaskAuditDTO dto) { log.info("驳回 rejectTask===>>>参数:{}", JSON.toJSONString(dto)); + populateUsersAvatar(dto.getApprover()); bpmnProcessTaskService.rejectTask(dto); return success(true); } @@ -178,6 +181,8 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp @RepeatSubmit public CommonResponse batchRejectTask(@Validated @RequestBody List dtos) { log.info("批量驳回 batchRejectTask===>>>参数:{}", JSON.toJSONString(dtos)); + List assigners = dtos.stream().map(BpmnTaskAuditDTO::getApprover).collect(Collectors.toList()); + populateUsersAvatar(assigners); return success(bpmnProcessTaskService.batchRejectTask(dtos)); } @@ -202,6 +207,8 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp @RepeatSubmit public CommonResponse batchTransferTask(@Validated @RequestBody List dtos) { log.info("批量转交任务 batchTransferTask===>>>参数:{}", JSON.toJSONString(dtos)); + List assigners = dtos.stream().map(BpmnTaskTransferDTO::getOriginAssigner).collect(Collectors.toList()); + populateUsersAvatar(assigners); return success(bpmnProcessTaskService.batchTransferTask(dtos)); } @@ -212,9 +219,10 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp @PostMapping("/comment") @Override @RepeatSubmit - public CommonResponse commentTask(@Validated @RequestBody BpmnTaskCommentDTO commentDTO) { - log.info("评论流程实例 commentTask===>>>参数:{}", commentDTO); - bpmnProcessTaskService.commentTask(commentDTO); + public CommonResponse commentTask(@Validated @RequestBody BpmnTaskCommentDTO dto) { + log.info("评论流程实例 commentTask===>>>参数:{}", JSON.toJSONString(dto)); + populateUsersAvatar(dto.getOperator()); + bpmnProcessTaskService.commentTask(dto); return success(true); } @@ -226,11 +234,12 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp @Override @PostMapping("/countersign") @RepeatSubmit - public CommonResponse countersignTask(@Validated @RequestBody BpmnTaskCountersignDTO countersignDTO) { - log.info("加签任务 countersignTask===>>>参数:{}", JSON.toJSONString(countersignDTO)); + public CommonResponse countersignTask(@Validated @RequestBody BpmnTaskCountersignDTO dto) { + log.info("加签任务 countersignTask===>>>参数:{}", JSON.toJSONString(dto)); // 填充头像 - populateUsersAvatar(countersignDTO.getTargetAssignerList()); - bpmnProcessTaskService.countersignTask(countersignDTO); + populateUsersAvatar(dto.getOriginAssigner()); + populateUsersAvatar(dto.getTargetAssignerList()); + bpmnProcessTaskService.countersignTask(dto); return success(true); }