| | |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.order.ErpPurchaseOrderPageReqVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.order.ErpPurchaseOrderSaveReqVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.order.ErpPurchaseOrderImportExcelVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.order.ErpPurchaseOrderImportRespVO; |
| | | import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseOrderDO; |
| | | import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseOrderItemDO; |
| | | import jakarta.validation.Valid; |
| | |
| | | /** |
| | | * ERP 采购订单 Service 接口 |
| | | * |
| | | * @author 芋道源码 |
| | | * @author 超级管理员 |
| | | */ |
| | | public interface ErpPurchaseOrderService { |
| | | |
| | |
| | | * @return 编号 |
| | | */ |
| | | Long createPurchaseOrder(@Valid ErpPurchaseOrderSaveReqVO createReqVO); |
| | | |
| | | /** |
| | | * 导入采购订单 |
| | | * |
| | | * @param importList 导入数据(每一行 = 一条明细,相同采购单编号合并为一张订单) |
| | | * @param directApprove 是否将导入的订单直接置为“已审核”:true=已审核(20),false=未审核(10) |
| | | * @return 导入结果 |
| | | */ |
| | | ErpPurchaseOrderImportRespVO importPurchaseOrderList(List<ErpPurchaseOrderImportExcelVO> importList, Boolean directApprove); |
| | | |
| | | /** |
| | | * 更新采购订单 |
| | |
| | | * 提交采购订单审批 |
| | | * |
| | | * @param id 编号 |
| | | * @param processDefinitionKey 流程定义 Key |
| | | * @param userId 用户编号 |
| | | */ |
| | | void submitPurchaseOrder(Long id, Long userId); |
| | | void submitPurchaseOrder(Long id, String processDefinitionKey, Long userId); |
| | | |
| | | /** |
| | | * 更新采购订单的审批状态 |
| | | * 获取采购订单审批流程列表 |
| | | * |
| | | * @return 流程定义列表 |
| | | */ |
| | | List<Map<String, Object>> getPurchaseOrderApproveProcessDefinitionList(); |
| | | |
| | | /** |
| | | * 更新采购订单审批结果(BPM 回调) |
| | | * |
| | | * @param id 编号 |
| | | * @param bpmResult BPM 审批结果 |
| | |
| | | ErpPurchaseOrderDO getPurchaseOrder(Long id); |
| | | |
| | | /** |
| | | * 根据 BPM 流程实例编号查询采购订单(用于协同办公反审批) |
| | | * |
| | | * @param processInstanceId 流程实例编号 |
| | | * @return 采购订单 |
| | | */ |
| | | ErpPurchaseOrderDO getPurchaseOrderByProcessInstanceId(String processInstanceId); |
| | | |
| | | /** |
| | | * 校验采购订单,已经审核通过 |
| | | * |
| | | * @param id 编号 |
| | |
| | | */ |
| | | List<ErpPurchaseOrderItemDO> getPurchaseOrderItemListByOrderIds(Collection<Long> orderIds); |
| | | |
| | | /** |
| | | * 根据供应商编号和状态获取采购订单列表 |
| | | * |
| | | * @param supplierId 供应商编号 |
| | | * @param status 状态 |
| | | * @return 采购订单列表 |
| | | */ |
| | | List<ErpPurchaseOrderDO> getPurchaseOrderListBySupplierIdAndStatus(Long supplierId, Integer status); |
| | | |
| | | /** |
| | | * 根据编号列表获取采购订单列表 |
| | | * |
| | | * @param ids 编号列表 |
| | | * @return 采购订单列表 |
| | | */ |
| | | List<ErpPurchaseOrderDO> getPurchaseOrderList(List<Long> ids); |
| | | |
| | | /** |
| | | * 按来源查询采购订单列表 |
| | | * |
| | | * @param sourceType 来源类型 |
| | | * @param sourceId 来源单据编号 |
| | | * @return 采购订单列表 |
| | | */ |
| | | List<ErpPurchaseOrderDO> getPurchaseOrderListBySource(Integer sourceType, Long sourceId); |
| | | |
| | | /** |
| | | * 更新采购订单的入库状态 |
| | | * |
| | | * 根据明细入库数量自动计算订单状态: |
| | | * - 所有明细都完成入库 → 全部入库状态 |
| | | * - 部分明细完成入库 → 部分入库状态 |
| | | * - 无明细入库 → 未入库状态 |
| | | * |
| | | * @param orderId 订单编号 |
| | | */ |
| | | void updatePurchaseOrderInStatus(Long orderId); |
| | | |
| | | /** |
| | | * 确认收货 |
| | | * |
| | | * 生成到货通知单,状态为待入库 |
| | | * |
| | | * @param id 采购订单编号 |
| | | * @return 到货通知单编号 |
| | | */ |
| | | Long confirmReceipt(Long id); |
| | | |
| | | } |