feat(REQ-4418) - 处理兼容 Starter 的接口

This commit is contained in:
wangli 2025-09-01 15:25:24 +08:00
parent d4ca0dc538
commit 620c097dcf
9 changed files with 120 additions and 36 deletions

View File

@ -9,6 +9,7 @@ import cn.axzo.workflow.common.model.request.bpmn.log.LogApproveSearchDTO;
import cn.axzo.workflow.common.model.request.bpmn.process.BeforeProcessInstanceCreateDTO;
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAbortDTO;
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAdminPageReqVO;
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceBatchQueryDTO;
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCancelDTO;
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCarbonCopyDTO;
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCheckApproverDTO;
@ -155,6 +156,17 @@ public interface ProcessInstanceApi {
@InvokeMode(SYNC)
CommonResponse<BpmnProcessInstanceVO> getProcessInstanceVO(@Validated @RequestBody BpmnProcessInstanceQueryDTO dto);
/**
* 批量获得流程实例
*
* @param dto
* @return
*/
@Operation(summary = "批量获得流程实例")
@PostMapping("/api/process/instance/batch/get")
@InvokeMode(SYNC)
CommonResponse<BpmPageResult<BpmnProcessInstanceVO>> getBatchProcessInstanceVO(@Validated @RequestBody BpmnProcessInstanceBatchQueryDTO dto);
/**
* 获取指定流程实例的流程变量
*

View File

@ -16,7 +16,6 @@ import cn.axzo.workflow.common.model.request.bpmn.model.doc.DocStatusDTO;
import cn.axzo.workflow.common.model.request.bpmn.model.doc.DocTenantQueryDTO;
import cn.axzo.workflow.common.model.request.bpmn.model.doc.DocUpdateDTO;
import cn.axzo.workflow.common.model.request.bpmn.print.PrintTemplateConfigQueryDTO;
import cn.axzo.workflow.common.model.request.bpmn.print.PrintTemplateConfigUpsertDTO;
import cn.axzo.workflow.common.model.request.bpmn.print.RestPrintTemplateConfigDTO;
import cn.axzo.workflow.common.model.response.BpmPageResult;
import cn.axzo.workflow.common.model.response.bpmn.model.BpmnModelDetailVO;
@ -220,17 +219,6 @@ public interface ProcessModelApi {
@InvokeMode(SYNC)
CommonResponse<List<String>> getModelTenantIds();
/**
* 打印模板配置内容更新保存
*
* @param dto
* @return
*/
@Operation(summary = "打印模板配置内容更新保存")
@PostMapping("/api/process/model/print/template/upsert")
@InvokeMode(SYNC)
CommonResponse<Void> printTemplateConfig(@Validated @RequestBody PrintTemplateConfigUpsertDTO dto);
/**
* 获取打印模板配置内容
*

View File

@ -5,6 +5,7 @@ import cn.axzo.workflow.common.annotation.InvokeMode;
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.PrintFieldQueryDTO;
import cn.axzo.workflow.common.model.request.bpmn.print.PrintTemplateConfigUpsertDTO;
import cn.azxo.framework.common.model.CommonResponse;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.validation.annotation.Validated;
@ -26,20 +27,50 @@ import static cn.axzo.workflow.common.enums.RpcInvokeModeEnum.SYNC;
* @since 2025-01-16 17:35
*/
@WorkflowEngineFeignClient
@Manageable
public interface PrintAdminApi {
/**
* 查询指定审批流程是否能打印打印开关是否开启是否存在打印模板
*
* @param processInstanceId
* @return
*/
@Operation(summary = "查询指定审批流程是否能打印,打印开关是否开启,是否存在打印模板")
@GetMapping("/api/print/admin/template/exists")
@InvokeMode(SYNC)
CommonResponse<Boolean> hasPrintTemplate(@NotBlank(message = "流程实例不能为空") @RequestParam String processInstanceId);
/**
* 打印模板配置内容更新保存
*
* @param dto
* @return
*/
@Operation(summary = "打印模板配置内容更新保存")
@PostMapping("/api/process/model/print/template/upsert")
@InvokeMode(SYNC)
CommonResponse<Void> printTemplateConfig(@Validated @RequestBody PrintTemplateConfigUpsertDTO dto);
/**
* 获取打印模板中可打印的字段
*
* @param dto
* @return
*/
@Operation(summary = "获取打印模板中可打印的字段")
@PostMapping("/api/print/admin/fields")
@Manageable
@InvokeMode(SYNC)
CommonResponse<List<PrintFieldDTO>> getPrintFields(@Validated @RequestBody PrintFieldQueryDTO dto);
/**
* 获取指定流程下用于替换打印的相关变量
*
* @param processInstanceId
* @return
*/
@Operation(summary = "获取指定流程下用于替换打印的相关变量")
@GetMapping("/api/print/admin/field/variables")
@Manageable
@InvokeMode(SYNC)
CommonResponse<Map<String, Object>> getPrintFieldVariables(@NotBlank(message = "流程实例不能为空") @RequestParam String processInstanceId);
}

View File

@ -0,0 +1,28 @@
package cn.axzo.workflow.common.model.request.bpmn.process;
import cn.axzo.workflow.common.model.request.BpmPageParam;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 批量查询流程实例的入参模型
*
* @author wangli
* @since 2023/7/14 10:12
*/
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("批量查询流程实例的入参模型")
@Accessors(chain = true)
public class BpmnProcessInstanceBatchQueryDTO extends BpmPageParam {
/**
* 流程实例 ID 列表
*/
private List<String> processInstanceIds;
}

View File

@ -81,6 +81,11 @@ public class ProcessInstanceDTO implements Serializable {
*/
private String businessProcessInstanceName;
/**
* 模型定义的原始名称
*/
private String definitionName;
/**
* 发起人信息
*/

View File

@ -85,7 +85,8 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
.setStartTime(((ExecutionEntityImpl) event.getEntity()).getStartTime())
.setTenantId(((ExecutionEntityImpl) event.getEntity()).getTenantId())
.setBusinessKey(((ExecutionEntityImpl) event.getEntity()).getBusinessKey())
.setBusinessProcessInstanceName(((ExecutionEntityImpl) event.getEntity()).getName());
.setBusinessProcessInstanceName(((ExecutionEntityImpl) event.getEntity()).getName())
.setDefinitionName(mainProcess.getName());
BpmnMetaParserHelper.getNoticeConfig(mainProcess).ifPresent(dto::setNoticeConf);
BpmnMetaParserHelper.getSignConfig(mainProcess).ifPresent(dto::setSignConf);
@ -154,7 +155,8 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
.setStartTime(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getStartTime())
.setTenantId(((FlowableProcessCancelledEventImpl) event).getExecution().getTenantId())
.setBusinessKey(((FlowableProcessCancelledEventImpl) event).getExecution().getProcessInstanceBusinessKey())
.setBusinessProcessInstanceName(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getName());
.setBusinessProcessInstanceName(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getName())
.setDefinitionName(mainProcess.getName());
BpmnMetaParserHelper.getNoticeConfig(mainProcess).ifPresent(dto::setNoticeConf);
BpmnMetaParserHelper.getSignConfig(mainProcess).ifPresent(dto::setSignConf);
@ -194,7 +196,8 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
.setStartTime(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getStartTime())
.setTenantId(((FlowableProcessCancelledEventImpl) event).getExecution().getTenantId())
.setBusinessKey(((FlowableProcessCancelledEventImpl) event).getExecution().getProcessInstanceBusinessKey())
.setBusinessProcessInstanceName(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getName());
.setBusinessProcessInstanceName(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getName())
.setDefinitionName(mainProcess.getName());
BpmnMetaParserHelper.getNoticeConfig(mainProcess).ifPresent(dto::setNoticeConf);
BpmnMetaParserHelper.getSignConfig(mainProcess).ifPresent(dto::setSignConf);
@ -229,7 +232,8 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
.setStartTime(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getStartTime())
.setTenantId(((FlowableProcessCancelledEventImpl) event).getExecution().getTenantId())
.setBusinessKey(((FlowableProcessCancelledEventImpl) event).getExecution().getProcessInstanceBusinessKey())
.setBusinessProcessInstanceName(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getName());
.setBusinessProcessInstanceName(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getName())
.setDefinitionName(mainProcess.getName());
BpmnMetaParserHelper.getNoticeConfig(mainProcess).ifPresent(dto::setNoticeConf);
BpmnMetaParserHelper.getSignConfig(mainProcess).ifPresent(dto::setSignConf);
@ -264,7 +268,8 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
.setStartTime(((ExecutionEntityImpl) event.getEntity()).getStartTime())
.setTenantId(((ExecutionEntityImpl) event.getEntity()).getTenantId())
.setBusinessKey(((ExecutionEntityImpl) event.getEntity()).getProcessInstanceBusinessKey())
.setBusinessProcessInstanceName(((ExecutionEntityImpl) event.getEntity()).getName());
.setBusinessProcessInstanceName(((ExecutionEntityImpl) event.getEntity()).getName())
.setDefinitionName(mainProcess.getName());
BpmnMetaParserHelper.getNoticeConfig(mainProcess).ifPresent(dto::setNoticeConf);
BpmnMetaParserHelper.getSignConfig(mainProcess).ifPresent(dto::setSignConf);

View File

@ -13,6 +13,7 @@ import cn.axzo.workflow.common.model.request.bpmn.log.LogApproveSearchDTO;
import cn.axzo.workflow.common.model.request.bpmn.process.BeforeProcessInstanceCreateDTO;
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAbortDTO;
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAdminPageReqVO;
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceBatchQueryDTO;
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCancelDTO;
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCarbonCopyDTO;
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCheckApproverDTO;
@ -42,7 +43,6 @@ import cn.axzo.workflow.common.model.response.bpmn.process.ProcessNodeDetailVO;
import cn.axzo.workflow.common.model.response.bpmn.process.doc.DocPendingVO;
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskButtonVo;
import cn.axzo.workflow.common.model.response.bpmn.task.BpmnTaskInstanceLogVO;
import cn.axzo.workflow.common.model.response.category.CategoryItemVO;
import cn.axzo.workflow.common.valid.group.ValidGroup;
import cn.axzo.workflow.core.engine.cmd.CustomGetModelDocsCmd;
import cn.axzo.workflow.core.repository.entity.ExtAxProcessLog;
@ -88,7 +88,6 @@ import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@ -96,7 +95,6 @@ import java.util.stream.Stream;
import static cn.axzo.workflow.common.code.BpmnInstanceRespCode.PROCESS_DOC_ID_NOT_IN_MODEL;
import static cn.axzo.workflow.common.code.BpmnInstanceRespCode.PROCESS_DOC_READ_PARAM_ERROR;
import static cn.axzo.workflow.common.code.BpmnInstanceRespCode.PROCESS_EXT_LOG_PARAM_ERROR;
import static cn.axzo.workflow.common.constant.BpmnConstants.BPM_MODEL_CATEGORY;
import static cn.azxo.framework.common.model.CommonResponse.success;
/**
@ -284,6 +282,20 @@ public class BpmnProcessInstanceController extends BasicPopulateAvatarController
return success(result);
}
/**
* 批量获得流程实例
*
* @param dto
* @return
*/
@Operation(summary = "批量获得流程实例")
@GetMapping("/batch/get")
@Override
public CommonResponse<BpmPageResult<BpmnProcessInstanceVO>> getBatchProcessInstanceVO(@Validated @RequestBody BpmnProcessInstanceBatchQueryDTO dto) {
log.info("获得历史的流程实例 getProcessInstanceVO===>>>参数:{}", JSONUtil.toJsonStr(dto));
return null;
}
/**
* 更新指定流程定义的版本的状态, 处于 suspended 状态的流程模型将不能再发起实例
*

View File

@ -410,21 +410,6 @@ public class BpmnProcessModelController implements ProcessModelApi {
return success(bpmnProcessModelService.getTenantIds());
}
/**
* 打印模板配置内容
*
* @param dto
* @return
*/
@Operation(summary = "打印模板配置内容")
@PostMapping("/print/template/upsert")
@Override
public CommonResponse<Void> printTemplateConfig(@Validated @RequestBody PrintTemplateConfigUpsertDTO dto) {
log.info("操作打印模板配置内容: {}", JSON.toJSONString(dto));
bpmnProcessModelService.printTemplateConfig(dto);
return success();
}
/**
* 获取打印模板配置内容
*

View File

@ -9,6 +9,7 @@ import cn.axzo.workflow.common.exception.WorkflowEngineException;
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.PrintFieldQueryDTO;
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.BpmnTaskDelegateAssigner;
import cn.axzo.workflow.common.model.request.category.CategoryGroupVarSearchDto;
@ -20,6 +21,7 @@ import cn.axzo.workflow.core.engine.cmd.CustomGetFormInstanceLatestValuesCmd;
import cn.axzo.workflow.core.engine.cmd.CustomGetProcessInstanceVariablesCmd;
import cn.axzo.workflow.core.service.BpmnProcessDefinitionService;
import cn.axzo.workflow.core.service.BpmnProcessInstanceService;
import cn.axzo.workflow.core.service.BpmnProcessModelService;
import cn.axzo.workflow.core.service.CategoryGroupService;
import cn.axzo.workflow.server.common.annotation.ErrorReporter;
import cn.axzo.workflow.server.common.util.RpcExternalUtil;
@ -130,6 +132,8 @@ public class PrintAdminController implements PrintAdminApi {
private BpmnProcessInstanceService bpmnProcessInstanceService;
@Resource
private CategoryGroupService categoryGroupService;
@Resource
private BpmnProcessModelService bpmnProcessModelService;
/**
* 查询指定流程实例是否能使用打印
@ -144,6 +148,20 @@ public class PrintAdminController implements PrintAdminApi {
return CommonResponse.success(bpmnProcessInstanceService.hasPrintTemplate(processInstanceId, null));
}
/**
* 打印模板配置内容
*
* @param dto
* @return
*/
@Operation(summary = "打印模板配置内容")
@PostMapping("/print/template/upsert")
@Override
public CommonResponse<Void> printTemplateConfig(@Validated @RequestBody PrintTemplateConfigUpsertDTO dto) {
log.info("操作打印模板配置内容: {}", JSON.toJSONString(dto));
bpmnProcessModelService.printTemplateConfig(dto);
return success();
}
/**
* 获取打印模板中可打印的字段, 或者是 WPS 模板中可配置的变量字段
*