package cn.iocoder.yudao.module.mes.service.wm.productreceipt;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.module.mes.controller.admin.wm.productreceipt.vo.MesWmProductReceiptPageReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.wm.productreceipt.vo.MesWmProductReceiptSaveReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.wm.productreceipt.vo.MesWmProductReceiptStockReqVO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productreceipt.MesWmProductReceiptDO;
|
import jakarta.validation.Valid;
|
|
/**
|
* MES 产品收货单 Service 接口
|
*/
|
public interface MesWmProductReceiptService {
|
|
/**
|
* 创建产品收货单
|
*
|
* @param createReqVO 创建信息
|
* @return 编号
|
*/
|
Long createProductReceipt(@Valid MesWmProductReceiptSaveReqVO createReqVO);
|
|
/**
|
* 修改产品收货单
|
*
|
* @param updateReqVO 修改信息
|
*/
|
void updateProductReceipt(@Valid MesWmProductReceiptSaveReqVO updateReqVO);
|
|
/**
|
* 删除产品收货单(级联删除行+明细)
|
*
|
* @param id 编号
|
*/
|
void deleteProductReceipt(Long id);
|
|
/**
|
* 获得产品收货单
|
*
|
* @param id 编号
|
* @return 产品收货单
|
*/
|
MesWmProductReceiptDO getProductReceipt(Long id);
|
|
/**
|
* 获得产品收货单分页
|
*
|
* @param pageReqVO 分页参数
|
* @return 产品收货单分页
|
*/
|
PageResult<MesWmProductReceiptDO> getProductReceiptPage(MesWmProductReceiptPageReqVO pageReqVO);
|
|
/**
|
* 提交产品收货单(草稿 → 待上架)
|
*
|
* @param id 编号
|
*/
|
void submitProductReceipt(Long id);
|
|
/**
|
* 执行上架(待上架 → 待入库)
|
*
|
* @param id 编号
|
*/
|
void stockProductReceipt(Long id);
|
|
/**
|
* 执行入库(待入库 → 已完成),更新库存台账
|
*
|
* @param id 编号
|
*/
|
void finishProductReceipt(Long id);
|
|
/**
|
* 取消产品收货单(任意非已完成/已取消状态 → 已取消)
|
*
|
* @param id 编号
|
*/
|
void cancelProductReceipt(Long id);
|
|
/**
|
* 报工产出定稿后自动生成产品入库单(一次报工=一条,幂等)
|
*
|
* <p>行数据来自生产入库单产出行(合格/不合格分行),质量状态原样带入,
|
* is_stock 默认 false(未勾选,执行入库时默认进不合格仓库)。
|
*
|
* @param feedbackId 报工编号
|
* @return 产品入库单编号
|
*/
|
Long createProductReceiptByFeedback(Long feedbackId);
|
|
/**
|
* 批量上架(勾选是否入库 + 仓库/库区/库位分配数量)
|
*
|
* <p>仅允许待上架(APPROVING)状态执行;勾选入库的行要求分配数量之和等于行收货数量;
|
* 未勾选入库的行不分配明细,执行入库时自动进不合格仓库。
|
*
|
* @param reqVO 上架请求
|
*/
|
void submitStock(MesWmProductReceiptStockReqVO reqVO);
|
|
/**
|
* 校验产品收货单存在且处于可编辑状态(草稿或待上架)
|
*
|
* @param id 编号
|
* @return 产品收货单
|
*/
|
MesWmProductReceiptDO validateProductReceiptEditable(Long id);
|
|
/**
|
* 校验产品收货单明细数量(每行明细数量之和是否等于行收货数量)
|
*
|
* @param id 编号
|
* @return 是否匹配
|
*/
|
Boolean checkProductReceiptQuantity(Long id);
|
|
}
|