package cn.iocoder.yudao.module.mes.service.wm.sn; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.mes.controller.admin.wm.sn.vo.MesWmSnGenerateReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.sn.vo.MesWmSnGroupRespVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.sn.vo.MesWmSnDetailRespVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.sn.vo.MesWmSnInStockPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.sn.vo.MesWmSnInStockReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.sn.vo.MesWmSnOutStockReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.sn.vo.MesWmSnPageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.sn.MesWmSnDO; import java.util.List; /** * MES SN 码 Service 接口 * * @author 超级管理员 */ public interface MesWmSnService { /** * 批量生成 SN 码 * * @param reqVO 生成请求 */ void generateSnCodes(MesWmSnGenerateReqVO reqVO); /** * 获得 SN 码分组分页(按 UUID 聚合) * * @param reqVO 分页查询 * @return SN 码分组分页 */ PageResult getSnGroupPage(MesWmSnPageReqVO reqVO); /** * 获得批次 SN 码列表 * * @param uuid 批次 UUID * @return SN 码列表 */ List getSnListByUuid(String uuid); /** * 批量删除 SN 码(按批次 UUID) * * @param uuid 批次 UUID */ void deleteSnByUuid(String uuid); /** * 入库登记:按 SN 建立库存事务并入台(单件入库) * * @param reqVO 入库登记请求 */ void registerSnInStock(MesWmSnInStockReqVO reqVO); /** * 出库核销:按 SN 建立出库事务并核销(单件出库) * * @param reqVO 出库核销请求 */ void outboundSn(MesWmSnOutStockReqVO reqVO); /** * 获得 SN 单件明细(状态、在库位置、最近一笔库存事务) * * @param snCode SN 码 * @return SN 单件明细 */ MesWmSnDetailRespVO getSnDetail(String snCode); /** * 按状态/物料/库位等维度分页查询 SN 码(在库核对) * * @param reqVO 分页查询 * @return SN 码分页 */ PageResult getSnInStockPage(MesWmSnInStockPageReqVO reqVO); }