云
11 小时以前 5072520172e8f45e3ccb8afc26cf0c8186ba4cdd
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.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.MesProBatchPreGenerateReqVO;
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 reqVO 预生成信息
     * @return 新建的批次记录(含临时批次码)
     */
    List<MesProBatchDO> preGenerateBatch(@Valid MesProBatchPreGenerateReqVO reqVO);
 
    /**
     * 补录生产批次业务信息(品种、袋型、产线、日期、责任人、生产人员),生成正式批次号
     *
     * @param fillReqVO 补录信息,id 必填
     */
    void fillBatchInfo(@Valid MesProBatchSaveReqVO fillReqVO);
 
    /**
     * 更新生产批次(含生产人员配置)
     *
     * @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);
 
    /** 批次已有的绑定方式:pallet、tonBag 或空。 */
    String getBindingMode(Long id);
 
    /**
     * 校验生产批次存在
     *
     * @param id 编号
     * @return 生产批次
     */
    MesProBatchDO validateBatchExists(Long id);
 
    /**
     * 根据批次号(二维码内容)查询批次,用于扫码追溯
     *
     * @param code 批次号
     * @return 生产批次,不存在返回 null
     */
    MesProBatchDO getBatchByCode(String code);
 
    /** 内部扫码识别业务码及历史正式/临时码。 */
    MesProBatchDO getBatchByScanCode(String code);
 
    int generateBusinessCodes(java.util.List<Long> ids);
 
    /**
     * 获得生产批次分页
     *
     * @param pageReqVO 分页查询
     * @return 生产批次分页
     */
    PageResult<MesProBatchDO> getBatchPage(MesProBatchPageReqVO pageReqVO);
 
    /**
     * 获得生产批次列表
     *
     * @param ids 编号列表
     * @return 生产批次列表
     */
    List<MesProBatchDO> getBatchList(Collection<Long> ids);
 
    /**
     * 获得批次的生产人员配置列表
     *
     * @param batchId 批次编号
     * @return 人员配置列表
     */
    List<MesProBatchWorkerDO> getBatchWorkerListByBatchId(Long batchId);
 
    /**
     * 获得多个批次的生产人员配置列表
     *
     * @param batchIds 批次编号列表
     * @return 人员配置列表
     */
    List<MesProBatchWorkerDO> getBatchWorkerListByBatchIds(Collection<Long> batchIds);
 
}