@@ -95,7 +95,7 @@ public void urge(long recordId, IFlowOperator currentOperator) {
95
95
// 推送催办消息
96
96
for (FlowRecord record : todoRecords ) {
97
97
IFlowOperator pushOperator = flowOperatorRepository .getFlowOperatorById (record .getCurrentOperatorId ());
98
- EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_URGE , record , pushOperator , flowWork ,null ));
98
+ EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_URGE , record , pushOperator , flowWork , null ));
99
99
}
100
100
101
101
}
@@ -122,7 +122,10 @@ public FlowDetail detail(long recordId, IFlowOperator currentOperator) {
122
122
123
123
124
124
BindDataSnapshot snapshot = flowBindDataRepository .getBindDataSnapshotById (flowRecord .getSnapshotId ());
125
- List <FlowRecord > flowRecords = flowRecordRepository .findFlowRecordByProcessId (flowRecord .getProcessId ());
125
+ List <FlowRecord > flowRecords = flowRecordRepository .findFlowRecordByProcessId (flowRecord .getProcessId ()).
126
+ stream ().
127
+ sorted ((o1 , o2 ) -> (int ) (o1 .getId () - o2 .getId ()))
128
+ .toList ();
126
129
127
130
// 获取所有的操作者
128
131
List <Long > operatorIds = new ArrayList <>();
@@ -201,8 +204,12 @@ public void transfer(long recordId, IFlowOperator currentOperator, IFlowOperator
201
204
IFlowOperator createOperator = flowOperatorRepository .getFlowOperatorById (flowRecord .getCreateOperatorId ());
202
205
203
206
// 与当前流程同级的流程记录
204
- List <FlowRecord > historyRecords = flowRecordRepository .findFlowRecordByPreId (flowRecord .getPreId ());
205
-
207
+ List <FlowRecord > historyRecords ;
208
+ if (flowRecord .isStartRecord ()) {
209
+ historyRecords = new ArrayList <>();
210
+ } else {
211
+ historyRecords = flowRecordRepository .findFlowRecordByPreId (flowRecord .getPreId ());
212
+ }
206
213
207
214
// 创建新的待办标题
208
215
FlowSession content = new FlowSession (flowWork , flowNode , createOperator , targetOperator , snapshot .toBindData (), opinion , historyRecords );
@@ -214,10 +221,10 @@ public void transfer(long recordId, IFlowOperator currentOperator, IFlowOperator
214
221
flowRecordRepository .save (List .of (transferRecord ));
215
222
216
223
// 推送转办消息
217
- EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_TRANSFER , flowRecord , currentOperator , flowWork ,snapshot .toBindData ()));
224
+ EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_TRANSFER , flowRecord , currentOperator , flowWork , snapshot .toBindData ()));
218
225
219
226
// 推送待办消息
220
- EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_TODO , transferRecord , targetOperator , flowWork ,snapshot .toBindData ()));
227
+ EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_TODO , transferRecord , targetOperator , flowWork , snapshot .toBindData ()));
221
228
}
222
229
223
230
@@ -296,14 +303,16 @@ public void startFlow(long workId, IFlowOperator operator, IBindData bindData, S
296
303
// 设置开始流程的上一个流程id
297
304
long preId = 0 ;
298
305
306
+ List <FlowRecord > historyRecords = new ArrayList <>();
307
+
299
308
FlowRecordBuilderService flowRecordBuilderService = new FlowRecordBuilderService (
300
309
flowOperatorRepository ,
301
310
flowRecordRepository ,
302
311
snapshot ,
303
312
opinion ,
304
313
operator ,
305
314
operator ,
306
- new ArrayList <>() ,
315
+ historyRecords ,
307
316
flowWork ,
308
317
processId ,
309
318
preId
@@ -320,8 +329,8 @@ public void startFlow(long workId, IFlowOperator operator, IBindData bindData, S
320
329
321
330
// 推送事件消息
322
331
for (FlowRecord record : records ) {
323
- EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_CREATE , record , operator , flowWork ,snapshot .toBindData ()));
324
- EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_TODO , record , operator , flowWork ,snapshot .toBindData ()));
332
+ EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_CREATE , record , operator , flowWork , snapshot .toBindData ()));
333
+ EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_TODO , record , operator , flowWork , snapshot .toBindData ()));
325
334
}
326
335
327
336
}
@@ -379,8 +388,13 @@ public void submitFlow(long recordId, IFlowOperator currentOperator, IBindData b
379
388
flowRecord .submitRecord (currentOperator , snapshot , opinion , flowSourceDirection );
380
389
flowRecordRepository .update (flowRecord );
381
390
382
- // 获取与当前流程同级的流程记录
383
- List <FlowRecord > historyRecords = flowRecordRepository .findFlowRecordByPreId (flowRecord .getPreId ());
391
+ // 与当前流程同级的流程记录
392
+ List <FlowRecord > historyRecords ;
393
+ if (flowRecord .isStartRecord ()) {
394
+ historyRecords = new ArrayList <>();
395
+ } else {
396
+ historyRecords = flowRecordRepository .findFlowRecordByPreId (flowRecord .getPreId ());
397
+ }
384
398
flowDirectionService .bindHistoryRecords (historyRecords );
385
399
386
400
// 判断流程是否结束(会签时需要所有人都通过)
@@ -412,7 +426,7 @@ public void submitFlow(long recordId, IFlowOperator currentOperator, IBindData b
412
426
flowRecordRepository .update (flowRecord );
413
427
flowRecordRepository .finishFlowRecordByProcessId (flowRecord .getProcessId ());
414
428
415
- EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_FINISH , flowRecord , currentOperator , flowWork ,snapshot .toBindData ()));
429
+ EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_FINISH , flowRecord , currentOperator , flowWork , snapshot .toBindData ()));
416
430
return ;
417
431
}
418
432
@@ -451,12 +465,12 @@ public void submitFlow(long recordId, IFlowOperator currentOperator, IBindData b
451
465
452
466
// 推送审批事件消息
453
467
int eventState = flowSourceDirection == FlowSourceDirection .PASS ? FlowApprovalEvent .STATE_PASS : FlowApprovalEvent .STATE_REJECT ;
454
- EventPusher .push (new FlowApprovalEvent (eventState , flowRecord , currentOperator , flowWork ,snapshot .toBindData ()));
468
+ EventPusher .push (new FlowApprovalEvent (eventState , flowRecord , currentOperator , flowWork , snapshot .toBindData ()));
455
469
456
470
// 推送待办事件消息
457
471
for (FlowRecord record : records ) {
458
472
IFlowOperator pushOperator = flowOperatorRepository .getFlowOperatorById (record .getCurrentOperatorId ());
459
- EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_TODO , record , pushOperator , flowWork ,snapshot .toBindData ()));
473
+ EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_TODO , record , pushOperator , flowWork , snapshot .toBindData ()));
460
474
}
461
475
}
462
476
@@ -498,7 +512,7 @@ public void recall(long recordId, IFlowOperator currentOperator) {
498
512
flowRecordRepository .update (flowRecord );
499
513
500
514
flowRecordRepository .delete (childrenRecords );
501
- EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_RECALL , flowRecord , currentOperator , flowWork ,null ));
515
+ EventPusher .push (new FlowApprovalEvent (FlowApprovalEvent .STATE_RECALL , flowRecord , currentOperator , flowWork , null ));
502
516
}
503
517
504
518
}
0 commit comments