@@ -124,6 +124,113 @@ void unSignTest(){
124
124
}
125
125
126
126
127
+ /**
128
+ * 多人非会签拒绝测试
129
+ */
130
+ @ Test
131
+ void unSignRejectTest (){
132
+ PageRequest pageRequest = PageRequest .of (0 , 1000 );
133
+
134
+ User caocao = new User ("曹操" );
135
+ userRepository .save (caocao );
136
+ User lvBu = new User ("吕布" );
137
+ userRepository .save (lvBu );
138
+ User zhaoYun = new User ("赵云" );
139
+ userRepository .save (zhaoYun );
140
+
141
+ User user = new User ("张飞" );
142
+ userRepository .save (user );
143
+
144
+ User dept = new User ("刘备" );
145
+ userRepository .save (dept );
146
+
147
+ User boss = new User ("诸葛亮" );
148
+ userRepository .save (boss );
149
+
150
+ FlowWork flowWork = FlowWorkBuilder .builder (user )
151
+ .title ("请假流程" )
152
+ .nodes ()
153
+ .node ("开始节点" , "start" , "default" , ApprovalType .UN_SIGN , OperatorMatcher .anyOperatorMatcher ())
154
+ .node ("部门领导审批" , "dept" , "default" , ApprovalType .UN_SIGN ,
155
+ OperatorMatcher .specifyOperatorMatcher (dept .getUserId (),caocao .getUserId (),lvBu .getUserId (),zhaoYun .getUserId ()))
156
+ .node ("总经理审批" , "manager" , "default" , ApprovalType .UN_SIGN , OperatorMatcher .specifyOperatorMatcher (boss .getUserId ()))
157
+ .node ("结束节点" , "over" , "default" , ApprovalType .UN_SIGN , OperatorMatcher .anyOperatorMatcher ())
158
+ .relations ()
159
+ .relation ("部门领导审批" , "start" , "dept" )
160
+ .relation ("总经理审批" , "dept" , "manager" )
161
+ .relation ("结束节点" , "manager" , "over" )
162
+ .build ();
163
+
164
+ flowWorkRepository .save (flowWork );
165
+
166
+ String workCode = flowWork .getCode ();
167
+
168
+ Leave leave = new Leave ("我要出去看看" );
169
+ leaveRepository .save (leave );
170
+
171
+ // 创建流程
172
+ flowService .startFlow (workCode , user , leave , "发起流程" );
173
+
174
+ // 查看我的待办
175
+ List <FlowRecord > userTodos = flowRecordRepository .findTodoByOperatorId (user .getUserId (), pageRequest ).getContent ();
176
+ assertEquals (1 , userTodos .size ());
177
+
178
+ // 提交流程
179
+ FlowRecord userTodo = userTodos .get (0 );
180
+ flowService .submitFlow (userTodo .getId (), user , leave , Opinion .pass ("同意" ).specify (lvBu .getUserId ()));
181
+
182
+ // 查看部门经理的待办
183
+ List <FlowRecord > deptTodos = flowRecordRepository .findTodoByOperatorId (dept .getUserId (), pageRequest ).getContent ();
184
+ assertEquals (0 , deptTodos .size ());
185
+
186
+ // 查看部门刘备经理的待办
187
+ List <FlowRecord > lvBuTodos = flowRecordRepository .findTodoByOperatorId (lvBu .getUserId (), pageRequest ).getContent ();
188
+ assertEquals (1 , lvBuTodos .size ());
189
+
190
+ // 提交部门经理的审批
191
+ FlowRecord lvBuTodo = lvBuTodos .get (0 );
192
+ flowService .submitFlow (lvBuTodo .getId (), lvBu , leave , Opinion .pass ("同意" ));
193
+
194
+ // 查看总经理的待办
195
+ List <FlowRecord > bossTodos = flowRecordRepository .findTodoByOperatorId (boss .getUserId (), pageRequest ).getContent ();
196
+ assertEquals (1 , bossTodos .size ());
197
+
198
+ // 提交总经理的审批
199
+ FlowRecord bossTodo = bossTodos .get (0 );
200
+ flowService .submitFlow (bossTodo .getId (), boss , leave , Opinion .reject ("不同意" ));
201
+
202
+ // 查看所有流程
203
+ List <FlowRecord > records = flowRecordRepository .findAll (pageRequest ).getContent ();;
204
+ assertEquals (4 , records .size ());
205
+
206
+ lvBuTodos = flowRecordRepository .findTodoByOperatorId (lvBu .getUserId (), pageRequest ).getContent ();
207
+ assertEquals (1 , lvBuTodos .size ());
208
+
209
+ // 提交部门经理的审批
210
+ lvBuTodo = lvBuTodos .get (0 );
211
+ flowService .submitFlow (lvBuTodo .getId (), lvBu , leave , Opinion .pass ("同意" ));
212
+
213
+
214
+ bossTodos = flowRecordRepository .findTodoByOperatorId (boss .getUserId (), pageRequest ).getContent ();
215
+ assertEquals (1 , bossTodos .size ());
216
+
217
+ // 提交总经理的审批
218
+ bossTodo = bossTodos .get (0 );
219
+ flowService .submitFlow (bossTodo .getId (), boss , leave , Opinion .pass ("行吧" ));
220
+
221
+ userTodos = flowRecordRepository .findTodoByOperatorId (user .getUserId (), pageRequest ).getContent ();
222
+ assertEquals (0 , userTodos .size ());
223
+
224
+ records = flowRecordRepository .findAll (pageRequest ).getContent ();
225
+ assertEquals (5 , records .size ());
226
+ // 查看所有流程是否都已经结束
227
+ assertTrue (records .stream ().allMatch (FlowRecord ::isFinish ));
228
+
229
+ List <BindDataSnapshot > snapshots = flowBindDataRepository .findAll ();
230
+ assertEquals (6 , snapshots .size ());
231
+
232
+ }
233
+
127
234
128
235
/**
129
236
* 多人会签测试
@@ -495,35 +602,6 @@ void signTrySubmitTest(){
495
602
List <FlowRecord > bossTodos = flowRecordRepository .findTodoByOperatorId (boss .getUserId (), pageRequest ).getContent ();
496
603
assertEquals (1 , bossTodos .size ());
497
604
498
- // // 查看部门经理 吕布 的待办
499
- // List<FlowRecord> lvbuTodos = flowRecordRepository.findTodoByOperatorId(lvBu.getUserId(), pageRequest).getContent();
500
- // assertEquals(1, lvbuTodos.size());
501
- //
502
- // // 提交部门经理 吕布 的审批
503
- // FlowRecord lvbuTodo = lvbuTodos.get(0);
504
- // flowService.submitFlow(lvbuTodo.getId(), lvBu, leave, Opinion.pass("吕布同意"));
505
- //
506
- //
507
- // // 查看部门经理 赵云 的待办
508
- // List<FlowRecord> zhaoYunTodos = flowRecordRepository.findTodoByOperatorId(zhaoYun.getUserId(), pageRequest).getContent();
509
- // assertEquals(1, zhaoYunTodos.size());
510
- //
511
- // // 提交部门经理 赵云 的审批
512
- // FlowRecord zhaoYunTodo = zhaoYunTodos.get(0);
513
- // flowService.submitFlow(zhaoYunTodo.getId(), zhaoYun, leave, Opinion.pass("赵云同意"));
514
- //
515
- //
516
- // // 查看部门经理 曹操 的待办
517
- // List<FlowRecord> caocaoTodos = flowRecordRepository.findTodoByOperatorId(caocao.getUserId(), pageRequest).getContent();
518
- // assertEquals(1, caocaoTodos.size());
519
- //
520
- // // 提交部门经理 曹操 的审批
521
- // FlowRecord caocaoTodo = caocaoTodos.get(0);
522
- // flowService.submitFlow(caocaoTodo.getId(), caocao, leave, Opinion.pass("曹操同意"));
523
- //
524
- // bossTodos = flowRecordRepository.findTodoByOperatorId(boss.getUserId(), pageRequest).getContent();
525
- // assertEquals(1, bossTodos.size());
526
-
527
605
// 提交总经理的审批
528
606
FlowRecord bossTodo = bossTodos .get (0 );
529
607
flowService .submitFlow (bossTodo .getId (), boss , leave , Opinion .pass ("同意" ));
0 commit comments