Browse Source

质检附件上传排序

cr 1 month ago
parent
commit
4b06674556

+ 5 - 4
blade-ops-api/blade-resource-api/src/main/java/org/springblade/resource/feign/CommonFileClient.java

@@ -6,23 +6,24 @@ import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
 import org.springframework.web.multipart.MultipartFile;
 
 @FeignClient(
-        value = AppConstant.APPLICATION_RESOURCE_NAME
+        value = AppConstant.APPLICATION_RESOURCE_NAME,configuration = FeignConfig.class
 )
 public interface CommonFileClient {
 
     String API_PREFIX = "/CommonFileApi";
 
     @PostMapping(value = API_PREFIX + "/pngOrJpgToPdf", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
-    NewBladeFile pngOrJpgToPdf(MultipartFile file);
+    NewBladeFile pngOrJpgToPdf(@RequestPart("file")MultipartFile file);
 
     @PostMapping(value = API_PREFIX + "/wordToPdf", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
-    NewBladeFile wordToPdf(MultipartFile file);
+    NewBladeFile wordToPdf(@RequestPart("file")MultipartFile file);
 
     @PostMapping(value = API_PREFIX + "/excelToPdf", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
-    NewBladeFile excelToPdf(MultipartFile file);
+    NewBladeFile excelToPdf(@RequestPart("file")MultipartFile file);
 
     @PostMapping(value = API_PREFIX + "/getPdfNum")
     String getPdfNum(@RequestParam("url") String url);

+ 14 - 0
blade-ops-api/blade-resource-api/src/main/java/org/springblade/resource/feign/FeignConfig.java

@@ -0,0 +1,14 @@
+package org.springblade.resource.feign;
+
+import feign.codec.Encoder;
+import feign.form.spring.SpringFormEncoder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class FeignConfig {
+    @Bean
+    public Encoder feignFormEncoder() {
+        return new SpringFormEncoder();
+    }
+}

+ 10 - 0
blade-ops/blade-resource/pom.xml

@@ -149,6 +149,16 @@
             <groupId>org.springblade</groupId>
             <artifactId>blade-starter-oss</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.github.openfeign.form</groupId>
+            <artifactId>feign-form</artifactId>
+            <version>3.8.0</version>
+        </dependency>
+        <dependency>
+            <groupId>io.github.openfeign.form</groupId>
+            <artifactId>feign-form-spring</artifactId>
+            <version>3.8.0</version>
+        </dependency>
     </dependencies>
 
 

+ 5 - 4
blade-ops/blade-resource/src/main/java/org/springblade/resource/feign/CommonFileClientImpl.java

@@ -4,7 +4,6 @@ import com.aspose.cells.SaveFormat;
 import com.aspose.words.DocumentBuilder;
 import com.itextpdf.text.Image;
 import com.itextpdf.text.Rectangle;
-import com.itextpdf.text.Utilities;
 import com.itextpdf.text.pdf.PdfWriter;
 import lombok.AllArgsConstructor;
 import org.apache.pdfbox.pdmodel.PDDocument;
@@ -16,6 +15,7 @@ import org.springblade.core.tool.utils.FileUtil;
 import org.springblade.core.tool.utils.IoUtil;
 import org.springblade.resource.builder.oss.OssBuilder;
 import org.springblade.resource.vo.NewBladeFile;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -33,11 +33,12 @@ public class CommonFileClientImpl implements CommonFileClient {
      */
     private final OssBuilder ossBuilder;
 
+
     /**
      * png 和 jpg 转 pdf
      */
     @Override
-    public NewBladeFile pngOrJpgToPdf(MultipartFile file) {
+    public NewBladeFile pngOrJpgToPdf(@RequestParam("file")MultipartFile file) {
         String pdfFileUrl = "";
         InputStream pdfInput = null;
         try {
@@ -103,7 +104,7 @@ public class CommonFileClientImpl implements CommonFileClient {
      * word 转 pdf
      */
     @Override
-    public NewBladeFile wordToPdf(MultipartFile file) {
+    public NewBladeFile wordToPdf(@RequestParam("file")MultipartFile file) {
         String pdfFileUrl = "";
         int page = 0;
         InputStream pdfInput = null;
@@ -149,7 +150,7 @@ public class CommonFileClientImpl implements CommonFileClient {
      * excel 转 pdf
      */
     @Override
-    public NewBladeFile excelToPdf(MultipartFile file) {
+    public NewBladeFile excelToPdf(@RequestParam("file") MultipartFile file) {
         String pdfFileUrl = "";
         int page = 0;
         org.apache.poi.ss.usermodel.Workbook ss = null;

+ 69 - 13
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -19,6 +19,8 @@ import com.spire.xls.collections.PicturesCollection;
 import com.spire.xls.core.spreadsheet.HTMLOptions;
 import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
 import lombok.SneakyThrows;
 import org.apache.commons.codec.Charsets;
 import org.apache.commons.io.IOUtils;
@@ -1726,15 +1728,15 @@ public class ExcelTabController extends BladeController {
             @ApiImplicitParam(name = "classify", value = "classify", required = true),
             @ApiImplicitParam(name = "projectId", value = "projectId", required = true)
     })
-    public R addBussFile(@RequestParam("files") MultipartFile[] files, Long pkeyId, String nodeId, String contractId, String projectId, String classify) {
+    public R addBussFile(@RequestParam("file") MultipartFile[] file, Long pkeyId, String nodeId, String contractId, String projectId, String classify) {
         List<TableFile>list=new ArrayList<>();
-        for (int i = 0; i < files.length; i++) {
-            R<BladeFile> bladeFile = iossClient.addFileInfo(files[i]);
+        for (int i = 0; i < file.length; i++) {
+            R<BladeFile> bladeFile = iossClient.addFileInfo(file[i]);
             BladeFile bladeFile1 = bladeFile.getData();
             TableFile tableFile = new TableFile();
             String fileExtension = FileUtil.getFileExtension(bladeFile1.getName()).toLowerCase();
             tableFile.setTabId(pkeyId + "");
-            tableFile.setName(files[i].getOriginalFilename());
+            tableFile.setName(file[i].getOriginalFilename());
             tableFile.setType(2);
             tableFile.setDomainUrl(bladeFile1.getLink());
             tableFile.setIsDeleted(0);
@@ -1742,17 +1744,17 @@ public class ExcelTabController extends BladeController {
 
             NewBladeFile newBladeFile = new NewBladeFile();
             if (fileExtension.contains("xlsx")) {
-                newBladeFile = this.commonFileClient.excelToPdf(files[i]);
+                newBladeFile = this.commonFileClient.excelToPdf(file[i]);
                 tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
             } else if (fileExtension.contains("xls")) {
-                newBladeFile = this.commonFileClient.excelToPdf(files[i]);
+                newBladeFile = this.commonFileClient.excelToPdf(file[i]);
                 tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
             } else if (fileExtension.contains("docx")) {
-                newBladeFile = this.commonFileClient.wordToPdf(files[i]);
+                newBladeFile = this.commonFileClient.wordToPdf(file[i]);
                 tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
             } else if (fileExtension.contains("png") || fileExtension.contains("jpg") || fileExtension.contains("webp") || fileExtension.contains("apng") ||
                     fileExtension.contains("bmp") || fileExtension.contains("jepg") || fileExtension.contains("tif") || fileExtension.contains("gif")) {
-                newBladeFile = this.commonFileClient.pngOrJpgToPdf(files[i]);
+                newBladeFile = this.commonFileClient.pngOrJpgToPdf(file[i]);
                 tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
             } else if (fileExtension.contains("pdf")) {
                 tableFile.setDomainPdfUrl(bladeFile1.getLink());
@@ -4406,6 +4408,43 @@ public class ExcelTabController extends BladeController {
 
 
     }
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class BussfileDTO{
+        private String name;
+        private String pdfUrl;
+    }
+    @PostMapping("/previewBussfile")
+    public R<List<BussfileDTO>> previewBussfile(@RequestPart("files")MultipartFile[] files){
+        List<BussfileDTO>list=new ArrayList<>();
+        for (int i = 0; i < files.length; i++){
+            BussfileDTO dto = new BussfileDTO();
+            R<BladeFile> bladeFile = iossClient.addFileInfo(files[i]);
+            BladeFile bladeFile1 = bladeFile.getData();
+            String fileExtension = FileUtil.getFileExtension(bladeFile1.getName()).toLowerCase();
+            NewBladeFile newBladeFile = new NewBladeFile();
+            if (fileExtension.contains("xlsx")) {
+                newBladeFile = this.commonFileClient.excelToPdf(files[i]);
+                dto.setPdfUrl(newBladeFile.getPdfUrl());
+            } else if (fileExtension.contains("xls")) {
+                newBladeFile = this.commonFileClient.excelToPdf(files[i]);
+                dto.setPdfUrl(newBladeFile.getPdfUrl());
+            } else if (fileExtension.contains("docx")) {
+                newBladeFile = this.commonFileClient.wordToPdf(files[i]);
+                dto.setPdfUrl(newBladeFile.getPdfUrl());
+            } else if (fileExtension.contains("png") || fileExtension.contains("jpg") || fileExtension.contains("webp") || fileExtension.contains("apng") ||
+                    fileExtension.contains("bmp") || fileExtension.contains("jepg") || fileExtension.contains("tif") || fileExtension.contains("gif")) {
+                newBladeFile = this.commonFileClient.pngOrJpgToPdf(files[i]);
+                dto.setPdfUrl(newBladeFile.getPdfUrl());
+            } else if (fileExtension.contains("pdf")) {
+                dto.setPdfUrl(bladeFile1.getLink());
+            }
+            dto.setName(files[i].getOriginalFilename());
+            list.add(dto);
+        }
+        return R.data(list);
+    }
 
     /**
      * 质检附件追加
@@ -4421,12 +4460,12 @@ public class ExcelTabController extends BladeController {
             @ApiImplicitParam(name = "nodeId", value = "nodeId", required = true),
 
     })
-    public R addBussFile(Integer classify,Long contractId,@RequestParam("files") MultipartFile[] files, String nodeId, Integer type,BladeUser b) {
+    public R addBussFile(Integer classify,Long contractId,@RequestParam("file") MultipartFile[] file, String nodeId, Integer type,BladeUser b) {
         List<TableFile> fileList = new ArrayList<>();
-        if (files != null && files.length >= 1) {
-            for (int i = 0; i < files.length; i++) {
+        if (file != null && file.length >= 1) {
+            for (int i = 0; i < file.length; i++) {
 
-                R<BladeFile> bladeFile = iossClient.addFileInfo(files[i]);
+                R<BladeFile> bladeFile = iossClient.addFileInfo(file[i]);
                 BladeFile bladeFile1 = bladeFile.getData();
 
                 TableFile tableFile = new TableFile();
@@ -4434,7 +4473,7 @@ public class ExcelTabController extends BladeController {
                 String fileExtension = FileUtil.getFileExtension(bladeFile1.getName()).toLowerCase();
                 tableFile.setTabId(nodeId + "");
                 tableFile.setContractId(contractId);
-                tableFile.setName(files[i].getOriginalFilename());
+                tableFile.setName(file[i].getOriginalFilename());
                 tableFile.setType(type); //10 代表附件
                 if (type == 10 || type == 11 || type == 12 || type == 20 || type == 21 || type == 22) {
                     tableFile.setDomainPdfUrl(bladeFile1.getLink());
@@ -4444,6 +4483,23 @@ public class ExcelTabController extends BladeController {
                 tableFile.setExtension(fileExtension);
                 tableFile.setClassify(classify);
                 fileList.add(tableFile);
+                NewBladeFile newBladeFile = new NewBladeFile();
+                if (fileExtension.contains("xlsx")) {
+                    newBladeFile = this.commonFileClient.excelToPdf(file[i]);
+                    tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
+                } else if (fileExtension.contains("xls")) {
+                    newBladeFile = this.commonFileClient.excelToPdf(file[i]);
+                    tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
+                } else if (fileExtension.contains("docx")) {
+                    newBladeFile = this.commonFileClient.wordToPdf(file[i]);
+                    tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
+                } else if (fileExtension.contains("png") || fileExtension.contains("jpg") || fileExtension.contains("webp") || fileExtension.contains("apng") ||
+                        fileExtension.contains("bmp") || fileExtension.contains("jepg") || fileExtension.contains("tif") || fileExtension.contains("gif")) {
+                    newBladeFile = this.commonFileClient.pngOrJpgToPdf(file[i]);
+                    tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
+                } else if (fileExtension.contains("pdf")) {
+                    tableFile.setDomainPdfUrl(bladeFile1.getLink());
+                }
             }
             tableFileService.saveOrUpdateBatch(fileList);
             String file_path = FileUtils.getSysLocalFileUrl();