Sfoglia il codice sorgente

5.30 将原保存专利入库整体进行拆分完成

chendayu 2 anni fa
parent
commit
6a30c26a97

+ 6 - 0
PAS/src/main/java/cn/cslg/pas/common/model/vo/UploadParamsVO.java

@@ -3,6 +3,7 @@ package cn.cslg.pas.common.model.vo;
 import cn.cslg.pas.domain.*;
 import lombok.Data;
 import lombok.experimental.Accessors;
+import org.apache.poi.ss.usermodel.PictureData;
 
 import java.util.List;
 
@@ -115,5 +116,10 @@ public class UploadParamsVO {
         private List<String> fieldList;
     }
 
+    /**
+     * 专利摘要附图
+     */
+    private PictureData pictureData;
+
 
 }

+ 43 - 0
PAS/src/main/java/cn/cslg/pas/service/upLoadPatent/ExcuteDataToVOService.java

@@ -0,0 +1,43 @@
+package cn.cslg.pas.service.upLoadPatent;
+
+import cn.cslg.pas.common.model.vo.ProjectImportPatentVO;
+import cn.cslg.pas.common.model.vo.UploadParamsVO;
+import cn.cslg.pas.common.model.vo.UploadSettingVO;
+import cn.cslg.pas.common.utils.FileUtils;
+import cn.cslg.pas.common.utils.UploadPatentBatchUtil;
+import cn.cslg.pas.domain.PatentData;
+import org.apache.poi.ss.usermodel.PictureData;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 将源专利数据转换为专利VO实体类业务层
+ *
+ * @Author chenyu
+ * @Date 2023/5/31
+ */
+@Service
+public class ExcuteDataToVOService {
+
+    /**
+     * 将Eccel文件指定行专利数据装配转换为专利实体类
+     *
+     * @param patentData 专利数据
+     * @param jsonData   数据源配置
+     * @return 返回专利实体类
+     */
+    public UploadParamsVO fileToPatentVO(PatentData patentData, List<UploadSettingVO.Column> jsonData) {
+        //取出专利内容数据(除了摘要附图),(key:表头如 "公开(公告)号"  value:表头对应内容如 "CN1307082B")
+        Map<Object, Object> patentMap = patentData.getMap();
+        //取出专利摘要附图
+        PictureData pictureData = patentData.getPictureData();
+
+        //专利基础数据装配(此步与数据源配置文件对象相关)
+        UploadParamsVO uploadParamsVO = UploadPatentBatchUtil.processData(patentMap, jsonData);
+        uploadParamsVO.setPictureData(pictureData);
+        return uploadParamsVO;
+    }
+
+}

+ 33 - 0
PAS/src/main/java/cn/cslg/pas/service/upLoadPatent/ExcuteUploadSettingService.java

@@ -0,0 +1,33 @@
+package cn.cslg.pas.service.upLoadPatent;
+
+import cn.cslg.pas.common.model.vo.ProjectImportPatentVO;
+import cn.cslg.pas.common.model.vo.UploadSettingVO;
+import cn.cslg.pas.common.utils.FileUtils;
+import cn.cslg.pas.common.utils.UploadPatentBatchUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @Author chenyu
+ * @Date 2023/5/31
+ */
+@Service
+public class ExcuteUploadSettingService {
+    /**
+     * 解析数据源配置文件
+     *
+     * @param sourceId 数据来源id
+     * @return 返回
+     */
+    public List<UploadSettingVO.Column> ExcuteUploadSetting(String sourceId) {
+        //获得uploadSetting.json配置文件的JSON串
+        String getSettingJson = new FileUtils().analysisJsonFile();
+        //查找并装载本次导入的专利需要的数据源(如智慧芽)的对应配置(如前台传来的数据来源id是1,即“智慧芽”,那么jsonData装载的就是智慧芽的数据源配置)
+        ProjectImportPatentVO projectImportPatentVO = new ProjectImportPatentVO();
+        projectImportPatentVO.setSourceId(sourceId);
+        List<UploadSettingVO.Column> jsonData = UploadPatentBatchUtil.parsingConfigurationFiles(projectImportPatentVO, getSettingJson);
+        return jsonData;
+    }
+
+}

+ 0 - 71
PAS/src/main/java/cn/cslg/pas/service/upLoadPatent/UploadAssoProPatService.java

