@@ -51,7 +51,8 @@ public FlowDetail detail(long recordId) {
5151 * @param time 延期时间
5252 */
5353 public void postponed (long recordId , IFlowOperator currentOperator , long time ) {
54- FlowRecordService2 flowRecordService2 = new FlowRecordService2 (flowRecordRepository , flowProcessRepository , flowBindDataRepository ,
54+ FlowRecordService2 flowRecordService2 = new FlowRecordService2 (flowRecordRepository ,
55+ flowProcessRepository ,
5556 recordId ,currentOperator );
5657
5758 flowRecordService2 .loadFlowRecord ();
@@ -75,7 +76,8 @@ public void postponed(long recordId, IFlowOperator currentOperator, long time) {
7576 * @param currentOperator 当前操作者
7677 */
7778 public void urge (long recordId , IFlowOperator currentOperator ) {
78- FlowRecordService2 flowRecordService2 = new FlowRecordService2 (flowRecordRepository , flowProcessRepository , flowBindDataRepository ,
79+ FlowRecordService2 flowRecordService2 = new FlowRecordService2 (flowRecordRepository ,
80+ flowProcessRepository ,
7981 recordId ,currentOperator );
8082 flowRecordService2 .loadFlowRecord ();
8183 flowRecordService2 .loadFlowWork ();
@@ -103,7 +105,8 @@ public void urge(long recordId, IFlowOperator currentOperator) {
103105 */
104106 public FlowDetail detail (long recordId , IFlowOperator currentOperator ) {
105107
106- FlowRecordService2 flowRecordService2 = new FlowRecordService2 (flowRecordRepository , flowProcessRepository , flowBindDataRepository ,
108+ FlowRecordService2 flowRecordService2 = new FlowRecordService2 (flowRecordRepository ,
109+ flowProcessRepository ,
107110 recordId ,currentOperator );
108111
109112 flowRecordService2 .loadFlowRecord ();
@@ -159,7 +162,8 @@ public void interfere(long recordId, IFlowOperator currentOperator, IBindData bi
159162 */
160163 public void transfer (long recordId , IFlowOperator currentOperator , IFlowOperator targetOperator , IBindData bindData , String advice ) {
161164
162- FlowRecordService2 flowRecordService2 = new FlowRecordService2 (flowRecordRepository , flowProcessRepository , flowBindDataRepository ,
165+ FlowRecordService2 flowRecordService2 = new FlowRecordService2 (flowRecordRepository ,
166+ flowProcessRepository ,
163167 recordId ,currentOperator );
164168
165169 flowRecordService2 .loadFlowRecord ();
@@ -227,19 +231,19 @@ public void transfer(long recordId, IFlowOperator currentOperator, IFlowOperator
227231 * @param advice 审批意见
228232 */
229233 public void save (long recordId , IFlowOperator currentOperator , IBindData bindData , String advice ) {
230- FlowRecordService2 flowRecordService2 = new FlowRecordService2 (flowRecordRepository , flowProcessRepository , flowBindDataRepository ,
234+ FlowRecordService2 flowRecordService2 = new FlowRecordService2 (flowRecordRepository ,
235+ flowProcessRepository ,
231236 recordId ,currentOperator );
232- flowRecordService2 .bindBindData (bindData );
233- flowRecordService2 .bindOpinion (Opinion .save (advice ));
234-
235237 flowRecordService2 .loadFlowRecord ();
236238 flowRecordService2 .verifyFlowRecordSubmitState ();
237239 flowRecordService2 .verifyFlowRecordCurrentOperator ();
238240 flowRecordService2 .loadFlowWork ();
239241 flowRecordService2 .loadFlowNode ();
240242 flowRecordService2 .verifyFlowNodeEditableState (false );
241- flowRecordService2 .saveSnapshot ();
242- flowRecordService2 .updateFlowRecord ();
243+
244+ FlowNodeService flowNodeService = new FlowNodeService (flowOperatorRepository ,flowBindDataRepository ,flowRecordService2 ,bindData ,Opinion .save (advice ));
245+ flowNodeService .updateSnapshot ();
246+ flowNodeService .updateFlowRecord ();
243247
244248 }
245249
@@ -313,13 +317,9 @@ public void startFlow(long workId, IFlowOperator operator, IBindData bindData, S
313317 */
314318 public void submitFlow (long recordId , IFlowOperator currentOperator , IBindData bindData , Opinion opinion ) {
315319
316- FlowRecordService2 flowRecordService2 = new FlowRecordService2 (flowRecordRepository , flowProcessRepository , flowBindDataRepository ,
320+ FlowRecordService2 flowRecordService2 = new FlowRecordService2 (flowRecordRepository , flowProcessRepository ,
317321 recordId ,currentOperator );
318322
319- flowRecordService2 .bindBindData (bindData );
320- flowRecordService2 .bindOpinion (opinion );
321-
322-
323323 flowRecordService2 .loadFlowRecord ();
324324 flowRecordService2 .verifyFlowRecordSubmitState ();
325325 flowRecordService2 .verifyFlowRecordCurrentOperator ();
@@ -330,32 +330,22 @@ public void submitFlow(long recordId, IFlowOperator currentOperator, IBindData b
330330 FlowNode flowNode = flowRecordService2 .getFlowNode ();
331331 FlowWork flowWork = flowRecordService2 .getFlowWork ();
332332
333- // 根据审批意见判断流程是否进入下一节点
334- FlowSourceDirection flowSourceDirection = opinion .isSuccess ()? FlowSourceDirection .PASS : FlowSourceDirection .REJECT ;
333+ FlowNodeService flowNodeService = new FlowNodeService (flowOperatorRepository ,flowBindDataRepository ,flowRecordService2 ,bindData ,opinion );
335334
336- if (flowNode .isStartNode () && flowSourceDirection == FlowSourceDirection .REJECT ){
337- throw new IllegalArgumentException ("flow node is start node" );
338- }
335+ flowNodeService .loadFlowSourceDirection ();
336+ flowNodeService .verifyFlowSourceDirection ();
339337
340338
341- // 下一流程的流程记录
342- List <FlowRecord > childrenRecords = flowRecordRepository .findFlowRecordByPreId (recordId );
343- // 不能存在后续的子流程
344- if (!childrenRecords .isEmpty ()) {
345- throw new IllegalArgumentException ("flow node is done" );
346- }
339+ flowNodeService .loadChildrenRecords ();
340+ flowNodeService .verifyChildrenRecordsIsEmpty ();
347341
348342 // 获取创建者
349343 IFlowOperator createOperator = flowOperatorRepository .getFlowOperatorById (flowRecord .getCreateOperatorId ());
350344
351- BindDataSnapshot snapshot = null ;
352- // 保存绑定数据
353- if (flowNode .isEditable ()) {
354- snapshot = new BindDataSnapshot (bindData );
355- flowBindDataRepository .save (snapshot );
356- } else {
357- snapshot = flowBindDataRepository .getBindDataSnapshotById (flowRecord .getSnapshotId ());
358- }
345+ flowNodeService .loadSnapshot ();
346+
347+ BindDataSnapshot snapshot = flowNodeService .getSnapshot ();
348+ FlowSourceDirection flowSourceDirection = flowNodeService .getFlowSourceDirection ();
359349
360350 // 提交流程
361351 flowRecord .submitRecord (currentOperator , snapshot , opinion , flowSourceDirection );
@@ -495,7 +485,8 @@ private void createNexRecordList(FlowRecordService flowRecordService,long preId,
495485 * @param currentOperator 当前操作者
496486 */
497487 public void recall (long recordId , IFlowOperator currentOperator ) {
498- FlowRecordService2 flowRecordService2 = new FlowRecordService2 (flowRecordRepository , flowProcessRepository , flowBindDataRepository ,
488+ FlowRecordService2 flowRecordService2 = new FlowRecordService2 (flowRecordRepository ,
489+ flowProcessRepository ,
499490 recordId ,currentOperator );
500491
501492 flowRecordService2 .loadFlowRecord ();
0 commit comments