From b12df20c37588aa4f41a448a5646ce9a42feb0b3 Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期四, 28 十一月 2024 19:11:55 +0800
Subject: [PATCH] 文件上传

---
 business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java              |   56 ++++++++++++++++--
 business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java                |    3 +
 common/src/main/java/com/ycl/common/enums/business/FileTypeEnum.java                  |    5 +
 business/src/main/java/com/ycl/domain/vo/ProjectProgressFileListsRequest.java         |   17 +++++
 business/src/main/java/com/ycl/service/ProgressPlanService.java                       |    9 +++
 business/src/main/java/com/ycl/controller/ProgressPlanController.java                 |    9 +++
 start/src/main/resources/application.yml                                              |    2 
 business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java |   25 ++++++++
 8 files changed, 117 insertions(+), 9 deletions(-)

diff --git a/business/src/main/java/com/ycl/controller/ProgressPlanController.java b/business/src/main/java/com/ycl/controller/ProgressPlanController.java
index ef2147b..96a0043 100644
--- a/business/src/main/java/com/ycl/controller/ProgressPlanController.java
+++ b/business/src/main/java/com/ycl/controller/ProgressPlanController.java
@@ -6,6 +6,8 @@
 import com.ycl.common.group.Update;
 import com.ycl.domain.form.ProgressPlanForm;
 import com.ycl.domain.query.ProgressPlanQuery;
+import com.ycl.domain.vo.ProjectProgressFileListsRequest;
+import com.ycl.mapper.FileMapper;
 import com.ycl.service.ProgressPlanService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -31,6 +33,7 @@
 public class ProgressPlanController {
 
     private final ProgressPlanService progressPlanService;
+    private final FileMapper fileMapper;
 
     @PostMapping
     @ApiOperation(value = "娣诲姞", notes = "娣诲姞")
@@ -80,4 +83,10 @@
     public Result list() {
         return progressPlanService.all();
     }
+
+    @PostMapping("/saveProjectProgressFileLists")
+    public Result saveProjectProgressFileLists(@RequestBody ProjectProgressFileListsRequest request) {
+        return progressPlanService.saveProjectProgressFileLists(request);
+    }
+
 }
diff --git a/business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java b/business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java
index 0ab14d6..dfa3ff4 100644
--- a/business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java
+++ b/business/src/main/java/com/ycl/domain/vo/ProgressReportResponseVO.java
@@ -1,12 +1,14 @@
 package com.ycl.domain.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ycl.domain.entity.File;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 @Data
 @AllArgsConstructor
@@ -33,5 +35,6 @@
     private Integer manageExamine;
     private String manageApproval;
     private String manageApprovalReply;
+    private List<File> fileList;
 
 }
diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectProgressFileListsRequest.java b/business/src/main/java/com/ycl/domain/vo/ProjectProgressFileListsRequest.java
new file mode 100644
index 0000000..5681e83
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/vo/ProjectProgressFileListsRequest.java
@@ -0,0 +1,17 @@
+package com.ycl.domain.vo;
+
+import com.ycl.domain.entity.File;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ProjectProgressFileListsRequest {
+    private Integer projectInfoId;
+    private List<File> completedReportFileList;
+    private List<File> situationDescriptionFileList;
+}
diff --git a/business/src/main/java/com/ycl/service/ProgressPlanService.java b/business/src/main/java/com/ycl/service/ProgressPlanService.java
index 2b0b005..0fcdb6c 100644
--- a/business/src/main/java/com/ycl/service/ProgressPlanService.java
+++ b/business/src/main/java/com/ycl/service/ProgressPlanService.java
@@ -5,6 +5,8 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ycl.domain.form.ProgressPlanForm;
 import com.ycl.domain.query.ProgressPlanQuery;
+import com.ycl.domain.vo.ProjectProgressFileListsRequest;
+
 import java.util.List;
 
 /**
@@ -62,4 +64,11 @@
      * @return
      */
     Result all();
+
+    /**
+     * 淇濆瓨绔e伐鎶ュ憡銆佹儏鍐佃鏄庨檮浠�
+     * @param request
+     * @return
+     */
+    Result saveProjectProgressFileLists(ProjectProgressFileListsRequest request);
 }
