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
package cn.iocoder.yudao.module.mes.api.item;
 
import cn.iocoder.yudao.module.mes.api.item.dto.MesMdItemSyncReqDTO;
 
import java.util.Collection;
import java.util.Set;
 
/**
 * MES 物料产品 API 接口
 *
 * 供其他模块(如 MDM)同步物料主数据到 MES 使用。
 * 单位、分类均按 code 传递,由 MES 侧解析为对应 id。
 *
 * @author 芋道源码
 */
public interface MesMdItemApi {
 
    /**
     * 创建 MES 物料产品(同步用)
     *
     * @param syncReqDTO 同步信息(单位/分类传 code)
     * @return MES 物料编号
     */
    Long createItem(MesMdItemSyncReqDTO syncReqDTO);
 
    /**
     * 更新 MES 物料产品(同步用)
     *
     * 按 code 匹配:存在则更新,不存在则创建(upsert)。
     *
     * @param syncReqDTO 同步信息
     */
    void updateItem(MesMdItemSyncReqDTO syncReqDTO);
 
    /**
     * 删除 MES 物料产品(同步用)
     *
     * 按 MDM 物料 ID 查找 MES 记录并删除,不存在则忽略。
     *
     * @param mdmItemId MDM 物料 ID
     */
    void deleteItem(Long mdmItemId);
 
    /**
     * 更新 MES 物料产品状态(同步用)
     *
     * 按 MDM 物料 ID 查找 MES 记录并更新状态,不存在则忽略。
     *
     * @param mdmItemId MDM 物料 ID
     * @param status    状态
     */
    void updateItemStatus(Long mdmItemId, Integer status);
 
    /**
     * 获取已同步到 MES 的 MDM 物料 ID 集合
     *
     * @param mdmItemIds MDM 物料 ID 列表
     * @return 存在于 MES 中的 MDM 物料 ID 集合
     */
    Set<Long> getSyncedMdmItemIds(Collection<Long> mdmItemIds);
 
}