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 645e1f31f..2b4f41fae 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 @@ -41,6 +41,7 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_SPECIFY_NE import static cn.axzo.workflow.common.constant.BpmnConstants.SIGNATURE_COLLECTION; import static cn.axzo.workflow.common.constant.BpmnConstants.TASK_COMPLETE_OPERATION_TYPE; import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.APPROVED; +import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING; import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.addComment; import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.batchAddAttachment; import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.validTask; @@ -168,11 +169,15 @@ public class CustomApproveTaskCmd extends AbstractCommand implements Seria private void resetApproverNode(String processInstanceId) { ExtAxProcessLogService logService = SpringContextUtils.getBean(ExtAxProcessLogService.class); - ExtAxProcessLog processLog = logService.findByProcessIdAndTaskIdWithDeleted(processInstanceId, taskId); - if (CollectionUtils.isEmpty(processLog.getAssigneeFull())) { + ExtAxProcessLog logQuery = new ExtAxProcessLog(); + logQuery.setProcessInstanceId(processInstanceId); + logQuery.setTaskId(taskId); + logQuery.setStatus(PROCESSING.getStatus()); + List logs = logService.genericQuery(logQuery); + if (CollectionUtils.isEmpty(logs)) { return; } - approver.setNodeId(processLog.getAssigneeFull().get(0).getNodeId()); + approver.setNodeId(logs.get(0).getAssigneeFull().get(0).getNodeId()); } private void recordSignature(TaskEntity task, RuntimeService runtimeService) { diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/repository/entity/ExtAxProcessLog.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/repository/entity/ExtAxProcessLog.java index 478ef04be..22b4e1094 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/repository/entity/ExtAxProcessLog.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/repository/entity/ExtAxProcessLog.java @@ -8,11 +8,9 @@ import cn.axzo.workflow.common.model.request.form.FormPermissionMetaInfo; import cn.axzo.workflow.core.conf.handler.ButtonConfTypeHandler; import cn.axzo.workflow.core.conf.handler.ListAssigneeTypeHandler; import cn.axzo.workflow.core.conf.handler.ListFormFieldPermissionTypeHandler; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; -import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; @@ -77,7 +75,7 @@ public class ExtAxProcessLog extends BaseEntity { /** * 审批人对象信息 */ - @TableField(typeHandler = ListAssigneeTypeHandler.class) + @TableField(value = "assignee_full", typeHandler = ListAssigneeTypeHandler.class) private List assigneeFull; /** * 审批人标识 diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedIdentityV2TaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedIdentityV2TaskAssigneeSelector.java index a248967a6..7365ac3b4 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedIdentityV2TaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedIdentityV2TaskAssigneeSelector.java @@ -108,9 +108,6 @@ public class BasedIdentityV2TaskAssigneeSelector extends AbstractBpmnTaskAssigne if (Objects.isNull(lastOperationApprover)) { return Collections.emptyList(); } - if (lastOperationApprover.comparePersonIdToOther(initiator)) { - return Collections.emptyList(); - } v2ReqBuilder.scope(FlowTaskAssignerScopeDTO.builder() .nodeId(lastOperationApprover.parseNodeId()) .upLevel(getApproverSpecifyRangeOrgLimit(flowElement).orElse(SignApproverOrgLimitEnum.UNKNOWN).getCode())