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
package com.vci.web.service;
 
import com.vci.corba.common.PLException;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.omd.lcm.LifeCycle;
import com.vci.dto.OsLifeCycleDTO;
import com.vci.pagemodel.*;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
 
import java.io.File;
import java.util.Collection;
import java.util.List;
import java.util.Map;
 
/***
 * 生命周期服务
 * @author weidy
 *
 */
public interface OsLifeCycleServiceI extends OsBaseServiceI{
 
    /**
     * 获取生命周期的状态对应的中文值
     * @param status 状态
     * @return 状态的显示名称
     * @throws VciBaseException 不存在生命周期
     */
     String getStatusText(String status) throws  VciBaseException;
 
     /**
     * 跃迁生命周期状态,注意调用此方法就会被持久化,不受事务控制
     * @param bo 业务类型的数据对象
     * @param targetStatus 目标的生命周期状态,不区分大小
     * @throws VciBaseException 如果目标生命周期和当前生命周期状态没有连接线时抛出异常
     */
    void transStatus(com.vci.corba.omd.data.BusinessObject bo, String targetStatus) throws VciBaseException;
    
    /**
     * 批量跃迁生命周期状态,这些数据中的当前状态必须都是一样。或者是当前状态都可以连接到目标状态
     * @param boList 业务类型对象数据
     * @param targetStatus 目标状态,不区分大小写
     * @throws VciBaseException 转换生命周期出错的时候抛出异常
     */
    void transStatus(List<com.vci.corba.omd.data.BusinessObject> boList, String targetStatus) throws VciBaseException;
    
    /**
     * 批量跃迁生命周期状态,这些数据中的当前状态必须都是一样,或者是当前状态都可以连接到目标状态
     * @param bos 业务类型对象数据
     * @param targetStatus  目标状态,不区分大小写
     * @throws VciBaseException 转换生命周期出错的时候抛出异常
     */
    void transStatus(com.vci.corba.omd.data.BusinessObject[] bos, String targetStatus) throws VciBaseException;
    
    /**
     * 批量跃迁生命周期状态,这些数据中的当前状态必须都是一样,或者是当前状态都可以连接到目标状态
     * @param cboList 业务类型对象数据
     * @param targetStatus  目标状态,不区分大小写
     * @throws VciBaseException 转换生命周期出错的时候抛出异常
     */
    void transCboStatus(List<BusinessObject> cboList, String targetStatus) throws VciBaseException;
 
    /**
     * 通过编号获取生命周期状态对象,
     * @param lctId 生命周期编号
     * @return 生命周期的显示对象
     */
    OsLifeCycleVO getLifeCycleById(String lctId) ;
 
    /**
     * 生命周期的数据对象转换为显示对象
     * @param lifeCycles 数据对象
     * @return 显示对象
     */
    List<OsLifeCycleVO> lifeCycleDO2VOs(Collection<LifeCycle> lifeCycles);
 
    /**
     * 生命周期的数据对象转换为显示对象
     * @param lifeCyle 数据对象
     * @return 显示对象
     */
    OsLifeCycleVO lifeCycleDO2VO(LifeCycle lifeCyle);
 
    /**
     * 生命周期显示对象转换为数据对象
     * @param lifeCycleVO 显示对象
     * @return 数据对象
     */
    LifeCycle lifeCycleVO2DO(OsLifeCycleVO lifeCycleVO) throws PLException;
 
    /**
     * 查询所有生命周期状态
     * @return 生命周期状态的对象
     * @throws VciBaseException 查询的时候出错会抛出异常
     */
    List<OsLifeCycleVO> selectAllLifeCycle() throws VciBaseException;
 
    /**
     * 查询所有生命周期状态的映射
     * @return key 是生命周期的编号的英文小写
     * @throws VciBaseException 查询的时候出错会抛出异常
     */
    Map<String,OsLifeCycleVO> selectAllLifeCycleMap() throws VciBaseException;
 
    /**
     * 获取连接线
     * @param lcid 生命周期的编号
     * @param currentStatus 当前的状态
     * @param targetStatus 目标的状态
     * @return 连接线
     * @throws VciBaseException 读取出错的时候会抛出异常
     */
    OsLifeCycleLineVO getTransVO(String lcid, String currentStatus, String targetStatus) throws VciBaseException;
 
