package cn.iocoder.yudao.module.mes.service.pro.batch; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.mes.controller.admin.pro.batch.vo.MesProBatchPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.pro.batch.vo.MesProBatchSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.pro.batch.MesProBatchDO; import cn.iocoder.yudao.module.mes.dal.dataobject.pro.batch.MesProBatchWorkerDO; import jakarta.validation.Valid; import java.util.Collection; import java.util.List; /** * MES 生产批次 Service 接口 * * @author 超级管理员 */ public interface MesProBatchService { /** * 创建生产批次(含生产人员配置),自动生成批次号 * * @param createReqVO 创建信息 * @return 编号 */ Long createBatch(@Valid MesProBatchSaveReqVO createReqVO); /** * 更新生产批次(含生产人员配置) * * @param updateReqVO 更新信息 */ void updateBatch(@Valid MesProBatchSaveReqVO updateReqVO); /** * 删除生产批次 * * @param id 编号 */ void deleteBatch(Long id); /** * 更新生产批次状态 * * @param id 编号 * @param status 目标状态 */ void updateBatchStatus(Long id, Integer status); /** * 获得生产批次 * * @param id 编号 * @return 生产批次 */ MesProBatchDO getBatch(Long id); /** * 校验生产批次存在 * * @param id 编号 * @return 生产批次 */ MesProBatchDO validateBatchExists(Long id); /** * 根据批次号(二维码内容)查询批次,用于扫码追溯 * * @param code 批次号 * @return 生产批次,不存在返回 null */ MesProBatchDO getBatchByCode(String code); /** * 获得生产批次分页 * * @param pageReqVO 分页查询 * @return 生产批次分页 */ PageResult getBatchPage(MesProBatchPageReqVO pageReqVO); /** * 获得生产批次列表 * * @param ids 编号列表 * @return 生产批次列表 */ List getBatchList(Collection ids); /** * 获得批次的生产人员配置列表 * * @param batchId 批次编号 * @return 人员配置列表 */ List getBatchWorkerListByBatchId(Long batchId); /** * 获得多个批次的生产人员配置列表 * * @param batchIds 批次编号列表 * @return 人员配置列表 */ List getBatchWorkerListByBatchIds(Collection batchIds); }