liyong
4 天以前 be5783c8a7e13bbc76d33c95643d75779cce21db
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
package cn.iocoder.yudao.module.mes.service.md.item;
 
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.mes.controller.admin.md.item.vo.MesMdItemImportExcelVO;
import cn.iocoder.yudao.module.mes.controller.admin.md.item.vo.MesMdItemImportRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.md.item.vo.MesMdItemPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.md.item.vo.MesMdItemSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
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 接口
 *
 * @author 芋道源码
 */
public interface MesMdItemService {
 
    /**
     * 创建物料产品
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createItem(@Valid MesMdItemSaveReqVO createReqVO);
 
    /**
     * 更新物料产品
     *
     * @param updateReqVO 更新信息
     */
    void updateItem(@Valid MesMdItemSaveReqVO updateReqVO);
 
    /**
     * 更新物料产品状态
     *
     * @param id     编号
     * @param status 状态
     */
    void updateItemStatus(Long id, Integer status);
 
    /**
     * 删除物料产品
     *
     * @param id 编号
     */
    void deleteItem(Long id);
 
    /**
     * 获得物料产品
     *
     * @param id 编号
     * @return 物料产品
     */
    MesMdItemDO getItem(Long id);
 
    /**
     * 根据编码获得物料产品
     *
     * @param code 物料编码
     * @return 物料产品
     */
    MesMdItemDO getItemByCode(String code);
 
    /**
     * 校验物料产品存在
     *
     * @param id 编号
     * @return 物料产品
     */
    MesMdItemDO validateItemExists(Long id);
 
    /**
     * 校验物料产品存在且启用
     *
     * @param id 编号
     * @return 物料产品
     */
    MesMdItemDO validateItemExistsAndEnable(Long id);
 
    /**
     * 获得物料产品分页
     *
     * @param pageReqVO 分页查询
     * @return 物料产品分页
     */
    PageResult<MesMdItemDO> getItemPage(MesMdItemPageReqVO pageReqVO);
 
    /**
     * 获得物料产品列表
     *
     * @param ids 编号数组
     * @return 物料产品列表
     */
    List<MesMdItemDO> getItemList(Collection<Long> ids);
 
    /**
     * 获得物料产品 Map
     *
     * @param ids 编号数组
     * @return 物料产品 Map
     */
    default Map<Long, MesMdItemDO> getItemMap(Collection<Long> ids) {
        return convertMap(getItemList(ids), MesMdItemDO::getId);
    }
 
    /**
     * 基于物料分类编号,获得物料数量
     *
     * @param itemTypeId 物料分类编号
     * @return 物料数量
     */
    Long getItemCountByItemTypeId(Long itemTypeId);
 
    /**
     * 批量导入物料
     *
     * @param importItems 导入物料列表
     * @param updateSupport 是否支持更新
     * @return 导入结果
     */
    MesMdItemImportRespVO importItemList(List<MesMdItemImportExcelVO> importItems, boolean updateSupport);
 
    /**
     * 基于计量单位编号,获得物料数量
     *
     * @param unitMeasureId 计量单位编号
     * @return 物料数量
     */
    Long getItemCountByUnitMeasureId(Long unitMeasureId);
 
    /**
     * 根据 MDM 物料 ID 获取 MES 产品
     *
     * @param mdmItemId MDM 物料 ID
     * @return MES 产品,不存在返回 null
     */
    MesMdItemDO getItemByMdmItemId(Long mdmItemId);
 
    /**
     * 根据 MDM 物料 ID 校验 MES 产品存在
     *
     * @param mdmItemId MDM 物料 ID
     * @return MES 产品
     * @throws cn.iocoder.yudao.framework.common.exception.ServiceException 如果产品不存在
     */
    MesMdItemDO validateItemExistsByMdmItemId(Long mdmItemId);
 
}