allen 1 rok pred
rodič
commit
46996678bb
36 zmenil súbory, kde vykonal 527 pridanie a 252 odobranie
  1. 1 1
      kgraph-admin/src/main/java/com/kgraph/KgraphApplication.java
  2. 4 0
      kgraph-common/src/main/java/com/kgraph/common/config/KgraphConfig.java
  3. 28 0
      kgraph-common/src/main/java/com/kgraph/common/utils/file/FileUploadUtils.java
  4. 16 0
      kgraph-common/src/main/java/com/kgraph/common/utils/file/FileUtils.java
  5. 2 0
      kgraph-framework/src/main/java/com/kgraph/framework/config/SecurityConfig.java
  6. 6 0
      kgraph-graph/pom.xml
  7. 0 96
      kgraph-graph/src/main/java/com/kgraph/graph/service/impl/SubtaskServiceImpl.java
  8. 0 96
      kgraph-graph/src/main/java/com/kgraph/graph/service/impl/TaskServiceImpl.java
  9. 3 3
      kgraph-graph/src/main/java/com/kgraph/support/controller/ProcessedFileController.java
  10. 16 0
      kgraph-graph/src/main/java/com/kgraph/support/controller/PublicController.java
  11. 3 3
      kgraph-graph/src/main/java/com/kgraph/support/controller/SourceFileController.java
  12. 3 3
      kgraph-graph/src/main/java/com/kgraph/support/controller/SubtaskController.java
  13. 5 5
      kgraph-graph/src/main/java/com/kgraph/support/controller/TaskController.java
  14. 1 1
      kgraph-graph/src/main/java/com/kgraph/support/domain/ProcessedFile.java
  15. 1 1
      kgraph-graph/src/main/java/com/kgraph/support/domain/SourceFile.java
  16. 12 4
      kgraph-graph/src/main/java/com/kgraph/support/domain/Subtask.java
  17. 7 1
      kgraph-graph/src/main/java/com/kgraph/support/domain/Task.java
  18. 11 0
      kgraph-graph/src/main/java/com/kgraph/support/dto/RequestDTO.java
  19. 10 0
      kgraph-graph/src/main/java/com/kgraph/support/dto/ResponseDTO.java
  20. 2 2
      kgraph-graph/src/main/java/com/kgraph/support/mapper/ProcessedFileMapper.java
  21. 2 3
      kgraph-graph/src/main/java/com/kgraph/support/mapper/SourceFileMapper.java
  22. 2 2
      kgraph-graph/src/main/java/com/kgraph/support/mapper/SubtaskMapper.java
  23. 2 2
      kgraph-graph/src/main/java/com/kgraph/support/mapper/TaskMapper.java
  24. 2 2
      kgraph-graph/src/main/java/com/kgraph/support/service/IProcessedFileService.java
  25. 2 3
      kgraph-graph/src/main/java/com/kgraph/support/service/ISourceFileService.java
  26. 10 2
      kgraph-graph/src/main/java/com/kgraph/support/service/ISubtaskService.java
  27. 4 3
      kgraph-graph/src/main/java/com/kgraph/support/service/ITaskService.java
  28. 4 4
      kgraph-graph/src/main/java/com/kgraph/support/service/impl/ProcessedFileServiceImpl.java
  29. 5 6
      kgraph-graph/src/main/java/com/kgraph/support/service/impl/SourceFileServiceImpl.java
  30. 189 0
      kgraph-graph/src/main/java/com/kgraph/support/service/impl/SubtaskServiceImpl.java
  31. 165 0
      kgraph-graph/src/main/java/com/kgraph/support/service/impl/TaskServiceImpl.java
  32. 1 1
      kgraph-graph/src/main/resources/mapper/support/ProcessedFileMapper.xml
  33. 1 1
      kgraph-graph/src/main/resources/mapper/support/SourceFileMapper.xml
  34. 1 1
      kgraph-graph/src/main/resources/mapper/support/SubtaskMapper.xml
  35. 1 1
      kgraph-graph/src/main/resources/mapper/support/TaskMapper.xml
  36. 5 5
      kgraph-ui/src/views/graph/subtask/index.vue

+ 1 - 1
kgraph-admin/src/main/java/com/kgraph/KgraphApplication.java

@@ -14,7 +14,7 @@ public class KgraphApplication
 {
     public static void main(String[] args)
     {
-         System.setProperty("spring.devtools.restart.enabled", "true");
+        System.setProperty("spring.devtools.restart.enabled", "true");
         SpringApplication.run(KgraphApplication.class, args);
         System.out.println("(♥◠‿◠)ノ゙  启动成功   ლ(´ڡ`ლ)゙ ");
     }

+ 4 - 0
kgraph-common/src/main/java/com/kgraph/common/config/KgraphConfig.java

@@ -132,4 +132,8 @@ public class KgraphConfig
     {
         return getProfile() + "/upload";
     }
+    public static String getResultPath()
+    {
+        return getUploadPath() + "/result";
+    }
 }

+ 28 - 0
kgraph-common/src/main/java/com/kgraph/common/utils/file/FileUploadUtils.java

@@ -229,4 +229,32 @@ public class FileUploadUtils
         }
         return extension;
     }
