| | |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderPageReqVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderSaveReqVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderImportExcelVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.sale.vo.order.ErpSaleOrderImportRespVO; |
| | | import cn.iocoder.yudao.module.erp.dal.dataobject.sale.ErpSaleOrderDO; |
| | | import cn.iocoder.yudao.module.erp.dal.dataobject.sale.ErpSaleOrderItemDO; |
| | | import jakarta.validation.Valid; |
| | |
| | | /** |
| | | * ERP 销售订单 Service 接口 |
| | | * |
| | | * @author 芋道源码 |
| | | * @author 超级管理员 |
| | | */ |
| | | public interface ErpSaleOrderService { |
| | | |
| | |
| | | Long createSaleOrder(@Valid ErpSaleOrderSaveReqVO createReqVO); |
| | | |
| | | /** |
| | | * 导入销售订单(导入后为“未提交”状态,可继续编辑或提交审批) |
| | | * |
| | | * @param importList 导入数据(每一行 = 一条明细,相同销售单编号合并为一张订单) |
| | | * @return 导入结果 |
| | | */ |
| | | ErpSaleOrderImportRespVO importSaleOrderList(List<ErpSaleOrderImportExcelVO> importList); |
| | | |
| | | /** |
| | | * 更新销售订单 |
| | | * |
| | | * @param updateReqVO 更新信息 |
| | |
| | | void updateSaleOrder(@Valid ErpSaleOrderSaveReqVO updateReqVO); |
| | | |
| | | /** |
| | | * 更新销售订单的状态 |
| | | * 提交销售订单审批(协同办公 BPM) |
| | | * |
| | | * 未提交或已驳回的销售订单可提交,提交后进入协同办公审批流程 |
| | | * |
| | | * @param id 编号 |
| | | * @param status 状态 |
| | | * @param processDefinitionKey 流程定义的标识 |
| | | * @param userId 提交人编号 |
| | | */ |
| | | void updateSaleOrderStatus(Long id, Integer status); |
| | | void submitSaleOrder(Long id, String processDefinitionKey, Long userId); |
| | | |
| | | /** |
| | | * 提交销售订单审批 |
| | | * 更新销售订单的审批状态(协同办公审批结果回调) |
| | | * |
| | | * @param id 编号 |
| | | * @param userId 用户编号 |
| | | */ |
| | | void submitSaleOrder(Long id, Long userId); |
| | | |
| | | /** |
| | | * 更新销售订单的审批状态 |
| | | * |
| | | * @param id 编号 |
| | | * @param bpmResult BPM 审批结果 |
| | | * @param bpmResult BPM 审批结果(通过/驳回/取消) |
| | | */ |
| | | void updateSaleOrderAuditStatus(Long id, Integer bpmResult); |
| | | |
| | | /** |
| | | * 获得销售订单审批流程定义列表 |
| | | * |
| | | * @return 流程定义列表(id/key/name) |
| | | */ |
| | | List<Map<String, Object>> getSaleOrderApproveProcessDefinitionList(); |
| | | |
| | | /** |
| | | * 作废销售订单 |
| | | * |
| | | * @param id 编号 |
| | | */ |
| | | void cancelSaleOrder(Long id); |
| | | |
| | | /** |
| | | * 重新启用销售订单 |
| | | * |
| | | * @param id 编号 |
| | | */ |
| | | void enableSaleOrder(Long id); |
| | | |
| | | /** |
| | | * 更新销售订单的出库数量 |
| | |
| | | * @param outCountMap 出库数量 Map:key 销售订单项编号;value 出库数量 |
| | | */ |
| | | void updateSaleOrderOutCount(Long id, Map<Long, BigDecimal> outCountMap); |
| | | |
| | | /** |
| | | * 更新销售订单的退货数量 |
| | | * |
| | | * @param orderId 编号 |
| | | * @param returnCountMap 退货数量 Map:key 销售订单项编号;value 退货数量 |
| | | */ |
| | | void updateSaleOrderReturnCount(Long orderId, Map<Long, BigDecimal> returnCountMap); |
| | | |
| | | /** |
| | | * 删除销售订单 |
| | |
| | | */ |
| | | List<ErpSaleOrderItemDO> getSaleOrderItemListByOrderIds(Collection<Long> orderIds); |
| | | |
| | | /** |
| | | * 更新销售订单的出库状态 |
| | | * |
| | | * 根据明细出库数量自动计算订单状态: |
| | | * - 所有明细都完成出库 → 全部出库状态 |
| | | * - 部分明细完成出库 → 部分出库状态 |
| | | * - 无明细出库 → 未出库状态 |
| | | * |
| | | * @param orderId 订单编号 |
| | | */ |
| | | void updateSaleOrderOutStatus(Long orderId); |
| | | |
| | | } |