Skip to content

Commit f7d290a

Browse files
authored
Merge pull request #123 from codingapi/dev
update version
2 parents 9ca46ae + 2722eb5 commit f7d290a

17 files changed

Lines changed: 55 additions & 33 deletions

File tree

flow-engine-example/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>com.codingapi.flow</groupId>
88
<artifactId>flow-engine-parent</artifactId>
9-
<version>0.0.24</version>
9+
<version>0.0.25</version>
1010
<relativePath>../pom.xml</relativePath>
1111
</parent>
1212

flow-engine-example/src/main/java/com/codingapi/example/entity/User.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.codingapi.flow.context.GatewayContext;
44
import com.codingapi.flow.operator.IFlowOperator;
5-
import com.codingapi.flow.session.FlowSession;
5+
import com.codingapi.flow.script.request.GroovyScriptRequest;
66
import jakarta.persistence.*;
77
import lombok.Data;
88
import org.springframework.security.crypto.password.PasswordEncoder;
@@ -30,7 +30,7 @@ public class User implements IFlowOperator {
3030
private String password;
3131

3232

33-
public static User admin(PasswordEncoder passwordEncoder){
33+
public static User admin(PasswordEncoder passwordEncoder) {
3434
User user = new User();
3535
user.setName(ADMIN_ACCOUNT);
3636
user.setAccount(ADMIN_ACCOUNT);
@@ -40,7 +40,7 @@ public static User admin(PasswordEncoder passwordEncoder){
4040
}
4141

4242

43-
public void encodePassword(PasswordEncoder passwordEncoder){
43+
public void encodePassword(PasswordEncoder passwordEncoder) {
4444
this.password = passwordEncoder.encode(password);
4545
}
4646

@@ -65,8 +65,8 @@ public boolean isFlowManager() {
6565
}
6666

6767
@Override
68-
public IFlowOperator forwardOperator(FlowSession flowSession) {
69-
if(flowOperatorId!=null && flowOperatorId > 0){
68+
public IFlowOperator forwardOperator(GroovyScriptRequest request) {
69+
if (flowOperatorId != null && flowOperatorId > 0) {
7070
return GatewayContext.getInstance().getFlowOperator(flowOperatorId);
7171
}
7272
return null;

flow-engine-framework/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>com.codingapi.flow</groupId>
88
<artifactId>flow-engine-parent</artifactId>
9-
<version>0.0.24</version>
9+
<version>0.0.25</version>
1010
</parent>
1111

1212
<name>flow-engine-framework</name>

flow-engine-framework/src/main/java/com/codingapi/flow/operator/IFlowOperator.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.codingapi.flow.operator;
22

3+
import com.codingapi.flow.script.request.GroovyScriptRequest;
34
import com.codingapi.flow.session.FlowSession;
45
import com.codingapi.springboot.framework.user.IUser;
56

@@ -35,10 +36,10 @@ public interface IFlowOperator extends IUser {
3536
* 转交审批人
3637
* 转交审批人不为空时,当前操作者将由转交审批人操作者执行
3738
*
38-
* @param flowSession 流程会话上下文,可用于根据表单数据、当前节点等条件动态决定转交人
39+
* @param request 流程会话上下文,可用于根据表单数据、当前节点等条件动态决定转交人
3940
* @return 转交后的审批人,如果无需转交返回null
4041
*/
41-
IFlowOperator forwardOperator(FlowSession flowSession);
42+
IFlowOperator forwardOperator(GroovyScriptRequest request);
4243

4344

4445
}

flow-engine-framework/src/main/java/com/codingapi/flow/script/node/OperatorMatchScript.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.codingapi.flow.script.node;
22

3-
import com.codingapi.flow.operator.IFlowOperator;
43
import com.codingapi.flow.script.registry.ScriptRegistryContext;
4+
import com.codingapi.flow.script.request.GroovyWorkflowRequest;
55
import com.codingapi.flow.script.runtime.ScriptRuntimeContext;
66
import lombok.AllArgsConstructor;
77
import lombok.Getter;
@@ -15,8 +15,8 @@ public class OperatorMatchScript {
1515
@Getter
1616
private final String script;
1717

18-
public boolean execute(IFlowOperator current) {
19-
return ScriptRuntimeContext.getInstance().run(script, Boolean.class, current);
18+
public boolean execute(GroovyWorkflowRequest request) {
19+
return ScriptRuntimeContext.getInstance().run(script, Boolean.class, request);
2020
}
2121

2222
/**

flow-engine-framework/src/main/java/com/codingapi/flow/script/request/GroovyScriptRequest.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,6 @@ public class GroovyScriptRequest {
6767
@Getter
6868
private IFlowOperator submitOperator;
6969

70-
/**
71-
* 流程提交人姓名
72-
*/
73-
@Getter
74-
private String submitOperatorName;
75-
7670

7771
private final FlowSession flowSession;
7872

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.codingapi.flow.script.request;
2+
3+
import com.codingapi.flow.operator.IFlowOperator;
4+
import com.codingapi.flow.workflow.Workflow;
5+
import lombok.AllArgsConstructor;
6+
import lombok.Getter;
7+
8+
/**
9+
* 流程groovy脚本请求对象 request
10+
* def run(request){
11+
* request.getOperatorName()
12+
* }
13+
*/
14+
@Getter
15+
@AllArgsConstructor
16+
public class GroovyWorkflowRequest {
17+
18+
private final IFlowOperator currentOperator;
19+
private final Workflow workflow;
20+
21+
}

flow-engine-framework/src/main/java/com/codingapi/flow/session/FlowSession.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.codingapi.flow.pojo.request.FlowActionRequest;
1212
import com.codingapi.flow.pojo.request.FlowCreateRequest;
1313
import com.codingapi.flow.record.FlowRecord;
14+
import com.codingapi.flow.script.request.GroovyScriptRequest;
1415
import com.codingapi.flow.workflow.Workflow;
1516
import lombok.Getter;
1617
import lombok.Setter;
@@ -136,7 +137,8 @@ public boolean isMock(){
136137
*/
137138
public IFlowOperator loadFinalForwardOperator(IFlowOperator currentOperator) {
138139
// 传递更新后的 session,确保 forwardOperator(FlowSession) 中的 currentOperator 是当前操作者
139-
IFlowOperator forward = currentOperator.forwardOperator(this.updateSession(currentOperator));
140+
GroovyScriptRequest request = new GroovyScriptRequest(this.updateSession(currentOperator));
141+
IFlowOperator forward = currentOperator.forwardOperator(request);
140142
if (forward != null) {
141143
return this.loadFinalForwardOperator(forward);
142144
}

flow-engine-framework/src/main/java/com/codingapi/flow/workflow/Workflow.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.codingapi.flow.node.nodes.StartNode;
1414
import com.codingapi.flow.operator.IFlowOperator;
1515
import com.codingapi.flow.script.node.OperatorMatchScript;
16+
import com.codingapi.flow.script.request.GroovyWorkflowRequest;
1617
import com.codingapi.flow.strategy.node.FormFieldPermissionStrategy;
1718
import com.codingapi.flow.strategy.workflow.IWorkflowStrategy;
1819
import com.codingapi.flow.strategy.workflow.InterfereStrategy;
@@ -252,7 +253,8 @@ public WorkflowStrategyManager strategyManager() {
252253
* @return 是否匹配
253254
*/
254255
public boolean matchCreatedOperator(IFlowOperator flowOperator) {
255-
return operatorCreateScript.execute(flowOperator);
256+
GroovyWorkflowRequest request = new GroovyWorkflowRequest(flowOperator,this);
257+
return operatorCreateScript.execute(request);
256258
}
257259

258260
/**

flow-engine-framework/src/test/java/com/codingapi/flow/script/OperatorMatchScriptTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.codingapi.flow.operator.IFlowOperator;
44
import com.codingapi.flow.script.node.OperatorMatchScript;
5+
import com.codingapi.flow.script.request.GroovyWorkflowRequest;
56
import com.codingapi.flow.user.User;
67
import org.junit.jupiter.api.Test;
78

@@ -13,6 +14,6 @@ class OperatorMatchScriptTest {
1314
void execute() {
1415
IFlowOperator flowOperator = new User(1, "lorne");
1516
OperatorMatchScript operatorMatchScript = OperatorMatchScript.any();
16-
assertTrue(operatorMatchScript.execute(flowOperator));
17+
assertTrue(operatorMatchScript.execute(new GroovyWorkflowRequest(flowOperator,null)));
1718
}
1819
}

0 commit comments

Comments
 (0)