Explorar o código

任务文件上传

785834757 %!s(int64=2) %!d(string=hai) anos
pai
achega
042e30174a

+ 28 - 0
src/main/java/com/ydtech/modules/task/constants/ProjectType.java

@@ -0,0 +1,28 @@
+package com.ydtech.modules.task.constants;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 项目类型
+ */
+@Getter
+@AllArgsConstructor
+public enum ProjectType {
+
+    PROJECT_STATUS_1(1, "产品型项目"),
+    PROJECT_STATUS_2(2, "项目型项目");
+
+    private int code;
+    private String desc;
+
+    public static ProjectType getByCode(int code){
+        for (ProjectType taskFirst : ProjectType.values()) {
+            if (taskFirst.getCode() == code) {
+                return taskFirst;
+            }
+        }
+        return null;
+    }
+
+}

+ 65 - 0
src/main/java/com/ydtech/modules/task/controller/TaskFileController.java

@@ -0,0 +1,65 @@
+package com.ydtech.modules.task.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.task.entity.po.TaskFile;
+import com.ydtech.modules.task.service.TaskFileService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+@Api(tags = "任务文件controller")
+@RestController
+@RequestMapping("/task/file")
+public class TaskFileController {
+
+    @Value("${upload.file.path}")
+    private String uploadPath;
+
+    private String taskPath = "/task/";
+
+    @Autowired
+    private TaskFileService taskFileService;
+
+
+    @PostMapping("/upload")
+    public HttpResult<Object> upload(@RequestParam("file") MultipartFile file,@RequestParam("taskId") String taskId){
+        if(file.isEmpty()){
+            return HttpResult.error("文件为空,请重新上传");
+        }
+        taskId = taskId.replaceAll(",","");
+
+        try{
+            String fileName = file.getOriginalFilename();
+            String[] split = file.getOriginalFilename().split("\\.");
+            String fileType = split[split.length-1];
+            // 获取文件的字节
+            byte[] bytes = file.getBytes();
+            // 指定文件保存路径,这里假设保存在项目的uploads目录下
+            String destinationFilePath = uploadPath + taskPath + fileName;
+
+            // 保存文件到服务器的逻辑,例如使用java.nio.file包的Files类
+            File dir = new File(uploadPath + taskPath);
+            if (!dir.exists()) {
+                dir.mkdirs();
+            }
+            file.transferTo(new File(destinationFilePath));
+            TaskFile taskFile = new TaskFile(taskId,fileName,fileType,destinationFilePath);
+            taskFileService.save(taskFile);
+        }catch (Exception e){
+            e.printStackTrace();
+            return HttpResult.error("文件上传失败");
+        }
+        return HttpResult.ok("");
+    }
+}

+ 17 - 0
src/main/java/com/ydtech/modules/task/entity/po/TaskFile.java

@@ -3,10 +3,15 @@ package com.ydtech.modules.task.entity.po;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.ydtech.utils.idgen.IdGenerate;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
+
 @TableName(value = "task_file")
 @Data
 @ApiModel("任务上传文件")
@@ -34,4 +39,16 @@ public class TaskFile {
     @TableField(value = "create_time")
     @ApiModelProperty(value = "创建时间")
     private String createTime;
+
+    public TaskFile() {
+    }
+
+    public TaskFile(String taskId, String fileName, String fileType, String fileUrl) {
+        this.id = IdGenerate.nextId();
+        this.taskId = taskId;
+        this.fileName = fileName;
+        this.fileType = fileType;
+        this.fileUrl = fileUrl;
+        this.createTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+    }
 }