+
+    public static final String buildPath(String baseDir, String fileName) throws IOException
+    {
+        try
+        {
+            return buildPath(baseDir, fileName, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+        }
+        catch (Exception e)
+        {
+            throw new IOException(e.getMessage(), e);
+        }
+    }
+
+    public static final String buildPath(String baseDir, String fileName, String[] allowedExtension)
+            throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException,
+            InvalidExtensionException
+    {
+        String fileNameTimed = extractFilename(fileName);
+
+        String absPath = getAbsoluteFile(baseDir, fileNameTimed).getAbsolutePath();
+        return getPathFileName(baseDir, fileNameTimed);
+    }
+
+    public static final String extractFilename(String fileName)
+    {
+        return StringUtils.format("{}/{}_{}", DateUtils.datePath(),
+                fileName, Seq.getId(Seq.uploadSeqType));
+    }
 }

+ 16 - 0
kgraph-common/src/main/java/com/kgraph/common/utils/file/FileUtils.java

@@ -11,6 +11,8 @@ import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
+import com.kgraph.common.constant.Constants;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.ArrayUtils;
 import com.kgraph.common.config.KgraphConfig;
@@ -324,4 +326,18 @@ public class FileUtils
         return realName;
     }
 
+    /**
+     * 获取绝对路径通过相对路径 /profile/upload/2022/04/16/xxx_20220416xxxxxx.png
+     * -> D:/kgraphV2/uploadPath/upload/2022/04/16/xxx_20220416xxxxxx.png
+     * @param relativePath
+     * @return
+     */
+    public static String getAbsolutePathByRelativePath(String relativePath) {
+        String returnValue = relativePath;
+        if (relativePath.startsWith(Constants.RESOURCE_PREFIX)) {
+            returnValue = KgraphConfig.getProfile() + relativePath.substring(Constants.RESOURCE_PREFIX.length() - 1);
+        }
+        return returnValue;
+    }
+
 }

+ 2 - 0
kgraph-framework/src/main/java/com/kgraph/framework/config/SecurityConfig.java

@@ -115,6 +115,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 // 静态资源,可匿名访问
                 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                 .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
+                // 公开服务
+                .antMatchers("/graph/public/**").permitAll()
                 // 除上面外的所有请求全部需要鉴权认证
                 .anyRequest().authenticated()
                 .and()

+ 6 - 0
kgraph-graph/pom.xml

@@ -28,6 +28,12 @@
 			<artifactId>spring-boot-starter-data-neo4j</artifactId>
 		</dependency>
 
+		<!-- WebClient -->
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-webflux</artifactId>
+		</dependency>
+
 		<dependency>
 			<groupId>org.projectlombok</groupId>
 			<artifactId>lombok</artifactId>

+ 0 - 96
kgraph-graph/src/main/java/com/kgraph/graph/service/impl/SubtaskServiceImpl.java

@@ -1,96 +0,0 @@
-package com.kgraph.graph.service.impl;
-
-import java.util.List;
-import com.kgraph.common.utils.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.kgraph.graph.mapper.SubtaskMapper;
-import com.kgraph.graph.domain.Subtask;
-import com.kgraph.graph.service.ISubtaskService;
-
-/**
- * 子任务管理Service业务层处理
- * 
- * @author Allen
- * @date 2023-10-16
- */
-@Service
-public class SubtaskServiceImpl implements ISubtaskService 
-{
-    @Autowired
-    private SubtaskMapper subtaskMapper;
-
-    /**
-     * 查询子任务管理
-     * 
-     * @param id 子任务管理主键
-     * @return 子任务管理
-     */
-    @Override
-    public Subtask selectSubtaskById(Long id)
-    {
-        return subtaskMapper.selectSubtaskById(id);
-    }
-
-    /**
-     * 查询子任务管理列表
-     * 
-     * @param subtask 子任务管理
-     * @return 子任务管理
-     */
-    @Override
-    public List<Subtask> selectSubtaskList(Subtask subtask)
-    {
-        return subtaskMapper.selectSubtaskList(subtask);
-    }
-
-    /**
-     * 新增子任务管理
-     * 
-     * @param subtask 子任务管理
-     * @return 结果
-     */
-    @Override
-    public int insertSubtask(Subtask subtask)
-    {
-        subtask.setCreateTime(DateUtils.getNowDate());
-        return subtaskMapper.insertSubtask(subtask);
-    }
-
-    /**
-     * 修改子任务管理
-     * 
-     * @param subtask 子任务管理
-     * @return 结果
-     */
-    @Override
-    public int updateSubtask(Subtask subtask)
-    {
-        subtask.setUpdateTime(DateUtils.getNowDate());
-        return subtaskMapper.updateSubtask(subtask);
-    }
-
-    /**
-     * 批量删除子任务管理
-     * 
-     * @param ids 需要删除的子任务管理主键
-     * @return 结果
-     */
-    @Override
-    public int deleteSubtaskByIds(Long[] ids)
-    {
-        return subtaskMapper.deleteSubtaskByIds(ids);
-    }
-
-    /**
-     * 删除子任务管理信息
-     * 
-     * @param id 子任务管理主键
-     * @return 结果
-     */
-    @Override
-    public int deleteSubtaskById(Long id)
-    {
-        return subtaskMapper.deleteSubtaskById(id);
-    }
-}

+ 0 - 96
kgraph-graph/src/main/java/com/kgraph/graph/service/impl/TaskServiceImpl.java

