@@ -131,6 +131,84 @@ void entrustTest() {
131
131
132
132
133
133
134
+ /**
135
+ * 自己审批时直接通过
136
+ */
137
+ @ Test
138
+ void sameUserFlow () {
139
+ PageRequest pageRequest = PageRequest .of (0 , 1000 );
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
+ .skipIfSameApprover (true )
153
+ .nodes ()
154
+ .node ("开始节点" , "start" , "default" , ApprovalType .UN_SIGN , OperatorMatcher .anyOperatorMatcher ())
155
+ .node ("部门领导审批" , "dept" , "default" , ApprovalType .UN_SIGN , OperatorMatcher .specifyOperatorMatcher (dept .getUserId ()))
156
+ .node ("总经理审批" , "manager" , "default" , ApprovalType .UN_SIGN , OperatorMatcher .specifyOperatorMatcher (dept .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
+ assertEquals (0 , userTodo .getTimeoutTime ());
181
+
182
+ flowService .submitFlow (userTodo .getId (), user , leave , Opinion .pass ("同意" ));
183
+
184
+ // 查看刘备经理的待办
185
+ List <FlowRecord > deptTodos = flowRecordRepository .findTodoByOperatorId (dept .getUserId (), pageRequest ).getContent ();
186
+ assertEquals (1 , deptTodos .size ());
187
+
188
+ // 提交委托dept部门经理的审批
189
+ FlowRecord deptTodo = deptTodos .get (0 );
190
+ flowService .submitFlow (deptTodo .getId (), dept , leave , Opinion .pass ("同意" ));
191
+
192
+ // 查看所有流程
193
+ List <FlowRecord > records = flowRecordRepository .findAll (pageRequest ).getContent ();
194
+ assertEquals (3 , records .size ());
195
+
196
+ userTodos = flowRecordRepository .findTodoByOperatorId (user .getUserId (), pageRequest ).getContent ();
197
+ assertEquals (0 , userTodos .size ());
198
+
199
+ records = flowRecordRepository .findAll (pageRequest ).getContent ();
200
+ assertEquals (3 , records .size ());
201
+ // 查看所有流程是否都已经结束
202
+ assertTrue (records .stream ().allMatch (FlowRecord ::isFinish ));
203
+
204
+ List <BindDataSnapshot > snapshots = flowBindDataRepository .findAll ();
205
+ assertEquals (4 , snapshots .size ());
206
+
207
+ }
208
+
209
+
210
+
211
+
134
212
/**
135
213
* 同意再拒绝
136
214
*/
0 commit comments