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
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
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.entity.LinkType;
import com.vci.ubcs.omd.vo.LinkTypeAttributeVO;
import com.vci.ubcs.omd.vo.LinkTypeVO;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.web.pagemodel.PageHelper;
 
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
 
/**
 * Description: 链接类型的服务接口
 *
 * @author LiHang
 * @date 2023/5/24
 */
public interface ILinkTypeService extends IService<LinkType> {
 
    /**
     * 获取链接类型列表
     * @param conditionMap 查询条件
     * @param pageHelper 分页信息和排序信息,默认使用id排序
     * @return 链接类型对象列表
     * @throws VciBaseException 查询出错时会抛出异常
     */
    IPage<LinkTypeVO> listLinkType(Map<String,String> conditionMap, PageHelper pageHelper) throws VciBaseException;
 
    /**
     * 根据主键获取链接类型
     * @param pkLinkType 链接类型主键
     * @return 链接类型,如果不存在会返回null
     * @throws VciBaseException 参数为空或者查询出错时会抛出错误
     */
    LinkTypeVO getLinkTypeByOid(String pkLinkType) throws VciBaseException;
 
    /**
     * 根据主键批量获取链接类型
     * @param pkLinkTypes 链接类型主键,用逗号分隔
     * @return 链接类型列表,如果有不存在的不会返回,全部不存在的则返回空列表
     * @throws VciBaseException 参数为空或者查询出错时会抛出错误
     */
    List<LinkTypeVO> listLinkTypeByOids(String pkLinkTypes) throws VciBaseException;
 
    /**
     * 批量根据主键获取链接类型
     * @param pkLinkTypeCollection 链接类型主键集合
     * @return 链接类型列表,如果有不存在的不会返回,全部不存在的则返回空列表
     * @throws VciBaseException 参数为空或者查询出错时会抛出错误
     */
    List<LinkTypeVO> listLinkTypeByOidCollection(Collection<String> pkLinkTypeCollection) throws VciBaseException;
 
    /**
     * 根据英文名称获取链接类型
     * @param id 英文名称
     * @return 链接类型,如果不存在会返回null
     * @throws VciBaseException
     */
    LinkTypeVO getLinkTypeById(String id) throws VciBaseException;
 
    /**
     * 根据英文名称批量获取链接类型
     * @param ids 英文名称,使用逗号分隔
     * @return  链接类型列表,如果有不存在的不会返回,全部不存在的则返回空列表
     * @throws VciBaseException 参数为空或者查询出错时会抛出错误
     */
    List<LinkTypeVO> listLinkTypeByIds(String ids) throws VciBaseException;
 
    /**
     * 根据英文名称集合批量获取链接类型
     * @param linkTypeIdCollection 英文名称集合,使用逗号分隔
     * @return 链接类型列表,如果有不存在的不会返回,全部不存在的则返回空列表
     * @throws VciBaseException 参数为空或者查询出错时会抛出错误
     */
    List<LinkTypeVO> listLinkTypeByIdCollection(Collection<String> linkTypeIdCollection) throws VciBaseException;
 
    /**
     * 获取链接类型的指定属性
     * @param id 链接类型的英文名称
     * @param attributeIdCollection 属性的集合,如果为空则获取全部
     * @return 属性的显示对象
     */
    List<LinkTypeAttributeVO> listAttributeVOByIdsForLink(String id, Collection<String> attributeIdCollection);
 
    /**
     * 根据链接类型主键获取中文名称
     * @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 linkTypeVO 链接类型显示对象(和DTO共用)
     * @return 添加后的链接类型
     * @throws VciBaseException 添加出错的时候会抛出异常
     */
    LinkTypeVO addSave(LinkTypeVO linkTypeVO) throws VciBaseException;
 
    /**
     * 添加链接类型
     * @param linkTypeVO 链接类型显示对象(和DTO共用)
     * @param autoCreateTable 自动创建表格
     * @return 添加后的链接类型
     * @throws VciBaseException 添加出错的时候会抛出异常
     */
    LinkTypeVO addSave(LinkTypeVO linkTypeVO,boolean autoCreateTable) throws VciBaseException;
 
    /**
     * 修改链接类型
     * @param linkTypeVO 链接类型显示对象(和DTO共用)
     * @return 修改后的链接类型
     * @throws VciBaseException 修改出错的时候会抛出异常
     */
    LinkTypeVO editSave(LinkTypeVO linkTypeVO) throws VciBaseException;
 
    /**
     * 修改链接类型
     * @param linkTypeVO 链接类型显示对象(和DTO共用)
     * @param autoCreateTable 自动创建表格
     * @return 修改后的链接类型
     * @throws VciBaseException 修改出错的时候会抛出异常
     */
    LinkTypeVO editSave(LinkTypeVO linkTypeVO,boolean autoCreateTable) throws VciBaseException;
 
    /**
     * 删除链接类型
     * @param linkTypeVO 链接类型显示对象
     * @throws VciBaseException 如果链接类型被引用,或者删除出错时会抛出异常
     */
    void delete(LinkTypeVO linkTypeVO) throws VciBaseException;
 
    /**
     * 批量删除链接类型
     * @param linkTypeVOList 要删除的链接类型显示对象列表
     * @throws VciBaseException 如果链接类型被引用,或者删除出错时会抛出异常
     */
    void batchDelete(List<LinkTypeVO> linkTypeVOList) throws VciBaseException;
 
 
    /**
     * 为链接类型添加属性对象
     * @param attributeVO 属性显示对象
     * @param tableName 表名
     * @throws VciBaseException 参数为空或者查询出错的时候会抛出异常
     */
    void addSaveAttribute(LinkTypeAttributeVO attributeVO,String tableName,String serviceName) throws VciBaseException;
 
    /**
     * 为链接类型添加属性对象
     * @param attributeVO 属性显示对象
     * @param tableName 表名
     * @param autoAdd2Table 是否自动添加到表格中
     * @throws VciBaseException 参数为空或者查询出错的时候会抛出异常
     */
    void addSaveAttribute(LinkTypeAttributeVO attributeVO,String tableName,boolean autoAdd2Table,String serviceName) throws VciBaseException;
 
    /**
     * 检查某个主键的链接类型是否存在
     * @param pkLinkType 链接类型主键
     * @return true表示存在,false表示不存在
     * @throws VciBaseException 查询出错或者参数为空的时候抛出异常
     */
    boolean checkLinkTypeExist(String pkLinkType) throws VciBaseException;
 
    /**
     * 为链接类型修改属性对象
     * @param attributeVO 属性显示对象
     * @throws VciBaseException 参数为空或者查询出错的时候会抛出异常
     */
    void editSaveAttribute(LinkTypeAttributeVO attributeVO,String tableName,String domain) throws VciBaseException;
 
    /**
     * 为链接类型修改属性对象
     * @param attributeVO 属性显示对象
     * @param autoEdit2Table 是否自动修改到表格
     * @throws VciBaseException 参数为空或者查询出错的时候会抛出异常
     */
    void editSaveAttribute(LinkTypeAttributeVO attributeVO,String tableName,String domain,boolean autoEdit2Table) throws VciBaseException;
 
    /**
     * 获取链接类型的数据库表名称
     * @param id 链接类型的英文名称
     * @param domain 领域值
     * @return 数据库表名称
     */
    String getTableName(String id,String domain) ;
 
    /**
     * 获取所有使用的业务类型的英文名称,转换为小写
     * @return 英文名称英文小写
     */
    Set<String> listUsedBtmType();
}