Kaynağa Gözat

Merge remote-tracking branch 'origin/dev3' into dev3

# Conflicts:
#	src/main/java/com/example/fms/service/FileMangerService.java
xiexiang 1 yıl önce
ebeveyn
işleme
87badf96eb

+ 2 - 0
pom.xml

@@ -15,6 +15,8 @@
     <description>Demo project for Spring Boot</description>
     <properties>
         <java.version>1.8</java.version>
+        <maven.compiler.source>13</maven.compiler.source>
+        <maven.compiler.target>13</maven.compiler.target>
     </properties>
     <dependencies>
         <dependency>

+ 3 - 3
src/main/java/com/example/fms/common/utils/ExcuteConfigUtils.java

@@ -17,16 +17,16 @@ import java.util.List;
  */
 @Service
 public class ExcuteConfigUtils {
-
+    public static final String FILE_SEPARATOR = System.getProperty("file.separator");
     //解析配置utils
     public static String excuteConfigJson() {
         ApplicationHome ah = new ApplicationHome(BackupUtils.class);
         File file = ah.getSource();
-        String settingFilePath = "src/main/resources/configSetting.json";
+        String rootPath = file.getParentFile().toString() + FILE_SEPARATOR + "configSetting.json";
         BufferedReader reader = null;
         StringBuilder last = new StringBuilder();
         InputStreamReader inputStreamReader;
-        try (FileInputStream fileInputStream = new FileInputStream(settingFilePath)) {
+        try (FileInputStream fileInputStream = new FileInputStream(rootPath)) {
             inputStreamReader = new InputStreamReader(fileInputStream, StandardCharsets.UTF_8);
 
             reader = new BufferedReader(inputStreamReader);

+ 8 - 20
src/main/java/com/example/fms/controller/FileMangerController.java

@@ -55,30 +55,13 @@ public class FileMangerController {
         }
     }
 
-    @GetMapping("/replaceFile")
+    @PostMapping("/replaceFile")
     @Operation(summary = "根据fileGuid替换文件")
-    public String replaceFile(MultipartFile file, String fileGuid, Integer sourceId){
+    public String replaceFile(@RequestBody MultipartFile file, String fileGuid, Integer sourceId){
         String guid = fileManagerService.replaceFile(file, fileGuid, sourceId);
         return Response.success(guid);
     }
 
-
-//    @PostMapping("/uploadPatentFile")
-//    @Operation(summary = "上传专利文件")
-//    public String uploadPatentFile(@RequestBody List<MultipartFile> files, Integer sourceId) throws IOException {
-//        if(files != null && files.size() != 0){
-//            List<String> GUIDs = fileManagerService.uploadFile(files, sourceId);
-//            if(GUIDs != null && GUIDs.size() != 0){
-//                return Response.success("上传文件成功,文件信息id为" + GUIDs);
-//            } else {
-//                return Response.error("文件信息入表失败");
-//            }
-//        } else {
-//            return Response.error("上传文件不能为空");
-//        }
-//    }
-
-
     @GetMapping("/downloadFile")
     @Operation(summary = "下载文件")
     public ResponseEntity<InputStreamResource> downloadFile(String fileId) {
@@ -146,5 +129,10 @@ public class FileMangerController {
         String mes = fileManagerService.deleteFile(fMSDeleteFileDTO.getGuids(), fMSDeleteFileDTO.getType());
         return Response.success(mes);
     }
-
+    @GetMapping("/getPatentPictureGuids")
+    @Operation(summary = " 获得专利图片的guid")
+    public String getPatentPictureGuids(String appNo) {
+        List<String> mes = fileManagerService.getPatentPictureGuids(appNo);
+        return Response.success(mes);
+    }
 }

+ 42 - 17
src/main/java/com/example/fms/service/FileMangerService.java

@@ -19,9 +19,11 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 文件管理外部调用接口Service层
+ *
  * @Author xiexiang
  * @Date 2023/8/9
  */
@@ -36,7 +38,8 @@ public class FileMangerService {
 
     /**
      * 上传文件的最外部接口
-     * @param files 需要上传的文件
+     *
+     * @param files    需要上传的文件
      * @param sourceId configSettingVO的主键id,判断存储在哪个服务器路径之下
      * @return insertIds 文件在数据库中的id集合
      * @throws IOException
@@ -64,7 +67,7 @@ public class FileMangerService {
         }
     }
 
-    public String replaceFile(MultipartFile file, String fileGuid, Integer sourceId){
+    public String replaceFile(MultipartFile file, String fileGuid, Integer sourceId) {
         List<String> deleteFileGuids = new ArrayList<>();
         Integer type = 2;
         deleteFileGuids.add(fileGuid);
@@ -84,6 +87,7 @@ public class FileMangerService {
 
     /**
      * 下载文件
+     *
      * @param fileId 文件id
      * @return fileData 文件流
      * @throws Exception
@@ -121,19 +125,23 @@ public class FileMangerService {
             byte[] fileData = fileFactoryObject.downloadFile(downloadSysFileDTO, configSettingVO);
             return fileData;
         }
+        return null;
     }
 
     /**
      * 删除系统文件
      * 分为物理删除和逻辑删除,逻辑删除只更新数据库中isDelete字段,物理删除需要调用工厂类方法
+     *
      * @param guIds 需要删除的GUID集合
-     * @param type 删除方式判断字段,1为逻辑删除,2为物理删除
+     * @param type  删除方式判断字段,1为逻辑删除,2为物理删除
      */
     public String deleteFile(List<String> guIds, Integer type) {
+
         //1.首先判断传入的需要删除的id集合不能为空
         if (CollectionUtils.isEmpty(guIds)) {
             throw new XiaoShiException("需要删除的GUID集合不能为空");
         }
+
         //2.其次判断传入的删除类型不能为空
         if (type == null) {
             throw new XiaoShiException("删除类型不能为空");
@@ -169,26 +177,32 @@ public class FileMangerService {
                 LambdaQueryWrapper<SystemFile> queryWrapper = new LambdaQueryWrapper<>();
                 queryWrapper.eq(SystemFile::getGuid, guIds.get(i));
                 SystemFile systemFileVO = systemFileService.getOne(queryWrapper);
-                //3.2.3 根据pType判断存储在服务器的哪个地址下
-                int pType = systemFileVO.getPType();
-                //3.2.4 文件路径
-                String filePath = systemFileVO.getFilePath();
-                //3.2.5 调用解析配置方法,获取指定配置信息
-                List<ConfigSettingVO> configSettingVOS = ExcuteConfigUtils.excuteConfigVO();
-                ConfigSettingVO configSettingVO = configSettingVOS.stream().filter(item -> item.getId().equals(pType)).findFirst().orElse(null);
-                //3.2.6 配置类的删除方法
-                String sourceName = configSettingVO.getSourceName();
-                //TODO 调用工厂方法,工厂方法会根据sourceName创建并返回对应的方法的对象
-                IFileFactory fileFactoryObject = fileFactory.createObject(sourceName);
-                fileFactoryObject.deleteFile(filePath, configSettingVO);
-                deleteIds.add(systemFileVO.getId());
+                if (systemFileVO != null) {
+                    //3.2.3 根据pType判断存储在服务器的哪个地址下
+                    int pType = systemFileVO.getPType();
+                    //3.2.4 文件路径
+                    String filePath = systemFileVO.getFilePath();
+                    //3.2.5 调用解析配置方法,获取指定配置信息
+                    List<ConfigSettingVO> configSettingVOS = ExcuteConfigUtils.excuteConfigVO();
+                    ConfigSettingVO configSettingVO = configSettingVOS.stream().filter(item -> item.getId().equals(pType)).findFirst().orElse(null);
+                    //3.2.6 配置类的删除方法
+                    String sourceName = configSettingVO.getSourceName();
+                    //TODO 调用工厂方法,工厂方法会根据sourceName创建并返回对应的方法的对象
+                    IFileFactory fileFactoryObject = fileFactory.createObject(sourceName);
+                    fileFactoryObject.deleteFile(filePath, configSettingVO);
+                    deleteIds.add(systemFileVO.getId());
 //                //3.2.7 调用removeById删除此条记录,主键为根据GUID查询到的对象的id
 //                Boolean isDelete = systemFileService.removeById(systemFileVO.getId());
 //                if (isDelete != true) {
 //                    throw new XiaoShiException("第" + i + "条删除异常");
 //                }
+                }
+            }
+            Boolean isDelete = true;
+
+            if (deleteIds.size() != 0) {
+                isDelete = systemFileService.removeByIds(deleteIds);
             }
-            Boolean isDelete = systemFileService.removeByIds(deleteIds);
             if (isDelete != true) {
                 throw new XiaoShiException("删除异常");
             }
@@ -200,4 +214,15 @@ public class FileMangerService {
         }
     }
 
+
+    public List<String> getPatentPictureGuids(String appNo) {
+        String likeGuid = "%" + appNo + "_p" + "%";
+        LambdaQueryWrapper<SystemFile> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.select(SystemFile::getGuid);
+        queryWrapper.like(SystemFile::getGuid, likeGuid);
+        List<SystemFile> systemFiles =systemFileService.list(queryWrapper);
+        List<String> guids =systemFiles.stream().map(SystemFile::getGuid).collect(Collectors.toList());
+        return guids;
+    }
+
 }

+ 2 - 2
src/main/resources/application-testNetIn.yml

@@ -29,9 +29,9 @@ spring:
         max-wait: -1ms
     timeout: 2000ms
   datasource:
-    url: jdbc:mysql://172.27.247.174:3306/PCS_TEST2?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
+    url: jdbc:mysql://172.27.247.174:3306/PCS_TEST3?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
     username: root
-    password: rrzTwWAYX8Gxh5JH
+    password: TU5x6IeBi7rl
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
     druid: