昨天 eccad5a129106377a275be4f7cdc58e99e9b95d4
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
package cn.iocoder.yudao.module.mes.service.wms.approval;
 
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wms.approval.WmsWarehouseApprovalConfigDO;
 
import java.util.List;
 
/**
 * WMS 审批服务接口
 */
public interface WmsApprovalService {
 
    /**
     * 获取仓库审批配置
     *
     * @param warehouseId 仓库ID
     * @param bizType     业务类型
     * @return 审批配置
     */
    WmsWarehouseApprovalConfigDO getApprovalConfig(Long warehouseId, String bizType);
 
    /**
     * 获取仓库所有审批配置
     *
     * @param warehouseId 仓库ID
     * @return 审批配置列表
     */
    List<WmsWarehouseApprovalConfigDO> getApprovalConfigList(Long warehouseId);
 
    /**
     * 保存审批配置
     *
     * @param config 审批配置
     */
    void saveApprovalConfig(WmsWarehouseApprovalConfigDO config);
 
    /**
     * 检查是否需要审批
     *
     * @param warehouseId 仓库ID
     * @param bizType     业务类型
     * @return 是否需要审批
     */
    boolean needApproval(Long warehouseId, String bizType);
 
    /**
     * 提交审批
     *
     * @param orderId             单据ID
     * @param orderType           单据类型(INBOUND/OUTBOUND/TRANSFER/CHECK)
     * @param processDefinitionKey 流程定义Key(可选,为空则使用配置的默认流程)
     * @param userId              用户ID
     * @return 流程实例ID
     */
    String submitApproval(Long orderId, String orderType, String processDefinitionKey, Long userId);
 
    /**
     * 获取可用的审批流程列表
     *
     * @param warehouseId 仓库ID
     * @param bizType     业务类型
     * @return 流程定义列表
     */
    List<BpmProcessDefinitionInfoDO> getAvailableProcessList(Long warehouseId, String bizType);
 
    /**
     * 更新审批状态
     *
     * @param orderId   单据ID
     * @param orderType 单据类型
     * @param bpmStatus BPM审批状态
     */
    void updateAuditStatus(Long orderId, String orderType, Integer bpmStatus);
 
}