package cn.iocoder.yudao.module.mes.service.pro.bagcode; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeBindReqVO; import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeGenerateReqVO; import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodePageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeReplaceReqVO; import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeReplaceRespVO; import cn.iocoder.yudao.module.mes.dal.dataobject.pro.bagcode.MesProBagCodeDO; import jakarta.validation.Valid; import java.util.Collection; import java.util.List; /** * MES 袋码赋码(一袋一码)Service 接口 *
* 根据批次信息自动生成唯一二维码数据包,支持批量导出交付印刷,满足唯一性、可识别性、可追溯性要求。
*
* @author 超级管理员
*/
public interface MesProBagCodeService {
/**
* 生成袋码数据包(码值 = 批次号-袋序号),并回写批次袋码数量
*
* @param generateReqVO 生成信息
* @return 生成组 UUID(标记同一次生成的数据包)
*/
String generateBagCodes(@Valid MesProBagCodeGenerateReqVO generateReqVO);
/**
* 作废破损袋码并在原批次生成等量替换袋码
*/
MesProBagCodeReplaceRespVO replaceBagCodes(@Valid MesProBagCodeReplaceReqVO replaceReqVO);
/**
* 删除生成组(仅"已生成"状态且未绑定托盘的袋码允许删除)
*
* @param uuid 生成组 UUID
*/
void deleteBagCodesByUuid(String uuid);
/**
* 袋码绑定托盘(需同一批次、未绑定过,且不超过托盘可装袋数)
*
* @param bindReqVO 绑定信息
*/
void bindPallet(@Valid MesProBagCodeBindReqVO bindReqVO);
/**
* 袋码解绑托盘
*
* @param bindReqVO 解绑信息
*/
void unbindPallet(@Valid MesProBagCodeBindReqVO bindReqVO);
/**
* 批量标记袋码为已导出印刷(交付印刷)
*
* @param ids 袋码编号列表
*/
void markBagCodesPrinted(Collection