Skip to content

Commit 99ff55e

Browse files
committed
fix #30
1 parent 63c7c67 commit 99ff55e

7 files changed

Lines changed: 40 additions & 27 deletions

File tree

flow-engine-framework/src/main/java/com/codingapi/flow/context/RepositoryHolderContext.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -222,17 +222,14 @@ private void saveTodoMargeRecords() {
222222
List<FlowTodoRecord> flowTodoRecords = new ArrayList<>();
223223
for (FlowRecord flowRecord : flowRecords) {
224224
if (flowRecord.isTodo()) {
225-
FlowTodoRecord todoMargeRecord = null;
226-
if (flowRecord.isMergeable()) {
227-
todoMargeRecord = flowTodoRecordRepository.getByMergeKey(flowRecord.getMergeKey());
228-
if (todoMargeRecord == null) {
229-
todoMargeRecord = new FlowTodoRecord(flowRecord);
230-
} else {
231-
todoMargeRecord.update(flowRecord);
225+
FlowTodoRecord todoMargeRecord = flowTodoRecordRepository.getByMergeKey(flowRecord.getMergeKey());
226+
if (todoMargeRecord == null) {
227+
todoMargeRecord = new FlowTodoRecord(flowRecord);
228+
} else {
229+
todoMargeRecord.update(flowRecord);
230+
if (flowRecord.isMergeable()) {
232231
todoMargeRecord.addMargeCount();
233232
}
234-
} else {
235-
todoMargeRecord = new FlowTodoRecord(flowRecord);
236233
}
237234
flowTodoRecords.add(todoMargeRecord);
238235
}
@@ -259,7 +256,7 @@ private void saveRecords() {
259256
}
260257

261258

262-
private void removeTodoMargeRecords() {
259+
private void removeTodoMergeRecords() {
263260
for (FlowRecord flowRecord : flowRecords) {
264261
if (flowRecord.isDone()) {
265262
if (flowRecord.isMergeable()) {
@@ -293,7 +290,7 @@ private void removeTodoMargeRecords() {
293290
public void saveAll() {
294291
this.saveRecords();
295292
this.saveTodoMargeRecords();
296-
this.removeTodoMargeRecords();
293+
this.removeTodoMergeRecords();
297294
}
298295

299296

flow-engine-framework/src/main/java/com/codingapi/flow/record/FlowTodoRecord.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ public void divMargeCount(){
137137
}
138138

139139
public boolean hasMargeCount(){
140-
return this.mergeable && this.margeCount > 0;
140+
return this.mergeable && this.margeCount >= 0;
141141
}
142142

143143
}

flow-engine-framework/src/test/java/com/codingapi/flow/repository/FlowTodoMergeRepositoryImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,9 @@ public List<FlowTodoMerge> findByTodoId(long todoId) {
3838
filter(relation -> relation.getTodoId() == todoId)
3939
.toList();
4040
}
41+
42+
43+
public List<FlowTodoMerge> findAll() {
44+
return cache.values().stream().toList();
45+
}
4146
}

flow-engine-framework/src/test/java/com/codingapi/flow/repository/FlowTodoRecordRepositoryImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,8 @@ public List<FlowTodoRecord> findByOperatorId(long operatorId) {
4545
return cache.values().stream().filter(record -> record.getCurrentOperatorId() == operatorId).toList();
4646
}
4747

48+
public List<FlowTodoRecord> findAll() {
49+
return cache.values().stream().toList();
50+
}
51+
4852
}

flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowMergeableServiceTest.java

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,16 @@
3737

3838
public class FlowMergeableServiceTest {
3939

40-
private final FlowTodoRecordRepositoryImpl flowTodoMargeRecordRepository = new FlowTodoRecordRepositoryImpl();
41-
private final FlowTodoMergeRepositoryImpl flowTodoMargeRelationRepository = new FlowTodoMergeRepositoryImpl();
40+
private final FlowTodoRecordRepositoryImpl flowTodoRecordRepository = new FlowTodoRecordRepositoryImpl();
41+
private final FlowTodoMergeRepositoryImpl flowTodoMergeRepository = new FlowTodoMergeRepositoryImpl();
4242
private final FlowRecordRepositoryImpl flowRecordRepository = new FlowRecordRepositoryImpl();
4343
private final UserGateway userGateway = new UserGateway();
4444
private final WorkflowBackupRepository workflowBackupRepository = new WorkflowBackupRepositoryImpl();
4545
private final WorkflowRepository workflowRepository = new WorkflowRepositoryImpl();
4646
private final ParallelBranchRepository parallelBranchRepository = new ParallelBranchRepositoryImpl();
4747
private final DelayTaskRepository delayTaskRepository = new DelayTaskRepositoryImpl();
4848
private final UrgeIntervalRepository urgeIntervalRepository = new UrgeIntervalRepositoryImpl();
49-
private final FlowService flowService = new FlowService(workflowRepository, userGateway, flowRecordRepository,flowTodoMargeRecordRepository,flowTodoMargeRelationRepository, workflowBackupRepository, parallelBranchRepository, delayTaskRepository, urgeIntervalRepository);
49+
private final FlowService flowService = new FlowService(workflowRepository, userGateway, flowRecordRepository, flowTodoRecordRepository, flowTodoMergeRepository, workflowBackupRepository, parallelBranchRepository, delayTaskRepository, urgeIntervalRepository);
5050

5151

5252
/**
@@ -143,12 +143,12 @@ void mergeableRecords() {
143143
Set<String> set = new HashSet<>(mergeIdList);
144144
assertEquals(1,set.size());
145145

146-
List<FlowTodoRecord> todoMargeRecords = flowTodoMargeRecordRepository.findByOperatorId(boss.getUserId());
147-
assertEquals(1, todoMargeRecords.size());
146+
List<FlowTodoRecord> todoRecords = flowTodoRecordRepository.findByOperatorId(boss.getUserId());
147+
assertEquals(1, todoRecords.size());
148148

149-
FlowTodoRecord todoMargeRecord = todoMargeRecords.get(0);
150-
List<FlowTodoMerge> relationList = flowTodoMargeRelationRepository.findByTodoId(todoMargeRecord.getId());
151-
assertEquals(count, relationList.size());
149+
FlowTodoRecord todoMargeRecord = todoRecords.get(0);
150+
List<FlowTodoMerge> mergeList = flowTodoMergeRepository.findByTodoId(todoMargeRecord.getId());
151+
assertEquals(count, mergeList.size());
152152

153153

154154
List<IFlowAction> bossActions = bossNode.actionManager().getActions();
@@ -167,5 +167,12 @@ void mergeableRecords() {
167167
assertEquals(3, records.stream().filter(FlowRecord::isFinish).toList().size());
168168
}
169169

170-
}
170+
List<FlowTodoRecord> todoRecordList = flowTodoRecordRepository.findAll();
171+
assertEquals(0, todoRecordList.size());
172+
173+
List<FlowTodoMerge> todoMargeList = flowTodoMergeRepository.findAll();
174+
assertEquals(0, todoMargeList.size());
175+
176+
177+
}
171178
}

flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowParallelServiceTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,16 @@
2929

3030
class FlowParallelServiceTest {
3131

32-
private final FlowTodoRecordRepositoryImpl flowTodoMargeRecordRepository = new FlowTodoRecordRepositoryImpl();
33-
private final FlowTodoMergeRepositoryImpl flowTodoMargeRelationRepository = new FlowTodoMergeRepositoryImpl();
32+
private final FlowTodoRecordRepositoryImpl flowTodoRecordRepository = new FlowTodoRecordRepositoryImpl();
33+
private final FlowTodoMergeRepositoryImpl flowTodoMergeRepository = new FlowTodoMergeRepositoryImpl();
3434
private final FlowRecordRepositoryImpl flowRecordRepository = new FlowRecordRepositoryImpl();
3535
private final UserGateway userGateway = new UserGateway();
3636
private final WorkflowBackupRepository workflowBackupRepository = new WorkflowBackupRepositoryImpl();
3737
private final WorkflowRepository workflowRepository = new WorkflowRepositoryImpl();
3838
private final ParallelBranchRepository parallelBranchRepository = new ParallelBranchRepositoryImpl();
3939
private final DelayTaskRepository delayTaskRepository = new DelayTaskRepositoryImpl();
4040
private final UrgeIntervalRepository urgeIntervalRepository = new UrgeIntervalRepositoryImpl();
41-
private final FlowService flowService = new FlowService(workflowRepository, userGateway, flowRecordRepository,flowTodoMargeRecordRepository,flowTodoMargeRelationRepository, workflowBackupRepository, parallelBranchRepository, delayTaskRepository, urgeIntervalRepository);
41+
private final FlowService flowService = new FlowService(workflowRepository, userGateway, flowRecordRepository, flowTodoRecordRepository, flowTodoMergeRepository, workflowBackupRepository, parallelBranchRepository, delayTaskRepository, urgeIntervalRepository);
4242

4343

4444
/**

flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowSampleServiceTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,16 @@
3737

3838
class FlowSampleServiceTest {
3939

40-
private final FlowTodoRecordRepositoryImpl flowTodoMargeRecordRepository = new FlowTodoRecordRepositoryImpl();
41-
private final FlowTodoMergeRepositoryImpl flowTodoMargeRelationRepository = new FlowTodoMergeRepositoryImpl();
40+
private final FlowTodoRecordRepositoryImpl flowTodoRecordRepository = new FlowTodoRecordRepositoryImpl();
41+
private final FlowTodoMergeRepositoryImpl flowTodoMergeRepository = new FlowTodoMergeRepositoryImpl();
4242
private final FlowRecordRepositoryImpl flowRecordRepository = new FlowRecordRepositoryImpl();
4343
private final UserGateway userGateway = new UserGateway();
4444
private final WorkflowBackupRepository workflowBackupRepository = new WorkflowBackupRepositoryImpl();
4545
private final WorkflowRepository workflowRepository = new WorkflowRepositoryImpl();
4646
private final ParallelBranchRepository parallelBranchRepository = new ParallelBranchRepositoryImpl();
4747
private final DelayTaskRepository delayTaskRepository = new DelayTaskRepositoryImpl();
4848
private final UrgeIntervalRepository urgeIntervalRepository = new UrgeIntervalRepositoryImpl();
49-
private final FlowService flowService = new FlowService(workflowRepository, userGateway, flowRecordRepository,flowTodoMargeRecordRepository,flowTodoMargeRelationRepository, workflowBackupRepository, parallelBranchRepository, delayTaskRepository, urgeIntervalRepository);
49+
private final FlowService flowService = new FlowService(workflowRepository, userGateway, flowRecordRepository, flowTodoRecordRepository, flowTodoMergeRepository, workflowBackupRepository, parallelBranchRepository, delayTaskRepository, urgeIntervalRepository);
5050

5151
@Test
5252
void create() {

0 commit comments

Comments
 (0)