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.MesWmProductReceiptImportExcelVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.wm.productreceipt.vo.MesWmProductReceiptImportRespVO;
|
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.dal.dataobject.wm.productproduce.MesWmProductProduceDO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceLineDO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productreceipt.MesWmProductReceiptDO;
|
import jakarta.validation.Valid;
|
|
import java.util.List;
|
|
/**
|
* MES 产品收货单 Service 接口
|
*/
|
public interface MesWmProductReceiptService {
|
|
/**
|
* 创建产品收货单
|
*
|
* @param createReqVO 创建信息
|
* @return 编号
|
*/
|
Long createProductReceipt(@Valid MesWmProductReceiptSaveReqVO createReqVO);
|
|
/**
|
* 根据生产产出生成产品入库单草稿及合格品行。
|
*
|
* @param produce 产品产出单
|
* @param produceLines 产品产出行
|
* @param lastProcess 是否末道工序(末道生成成品入库单,中间工序生成半成品入库单)
|
* @return 产品入库单编号;没有合格品时返回 {@code null}
|
*/
|
Long generateProductReceipt(MesWmProductProduceDO produce,
|
List<MesWmProductProduceLineDO> produceLines,
|
boolean lastProcess);
|
|
/**
|
* 修改产品收货单
|
*
|
* @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);
|
|
/**
|
* 校验产品收货单存在且处于可编辑状态(草稿或待上架)
|
*
|
* @param id 编号
|
* @return 产品收货单
|
*/
|
MesWmProductReceiptDO validateProductReceiptEditable(Long id);
|
|
/**
|
* 校验产品收货单明细数量(每行明细数量之和是否等于行收货数量)
|
*
|
* @param id 编号
|
* @return 是否匹配
|
*/
|
Boolean checkProductReceiptQuantity(Long id);
|
|
/**
|
* 导入产品收货单
|
*
|
* @param importList 导入数据
|
* @param updateSupport 是否支持更新
|
* @return 导入结果
|
*/
|
MesWmProductReceiptImportRespVO importProductReceiptList(List<MesWmProductReceiptImportExcelVO> importList, boolean updateSupport);
|
|
}
|