feat(REQ-5965) - 新增创建审批流日志的 PDF 的异步任务
This commit is contained in:
parent
c26659c364
commit
a662e6fab7
@ -6,6 +6,7 @@ import cn.axzo.workflow.common.annotation.Manageable;
|
||||
import cn.axzo.workflow.common.model.dto.print.PrintFieldDTO;
|
||||
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.response.bpmn.process.PrintData4LogVO;
|
||||
import cn.azxo.framework.common.model.CommonResponse;
|
||||
@ -88,4 +89,14 @@ public interface PrintAdminApi {
|
||||
@Manageable
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<PrintData4LogVO> getPrintDataForProcessLog(@Validated @RequestBody Print4ProcessLogDTO dto);
|
||||
|
||||
/**
|
||||
* 后端请求指定流程日志 PDF 文件生成
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "后端请求指定流程日志 PDF 文件生成")
|
||||
@PostMapping("/api/print/admin/process/log/pdf")
|
||||
@InvokeMode(SYNC)
|
||||
CommonResponse<String> createProcessLogPdf(@Validated @RequestBody PrintProcessLogPdfDTO dto);
|
||||
}
|
||||
|
||||
@ -0,0 +1,36 @@
|
||||
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 PrintProcessLogPdfDTO {
|
||||
|
||||
/**
|
||||
* 审批实例 ID
|
||||
*/
|
||||
@ApiModelProperty(value = "审批实例 ID")
|
||||
@NotBlank(message = "审批实例 ID 不能为空")
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 实例日志访问者的personId
|
||||
*/
|
||||
@ApiModelProperty(value = "访问者的 PersonId")
|
||||
@NotBlank(message = "访问者的 personId 不能为空")
|
||||
private String personId;
|
||||
}
|
||||
@ -108,4 +108,7 @@ public class SupportRefreshProperties {
|
||||
@Value("${workflow.ignoreMqAlterApplicationNames:}")
|
||||
private List<String> ignoreMqAlterApplicationNames;
|
||||
|
||||
@Value("${workflow.processLogHtmlUrl:https://www.axzo.cn/}")
|
||||
private String processLogHtmlUrl;
|
||||
|
||||
}
|
||||
|
||||
@ -3,6 +3,9 @@ package cn.axzo.workflow.server.controller.web.manage;
|
||||
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.SubmitConversionTaskRequest;
|
||||
import cn.axzo.nanopart.doc.api.enums.DocConversionTypeEnum;
|
||||
import cn.axzo.oss.http.api.ServerFileServiceApi;
|
||||
import cn.axzo.oss.http.model.ApiSignUrlDownloadRequest;
|
||||
import cn.axzo.oss.http.model.ApiSignUrlDownloadResponse;
|
||||
@ -16,6 +19,7 @@ import cn.axzo.workflow.common.model.dto.print.FieldAttributeDTO;
|
||||
import cn.axzo.workflow.common.model.dto.print.PrintFieldDTO;
|
||||
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.process.BpmnProcessInstanceLogQueryDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.AttachmentDTO;
|
||||
@ -28,6 +32,7 @@ import cn.axzo.workflow.common.model.response.bpmn.process.BpmnProcessInstanceLo
|
||||
import cn.axzo.workflow.common.model.response.bpmn.process.PrintData4LogVO;
|
||||
import cn.axzo.workflow.common.model.response.category.CategoryGroupVarItemVo;
|
||||
import cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper;
|
||||
import cn.axzo.workflow.core.conf.SupportRefreshProperties;
|
||||
import cn.axzo.workflow.core.engine.cmd.CustomGetFormInstanceLatestValuesCmd;
|
||||
import cn.axzo.workflow.core.engine.cmd.CustomGetProcessInstanceVariablesCmd;
|
||||
import cn.axzo.workflow.core.repository.entity.ExtAxProcessLog;
|
||||
@ -168,6 +173,10 @@ public class PrintAdminController implements PrintAdminApi {
|
||||
private TaskService taskService;
|
||||
@Resource
|
||||
private ServerFileServiceApi serverFileServiceApi;
|
||||
@Resource
|
||||
private DocConversionApi docConversionApi;
|
||||
@Resource
|
||||
private SupportRefreshProperties refreshProperties;
|
||||
|
||||
/**
|
||||
* 查询指定流程实例是否能使用打印
|
||||
@ -575,4 +584,17 @@ public class PrintAdminController implements PrintAdminApi {
|
||||
return RpcExternalUtil.rpcProcessor(() -> serverFileServiceApi.signUrlFetchDownload(request), "批量获取手写签私有访问地址", request);
|
||||
}
|
||||
|
||||
@Operation(summary = "后端请求指定流程日志 PDF 文件生成")
|
||||
@PostMapping("/process/log/pdf")
|
||||
@Override
|
||||
public CommonResponse<String> createProcessLogPdf(@Validated @RequestBody PrintProcessLogPdfDTO dto) {
|
||||
SubmitConversionTaskRequest request = new SubmitConversionTaskRequest();
|
||||
request.setBizCode("workflow-process-log");
|
||||
request.setBizKey(dto.getProcessInstanceId());
|
||||
request.setConversionType(DocConversionTypeEnum.HTML_URL_TO_PDF);
|
||||
request.setFileName(refreshProperties.getProcessLogHtmlUrl());
|
||||
request.setFileKey(dto.getPersonId());
|
||||
String taskId = RpcExternalUtil.rpcApiResultProcessor(() -> docConversionApi.submitConvertTask(request), "创建网页转 PDF 的异步任务", request);
|
||||
return CommonResponse.success(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user