package cn.iocoder.yudao.module.srm.service.apply; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.srm.controller.admin.apply.vo.SrmSupplierApplyPageReqVO; import cn.iocoder.yudao.module.srm.controller.admin.apply.vo.SrmSupplierApplySaveReqVO; import cn.iocoder.yudao.module.srm.dal.dataobject.SrmSupplierApplyDO; import jakarta.validation.Valid; import java.util.List; import java.util.Map; /** * SRM 供应商准入申请 Service 接口 */ public interface SrmSupplierApplyService { /** * 创建准入申请 */ Long createApply(@Valid SrmSupplierApplySaveReqVO createReqVO); /** * 更新准入申请 */ void updateApply(@Valid SrmSupplierApplySaveReqVO updateReqVO); /** * 删除准入申请 */ void deleteApply(Long id); /** * 获取准入申请 */ SrmSupplierApplyDO getApply(Long id); /** * 分页查询准入申请 */ PageResult getApplyPage(SrmSupplierApplyPageReqVO pageReqVO); /** * 提交申请(启动协同办公流程,状态置为审批中) * * @param id 申请编号 * @param processDefinitionKey 协同办公流程定义 Key * @param userId 提交人编号 */ void submitApply(Long id, String processDefinitionKey, Long userId); /** * 获取供应商准入审批流程列表(协同办公已发布且激活的流程) */ List> getSupplierApplyApproveProcessDefinitionList(); /** * 协同办公流程结果回写 * * @param id 申请编号 * @param bpmResult 流程结果({@link cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum}) */ void updateSupplierApplyAuditStatus(Long id, Integer bpmResult); /** * 审批通过后自动创建供应商 */ void approve(Long id); /** * 确保供应商已准入:未准入则自动创建准入申请并置为已通过(定标自动准入,不走协同办公) * * @param supplierId 供应商编号 */ void ensureSupplierApproved(Long supplierId); }