2 天以前 f7273277023f3497ac071bf98f556a569cb4dd25
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package cn.iocoder.yudao.module.mes.service.pro.pallet;
 
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletBatchCreateReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletBindBatchReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletPreGenerateReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.pallet.MesProPalletDO;
import jakarta.validation.Valid;
 
import java.util.Collection;
import java.util.List;
 
/**
 * MES 托盘码 Service 接口
 *
 * @author 超级管理员
 */
public interface MesProPalletService {
 
    /**
     * 批量生成托盘码(码值 = 批次号-P+托盘序号),并回写批次托盘数量
     *
     * @param createReqVO 生成信息
     * @return 生成的托盘码编号列表
     */
    List<Long> batchCreatePallet(@Valid MesProPalletBatchCreateReqVO createReqVO);
 
    /**
     * 预生成托盘码二维码:不绑定生产批次,仅创建携带临时托盘码的记录
     *
     * @param reqVO 预生成信息
     * @return 新建的托盘码记录(含临时托盘码)
     */
    List<MesProPalletDO> preGeneratePallet(@Valid MesProPalletPreGenerateReqVO reqVO);
 
    /**
     * 托盘码绑定生产批次:生成正式托盘码(批次号-P+托盘序号),并回写批次托盘数量
     *
     * @param bindReqVO 绑定信息
     * @return 本次绑定的托盘数量
     */
    int bindBatch(@Valid MesProPalletBindBatchReqVO bindReqVO);
 
    /**
     * 删除托盘码(未绑定袋码才允许删除)
     *
     * @param id 编号
     */
    void deletePallet(Long id);
 
    /**
     * 获得托盘码
     *
     * @param id 编号
     * @return 托盘码
     */
    MesProPalletDO getPallet(Long id);
 
    /**
     * 校验托盘码存在
     *
     * @param id 编号
     * @return 托盘码
     */
    MesProPalletDO validatePalletExists(Long id);
 
    /**
     * 根据托盘码(二维码内容)查询托盘码,用于扫码追溯
     *
     * @param code 托盘码
     * @return 托盘码,不存在返回 null
     */
    MesProPalletDO getPalletByCode(String code);
 
    /**
     * 获得托盘码分页
     *
     * @param pageReqVO 分页查询
     * @return 托盘码分页
     */
    PageResult<MesProPalletDO> getPalletPage(MesProPalletPageReqVO pageReqVO);
 
    /**
     * 获得批次的托盘码列表
     *
     * @param batchId 批次编号
     * @return 托盘码列表
     */
    List<MesProPalletDO> getPalletListByBatchId(Long batchId);
 
    /**
     * 获得未绑定生产批次的临时托盘列表(供批次新增/补录绑定托盘下拉使用)
     *
     * @return 托盘码列表
     */
    List<MesProPalletDO> getUnboundPalletList();
 
    /**
     * 获得托盘码列表(按编号列表)
     *
     * @param ids 编号列表
     * @return 托盘码列表
     */
    List<MesProPalletDO> getPalletListByIds(Collection<Long> ids);
 
    /**
     * 更新托盘已绑定袋码数量
     *
     * @param palletId 托盘编号
     * @param bagCount 已绑定袋码数量
     */
    void updatePalletBagCount(Long palletId, Integer bagCount);
 
    /**
     * 标记托盘码为已出库(记录销售出库单编号和出库时间)
     *
     * @param id      托盘码编号
     * @param salesId 销售出库单编号
     */
    void markOutbound(Long id, Long salesId);
 
    /**
     * 清除托盘码的出库标记(取消出库单时使用)
     *
     * @param id 托盘码编号
     */
    void clearOutbound(Long id);
 
}