Browse Source

替换报告系统涉及文件代码

chenyu 2 years ago
parent
commit
cfbf040c50

+ 21 - 6
RMS/src/main/java/cn/cslg/report/service/business/ReportFileService.java

@@ -6,9 +6,13 @@ import cn.cslg.report.common.model.dto.UploadFileDTO;
 import cn.cslg.report.common.utils.FileUtils;
 
 import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
+import cn.cslg.report.common.utils.SystemFileToReportFile;
 import cn.cslg.report.entity.ReportFiles;
+import cn.cslg.report.entity.SystemFile;
 import cn.cslg.report.mapper.ReportFileMapper;
 
+import cn.cslg.report.service.file.FileManagerService;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -19,6 +23,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -30,6 +35,7 @@ import java.util.stream.Collectors;
 public class ReportFileService extends ServiceImpl<ReportFileMapper, ReportFiles> {
     private final FileUtils fileUtils;
     private final LoginUtils loginUtils;
+    private final FileManagerService fileManagerService;
 
     //上传文档
     public List<Integer> uploadFiles(List<MultipartFile> file) {
@@ -89,17 +95,26 @@ public class ReportFileService extends ServiceImpl<ReportFileMapper, ReportFiles
     }
 
     //根据文件Id获得文件
-    public List<ReportFiles> getFiles(List<Integer> FileIds) {
-        LambdaQueryWrapper<ReportFiles> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.in(ReportFiles::getId, FileIds);
-        List<ReportFiles> file = this.list(queryWrapper);
-        return file;
+    public List<ReportFiles> getFiles(List<Integer> FileIds) throws IOException {
+//        LambdaQueryWrapper<ReportFiles> queryWrapper = new LambdaQueryWrapper<>();
+//        queryWrapper.in(ReportFiles::getId, FileIds);
+//        List<ReportFiles> file = this.list(queryWrapper);
+        String res = fileManagerService.getSystemFileFromFMS(FileIds);
+        List<SystemFile> systemFiles = JSONArray.parseArray(res, SystemFile.class);
+        ArrayList<ReportFiles> reportFiles = new ArrayList<>();
+        systemFiles.forEach(systemFile -> {
+            ReportFiles reportFile = new ReportFiles();
+            SystemFileToReportFile.systemFileToReportFile(systemFile, reportFile);
+            reportFiles.add(reportFile);
+        });
+        return reportFiles;
     }
+
     public String getFile(Integer fileId) {
         LambdaQueryWrapper<ReportFiles> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ReportFiles::getId, fileId);
         List<ReportFiles> file = this.list(queryWrapper);
-        if(file.size()>0){
+        if (file.size() > 0) {
             return file.get(0).getUrl();
         }
         return "";

+ 25 - 8
RMS/src/main/java/cn/cslg/report/service/business/ReportReferencesService.java

@@ -12,6 +12,9 @@ import cn.cslg.report.entity.ReportReferences;
 import cn.cslg.report.entity.asso.AssoReportReferences;
 
 import cn.cslg.report.mapper.ReportReferencesMapper;
+import cn.cslg.report.service.file.FileManagerService;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -39,6 +42,7 @@ import java.util.stream.Collectors;
 public class ReportReferencesService extends ServiceImpl<ReportReferencesMapper, ReportReferences> {
     private final ReportFileService reportFileService;
     private final LoginUtils loginUtils;
+    private final FileManagerService fileManagerService;
 
     private final CacheUtils cacheUtils;
     private final ReportService reportService;
@@ -58,7 +62,10 @@ public class ReportReferencesService extends ServiceImpl<ReportReferencesMapper,
         i.insert();
         if (files != null && files.size() != 0) {
             //将文档上传并返回文件入库的Id
-            List<Integer> fileIds = reportFileService.uploadFiles(files);
+            //List<Integer> fileIds = reportFileService.uploadFiles(files);
+            String res = fileManagerService.uploadFile(files);
+            JSONObject jsonObject = JSONObject.parseObject(res);
+            List<Integer> fileIds = JSONArray.parseArray(jsonObject.get("data").toString(), Integer.class);
             assoReportReferencesService.add(i.getId(), fileIds);
             return Response.success();
         }
@@ -146,9 +153,12 @@ public class ReportReferencesService extends ServiceImpl<ReportReferencesMapper,
         LambdaQueryWrapper<AssoReportReferences> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(AssoReportReferences::getReportReferencesID, id);
         List<AssoReportReferences> list = assoReportReferencesService.list(wrapper);
-        //删除对应的文件
-        reportFileService.removeByIds(list.stream().map(AssoReportReferences::getFileID).collect(Collectors.toList()));
-        assoReportReferencesService.remove(wrapper);
+        if (list != null && list.size() > 0) {
+            //删除对应的文件
+            //reportFileService.removeByIds(list.stream().map(AssoReportReferences::getFileID).collect(Collectors.toList()));
+            fileManagerService.deleteFileFromFMS(list.stream().map(AssoReportReferences::getFileID).collect(Collectors.toList()));
+            assoReportReferencesService.remove(wrapper);
+        }
 
         return Response.success();
 
@@ -193,10 +203,17 @@ public class ReportReferencesService extends ServiceImpl<ReportReferencesMapper,
             LambdaQueryWrapper<AssoReportReferences> wrapper = new LambdaQueryWrapper<>();
             wrapper.eq(AssoReportReferences::getReportReferencesID, reportReferences.getId());
             List<AssoReportReferences> list = assoReportReferencesService.list(wrapper);
-            List<Integer> collect = list.stream().map(AssoReportReferences::getFileID).collect(Collectors.toList());
-            assoReportReferencesService.remove(wrapper);
-            reportFileService.removeByIds(collect);
-            List<Integer> fileIdList = reportFileService.uploadFiles(files);
+            if (list != null && list.size() > 0) {
+                List<Integer> collect = list.stream().map(AssoReportReferences::getFileID).collect(Collectors.toList());
+                assoReportReferencesService.remove(wrapper);
+                //reportFileService.removeByIds(collect);
+                fileManagerService.deleteFileFromFMS(collect);
+            }
+
+            //List<Integer> fileIdList = reportFileService.uploadFiles(files);
+            String res = fileManagerService.uploadFile(files);
+            JSONObject jsonObject = JSONObject.parseObject(res);
+            List<Integer> fileIdList = JSONArray.parseArray(jsonObject.get("data").toString(), Integer.class);
             assoReportReferencesService.add(reportReferences.getId(), fileIdList);
         }
         return reportReferences.updateById();

+ 12 - 3
RMS/src/main/java/cn/cslg/report/service/business/ReportService.java

@@ -16,6 +16,7 @@ import cn.cslg.report.mapper.ReportMapper;
 import cn.cslg.report.service.*;
 import cn.cslg.report.service.business.InvalidReReport.*;
 import cn.cslg.report.service.business.asso.AssoReportPersonService;
+import cn.cslg.report.service.file.FileManagerService;
 import cn.cslg.report.service.impl.ProductServiceImpl;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -85,6 +86,7 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
     private final ProofStrService proofStrService;
     private final ArgumentsScenarioService argumentsScenarioService;
     private final ScratchService scratchService;
+    private final FileManagerService fileManagerService;
 
     private Report loadReport(ReportDTO reportDto) {
         Report report = new Report();
@@ -159,7 +161,10 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
             //当
             if (report.getStatus() != 3) {
                 //将文档上传并返回文件入库的Id
-                List<Integer> fileIds = reportFileService.uploadFiles(files);
+                //List<Integer> fileIds = reportFileService.uploadFiles(files);
+                String res = fileManagerService.uploadFile(files);
+                JSONObject jsonObject = JSONObject.parseObject(res);
+                List<Integer> fileIds = JSONArray.parseArray(jsonObject.get("data").toString(), Integer.class);
                 assoReportFileService.addAsso(report.getId(), fileIds);
             } else {
                 ReportReferences reportReferences = new ReportReferences();
@@ -467,12 +472,16 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
             deleteWrapper.in(AssoReportFile::getFileId, fileIds);
             assoReportFileService.remove(deleteWrapper);
             //根据文件Id删除文件表记录
-            reportFileService.removeByIds(fileIds);
+            //reportFileService.removeByIds(fileIds);
+            fileManagerService.deleteFileFromFMS(fileIds);
         }
 //添加附件
         if (files != null && files.size() != 0) {
             //将文档上传并返回文件入库的Id
-            List<Integer> fileIdList = reportFileService.uploadFiles(files);
+            //List<Integer> fileIdList = reportFileService.uploadFiles(files);
+            String res = fileManagerService.uploadFile(files);
+            JSONObject jsonObject = JSONObject.parseObject(res);
+            List<Integer> fileIdList = JSONArray.parseArray(jsonObject.get("data").toString(), Integer.class);
             assoReportFileService.addAsso(reportDto.getId(), fileIdList);
         }
         if (report.getType() == 7) {