    /**
     * 跃迁业务类型的生命周期状态
     * @param obj 业务类型数据对象
     * @param lineVO 跃迁路由
     * @throws VciBaseException 跃迁出错的是会抛出异常
     */
    void doTransVO(com.vci.corba.omd.data.BusinessObject obj, OsLifeCycleLineVO lineVO) throws VciBaseException;
 
    /**
     * 批量执行跃迁操作,要求必须是同一个业务类型下的
     * @param bos 业务类型数据对象
     * @param lineVOs 跃迁对象
     * @param releaseStatus 发布状态,如果目标状态是发布状态时传递这个值
     * @throws VciBaseException  跃迁出错的是会抛出异常
     */
    void batchTransVo(com.vci.corba.omd.data.BusinessObject[] bos, OsLifeCycleLineVO[] lineVOs,
                      String[] releaseStatus) throws VciBaseException;
 
    /**
     * 批量执行跃迁操作
     * @param bos 业务类型数据
     * @param vos 跃迁对象
     * @throws VciBaseException 跃迁出错的是会抛出异常
     */
    void batchTransVo(com.vci.corba.omd.data.BusinessObject[] bos, OsLifeCycleLineVO[] vos)
            throws VciBaseException;
 
    /**
     * 使用生命周期的编号获取包含的状态显示对象
     * @param lifeCycleId 生命周期的编号
     * @return 状态的显示对象
     */
    List<OsStatusVO> listStatusById(String lifeCycleId);
 
    /**
     * 使用多个编号获取生命周期的对象
     * @param lcIdList 编号
     * @return 显示对象
     */
    List<OsLifeCycleVO> getLifeCycleByIds(Collection<String> lcIdList);
 
    /**
     * 批量添加生命周期
     * @param lifeCyleList 生命周期的内容
     */
    void batchAddLifeCycle(List<LifeCycle> lifeCyleList);
 
    /**
     * 批量修改生命周期
     * @param lifeCycleList 生命周期的内容
     */
    void batchEditLifeCycle(List<LifeCycle> lifeCycleList);
 
    /**
     * 状态在生命周期中使用的情况
     * @param statusOid 状态的主键
     * @return 生命周期的信息
     */
    DataGrid<OsLifeCycleVO> listStatusUsed(String statusOid);
 
    /**
     * 判断状态是否被引用
     * @param statusVO 状态的显示对象
     * @return true表示被引用
     */
    boolean checkStatusUsed(OsStatusVO statusVO);
 
    /**
     * 生命周期列表
     * @param baseQueryObject 查询对象,分页对象
     * @return 生命周期显示对象
     */
    DataGrid<OsLifeCycleVO> gridLifeCycle(BaseQueryObject baseQueryObject);
 
    /**
     * 新增单条生命周期
     * @param osLifeCycleVO
     * @return
     */
    boolean addLifeCycle(OsLifeCycleVO osLifeCycleVO) throws PLException;
 
    /**
     * 修改生命周期
     * @param osLifeCycleVO
     * @return
     */
    boolean updateLifeCycle(OsLifeCycleVO osLifeCycleVO) throws PLException;
 
    /**
     * 删除生命周期
     * @param lifeCycleDTOS
     * @return
     */
    boolean deleteLifeCycles(List<OsLifeCycleDTO> lifeCycleDTOS) throws PLException;
 
    /**
     * 查看生命周期的使用范围
     * @return
     */
    List<Map<String,String>> getUsedLifeCycleList(String lifeCycleName) throws PLException;
 
    /**
     * 导出选中的生命周期
     * @param exportFileName 导出的文件名
     * @param lcNames 需要导出的生命周期名称
     * @param flag 控制导出的列名是否和导入模板一致
     * @return
     */
    String exportLifeCycles(String exportFileName,String lcNames,boolean flag/*控制导出的列名是否和导入模板一致*/) throws PLException;
 
    /**
     * 下载生命周期导入模板
     * @param exportFileName
     * @return
     * @throws PLException
     */
    String downloadLifeCycleTemplate(String exportFileName) throws Exception;
 
    /**
     * 导入生命周期
     * @param file
     * @return
     */
    BaseResult importLifeCycles(File file) throws Exception;
 
    /**
     * 生命周期的链接线
     * @param id 编号
     * @return ER图内容
     */
    OsERVO listLinesPic(String id);
 
    /**
     * 查询所有跃迁事件key
     * @return
     */
    List<String> getLCEventKeys() throws PLException;
 
}