Browse Source

[Fix-6139][API] fix bug of view-tree api (#6188)

* fix bug of view-tree api

* fix bug of view-tree api

* fix ut

* fix ut

Co-authored-by: JinyLeeChina <297062848@qq.com>
JinyLeeChina 3 years ago
parent
commit
14e4d7086d

+ 1 - 1
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProcessDefinitionController.java

@@ -533,7 +533,7 @@ public class ProcessDefinitionController extends BaseController {
      */
     @ApiOperation(value = "getTaskListByDefinitionCodes", notes = "GET_TASK_LIST_BY_DEFINITION_CODE_NOTES")
     @ApiImplicitParams({
-        @ApiImplicitParam(name = "processDefinitionCodes", value = "PROCESS_DEFINITION_CODES", required = true, type = "String", example = "100,200,300")
+        @ApiImplicitParam(name = "codes", value = "PROCESS_DEFINITION_CODES", required = true, type = "String", example = "100,200,300")
     })
     @GetMapping(value = "/batch-query-tasks")
     @ResponseStatus(HttpStatus.OK)

+ 1 - 1
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/WorkFlowLineageController.java

@@ -96,7 +96,7 @@ public class WorkFlowLineageController extends BaseController {
     @GetMapping(value = "/list")
     @ResponseStatus(HttpStatus.OK)
     @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
-    public Result<Map<String, Object>> queryWorkFlowLineageByIds(@ApiIgnore @RequestAttribute(value = SESSION_USER) User loginUser,
+    public Result<Map<String, Object>> queryWorkFlowLineage(@ApiIgnore @RequestAttribute(value = SESSION_USER) User loginUser,
                                                                  @ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode) {
         try {
             Map<String, Object> result = workFlowLineageService.queryWorkFlowLineage(projectCode);

+ 27 - 12
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/treeview/Instance.java

@@ -14,23 +14,30 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dolphinscheduler.api.dto.treeview;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
+package org.apache.dolphinscheduler.api.dto.treeview;
 
 import java.util.Date;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+
 /**
  * Instance
  */
 public class Instance {
 
     private int id;
+
     /**
      * node name
      */
     private String name;
 
+    /**
+     * node code
+     */
+    private long code;
+
     /**
      * node type
      */
@@ -44,17 +51,16 @@ public class Instance {
     /**
      * node start time
      */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date startTime;
 
     /**
      * node end time
      */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endTime;
 
 
-
     /**
      * node running on which host
      */
@@ -67,18 +73,20 @@ public class Instance {
 
     private int subflowId;
 
+    public Instance() {
+    }
 
-    public Instance(){}
-
-    public Instance(int id,String name, String type){
+    public Instance(int id, String name, long code, String type) {
         this.id = id;
         this.name = name;
+        this.code = code;
         this.type = type;
     }
 
-    public Instance(int id,String name, 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, int subflowId) {
         this.id = id;
         this.name = name;
+        this.code = code;
         this.type = type;
         this.state = state;
         this.startTime = startTime;
@@ -88,12 +96,11 @@ public class Instance {
         this.subflowId = subflowId;
     }
 
-    public Instance(int id,String name, String type,String state,Date startTime, Date endTime, String host, String duration) {
-        this(id, name, type, state, startTime, endTime,host,duration,0);
+    public Instance(int id, String name, long code, String type, String state, Date startTime, Date endTime, String host, String duration) {
+        this(id, name, code, type, state, startTime, endTime, host, duration, 0);
     }
 
 
-
     public int getId() {
         return id;
     }
@@ -110,6 +117,14 @@ public class Instance {
         this.name = name;
     }
 
+    public long getCode() {
+        return code;
+    }
+
+    public void setCode(long code) {
+        this.code = code;
+    }
+
     public String getType() {
         return type;
     }

+ 22 - 12
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/treeview/TreeViewDto.java

@@ -14,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.dolphinscheduler.api.dto.treeview;
 
 import java.util.ArrayList;
@@ -34,6 +35,21 @@ public class TreeViewDto {
      */
     private String type;
 
+    /**
+     * code
+     */
+    private long code;
+
+    /**
+     * instances list
+     */
+
+    private List<Instance> instances = new ArrayList<>();
+
+    /**
+     * children
+     */
+    private List<TreeViewDto> children = new ArrayList<>();
 
     public String getName() {
         return name;
@@ -51,17 +67,13 @@ public class TreeViewDto {
         this.type = type;
     }
 
-    /**
-     * instances list
-     */
-
-    private List<Instance> instances = new ArrayList<>();
-
-    /**
-     * children
-     */
-    private List<TreeViewDto> children = new ArrayList<>();
+    public long getCode() {
+        return code;
+    }
 
+    public void setCode(long code) {
+        this.code = code;
+    }
 
     public List<Instance> getInstances() {
         return instances;
@@ -78,6 +90,4 @@ public class TreeViewDto {
     public void setChildren(List<TreeViewDto> children) {
         this.children = children;
     }
-
-
 }

+ 29 - 20
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java

@@ -281,8 +281,10 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
                 putMsg(result, Status.DATA_IS_NOT_VALID, taskRelationJson);
                 return result;
             }
-
-            List<TaskNode> taskNodeList = processService.transformTask(taskRelationList, taskDefinitionLogs);
+            List<ProcessTaskRelation> processTaskRelations = taskRelationList.stream()
+                .map(processTaskRelationLog -> JSONUtils.parseObject(JSONUtils.toJsonString(processTaskRelationLog), ProcessTaskRelation.class))
+                .collect(Collectors.toList());
+            List<TaskNode> taskNodeList = processService.transformTask(processTaskRelations, taskDefinitionLogs);
             if (taskNodeList.size() != taskRelationList.size()) {
                 Set<Long> postTaskCodes = taskRelationList.stream().map(ProcessTaskRelationLog::getPostTaskCode).collect(Collectors.toSet());
                 Set<Long> taskNodeCodes = taskNodeList.stream().map(TaskNode::getCode).collect(Collectors.toSet());
@@ -827,10 +829,12 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
             putMsg(result, Status.CREATE_PROCESS_DEFINITION_ERROR);
             return false;
         }
-        List<TaskDefinitionLog> taskDefinitionList = dagDataSchedule.getTaskDefinitionList();
+        List<TaskDefinition> taskDefinitionList = dagDataSchedule.getTaskDefinitionList();
         Map<Long, Long> taskCodeMap = new HashMap<>();
         Date now = new Date();
-        for (TaskDefinitionLog taskDefinitionLog : taskDefinitionList) {
+        List<TaskDefinitionLog> taskDefinitionLogList = new ArrayList<>();
+        for (TaskDefinition taskDefinition : taskDefinitionList) {
+            TaskDefinitionLog taskDefinitionLog = new TaskDefinitionLog(taskDefinition);
             taskDefinitionLog.setName(taskDefinitionLog.getName() + "_import_" + DateUtils.getCurrentTimeStamp());
             taskDefinitionLog.setProjectCode(projectCode);
             taskDefinitionLog.setUserId(loginUser.getId());
@@ -848,22 +852,26 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
                 putMsg(result, Status.INTERNAL_SERVER_ERROR_ARGS, "Error generating task definition code");
                 return false;
             }
+            taskDefinitionLogList.add(taskDefinitionLog);
         }
-        int insert = taskDefinitionMapper.batchInsert(taskDefinitionList);
-        int logInsert = taskDefinitionLogMapper.batchInsert(taskDefinitionList);
+        int insert = taskDefinitionMapper.batchInsert(taskDefinitionLogList);
+        int logInsert = taskDefinitionLogMapper.batchInsert(taskDefinitionLogList);
         if ((logInsert & insert) == 0) {
             putMsg(result, Status.CREATE_TASK_DEFINITION_ERROR);
             return false;
         }
 
-        List<ProcessTaskRelationLog> taskRelationList = dagDataSchedule.getProcessTaskRelationList();
-        taskRelationList.forEach(processTaskRelationLog -> {
+        List<ProcessTaskRelation> taskRelationList = dagDataSchedule.getProcessTaskRelationList();
+        List<ProcessTaskRelationLog> taskRelationLogList = new ArrayList<>();
+        for (ProcessTaskRelation processTaskRelation : taskRelationList) {
+            ProcessTaskRelationLog processTaskRelationLog = new ProcessTaskRelationLog(processTaskRelation);
             processTaskRelationLog.setPreTaskCode(taskCodeMap.get(processTaskRelationLog.getPreTaskCode()));
             processTaskRelationLog.setPostTaskCode(taskCodeMap.get(processTaskRelationLog.getPostTaskCode()));
             processTaskRelationLog.setPreTaskVersion(Constants.VERSION_FIRST);
             processTaskRelationLog.setPostTaskVersion(Constants.VERSION_FIRST);
-        });
-        Map<String, Object> createProcessResult = createProcessDefine(loginUser, result, taskRelationList, processDefinition, null);
+            taskRelationLogList.add(processTaskRelationLog);
+        }
+        Map<String, Object> createProcessResult = createProcessDefine(loginUser, result, taskRelationLogList, processDefinition, null);
         if (Status.SUCCESS.equals(createProcessResult.get(Constants.STATUS))) {
             putMsg(createProcessResult, Status.SUCCESS);
         } else {
@@ -937,7 +945,7 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
                 return result;
             }
 
-            List<ProcessTaskRelationLog> taskRelationList = JSONUtils.toList(processTaskRelationJson, ProcessTaskRelationLog.class);
+            List<ProcessTaskRelation> taskRelationList = JSONUtils.toList(processTaskRelationJson, ProcessTaskRelation.class);
             // Check whether the task node is normal
             List<TaskNode> taskNodes = processService.transformTask(taskRelationList, Lists.newArrayList());
 
@@ -1026,7 +1034,7 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
             putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, codes);
             return result;
         }
-        Map<Long, List<TaskDefinitionLog>> taskNodeMap = new HashMap<>();
+        Map<Long, List<TaskDefinition>> taskNodeMap = new HashMap<>();
         for (ProcessDefinition processDefinition : processDefinitionList) {
             DagData dagData = processService.genDagData(processDefinition);
             taskNodeMap.put(processDefinition.getCode(), dagData.getTaskDefinitionList());
@@ -1087,7 +1095,7 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
         // List of process instances
         List<ProcessInstance> processInstanceList = processInstanceService.queryByProcessDefineCode(code, limit);
         processInstanceList.forEach(processInstance -> processInstance.setDuration(DateUtils.format2Duration(processInstance.getStartTime(), processInstance.getEndTime())));
-        List<TaskDefinitionLog> taskDefinitionList = processService.queryTaskDefinitionListByProcess(code, processDefinition.getVersion());
+        List<TaskDefinitionLog> taskDefinitionList = processService.genTaskDefineList(processTaskRelationMapper.queryByProcessCode(processDefinition.getProjectCode(), processDefinition.getCode()));
         Map<Long, TaskDefinitionLog> taskDefinitionMap = taskDefinitionList.stream()
             .collect(Collectors.toMap(TaskDefinitionLog::getCode, taskDefinitionLog -> taskDefinitionLog));
 
@@ -1098,12 +1106,13 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
         TreeViewDto parentTreeViewDto = new TreeViewDto();
         parentTreeViewDto.setName("DAG");
         parentTreeViewDto.setType("");
+        parentTreeViewDto.setCode(0L);
         // Specify the process definition, because it is a TreeView for a process definition
         for (int i = limit - 1; i >= 0; i--) {
             ProcessInstance processInstance = processInstanceList.get(i);
             Date endTime = processInstance.getEndTime() == null ? new Date() : processInstance.getEndTime();
-            parentTreeViewDto.getInstances().add(new Instance(processInstance.getId(), processInstance.getName(), "",
-                processInstance.getState().toString(), processInstance.getStartTime(), endTime, processInstance.getHost(),
+            parentTreeViewDto.getInstances().add(new Instance(processInstance.getId(), processInstance.getName(), processInstance.getProcessDefinitionCode(),
+                "", processInstance.getState().toString(), processInstance.getStartTime(), endTime, processInstance.getHost(),
                 DateUtils.format2Readable(endTime.getTime() - processInstance.getStartTime().getTime())));
         }
 
@@ -1126,13 +1135,13 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
                 treeViewDto.setName(nodeName);
                 TaskNode taskNode = dag.getNode(nodeName);
                 treeViewDto.setType(taskNode.getType());
-
+                treeViewDto.setCode(taskNode.getCode());
                 //set treeViewDto instances
                 for (int i = limit - 1; i >= 0; i--) {
                     ProcessInstance processInstance = processInstanceList.get(i);
                     TaskInstance taskInstance = taskInstanceMapper.queryByInstanceIdAndName(processInstance.getId(), nodeName);
                     if (taskInstance == null) {
-                        treeViewDto.getInstances().add(new Instance(-1, "not running", "null"));
+                        treeViewDto.getInstances().add(new Instance(-1, "not running", 0, "null"));
                     } else {
                         Date startTime = taskInstance.getStartTime() == null ? new Date() : taskInstance.getStartTime();
                         Date endTime = taskInstance.getEndTime() == null ? new Date() : taskInstance.getEndTime();
@@ -1144,9 +1153,9 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
                             subProcessId = Integer.parseInt(JSONUtils.parseObject(
                                 taskDefinition.getTaskParams()).path(CMD_PARAM_SUB_PROCESS_DEFINE_ID).asText());
                         }
-                        treeViewDto.getInstances().add(new Instance(taskInstance.getId(), taskInstance.getName(), taskInstance.getTaskType(),
-                            taskInstance.getState().toString(), taskInstance.getStartTime(), taskInstance.getEndTime(), taskInstance.getHost(),
-                            DateUtils.format2Readable(endTime.getTime() - startTime.getTime()), subProcessId));
+                        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));
                     }
                 }
                 for (TreeViewDto pTreeViewDto : parentTreeViewDtoList) {

+ 3 - 3
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/TaskNode.java

@@ -45,7 +45,7 @@ public class TaskNode {
     /**
      * task node code
      */
-    private Long code;
+    private long code;
 
     /**
      * task node version
@@ -342,11 +342,11 @@ public class TaskNode {
         this.delayTime = delayTime;
     }
 
-    public Long getCode() {
+    public long getCode() {
         return code;
     }
 
-    public void setCode(Long code) {
+    public void setCode(long code) {
         this.code = code;
     }
 

+ 7 - 7
dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/DagData.java

@@ -32,14 +32,14 @@ public class DagData {
     /**
      * processTaskRelationList
      */
-    private List<ProcessTaskRelationLog> processTaskRelationList;
+    private List<ProcessTaskRelation> processTaskRelationList;
 
     /**
      * processTaskRelationList
      */
-    private List<TaskDefinitionLog> taskDefinitionList;
+    private List<TaskDefinition> taskDefinitionList;
 
-    public DagData(ProcessDefinition processDefinition, List<ProcessTaskRelationLog> processTaskRelationList, List<TaskDefinitionLog> taskDefinitionList) {
+    public DagData(ProcessDefinition processDefinition, List<ProcessTaskRelation> processTaskRelationList, List<TaskDefinition> taskDefinitionList) {
         this.processDefinition = processDefinition;
         this.processTaskRelationList = processTaskRelationList;
         this.taskDefinitionList = taskDefinitionList;
@@ -56,19 +56,19 @@ public class DagData {
         this.processDefinition = processDefinition;
     }
 
-    public List<ProcessTaskRelationLog> getProcessTaskRelationList() {
+    public List<ProcessTaskRelation> getProcessTaskRelationList() {
         return processTaskRelationList;
     }
 
-    public void setProcessTaskRelationList(List<ProcessTaskRelationLog> processTaskRelationList) {
+    public void setProcessTaskRelationList(List<ProcessTaskRelation> processTaskRelationList) {
         this.processTaskRelationList = processTaskRelationList;
     }
 
-    public List<TaskDefinitionLog> getTaskDefinitionList() {
+    public List<TaskDefinition> getTaskDefinitionList() {
         return taskDefinitionList;
     }
 
-    public void setTaskDefinitionList(List<TaskDefinitionLog> taskDefinitionList) {
+    public void setTaskDefinitionList(List<TaskDefinition> taskDefinitionList) {
         this.taskDefinitionList = taskDefinitionList;
     }
 }

+ 11 - 25
dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java

@@ -2350,7 +2350,7 @@ public class ProcessService {
      * @return dag graph
      */
     public DAG<String, TaskNode, TaskNodeRelation> genDagGraph(ProcessDefinition processDefinition) {
-        List<ProcessTaskRelationLog> processTaskRelations = processTaskRelationLogMapper.queryByProcessCodeAndVersion(processDefinition.getCode(), processDefinition.getVersion());
+        List<ProcessTaskRelation> processTaskRelations = processTaskRelationMapper.queryByProcessCode(processDefinition.getProjectCode(), processDefinition.getCode());
         List<TaskNode> taskNodeList = transformTask(processTaskRelations, Lists.newArrayList());
         ProcessDag processDag = DagHelper.getProcessDag(taskNodeList, new ArrayList<>(processTaskRelations));
         // Generate concrete Dag to be executed
@@ -2361,13 +2361,17 @@ public class ProcessService {
      * generate DagData
      */
     public DagData genDagData(ProcessDefinition processDefinition) {
-        List<ProcessTaskRelationLog> processTaskRelations = processTaskRelationLogMapper.queryByProcessCodeAndVersion(processDefinition.getCode(), processDefinition.getVersion());
-        return new DagData(processDefinition, processTaskRelations, genTaskDefineList(processTaskRelations));
+        List<ProcessTaskRelation> processTaskRelations = processTaskRelationMapper.queryByProcessCode(processDefinition.getProjectCode(), processDefinition.getCode());
+        List<TaskDefinitionLog> taskDefinitionLogList = genTaskDefineList(processTaskRelations);
+        List<TaskDefinition> taskDefinitions = taskDefinitionLogList.stream()
+            .map(taskDefinitionLog -> JSONUtils.parseObject(JSONUtils.toJsonString(taskDefinitionLog), TaskDefinition.class))
+            .collect(Collectors.toList());
+        return new DagData(processDefinition, processTaskRelations, taskDefinitions);
     }
 
-    private List<TaskDefinitionLog> genTaskDefineList(List<ProcessTaskRelationLog> processTaskRelations) {
+    public List<TaskDefinitionLog> genTaskDefineList(List<ProcessTaskRelation> processTaskRelations) {
         Set<TaskDefinition> taskDefinitionSet = new HashSet<>();
-        for (ProcessTaskRelationLog processTaskRelation : processTaskRelations) {
+        for (ProcessTaskRelation processTaskRelation : processTaskRelations) {
             if (processTaskRelation.getPreTaskCode() > 0) {
                 taskDefinitionSet.add(new TaskDefinition(processTaskRelation.getPreTaskCode(), processTaskRelation.getPreTaskVersion()));
             }
@@ -2446,24 +2450,6 @@ public class ProcessService {
         return taskDefinitionLogMapper.queryByDefinitionCodeAndVersion(taskCode, taskDefinitionVersion);
     }
 
-    /**
-     * query tasks definition list by process code and process version
-     */
-    public List<TaskDefinitionLog> queryTaskDefinitionListByProcess(long processCode, int processVersion) {
-        List<ProcessTaskRelationLog> processTaskRelationLogs =
-            processTaskRelationLogMapper.queryByProcessCodeAndVersion(processCode, processVersion);
-        Set<TaskDefinition> taskDefinitionSet = new HashSet<>();
-        for (ProcessTaskRelationLog processTaskRelationLog : processTaskRelationLogs) {
-            if (processTaskRelationLog.getPreTaskCode() > 0) {
-                taskDefinitionSet.add(new TaskDefinition(processTaskRelationLog.getPreTaskCode(), processTaskRelationLog.getPreTaskVersion()));
-            }
-            if (processTaskRelationLog.getPostTaskCode() > 0) {
-                taskDefinitionSet.add(new TaskDefinition(processTaskRelationLog.getPostTaskCode(), processTaskRelationLog.getPostTaskVersion()));
-            }
-        }
-        return taskDefinitionLogMapper.queryByTaskDefinitions(taskDefinitionSet);
-    }
-
     /**
      * add authorized resources
      *
@@ -2479,9 +2465,9 @@ public class ProcessService {
     /**
      * Use temporarily before refactoring taskNode
      */
-    public List<TaskNode> transformTask(List<ProcessTaskRelationLog> taskRelationList, List<TaskDefinitionLog> taskDefinitionLogs) {
+    public List<TaskNode> transformTask(List<ProcessTaskRelation> taskRelationList, List<TaskDefinitionLog> taskDefinitionLogs) {
         Map<Long, List<Long>> taskCodeMap = new HashMap<>();
-        for (ProcessTaskRelationLog processTaskRelation : taskRelationList) {
+        for (ProcessTaskRelation processTaskRelation : taskRelationList) {
             taskCodeMap.compute(processTaskRelation.getPostTaskCode(), (k, v) -> {
                 if (v == null) {
                     v = new ArrayList<>();

+ 14 - 14
dolphinscheduler-service/src/test/java/org/apache/dolphinscheduler/service/process/ProcessServiceTest.java

@@ -38,6 +38,7 @@ import org.apache.dolphinscheduler.dao.entity.ProcessDefinition;
 import org.apache.dolphinscheduler.dao.entity.ProcessDefinitionLog;
 import org.apache.dolphinscheduler.dao.entity.ProcessInstance;
 import org.apache.dolphinscheduler.dao.entity.ProcessInstanceMap;
+import org.apache.dolphinscheduler.dao.entity.ProcessTaskRelation;
 import org.apache.dolphinscheduler.dao.entity.ProcessTaskRelationLog;
 import org.apache.dolphinscheduler.dao.entity.TaskDefinitionLog;
 import org.apache.dolphinscheduler.dao.entity.TaskInstance;
@@ -368,17 +369,17 @@ public class ProcessServiceTest {
         processDefinition.setVersion(1);
         processDefinition.setCode(11L);
 
-        ProcessTaskRelationLog processTaskRelationLog = new ProcessTaskRelationLog();
-        processTaskRelationLog.setName("def 1");
-        processTaskRelationLog.setProcessDefinitionVersion(1);
-        processTaskRelationLog.setProjectCode(1L);
-        processTaskRelationLog.setProcessDefinitionCode(1L);
-        processTaskRelationLog.setPostTaskCode(3L);
-        processTaskRelationLog.setPreTaskCode(2L);
-        processTaskRelationLog.setUpdateTime(new Date());
-        processTaskRelationLog.setCreateTime(new Date());
-        List<ProcessTaskRelationLog> list = new ArrayList<>();
-        list.add(processTaskRelationLog);
+        ProcessTaskRelation processTaskRelation = new ProcessTaskRelation();
+        processTaskRelation.setName("def 1");
+        processTaskRelation.setProcessDefinitionVersion(1);
+        processTaskRelation.setProjectCode(1L);
+        processTaskRelation.setProcessDefinitionCode(1L);
+        processTaskRelation.setPostTaskCode(3L);
+        processTaskRelation.setPreTaskCode(2L);
+        processTaskRelation.setUpdateTime(new Date());
+        processTaskRelation.setCreateTime(new Date());
+        List<ProcessTaskRelation> list = new ArrayList<>();
+        list.add(processTaskRelation);
 
         TaskDefinitionLog taskDefinition = new TaskDefinitionLog();
         taskDefinition.setCode(3L);
@@ -405,11 +406,10 @@ public class ProcessServiceTest {
         taskDefinitionLogs.add(td2);
 
         Mockito.when(taskDefinitionLogMapper.queryByTaskDefinitions(any())).thenReturn(taskDefinitionLogs);
-        Mockito.when(processTaskRelationLogMapper.queryByProcessCodeAndVersion(Mockito.anyLong(), Mockito.anyInt())).thenReturn(list);
+        Mockito.when(processTaskRelationMapper.queryByProcessCode(Mockito.anyLong(), Mockito.anyLong())).thenReturn(list);
 
         DAG<String, TaskNode, TaskNodeRelation> stringTaskNodeTaskNodeRelationDAG = processService.genDagGraph(processDefinition);
-        Assert.assertNotEquals(0, stringTaskNodeTaskNodeRelationDAG.getNodesCount());
-
+        Assert.assertEquals(1, stringTaskNodeTaskNodeRelationDAG.getNodesCount());
     }
 
     @Test