ludc
2024-10-30 0888cf078640e6db9fba2b7fcaa29f449e017371
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
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
package com.vci.web.service;
 
import com.vci.corba.common.PLException;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.omd.data.LinkObject;
import com.vci.corba.omd.data.RevisionDataInfo;
import com.vci.corba.omd.data.VersionDataInfo;
import com.vci.dto.*;
import com.vci.starter.web.enumpck.VciChangeDocumentTypeEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.model.BaseModel;
import com.vci.starter.web.pagemodel.*;
import com.vci.pagemodel.OsBtmTypeVO;
import com.vci.pagemodel.ReferConfigVO;
import com.vci.pagemodel.UIFormDataVO;
import com.vci.web.query.UIDataGridQuery;
import com.vci.web.query.UIFormQuery;
import com.vci.web.query.UITreeQuery;
 
import java.util.Collection;
import java.util.List;
import java.util.Map;
 
/**
 * 通过UI定义的数据操作服务,包括增删改查 ,升版,跃迁等
 * @author weidy
 * @date 2021-2-16
 */
public interface UIDataServiceI {
 
    /**
     * 获取表格的数据
     * @param dataGridQuery 表格查询,必须有业务类型名称和 表格的编号
     * @return DataGrid中data为Map<String,String>格式
     * @throws VciBaseException 查询出错的时候会抛出异常
     */
    DataGrid getDataForGrid(UIDataGridQuery dataGridQuery) throws VciBaseException, PLException;
 
    /**
     * 获取表单的数据
     * @param formQuery 表单的查询条件
     * @return 表单的数据
     * @throws VciBaseException 查询出错的时候会抛出异常
     */
    UIFormDataVO getDataForForm(UIFormQuery formQuery) throws VciBaseException;
 
    /**
     * 获取树形数据
     * @param treeQuery 树形查询条件
     * @return 树形数据
     * @throws VciBaseException 查询出错的时候会抛出异常
     */
    List<Tree> getDataForTree(UITreeQuery treeQuery) throws VciBaseException;
 
    /**
     * 调用前置事件
     * @param baseModelDTOList 业务数据的信息
     * @param baseLinkModelDTOList 链接类型的数据
     * @param preEvent 前置事件的名称
     * @param businessType 调用的类型
     * @return 执行结果,请判断success属性是否为true
     * @throws VciBaseException 配置或者是调用不成功的时候,会抛出异常
     */
    BaseResult callPreEvent(BaseModelDTOList baseModelDTOList, BaseLinkModelDTOList baseLinkModelDTOList, String preEvent, VciChangeDocumentTypeEnum businessType) throws VciBaseException;
 
    /**
     * 后置事件
     * @param cbos 添加完成后内容
     * @param clos 添加完链接类型的内容
     * @param postEvent 后置事件的名称,如果为空会自动扫描是否有注解
     * @param businessType 业务操作的类型
     * @return 执行的结果
     * @throws VciBaseException 执行出错的会抛出异常,或者事件直接返回了异常
     */
    BaseResult callPostEvent(Collection<BusinessObject> cbos, Collection<LinkObject> clos, String postEvent, VciChangeDocumentTypeEnum businessType) throws VciBaseException;
 
    /**
     * 表单数据转换为基础对象
     * @param formDataDTO 表单数据
     * @return 基础对象列表
     */
    BaseModelDTOList formData2DTOList(FormDataDTO formDataDTO);
 
    /**
     * 链接数据 转换为基础对象
     * @param formLinkDataDTO 表单数据
     * @return 基础数据列表
     */
    BaseLinkModelDTOList formLinkData2DTOList(FormLinkDataDTO formLinkDataDTO);
 
    /**
     * 表单的数据转换为
     * @param formDataDTOList 表单数据
     * @return 基础对象列表
     */
    BaseModelDTOList formDataList2DTOList(FormDataDTOList formDataDTOList);
 
    /**
     * 链接类型批量转换
     * @param formLinkDataDTOList 表单的数据
     * @return 基础对象列表
     */
    BaseLinkModelDTOList formLinkDataList2DTOList(FormLinkDataDTOList formLinkDataDTOList);
 
    /**
     * 添加数据
     * @param formDataDTO 数据的传输对象
     * @return 执行结果和显示后的值
     * @throws VciBaseException 保存出错的时候会抛出异常
     */
    BaseResult<Map<String,Object>> addSave(FormDataDTO formDataDTO) throws VciBaseException;
 
    /**
     * 业务类型
     * @param cbo 业务数据对象
     * @return 基础对象
     */
    BaseModel cbo2BaseModel(BusinessObject cbo);
 
    /**
     * 业务数据表单对象转换为基础的属性
     * @param formDataDTO 表的数据传输对象
     * @return 数据的映射内容
     */
    Map<String,String> formDataDTO2MapLow(FormDataDTO formDataDTO);
 
    /**
     * 链接数据表单对象转换为基础的属性
     * @param formLinkDataDTO 表的数据传输对象
     * @return 数据的映射内容
     */
    Map<String,String> formLinkDataDTO2MapLow(FormLinkDataDTO formLinkDataDTO);
 
