@@ -124,6 +124,113 @@ void unSignTest(){
124124 }
125125
126126
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+
127234
128235 /**
129236 * 多人会签测试
@@ -495,35 +602,6 @@ void signTrySubmitTest(){
495602 List <FlowRecord > bossTodos = flowRecordRepository .findTodoByOperatorId (boss .getUserId (), pageRequest ).getContent ();
496603 assertEquals (1 , bossTodos .size ());
497604
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-
527605 // 提交总经理的审批
528606 FlowRecord bossTodo = bossTodos .get (0 );
529607 flowService .submitFlow (bossTodo .getId (), boss , leave , Opinion .pass ("同意" ));
0 commit comments