9 天以前 d5cd948848595b0cffe098ba542a9c879b0f9165
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.task;
 
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO;
import jakarta.validation.Valid;
 
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
import java.util.Map;
 
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
 
/**
 * MES 生产任务 Service 接口
 *
 * @author 芋道源码
 */
public interface MesProTaskService {
 
    /**
     * 创建生产任务
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createTask(@Valid MesProTaskSaveReqVO createReqVO);
 
    /**
     * 更新生产任务
     *
     * @param updateReqVO 更新信息
     */
    void updateTask(@Valid MesProTaskSaveReqVO updateReqVO);
 
    /**
     * 删除生产任务
     *
     * @param id 编号
     */
    void deleteTask(Long id);
 
    /**
     * 获得生产任务
     *
     * @param id 编号
     * @return 生产任务
     */
    MesProTaskDO getTask(Long id);
 
    /**
     * 获得生产任务分页
     *
     * @param pageReqVO 分页查询
     * @return 生产任务分页
     */
    PageResult<MesProTaskDO> getTaskPage(MesProTaskPageReqVO pageReqVO);
 
    /**
     * 根据工单编号列表,批量获得生产任务列表
     *
     * @param workOrderIds 工单编号列表
     * @return 生产任务列表
     */
    List<MesProTaskDO> getTaskListByWorkOrderIds(Collection<Long> workOrderIds);
 
    /**
     * 校验任务是否存在
     *
     * @param id 编号
     * @return 生产任务
     */
    MesProTaskDO validateTaskExists(Long id);
 
    /**
     * 校验任务存在且未完成(非终态)
     *
     * @param id 编号
     * @return 生产任务
     */
    MesProTaskDO validateTaskNotFinished(Long id);
 
    /**
     * 获得生产任务列表
     *
     * @param ids 编号列表
     * @return 生产任务列表
     */
    List<MesProTaskDO> getTaskList(Collection<Long> ids);
 
    /**
     * 获得生产任务 Map
     *
     * @param ids 编号列表
     * @return 生产任务 Map
     */
    default Map<Long, MesProTaskDO> getTaskMap(Collection<Long> ids) {
        return convertMap(getTaskList(ids), MesProTaskDO::getId);
    }
 
    /**
     * 根据工单编号,完成所有关联任务
     *
     * @param workOrderId 工单编号
     */
    void finishTaskByOrderId(Long workOrderId);
 
    /**
     * 根据工单编号,取消所有关联任务
     *
     * @param workOrderId 工单编号
     */
    void cancelTaskByOrderId(Long workOrderId);
 
    /**
     * 累加任务的已生产、合格、不合格数量
     *
     * @param id                    任务编号
     * @param incrProducedQuantity  本次已生产数量增量(不良品也计入)
     * @param incrQualifyQuantity   本次合格品数量增量
     * @param incrUnqualifyQuantity 本次不合格品数量增量
     */
    void updateProducedQuantity(Long id,
                                BigDecimal incrProducedQuantity,
                                BigDecimal incrQualifyQuantity,
                                BigDecimal incrUnqualifyQuantity);
 
}