package cn.iocoder.yudao.module.bpm.service.attach; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.bpm.controller.admin.attach.vo.attach.BpmBusinessAttachPageReqVO; import cn.iocoder.yudao.module.bpm.controller.admin.attach.vo.attach.BpmBusinessAttachSaveReqVO; import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO; import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmBusinessAttachDO; import jakarta.validation.Valid; /** * BPM 业务附件配置 Service 接口 * * @author 超级管理员 */ public interface BpmBusinessAttachService { /** * 创建业务附件配置 * * @param createReqVO 创建信息 * @return 编号 */ Long createBusinessAttach(@Valid BpmBusinessAttachSaveReqVO createReqVO); /** * 更新业务附件配置 * * @param updateReqVO 更新信息 */ void updateBusinessAttach(@Valid BpmBusinessAttachSaveReqVO updateReqVO); /** * 删除业务附件配置 * * @param id 编号 */ void deleteBusinessAttach(Long id); /** * 获得业务附件配置 * * @param id 编号 * @return 业务附件配置 */ BpmBusinessAttachDO getBusinessAttach(Long id); /** * 获得业务附件配置分页 * * @param pageReqVO 分页查询 * @return 业务附件配置分页 */ PageResult getBusinessAttachPage(BpmBusinessAttachPageReqVO pageReqVO); /** * 获得业务附件配置,基于流程定义 Key * * @param processDefinitionKey 流程定义 Key * @return 业务附件配置 */ BpmBusinessAttachDO getBusinessAttachByProcessDefinitionKey(String processDefinitionKey); /** * 填充业务表单信息到流程定义 Response * * 若该流程定义配置了业务附件(且已启用、当前是 NORMAL 流程表单、存在业务主键), * 则将 formType 覆盖为 CUSTOM 并注入业务详情组件路径,实现审批详情自动展示业务信息 * * @param definitionResp 流程定义 Response * @param processDefinitionKey 流程定义 Key * @param businessKey 业务的唯一标识(未发起时为 null) */ void fillBusinessForm(BpmProcessDefinitionRespVO definitionResp, String processDefinitionKey, String businessKey); }