hongchuangyanfa 2 anni fa
parent
commit
9dae3f5c92

+ 27 - 0
blade-common/src/main/java/org/springblade/common/utils/FileUtils.java

@@ -1,10 +1,16 @@
 package org.springblade.common.utils;
 
+import lombok.SneakyThrows;
+import org.springblade.common.vo.FileSize;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Objects;
 
 public class FileUtils  {
@@ -31,4 +37,25 @@ public class FileUtils  {
         return convertFile;
     }
 
+    //获取文件大小
+    public static List<FileSize> getOssFileSize(List<String> fileList){
+        List<FileSize> reData =new ArrayList<>();
+        if(fileList!=null){
+            for(String fileUrl:fileList){
+                FileSize file =new FileSize();
+                file.setFileUrl(fileUrl);
+                try {
+                    URLConnection  openConnection = new URL(fileUrl).openConnection();
+                    int contentLength = openConnection.getContentLength();
+                    Double fileLength = Double.parseDouble(contentLength+"");
+                    file.setFileSize(Math.ceil(fileLength/1024));
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+                reData.add(file);
+            }
+        }
+        return  reData;
+    }
+
 }

+ 11 - 0
blade-common/src/main/java/org/springblade/common/vo/FileSize.java

@@ -0,0 +1,11 @@
+package org.springblade.common.vo;
+
+import lombok.Data;
+
+@Data
+public class FileSize {
+
+    private String fileUrl;
+
+    private double fileSize;
+}

+ 1 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ExcelEditCallback.java

@@ -15,7 +15,7 @@ public class ExcelEditCallback {
     private Integer status;
 
     // excel 的唯一标识
-    private Long key;
+    private String key;
 
     // 返回码
     private Integer error;

+ 1 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/utils/FileUtils.java

@@ -555,7 +555,7 @@ public class FileUtils {
 
     }
 
-    public static void main(String[] args) {
+    public static void main123(String[] args) {
         String  file1 = "https://huazheng2021002.oss-cn-shenzhen.aliyuncs.com/folderFile/54e8a314de8a493d9f08a9d3cf7c/104850dea8ca485cbda677c11f0d0e6c/安康至来凤国家高速公路奉节至巫山(渝鄂界)段K13+690~K19+385ZB1合同段开工令-20230415064429.pdf";
         String  file2 = "https://huazheng2021002.oss-cn-shenzhen.aliyuncs.com/folderFile/54e8a314de8a493d9f08a9d3cf7c/f596dc71c3264977a2cc2b8e5d348b38/1-20230415063812.pdf";
         List<String> urls  = new ArrayList<>();

+ 20 - 6
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -68,6 +68,7 @@ import org.springframework.transaction.support.DefaultTransactionDefinition;
 
 import java.io.*;
 import java.net.URL;
+import java.nio.charset.StandardCharsets;
 import java.text.SimpleDateFormat;
 import java.util.List;
 import java.util.*;
@@ -516,28 +517,41 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             try {
                 //获取onlyOffice缓存中的文件流
                 URL url = new URL(downloadUri);
+                String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
+                String filecode = SnowFlakeUtil.getId() + "";
+                String dataUrl=file_path + "/excel/" + filecode + ".pdf";
                 java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url.openConnection();
+                connection.setRequestMethod("GET");
+                connection.setConnectTimeout(5 * 1000);
                 InputStream inputStream = connection.getInputStream();
                 if (inputStream == null) {
                     throw new Exception("文件为空");
                 }
-                Long tabId = callback.getKey();
+                String tabId = callback.getKey();
                 if (tabId == null) {
                     throw new Exception("excel为空");
+                }else{
+                    tabId = tabId.substring(0,tabId.lastIndexOf("_"));
                 }
                 //获取数据库信息
-                ExcelTab excelTab = baseMapper.selectById(tabId);
+                ExcelTab excelTab = baseMapper.selectById(Long.parseLong(tabId));
                 //上传新文件到文件服务器
                 byte[] officeByte = IoUtil.readToByteArray(inputStream);
-                BladeFile bladeFile = this.newIOSSClient.updateFile(officeByte, excelTab.getExtension());
-                //修改本地数据信息
-                excelTab.setFileUrl(bladeFile.getLink());
+
+                FileOutputStream fs = new FileOutputStream(dataUrl);
+                fs.write(officeByte);
+                fs.flush();
+                BladeFile bladeFile = newIOSSClient.uploadFile(excelTab.getExtension(), dataUrl);
                 //获取文件大小
                 int size = connection.getContentLength() / 1024 / 1024; //单位M
                 excelTab.setAttachSize(Long.parseLong(size + ""));
                 excelTab.setStatus(3);
+                excelTab.setFileUrl(bladeFile.getLink());
                 baseMapper.updateById(excelTab);
-                connection.disconnect();
+                File file = new File(dataUrl);
+                if(file.exists()){
+                    file.delete();
+                }
                 System.out.println("123456");
             } catch (Exception e) {
                 editCallback.setError(1);