lihang
2023-05-23 1d91a31301494b9f0b7e17b3eef280f8d54e2806
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
package com.vci.ubcs.omd.service;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vci.ubcs.omd.dto.RevisionRuleDTO;
import com.vci.ubcs.omd.entity.RevisionRule;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import com.vci.ubcs.omd.vo.RevisionRuleVO;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
import org.springblade.core.mp.support.Query;
 
import java.util.Collection;
import java.util.List;
import java.util.Map;
 
/**
 * Description: 版本规则服务定义
 *
 * @author LiHang
 * @date 2023/5/17
 */
public interface IRevisionRuleService extends IService<RevisionRule> {
    /**
     * 获取版本规则列表
     * @param condition 查询条件
     * @param query 分页信息和排序信息,默认使用id排序
     * @return 版本规则对象列表
     * @throws VciBaseException 查询出错时会抛出异常
     */
    IPage<RevisionRuleVO> listRevisionRule(Map<String, String> condition, Query query) throws VciBaseException;
 
    /**
     * 根据主键获取版本规则
     * @param pkRevisionRule 版本规则主键
     * @return 版本规则,如果不存在会返回null
     * @throws VciBaseException 参数为空或者查询出错时会抛出错误
     */
    RevisionRuleVO getRevisionRuleByOid(String pkRevisionRule) throws VciBaseException;
 
    /**
     * 根据主键批量获取版本规则
     * @param pkRevisionRules 版本规则主键,用逗号分隔
     * @return 版本规则列表,如果有不存在的不会返回,全部不存在的则返回空列表
     * @throws VciBaseException 参数为空或者查询出错时会抛出错误
     */
    List<RevisionRuleVO> listRevisionRuleByOids(String pkRevisionRules) throws VciBaseException;
 
    /**
     * 批量根据主键获取版本规则
     * @param pkRevisionRuleCollection 版本规则主键集合
     * @return 版本规则列表,如果有不存在的不会返回,全部不存在的则返回空列表
     * @throws VciBaseException 参数为空或者查询出错时会抛出错误
     */
    List<RevisionRuleVO> listRevisionRuleByOidCollection(Collection<String> pkRevisionRuleCollection) throws VciBaseException;
 
    /**
     * 根据英文名称获取版本规则
     * @param id 英文名称
     * @return 版本规则,如果不存在会返回null
     * @throws VciBaseException
     */
    RevisionRuleVO getRevisionRuleById(String id) throws VciBaseException;
 
    /**
     * 根据英文名称批量获取版本规则
     * @param ids 英文名称,使用逗号分隔
     * @return  版本规则列表,如果有不存在的不会返回,全部不存在的则返回空列表
     * @throws VciBaseException 参数为空或者查询出错时会抛出错误
     */
    List<RevisionRuleVO> listRevisionRuleByIds(String ids) throws VciBaseException;
 
    /**
     * 根据英文名称集合批量获取版本规则
     * @param revisionRuleIdCollection 英文名称集合,使用逗号分隔
     * @return 版本规则列表,如果有不存在的不会返回,全部不存在的则返回空列表
     * @throws VciBaseException 参数为空或者查询出错时会抛出错误
     */
    List<RevisionRuleVO> listRevisionRuleByIdCollection(Collection<String> revisionRuleIdCollection) throws VciBaseException;
 
    /**
     * 根据版本规则主键获取中文名称
     * @param oid 版本规则主键,多个使用逗号分隔
     * @return 中文名称,如果不存在会返回null;多个会以逗号分隔
     * @throws VciBaseException 参数为空或者查询出错时会抛出错误
     */
    String getNameByOid(String oid) throws VciBaseException;
 
