You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by ji...@apache.org on 2021/11/14 17:00:49 UTC

[dolphinscheduler] branch dev updated: [Feature][master] change sub process id to code. (#6846)

This is an automated email from the ASF dual-hosted git repository.

jinyleechina pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 880c1d2  [Feature][master] change sub process id to code. (#6846)
880c1d2 is described below

commit 880c1d28ff7f334fd50b2376655f1a884fcb496a
Author: OS <29...@users.noreply.github.com>
AuthorDate: Mon Nov 15 01:00:44 2021 +0800

    [Feature][master] change sub process id to code. (#6846)
    
    * 6597 change sub process id to code.
    
    * 6597 change sub process id to code.
    
    * 6597 change sub process id to code.
    
    * 6597 change sub process id to code.
    
    * 6597 change sub process id to code.
    
    * 6597 change sub process id to code.
    
    * code style
    
    * fix ut process
    
    * fix ut process
---
 .../api/dto/treeview/Instance.java                 | 14 +++----
 .../api/service/impl/ExecutorServiceImpl.java      |  9 ++--
 .../service/impl/ProcessDefinitionServiceImpl.java | 14 +++----
 .../api/service/impl/SchedulerServiceImpl.java     |  9 ++--
 .../api/service/ExecutorServiceTest.java           |  6 +--
 .../dolphinscheduler/api/utils/CheckUtilsTest.java |  2 +-
 .../apache/dolphinscheduler/common/Constants.java  |  2 +-
 .../task/subprocess/SubProcessParameters.java      | 13 +++---
 .../dao/mapper/TaskInstanceMapperTest.java         |  2 -
 .../service/process/ProcessService.java            | 49 +++++-----------------
 .../service/process/ProcessServiceTest.java        | 17 ++++----
 .../dag/_source/formModel/tasks/sub_process.vue    | 14 +++----
 12 files changed, 60 insertions(+), 91 deletions(-)

diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/treeview/Instance.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/treeview/Instance.java
index e13a7d1..c39ece8 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/treeview/Instance.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/treeview/Instance.java
@@ -71,7 +71,7 @@ public class Instance {
      */
     private String duration;
 
-    private int subflowId;
+    private long subflowCode;
 
     public Instance() {
     }
@@ -83,7 +83,7 @@ public class Instance {
         this.type = type;
     }
 
-    public Instance(int id, String name, long code, String type, String state, Date startTime, Date endTime, String host, String duration, int subflowId) {
+    public Instance(int id, String name, long code, String type, String state, Date startTime, Date endTime, String host, String duration, long subflowCode) {
         this.id = id;
         this.name = name;
         this.code = code;
@@ -93,7 +93,7 @@ public class Instance {
         this.endTime = endTime;
         this.host = host;
         this.duration = duration;
-        this.subflowId = subflowId;
+        this.subflowCode = subflowCode;
     }
 
     public Instance(int id, String name, long code, String type, String state, Date startTime, Date endTime, String host, String duration) {
@@ -173,11 +173,11 @@ public class Instance {
         this.duration = duration;
     }
 
-    public int getSubflowId() {
-        return subflowId;
+    public long getSubflowCode() {
+        return subflowCode;
     }
 
-    public void setSubflowId(int subflowId) {
-        this.subflowId = subflowId;
+    public void setSubflowCode(long subflowCode) {
+        this.subflowCode = subflowCode;
     }
 }
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ExecutorServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ExecutorServiceImpl.java
index 93e3c47..88530b8 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ExecutorServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ExecutorServiceImpl.java
@@ -465,11 +465,10 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
             return result;
         }
 
-        List<Integer> ids = new ArrayList<>();
-        processService.recurseFindSubProcessId(processDefinition.getId(), ids);
-        Integer[] idArray = ids.toArray(new Integer[ids.size()]);
-        if (!ids.isEmpty()) {
-            List<ProcessDefinition> processDefinitionList = processDefinitionMapper.queryDefinitionListByIdList(idArray);
+        List<Long> codes = new ArrayList<>();
+        processService.recurseFindSubProcess(processDefinition.getCode(), codes);
+        if (!codes.isEmpty()) {
+            List<ProcessDefinition> processDefinitionList = processDefinitionMapper.queryByCodes(codes);
             if (processDefinitionList != null) {
                 for (ProcessDefinition processDefinitionTmp : processDefinitionList) {
                     /**
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
index d61463b..ca54eae 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
@@ -17,7 +17,7 @@
 
 package org.apache.dolphinscheduler.api.service.impl;
 
-import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_SUB_PROCESS_DEFINE_ID;
+import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_SUB_PROCESS_DEFINE_CODE;
 
 import org.apache.dolphinscheduler.api.dto.DagDataSchedule;
 import org.apache.dolphinscheduler.api.dto.treeview.Instance;
@@ -33,7 +33,6 @@ import org.apache.dolphinscheduler.api.utils.FileUtils;
 import org.apache.dolphinscheduler.api.utils.PageInfo;
 import org.apache.dolphinscheduler.api.utils.Result;
 import org.apache.dolphinscheduler.common.Constants;
-import org.apache.dolphinscheduler.common.enums.AuthorizationType;
 import org.apache.dolphinscheduler.common.enums.ProcessExecutionTypeEnum;
 import org.apache.dolphinscheduler.common.enums.ReleaseState;
 import org.apache.dolphinscheduler.common.enums.UserType;
@@ -69,7 +68,6 @@ import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
 import org.apache.dolphinscheduler.dao.mapper.TaskInstanceMapper;
 import org.apache.dolphinscheduler.dao.mapper.TenantMapper;
 import org.apache.dolphinscheduler.dao.mapper.UserMapper;
-import org.apache.dolphinscheduler.service.permission.PermissionCheck;
 import org.apache.dolphinscheduler.service.process.ProcessService;
 
 import org.apache.commons.collections4.CollectionUtils;
@@ -1202,16 +1200,16 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
                         Date startTime = taskInstance.getStartTime() == null ? new Date() : taskInstance.getStartTime();
                         Date endTime = taskInstance.getEndTime() == null ? new Date() : taskInstance.getEndTime();
 
-                        int subProcessId = 0;
+                        long subProcessCode = 0L;
                         // if process is sub process, the return sub id, or sub id=0
                         if (taskInstance.isSubProcess()) {
                             TaskDefinition taskDefinition = taskDefinitionMap.get(taskInstance.getTaskCode());
-                            subProcessId = Integer.parseInt(JSONUtils.parseObject(
-                                    taskDefinition.getTaskParams()).path(CMD_PARAM_SUB_PROCESS_DEFINE_ID).asText());
+                            subProcessCode = Integer.parseInt(JSONUtils.parseObject(
+                                taskDefinition.getTaskParams()).path(CMD_PARAM_SUB_PROCESS_DEFINE_CODE).asText());
                         }
                         treeViewDto.getInstances().add(new Instance(taskInstance.getId(), taskInstance.getName(), taskInstance.getTaskCode(),
-                                taskInstance.getTaskType(), taskInstance.getState().toString(), taskInstance.getStartTime(), taskInstance.getEndTime(),
-                                taskInstance.getHost(), DateUtils.format2Readable(endTime.getTime() - startTime.getTime()), subProcessId));
+                            taskInstance.getTaskType(), taskInstance.getState().toString(), taskInstance.getStartTime(), taskInstance.getEndTime(),
+                            taskInstance.getHost(), DateUtils.format2Readable(endTime.getTime() - startTime.getTime()), subProcessCode));
                     }
                 }
                 for (TreeViewDto pTreeViewDto : parentTreeViewDtoList) {
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/SchedulerServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/SchedulerServiceImpl.java
index dad27eb..bb5044a 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/SchedulerServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/SchedulerServiceImpl.java
@@ -355,12 +355,11 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
                 return result;
             }
             // check sub process definition release state
-            List<Integer> subProcessDefineIds = new ArrayList<>();
-            processService.recurseFindSubProcessId(processDefinition.getId(), subProcessDefineIds);
-            Integer[] idArray = subProcessDefineIds.toArray(new Integer[subProcessDefineIds.size()]);
-            if (!subProcessDefineIds.isEmpty()) {
+            List<Long> subProcessDefineCodes = new ArrayList<>();
+            processService.recurseFindSubProcess(processDefinition.getCode(), subProcessDefineCodes);
+            if (!subProcessDefineCodes.isEmpty()) {
                 List<ProcessDefinition> subProcessDefinitionList =
-                        processDefinitionMapper.queryDefinitionListByIdList(idArray);
+                        processDefinitionMapper.queryByCodes(subProcessDefineCodes);
                 if (subProcessDefinitionList != null && !subProcessDefinitionList.isEmpty()) {
                     for (ProcessDefinition subProcessDefinition : subProcessDefinitionList) {
                         /**
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ExecutorServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ExecutorServiceTest.java
index 9766c61..bb279ea 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ExecutorServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ExecutorServiceTest.java
@@ -279,9 +279,9 @@ public class ExecutorServiceTest {
 
     @Test
     public void testStartCheckByProcessDefinedCode() {
-        List<Integer> ids = new ArrayList<>();
-        ids.add(1);
-        Mockito.doNothing().when(processService).recurseFindSubProcessId(1, ids);
+        List<Long> ids = new ArrayList<>();
+        ids.add(1L);
+        Mockito.doNothing().when(processService).recurseFindSubProcess(1, ids);
 
         List<ProcessDefinition> processDefinitionList = new ArrayList<>();
         ProcessDefinition processDefinition = new ProcessDefinition();
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/utils/CheckUtilsTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/utils/CheckUtilsTest.java
index 2f15929..71b0f92 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/utils/CheckUtilsTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/utils/CheckUtilsTest.java
@@ -128,7 +128,7 @@ public class CheckUtilsTest {
         taskNode.setType(TaskType.SUB_PROCESS.getDesc());
         assertFalse(CheckUtils.checkTaskNodeParameters(taskNode));
 
-        subProcessParameters.setProcessDefinitionId(1234);
+        subProcessParameters.setProcessDefinitionCode(1234L);
         taskNode.setParams(JSONUtils.toJsonString(subProcessParameters));
         taskNode.setType(TaskType.SUB_PROCESS.getDesc());
         assertTrue(CheckUtils.checkTaskNodeParameters(taskNode));
diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
index 827fd91..8029dc0 100644
--- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
+++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
@@ -323,7 +323,7 @@ public final class Constants {
 
     public static final String CMD_PARAM_SUB_PROCESS_PARENT_INSTANCE_ID = "parentProcessInstanceId";
 
-    public static final String CMD_PARAM_SUB_PROCESS_DEFINE_ID = "processDefinitionId";
+    public static final String CMD_PARAM_SUB_PROCESS_DEFINE_CODE = "processDefinitionCode";
 
     public static final String CMD_PARAM_START_NODES = "StartNodeList";
 
diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/task/subprocess/SubProcessParameters.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/task/subprocess/SubProcessParameters.java
index 46f0e85..21a4f3e 100644
--- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/task/subprocess/SubProcessParameters.java
+++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/task/subprocess/SubProcessParameters.java
@@ -15,6 +15,7 @@
  * limitations under the License.
  */
 package org.apache.dolphinscheduler.common.task.subprocess;
+
 import org.apache.dolphinscheduler.common.process.ResourceInfo;
 import org.apache.dolphinscheduler.common.task.AbstractParameters;
 
@@ -27,19 +28,19 @@ public class SubProcessParameters extends AbstractParameters {
     /**
      * process definition id
      */
-    private Integer processDefinitionId;
+    private long processDefinitionCode;
 
-    public void setProcessDefinitionId(Integer processDefinitionId){
-        this.processDefinitionId = processDefinitionId;
+    public void setProcessDefinitionCode(long processDefinitionCode) {
+        this.processDefinitionCode = processDefinitionCode;
     }
 
-    public Integer getProcessDefinitionId(){
-        return this.processDefinitionId;
+    public long getProcessDefinitionCode() {
+        return this.processDefinitionCode;
     }
 
     @Override
     public boolean checkParameters() {
-        return this.processDefinitionId != null && this.processDefinitionId != 0;
+        return this.processDefinitionCode != 0;
     }
 
     @Override
diff --git a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapperTest.java b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapperTest.java
index 766cb20..aab4bf2 100644
--- a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapperTest.java
+++ b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapperTest.java
@@ -304,7 +304,6 @@ public class TaskInstanceMapperTest extends BaseDaoTest {
         definition.setCreateTime(new Date());
         definition.setUpdateTime(new Date());
         processDefinitionMapper.insert(definition);
-        //task.setProcessDefinitionId(definition.getId());
         taskInstanceMapper.updateById(task);
 
         int countTask = taskInstanceMapper.countTask(
@@ -340,7 +339,6 @@ public class TaskInstanceMapperTest extends BaseDaoTest {
         definition.setCreateTime(new Date());
         definition.setUpdateTime(new Date());
         processDefinitionMapper.insert(definition);
-        //task.setProcessDefinitionId(definition.getId());
         taskInstanceMapper.updateById(task);
 
 
diff --git a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
index 7c3c8fe..8e8b51a 100644
--- a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
+++ b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
@@ -23,7 +23,7 @@ import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_EMPTY_SUB_P
 import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_FATHER_PARAMS;
 import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_RECOVER_PROCESS_ID_STRING;
 import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_SUB_PROCESS;
-import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_SUB_PROCESS_DEFINE_ID;
+import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_SUB_PROCESS_DEFINE_CODE;
 import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_SUB_PROCESS_PARENT_INSTANCE_ID;
 import static org.apache.dolphinscheduler.common.Constants.LOCAL_PARAMS;
 
@@ -330,18 +330,6 @@ public class ProcessService {
     }
 
     /**
-     * check thread num
-     *
-     * @param command command
-     * @param validThreadNum validThreadNum
-     * @return if thread is enough
-     */
-    private boolean checkThreadNum(Command command, int validThreadNum) {
-        int commandThreadCount = this.workProcessThreadNumCount(command.getProcessDefinitionCode());
-        return validThreadNum >= commandThreadCount;
-    }
-
-    /**
      * insert one command
      *
      * @param command command
@@ -412,8 +400,8 @@ public class ProcessService {
     /**
      * get task node list by definitionId
      */
-    public List<TaskDefinition> getTaskNodeListByDefinitionId(Integer defineId) {
-        ProcessDefinition processDefinition = processDefineMapper.selectById(defineId);
+    public List<TaskDefinition> getTaskNodeListByDefinition(long defineCode) {
+        ProcessDefinition processDefinition = processDefineMapper.queryByCode(defineCode);
         if (processDefinition == null) {
             logger.error("process define not exists");
             return new ArrayList<>();
@@ -536,37 +524,23 @@ public class ProcessService {
     }
 
     /**
-     * calculate sub process number in the process define.
-     *
-     * @param processDefinitionCode processDefinitionCode
-     * @return process thread num count
-     */
-    private Integer workProcessThreadNumCount(long processDefinitionCode) {
-        ProcessDefinition processDefinition = processDefineMapper.queryByCode(processDefinitionCode);
-
-        List<Integer> ids = new ArrayList<>();
-        recurseFindSubProcessId(processDefinition.getId(), ids);
-        return ids.size() + 1;
-    }
-
-    /**
      * recursive query sub process definition id by parent id.
      *
-     * @param parentId parentId
+     * @param parentCode parentCode
      * @param ids ids
      */
-    public void recurseFindSubProcessId(int parentId, List<Integer> ids) {
-        List<TaskDefinition> taskNodeList = this.getTaskNodeListByDefinitionId(parentId);
+    public void recurseFindSubProcess(long parentCode, List<Long> ids) {
+        List<TaskDefinition> taskNodeList = this.getTaskNodeListByDefinition(parentCode);
 
         if (taskNodeList != null && !taskNodeList.isEmpty()) {
 
             for (TaskDefinition taskNode : taskNodeList) {
                 String parameter = taskNode.getTaskParams();
                 ObjectNode parameterJson = JSONUtils.parseObject(parameter);
-                if (parameterJson.get(CMD_PARAM_SUB_PROCESS_DEFINE_ID) != null) {
+                if (parameterJson.get(CMD_PARAM_SUB_PROCESS_DEFINE_CODE) != null) {
                     SubProcessParameters subProcessParam = JSONUtils.parseObject(parameter, SubProcessParameters.class);
-                    ids.add(subProcessParam.getProcessDefinitionId());
-                    recurseFindSubProcessId(subProcessParam.getProcessDefinitionId(), ids);
+                    ids.add(subProcessParam.getProcessDefinitionCode());
+                    recurseFindSubProcess(subProcessParam.getProcessDefinitionCode(), ids);
                 }
             }
         }
@@ -678,7 +652,6 @@ public class ProcessService {
         processInstance.setStartTime(new Date());
         processInstance.setRunTimes(1);
         processInstance.setMaxTryTimes(0);
-        //processInstance.setProcessDefinitionId(command.getProcessDefinitionId());
         processInstance.setCommandParam(command.getCommandParam());
         processInstance.setCommandType(command.getCommandType());
         processInstance.setIsSubProcess(Flag.NO);
@@ -1307,8 +1280,8 @@ public class ProcessService {
                                            TaskInstance task) {
         CommandType commandType = getSubCommandType(parentProcessInstance, childInstance);
         Map<String, String> subProcessParam = JSONUtils.toMap(task.getTaskParams());
-        int childDefineId = Integer.parseInt(subProcessParam.get(Constants.CMD_PARAM_SUB_PROCESS_DEFINE_ID));
-        ProcessDefinition subProcessDefinition = processDefineMapper.queryByDefineId(childDefineId);
+        int childDefineCode = Integer.parseInt(subProcessParam.get(Constants.CMD_PARAM_SUB_PROCESS_DEFINE_CODE));
+        ProcessDefinition subProcessDefinition = processDefineMapper.queryByCode(childDefineCode);
 
         Object localParams = subProcessParam.get(Constants.LOCAL_PARAMS);
         List<Property> allParam = JSONUtils.toList(JSONUtils.toJsonString(localParams), Property.class);
diff --git a/dolphinscheduler-service/src/test/java/org/apache/dolphinscheduler/service/process/ProcessServiceTest.java b/dolphinscheduler-service/src/test/java/org/apache/dolphinscheduler/service/process/ProcessServiceTest.java
index b55aee5..4f1c576 100644
--- a/dolphinscheduler-service/src/test/java/org/apache/dolphinscheduler/service/process/ProcessServiceTest.java
+++ b/dolphinscheduler-service/src/test/java/org/apache/dolphinscheduler/service/process/ProcessServiceTest.java
@@ -19,7 +19,7 @@ package org.apache.dolphinscheduler.service.process;
 
 import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_RECOVER_PROCESS_ID_STRING;
 import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_START_PARAMS;
-import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_SUB_PROCESS_DEFINE_ID;
+import static org.apache.dolphinscheduler.common.Constants.CMD_PARAM_SUB_PROCESS_DEFINE_CODE;
 import static org.mockito.ArgumentMatchers.any;
 
 import org.apache.dolphinscheduler.common.Constants;
@@ -128,7 +128,7 @@ public class ProcessServiceTest {
         parentInstance.setWarningGroupId(0);
 
         TaskInstance task = new TaskInstance();
-        task.setTaskParams("{\"processDefinitionId\":100}}");
+        task.setTaskParams("{\"processDefinitionCode\":10}}");
         task.setId(10);
         task.setTaskCode(1L);
         task.setTaskDefinitionVersion(1);
@@ -143,8 +143,9 @@ public class ProcessServiceTest {
         parentInstance.setHistoryCmd("START_PROCESS");
         parentInstance.setCommandType(CommandType.START_PROCESS);
         ProcessDefinition processDefinition = new ProcessDefinition();
-        processDefinition.setCode(1L);
+        processDefinition.setCode(10L);
         Mockito.when(processDefineMapper.queryByDefineId(100)).thenReturn(processDefinition);
+        Mockito.when(processDefineMapper.queryByCode(10L)).thenReturn(processDefinition);
         command = processService.createSubProcessCommand(parentInstance, childInstance, instanceMap, task);
         Assert.assertEquals(CommandType.START_PROCESS, command.getCommandType());
 
@@ -246,7 +247,7 @@ public class ProcessServiceTest {
         command.setProcessDefinitionCode(222);
         command.setCommandType(CommandType.REPEAT_RUNNING);
         command.setCommandParam("{\"" + CMD_PARAM_RECOVER_PROCESS_ID_STRING + "\":\"111\",\""
-            + CMD_PARAM_SUB_PROCESS_DEFINE_ID + "\":\"222\"}");
+            + CMD_PARAM_SUB_PROCESS_DEFINE_CODE + "\":\"222\"}");
         Assert.assertNull(processService.handleCommand(logger, host, command, processDefinitionCacheMaps));
 
         int definitionVersion = 1;
@@ -442,14 +443,14 @@ public class ProcessServiceTest {
 
         List<TaskDefinitionLog> taskDefinitionLogs = new ArrayList<>();
         TaskDefinitionLog taskDefinitionLog1 = new TaskDefinitionLog();
-        taskDefinitionLog1.setTaskParams("{\"processDefinitionId\": 123}");
+        taskDefinitionLog1.setTaskParams("{\"processDefinitionCode\": 123L}");
         taskDefinitionLogs.add(taskDefinitionLog1);
         Mockito.when(taskDefinitionLogMapper.queryByTaskDefinitions(Mockito.anySet())).thenReturn(taskDefinitionLogs);
 
-        List<Integer> ids = new ArrayList<>();
-        processService.recurseFindSubProcessId(parentProcessDefineId, ids);
+        List<Long> ids = new ArrayList<>();
+        processService.recurseFindSubProcess(parentProcessDefineCode, ids);
 
-        Assert.assertEquals(1, ids.size());
+        Assert.assertEquals(0, ids.size());
     }
 
     @Test
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/sub_process.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/sub_process.vue
index e0041e1..5e31b51 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/sub_process.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/sub_process.vue
@@ -29,7 +29,7 @@
           <el-option
                 v-for="city in processDefinitionList"
                 :key="city.code"
-                :value="city.id"
+                :value="city.code"
                 :label="city.name">
           </el-option>
         </el-select>
@@ -72,7 +72,7 @@
           return false
         }
         this.$emit('on-params', {
-          processDefinitionId: this.wdiCurr
+          processDefinitionCode: this.wdiCurr
         })
         return true
       },
@@ -85,8 +85,8 @@
       /**
        * Return the name according to the process definition id
        */
-      _handleName (id) {
-        return _.filter(this.processDefinitionList, v => id === v.id)[0].name
+      _handleName (code) {
+        return _.filter(this.processDefinitionList, v => code === v.code)[0].name
       },
       /**
        * Get all processDefinition list
@@ -101,7 +101,7 @@
     watch: {
       wdiCurr (val) {
         this.$emit('on-cache-params', {
-          processDefinitionId: this.wdiCurr
+          processDefinitionCode: this.wdiCurr
         })
       }
     },
@@ -124,10 +124,10 @@
         let o = this.backfillItem
         // Non-null objects represent backfill
         if (!_.isEmpty(o)) {
-          this.wdiCurr = o.params.processDefinitionId
+          this.wdiCurr = o.params.processDefinitionCode
         } else {
           if (this.processDefinitionList.length) {
-            this.wdiCurr = this.processDefinitionList[0].id
+            this.wdiCurr = this.processDefinitionList[0].code
             this.$emit('on-set-process-name', this._handleName(this.wdiCurr))
           }
         }