@@ -1,71 +0,0 @@
-package cn.cslg.pas.service.upLoadPatent;
-
-import cn.cslg.pas.common.model.vo.ProjectImportPatentVO;
-import cn.cslg.pas.common.model.vo.UploadParamsVO;
-import cn.cslg.pas.service.UploadPatentBatchService;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Service;
-
-/**
- * 保存专利关联数据(如自定义字段、文件夹、标签等)入库
- *
- * @Author chenyu
- * @Date 2023/5/30
- */
-@Service
-@RequiredArgsConstructor
-public class UploadAssoProPatService {
-    private final UploadPatentBatchService uploadPatentBatchService;
-
-    /**
-     * 专利相关联数据(如自定义字段、文件夹、标签等关联信息)入库
-     *
-     * @param uploadParamsVO        专利内容实体类对象
-     * @param projectImportPatentVO 专题库关联专利信息(专题库id、自定义字段、文件夹等数据)
-     */
-    public void uploadAssoProPat(UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {
-        //专题库与专利关联入库
-        uploadAssoThemaPat(uploadParamsVO, projectImportPatentVO);
-        //自定义字段标引与专利关联入库
-        uploadAssoFieldPat(uploadParamsVO, projectImportPatentVO);
-        //文件夹与专利关联入库
-        uploadAssoPorPat(uploadParamsVO, projectImportPatentVO);
-    }
-
-    /**
-     * 保存专题库与专利关联(表"os_thematic_pid")
-     *
-     * @param uploadParamsVO        专利内容实体类对象
-     * @param projectImportPatentVO 专题库关联专利信息(专题库id、自定义字段、文件夹等数据)
-     */
-    public void uploadAssoThemaPat(UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {
-        if (uploadParamsVO.getPatent() != null) {
-            uploadPatentBatchService.patentThematicPidBusiness(uploadParamsVO, projectImportPatentVO);
-        }
-    }
-
-    /**
-     * 保存标引内容关联专利信息(表"os_patent_field_patent_link"、"os_patent_field_text")
-     *
-     * @param uploadParamsVO        专利内容实体类对象
-     * @param projectImportPatentVO 专题库关联专利信息(专题库id、自定义字段、文件夹等数据)
-     */
-    public void uploadAssoFieldPat(UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {
-        if (uploadParamsVO.getPatent() != null) {
-            uploadPatentBatchService.patentProjectFieldPatentLinkBusiness(uploadParamsVO, projectImportPatentVO);
-        }
-    }
-
-    /**
-     * 保存文件夹关联专利信息(表"os_portfolio_link")
-     *
-     * @param uploadParamsVO        专利内容实体类对象
-     * @param projectImportPatentVO 专题库关联专利信息(专题库id、自定义字段、文件夹等数据)
-     */
-    public void uploadAssoPorPat(UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {
-        if (uploadParamsVO.getPatent() != null) {
-            uploadPatentBatchService.patentProjectFolderPatentLinkBusiness(uploadParamsVO, projectImportPatentVO);
-        }
-    }
-
-}

+ 49 - 47
PAS/src/main/java/cn/cslg/pas/service/upLoadPatent/UploadPatentService.java

@@ -28,76 +28,42 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * 保存专利入库
+ * 保存专利及所有专利关联入库
  *
  * @Author chenyu
  * @Date 2023/5/30
  */
 @Service
 @RequiredArgsConstructor
-public class UploadPatentService {
+public class UploadPatentToDBService {
     private final SystemDictService systemDictService;
     private final PatentAgencyService patentAgencyService;
     private final UploadPatentBatchService uploadPatentBatchService;
     private final PatentImageService patentImageService;
 
-    public static void main(String[] args) throws IOException {
-        //获得uploadSetting.json配置文件的JSON串
-        String getSettingJson = new FileUtils().analysisJsonFile();
-        //查找并装载本次导入的专利需要的数据源(如智慧芽)的对应配置(如前台传来的数据来源id是1,即“智慧芽”,那么jsonData装载的就是智慧芽的数据源配置)
-        ProjectImportPatentVO projectImportPatentVO = new ProjectImportPatentVO()
-                .setSourceId("1");
-        List<UploadSettingVO.Column> jsonData = UploadPatentBatchUtil.parsingConfigurationFiles(projectImportPatentVO, getSettingJson);
-
-        String path = "C:\\Users\\Administrator\\Desktop\\Leisure\\专利文件\\CN多件专利(回车换行).XLSX";
-        int row = 1;
-        //根据路径和行数获得专利数据
-        PatentData patentData = ReadExcelUtils.readExcelOneRow(path, row);
-        //取出专利内容数据(除了摘要附图),(key:表头如 "公开(公告)号"  value:表头对应内容如 "CN1307082B")
-        Map<Object, Object> patentMap = patentData.getMap();
-        //取出专利摘要附图
-        PictureData pictureData = patentData.getPictureData();
-
-        //专利基础数据装配(此步与数据源配置文件对象相关)
-        UploadParamsVO uploadParamsVO = UploadPatentBatchUtil.processData(patentMap, jsonData);
-
-        Map<String, String> result = new HashMap<>();
-        String ext = pictureData.suggestFileExtension();
-        byte[] data = pictureData.getData();
-        String picName = IdUtil.simpleUUID() + "." + ext;
-        String date = DateUtils.getNowTimeFormat("yyyyMMdd");
-        String folderPath = new FileUtils().getSavePath(date);
-        String filePath = FileUtils.FILE_SEPARATOR + date + FileUtils.FILE_SEPARATOR + picName;
-        File directory = new File(folderPath);
-        if (!directory.exists()) {
-            directory.mkdir();
-        }
-        FileOutputStream out = new FileOutputStream(folderPath + picName);
-        out.write(data);
-        out.close();
-        result.put("path", filePath);
-        result.put("name", picName);
-        System.out.println(result);
-
-    }
-
-
     /**
-     * 专利入库
+     * 专利及所有关联入库
      *
-     * @param uploadParamsVO 专利内容实体类对象
+     * @param uploadParamsVO        专利实体类
+     * @param projectImportPatentVO 专题库专利关联数据实体类(专题库id、数据来源id、自定义字段、文件夹)
      */
-    public void uploadPatent(UploadParamsVO uploadParamsVO, PictureData pictureData) throws IOException {
+    public void uploadPatent(UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) throws IOException {
         //基础数据入库(取专利id)
         uploadPatentBase(uploadParamsVO);
         //摘要附图入库
-        uploadPatentImage(uploadParamsVO, pictureData);
+        uploadPatentImage(uploadParamsVO, uploadParamsVO.getPictureData());
         //著录项目入库
         uploadPatentZhulu(uploadParamsVO);
         //说明书文本入库
         uploadPatentInstructionText(uploadParamsVO);
         //权要入库
         uploadPatentRight(uploadParamsVO);
+        //专题库与专利关联入库
+        uploadAssoThemaPat(uploadParamsVO, projectImportPatentVO);
+        //自定义字段标引与专利关联入库
+        uploadAssoFieldPat(uploadParamsVO, projectImportPatentVO);
+        //文件夹与专利关联入库
+        uploadAssoPorPat(uploadParamsVO, projectImportPatentVO);
 
     }
 
@@ -206,5 +172,41 @@ public class UploadPatentService {
         }
     }
 
+    /**
+     * 保存专题库与专利关联(表"os_thematic_pid")
+     *
+     * @param uploadParamsVO        专利内容实体类对象
+     * @param projectImportPatentVO 专题库关联专利信息(专题库id、自定义字段、文件夹等数据)
+     */
+    public void uploadAssoThemaPat(UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {
+        if (uploadParamsVO.getPatent() != null) {
+            uploadPatentBatchService.patentThematicPidBusiness(uploadParamsVO, projectImportPatentVO);
+        }
+    }
+
+    /**
+     * 保存标引内容关联专利信息(表"os_patent_field_patent_link"、"os_patent_field_text")
+     *
+     * @param uploadParamsVO        专利内容实体类对象
+     * @param projectImportPatentVO 专题库关联专利信息(专题库id、自定义字段、文件夹等数据)
+     */
+    public void uploadAssoFieldPat(UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {
+        if (uploadParamsVO.getPatent() != null) {
+            uploadPatentBatchService.patentProjectFieldPatentLinkBusiness(uploadParamsVO, projectImportPatentVO);
+        }
+    }
+
+    /**
+     * 保存文件夹关联专利信息(表"os_portfolio_link")
+     *
+     * @param uploadParamsVO        专利内容实体类对象
+     * @param projectImportPatentVO 专题库关联专利信息(专题库id、自定义字段、文件夹等数据)
+     */
+    public void uploadAssoPorPat(UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {
+        if (uploadParamsVO.getPatent() != null) {
+            uploadPatentBatchService.patentProjectFolderPatentLinkBusiness(uploadParamsVO, projectImportPatentVO);
+        }
+    }
+
 
 }