|
@@ -28,76 +28,42 @@ import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 保存专利入库
|
|
|
|
|
|
+ * 保存专利及所有专利关联入库
|
|
*
|
|
*
|
|
* @Author chenyu
|
|
* @Author chenyu
|
|
* @Date 2023/5/30
|
|
* @Date 2023/5/30
|
|
*/
|
|
*/
|
|
@Service
|
|
@Service
|
|
@RequiredArgsConstructor
|
|
@RequiredArgsConstructor
|
|
-public class UploadPatentService {
|
|
|
|
|
|
+public class UploadPatentToDBService {
|
|
private final SystemDictService systemDictService;
|
|
private final SystemDictService systemDictService;
|
|
private final PatentAgencyService patentAgencyService;
|
|
private final PatentAgencyService patentAgencyService;
|
|
private final UploadPatentBatchService uploadPatentBatchService;
|
|
private final UploadPatentBatchService uploadPatentBatchService;
|
|
private final PatentImageService patentImageService;
|
|
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)
|
|
//基础数据入库(取专利id)
|
|
uploadPatentBase(uploadParamsVO);
|
|
uploadPatentBase(uploadParamsVO);
|
|
//摘要附图入库
|
|
//摘要附图入库
|
|
- uploadPatentImage(uploadParamsVO, pictureData);
|
|
|
|
|
|
+ uploadPatentImage(uploadParamsVO, uploadParamsVO.getPictureData());
|
|
//著录项目入库
|
|
//著录项目入库
|
|
uploadPatentZhulu(uploadParamsVO);
|
|
uploadPatentZhulu(uploadParamsVO);
|
|
//说明书文本入库
|
|
//说明书文本入库
|
|
uploadPatentInstructionText(uploadParamsVO);
|
|
uploadPatentInstructionText(uploadParamsVO);
|
|
//权要入库
|
|
//权要入库
|
|
uploadPatentRight(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);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
}
|
|
}
|