    /**
     * 获取下一个版本号
     * @param btmTypeVO 业务类型的显示对象
     * @param baseModel 基础对象
     * @return 版本的对象
     */
    RevisionDataInfo getNextRevision(OsBtmTypeVO btmTypeVO, BaseModel baseModel);
 
    /**
     * 获取下一个版次的号
     * @param btmTypeVO 业务类型的显示对象
     * @param baseModel 基础对象
     * @return 版本的值对象
     */
    VersionDataInfo getNextVersion(OsBtmTypeVO btmTypeVO, BaseModel baseModel);
 
    /**
     * 获取第一个版次
     * @param versionRule 版次的规则
     * @return 第一个版次
     */
    String getFirstVersion(String versionRule);
 
    /**
     * 批量添加数据
     * @param formDataDTOList 数据的传输对象
     * @return 执行结果和主键
     * @throws VciBaseException 保存出错的时候会抛出异常
     */
    BaseResult<String> batchAddSave(FormDataDTOList formDataDTOList) throws VciBaseException;
 
    /**
     * 修改数据。注意表单定义的字段才会被修改,ts这种默认字段除外
     * @param formDataDTO 数据的传输对象
     * @return 执行结果和显示后的值
     * @throws VciBaseException 保存出错的时候会抛出异常
     */
    BaseResult<Map<String,Object>> editSave(FormDataDTO formDataDTO) throws VciBaseException;
 
    /**
     * 数据升版
     * @param formDataDTO 数据的传输对象
     * @return 执行结果和显示后的值
     * @throws VciBaseException 保存出错的时候会抛出异常
     */
    BaseResult<Map<String, Object>> upRevision(FormDataDTO formDataDTO) throws VciBaseException, PLException;
 
    /**
     * 批量修改,注意表单定义的字段才会被修改,ts这种默认字段除外
     * @param formDataDTOList 数据的传输对象
     * @return 执行结果和显示后的值
     * @throws VciBaseException 保存出错的时候会抛出异常
     */
    BaseResult<String> batchEditSave(FormDataDTOList formDataDTOList) throws VciBaseException;
 
    /**
     * 批量删除
     * @param deleteDataDTO 数据的传输对象
     * @return 执行结果
     * @throws VciBaseException 数据被引用的时候会抛出异常
     */
    BaseResult batchDelete(DeleteDataDTO deleteDataDTO)  throws VciBaseException;
 
    /**
     * 链接类型添加
     * @param formLinkDataDTO 链接类型的表单数据
     * @return 链接类型的主键
     * @throws VciBaseException 参数为空,必输项缺失
     */
    BaseResult<String> linkAddSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException;
 
    /**
     * 设置值到业务类型的对象上
     * @param dataLow 数据(key小写)
     * @param baseDataLow 基础属性的数据(key小写)
     * @param cbo 业务类型的对象
     * @param editFlag 是否为编辑
     */
    void setValueToCbo(Map<String, String> dataLow, Map<String, String> baseDataLow, BusinessObject cbo, boolean editFlag);
 
    /**
     * 链接类型的编辑数据
     * @param formLinkDataDTO 数据的传输对象
     * @return 执行结果
     * @throws VciBaseException 参数为空,必输项缺失
     */
    BaseResult linkEditSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException;
 
    /**
     * 删除链接类型
     * @param deleteLinkDataDTO 数据的传输对象
     * @return 执行结果
     * @throws VciBaseException 参数为空,必输项缺失
     */
    BaseResult batchLinkDelete(DeleteLinkDataDTO deleteLinkDataDTO)throws VciBaseException;
 
    /**
     * 获取参照的信息
     * @param referConfigVO 参照的配置
     * @param pageHelper 分页的工具
     * @return 列表数据
     */
    DataGrid referDataGrid(ReferConfigVO referConfigVO, PageHelper pageHelper);
 
    /**
     * 获取树形的参照
     * @param referConfigVO 参照的配置
     * @return 树形的数据
     */
    List<Tree> referTree(ReferConfigVO referConfigVO);
 
    /**
     * 表单的数据查询
     * @param btmName 业务类型的信息
     * @param oid 业务数据的主键
     * @return 业务数据的属性信息
     */
    List<Map<String,String>>  getDataAttr(String btmName, String oid);
 
    /**
     * 数据升版本/次,前端使用JSON提交
     * @param btmname 业务类型的信息
     * @param oid 业务数据的主键
     * @param type 1:版次对象;2:版本对象;3:主对象
     * @return 执行的结果
     */
    BaseResult deleteBusinessObject(String btmname, String oid, int type) throws PLException;
    /**
     * 变更所有者
     * @param btmname 业务类型
     * @param oid 主键
     * @return 执行的结果
     */
    BaseResult changeBusinessObjectOwner(String btmname, String oid) throws PLException;
    /**
     * 状态跃迁
     * @param btmname 业务类型
     * @param oid 主键
     * @param releaseStatus 发布状态
     * @return 执行的结果
     */
    BaseResult transferBusinessObject(String btmname, String oid, String toStatus, String releaseStatus) throws PLException;
}