Răsfoiți Sursa

Merge branch 'test' of licailing/wenlvju into master

licailing 4 ani în urmă
părinte
comite
1f03d00527

+ 17 - 19
src/main/java/com/izouma/wenlvju/service/performance/ProgrammeService.java

@@ -40,7 +40,7 @@ import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import javax.transaction.Transactional;
 import javax.transaction.Transactional;
 import java.io.*;
 import java.io.*;
-import java.math.BigDecimal;
+import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.nio.charset.StandardCharsets;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDate;
@@ -241,7 +241,7 @@ public class ProgrammeService {
     }
     }
 
 
     @Transactional(rollbackOn = Exception.class)
     @Transactional(rollbackOn = Exception.class)
-    public void upload(MultipartFile file, Long userId) throws IOException {
+    public void upload(MultipartFile file, Long userId) throws Exception {
         Organization organization = organizationRepo.findByUserId(userId).orElseThrow(new BusinessException("无记录"));
         Organization organization = organizationRepo.findByUserId(userId).orElseThrow(new BusinessException("无记录"));
         Long performance = performanceRepo.findNow(LocalDate.now());
         Long performance = performanceRepo.findNow(LocalDate.now());
         if (ObjectUtil.isNull(performance)) {
         if (ObjectUtil.isNull(performance)) {
@@ -249,17 +249,15 @@ public class ProgrammeService {
         }
         }
 
 
         File destDir = TempFile.createTempDirectory("import");
         File destDir = TempFile.createTempDirectory("import");
-        ZipUtil.unzip(file.getInputStream(), destDir, StandardCharsets.UTF_8);
-
-//        File xlsxFile = FileUtils.findExcel1(destDir);
-//        if (xlsxFile == null) {
-//            Map<String, File> map = FileUtils.findExcel(destDir);
-//            if (map == null) return;
-//
-//            xlsxFile = map.get("file");
-//            destDir = map.get("destDir");
-//        }
-        File xlsxFile = FileUtils.folderMethod1(destDir, null);
+
+
+        try {
+            ZipUtil.unzip(file.getInputStream(), destDir, StandardCharsets.UTF_8);
+        } catch (Exception e) {
+            ZipUtil.unzip(file.getInputStream(), destDir, Charset.forName("gbk"));
+        }
+
+        File xlsxFile = FileUtils.findInDir(destDir, null);
         if (xlsxFile == null) {
         if (xlsxFile == null) {
             return;
             return;
         }
         }
@@ -304,10 +302,10 @@ public class ProgrammeService {
                     programme.setLevelSettingId(mapMap.get(4).get(level));
                     programme.setLevelSettingId(mapMap.get(4).get(level));
                 }
                 }
 
 
-                File uploadFile = FileUtils.folderMethod1(destDir, dto.getName());
+                File uploadFile = FileUtils.findInDir(destDir, dto.getName());
                 if (dto.getVideo() != null) {
                 if (dto.getVideo() != null) {
 //                    File uploadFile = new File(destDir, dto.getVideo());
 //                    File uploadFile = new File(destDir, dto.getVideo());
-                    uploadFile = FileUtils.folderMethod1(destDir, dto.getVideo());
+                    uploadFile = FileUtils.findInDir(destDir, dto.getVideo());
                 }
                 }
                 if (ObjectUtil.isNotNull(uploadFile) && uploadFile.exists()) {
                 if (ObjectUtil.isNotNull(uploadFile) && uploadFile.exists()) {
                     // 视频
                     // 视频
@@ -350,9 +348,9 @@ public class ProgrammeService {
             File uploadImg;
             File uploadImg;
             if (dto.getImg() != null) {
             if (dto.getImg() != null) {
 //                File uploadFile = new File(destDir, dto.getImg());
 //                File uploadFile = new File(destDir, dto.getImg());
-                uploadImg = FileUtils.folderMethod1(destDir, dto.getImg());
+                uploadImg = FileUtils.findInDir(destDir, dto.getImg());
             } else {
             } else {
-                uploadImg = FileUtils.folderMethod1(destDir, dto.getIdNo() + "证件照");
+                uploadImg = FileUtils.findInDir(destDir, dto.getIdNo() + "证件照");
             }
             }
             if (ObjectUtil.isNotNull(uploadImg) && uploadImg.exists()) {
             if (ObjectUtil.isNotNull(uploadImg) && uploadImg.exists()) {
                 participant.setImg(this.saveImg(uploadImg));
                 participant.setImg(this.saveImg(uploadImg));
@@ -360,9 +358,9 @@ public class ProgrammeService {
 
 
             File uploadCertificate;
             File uploadCertificate;
             if (dto.getCertificate() != null) {
             if (dto.getCertificate() != null) {
-                uploadCertificate = FileUtils.folderMethod1(destDir, dto.getCertificate());
+                uploadCertificate = FileUtils.findInDir(destDir, dto.getCertificate());
             } else {
             } else {
-                uploadCertificate = FileUtils.folderMethod1(destDir, dto.getIdNo() + "证书");
+                uploadCertificate = FileUtils.findInDir(destDir, dto.getIdNo() + "证书");
             }
             }
             if (ObjectUtil.isNotNull(uploadCertificate) && uploadCertificate.exists()) {
             if (ObjectUtil.isNotNull(uploadCertificate) && uploadCertificate.exists()) {
                 participant.setCertificate(this.saveImg(uploadCertificate));
                 participant.setCertificate(this.saveImg(uploadCertificate));

+ 31 - 3
src/main/java/com/izouma/wenlvju/utils/FileUtils.java

@@ -1,7 +1,8 @@
 package com.izouma.wenlvju.utils;
 package com.izouma.wenlvju.utils;
 
 
-import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
+import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 
 
 import java.io.*;
 import java.io.*;
@@ -12,6 +13,7 @@ import java.nio.file.attribute.PosixFileAttributes;
 import java.nio.file.attribute.PosixFilePermission;
 import java.nio.file.attribute.PosixFilePermission;
 import java.nio.file.attribute.PosixFilePermissions;
 import java.nio.file.attribute.PosixFilePermissions;
 import java.util.*;
 import java.util.*;
+import java.util.regex.Pattern;
 
 
 public class FileUtils {
 public class FileUtils {
 
 
@@ -241,6 +243,30 @@ public class FileUtils {
         return null;
         return null;
     }
     }
 
 
+    public static File findInDir(File dir, String fileName) {
+        if (dir.isDirectory()) {
+            for (File file : dir.listFiles()) {
+                if (file.isDirectory()) {
+                    File f = findInDir(file, fileName);
+                    if (f != null) {
+                        return f;
+                    }
+                } else {
+                    if (fileName != null && file.getName().equalsIgnoreCase(fileName)) {
+                        return file;
+                    } else if (!file.isHidden() && Pattern.matches("xls|xlsx", FilenameUtils.getExtension(file.getName()))) {
+                        return file;
+                    }
+                }
+            }
+        } else if (fileName != null && dir.getName().equalsIgnoreCase(fileName)) {
+            return dir;
+        } else if (!dir.isHidden() && Pattern.matches("xls|xlsx", FilenameUtils.getExtension(dir.getName()))) {
+            return dir;
+        }
+        return null;
+    }
+
     public static File folderMethod1(File file, String fileName) {
     public static File folderMethod1(File file, String fileName) {
         LinkedList<File> list = new LinkedList<>();
         LinkedList<File> list = new LinkedList<>();
 
 
@@ -248,7 +274,9 @@ public class FileUtils {
             if (null == file.listFiles()) {
             if (null == file.listFiles()) {
                 return null;
                 return null;
             }
             }
-            list.addAll(Arrays.asList(file.listFiles()));
+
+            list.addAll(CollUtil.newArrayList(file.listFiles()));
+
             while (!list.isEmpty()) {
             while (!list.isEmpty()) {
                 File[] files = list.removeFirst().listFiles();
                 File[] files = list.removeFirst().listFiles();
                 if (null == files) {
                 if (null == files) {
@@ -264,7 +292,7 @@ public class FileUtils {
                                 return f;
                                 return f;
                             }
                             }
                         } else {
                         } else {
-                            if ((name.endsWith(".xlsx") || name.endsWith(".xls")) && !name.startsWith(".") && !file.isHidden()) {
+                            if ((name.endsWith(".xlsx") || name.endsWith(".xls")) && !name.startsWith(".") && !f.isHidden()) {
                                 return f;
                                 return f;
                             }
                             }
                         }
                         }

+ 2 - 0
src/main/java/com/izouma/wenlvju/web/performance/ProgrammeController.java

@@ -104,6 +104,8 @@ public class ProgrammeController extends BaseController {
         } catch (IOException e) {
         } catch (IOException e) {
             log.error("上传失败", e);
             log.error("上传失败", e);
             throw new BusinessException("上传失败", e.getMessage());
             throw new BusinessException("上传失败", e.getMessage());
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         }
     }
     }
 
 

+ 17 - 2
src/main/vue/src/views/performance/ProgrammeOrgList.vue

@@ -139,8 +139,18 @@
                         :on-success="onSuccess"
                         :on-success="onSuccess"
                         class="uploader"
                         class="uploader"
                         :on-error="onfail"
                         :on-error="onfail"
+                        :loading="loading"
+                        :disabled="loading"
                     >
                     >
-                        <el-button slot="trigger" type="primary" icon="el-icon-upload2" v-if="add">批量上传</el-button>
+                        <el-button
+                            slot="trigger"
+                            type="primary"
+                            icon="el-icon-upload2"
+                            v-if="add"
+                            :loading="loading"
+                            :disabled="loading"
+                            >批量上传</el-button
+                        >
                     </el-upload>
                     </el-upload>
                     <el-button
                     <el-button
                         @click="download"
                         @click="download"
@@ -347,7 +357,8 @@ export default {
                 { label: '已提交', value: 'SUBMIT' },
                 { label: '已提交', value: 'SUBMIT' },
                 { label: '初选未通过', value: 'AUDIT_FAILED' },
                 { label: '初选未通过', value: 'AUDIT_FAILED' },
                 { label: '审核未通过', value: 'REVIEW_FAILED' }
                 { label: '审核未通过', value: 'REVIEW_FAILED' }
-            ]
+            ],
+            loading: false
         };
         };
     },
     },
     created() {
     created() {
@@ -589,6 +600,7 @@ export default {
                 });
                 });
         },
         },
         downloadTemp() {
         downloadTemp() {
+            this.downloading = true;
             this.$axios
             this.$axios
                 .get('/programme/excelTemp', {
                 .get('/programme/excelTemp', {
                     responseType: 'blob'
                     responseType: 'blob'
@@ -685,6 +697,7 @@ export default {
         },
         },
         onSuccess() {
         onSuccess() {
             this.$message.success('上传成功');
             this.$message.success('上传成功');
+            this.loading = false;
             this.getData();
             this.getData();
         },
         },
         beforeUpload() {
         beforeUpload() {
@@ -692,6 +705,8 @@ export default {
                 confirmButtonText: '确定',
                 confirmButtonText: '确定',
                 cancelButtonText: '取消',
                 cancelButtonText: '取消',
                 type: 'warning'
                 type: 'warning'
+            }).then(() => {
+                this.loading = true;
             });
             });
         },
         },
         canAdd() {
         canAdd() {