tuqin
5 天以前 67d3ab41f4989faf4db5f7f95f56b8595dd8eb3b
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
package cn.iocoder.yudao.module.erp.service.purchase;
 
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request.ErpPurchaseRequestPageReqVO;
import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request.ErpPurchaseRequestSaveReqVO;
import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request.ErpPurchaseRequestImportExcelVO;
import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request.ErpPurchaseRequestImportRespVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseRequestDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseRequestItemDO;
import jakarta.validation.Valid;
 
import java.util.Collection;
import java.util.List;
import java.util.Map;
 
/**
 * ERP 采购申请 Service 接口
 */
public interface ErpPurchaseRequestService {
 
    /**
     * 创建采购申请
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createPurchaseRequest(@Valid ErpPurchaseRequestSaveReqVO createReqVO);
 
    /**
     * 导入采购申请
     *
     * @param importList 导入数据(每一行 = 一条明细,相同采购申请单号合并为一张申请)
     * @return 导入结果
     */
    ErpPurchaseRequestImportRespVO importPurchaseRequestList(List<ErpPurchaseRequestImportExcelVO> importList);
 
    /**
     * 更新采购申请
     *
     * @param updateReqVO 更新信息
     */
    void updatePurchaseRequest(@Valid ErpPurchaseRequestSaveReqVO updateReqVO);
 
    /**
     * 删除采购申请
     *
     * @param ids 编号数组
     */
    void deletePurchaseRequest(List<Long> ids);
 
    /**
     * 获得采购申请
     *
     * @param id 编号
     * @return 采购申请
     */
    ErpPurchaseRequestDO getPurchaseRequest(Long id);
 
    /**
     * 获得采购申请分页
     *
     * @param pageReqVO 分页查询
     * @return 采购申请分页
     */
    PageResult<ErpPurchaseRequestDO> getPurchaseRequestPage(ErpPurchaseRequestPageReqVO pageReqVO);
 
    /**
     * 获得采购申请项列表
     *
     * @param requestId 采购申请编号
     * @return 采购申请项列表
     */
    List<ErpPurchaseRequestItemDO> getPurchaseRequestItemListByRequestId(Long requestId);
 
    /**
     * 获得采购申请项 List
     *
     * @param requestIds 采购申请编号数组
     * @return 采购申请项 List
     */
    List<ErpPurchaseRequestItemDO> getPurchaseRequestItemListByRequestIds(Collection<Long> requestIds);
 
    /**
     * 提交采购申请审批
     *
     * @param id 编号
     * @param processDefinitionKey 流程定义 Key
     * @param userId 用户编号
     */
    void submitPurchaseRequest(Long id, String processDefinitionKey, Long userId);
 
    /**
     * 获取采购申请审批流程列表
     *
     * @return 流程定义列表
     */
    List<Map<String, Object>> getPurchaseRequestApproveProcessDefinitionList();
 
    /**
     * 更新采购申请审批结果(BPM 回调)
     *
     * @param id 编号
     * @param bpmResult BPM 审批结果
     */
    void updatePurchaseRequestAuditStatus(Long id, Integer bpmResult);
 
    /**
     * 生成采购订单
     *
     * @param id 采购申请编号
     * @param supplierId 供应商编号
     * @return 采购订单编号
     */
    Long generatePurchaseOrder(Long id, Long supplierId);
 
    /**
     * 重置采购申请状态(驳回 → 草稿)
     *
     * @param id 编号
     */
    void resetPurchaseRequestStatus(Long id);
 
    /**
     * 根据编号列表获取采购申请列表
     *
     * @param ids 编号列表
     * @return 采购申请列表
     */
    List<ErpPurchaseRequestDO> getPurchaseRequestList(List<Long> ids);
 
}