liu
昨天 a08832337f8de6a53edebbab1fb0b5a3bd1785aa
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.srm.service.apply;
 
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.srm.controller.admin.apply.vo.SrmSupplierApplyPageReqVO;
import cn.iocoder.yudao.module.srm.controller.admin.apply.vo.SrmSupplierApplySaveReqVO;
import cn.iocoder.yudao.module.srm.dal.dataobject.SrmSupplierApplyDO;
import jakarta.validation.Valid;
 
import java.util.List;
import java.util.Map;
 
/**
 * SRM 供应商准入申请 Service 接口
 */
public interface SrmSupplierApplyService {
 
    /**
     * 创建准入申请
     */
    Long createApply(@Valid SrmSupplierApplySaveReqVO createReqVO);
 
    /**
     * 更新准入申请
     */
    void updateApply(@Valid SrmSupplierApplySaveReqVO updateReqVO);
 
    /**
     * 删除准入申请
     */
    void deleteApply(Long id);
 
    /**
     * 获取准入申请
     */
    SrmSupplierApplyDO getApply(Long id);
 
    /**
     * 分页查询准入申请
     */
    PageResult<SrmSupplierApplyDO> getApplyPage(SrmSupplierApplyPageReqVO pageReqVO);
 
    /**
     * 提交申请(启动协同办公流程,状态置为审批中)
     *
     * @param id                  申请编号
     * @param processDefinitionKey 协同办公流程定义 Key
     * @param userId              提交人编号
     */
    void submitApply(Long id, String processDefinitionKey, Long userId);
 
    /**
     * 获取供应商准入审批流程列表(协同办公已发布且激活的流程)
     */
    List<Map<String, Object>> getSupplierApplyApproveProcessDefinitionList();
 
    /**
     * 协同办公流程结果回写
     *
     * @param id       申请编号
     * @param bpmResult 流程结果({@link cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum})
     */
    void updateSupplierApplyAuditStatus(Long id, Integer bpmResult);
 
    /**
     * 审批通过后自动创建供应商
     */
    void approve(Long id);
 
    /**
     * 确保供应商已准入:未准入则自动创建准入申请并置为已通过(定标自动准入,不走协同办公)
     *
     * @param supplierId 供应商编号
     */
    void ensureSupplierApproved(Long supplierId);
 
}