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.dal.dataobject.pro.bagcode.MesProBagCodeDO;
|
import jakarta.validation.Valid;
|
|
import java.util.Collection;
|
import java.util.List;
|
|
/**
|
* MES 袋码赋码(一袋一码)Service 接口
|
* <p>
|
* 根据批次信息自动生成唯一二维码数据包,支持批量导出交付印刷,满足唯一性、可识别性、可追溯性要求。
|
*
|
* @author 超级管理员
|
*/
|
public interface MesProBagCodeService {
|
|
/**
|
* 生成袋码数据包(码值 = 批次号-袋序号),并回写批次袋码数量
|
*
|
* @param generateReqVO 生成信息
|
* @return 生成组 UUID(标记同一次生成的数据包)
|
*/
|
String generateBagCodes(@Valid MesProBagCodeGenerateReqVO generateReqVO);
|
|
/**
|
* 删除生成组(仅"已生成"状态且未绑定托盘的袋码允许删除)
|
*
|
* @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<Long> ids);
|
|
/**
|
* 获得袋码
|
*
|
* @param id 编号
|
* @return 袋码
|
*/
|
MesProBagCodeDO getBagCode(Long id);
|
|
/**
|
* 校验袋码存在
|
*
|
* @param id 编号
|
* @return 袋码
|
*/
|
MesProBagCodeDO validateBagCodeExists(Long id);
|
|
/**
|
* 根据袋码(二维码内容)查询袋码,用于扫码追溯
|
*
|
* @param code 袋码
|
* @return 袋码,不存在返回 null
|
*/
|
MesProBagCodeDO getBagCodeByCode(String code);
|
|
/**
|
* 获得袋码分页
|
*
|
* @param pageReqVO 分页查询
|
* @return 袋码分页
|
*/
|
PageResult<MesProBagCodeDO> getBagCodePage(MesProBagCodePageReqVO pageReqVO);
|
|
/**
|
* 获得生成组的袋码列表
|
*
|
* @param uuid 生成组 UUID
|
* @return 袋码列表
|
*/
|
List<MesProBagCodeDO> getBagCodeListByUuid(String uuid);
|
|
/**
|
* 获得绑定在某托盘上的袋码列表(按袋序号升序),用于托盘扫码追溯
|
*
|
* @param palletId 托盘编号
|
* @return 袋码列表
|
*/
|
List<MesProBagCodeDO> getBagCodeListByPalletId(Long palletId);
|
|
/**
|
* 获得某批次下的全部袋码列表(按袋序号升序),用于批量导出二维码
|
*
|
* @param batchId 批次编号
|
* @return 袋码列表
|
*/
|
List<MesProBagCodeDO> getBagCodeListByBatchId(Long batchId);
|
|
}
|