4 天以前 06321d70dd7617fdc7d475b190e629143fec3263
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
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);
 
}