diff --git a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessTaskApi.java b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessTaskApi.java index 382d94800..69d2c8983 100644 --- a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessTaskApi.java +++ b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessTaskApi.java @@ -3,7 +3,6 @@ package cn.axzo.workflow.client.feign.bpmn; import cn.axzo.workflow.client.annotation.WorkflowEngineFeignClient; import cn.axzo.workflow.common.annotation.InvokeMode; import cn.axzo.workflow.common.annotation.Manageable; -import cn.axzo.workflow.common.model.request.bpmn.log.LogApproveSearchDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnNodeBackSystemOperateDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnOptionalNodeDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnRobotTaskCompleteDTO; diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/log/LogApproveSearchDTO.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/log/LogApproveSearchDTO.java index c48666620..288946c7a 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/log/LogApproveSearchDTO.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/log/LogApproveSearchDTO.java @@ -21,18 +21,37 @@ import javax.validation.constraints.NotBlank; @Builder public class LogApproveSearchDTO { + @ApiModelProperty("流程实例 ID") @NotBlank(message = "流程实例 ID 不能为空") private String processInstanceId; - @NotBlank(message = "审批人 personId 不能为空") + /** + * 审批任务 ID,如果有值,优先使用 taskId 查询 + *
+ * 如果没有值,则 personId、tenantId、ouId 一定不能为 null
+ */
+ @ApiModelProperty("审批任务 ID")
+ private String taskId;
+
+ /**
+ * 如果没传 taskId,那么该属性必有值
+ */
+ @ApiModelProperty("审批人 PersonId")
private String personId;
- @NotBlank(message = "审批人 tenantId 不能为空")
+ /**
+ * 如果没传 taskId,那么该属性必有值
+ */
+ @ApiModelProperty("审批人 tenantId")
private String tenantId;
- @NotBlank(message = "审批人 ouId 不能为空")
+ /**
+ * 如果没传 taskId,那么该属性应该有值,如果是“工人”可以没有值
+ */
+ @ApiModelProperty("审批人 ouId")
private String ouId;
@ApiModelProperty("指定状态,如果为空,默认指定审批中状态的数据")
private BpmnProcessInstanceResultEnum status;
+
}
diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessInstanceController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessInstanceController.java
index 96590a86a..6c33ebb51 100644
--- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessInstanceController.java
+++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessInstanceController.java
@@ -547,15 +547,23 @@ public class BpmnProcessInstanceController extends BasicPopulateAvatarController
@GetMapping("/log/approve/ext")
@Override
public CommonResponse> getProcessLogByInstanceIdAndPersonId(@Validated @RequestBody LogApproveSearchDTO dto) {
- if (NumberUtil.isLong(dto.getPersonId())) {
- throw new WorkflowEngineException(PROCESS_EXT_LOG_PARAM_ERROR);
- }
+
ExtAxProcessLog query = new ExtAxProcessLog();
query.setProcessInstanceId(dto.getProcessInstanceId());
- query.setAssigneeId(Long.valueOf(dto.getPersonId()));
- query.setAssigneeTenantId(dto.getTenantId());
- query.setAssigneeOuId(dto.getOuId());
- query.setStatus(BpmnProcessInstanceResultEnum.PROCESSING.getStatus());
+ if (StringUtils.hasText(dto.getTaskId())) {
+ query.setTaskId(dto.getTaskId());
+ } else {
+ if (NumberUtil.isLong(dto.getPersonId())) {
+ throw new WorkflowEngineException(PROCESS_EXT_LOG_PARAM_ERROR);
+ }
+ query.setAssigneeId(Long.valueOf(dto.getPersonId()));
+ query.setAssigneeTenantId(dto.getTenantId());
+ query.setAssigneeOuId(Objects.isNull(dto.getOuId()) ? "" : dto.getOuId());
+ }
+
+ if (Objects.isNull(dto.getStatus())) {
+ query.setStatus(BpmnProcessInstanceResultEnum.PROCESSING.getStatus());
+ }
List