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