diff --git a/business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java
index e18139b..5b1ce4b 100644
--- a/business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProgressPlanServiceImpl.java
@@ -2,27 +2,28 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ycl.common.base.Result;
-import com.ycl.domain.entity.ProgressPlan;
-import com.ycl.domain.entity.ProjectPlanInfo;
-import com.ycl.domain.entity.ProjectPlanRecord;
+import com.ycl.common.enums.business.FileTypeEnum;
+import com.ycl.domain.entity.*;
 import com.ycl.domain.form.ProgressPlanForm;
 import com.ycl.domain.query.ProgressPlanQuery;
 import com.ycl.domain.vo.ProgressPlanInfoFlag;
 import com.ycl.domain.vo.ProgressPlanInfoResponseVO;
 import com.ycl.domain.vo.ProgressPlanVO;
+import com.ycl.domain.vo.ProjectProgressFileListsRequest;
 import com.ycl.framework.utils.PageUtil;
-import com.ycl.mapper.ProgressPlanMapper;
-import com.ycl.mapper.ProjectPlanInfoMapper;
-import com.ycl.mapper.ProjectPlanRecordMapper;
+import com.ycl.mapper.*;
 import com.ycl.service.ProgressPlanService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -39,6 +40,8 @@
     private final ProgressPlanMapper progressPlanMapper;
     private final ProjectPlanRecordMapper projectPlanRecordMapper;
     private final ProjectPlanInfoMapper projectPlanInfoMapper;
