Skip to content

Commit 1f72faf

Browse files
committed
format code
1 parent 126369c commit 1f72faf

6 files changed

Lines changed: 152 additions & 67 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public class FlowRecord {
8888
*/
8989
private long readTime;
9090
/**
91-
* 流程id
91+
* 流程惟一标识
9292
* 每一次流程启动时生成,直到流程结束
9393
*/
9494
private String processId;

flow-engine-framework/src/main/java/com/codingapi/flow/service/FlowRecordSaveService.java

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.codingapi.flow.service;
22

3-
import com.codingapi.flow.context.RepositoryHolderContext;
43
import com.codingapi.flow.record.FlowRecord;
54
import com.codingapi.flow.record.FlowTodoMerge;
65
import com.codingapi.flow.record.FlowTodoRecord;
6+
import com.codingapi.flow.repository.FlowRecordRepository;
7+
import com.codingapi.flow.repository.FlowTodoMergeRepository;
8+
import com.codingapi.flow.repository.FlowTodoRecordRepository;
79

810
import java.util.ArrayList;
911
import java.util.List;
@@ -14,26 +16,35 @@
1416
class FlowRecordSaveService {
1517

1618
private final List<FlowRecord> flowRecords;
17-
private final FlowRecordService flowRecordService;
19+
20+
private FlowTodoRecordRepository flowTodoRecordRepository;
21+
private FlowTodoMergeRepository flowTodoMergeRepository;
22+
private FlowRecordRepository flowRecordRepository;
1823

1924

2025
public FlowRecordSaveService(List<FlowRecord> flowRecords) {
21-
this.flowRecordService = RepositoryHolderContext.getInstance().getFlowRecordService();
2226
this.flowRecords = flowRecords;
2327
}
2428

2529
public FlowRecordSaveService(FlowRecord flowRecord) {
2630
this.flowRecords = new ArrayList<>();
2731
this.flowRecords.add(flowRecord);
28-
this.flowRecordService = RepositoryHolderContext.getInstance().getFlowRecordService();
32+
}
33+
34+
public void registerRepositories(FlowTodoRecordRepository flowTodoRecordRepository,
35+
FlowTodoMergeRepository flowTodoMergeRepository,
36+
FlowRecordRepository flowRecordRepository) {
37+
this.flowTodoRecordRepository = flowTodoRecordRepository;
38+
this.flowTodoMergeRepository = flowTodoMergeRepository;
39+
this.flowRecordRepository = flowRecordRepository;
2940
}
3041

3142

3243
private void saveTodoMargeRecords() {
3344
List<FlowTodoRecord> flowTodoRecords = new ArrayList<>();
3445
for (FlowRecord flowRecord : flowRecords) {
3546
if (flowRecord.isTodo()) {
36-
FlowTodoRecord todoMargeRecord = flowRecordService.getFlowTodoByMergeKey(flowRecord.getMergeKey());
47+
FlowTodoRecord todoMargeRecord = flowTodoRecordRepository.getByMergeKey(flowRecord.getMergeKey());
3748
if (todoMargeRecord == null) {
3849
todoMargeRecord = new FlowTodoRecord(flowRecord);
3950
} else {
@@ -46,7 +57,7 @@ private void saveTodoMargeRecords() {
4657
}
4758
}
4859
if (!flowTodoRecords.isEmpty()) {
49-
flowRecordService.saveFlowTodos(flowTodoRecords);
60+
flowTodoRecordRepository.saveAll(flowTodoRecords);
5061
}
5162

5263
if (!flowTodoRecords.isEmpty()) {
@@ -56,43 +67,43 @@ private void saveTodoMargeRecords() {
5667
relationList.add(new FlowTodoMerge(margeRecord));
5768
}
5869
}
59-
flowRecordService.saveFlowMerges(relationList);
70+
flowTodoMergeRepository.saveAll(relationList);
6071
}
6172
}
6273

6374
private void saveRecords() {
6475
if (!flowRecords.isEmpty()) {
6576
// 只保存非结束节点的记录,结束节点的记录由流程引擎自动生成,不允许外部修改
6677
List<FlowRecord> flowRecordList = flowRecords.stream().filter(FlowRecord::isNotEndNode).toList();
67-
flowRecordService.saveAll(flowRecordList);
78+
flowRecordRepository.saveAll(flowRecordList);
6879
}
6980
}
7081

7182
private void removeTodoMergeRecords() {
7283
for (FlowRecord flowRecord : flowRecords) {
7384
if (flowRecord.isDone()) {
7485
if (flowRecord.isMergeable()) {
75-
FlowTodoRecord todoMargeRecord = flowRecordService.getFlowTodoByMergeKey(flowRecord.getMergeKey());
86+
FlowTodoRecord todoMargeRecord = flowTodoRecordRepository.getByMergeKey(flowRecord.getMergeKey());
7687
if (todoMargeRecord != null) {
77-
List<FlowTodoMerge> margeRelations = flowRecordService.findFlowTodoMergeByTodoId(todoMargeRecord.getId());
88+
List<FlowTodoMerge> margeRelations = flowTodoMergeRepository.findByTodoId(todoMargeRecord.getId());
7889
if (margeRelations != null && !margeRelations.isEmpty()) {
7990
for (FlowTodoMerge margeRelation : margeRelations) {
8091
if (margeRelation.isRecord(flowRecord.getId())) {
81-
flowRecordService.deleteFlowMerge(margeRelation);
92+
flowTodoMergeRepository.delete(margeRelation);
8293
todoMargeRecord.divMergeCount();
8394
if (todoMargeRecord.hasMergeCount()) {
84-
flowRecordService.saveFlowTodo(todoMargeRecord);
95+
flowTodoRecordRepository.save(todoMargeRecord);
8596
} else {
86-
flowRecordService.deleteFlowTodo(todoMargeRecord);
97+
flowTodoRecordRepository.delete(todoMargeRecord);
8798
}
8899
}
89100
}
90101
}
91102
}
92103
} else {
93-
FlowTodoRecord flowTodoRecord = flowRecordService.getFlowTodoByMergeKey(flowRecord.getMergeKey());
104+
FlowTodoRecord flowTodoRecord = flowTodoRecordRepository.getByMergeKey(flowRecord.getMergeKey());
94105
if (flowTodoRecord != null) {
95-
flowRecordService.deleteFlowTodo(flowTodoRecord);
106+
flowTodoRecordRepository.delete(flowTodoRecord);
96107
}
97108
}
98109
}

flow-engine-framework/src/main/java/com/codingapi/flow/service/FlowRecordService.java

Lines changed: 61 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010

1111
import java.util.List;
1212

13+
/**
14+
* 流程记录服务对象
15+
*/
1316
@AllArgsConstructor
1417
public class FlowRecordService {
1518

@@ -18,83 +21,103 @@ public class FlowRecordService {
1821
private final FlowRecordRepository flowRecordRepository;
1922

2023

21-
protected void saveAll(List<FlowRecord> flowRecords){
22-
this.flowRecordRepository.saveAll(flowRecords);
23-
}
24-
24+
/**
25+
* 保存流程记录
26+
* @param flowRecords 流程记录列表
27+
*/
2528
public void saveFlowRecords(List<FlowRecord> flowRecords){
2629
FlowRecordSaveService flowRecordSaveService = new FlowRecordSaveService(flowRecords);
30+
flowRecordSaveService.registerRepositories(this.flowTodoRecordRepository,this.flowTodoMergeRepository,this.flowRecordRepository);
2731
flowRecordSaveService.saveAll();
2832
}
2933

34+
/**
35+
* 保存流程记录
36+
* @param flowRecord 流程记录
37+
*/
3038
public void saveFlowRecord(FlowRecord flowRecord) {
3139
FlowRecordSaveService flowRecordSaveService = new FlowRecordSaveService(flowRecord);
40+
flowRecordSaveService.registerRepositories(this.flowTodoRecordRepository,this.flowTodoMergeRepository,this.flowRecordRepository);
3241
flowRecordSaveService.saveAll();
3342
}
3443

35-
public void saveFlowTodos(List<FlowTodoRecord> todoList) {
36-
flowTodoRecordRepository.saveAll(todoList);
37-
}
3844

39-
public void saveFlowMerges(List<FlowTodoMerge> mergeList) {
40-
this.flowTodoMergeRepository.saveAll(mergeList);
45+
/**
46+
* 获取流程的合并记录
47+
* @param mergeKey 流程合并key
48+
* @return 流程合并记录
49+
*/
50+
public List<FlowRecord> getMergeRecord(String mergeKey){
51+
FlowTodoRecord todoRecord = flowTodoRecordRepository.getByMergeKey(mergeKey);
52+
List<FlowTodoMerge> todoMerges = flowTodoMergeRepository.findByTodoId(todoRecord.getId());
53+
return this.findFlowRecordByIds(todoMerges.stream().map(FlowTodoMerge::getRecordId).toList());
4154
}
4255

56+
57+
/**
58+
* 获取流程记录
59+
* @param id 流程id
60+
* @return 流程记录
61+
*/
4362
public FlowRecord getFlowRecord(long id){
4463
return flowRecordRepository.get(id);
4564
}
4665

47-
public FlowTodoRecord getFlowTodoByMergeKey(String mergeKey) {
48-
return flowTodoRecordRepository.getByMergeKey(mergeKey);
49-
}
50-
51-
public List<FlowTodoMerge> findFlowTodoMergeByTodoId(long mergeId) {
52-
return flowTodoMergeRepository.findByTodoId(mergeId);
53-
}
54-
66+
/**
67+
* 批量查询流程记录
68+
* @param list 流程记录ID
69+
* @return 流程记录
70+
*/
5571
public List<FlowRecord> findFlowRecordByIds(List<Long> list) {
5672
return flowRecordRepository.findByIds(list);
5773
}
5874

75+
/**
76+
* 查询之前的流程的记录
77+
* @param processId 流程惟一标识
78+
* @param recordId 开始记录
79+
* @return 流程记录
80+
*/
5981
public List<FlowRecord> findFlowRecordBeforeRecords(String processId, long recordId) {
6082
return flowRecordRepository.findBeforeRecords(processId, recordId);
6183
}
6284

85+
/**
86+
* 查询当前流程的记录
87+
* @param processId 流程唯一标识
88+
* @return 流程记录
89+
*/
6390
public List<FlowRecord> findFlowRecordByProcessId(String processId) {
6491
return flowRecordRepository.findProcessRecords(processId);
6592
}
6693

67-
94+
/**
95+
* 查询流程之后的记录
96+
* @param processId 流程唯一标识
97+
* @param recordId 开始记录
98+
* @return 流程记录
99+
*/
68100
public List<FlowRecord> findFlowRecordAfterRecords(String processId, long recordId) {
69101
return flowRecordRepository.findAfterRecords(processId,recordId);
70102
}
71103

104+
/**
105+
* 查询流程下的所有待办记录
106+
* @param processId 流程记录
107+
* @return 流程记录
108+
*/
72109
public List<FlowRecord> findFlowRecordTodoRecords(String processId) {
73110
return flowRecordRepository.findTodoRecords(processId);
74111
}
75112

76-
77-
public void deleteFlowMerge(FlowTodoMerge merge) {
78-
this.flowTodoMergeRepository.delete(merge);
79-
}
80-
81-
82-
public void deleteFlowRecord(FlowRecord flowRecord){
83-
this.flowRecordRepository.delete(flowRecord);
84-
}
85-
86-
public void saveFlowTodo(FlowTodoRecord todoMargeRecord) {
87-
this.flowTodoRecordRepository.save(todoMargeRecord);
88-
}
89-
90-
public void deleteFlowTodo(FlowTodoRecord todoMargeRecord) {
91-
this.flowTodoRecordRepository.delete(todoMargeRecord);
92-
}
93-
113+
/**
114+
* 查询当前节点的流程记录
115+
* @param fromId 上级id
116+
* @param nodeId 当前节点id
117+
* @return 流程记录
118+
*/
94119
public List<FlowRecord> findFlowRecordCurrentNodeRecords(long fromId, String nodeId) {
95120
return this.flowRecordRepository.findCurrentNodeRecords(fromId,nodeId);
96121
}
97122

98-
99-
100123
}

flow-engine-framework/src/main/java/com/codingapi/flow/service/WorkflowService.java

Lines changed: 59 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
import java.util.ArrayList;
1313
import java.util.List;
1414

15+
/**
16+
* 流程设计器服务
17+
*/
1518
@AllArgsConstructor
1619
public class WorkflowService {
1720

@@ -20,6 +23,12 @@ public class WorkflowService {
2023
private final WorkflowRuntimeRepository workflowRuntimeRepository;
2124

2225

26+
/**
27+
* 保存流程版本
28+
*
29+
* @param currentVersion 当前版本
30+
* @param creatable 是否创建新的版本
31+
*/
2332
public void saveWorkflowVersion(WorkflowVersion currentVersion, boolean creatable) {
2433
List<WorkflowVersion> updateList = new ArrayList<>();
2534

@@ -50,14 +59,31 @@ public void saveWorkflowVersion(WorkflowVersion currentVersion, boolean creatabl
5059
}
5160

5261

53-
public WorkflowRuntime getWorkflowRuntime(long id) {
54-
return workflowRuntimeRepository.get(id);
62+
/**
63+
* 获取流程运行时的流程配置
64+
*
65+
* @param runtimeId 运行时id
66+
* @return 运行时流程配置
67+
*/
68+
public WorkflowRuntime getWorkflowRuntime(long runtimeId) {
69+
return workflowRuntimeRepository.get(runtimeId);
5570
}
5671

72+
/**
73+
* 获取流程对象
74+
*
75+
* @param workId 流程编码
76+
* @return 流程对象
77+
*/
5778
public Workflow getWorkflow(String workId) {
5879
return workflowRepository.get(workId);
5980
}
6081

82+
/**
83+
* 删除流程版本
84+
*
85+
* @param versionId 版本id
86+
*/
6187
public void deleteVersion(long versionId) {
6288
WorkflowVersion version = workflowVersionRepository.get(versionId);
6389
if (version != null && version.isCurrent()) {
@@ -67,6 +93,11 @@ public void deleteVersion(long versionId) {
6793
}
6894

6995

96+
/**
97+
* 切换流程版本
98+
*
99+
* @param versionId 版本id
100+
*/
70101
public void changeVersion(long versionId) {
71102
WorkflowVersion currentVersion = workflowVersionRepository.get(versionId);
72103
List<WorkflowVersion> versionList = workflowVersionRepository.findVersion(currentVersion.getWorkId());
@@ -84,6 +115,11 @@ public void changeVersion(long versionId) {
84115

85116
}
86117

118+
/**
119+
* 更新流程版本名称
120+
* @param versionId 版本id
121+
* @param versionName 版本名称
122+
*/
87123
public void updateVersionName(long versionId, String versionName) {
88124
WorkflowVersion workflowVersion = workflowVersionRepository.get(versionId);
89125
if (workflowVersion != null) {
@@ -92,21 +128,40 @@ public void updateVersionName(long versionId, String versionName) {
92128
}
93129
}
94130

131+
/**
132+
* 删除流程
133+
* @param workId 流程编码
134+
*/
95135
public void delete(String workId) {
96136
workflowVersionRepository.delete(workId);
97137
workflowRepository.delete(workId);
98138
}
99139

140+
/**
141+
* 保存流程
142+
* @param workflow 流程对象
143+
*/
100144
public void saveWorkflow(Workflow workflow) {
101145
WorkflowVersion workflowVersion = new WorkflowVersion(workflow);
102146
this.saveWorkflowVersion(workflowVersion, false);
103147
}
104148

149+
/**
150+
* 保存流程运行时
151+
* @param workflowRuntime 流程运行时
152+
*/
105153
public void saveWorkflowRuntime(WorkflowRuntime workflowRuntime) {
106154
this.workflowRuntimeRepository.save(workflowRuntime);
107155
}
108156

109-
public WorkflowRuntime getWorkflowRuntime(String workId, long updatedTime) {
110-
return this.workflowRuntimeRepository.getByWorkId(workId, updatedTime);
157+
158+
/**
159+
* 根据运行时版本获取运行时配置
160+
* @param workId 流程编码
161+
* @param workVersion 流程版本
162+
* @return 流程运行时
163+
*/
164+
public WorkflowRuntime getWorkflowRuntime(String workId, long workVersion) {
165+
return this.workflowRuntimeRepository.getByWorkId(workId, workVersion);
111166
}
112167
}

0 commit comments

Comments
 (0)