lichaoliu 4 年 前
コミット
aeea30d893

BIN
dowload/template/里程碑导入模板.xlsx


+ 11 - 3
src/main/java/com/migao/controller/MilestoneController.java

@@ -78,12 +78,13 @@ public class MilestoneController {
 
 
     @ApiOperationSupport(order = 5)
-    @ApiOperation("导入")
+    @ApiOperation("导入并关联项目")
     @PostMapping(value = "/importData")
     public ResponseBean<?> importData(
-            @RequestParam("fileId") Integer fileId
+            @ApiParam("文件id")  @RequestParam Integer fileId,
+           @ApiParam("项目id")  @RequestParam Integer projectId
     ) {
-        return milestoneService.importData(fileId);
+        return milestoneService.importData(fileId,projectId);
     }
 
     @ApiOperationSupport(order = 5)
@@ -94,4 +95,11 @@ public class MilestoneController {
     ) {
         return milestoneService.export(milestonePageQueryReq);
     }
+
+    @ApiOperationSupport(order = 6)
+    @ApiOperation("里程碑模板下载")
+    @PostMapping(value = "/template")
+    public ResponseBean<?> template() {
+        return milestoneService.template();
+    }
 }

+ 1 - 1
src/main/java/com/migao/entity/vo/req/ImportMilestoneReq.java

@@ -24,7 +24,7 @@ import java.time.LocalDateTime;
 public class ImportMilestoneReq {
 
     @ExcelProperty(index = 0)
-    @ApiModelProperty(value = "名称")
+    @ApiModelProperty(value = "里程碑名称")
     @NotEmpty(message = "名称不能为空")
     private String name;
 

+ 6 - 3
src/main/java/com/migao/entity/vo/res/MilestoneQueryRes.java

@@ -2,11 +2,14 @@ package com.migao.entity.vo.res;
 
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.migao.util.LocalDateTimeConverter;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import io.swagger.annotations.ApiModelProperty;
+import org.springframework.data.jpa.convert.threeten.Jsr310JpaConverters;
+
 import java.time.LocalDateTime;
 
 /**
@@ -28,7 +31,7 @@ public class MilestoneQueryRes {
     @ApiModelProperty(value = "里程碑名称")
     private String name;
 
-    @ExcelProperty("项目id")
+    @ExcelIgnore
     @ApiModelProperty(value = "项目id")
     private Integer projectId;
 
@@ -48,11 +51,11 @@ public class MilestoneQueryRes {
     @ApiModelProperty(value = "提交人")
     private String username;
 
-    @ExcelProperty("创建时间")
+    @ExcelProperty(value = "创建时间",converter = LocalDateTimeConverter.class)
     @ApiModelProperty(value = "创建时间")
     private LocalDateTime createTime;
 
-    @ExcelProperty("结束时间")
+    @ExcelProperty(value = "结束时间",converter = LocalDateTimeConverter.class)
     @ApiModelProperty(value = "结束时间")
     private LocalDateTime endTime;
 

+ 3 - 1
src/main/java/com/migao/service/MilestoneService.java

@@ -26,11 +26,13 @@ public interface MilestoneService{
 
     ResponseBean<PageBean<MilestoneQueryRes>> pageQuery(MilestonePageQueryReq milestonePageQueryReq);
 
-    ResponseBean<?> importData(Integer fileId);
+    ResponseBean<?> importData(Integer fileId,Integer projectId);
 
     ResponseBean<?> export(MilestonePageQueryReq milestonePageQueryReq);
 
     ResponseBean<ProjectQueryRes> findById(Integer id);
 
     ResponseBean<List<MilestoneQueryRes>> selectMilestone(Integer id);
+
+    ResponseBean<?> template();
 }

+ 16 - 1
src/main/java/com/migao/service/impl/MilestoneServiceImpl.java

@@ -121,7 +121,7 @@ public class MilestoneServiceImpl implements MilestoneService {
     }
 
     @Override
-    public ResponseBean<?> importData(Integer fileId) {
+    public ResponseBean<?> importData(Integer fileId,Integer projectId) {
         List<ImportMilestoneReq> list = new ArrayList<>();
         Optional<FileInfo> byId = fileInfoRepository.findById(fileId);
         byId.ifPresent(
@@ -137,6 +137,12 @@ public class MilestoneServiceImpl implements MilestoneService {
         list.forEach(
                 data->{
                     Milestone milestone = EntityUtils.copyProperties(data, Milestone.class);
+
+                    //绑定到项目
+                    Project project = projectMapper.selectById(projectId);
+                    if (project!=null){
+                        milestone.setProjectId(project.getId());
+                    }
                     milestone.setDeleted(0);
                     milestoneMapper.insert(milestone);
 
@@ -186,6 +192,15 @@ public class MilestoneServiceImpl implements MilestoneService {
         return ResponseBuilder.ok(list);
     }
 
+    @Override
+    public ResponseBean<?> template() {
+        String filePath = StringUtils.join(
+                systemProperties.getDownloadPrefix() +
+                        systemProperties.getFileTemplateDir() + "/里程碑导入模板.xlsx"
+        );
+        return ResponseBuilder.ok(filePath);
+    }
+
     /**
      * 删
      *

+ 2 - 2
src/main/resources/application.yml

@@ -1,7 +1,6 @@
 spring:
   profiles:
-    active: ma
-
+    active: dev
   servlet:
     multipart:
       max-file-size: 10240MB
@@ -48,6 +47,7 @@ com:
       file-store-dir: dowload
       file-temp-dir: temp
       file-zip-dir: zip
+      file-template-dir: template
       server-info:
         - server-name: master
           server-address: 127.0.0.1:${server.port}