Browse Source

整理文档

wuheng 1 year ago
parent
commit
4e1b2432b5

+ 3 - 2
common/src/main/java/com/koobietech/eas/common/utils/FileManager.java

@@ -192,6 +192,7 @@ public class FileManager {
         } finally {
             try {
                 fileOutputStream.close();
+                document.close();
             } catch (IOException e) {}
         }
         return ret;
@@ -205,7 +206,7 @@ public class FileManager {
      * @return
      */
     public boolean saveDocument(XWPFDocument document, String savePath, String fileName){
-        return saveDocument(document, savePath + fileName);
+        return saveDocument(document, savePath + separator + fileName);
     }
 
     /**********************************
@@ -250,7 +251,7 @@ public class FileManager {
      * @return
      */
     public boolean saveFile(InputStream  stream, String savePath, String fileName) {
-        return saveFile(stream, savePath + fileName);
+        return saveFile(stream, savePath + separator + fileName);
     }
 
     /**

+ 2 - 1
service/src/main/java/com/koobietech/eas/service/EasArchivesFilesService.java

@@ -1,6 +1,7 @@
 package com.koobietech.eas.service;
 
 import com.koobietech.eas.dao.dto.ArchivesDto;
+import com.koobietech.eas.mbg.model.EasArcTlsStudents;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
 
 import java.io.FileInputStream;
@@ -13,7 +14,7 @@ public interface EasArchivesFilesService {
      * @param studentNumber 学号
      * @return 学生档案文件
      */
-    ArchivesDto getArchiveStudentsFile(String studentNumber);
+    EasArcTlsStudents getArchiveStudentsFile(String studentNumber);
 
     /**
      * 保存学生考勤文件

+ 42 - 25
service/src/main/java/com/koobietech/eas/service/impl/EasArchivesFilesServiceImpl.java

@@ -5,7 +5,11 @@ import com.koobietech.eas.common.constant.FileTypeExt;
 import com.koobietech.eas.common.utils.FileManager;
 import com.koobietech.eas.common.utils.StudentArchiveGenerator;
 import com.koobietech.eas.dao.dto.ArchivesDto;
+import com.koobietech.eas.mbg.mapper.EasArcTlsStudentsMapper;
+import com.koobietech.eas.mbg.model.EasArcTlsStudents;
+import com.koobietech.eas.mbg.model.EasArcTlsStudentsExample;
 import com.koobietech.eas.service.EasArchivesFilesService;
+import com.koobietech.eas.service.EasStuProfileService;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -13,6 +17,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.io.*;
 import java.util.Date;
+import java.util.List;
 
 @Service
 public class EasArchivesFilesServiceImpl implements EasArchivesFilesService {
@@ -23,45 +28,37 @@ public class EasArchivesFilesServiceImpl implements EasArchivesFilesService {
     @Resource
     FileManager fileManager;
 
-    String separator = File.separator;
+    @Resource
+    EasArcTlsStudentsMapper arcTlsStudentsMapper;
 
-    @Override
-    public ArchivesDto getArchiveStudentsFile(String studentNumber) {
-        return null;
-    }
+    String separator = File.separator;
 
     @Override
     public ArchivesDto saveArchiveAttendanceFile(String studentNumber, XWPFDocument document) {
-        String archiveCode = StudentArchiveGenerator.generateArchiveCode(studentNumber, FileType.XLSX.getValue());
-        String path = getArchivePath(studentNumber, archiveCode);
-        if ( fileManager.isFileExists(path) ) {
-            fileManager.moveFile( path,  path + (new Date()).getTime() + ".back", true );
-        }
-        boolean status = fileManager.saveDocument(document, path);
-        return new ArchivesDto(path, status, archiveCode);
-    }
-
-    private String getArchivePath(String studentNumber, String archiveCode) {
-        return archivesSavePath + separator + studentNumber
-                + separator + archiveCode + FileTypeExt.XLSX.getValue();
+        return saveArchiveDocumentFile(studentNumber, document, "XLSX");
     }
 
     @Override
     public ArchivesDto saveArchiveScoresFile(String studentNumber, XWPFDocument document) {
-        return null;
+        return saveArchiveDocumentFile(studentNumber, document, "XLSX");
     }
 
     @Override
     public ArchivesDto saveArchiveStudentsFile(String studentNumber, XWPFDocument document) {
-        String archiveCode = StudentArchiveGenerator.generateArchiveCode(studentNumber, FileType.DOCX.getValue());
-        String path = getArchivePath(studentNumber, archiveCode);
-        boolean status = fileManager.saveDocument(document, path);
-        return new ArchivesDto(path, status, archiveCode);
+        return saveArchiveDocumentFile(studentNumber, document, "DOCX");
     }
 
     @Override
     public ArchivesDto saveArchiveFile(String studentNumber, InputStream stream, String type) {
-        return null;
+        String archiveCode = getArchiveCode(studentNumber, FileType.valueOf(type).getValue() );
+        String path = getArchivePath(studentNumber, archiveCode, FileTypeExt.valueOf(type).getValue());
+        boolean status = fileManager.saveFile(stream, path);
+        return new ArchivesDto(path, status, archiveCode);
+    }
+
+    @Override
+    public boolean deleteArchiveFile(String filePath) {
+        return fileManager.deleteFile(filePath);
     }
 
     @Override
@@ -79,7 +76,27 @@ public class EasArchivesFilesServiceImpl implements EasArchivesFilesService {
     }
 
     @Override
-    public boolean deleteArchiveFile(String filePath) {
-        return fileManager.deleteFile(filePath);
+    public EasArcTlsStudents getArchiveStudentsFile(String studentNumber) {
+        EasArcTlsStudentsExample easArcTlsStudentsExample = new EasArcTlsStudentsExample();
+        easArcTlsStudentsExample.createCriteria().andStudentNumberEqualTo(studentNumber);
+        List<EasArcTlsStudents> easArcTlsStudents = arcTlsStudentsMapper.selectByExample(easArcTlsStudentsExample);
+        return easArcTlsStudents.stream().findFirst().orElse(null);
     }
+
+    private ArchivesDto saveArchiveDocumentFile(String studentNumber, XWPFDocument document, String type ) {
+        String archiveCode = StudentArchiveGenerator.generateArchiveCode(studentNumber, FileType.valueOf(type).getValue());
+        String path = getArchivePath(studentNumber, archiveCode,  FileTypeExt.valueOf(type).getValue());
+        boolean status = fileManager.saveDocument(document, path);
+        return new ArchivesDto(path, status, archiveCode);
+    }
+
+    private String getArchiveCode(String studentNumber, String fileCode) {
+        return StudentArchiveGenerator.generateArchiveCode(studentNumber, fileCode);
+    }
+
+    private String getArchivePath(String studentNumber, String archiveCode, String suffix) {
+        return archivesSavePath + separator + studentNumber
+                + separator + archiveCode + suffix;
+    }
+
 }