package cn.iocoder.yudao.module.erp.service.purchase; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request.ErpPurchaseRequestPageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request.ErpPurchaseRequestSaveReqVO; import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseRequestDO; import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseRequestItemDO; import jakarta.validation.Valid; import java.util.Collection; import java.util.List; import java.util.Map; /** * ERP 采购申请 Service 接口 */ public interface ErpPurchaseRequestService { /** * 创建采购申请 * * @param createReqVO 创建信息 * @return 编号 */ Long createPurchaseRequest(@Valid ErpPurchaseRequestSaveReqVO createReqVO); /** * 更新采购申请 * * @param updateReqVO 更新信息 */ void updatePurchaseRequest(@Valid ErpPurchaseRequestSaveReqVO updateReqVO); /** * 删除采购申请 * * @param ids 编号数组 */ void deletePurchaseRequest(List ids); /** * 获得采购申请 * * @param id 编号 * @return 采购申请 */ ErpPurchaseRequestDO getPurchaseRequest(Long id); /** * 获得采购申请分页 * * @param pageReqVO 分页查询 * @return 采购申请分页 */ PageResult getPurchaseRequestPage(ErpPurchaseRequestPageReqVO pageReqVO); /** * 获得采购申请项列表 * * @param requestId 采购申请编号 * @return 采购申请项列表 */ List getPurchaseRequestItemListByRequestId(Long requestId); /** * 获得采购申请项 List * * @param requestIds 采购申请编号数组 * @return 采购申请项 List */ List getPurchaseRequestItemListByRequestIds(Collection requestIds); /** * 提交采购申请审批 * * @param id 编号 * @param processDefinitionKey 流程定义 Key * @param userId 用户编号 */ void submitPurchaseRequest(Long id, String processDefinitionKey, Long userId); /** * 获取采购申请审批流程列表 * * @return 流程定义列表 */ List> getPurchaseRequestApproveProcessDefinitionList(); /** * 更新采购申请审批结果(BPM 回调) * * @param id 编号 * @param bpmResult BPM 审批结果 */ void updatePurchaseRequestAuditStatus(Long id, Integer bpmResult); /** * 生成采购订单 * * @param id 采购申请编号 * @param supplierId 供应商编号 * @return 采购订单编号 */ Long generatePurchaseOrder(Long id, Long supplierId); /** * 根据编号列表获取采购申请列表 * * @param ids 编号列表 * @return 采购申请列表 */ List getPurchaseRequestList(List ids); }