Browse Source

支持流程自定义标题

caixiaofeng 9 months ago
parent
commit
3240bd2718

+ 10 - 1
flow-workflow/flow-workflow-biz/src/main/java/com/flow/service/impl/FlowDefineServiceImpl.java

@@ -1,11 +1,14 @@
 package com.flow.service.impl;
 
 import com.flow.common.core.exception.BaseException;
+import com.flow.common.core.util.StrUtil;
 import com.flow.common.mybatis.service.impl.BaseServiceImpl;
 import com.flow.common.oauth2.utils.SecurityContextUtil;
 import com.flow.dao.FlowDefineDao;
 import com.flow.entity.FlowDefine;
 import com.flow.entity.node.*;
+import com.flow.entity.settings.Settings;
+import com.flow.entity.settings.TitleConfig;
 import com.flow.enums.ProcessStatus;
 import com.flow.model.FormInfo;
 import com.flow.model.StartProcess;
@@ -86,10 +89,16 @@ public class FlowDefineServiceImpl extends BaseServiceImpl<FlowDefineDao, FlowDe
         String currentDate = DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDate.now());
         String instanceId = String.format("fw%s%s", currentDate, serial);
 
+        String instanceName = startProcess.getInstanceName();
+        Settings settings = flowDefine.getSettings();
+        TitleConfig titleConfig = settings.getTitle();
+        if ("custom".equals(titleConfig.getType())) {
+            instanceName = StrUtil.format(titleConfig.getValue(), values);
+        }
         Authentication.setAuthenticatedUserId(SecurityContextUtil.getUserId());
         runtimeService.createProcessInstanceBuilder()
                 .processDefinitionId(startProcess.getDefineId())
-                .name(startProcess.getInstanceName())
+                .name(instanceName)
                 .owner(SecurityContextUtil.getUserId())
                 .predefineProcessInstanceId(instanceId)
                 .businessStatus(ProcessStatus.RUNNING.toString())