Skip to content

Commit 1e35cf3

Browse files
authored
Merge pull request #83 from codingapi/dev
Dev
2 parents c1500e0 + 68d93be commit 1e35cf3

75 files changed

Lines changed: 4734 additions & 727 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

flow-engine-framework/src/main/java/com/codingapi/flow/action/actions/AddAuditAction.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import com.codingapi.flow.action.ActionType;
55
import com.codingapi.flow.action.BaseAction;
66
import com.codingapi.flow.action.IFlowAction;
7-
import com.codingapi.flow.context.RepositoryHolderContext;
87
import com.codingapi.flow.event.FlowRecordTodoEvent;
98
import com.codingapi.flow.event.IFlowEvent;
109
import com.codingapi.flow.exception.FlowExecutionException;
@@ -15,6 +14,7 @@
1514
import com.codingapi.flow.record.FlowRecord;
1615
import com.codingapi.flow.script.node.OperatorLoadScript;
1716
import com.codingapi.flow.session.FlowSession;
17+
import com.codingapi.flow.session.IRepositoryHolder;
1818
import com.codingapi.flow.utils.RandomUtils;
1919
import com.codingapi.springboot.framework.event.EventPusher;
2020
import org.springframework.util.StringUtils;
@@ -66,6 +66,7 @@ public void copy(IFlowAction action) {
6666

6767
@Override
6868
public void run(FlowSession flowSession) {
69+
IRepositoryHolder repositoryHolder = flowSession.getRepositoryHolder();
6970
List<IFlowEvent> flowEvents = new ArrayList<>();
7071
List<FlowRecord> flowRecords = new ArrayList<>();
7172
FlowRecord currentRecord = flowSession.getCurrentRecord();
@@ -106,11 +107,11 @@ public void run(FlowSession flowSession) {
106107

107108
for (FlowRecord record : flowRecords) {
108109
if (record.isShow()) {
109-
flowEvents.add(new FlowRecordTodoEvent(record));
110+
flowEvents.add(new FlowRecordTodoEvent(record, flowSession.isMock()));
110111
}
111112
}
112113

113-
RepositoryHolderContext.getInstance().saveRecords(flowRecords);
114+
repositoryHolder.saveRecords(flowRecords);
114115
flowEvents.forEach(EventPusher::push);
115116
}
116117

flow-engine-framework/src/main/java/com/codingapi/flow/action/actions/CustomAction.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
import com.codingapi.flow.action.ActionType;
55
import com.codingapi.flow.action.BaseAction;
66
import com.codingapi.flow.action.IFlowAction;
7-
import com.codingapi.flow.context.RepositoryHolderContext;
87
import com.codingapi.flow.exception.FlowExecutionException;
98
import com.codingapi.flow.manager.ActionManager;
109
import com.codingapi.flow.node.IFlowNode;
1110
import com.codingapi.flow.script.action.CustomScript;
1211
import com.codingapi.flow.session.FlowSession;
12+
import com.codingapi.flow.session.IRepositoryHolder;
1313
import com.codingapi.flow.utils.RandomUtils;
1414
import org.springframework.util.StringUtils;
1515

@@ -41,6 +41,7 @@ public CustomAction() {
4141

4242
@Override
4343
public void run(FlowSession flowSession) {
44+
IRepositoryHolder repositoryHolder = flowSession.getRepositoryHolder();
4445
String actionType = script.execute(flowSession);
4546
IFlowNode currentNode = flowSession.getCurrentNode();
4647
ActionManager actionManager = currentNode.actionManager();
@@ -52,7 +53,7 @@ public void run(FlowSession flowSession) {
5253
}
5354

5455
FlowSession triggerSession = flowSession.updateSession(nextAction);
55-
RepositoryHolderContext.getInstance().createFlowActionService(triggerSession).action();
56+
repositoryHolder.createFlowActionService(triggerSession).action();
5657
}
5758

5859
@Override

flow-engine-framework/src/main/java/com/codingapi/flow/action/actions/DelegateAction.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import com.codingapi.flow.action.ActionType;
55
import com.codingapi.flow.action.BaseAction;
66
import com.codingapi.flow.action.IFlowAction;
7-
import com.codingapi.flow.context.RepositoryHolderContext;
87
import com.codingapi.flow.event.FlowRecordDoneEvent;
98
import com.codingapi.flow.event.FlowRecordTodoEvent;
109
import com.codingapi.flow.event.IFlowEvent;
@@ -14,6 +13,7 @@
1413
import com.codingapi.flow.record.FlowRecord;
1514
import com.codingapi.flow.script.node.OperatorLoadScript;
1615
import com.codingapi.flow.session.FlowSession;
16+
import com.codingapi.flow.session.IRepositoryHolder;
1717
import com.codingapi.flow.utils.RandomUtils;
1818
import com.codingapi.springboot.framework.event.EventPusher;
1919
import org.springframework.util.StringUtils;
@@ -51,14 +51,15 @@ public DelegateAction() {
5151

5252
@Override
5353
public void run(FlowSession flowSession) {
54+
IRepositoryHolder repositoryHolder = flowSession.getRepositoryHolder();
5455
List<IFlowEvent> flowEvents = new ArrayList<>();
5556
List<FlowRecord> recordList = new ArrayList<>();
5657

5758
FlowRecord currentRecord = flowSession.getCurrentRecord();
5859
currentRecord.update(flowSession, true);
5960

6061
recordList.add(currentRecord);
61-
flowEvents.add(new FlowRecordDoneEvent(currentRecord));
62+
flowEvents.add(new FlowRecordDoneEvent(currentRecord, flowSession.isMock()));
6263

6364
List<IFlowOperator> operators = flowSession.getAdvice().getForwardOperators();
6465

@@ -75,10 +76,10 @@ public void run(FlowSession flowSession) {
7576
FlowRecord flowRecord = currentRecord.create(flowSession.updateSession(operator));
7677
flowRecord.resetDelegate(currentRecord);
7778
recordList.add(flowRecord);
78-
flowEvents.add(new FlowRecordTodoEvent(flowRecord));
79+
flowEvents.add(new FlowRecordTodoEvent(flowRecord, flowSession.isMock()));
7980
}
8081

81-
RepositoryHolderContext.getInstance().saveRecords(recordList);
82+
repositoryHolder.saveRecords(recordList);
8283
flowEvents.forEach(EventPusher::push);
8384

8485
}

flow-engine-framework/src/main/java/com/codingapi/flow/action/actions/PassAction.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.codingapi.flow.action.ActionDisplay;
44
import com.codingapi.flow.action.ActionType;
55
import com.codingapi.flow.action.BaseAction;
6-
import com.codingapi.flow.context.RepositoryHolderContext;
76
import com.codingapi.flow.event.FlowRecordDoneEvent;
87
import com.codingapi.flow.event.FlowRecordTodoEvent;
98
import com.codingapi.flow.event.IFlowEvent;
@@ -13,6 +12,7 @@
1312
import com.codingapi.flow.operator.IFlowOperator;
1413
import com.codingapi.flow.record.FlowRecord;
1514
import com.codingapi.flow.session.FlowSession;
15+
import com.codingapi.flow.session.IRepositoryHolder;
1616
import com.codingapi.flow.utils.RandomUtils;
1717
import com.codingapi.springboot.framework.event.EventPusher;
1818

@@ -66,14 +66,15 @@ public List<FlowRecord> generateRecords(FlowSession flowSession) {
6666

6767
@Override
6868
public void run(FlowSession flowSession) {
69+
IRepositoryHolder repositoryHolder = flowSession.getRepositoryHolder();
6970
List<IFlowEvent> flowEvents = new ArrayList<>();
7071
List<FlowRecord> recordList = new ArrayList<>();
7172
FlowRecord currentRecord = flowSession.getCurrentRecord();
7273
IFlowNode currentNode = flowSession.getCurrentNode();
7374
boolean isFinish = currentNode.isFinish(flowSession);
7475
currentRecord.update(flowSession, true);
7576
// 添加流程结束事件
76-
flowEvents.add(new FlowRecordDoneEvent(currentRecord));
77+
flowEvents.add(new FlowRecordDoneEvent(currentRecord,flowSession.isMock()));
7778
recordList.add(currentRecord);
7879

7980
// 激活下一个按顺序审批的记录数据
@@ -84,41 +85,41 @@ public void run(FlowSession flowSession) {
8485
if (record.getNodeOrder() == currentRecord.getNodeOrder() + 1) {
8586
record.show();
8687
recordList.add(record);
87-
flowEvents.add(new FlowRecordTodoEvent(record));
88+
flowEvents.add(new FlowRecordTodoEvent(record,flowSession.isMock()));
8889
}
8990
}
9091
}
9192

9293
if (isFinish) {
9394
// 是否转交审批人的流程
9495
if (currentRecord.isForward()) {
95-
IFlowOperator forwardOperator = RepositoryHolderContext.getInstance().getOperatorById(currentRecord.getForwardOperatorId());
96+
IFlowOperator forwardOperator = repositoryHolder.getOperatorById(currentRecord.getForwardOperatorId());
9697
FlowRecord notifyRecord = currentRecord.create(flowSession.updateSession(forwardOperator));
9798
notifyRecord.notifyRecord(flowSession.updateSession(forwardOperator));
9899
// 如果不存储这个记录,若下一流程是结束流程时,无法更新流程状态为结束状态。
99-
RepositoryHolderContext.getInstance().saveRecord(notifyRecord);
100-
flowEvents.add(new FlowRecordDoneEvent(notifyRecord));
100+
repositoryHolder.saveRecord(notifyRecord);
101+
flowEvents.add(new FlowRecordDoneEvent(notifyRecord,flowSession.isMock()));
101102
}
102103

103104
// 是否委托记录
104105
if (currentRecord.isDelegate()) {
105-
FlowRecord delegateRecord = RepositoryHolderContext.getInstance().getRecordById(currentRecord.getDelegateId());
106-
IFlowOperator delegateOperator = RepositoryHolderContext.getInstance().getOperatorById(delegateRecord.getCurrentOperatorId());
106+
FlowRecord delegateRecord = repositoryHolder.getRecordById(currentRecord.getDelegateId());
107+
IFlowOperator delegateOperator = repositoryHolder.getOperatorById(delegateRecord.getCurrentOperatorId());
107108
FlowRecord rebackRecord = delegateRecord.create(flowSession.updateSession(delegateOperator));
108109
rebackRecord.clearDelegate();
109110

110111
recordList.add(rebackRecord);
111-
flowEvents.add(new FlowRecordTodoEvent(rebackRecord));
112+
flowEvents.add(new FlowRecordTodoEvent(rebackRecord,flowSession.isMock()));
112113
} else {
113114
this.triggerNode(flowSession, (triggerSession) -> {
114115
List<FlowRecord> records = this.generateRecords(triggerSession);
115116
if (!records.isEmpty()) {
116117
for (FlowRecord record : records) {
117118
if (record.isShow()) {
118119
if (record.isNotify()) {
119-
flowEvents.add(new FlowRecordDoneEvent(record));
120+
flowEvents.add(new FlowRecordDoneEvent(record,flowSession.isMock()));
120121
} else {
121-
flowEvents.add(new FlowRecordTodoEvent(record));
122+
flowEvents.add(new FlowRecordTodoEvent(record,flowSession.isMock()));
122123
}
123124
}
124125
}
@@ -127,7 +128,7 @@ public void run(FlowSession flowSession) {
127128
});
128129
}
129130
}
130-
RepositoryHolderContext.getInstance().saveRecords(recordList);
131+
repositoryHolder.saveRecords(recordList);
131132

132133
flowEvents.forEach(EventPusher::push);
133134
}

flow-engine-framework/src/main/java/com/codingapi/flow/action/actions/RejectAction.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
import com.codingapi.flow.action.ActionType;
55
import com.codingapi.flow.action.BaseAction;
66
import com.codingapi.flow.action.IFlowAction;
7-
import com.codingapi.flow.context.RepositoryHolderContext;
87
import com.codingapi.flow.event.FlowRecordTodoEvent;
98
import com.codingapi.flow.event.IFlowEvent;
109
import com.codingapi.flow.exception.FlowStateException;
1110
import com.codingapi.flow.node.IFlowNode;
1211
import com.codingapi.flow.record.FlowRecord;
1312
import com.codingapi.flow.script.action.RejectActionScript;
1413
import com.codingapi.flow.session.FlowSession;
14+
import com.codingapi.flow.session.IRepositoryHolder;
1515
import com.codingapi.flow.utils.RandomUtils;
1616
import com.codingapi.springboot.framework.event.EventPusher;
1717
import lombok.Getter;
@@ -84,6 +84,7 @@ public List<FlowRecord> generateRecords(FlowSession flowSession) {
8484

8585
@Override
8686
public void run(FlowSession flowSession) {
87+
IRepositoryHolder repositoryHolder = flowSession.getRepositoryHolder();
8788
List<IFlowEvent> flowEvents = new ArrayList<>();
8889
List<FlowRecord> recordList = new ArrayList<>();
8990

@@ -96,11 +97,11 @@ public void run(FlowSession flowSession) {
9697
recordList.addAll(records);
9798
for (FlowRecord record : records) {
9899
if (record.isShow()) {
99-
flowEvents.add(new FlowRecordTodoEvent(record));
100+
flowEvents.add(new FlowRecordTodoEvent(record, flowSession.isMock()));
100101
}
101102
}
102103
}
103-
RepositoryHolderContext.getInstance().saveRecords(recordList);
104+
repositoryHolder.saveRecords(recordList);
104105
flowEvents.forEach(EventPusher::push);
105106

106107
}

flow-engine-framework/src/main/java/com/codingapi/flow/action/actions/ReturnAction.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
import com.codingapi.flow.action.ActionDisplay;
44
import com.codingapi.flow.action.ActionType;
55
import com.codingapi.flow.action.BaseAction;
6-
import com.codingapi.flow.context.RepositoryHolderContext;
76
import com.codingapi.flow.event.FlowRecordDoneEvent;
87
import com.codingapi.flow.event.FlowRecordTodoEvent;
98
import com.codingapi.flow.event.IFlowEvent;
109
import com.codingapi.flow.node.IFlowNode;
1110
import com.codingapi.flow.record.FlowRecord;
1211
import com.codingapi.flow.session.FlowSession;
12+
import com.codingapi.flow.session.IRepositoryHolder;
1313
import com.codingapi.flow.utils.RandomUtils;
1414
import com.codingapi.springboot.framework.event.EventPusher;
1515

@@ -37,6 +37,7 @@ public static ReturnAction fromMap(Map<String, Object> data) {
3737

3838
@Override
3939
public void run(FlowSession flowSession) {
40+
IRepositoryHolder repositoryHolder = flowSession.getRepositoryHolder();
4041
List<IFlowEvent> flowEvents = new ArrayList<>();
4142
List<FlowRecord> recordList = new ArrayList<>();
4243

@@ -46,18 +47,18 @@ public void run(FlowSession flowSession) {
4647
currentRecord.update(flowSession, true);
4748
recordList.add(currentRecord);
4849

49-
flowEvents.add(new FlowRecordDoneEvent(currentRecord));
50+
flowEvents.add(new FlowRecordDoneEvent(currentRecord,flowSession.isMock()));
5051

5152
List<FlowRecord> flowRecords = backNode.generateCurrentRecords(flowSession.updateSession(backNode));
5253
recordList.addAll(flowRecords);
5354

5455
for (FlowRecord record : flowRecords) {
5556
if (record.isShow()) {
56-
flowEvents.add(new FlowRecordTodoEvent(record));
57+
flowEvents.add(new FlowRecordTodoEvent(record,flowSession.isMock()));
5758
}
5859
}
5960

60-
RepositoryHolderContext.getInstance().saveRecords(recordList);
61+
repositoryHolder.saveRecords(recordList);
6162

6263
flowEvents.forEach(EventPusher::push);
6364

flow-engine-framework/src/main/java/com/codingapi/flow/action/actions/SaveAction.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
import com.codingapi.flow.action.ActionDisplay;
44
import com.codingapi.flow.action.ActionType;
55
import com.codingapi.flow.action.BaseAction;
6-
import com.codingapi.flow.context.RepositoryHolderContext;
76
import com.codingapi.flow.record.FlowRecord;
87
import com.codingapi.flow.session.FlowSession;
8+
import com.codingapi.flow.session.IRepositoryHolder;
99
import com.codingapi.flow.utils.RandomUtils;
1010

1111
import java.util.Map;
@@ -30,8 +30,9 @@ public static SaveAction fromMap(Map<String, Object> data) {
3030

3131
@Override
3232
public void run(FlowSession flowSession) {
33+
IRepositoryHolder repositoryHolder = flowSession.getRepositoryHolder();
3334
FlowRecord flowRecord = flowSession.getCurrentRecord();
3435
flowRecord.update(flowSession, false);
35-
RepositoryHolderContext.getInstance().saveRecord(flowRecord);
36+
repositoryHolder.saveRecord(flowRecord);
3637
}
3738
}

flow-engine-framework/src/main/java/com/codingapi/flow/action/actions/TransferAction.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import com.codingapi.flow.action.ActionType;
55
import com.codingapi.flow.action.BaseAction;
66
import com.codingapi.flow.action.IFlowAction;
7-
import com.codingapi.flow.context.RepositoryHolderContext;
87
import com.codingapi.flow.event.FlowRecordDoneEvent;
98
import com.codingapi.flow.event.FlowRecordTodoEvent;
109
import com.codingapi.flow.event.IFlowEvent;
@@ -14,6 +13,7 @@
1413
import com.codingapi.flow.record.FlowRecord;
1514
import com.codingapi.flow.script.node.OperatorLoadScript;
1615
import com.codingapi.flow.session.FlowSession;
16+
import com.codingapi.flow.session.IRepositoryHolder;
1717
import com.codingapi.flow.utils.RandomUtils;
1818
import com.codingapi.springboot.framework.event.EventPusher;
1919
import org.springframework.util.StringUtils;
@@ -58,14 +58,15 @@ public List<IFlowOperator> operators(FlowSession flowSession) {
5858

5959
@Override
6060
public void run(FlowSession flowSession) {
61+
IRepositoryHolder repositoryHolder = flowSession.getRepositoryHolder();
6162
List<IFlowEvent> flowEvents = new ArrayList<>();
6263
List<FlowRecord> recordList = new ArrayList<>();
6364

6465
FlowRecord currentRecord = flowSession.getCurrentRecord();
6566

6667
currentRecord.update(flowSession, true);
6768
recordList.add(currentRecord);
68-
flowEvents.add(new FlowRecordDoneEvent(currentRecord));
69+
flowEvents.add(new FlowRecordDoneEvent(currentRecord,flowSession.isMock()));
6970

7071
List<IFlowOperator> operators = flowSession.getAdvice().getForwardOperators();
7172
if (script != null) {
@@ -80,10 +81,10 @@ public void run(FlowSession flowSession) {
8081
for (IFlowOperator operator : operators) {
8182
FlowRecord flowRecord = currentRecord.create(flowSession.updateSession(operator));
8283
recordList.add(flowRecord);
83-
flowEvents.add(new FlowRecordTodoEvent(flowRecord));
84+
flowEvents.add(new FlowRecordTodoEvent(flowRecord,flowSession.isMock()));
8485
}
8586

86-
RepositoryHolderContext.getInstance().saveRecords(recordList);
87+
repositoryHolder.saveRecords(recordList);
8788
flowEvents.forEach(EventPusher::push);
8889
}
8990

0 commit comments

Comments
 (0)