Skip to content
Merged

Dev #198

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ public class FlowCreateRequest {
*/
private Map<String, List<Long>> operatorSelectMap;

/**
* 手动传入的流程标题(子流程实例区分用);为空时回落流程定义标题
*/
private String workTitle;


public FlowActionRequest toActionRequest(long recordId) {
FlowActionRequest flowActionRequest = new FlowActionRequest();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,11 @@ public FlowRecord(FlowSession flowSession, int nodeOrder) {
this.id = FlowIDGeneratorGatewayContext.getInstance().generateRecordId();
this.workCode = flowSession.getWorkCode();
this.workRuntimeId = flowSession.getWorkflowRuntimeId();
this.workTitle = flowSession.getWorkflow().getTitle();
// 后续流转记录继承自定义 workTitle(issue #197):当前记录存在标题时沿用,否则回落流程定义标题
FlowRecord currentFlowRecord = flowSession.getCurrentRecord();
this.workTitle = currentFlowRecord != null && StringUtils.hasText(currentFlowRecord.getWorkTitle())
? currentFlowRecord.getWorkTitle()
: flowSession.getWorkflow().getTitle();
this.nodeId = flowSession.getCurrentNodeId();
this.nodeType = flowSession.getCurrentNodeType();
this.nodeName = flowSession.getCurrentNodeName();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,28 @@ public FlowCreateRequest toCreateRequest(
return flowSession.toCreateRequest(workCode, operatorId, actionId, formData);
}

/**
* 创建流程请求,用于自流程的创建(支持手动传入流程标题)
*
* @param workCode 流程设计流程workCode
* @param operatorId 流程发起人id
* @param actionId 动作类型
* @param formData 流程数据
* @param workTitle 手动传入的流程标题;为空时回落流程定义标题
*/
@ScriptFunction(
name = "toCreateRequest",
description = "创建流程请求,用于自流程的创建(支持手动传入流程标题)"
)
public FlowCreateRequest toCreateRequest(
@ScriptParameter(description = "流程workCode") String workCode,
@ScriptParameter(description = "流程发起人id") long operatorId,
@ScriptParameter(description = "流程动作actionId") String actionId,
@ScriptParameter(description = "流程数据formData(JSON格式)") String formData,
@ScriptParameter(description = "流程标题workTitle(可为空)") String workTitle) {
return flowSession.toCreateRequest(workCode, operatorId, actionId, formData, workTitle);
}

/**
* 创建流程请求,用于自流程的创建
*
Expand All @@ -341,6 +363,27 @@ public FlowCreateRequest toCreateRequest(@ScriptParameter(description = "流程w
return flowSession.toCreateRequest(workCode, operatorId, actionId, formData);
}

/**
* 创建流程请求,用于自流程的创建(支持手动传入流程标题)
*
* @param workCode 流程设计流程workCode
* @param operatorId 流程发起人id
* @param actionId 动作类型
* @param formData 流程数据
* @param workTitle 手动传入的流程标题;为空时回落流程定义标题
*/
@ScriptFunction(
name = "toCreateRequest",
description = "创建流程请求,用于自流程的创建(支持手动传入流程标题)"
)
public FlowCreateRequest toCreateRequest(@ScriptParameter(description = "流程workCode") String workCode,
@ScriptParameter(description = "流程发起人id") long operatorId,
@ScriptParameter(description = "流程动作actionId") String actionId,
@ScriptParameter(description = "流程数据formData(Map<String,Object>格式)") Map<String, Object> formData,
@ScriptParameter(description = "流程标题workTitle(可为空)") String workTitle) {
return flowSession.toCreateRequest(workCode, operatorId, actionId, formData, workTitle);
}


/**
* 获取表单字段值(Groovy脚本调用)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import com.codingapi.flow.workflow.Workflow;
import com.codingapi.flow.workflow.runtime.WorkflowRuntime;
import com.codingapi.springboot.framework.event.EventPusher;
import org.springframework.util.StringUtils;

import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -78,6 +79,11 @@ public long create() {
});
}

// 支持手动传入流程标题:非空时覆盖默认流程定义标题(issue #197)
if (StringUtils.hasText(request.getWorkTitle()) && !flowRecords.isEmpty()) {
flowRecords.forEach(flowRecord -> flowRecord.setWorkTitle(request.getWorkTitle()));
}

currentNode.verifySession(session);

if (flowRecords.size() > 1) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,25 @@ public FlowCreateRequest toCreateRequest(String workCode,
return request;
}

/**
* 创建流程请求,用于自流程的创建(支持手动传入流程标题)
*
* @param workCode 流程Code
* @param actionId 动作类型
* @param formData 流程数据
* @param workTitle 手动传入的流程标题;为空时回落流程定义标题
*/
public FlowCreateRequest toCreateRequest(String workCode,
long operatorId,
String actionId,
String formData,
String workTitle) {

FlowCreateRequest request = this.toCreateRequest(workCode, operatorId, actionId, formData);
request.setWorkTitle(workTitle);
return request;
}

/**
* 创建流程请求,用于自流程的创建
*
Expand All @@ -269,6 +288,25 @@ public FlowCreateRequest toCreateRequest(String workCode,
return request;
}

/**
* 创建流程请求,用于自流程的创建(支持手动传入流程标题)
*
* @param workCode 流程Code
* @param actionId 动作类型
* @param formData 流程数据
* @param workTitle 手动传入的流程标题;为空时回落流程定义标题
*/
public FlowCreateRequest toCreateRequest(String workCode,
long operatorId,
String actionId,
Map<String, Object> formData,
String workTitle) {

FlowCreateRequest request = this.toCreateRequest(workCode, operatorId, actionId, formData);
request.setWorkTitle(workTitle);
return request;
}


/**
* 创建流程动作请求,用于自定义脚本的执行
Expand Down
Loading