diff --git a/flow-engine-framework/src/main/java/com/codingapi/flow/context/RepositoryHolderContext.java b/flow-engine-framework/src/main/java/com/codingapi/flow/context/RepositoryHolderContext.java index d140af43..f8190c9c 100644 --- a/flow-engine-framework/src/main/java/com/codingapi/flow/context/RepositoryHolderContext.java +++ b/flow-engine-framework/src/main/java/com/codingapi/flow/context/RepositoryHolderContext.java @@ -1,12 +1,11 @@ package com.codingapi.flow.context; +import com.codingapi.flow.context.service.FlowRecordSaveService; import com.codingapi.flow.domain.DelayTask; import com.codingapi.flow.exception.FlowStateException; import com.codingapi.flow.gateway.FlowOperatorGateway; import com.codingapi.flow.operator.IFlowOperator; import com.codingapi.flow.record.FlowRecord; -import com.codingapi.flow.record.FlowTodoRecord; -import com.codingapi.flow.record.FlowTodoMerge; import com.codingapi.flow.repository.*; import com.codingapi.flow.service.FlowService; import com.codingapi.flow.service.impl.FlowActionService; @@ -14,9 +13,11 @@ import com.codingapi.flow.session.FlowSession; import lombok.Getter; -import java.util.ArrayList; import java.util.List; +/** + * 流程引擎仓库持有者上下文,负责持有流程引擎相关的仓库实例,并提供相关服务的构建方法 + */ public class RepositoryHolderContext { @Getter @@ -156,13 +157,13 @@ public void deleteDelayTask(DelayTask delayTask) { public void saveRecords(List flowRecords) { - FlowRecordRepositoryService flowRecordRepositoryService = new FlowRecordRepositoryService(flowRecords); - flowRecordRepositoryService.saveAll(); + FlowRecordSaveService flowRecordSaveService = new FlowRecordSaveService(flowRecords); + flowRecordSaveService.saveAll(); } public void saveRecord(FlowRecord flowRecord) { - FlowRecordRepositoryService flowRecordRepositoryService = new FlowRecordRepositoryService(flowRecord); - flowRecordRepositoryService.saveAll(); + FlowRecordSaveService flowRecordSaveService = new FlowRecordSaveService(flowRecord); + flowRecordSaveService.saveAll(); } public List findCurrentNodeRecords(long fromId, String nodeId) { @@ -194,106 +195,4 @@ public List findDelayTasks() { } - private static class FlowRecordRepositoryService { - - private final List flowRecords; - private final FlowTodoRecordRepository flowTodoRecordRepository; - private final FlowTodoMergeRepository flowTodoMergeRepository; - private final FlowRecordRepository flowRecordRepository; - - - public FlowRecordRepositoryService(List flowRecords) { - this.flowTodoRecordRepository = RepositoryHolderContext.getInstance().getFlowTodoRecordRepository(); - this.flowTodoMergeRepository = RepositoryHolderContext.getInstance().getFlowTodoMergeRepository(); - this.flowRecordRepository = RepositoryHolderContext.getInstance().getFlowRecordRepository(); - this.flowRecords = flowRecords; - } - - public FlowRecordRepositoryService(FlowRecord flowRecord) { - this.flowTodoRecordRepository = RepositoryHolderContext.getInstance().getFlowTodoRecordRepository(); - this.flowTodoMergeRepository = RepositoryHolderContext.getInstance().getFlowTodoMergeRepository(); - this.flowRecordRepository = RepositoryHolderContext.getInstance().getFlowRecordRepository(); - this.flowRecords = new ArrayList<>(); - this.flowRecords.add(flowRecord); - } - - - private void saveTodoMargeRecords() { - List flowTodoRecords = new ArrayList<>(); - for (FlowRecord flowRecord : flowRecords) { - if (flowRecord.isTodo()) { - FlowTodoRecord todoMargeRecord = flowTodoRecordRepository.getByMergeKey(flowRecord.getMergeKey()); - if (todoMargeRecord == null) { - todoMargeRecord = new FlowTodoRecord(flowRecord); - } else { - todoMargeRecord.update(flowRecord); - if (flowRecord.isMergeable()) { - todoMargeRecord.addMergeCount(); - } - } - flowTodoRecords.add(todoMargeRecord); - } - } - if (!flowTodoRecords.isEmpty()) { - flowTodoRecordRepository.saveAll(flowTodoRecords); - } - - if (!flowTodoRecords.isEmpty()) { - List relationList = new ArrayList<>(); - for (FlowTodoRecord margeRecord : flowTodoRecords) { - if(margeRecord.isMergeable()) { - relationList.add(new FlowTodoMerge(margeRecord)); - } - } - flowTodoMergeRepository.saveAll(relationList); - } - } - - private void saveRecords() { - if (!flowRecords.isEmpty()) { - flowRecordRepository.saveAll(flowRecords); - } - } - - - private void removeTodoMergeRecords() { - for (FlowRecord flowRecord : flowRecords) { - if (flowRecord.isDone()) { - if (flowRecord.isMergeable()) { - FlowTodoRecord todoMargeRecord = flowTodoRecordRepository.getByMergeKey(flowRecord.getMergeKey()); - if(todoMargeRecord!=null) { - List margeRelations = flowTodoMergeRepository.findByTodoId(todoMargeRecord.getId()); - if(margeRelations!=null && !margeRelations.isEmpty()) { - for (FlowTodoMerge margeRelation : margeRelations) { - if (margeRelation.isRecord(flowRecord.getId())) { - flowTodoMergeRepository.remove(margeRelation); - todoMargeRecord.divMergeCount(); - if (todoMargeRecord.hasMergeCount()) { - flowTodoRecordRepository.save(todoMargeRecord); - } else { - flowTodoRecordRepository.remove(todoMargeRecord); - } - } - } - } - } - } else { - FlowTodoRecord todoMargeRecord = flowTodoRecordRepository.getByMergeKey(flowRecord.getMergeKey()); - if (todoMargeRecord != null) { - flowTodoRecordRepository.remove(todoMargeRecord); - } - } - } - } - } - - public void saveAll() { - this.saveRecords(); - this.saveTodoMargeRecords(); - this.removeTodoMergeRecords(); - } - - - } - } diff --git a/flow-engine-framework/src/main/java/com/codingapi/flow/context/service/FlowRecordSaveService.java b/flow-engine-framework/src/main/java/com/codingapi/flow/context/service/FlowRecordSaveService.java new file mode 100644 index 00000000..140539c6 --- /dev/null +++ b/flow-engine-framework/src/main/java/com/codingapi/flow/context/service/FlowRecordSaveService.java @@ -0,0 +1,117 @@ +package com.codingapi.flow.context.service; + +import com.codingapi.flow.context.RepositoryHolderContext; +import com.codingapi.flow.record.FlowRecord; +import com.codingapi.flow.record.FlowTodoMerge; +import com.codingapi.flow.record.FlowTodoRecord; +import com.codingapi.flow.repository.FlowRecordRepository; +import com.codingapi.flow.repository.FlowTodoMergeRepository; +import com.codingapi.flow.repository.FlowTodoRecordRepository; + +import java.util.ArrayList; +import java.util.List; + +/** + * 流程记录保存服务,负责保存流程记录和待办记录的合并关系 + */ +public class FlowRecordSaveService { + + private final List flowRecords; + private final FlowTodoRecordRepository flowTodoRecordRepository; + private final FlowTodoMergeRepository flowTodoMergeRepository; + private final FlowRecordRepository flowRecordRepository; + + + public FlowRecordSaveService(List flowRecords) { + this.flowTodoRecordRepository = RepositoryHolderContext.getInstance().getFlowTodoRecordRepository(); + this.flowTodoMergeRepository = RepositoryHolderContext.getInstance().getFlowTodoMergeRepository(); + this.flowRecordRepository = RepositoryHolderContext.getInstance().getFlowRecordRepository(); + this.flowRecords = flowRecords; + } + + public FlowRecordSaveService(FlowRecord flowRecord) { + this.flowTodoRecordRepository = RepositoryHolderContext.getInstance().getFlowTodoRecordRepository(); + this.flowTodoMergeRepository = RepositoryHolderContext.getInstance().getFlowTodoMergeRepository(); + this.flowRecordRepository = RepositoryHolderContext.getInstance().getFlowRecordRepository(); + this.flowRecords = new ArrayList<>(); + this.flowRecords.add(flowRecord); + } + + + private void saveTodoMargeRecords() { + List flowTodoRecords = new ArrayList<>(); + for (FlowRecord flowRecord : flowRecords) { + if (flowRecord.isTodo()) { + FlowTodoRecord todoMargeRecord = flowTodoRecordRepository.getByMergeKey(flowRecord.getMergeKey()); + if (todoMargeRecord == null) { + todoMargeRecord = new FlowTodoRecord(flowRecord); + } else { + todoMargeRecord.update(flowRecord); + if (flowRecord.isMergeable()) { + todoMargeRecord.addMergeCount(); + } + } + flowTodoRecords.add(todoMargeRecord); + } + } + if (!flowTodoRecords.isEmpty()) { + flowTodoRecordRepository.saveAll(flowTodoRecords); + } + + if (!flowTodoRecords.isEmpty()) { + List relationList = new ArrayList<>(); + for (FlowTodoRecord margeRecord : flowTodoRecords) { + if (margeRecord.isMergeable()) { + relationList.add(new FlowTodoMerge(margeRecord)); + } + } + flowTodoMergeRepository.saveAll(relationList); + } + } + + private void saveRecords() { + if (!flowRecords.isEmpty()) { + // 只保存非结束节点的记录,结束节点的记录由流程引擎自动生成,不允许外部修改 + List flowRecordList = flowRecords.stream().filter(FlowRecord::isNotEndNode).toList(); + flowRecordRepository.saveAll(flowRecordList); + } + } + + + private void removeTodoMergeRecords() { + for (FlowRecord flowRecord : flowRecords) { + if (flowRecord.isDone()) { + if (flowRecord.isMergeable()) { + FlowTodoRecord todoMargeRecord = flowTodoRecordRepository.getByMergeKey(flowRecord.getMergeKey()); + if (todoMargeRecord != null) { + List margeRelations = flowTodoMergeRepository.findByTodoId(todoMargeRecord.getId()); + if (margeRelations != null && !margeRelations.isEmpty()) { + for (FlowTodoMerge margeRelation : margeRelations) { + if (margeRelation.isRecord(flowRecord.getId())) { + flowTodoMergeRepository.remove(margeRelation); + todoMargeRecord.divMergeCount(); + if (todoMargeRecord.hasMergeCount()) { + flowTodoRecordRepository.save(todoMargeRecord); + } else { + flowTodoRecordRepository.remove(todoMargeRecord); + } + } + } + } + } + } else { + FlowTodoRecord todoMargeRecord = flowTodoRecordRepository.getByMergeKey(flowRecord.getMergeKey()); + if (todoMargeRecord != null) { + flowTodoRecordRepository.remove(todoMargeRecord); + } + } + } + } + } + + public void saveAll() { + this.saveRecords(); + this.saveTodoMargeRecords(); + this.removeTodoMergeRecords(); + } +} diff --git a/flow-engine-framework/src/main/java/com/codingapi/flow/record/FlowRecord.java b/flow-engine-framework/src/main/java/com/codingapi/flow/record/FlowRecord.java index d9a3e693..ca4fbf38 100644 --- a/flow-engine-framework/src/main/java/com/codingapi/flow/record/FlowRecord.java +++ b/flow-engine-framework/src/main/java/com/codingapi/flow/record/FlowRecord.java @@ -6,6 +6,7 @@ import com.codingapi.flow.form.FormData; import com.codingapi.flow.manager.NodeStrategyManager; import com.codingapi.flow.node.IFlowNode; +import com.codingapi.flow.node.nodes.EndNode; import com.codingapi.flow.operator.IFlowOperator; import com.codingapi.flow.session.FlowAdvice; import com.codingapi.flow.session.FlowSession; @@ -604,4 +605,11 @@ public void over() { this.currentOperatorId = -1; this.recordState = SATE_RECORD_DONE; } + + /** + * 判断是否结束节点的记录 + */ + public boolean isNotEndNode() { + return !EndNode.NODE_TYPE.equals(this.nodeType); + } } diff --git a/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowDetailServiceTest.java b/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowDetailServiceTest.java index 62aab23e..25b804f9 100644 --- a/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowDetailServiceTest.java +++ b/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowDetailServiceTest.java @@ -163,8 +163,8 @@ void detail() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(3, records.size()); - assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(2, records.size()); + assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -277,8 +277,8 @@ void processNodes() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(3, records.size()); - assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(2, records.size()); + assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size()); } } diff --git a/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowMergeableServiceTest.java b/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowMergeableServiceTest.java index 843205ad..94f69a6e 100644 --- a/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowMergeableServiceTest.java +++ b/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowMergeableServiceTest.java @@ -163,8 +163,8 @@ void mergeableRecords() { for(int i=0;i records = flowRecordRepository.findProcessRecords(bossRecordList.get(i).getProcessId()); - assertEquals(3, records.size()); - assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(2, records.size()); + assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size()); } List todoRecordList = flowTodoRecordRepository.findAll(); diff --git a/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowParallelServiceTest.java b/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowParallelServiceTest.java index 000d6995..dd94250f 100644 --- a/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowParallelServiceTest.java +++ b/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowParallelServiceTest.java @@ -310,9 +310,9 @@ void parallelAndParallel() { List records = flowRecordRepository.findProcessRecords(departRecordList.get(0).getProcessId()); - assertEquals(8, records.size()); + assertEquals(7, records.size()); assertEquals(0, records.stream().filter(FlowRecord::isTodo).toList().size()); - assertEquals(8, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(7, records.stream().filter(FlowRecord::isFinish).toList().size()); } } \ No newline at end of file diff --git a/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowSampleServiceTest.java b/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowSampleServiceTest.java index 7f01d77d..833b56b1 100644 --- a/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowSampleServiceTest.java +++ b/flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowSampleServiceTest.java @@ -213,8 +213,8 @@ void pass() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(3, records.size()); - assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(2, records.size()); + assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -313,8 +313,8 @@ void handle() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(3, records.size()); - assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(2, records.size()); + assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -402,8 +402,8 @@ void notifyNode() { assertEquals(0, bossRecordList.size()); List records = flowRecordRepository.findProcessRecords(userRecordList.get(0).getProcessId()); - assertEquals(3, records.size()); - assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(2, records.size()); + assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -533,8 +533,8 @@ void condition() { flowService.action(departRequest); List records = flowRecordRepository.findProcessRecords(departRecordList.get(0).getProcessId()); - assertEquals(3, records.size()); - assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(2, records.size()); + assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -655,8 +655,8 @@ public FlowRecord getRecordById(long id) { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(5, records.size()); - assertEquals(5, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(4, records.size()); + assertEquals(4, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -825,9 +825,9 @@ void parallel() { flowService.action(bigBossRequest); List records = flowRecordRepository.findProcessRecords(departRecordList.get(0).getProcessId()); - assertEquals(5, records.size()); + assertEquals(4, records.size()); assertEquals(0, records.stream().filter(FlowRecord::isTodo).toList().size()); - assertEquals(5, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(4, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -1002,9 +1002,9 @@ void inclusive() { flowService.action(bigBossRequest); List records = flowRecordRepository.findProcessRecords(departRecordList.get(0).getProcessId()); - assertEquals(5, records.size()); + assertEquals(4, records.size()); assertEquals(0, records.stream().filter(FlowRecord::isTodo).toList().size()); - assertEquals(5, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(4, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -1164,8 +1164,8 @@ void router() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(userRecordList.get(0).getProcessId()); - assertEquals(4, records.size()); - assertEquals(4, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(3, records.size()); + assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -1276,8 +1276,8 @@ void delay() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(3, records.size()); - assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(2, records.size()); + assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -1381,8 +1381,8 @@ void trigger() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(3, records.size()); - assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(2, records.size()); + assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -1482,8 +1482,8 @@ void subProcess() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(3, records.size()); - assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(2, records.size()); + assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size()); // 为老板再次创建一个待办流程 bossRecordList = flowRecordRepository.findTodoByOperator(boss.getUserId()); @@ -1599,8 +1599,8 @@ void save() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(3, records.size()); - assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(2, records.size()); + assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -1724,8 +1724,8 @@ void addAudit() { flowService.action(lorneRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(4, records.size()); - assertEquals(4, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(3, records.size()); + assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -1840,8 +1840,8 @@ void transfer() { flowService.action(lorneRequest); List records = flowRecordRepository.findProcessRecords(lorneRecordList.get(0).getProcessId()); - assertEquals(4, records.size()); - assertEquals(4, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(3, records.size()); + assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -1961,8 +1961,8 @@ void returnNode() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(5, records.size()); - assertEquals(5, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(4, records.size()); + assertEquals(4, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -2084,8 +2084,8 @@ void delegate() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(5, records.size()); - assertEquals(5, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(4, records.size()); + assertEquals(4, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -2183,8 +2183,8 @@ void custom() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(3, records.size()); - assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(2, records.size()); + assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -2302,8 +2302,8 @@ void revoke() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(4, records.size()); - assertEquals(4, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(3, records.size()); + assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -2409,8 +2409,8 @@ void urge() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(3, records.size()); - assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(2, records.size()); + assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -2511,8 +2511,8 @@ void interfere() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(bossRecordList.get(0).getProcessId()); - assertEquals(3, records.size()); - assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(2, records.size()); + assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -2614,8 +2614,8 @@ void forwardOperator() { flowService.action(lorneRequest); List records = flowRecordRepository.findProcessRecords(lorneRecordList.get(0).getProcessId()); - assertEquals(4, records.size()); - assertEquals(4, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(3, records.size()); + assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); } @@ -2720,8 +2720,8 @@ void errorTest() { flowService.action(bossRequest); List records = flowRecordRepository.findProcessRecords(lorneRecordList.get(0).getProcessId()); - assertEquals(3, records.size()); - assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size()); + assertEquals(2, records.size()); + assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size()); } } \ No newline at end of file