feat(REQ-4586) - 优化查询审批日志的逻辑

This commit is contained in:
wangli 2025-07-08 13:46:51 +08:00
parent 6f4e4a710d
commit bd716ed44f
4 changed files with 64 additions and 18 deletions

View File

@ -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;

View File

@ -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 查询
* <p>
* 如果没有值 personIdtenantIdouId 一定不能为 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;
}

View File

@ -547,15 +547,23 @@ public class BpmnProcessInstanceController extends BasicPopulateAvatarController
@GetMapping("/log/approve/ext")
@Override
public CommonResponse<List<ExtProcessLogVO>> 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<ExtAxProcessLog> extAxProcessLogs = extAxProcessLogService.genericQuery(query);
return success(ListUtils.emptyIfNull(extAxProcessLogs).stream().map(i -> {
ExtProcessLogVO logVO = new ExtProcessLogVO();

View File

@ -1,14 +1,30 @@
package cn.axzo.workflow.server.controller.web.bpmn;
import cn.axzo.workflow.client.feign.bpmn.ProcessTaskApi;
import cn.axzo.workflow.common.annotation.InvokeMode;
import cn.axzo.workflow.common.annotation.Manageable;
import cn.axzo.workflow.common.enums.AttachmentTypeEnum;
import cn.axzo.workflow.common.model.request.bpmn.log.LogApproveSearchDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.*;
import cn.axzo.workflow.common.model.request.bpmn.task.AttachmentDTO;
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;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnRobotTaskCreateDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAttachmentDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskAuditWithFormDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskBackAuditDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskCommentDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskCountersignDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskPageSearchDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskRemindDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskResetApproversDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskTransferDTO;
import cn.axzo.workflow.common.model.response.BpmPageResult;
import cn.axzo.workflow.common.model.response.bpmn.BatchOperationResultVO;
import cn.axzo.workflow.common.model.response.bpmn.task.*;
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnHistoricTaskInstanceGroupVO;
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnHistoricTaskInstanceVO;
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskDonePageItemVO;
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskInstanceVO;
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskTodoPageItemVO;
import cn.axzo.workflow.core.service.BpmnProcessTaskService;
import cn.axzo.workflow.server.common.annotation.ErrorReporter;
import cn.axzo.workflow.server.common.annotation.RepeatSubmit;
@ -22,7 +38,12 @@ import org.flowable.form.api.FormInfo;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Nullable;
import javax.annotation.Resource;
@ -33,7 +54,6 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
import static cn.azxo.framework.common.model.CommonResponse.success;
/**