@@ -1,96 +0,0 @@
-package com.kgraph.graph.service.impl;
-
-import java.util.List;
-import com.kgraph.common.utils.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.kgraph.graph.mapper.TaskMapper;
-import com.kgraph.graph.domain.Task;
-import com.kgraph.graph.service.ITaskService;
-
-/**
- * 任务管理Service业务层处理
- * 
- * @author Allen
- * @date 2023-10-16
- */
-@Service
-public class TaskServiceImpl implements ITaskService 
-{
-    @Autowired
-    private TaskMapper taskMapper;
-
-    /**
-     * 查询任务管理
-     * 
-     * @param id 任务管理主键
-     * @return 任务管理
-     */
-    @Override
-    public Task selectTaskById(Long id)
-    {
-        return taskMapper.selectTaskById(id);
-    }
-
-    /**
-     * 查询任务管理列表
-     * 
-     * @param task 任务管理
-     * @return 任务管理
-     */
-    @Override
-    public List<Task> selectTaskList(Task task)
-    {
-        return taskMapper.selectTaskList(task);
-    }
-
-    /**
-     * 新增任务管理
-     * 
-     * @param task 任务管理
-     * @return 结果
-     */
-    @Override
-    public int insertTask(Task task)
-    {
-        task.setCreateTime(DateUtils.getNowDate());
-        return taskMapper.insertTask(task);
-    }
-
-    /**
-     * 修改任务管理
-     * 
-     * @param task 任务管理
-     * @return 结果
-     */
-    @Override
-    public int updateTask(Task task)
-    {
-        task.setUpdateTime(DateUtils.getNowDate());
-        return taskMapper.updateTask(task);
-    }
-
-    /**
-     * 批量删除任务管理
-     * 
-     * @param ids 需要删除的任务管理主键
-     * @return 结果
-     */
-    @Override
-    public int deleteTaskByIds(Long[] ids)
-    {
-        return taskMapper.deleteTaskByIds(ids);
-    }
-
-    /**
-     * 删除任务管理信息
-     * 
-     * @param id 任务管理主键
-     * @return 结果
-     */
-    @Override
-    public int deleteTaskById(Long id)
-    {
-        return taskMapper.deleteTaskById(id);
-    }
-}

+ 3 - 3
kgraph-graph/src/main/java/com/kgraph/graph/controller/ProcessedFileController.java → kgraph-graph/src/main/java/com/kgraph/support/controller/ProcessedFileController.java

@@ -1,4 +1,4 @@
-package com.kgraph.graph.controller;
+package com.kgraph.support.controller;
 
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
@@ -16,8 +16,8 @@ import com.kgraph.common.annotation.Log;
 import com.kgraph.common.core.controller.BaseController;
 import com.kgraph.common.core.domain.AjaxResult;
 import com.kgraph.common.enums.BusinessType;
-import com.kgraph.graph.domain.ProcessedFile;
-import com.kgraph.graph.service.IProcessedFileService;
+import com.kgraph.support.domain.ProcessedFile;
+import com.kgraph.support.service.IProcessedFileService;
 import com.kgraph.common.utils.poi.ExcelUtil;
 import com.kgraph.common.core.page.TableDataInfo;
 

+ 16 - 0
kgraph-graph/src/main/java/com/kgraph/support/controller/PublicController.java

@@ -0,0 +1,16 @@
+package com.kgraph.support.controller;
+
+
+import com.kgraph.common.core.domain.AjaxResult;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/graph/public")
+public class PublicController {
+    @GetMapping("/updateSubtask")
+    public AjaxResult updateSubtask() {
+        return AjaxResult.success();
+    }
+}

+ 3 - 3
kgraph-graph/src/main/java/com/kgraph/graph/controller/SourceFileController.java → kgraph-graph/src/main/java/com/kgraph/support/controller/SourceFileController.java

@@ -1,4 +1,4 @@
-package com.kgraph.graph.controller;
+package com.kgraph.support.controller;
 
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
@@ -16,8 +16,8 @@ import com.kgraph.common.annotation.Log;
 import com.kgraph.common.core.controller.BaseController;
 import com.kgraph.common.core.domain.AjaxResult;
 import com.kgraph.common.enums.BusinessType;
-import com.kgraph.graph.domain.SourceFile;
-import com.kgraph.graph.service.ISourceFileService;
+import com.kgraph.support.domain.SourceFile;
+import com.kgraph.support.service.ISourceFileService;
 import com.kgraph.common.utils.poi.ExcelUtil;
 import com.kgraph.common.core.page.TableDataInfo;
 

+ 3 - 3
kgraph-graph/src/main/java/com/kgraph/graph/controller/SubtaskController.java → kgraph-graph/src/main/java/com/kgraph/support/controller/SubtaskController.java

@@ -1,4 +1,4 @@
-package com.kgraph.graph.controller;
+package com.kgraph.support.controller;
 
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
@@ -16,8 +16,8 @@ import com.kgraph.common.annotation.Log;
 import com.kgraph.common.core.controller.BaseController;
 import com.kgraph.common.core.domain.AjaxResult;
 import com.kgraph.common.enums.BusinessType;
-import com.kgraph.graph.domain.Subtask;
-import com.kgraph.graph.service.ISubtaskService;
+import com.kgraph.support.domain.Subtask;
+import com.kgraph.support.service.ISubtaskService;
 import com.kgraph.common.utils.poi.ExcelUtil;
 import com.kgraph.common.core.page.TableDataInfo;
 