    /**
     * 根据版本规则英文名称获取中文名称
     * @param id 版本规则英文名称
     * @return 中文名称,如果不存在会返回null;多个会以逗号分隔
     * @throws VciBaseException 参数为空或者查询出错时会抛出错误
     */
    String getNameById(String id) throws VciBaseException;
    /**
     * 添加版本规则
     * @param revisionRuleDTO 版本规则显示对象(和DTO共用)
     * @return 添加后的版本规则
     * @throws VciBaseException 添加出错的时候会抛出异常
     */
    RevisionRuleVO addSave(RevisionRuleDTO revisionRuleDTO) throws VciBaseException;
 
    /**
     * 批量添加版本规则
     * @param revisionRuleDTOList 版本规则显示对象列表(和DTO共用)
     * @return 批量添加后的版本规则
     * @throws VciBaseException 添加出错的时候会抛出异常
     */
    List<RevisionRuleVO> batchAddSave(List<RevisionRuleDTO> revisionRuleDTOList) throws VciBaseException;
 
 
    /**
     * 修改版本规则
     * @param revisionRuleDTO 版本规则显示对象(和DTO共用)
     * @return 修改后的版本规则
     * @throws VciBaseException 修改出错的时候会抛出异常
     */
    RevisionRuleVO editSave(RevisionRuleDTO revisionRuleDTO) throws VciBaseException;
 
    /**
     * 批量修改版本规则
     * @param revisionRuleDTOList 版本规则显示对象列表(和DTO共用)
     * @return 批量修改后的版本规则
     * @throws VciBaseException 修改出错的时候会抛出异常
     */
    List<RevisionRuleVO> batchEditSave(List<RevisionRuleDTO> revisionRuleDTOList) throws VciBaseException;
 
    /**
     * 删除版本规则
     * @param revisionRuleVO 版本规则显示对象
     * @throws VciBaseException 如果版本规则被引用,或者删除出错时会抛出异常
     */
    void delete(RevisionRuleVO revisionRuleVO) throws VciBaseException;
 
    /**
     * 批量删除版本规则
     * @param revisionRuleVOList 要删除的版本规则显示对象列表
     * @throws VciBaseException 如果版本规则被引用,或者删除出错时会抛出异常
     */
    void batchDelete(List<RevisionRuleVO> revisionRuleVOList) throws VciBaseException;
 
    /**
     * 批量校验版本规则是否被使用
     * @param oidCollection 主键集合
     * @return true表示被引用
     */
    boolean batchCheckRevisionRuleUsed(Collection<String> oidCollection);
 
    /**
     * 获取使用版本规则的业务类型
     * @param pkRevisionRule 版本规则的主键
     * @return 引用的业务类型
     * @throws VciBaseException 查询出错时会抛出异常
     */
    List<BtmTypeVO> listRevisionRuleUsedInfo(String pkRevisionRule) throws VciBaseException;
 
    /**
     * 校验版本规则是否被引用
     * @param pkRevisionRule 版本规则的主键
     * @return true表示被引用, false表示没有被引用
     * @throws VciBaseException 参数为空或者查询出错时会抛出错误
     */
    boolean checkRevisionRuleUsed(String pkRevisionRule) throws VciBaseException;
 
    /**
     * 判断版本规则是否存在
     * @param revisionRuleId 版本规则的英文名称
     * @return true表示都存在,false表示不存在
     * @throws VciBaseException 参数错误或者查询出错会抛出异常
     */
    boolean checkRevisionRuleExist(String revisionRuleId) throws VciBaseException;
 
    /**
     * 获取下一个版本的值
     * @param ruleId 版本的规则
     * @param currentRevisionValue 当前版本的值,为空的时候,说明是新增
     * @return 下一个版本号
     * @throws VciBaseException 版本规则不存在的时候会抛出异常
     */
    String getNextRevisionValue(String ruleId, String currentRevisionValue) throws VciBaseException;
 
    /**
     * 分页查询
     * @param baseQueryObject 查询对象
     * @return 查询结果
     * @throws VciBaseException 查询出错时抛出异常
     */
    IPage<RevisionRuleVO> pageQueryVO(BaseQueryObject baseQueryObject) throws VciBaseException;
 
}