From 364d990197f4f2e6c49b26a8b0e01b65b3f553ad Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期二, 28 二月 2023 14:14:41 +0800
Subject: [PATCH] bom反馈文件多选上传,压缩为单文件

---
 src/main/java/com/whyc/service/BOMFeedbakService.java |   47 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 30 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/whyc/service/BOMFeedbakService.java b/src/main/java/com/whyc/service/BOMFeedbakService.java
index 063e305..8ff8f6f 100644
--- a/src/main/java/com/whyc/service/BOMFeedbakService.java
+++ b/src/main/java/com/whyc/service/BOMFeedbakService.java
@@ -4,14 +4,13 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
-import com.whyc.constant.UserOperation;
 import com.whyc.dto.FileDirPath;
 import com.whyc.dto.Response;
+import com.whyc.dto.ZipUtils;
 import com.whyc.mapper.BOMFeedbakMapper;
 import com.whyc.mapper.DocUserMapper;
 import com.whyc.pojo.BOMFeedback;
 import com.whyc.pojo.DocUser;
-import com.whyc.pojo.Software;
 import com.whyc.util.ActionUtil;
 import com.whyc.util.CommonUtil;
 import com.whyc.util.MailUtil;
@@ -120,26 +119,40 @@
      * 2.闄勪欢瀛樺偍
      * 3.閭欢鍙戦��
      * @param feedback bom闂鍙嶉
-     * @param multipartFile
+     * @param multipartFileList
      * @return response
      */
-    public Response submitFeedback(BOMFeedback feedback, MultipartFile multipartFile) throws IOException, MessagingException {
+    public Response submitFeedback(BOMFeedback feedback, List<MultipartFile> multipartFileList) throws IOException, MessagingException {
         Date date = new Date();
-        if(multipartFile!=null){
-            //瀛樺偍鏂囦欢
-            String rootFile = CommonUtil.getRootFile();
-            long time = date.getTime();
-            String originalFilename = multipartFile.getOriginalFilename();
-            String fileName = originalFilename.substring(0, originalFilename.lastIndexOf("."));
-            String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
-            String feedbackPath = "feedback_bom" + File.separator + fileName + "_" + time + suffix;
-            File file = new File(rootFile + feedbackPath);
-            if (!file.exists()){
-                file.mkdirs();
+        //鍘嬬缉鍖呯殑璺緞鍙婃牸寮忎负: doc_file/feedback_bom/username_time.zip
+        String username = ActionUtil.getUser().getName();
+        long time = date.getTime();
+        String feedbackZipPath = "feedback_bom" + File.separator + username + "_" + time+".zip";
+        List<File> fileList = new LinkedList<>();
+        String rootFile = CommonUtil.getRootFile();
+        if(multipartFileList!=null && multipartFileList.size()!=0){
+            for (int i = 0; i < multipartFileList.size(); i++) {
+                MultipartFile multipartFile = multipartFileList.get(i);
+                //瀛樺偍鏂囦欢
+
+                String originalFilename = multipartFile.getOriginalFilename();
+                String fileName = originalFilename.substring(0, originalFilename.lastIndexOf("."));
+                String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
+                String feedbackPath = "feedback_bom" + File.separator + fileName + "_" + time + suffix;
+                File file = new File(rootFile + feedbackPath);
+                if (!file.exists()) {
+                    file.mkdirs();
+                }
+                multipartFile.transferTo(file);
+                fileList.add(file);
             }
-            multipartFile.transferTo(file);
-            feedback.setFile("doc_file"+File.separator+feedbackPath);
         }
+        ZipUtils.toZip(fileList,new FileOutputStream(new File(rootFile+feedbackZipPath)));
+        //鍒犻櫎宸茬粡琚帇缂╃殑鏂囦欢
+        for (File file : fileList) {
+            file.delete();
+        }
+        feedback.setFile("doc_file" + File.separator + feedbackZipPath);
         //淇濆瓨
         feedback.setCreateTime(date);
         feedback.setConfirmStatus(0);

--
Gitblit v1.9.1