feat(REQ-5965) - 流程引擎测增加审批日志pdf 结果查询 API
This commit is contained in:
parent
956c7d1314
commit
2d25ff475d
@ -8,7 +8,9 @@ import cn.axzo.workflow.common.model.request.bpmn.print.Print4ProcessLogDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.print.PrintFieldQueryDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.print.PrintProcessLogPdfDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.print.PrintTemplateConfigUpsertDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.print.QueryProcessLogPdfDTO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.PrintData4LogVO;
|
||||
import cn.axzo.workflow.common.model.response.print.ProcessLogPdfResultDTO;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -91,7 +93,10 @@ public interface PrintAdminApi {
|
||||
CommonResponse<PrintData4LogVO> getPrintDataForProcessLog(@Validated @RequestBody Print4ProcessLogDTO dto);
|
||||
|
||||
/**
|
||||
* 后端请求指定流程日志 PDF 文件生成
|
||||
* 后端请求指定流程日志 PDF 文件生成, 实现是异步的。
|
||||
* <p>
|
||||
* 请使用 {@link PrintAdminApi#queryProcessLogPdfResult(QueryProcessLogPdfDTO)} 函数查询,
|
||||
* 或者使用 {@link cn.axzo.nanopart.doc.api.conversion.DocConversionApi#queryConvertResultByBiz} 函数查询,bizCode:固定为"workflow-process-log", bizKey:为实例 ID
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ -99,4 +104,15 @@ public interface PrintAdminApi {
|
||||
@PostMapping("/api/print/admin/process/log/pdf")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<String> createProcessLogPdf(@Validated @RequestBody PrintProcessLogPdfDTO dto);
|
||||
|
||||
/**
|
||||
* 后端查询指定审批日志 PDF 文件的生成结果
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "后端查询指定审批日志 PDF 文件的生成结果")
|
||||
@PostMapping("/api/print/admin/process/log/pdf/result")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<ProcessLogPdfResultDTO> queryProcessLogPdfResult(@Validated @RequestBody QueryProcessLogPdfDTO dto);
|
||||
}
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn.print;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 查询审批日志转 pdf 的入参模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-10-31 17:15
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class QueryProcessLogPdfDTO {
|
||||
|
||||
/**
|
||||
* 审批实例 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "审批实例 ID")
|
||||
@NotBlank(message = "审批实例 ID 不能为空")
|
||||
private String processInstanceId;
|
||||
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package cn.axzo.workflow.common.model.response.print;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 审批日志 PDF 查询结果相应模型
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-11-07 18:13
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ProcessLogPdfResultDTO {
|
||||
|
||||
/**
|
||||
* 转换状态
|
||||
* INIT("初始"),
|
||||
* <p>
|
||||
* CONVERTING("转换中"),
|
||||
* <p>
|
||||
* SUCCESS("转换完成"),
|
||||
* <p>
|
||||
* FAILED("转换失败");
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 转换成功后的oss fileKey
|
||||
*/
|
||||
private String pdfFileKey;
|
||||
}
|
||||
@ -1,10 +1,13 @@
|
||||
package cn.axzo.workflow.server.controller.web.manage;
|
||||
|
||||
import cn.axzo.basics.common.BeanMapper;
|
||||
import cn.axzo.maokai.api.client.OrganizationalNodeUserQueryApi;
|
||||
import cn.axzo.maokai.api.vo.request.OrgNodeUserBriefInfoListReq;
|
||||
import cn.axzo.maokai.api.vo.response.OrgNodeUserBriefInfoResp;
|
||||
import cn.axzo.nanopart.doc.api.conversion.DocConversionApi;
|
||||
import cn.axzo.nanopart.doc.api.conversion.req.QueryConversionTaskRequestV2;
|
||||
import cn.axzo.nanopart.doc.api.conversion.req.SubmitConversionTaskRequest;
|
||||
import cn.axzo.nanopart.doc.api.conversion.res.FileConvertResultResp;
|
||||
import cn.axzo.nanopart.doc.api.enums.DocConversionTypeEnum;
|
||||
import cn.axzo.oss.http.api.ServerFileServiceApi;
|
||||
import cn.axzo.oss.http.model.ApiSignUrlDownloadRequest;
|
||||
@ -21,6 +24,7 @@ import cn.axzo.workflow.common.model.request.bpmn.print.Print4ProcessLogDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.print.PrintFieldQueryDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.print.PrintProcessLogPdfDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.print.PrintTemplateConfigUpsertDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.print.QueryProcessLogPdfDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceLogQueryDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.AttachmentDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
|
||||
@ -31,6 +35,7 @@ import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessDefinition
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstanceLogVO;
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.PrintData4LogVO;
|
||||
import cn.axzo.workflow.common.model.response.category.CategoryGroupVarItemVo;
|
||||
import cn.axzo.workflow.common.model.response.print.ProcessLogPdfResultDTO;
|
||||
import cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper;
|
||||
import cn.axzo.workflow.core.conf.SupportRefreshProperties;
|
||||
import cn.axzo.workflow.core.engine.cmd.CustomGetFormInstanceLatestValuesCmd;
|
||||
@ -227,11 +232,11 @@ public class PrintAdminController implements PrintAdminApi {
|
||||
printFields.addAll(formContainer.getFields().get(0).stream()
|
||||
.filter(field -> {
|
||||
// if (Objects.equals(Boolean.TRUE, dto.getFilterEnablePrint())) {
|
||||
if (!CollectionUtils.isEmpty(field.getParams())) {
|
||||
Optional<Object> optEnablePrint = Optional.ofNullable(field.getParam("enablePrint"));
|
||||
return optEnablePrint.map(obj -> Boolean.parseBoolean(obj.toString())).orElse(Boolean.TRUE);
|
||||
}
|
||||
return true;
|
||||
if (!CollectionUtils.isEmpty(field.getParams())) {
|
||||
Optional<Object> optEnablePrint = Optional.ofNullable(field.getParam("enablePrint"));
|
||||
return optEnablePrint.map(obj -> Boolean.parseBoolean(obj.toString())).orElse(Boolean.TRUE);
|
||||
}
|
||||
return true;
|
||||
// } else {
|
||||
// return false;
|
||||
// }
|
||||
@ -596,4 +601,19 @@ public class PrintAdminController implements PrintAdminApi {
|
||||
String taskId = RpcExternalUtil.rpcApiResultProcessor(() -> docConversionApi.submitConvertTask(request), "创建网页转 PDF 的异步任务", request);
|
||||
return CommonResponse.success(taskId);
|
||||
}
|
||||
|
||||
@Operation(summary = "后端查询指定审批日志 PDF 文件的生成结果")
|
||||
@PostMapping("/process/log/pdf/result")
|
||||
@Override
|
||||
public CommonResponse<ProcessLogPdfResultDTO> queryProcessLogPdfResult(@Validated @RequestBody QueryProcessLogPdfDTO dto) {
|
||||
QueryConversionTaskRequestV2 request = new QueryConversionTaskRequestV2();
|
||||
request.setBizCode("workflow-process-log");
|
||||
request.setBizKey(dto.getProcessInstanceId());
|
||||
List<FileConvertResultResp> taskConvertResults = RpcExternalUtil.rpcApiResultProcessor(() -> docConversionApi.queryConvertResultByBiz(request), "查询流程日志转 PDF 的结果", request);
|
||||
List<ProcessLogPdfResultDTO> results = BeanMapper.copyList(taskConvertResults, ProcessLogPdfResultDTO.class, (s, t) -> {
|
||||
t.setPdfFileKey(s.getResultFileFileKey());
|
||||
t.setStatus(s.getStatus().name());
|
||||
});
|
||||
return CommonResponse.success(results.isEmpty() ? null : results.get(0));
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user