TaskTransService.java
6.57 KB
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
package com.hotent.runtime.manager;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import com.hotent.base.model.CommonResult;
import com.hotent.base.query.PageList;
import com.hotent.base.query.QueryFilter;
import com.hotent.bpm.api.constant.OpinionStatus;
import com.hotent.bpm.persistence.model.DefaultBpmTask;
import com.hotent.runtime.model.BpmTaskTrans;
import com.hotent.runtime.model.TaskTrans;
import com.hotent.runtime.params.RevokeSignLineParamObject;
import com.hotent.runtime.params.RevokeTransParamObject;
import com.hotent.runtime.params.TaskTransParamObject;
import com.hotent.uc.api.model.IUser;
/**
* 流转任务接口
*
* @company 广州宏天软件股份有限公司
* @author zhangxianwen
* @email zhangxw@jee-soft.cn
* @date 2018年6月28日
*/
public interface TaskTransService {
/**
* 征询回复。
* <pre>
* 1.删除本任务。
* 2.发送通知给发送人。
* 2.根据父任务ID修改票数,同意和反对的票数。
* 3.判断流程是否完成。
* 如果完成执行是否返回或或提交。
* 如果是再派生的。
* 1.如果为返回修改这个父任务状态为trans。
* 2.如果提交则根据提交的结果,对父任务进行投票。
* 4.如果未完成那么判断流程是否是并行,如果是串行,那么取得下一个执行人,并产生任务。
*
* </pre>
* @param taskId 任务ID
* @param actionName 审批的意见同意或反对
* @param opinion
* @param isIntervene 是否管理员干预
* void
* @throws IOException
* @throws Exception
*/
void taskToInquReply(String formData,String taskId,String actionName,String notifyType, String opinion,boolean isIntervene,String files,String zFiles) throws IOException, Exception;
/**
* 结束流转任务。
* <pre>
* 1.删除本任务。
* 2.发送通知给发送人。
* 2.根据父任务ID修改票数,同意和反对的票数。
* 3.判断流程是否完成。
* 如果完成执行是否返回或或提交。
* 如果是再派生的。
* 1.如果为返回修改这个父任务状态为trans。
* 2.如果提交则根据提交的结果,对父任务进行投票。
* 4.如果未完成那么判断流程是否是并行,如果是串行,那么取得下一个执行人,并产生任务。
*
* </pre>
* @param taskId 任务ID
* @param actionName 审批的意见同意或反对
* @param opinion
* void
* @param busData
* @throws IOException
* @throws Exception
*/
void completeTask(String taskId, String actionName, String notifyType, String opinion, String addSignAction, String busData, Map<String, Object> vars) throws IOException, Exception;
/**
* 获取我流转出去的流转任务。
* 根据规则判断是否完成。
* @param taskId
* void
*/
@SuppressWarnings("rawtypes")
PageList getMyTransTask(String userId,QueryFilter queryFilter);
/**
* 撤销我的流转出去任务。
* <pre>
* 1.根据当前任务查找下面的所有子任务。
* 2.删除这些子任务并给子任务人员发送给通知。
* 3.将当前任务修改状态。
* 普通任务修改为normal。
* 流转任务修改为transformed.
* </pre>
* @param taskId
* @param opinion
* void
*/
void withDraw(String taskId,String notifyType,String opinion) throws Exception;
/**
* 添加流转任务。
* <pre>
* 1.选择多个执行人,那么会产生多个任务。
* 在BPM_TASK表中添加多条任务数据,任务类型为trans,这些任务的exec_id_为空,表示为派生的任务。
* 这些任务父ID为parentTaskId。
* 2.更新父任务类型为startTrans,这类任务在查询是不可见,并且检查不能执行。
* 3.在bpm_task_trans表中添加一条记录,添加会签规则。
* 4.根据通知类型发送通知。
* </pre>
* @param opinion
* @param notifyType
* void
* @throws IOException
*/
void addTransTask(TaskTrans taskTrans, List<IUser> listUsers, String notifyType, String opinion,String formData,String files,Boolean addSignUser) throws Exception;
/**
* 获取流转信息
* @param taskId
* @return
*/
TaskTrans getTransTaskByTaskId(String taskId);
CommonResult<String> addSign(TaskTransParamObject taskTransParamObject) throws Exception;
/**
* 征询设置
* @param taskTrans
* @param listUsers
* @param notifyType
* @param opinion
* @param files
* @throws Exception
*/
void addTaskToInqu(TaskTrans taskTrans, List<IUser> listUsers, String notifyType, String opinion, String files) throws Exception;
/**
* 添加并行审批任务
* @param taskTrans
* @param listUsers
* @param notifyType
* @param opinion
* @throws Exception
*/
void addApproveLineTask(TaskTrans taskTrans, List<IUser> listUsers, String notifyType, String opinion) throws Exception;
void addSignSequenceTask(BpmTaskTrans taskTrans, List<IUser> userList,
String notifyType, String opinion) throws Exception;
/**
* 并行审批任务撤回
* @param bpmTask
* @param user
* @param messageType
* @throws Exception
*/
void addRevokeTask(DefaultBpmTask bpmTask, IUser user,String messageType) throws Exception;
/**
* 撤销我的流转出去任务。
* <pre>
* 1.根据当前任务查找下面的所有子任务。
* 2.删除这些子任务并给子任务人员发送给通知。
* 3.将当前任务修改状态。
* 普通任务修改为normal。
* 流转任务修改为transformed.
* </pre>
* @param taskId
* @param opinion
* void
*/
void withDraw(String taskId,String notifyType,String opinion,String msgTemplate) throws Exception;
void revokeSignSequence(RevokeTransParamObject revokeTransParamObject) throws IOException, Exception;
/**
* 发起并行审批签署
* @param taskTrans
* @param userList
* @param notifyType
* @param opinion
* @throws Exception
*/
void addSignLineTask(BpmTaskTrans taskTrans, List<IUser> userList,
String notifyType, String opinion) throws Exception;
void revokeSignLine(RevokeSignLineParamObject revokeParamObject) throws Exception;
void addCheckOpinion(DefaultBpmTask bpmTask, OpinionStatus opinionStatus, String transUser,
String opinion, boolean isCompleted) throws Exception;
void addTransTask(BpmTaskTrans taskTrans, List<IUser> userList, String notifyType, String opinion, String files) throws Exception;
/**
* 通过实例获取流转任务
* @param instId
* @return
*/
List<BpmTaskTrans> getByInstId(String instId);
}