+    private final PlanMapper planMapper;
+    private final FileMapper fileMapper;
 
     /**
      * 娣诲姞
@@ -187,4 +190,45 @@
                 .collect(Collectors.toList());
         return Result.ok().data(vos);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result saveProjectProgressFileLists(ProjectProgressFileListsRequest request) {
+        // 鍒ゆ柇鏄惁瀛樺湪闄勪欢
+        if(request.getSituationDescriptionFileList() != null && !request.getSituationDescriptionFileList().isEmpty()){
+            new LambdaUpdateChainWrapper<>(fileMapper)
+                    .eq(File::getBusId, request.getProjectInfoId())
+                    .eq(File::getType, FileTypeEnum.PROJECT_SITUATION_DESCRIPTION.getType())
+                    .set(File::getDeleted,1)
+                    .update();
+
+            request.getSituationDescriptionFileList().stream()
+                    .forEach(file -> {
+                        file.setBusId(request.getProjectInfoId().longValue());
+                        file.setType(FileTypeEnum.PROJECT_SITUATION_DESCRIPTION);
+                        file.setGmtCreate(new Date());
+                        file.setGmtUpdate(new Date());
+                        file.setDeleted(0);
+                        fileMapper.insert(file);
+                    });
+        }
+        if(request.getCompletedReportFileList() != null && !request.getCompletedReportFileList().isEmpty()){
+            new LambdaUpdateChainWrapper<>(fileMapper)
+                    .eq(File::getBusId, request.getProjectInfoId())
+                    .eq(File::getType, FileTypeEnum.PROJECT_COMPLETE_REPORT.getType())
+                    .set(File::getDeleted,1)
+                    .update();
+
+            request.getCompletedReportFileList().stream()
+                    .forEach(file -> {
+                        file.setBusId(request.getProjectInfoId().longValue());
+                        file.setType(FileTypeEnum.PROJECT_COMPLETE_REPORT);
+                        file.setGmtCreate(new Date());
+                        file.setGmtUpdate(new Date());
+                        file.setDeleted(0);
+                        fileMapper.insert(file);
+                    });
+        }
+        return Result.ok("淇濆瓨鎴愬姛");
+    }
 }
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java
index 5d53406..7f84aab 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectPlanProgressReportServiceImpl.java
@@ -3,11 +3,14 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 import com.ycl.common.base.Result;
+import com.ycl.common.enums.business.FileTypeEnum;
+import com.ycl.domain.entity.File;
 import com.ycl.domain.entity.ProjectPlanExamineRecord;
 import com.ycl.domain.entity.ProjectPlanInfo;
 import com.ycl.domain.entity.ProjectPlanProgressReport;
 import com.ycl.domain.vo.ProgressReportResponseVO;
 import com.ycl.framework.utils.PageUtil;
+import com.ycl.mapper.FileMapper;
 import com.ycl.mapper.ProjectPlanExamineRecordMapper;
 import com.ycl.mapper.ProjectPlanInfoMapper;
 import com.ycl.mapper.ProjectPlanProgressReportMapper;
@@ -24,6 +27,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
 
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -42,6 +46,8 @@
     private final ProjectPlanExamineRecordMapper projectPlanExamineRecordMapper;
     @Autowired
     private ProjectPlanInfoMapper projectPlanInfoMapper;
+    @Autowired
+    private FileMapper fileMapper;
 
     /**
      * 娣诲姞
@@ -51,7 +57,6 @@
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Result add(ProgressReportResponseVO form) {
-
         ProjectPlanProgressReport projectPlanProgressReport = new ProjectPlanProgressReport();
         projectPlanProgressReport.setProjectPlanInfoId(form.getId().longValue());
         projectPlanProgressReport.setStartTime(form.getActualStartTime());
@@ -66,6 +71,24 @@
             baseMapper.updateById(projectPlanProgressReport);
         }
 
+        // 鏂囦欢涓婁紶
+        new LambdaUpdateChainWrapper<>(fileMapper)
+                .eq(File::getBusId, form.getId())
+                .eq(File::getType, FileTypeEnum.PROJECT_PROGRESS_INFO_REPORT.getType())
+                .set(File::getDeleted,1)
+                .update();
+        if (form.getFileList() != null && form.getFileList().size() > 0) {
+            form.getFileList().stream()
+                    .forEach(file -> {
+                        file.setBusId(form.getId().longValue());
+                        file.setType(FileTypeEnum.PROJECT_PROGRESS_INFO_REPORT);
+                        file.setGmtCreate(new Date());
+                        file.setGmtUpdate(new Date());
+                        file.setDeleted(0);
+                        fileMapper.insert(file);
+                    });
+        }
+
         // 鏇存柊涓婄骇鎵瑰
         new LambdaUpdateChainWrapper<>(projectPlanExamineRecordMapper)
                 .eq(ProjectPlanExamineRecord::getId, form.getExamineRecordId())
diff --git a/common/src/main/java/com/ycl/common/enums/business/FileTypeEnum.java b/common/src/main/java/com/ycl/common/enums/business/FileTypeEnum.java
index f2c0231..771c5df 100644
--- a/common/src/main/java/com/ycl/common/enums/business/FileTypeEnum.java
+++ b/common/src/main/java/com/ycl/common/enums/business/FileTypeEnum.java
@@ -12,7 +12,10 @@
  */
 @Getter
 public enum FileTypeEnum {
-    PROJECT_INFO("project_info", "椤圭洰鍩烘湰淇℃伅");
+    PROJECT_INFO("project_info", "椤圭洰鍩烘湰淇℃伅"),
+    PROJECT_COMPLETE_REPORT("project_complete_report", "椤圭洰绔e伐鎶ュ憡"),
+    PROJECT_SITUATION_DESCRIPTION("project_situation_description", "椤圭洰鎯呭喌璇存槑"),
+    PROJECT_PROGRESS_INFO_REPORT("project_progress_info_report", "椤圭洰杩涘害璁″垝椤逛笂鎶�");
 
     @EnumValue // 鏍囨槑璇ュ瓧娈靛瓨鍏ユ暟鎹簱
     private final String type;
diff --git a/start/src/main/resources/application.yml b/start/src/main/resources/application.yml
index 841764e..2156745 100644
--- a/start/src/main/resources/application.yml
+++ b/start/src/main/resources/application.yml
@@ -71,7 +71,7 @@
   devtools:
     restart:
       # 鐑儴缃插紑鍏�
-      enabled: true
+      enabled: false
 
 # token閰嶇疆
 token:

--
Gitblit v1.8.0