+ 5 - 5
kgraph-graph/src/main/java/com/kgraph/graph/controller/TaskController.java → kgraph-graph/src/main/java/com/kgraph/support/controller/TaskController.java

@@ -1,5 +1,6 @@
-package com.kgraph.graph.controller;
+package com.kgraph.support.controller;
 
+import java.io.IOException;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -16,8 +17,8 @@ import com.kgraph.common.annotation.Log;
 import com.kgraph.common.core.controller.BaseController;
 import com.kgraph.common.core.domain.AjaxResult;
 import com.kgraph.common.enums.BusinessType;
-import com.kgraph.graph.domain.Task;
-import com.kgraph.graph.service.ITaskService;
+import com.kgraph.support.domain.Task;
+import com.kgraph.support.service.ITaskService;
 import com.kgraph.common.utils.poi.ExcelUtil;
 import com.kgraph.common.core.page.TableDataInfo;
 
@@ -75,8 +76,7 @@ public class TaskController extends BaseController
     @PreAuthorize("@ss.hasPermi('graph:task:add')")
     @Log(title = "任务管理", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody Task task)
-    {
+    public AjaxResult add(@RequestBody Task task) throws IOException {
         return toAjax(taskService.insertTask(task));
     }
 

+ 1 - 1
kgraph-graph/src/main/java/com/kgraph/graph/domain/ProcessedFile.java → kgraph-graph/src/main/java/com/kgraph/support/domain/ProcessedFile.java

@@ -1,4 +1,4 @@
-package com.kgraph.graph.domain;
+package com.kgraph.support.domain;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;

+ 1 - 1
kgraph-graph/src/main/java/com/kgraph/graph/domain/SourceFile.java → kgraph-graph/src/main/java/com/kgraph/support/domain/SourceFile.java

@@ -1,4 +1,4 @@
-package com.kgraph.graph.domain;
+package com.kgraph.support.domain;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;

+ 12 - 4
kgraph-graph/src/main/java/com/kgraph/graph/domain/Subtask.java → kgraph-graph/src/main/java/com/kgraph/support/domain/Subtask.java

@@ -1,4 +1,4 @@
-package com.kgraph.graph.domain;
+package com.kgraph.support.domain;
 
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -17,6 +17,11 @@ public class Subtask extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
 
+    public static final String NEW = "0";
+    public static final String RUNNING = "1";
+    public static final String COMPLETE = "2";
+    public static final String FAIL = "3";
+
     /** id */
     private Long id;
 
@@ -25,11 +30,12 @@ public class Subtask extends BaseEntity
     private Long taskId;
 
     /** 源文件id */
-    @Excel(name = "源文件id")
+    @Excel(name = "子任务名称")
     private String subtaskName;
 
     /** 子任务名称 */
-    @Excel(name = "子任务名称")
+    @Deprecated
+    @Excel(name = "子任务类型")
     private String subtaskType;
 
     /** 子任务状态 */
@@ -37,15 +43,17 @@ public class Subtask extends BaseEntity
     private String taskStatus;
 
     /** 处理文件名称 */
+    @Deprecated
     @Excel(name = "处理文件名称")
     private String sourceFileName;
 
     /** 处理文件路径 */
+    @Deprecated
     @Excel(name = "处理文件路径")
     private String sourceFilePath;
 
     /** 结果文件名称h */
-    @Excel(name = "结果文件名称h")
+    @Excel(name = "结果文件名称")
     private String resultFileName;
 
     /** 结果文件路径 */

+ 7 - 1
kgraph-graph/src/main/java/com/kgraph/graph/domain/Task.java → kgraph-graph/src/main/java/com/kgraph/support/domain/Task.java

@@ -1,4 +1,4 @@
-package com.kgraph.graph.domain;
+package com.kgraph.support.domain;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -14,6 +14,12 @@ import com.kgraph.common.core.domain.BaseEntity;
  */
 public class Task extends BaseEntity
 {
+
+    public static final String NEW = "0";
+    public static final String RUNNING = "1";
+    public static final String COMPLETE = "2";
+    public static final String FAIL = "3";
+
     private static final long serialVersionUID = 1L;
 
     /** id */

+ 11 - 0
kgraph-graph/src/main/java/com/kgraph/support/dto/RequestDTO.java

@@ -0,0 +1,11 @@
+package com.kgraph.support.dto;
+
+import lombok.Data;
+
+@Data
+public class RequestDTO {
+    private String taskId;
+    private String subTaskId;
+    private String filePath;
+
+}

+ 10 - 0
kgraph-graph/src/main/java/com/kgraph/support/dto/ResponseDTO.java

@@ -0,0 +1,10 @@
+package com.kgraph.support.dto;
+
+import lombok.Data;
+
+@Data
+public class ResponseDTO {
+    private int code;
+    private String message;
+    private String data;
+}

+ 2 - 2
kgraph-graph/src/main/java/com/kgraph/graph/mapper/ProcessedFileMapper.java → kgraph-graph/src/main/java/com/kgraph/support/mapper/ProcessedFileMapper.java

@@ -1,7 +1,7 @@
-package com.kgraph.graph.mapper;
+package com.kgraph.support.mapper;
 
 import java.util.List;
-import com.kgraph.graph.domain.ProcessedFile;
+import com.kgraph.support.domain.ProcessedFile;
 
 /**
  * 处理文件管理Mapper接口

+ 2 - 3
kgraph-graph/src/main/java/com/kgraph/graph/mapper/SourceFileMapper.java → kgraph-graph/src/main/java/com/kgraph/support/mapper/SourceFileMapper.java

@@ -1,9 +1,8 @@
-package com.kgraph.graph.mapper;
+package com.kgraph.support.mapper;
 
 import java.util.List;
-import java.util.Map;
 
-import com.kgraph.graph.domain.SourceFile;
+import com.kgraph.support.domain.SourceFile;
 
 /**
  * 源文件管理Mapper接口

+ 2 - 2
kgraph-graph/src/main/java/com/kgraph/graph/mapper/SubtaskMapper.java → kgraph-graph/src/main/java/com/kgraph/support/mapper/SubtaskMapper.java

@@ -1,7 +1,7 @@
-package com.kgraph.graph.mapper;
+package com.kgraph.support.mapper;
 
 import java.util.List;
-import com.kgraph.graph.domain.Subtask;
+import com.kgraph.support.domain.Subtask;
 
 /**
  * 子任务管理Mapper接口

+ 2 - 2
kgraph-graph/src/main/java/com/kgraph/graph/mapper/TaskMapper.java → kgraph-graph/src/main/java/com/kgraph/support/mapper/TaskMapper.java

@@ -1,7 +1,7 @@
-package com.kgraph.graph.mapper;
+package com.kgraph.support.mapper;
 
 import java.util.List;
-import com.kgraph.graph.domain.Task;
+import com.kgraph.support.domain.Task;
 
 /**
  * 任务管理Mapper接口

+ 2 - 2
kgraph-graph/src/main/java/com/kgraph/graph/service/IProcessedFileService.java → kgraph-graph/src/main/java/com/kgraph/support/service/IProcessedFileService.java

@@ -1,7 +1,7 @@
-package com.kgraph.graph.service;
+package com.kgraph.support.service;
 
 import java.util.List;
-import com.kgraph.graph.domain.ProcessedFile;
+import com.kgraph.support.domain.ProcessedFile;
 
 /**
  * 处理文件管理Service接口

+ 2 - 3
kgraph-graph/src/main/java/com/kgraph/graph/service/ISourceFileService.java → kgraph-graph/src/main/java/com/kgraph/support/service/ISourceFileService.java

@@ -1,9 +1,8 @@
-package com.kgraph.graph.service;
+package com.kgraph.support.service;
 
 import java.util.List;
-import java.util.Map;
 
-import com.kgraph.graph.domain.SourceFile;
+import com.kgraph.support.domain.SourceFile;
 
 /**
  * 源文件管理Service接口

+ 10 - 2
kgraph-graph/src/main/java/com/kgraph/graph/service/ISubtaskService.java → kgraph-graph/src/main/java/com/kgraph/support/service/ISubtaskService.java

@@ -1,7 +1,13 @@
-package com.kgraph.graph.service;
+package com.kgraph.support.service;
 
+import java.io.IOException;
 import java.util.List;
-import com.kgraph.graph.domain.Subtask;
+
+import com.kgraph.common.core.domain.entity.SysDictData;
+import com.kgraph.support.domain.ProcessedFile;
+import com.kgraph.support.domain.SourceFile;
+import com.kgraph.support.domain.Subtask;
+import com.kgraph.support.domain.Task;
 
 /**
  * 子任务管理Service接口
@@ -58,4 +64,6 @@ public interface ISubtaskService
      * @return 结果
      */
     public int deleteSubtaskById(Long id);
+
+    void createSubtask(Task task, String filePath, List<SysDictData> subtaskDictList) throws IOException;
 }

+ 4 - 3
kgraph-graph/src/main/java/com/kgraph/graph/service/ITaskService.java → kgraph-graph/src/main/java/com/kgraph/support/service/ITaskService.java

@@ -1,7 +1,8 @@
-package com.kgraph.graph.service;
+package com.kgraph.support.service;
 
+import java.io.IOException;
 import java.util.List;
-import com.kgraph.graph.domain.Task;
+import com.kgraph.support.domain.Task;
 
 /**
  * 任务管理Service接口
@@ -33,7 +34,7 @@ public interface ITaskService
      * @param task 任务管理
      * @return 结果
      */
-    public int insertTask(Task task);
+    public int insertTask(Task task) throws IOException;
 
     /**
      * 修改任务管理

+ 4 - 4
kgraph-graph/src/main/java/com/kgraph/graph/service/impl/ProcessedFileServiceImpl.java → kgraph-graph/src/main/java/com/kgraph/support/service/impl/ProcessedFileServiceImpl.java

@@ -1,4 +1,4 @@
-package com.kgraph.graph.service.impl;
+package com.kgraph.support.service.impl;
 
 import java.util.List;
 import com.kgraph.common.utils.DateUtils;
@@ -6,9 +6,9 @@ import com.kgraph.common.utils.file.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.kgraph.graph.mapper.ProcessedFileMapper;
-import com.kgraph.graph.domain.ProcessedFile;
-import com.kgraph.graph.service.IProcessedFileService;
+import com.kgraph.support.mapper.ProcessedFileMapper;
+import com.kgraph.support.domain.ProcessedFile;
+import com.kgraph.support.service.IProcessedFileService;
 
 /**
  * 处理文件管理Service业务层处理

+ 5 - 6
kgraph-graph/src/main/java/com/kgraph/graph/service/impl/SourceFileServiceImpl.java → kgraph-graph/src/main/java/com/kgraph/support/service/impl/SourceFileServiceImpl.java

@@ -1,16 +1,15 @@
-package com.kgraph.graph.service.impl;
+package com.kgraph.support.service.impl;
 
 import java.util.List;
-import java.util.Map;
 
 import com.kgraph.common.utils.DateUtils;
 import com.kgraph.common.utils.file.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.kgraph.graph.mapper.SourceFileMapper;
-import com.kgraph.graph.domain.SourceFile;
-import com.kgraph.graph.service.ISourceFileService;
+import com.kgraph.support.mapper.SourceFileMapper;
+import com.kgraph.support.domain.SourceFile;
+import com.kgraph.support.service.ISourceFileService;
 
 /**
  * 源文件管理Service业务层处理
@@ -58,7 +57,7 @@ public class SourceFileServiceImpl implements ISourceFileService
     public int insertSourceFile(SourceFile sourceFile)
     {
         sourceFile.setCreateTime(DateUtils.getNowDate());
-        if(StringUtils.isEmpty(sourceFile.getSourceFileName()) && StringUtils.isNotEmpty(sourceFile.getSourceFilePath())){
+        if(StringUtils.isEmpty(sourceFile.getSourceFileName()) && StringUtils.isNotEmpty(sourceFile.getSourceFilePath())) {
             sourceFile.setSourceFileName(FileUtils.getRealName(sourceFile.getSourceFilePath()));
         }
         sourceFile.setSourceFileType(FileUtils.getSuffix(sourceFile.getSourceFilePath()));

+ 189 - 0
kgraph-graph/src/main/java/com/kgraph/support/service/impl/SubtaskServiceImpl.java

@@ -0,0 +1,189 @@
+package com.kgraph.support.service.impl;
+
+import com.kgraph.common.config.KgraphConfig;
+import com.kgraph.common.core.domain.entity.SysDictData;
+import com.kgraph.common.utils.DateUtils;
+import com.kgraph.common.utils.StringUtils;
+import com.kgraph.common.utils.file.FileUploadUtils;
+import com.kgraph.support.domain.Subtask;
+import com.kgraph.support.domain.Task;
+import com.kgraph.support.dto.RequestDTO;
+import com.kgraph.support.dto.ResponseDTO;
+import com.kgraph.support.mapper.SubtaskMapper;
+import com.kgraph.support.service.ISubtaskService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.reactive.function.client.WebClient;
+import reactor.core.publisher.Mono;
+
+import java.io.IOException;
+import java.time.Duration;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 子任务管理Service业务层处理
+ * 
+ * @author Allen
+ * @date 2023-10-16
+ */
+@Service
+public class SubtaskServiceImpl implements ISubtaskService
+{
+    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    @Autowired
+    private SubtaskMapper subtaskMapper;
+
+    /**
+     * 查询子任务管理
+     * 
+     * @param id 子任务管理主键
+     * @return 子任务管理
+     */
+    @Override
+    public Subtask selectSubtaskById(Long id)
+    {
+        return subtaskMapper.selectSubtaskById(id);
+    }
+
+    /**
+     * 查询子任务管理列表
+     * 
+     * @param subtask 子任务管理
+     * @return 子任务管理
+     */
+    @Override
+    public List<Subtask> selectSubtaskList(Subtask subtask)
+    {
+        return subtaskMapper.selectSubtaskList(subtask);
+    }
+
+    /**
+     * 新增子任务管理
+     * 
+     * @param subtask 子任务管理
+     * @return 结果
+     */
+    @Override
+    public int insertSubtask(Subtask subtask)
+    {
+        subtask.setCreateTime(DateUtils.getNowDate());
+        return subtaskMapper.insertSubtask(subtask);
+    }
+
+    /**
+     * 修改子任务管理
+     * 
+     * @param subtask 子任务管理
+     * @return 结果
+     */
+    @Override
+    public int updateSubtask(Subtask subtask)
+    {
+        subtask.setUpdateTime(DateUtils.getNowDate());
+        return subtaskMapper.updateSubtask(subtask);
+    }
+
+    /**
+     * 批量删除子任务管理
+     * 
+     * @param ids 需要删除的子任务管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSubtaskByIds(Long[] ids)
+    {
+        return subtaskMapper.deleteSubtaskByIds(ids);
+    }
+
+    /**
+     * 删除子任务管理信息
+     * 
+     * @param id 子任务管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSubtaskById(Long id)
+    {
+        return subtaskMapper.deleteSubtaskById(id);
+    }
+
+    @Override
+    public void createSubtask(Task task, String filePath, List<SysDictData> subtaskDictList) throws IOException {
+        Map<String, SysDictData> dickMap = subtaskDictList.stream()
+                .collect(Collectors.toMap(SysDictData::getDictValue, sysDictData -> sysDictData));
+        String url;
+        SysDictData dickData;
+        for(String subtask : task.getSubtaskArray()) {
+            dickData = dickMap.get(subtask);
+
+            if(dickData == null){
+                logger.warn("dickData is empty");
+                continue;
+            }
+
+            url = dickData.getRemark();
+            if (StringUtils.isEmpty(url)) {
+                logger.warn("url is empty");
+                continue;
+            }
+
+            // create subtask
+            Subtask sub = buildAndCreateSubtask(task,dickData.getDictLabel());
+            sub.setTaskId(task.getId());
+
+            // todo http code, will be open
+//            RequestDTO requestDTO = new RequestDTO();
+//            requestDTO.setFilePath(filePath);
+//            WebClient webClient = WebClient.create(url);
+//            Mono<ResponseDTO> response = webClient.post()
+//                    .bodyValue(requestDTO)
+//                    .retrieve()
+//                    .bodyToMono(ResponseDTO.class);
+//
+//            ResponseDTO responseDTO = response.block(Duration.ofSeconds(10));
+
+            // todo test code, will be remove
+            ResponseDTO responseDTO = new ResponseDTO();
+            responseDTO.setCode(200);
+
+            if (responseDTO != null && responseDTO.getCode() == 200) {
+
+                // todo save subtasks
+                sub.setTaskStatus(Subtask.RUNNING);
+                updateSubtask(sub);
+            } else {
+                logger.warn("返回异常,{}", responseDTO);
+                // error todo save subtasks
+                sub.setTaskStatus(Subtask.FAIL);
+                sub.setRemark(responseDTO == null? "response is null" : responseDTO.getMessage());
+                updateSubtask(sub);
+            }
+        }
+    }
+
+    private Subtask buildAndCreateSubtask(Task task,String subtaskName) throws IOException {
+        Subtask subtask = new Subtask();
+        subtask.setTaskId(task.getId());
+        subtask.setSubtaskName(subtaskName);
+        subtask.setTaskStatus(Subtask.NEW);
+        String filePrefix = KgraphConfig.getResultPath();
+        subtask.setResultFileName(subtaskName);
+        subtask.setStartTime(DateUtils.getNowDate());
+        subtask.setCreateBy(task.getCreateBy());
+
+        // insert subtask
+        insertSubtask(subtask);
+
+        String resultPath = FileUploadUtils.buildPath(filePrefix+"/subtask/"+task.getId()+ "/" + subtask.getId(), subtaskName + ".txt");
+        subtask.setResultFilePath(resultPath);
+
+        // add insertSubtask
+        updateSubtask(subtask);
+        return subtask;
+    }
+}

+ 165 - 0
kgraph-graph/src/main/java/com/kgraph/support/service/impl/TaskServiceImpl.java

@@ -0,0 +1,165 @@
+package com.kgraph.support.service.impl;
+
+import com.kgraph.common.core.domain.entity.SysDictData;
+import com.kgraph.common.utils.DateUtils;
+import com.kgraph.common.utils.DictUtils;
+import com.kgraph.common.utils.file.FileUtils;
+import com.kgraph.support.domain.ProcessedFile;
+import com.kgraph.support.domain.SourceFile;
+import com.kgraph.support.domain.Task;
+import com.kgraph.support.mapper.TaskMapper;
+import com.kgraph.support.service.IProcessedFileService;
+import com.kgraph.support.service.ISourceFileService;
+import com.kgraph.support.service.ISubtaskService;
+import com.kgraph.support.service.ITaskService;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringJoiner;
+
+/**
+ * 任务管理Service业务层处理
+ * 
+ * @author Allen
+ * @date 2023-10-16
+ */
+@Service
+public class TaskServiceImpl implements ITaskService 
+{
+    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    @Autowired
+    IProcessedFileService processedFileService;
+
+    @Autowired
+    ISourceFileService sourceFileService;
+
+    @Autowired
+    ISubtaskService subtaskService;
+
+    @Autowired
+    private TaskMapper taskMapper;
+
+    /**
+     * 查询任务管理
+     * 
+     * @param id 任务管理主键
+     * @return 任务管理
+     */
+    @Override
+    public Task selectTaskById(Long id)
+    {
+        return taskMapper.selectTaskById(id);
+    }
+
+    /**
+     * 查询任务管理列表
+     * 
+     * @param task 任务管理
+     * @return 任务管理
+     */
+    @Override
+    public List<Task> selectTaskList(Task task)
+    {
+        return taskMapper.selectTaskList(task);
+    }
+
+    /**
+     * 新增任务管理
+     * 
+     * @param task 任务管理
+     * @return 结果
+     */
+    @Override
+    public int insertTask(Task task) throws IOException {
+        task.setCreateTime(DateUtils.getNowDate());
+        task.setTaskStatus(Task.NEW);
+        SourceFile sourceFile = null;
+        ProcessedFile processedFile = null;
+        if (StringUtils.isEmpty(task.getTaskName())) {
+            StringJoiner sj = new StringJoiner("_");
+            if (task.getRelateSourceFileId() != null) {
+                sourceFile = sourceFileService.selectSourceFileById(task.getRelateSourceFileId());
+                sj.add(sourceFile.getSourceFileName());
+            }
+            if (task.getRelateProcessedFileId() != null) {
+                processedFile = processedFileService.selectProcessedFileById(task.getRelateProcessedFileId());
+                sj.add(processedFile.getProcessedFileName());
+            }
+            sj.add(DateUtils.dateTimeNow(DateUtils.YYYYMMDDHHMMSS));
+            task.setTaskName(sj.toString());
+        }
+        int i = taskMapper.insertTask(task);
+
+
+        if (task.getSubtaskArray().length == 0) {
+            throw new RuntimeException("子任务不能为空");
+        }
+
+        String filePath = null;
+
+        // 首要使用处理过的文件
+        if(processedFile != null && com.kgraph.common.utils.StringUtils.isNotEmpty(processedFile.getProcessedFilePath())) {
+            filePath = FileUtils.getAbsolutePathByRelativePath(processedFile.getProcessedFilePath());
+        }
+
+        // 如果处理过的文件为null,则使用源文件进行处理
+        if(filePath != null && sourceFile != null && com.kgraph.common.utils.StringUtils.isNotEmpty(sourceFile.getSourceFilePath())) {
+            filePath = FileUtils.getAbsolutePathByRelativePath(sourceFile.getSourceFilePath());
+        }
+
+        if(com.kgraph.common.utils.StringUtils.isEmpty(filePath)){
+            throw new RuntimeException("处理文件为空");
+        }
+
+        List<SysDictData> subtaskDictList = new ArrayList<>(16);
+        subtaskDictList.addAll(DictUtils.getDictCache("biz_data_process"));
+        subtaskDictList.addAll(DictUtils.getDictCache("biz_kg_build"));
+        // create subtask
+        subtaskService.createSubtask(task, filePath, subtaskDictList);
+        return i;
+    }
+
+    /**
+     * 修改任务管理
+     * 
+     * @param task 任务管理
+     * @return 结果
+     */
+    @Override
+    public int updateTask(Task task)
+    {
+        task.setUpdateTime(DateUtils.getNowDate());
+        return taskMapper.updateTask(task);
+    }
+
+    /**
+     * 批量删除任务管理
+     * 
+     * @param ids 需要删除的任务管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTaskByIds(Long[] ids)
+    {
+        return taskMapper.deleteTaskByIds(ids);
+    }
+
+    /**
+     * 删除任务管理信息
+     * 
+     * @param id 任务管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTaskById(Long id)
+    {
+        return taskMapper.deleteTaskById(id);
+    }
+}

+ 1 - 1
kgraph-graph/src/main/resources/mapper/graph/ProcessedFileMapper.xml → kgraph-graph/src/main/resources/mapper/support/ProcessedFileMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.kgraph.graph.mapper.ProcessedFileMapper">
+<mapper namespace="com.kgraph.support.mapper.ProcessedFileMapper">
     
     <resultMap type="ProcessedFile" id="ProcessedFileResult">
         <result property="id"    column="id"    />

+ 1 - 1
kgraph-graph/src/main/resources/mapper/graph/SourceFileMapper.xml → kgraph-graph/src/main/resources/mapper/support/SourceFileMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.kgraph.graph.mapper.SourceFileMapper">
+<mapper namespace="com.kgraph.support.mapper.SourceFileMapper">
     
     <resultMap type="SourceFile" id="SourceFileResult">
         <result property="id"    column="id"    />

+ 1 - 1
kgraph-graph/src/main/resources/mapper/graph/SubtaskMapper.xml → kgraph-graph/src/main/resources/mapper/support/SubtaskMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.kgraph.graph.mapper.SubtaskMapper">
+<mapper namespace="com.kgraph.support.mapper.SubtaskMapper">
     
     <resultMap type="Subtask" id="SubtaskResult">
         <result property="id"    column="id"    />

+ 1 - 1
kgraph-graph/src/main/resources/mapper/graph/TaskMapper.xml → kgraph-graph/src/main/resources/mapper/support/TaskMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.kgraph.graph.mapper.TaskMapper">
+<mapper namespace="com.kgraph.support.mapper.TaskMapper">
     
     <resultMap type="Task" id="TaskResult">
         <result property="id"    column="id"    />

+ 5 - 5
kgraph-ui/src/views/graph/subtask/index.vue

@@ -9,10 +9,10 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="源文件id" prop="subtaskName">
+      <el-form-item label="子任务名称" prop="subtaskName">
         <el-input
           v-model="queryParams.subtaskName"
-          placeholder="请输入源文件id"
+          placeholder="请输入子任务名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
@@ -129,7 +129,7 @@
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="id" align="center" prop="id" />
       <el-table-column label="任务id" align="center" prop="taskId" />
-      <el-table-column label="源文件id" align="center" prop="subtaskName" />
+      <el-table-column label="子任务名称" align="center" prop="subtaskName" />
       <el-table-column label="子任务名称" align="center" prop="subtaskType" />
       <el-table-column label="子任务状态" align="center" prop="taskStatus" />
       <el-table-column label="处理文件名称" align="center" prop="sourceFileName" />
@@ -182,8 +182,8 @@
         <el-form-item label="任务id" prop="taskId">
           <el-input v-model="form.taskId" placeholder="请输入任务id" />
         </el-form-item>
-        <el-form-item label="源文件id" prop="subtaskName">
-          <el-input v-model="form.subtaskName" placeholder="请输入源文件id" />
+        <el-form-item label="子任务名称" prop="subtaskName">
+          <el-input v-model="form.subtaskName" placeholder="请输入子任务名称" />
         </el-form-item>
         <el-form-item label="处理文件名称" prop="sourceFileName">
           <el-input v-model="form.sourceFileName" placeholder="请输入处理文件名称" />