liyong
9 天以前 88e384da863bb2f7324cb1e1474885df3b7cce91
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
package cn.iocoder.yudao.module.mes.service.wm.salesnotice;
 
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.mes.controller.admin.wm.salesnotice.vo.MesWmSalesNoticePageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.salesnotice.vo.MesWmSalesNoticeSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.salesnotice.MesWmSalesNoticeDO;
import jakarta.validation.Valid;
 
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 接口
 */
public interface MesWmSalesNoticeService {
 
    /**
     * 创建发货通知单
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createSalesNotice(@Valid MesWmSalesNoticeSaveReqVO createReqVO);
 
    /**
     * 修改发货通知单
     *
     * @param updateReqVO 修改信息
     */
    void updateSalesNotice(@Valid MesWmSalesNoticeSaveReqVO updateReqVO);
 
    /**
     * 删除发货通知单
     *
     * @param id 编号
     */
    void deleteSalesNotice(Long id);
 
    /**
     * 校验发货通知单存在
     *
     * @param id 编号
     * @return 发货通知单
     */
    MesWmSalesNoticeDO validateSalesNoticeExists(Long id);
 
    /**
     * 获得发货通知单
     *
     * @param id 编号
     * @return 发货通知单
     */
    MesWmSalesNoticeDO getSalesNotice(Long id);
 
    /**
     * 获得发货通知单分页
     *
     * @param pageReqVO 分页参数
     * @return 发货通知单分页
     */
    PageResult<MesWmSalesNoticeDO> getSalesNoticePage(MesWmSalesNoticePageReqVO pageReqVO);
 
    /**
     * 提交发货通知单
     *
     * @param id 编号
     */
    void submitSalesNotice(Long id);
 
    /**
     * 获得发货通知单列表
     *
     * @param ids 编号列表
     * @return 发货通知单列表
     */
    List<MesWmSalesNoticeDO> getSalesNoticeList(Collection<Long> ids);
 
    /**
     * 获得发货通知单 Map
     *
     * @param ids 编号列表
     * @return 发货通知单 Map
     */
    default Map<Long, MesWmSalesNoticeDO> getSalesNoticeMap(Collection<Long> ids) {
        return convertMap(getSalesNoticeList(ids), MesWmSalesNoticeDO::getId);
    }
 
    /**
     * 从销售订单生成发货通知单
     *
     * @param saleOrderId 销售订单ID
     * @return 发货通知单ID
     */
    Long generateSalesNoticeFromSaleOrder(Long saleOrderId);
 
    /**
     * 完成发货通知单(出库完成后调用)
     *
     * @param id 编号
     */
    void finishSalesNotice(Long id);
 
}