Sfoglia il codice sorgente

专利多数据源导入功能开发

沈永艺 3 anni fa
parent
commit
cc1ed21ca7

+ 1 - 1
PAS/src/main/java/cn/cslg/pas/common/model/params/PatentAffairParams.java

@@ -7,7 +7,7 @@ import java.util.List;
 @Data
 public class PatentAffairParams {
     private Integer dateTime;
-    private List<String> statusList;
+    private String statusList;
     private Integer simpleStatus;
     private String content;
     private Integer patentId;

+ 3 - 1
PAS/src/main/java/cn/cslg/pas/common/model/params/PatentInventorParams.java

@@ -6,7 +6,9 @@ import java.util.List;
 
 @Data
 public class PatentInventorParams {
-    private List<String> nameList;
     private Integer patentId;
+    private List<String> addressList;
+    private List<String> nameList;
     private String firstName;
+    private String firstAddress;
 }

+ 13 - 1
PAS/src/main/java/cn/cslg/pas/common/model/vo/UploadParamsVO.java

@@ -60,7 +60,7 @@ public class UploadParamsVO {
     /**
      * 申请人
      */
-    private List<PatentAffair> patentAffairList;
+    private List<PatentApplicant> patentApplicantList;
     private List<String> patentApplicantCurrentName;
     private List<String> patentApplicantStandardCurrentName;
     private List<String> patentApplicantOriginalName;
@@ -81,4 +81,16 @@ public class UploadParamsVO {
     private List<String> upcList;
     private List<String> ipcList;
 
+    /**
+     * 事务信息
+     */
+    private PatentAffair patentAffair;
+    private String simpleStatus;
+
+    /**
+     * 自定义字段
+     */
+    private String key;
+    private List<String> fieldList;
+
 }

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

@@ -43,12 +43,6 @@ public class UploadSettingVO {
         private String column;
 
         /**
-         * 该字段数据的存储类型 (目前在代码里面只有两种 Integer String   Date类型的数据在数据库里存储的类型为 int 型)
-         * 目前有三种类型 Integer String Date <- 这个date类型特别设置出来 会对这个时间类型的数据做一次处理
-         */
-        private String type;
-
-        /**
          * 分隔符
          */
         private String splitSymbol;

+ 12 - 1
PAS/src/main/java/cn/cslg/pas/common/utils/UploadPatentBatchUtil.java

@@ -72,6 +72,9 @@ public class UploadPatentBatchUtil {
                         }
                         //将格式化后的数据装配到VO类
                         assemblyObject(uploadParamsVO, column.getColumn(), getProcessData);
+                        if(key.contains(":")){
+                            uploadParamsVO.setKey(key);
+                        }
                     }
                 }
             }
@@ -84,11 +87,19 @@ public class UploadPatentBatchUtil {
 
     private static List<UploadSettingVO.Column> getColumn(List<UploadSettingVO.Column> jsonData, String key) {
         List<UploadSettingVO.Column> columnList = new ArrayList<>();
+
         for (UploadSettingVO.Column jsonDatum : jsonData) {
             if (jsonDatum.getSetName().equals(key)) {
                 columnList.add(jsonDatum);
             }
         }
+        if (key.contains(":")) {
+            UploadSettingVO.Column field = new UploadSettingVO.Column();
+            field.setColumn("fieldList");
+            field.setSplitSymbol("\\\n");
+            field.setHandler("cn.cslg.pas.common.utils.StringSpecialHandler");
+            columnList.add(field);
+        }
         return columnList;
     }
 
@@ -120,7 +131,7 @@ public class UploadPatentBatchUtil {
                         String listObjectType = firstItem.getClass().getTypeName();
                         //如果列表中的数据少于给的值的列表中的数据量
                         //添加数据以与给定的值对齐
-                        if (((List<?>) temObj).size() < ((List<?>) value).size()) {
+                        if (((List<?>) temObj).size() < ((List<?>) Objects.requireNonNull(value)).size()) {
                             for (int iIndex = ((List<?>) temObj).size(); iIndex < ((List<?>) value).size(); iIndex++) {
                                 Object cObj = Class.forName(listObjectType).newInstance();// trueType.newInstance();
                                 ((List<Object>) temObj).add(cObj);

+ 13 - 1
PAS/src/main/java/cn/cslg/pas/domain/PatentAffair.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * <p>
  * 专利信息事务信息表
@@ -26,7 +28,7 @@ public class PatentAffair extends BaseEntity<PatentAffair> {
     /**
      * 法律状态
      */
-    private Integer status;
+    private String status;
 
     /**
      * 简单法律状态
@@ -58,4 +60,14 @@ public class PatentAffair extends BaseEntity<PatentAffair> {
 
     @TableField(exist = false)
     private String createSimpleStatus;
+
+    @TableField(exist = false)
+    private List<INPADOC> inpadoc;
+
+    @Data
+    public static class INPADOC {
+        private String year;
+        private String content;
+        private String country;
+    }
 }

+ 21 - 11
PAS/src/main/java/cn/cslg/pas/service/PatentAffairService.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.service;
 
 import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.utils.StringUtils;
 import cn.cslg.pas.domain.Patent;
 import cn.cslg.pas.domain.PatentAffair;
 import cn.cslg.pas.domain.SystemDict;
@@ -42,6 +43,18 @@ public class PatentAffairService extends ServiceImpl<PatentAffairMapper, PatentA
         List<PatentAffair> dataList = this.list(queryWrapper);
         List<SystemDict> systemDictList = systemDictService.getSystemDictListByType(Arrays.asList(Constants.PATENT_STATUS, Constants.PATENT_SIMPLE_STATUS));
         dataList.forEach(item -> {
+            List<String> splitStr = StringUtils.changeStringToString(item.getContent(), "\\|");
+            List<PatentAffair.INPADOC> lst = new ArrayList<>();
+
+            for (int i = 0; i < splitStr.size(); i += 3) {
+                PatentAffair.INPADOC inpadoc = new PatentAffair.INPADOC();
+                inpadoc.setYear(splitStr.get(i).trim());
+                inpadoc.setContent(splitStr.get(i + 1).trim());
+                inpadoc.setCountry(splitStr.get(i + 2).trim());
+
+                lst.add(inpadoc);
+            }
+            item.setInpadoc(lst);
             item.setCreateTime(DateUtils.formatDate(item.getDateTime(), DateUtils.YYYY_MM_DD));
             item.setCreateSimpleStatus(systemDictList.stream().filter(systemDict -> systemDict.getType().equals(Constants.PATENT_SIMPLE_STATUS) && systemDict.getValue().equals(String.valueOf(item.getSimpleStatus()))).findFirst().orElse(new SystemDict()).getLabel());
             item.setCreateStatus(systemDictList.stream().filter(systemDict -> systemDict.getType().equals(Constants.PATENT_STATUS) && systemDict.getValue().equals(String.valueOf(item.getStatus()))).findFirst().orElse(new SystemDict()).getLabel());
@@ -70,18 +83,15 @@ public class PatentAffairService extends ServiceImpl<PatentAffairMapper, PatentA
     }
 
     public void updatePatientAffair(PatentAffairParams params) {
-        if (params.getStatusList() != null && params.getStatusList().size() != 0) {
+        if (params.getStatusList() != null) {
             this.deleteByPatentId(params.getPatentId());
-            List<PatentAffair> dataList = params.getStatusList().stream().map(item -> {
-                PatentAffair patentAffair = new PatentAffair();
-                patentAffair.setPatentId(params.getPatentId());
-                patentAffair.setStatus(PatentUtils.getIntKeyByOrganType(item));
-                patentAffair.setContent(params.getContent());
-                patentAffair.setDateTime(params.getDateTime());
-                patentAffair.setSimpleStatus(params.getSimpleStatus());
-                return patentAffair;
-            }).collect(Collectors.toList());
-            this.saveOrUpdateBatch(dataList);
+            PatentAffair patentAffair = new PatentAffair();
+            patentAffair.setPatentId(params.getPatentId());
+            patentAffair.setStatus(params.getStatusList());
+            patentAffair.setContent(params.getContent());
+            patentAffair.setDateTime(params.getDateTime());
+            patentAffair.setSimpleStatus(params.getSimpleStatus());
+            this.saveOrUpdate(patentAffair);
         }
     }
 

+ 34 - 6
PAS/src/main/java/cn/cslg/pas/service/PatentInventorService.java

@@ -189,16 +189,44 @@ public class PatentInventorService extends ServiceImpl<PatentInventorMapper, Pat
 
     public void updatePatentInventor(PatentInventorParams params) {
         if (params.getNameList() != null && params.getNameList().size() != 0) {
-            List<PatentInventor> dataList = params.getNameList().stream().map(name -> {
-                PatentInventor patentInventor = this.getPatentInventorByName(name);
+            List<PatentInventor> dataList = new ArrayList<>();
+            for (int i = 0; i < params.getNameList().size(); i++) {
+                PatentInventor patentInventor = this.getPatentInventorByName(params.getNameList().get(i));
                 if (patentInventor == null) {
                     patentInventor = new PatentInventor();
                 }
-                patentInventor.setName(name);
+                patentInventor.setName(params.getNameList().get(i));
                 patentInventor.setMerge(false);
-                patentInventor.setType(PatentUtils.getIntKeyByOrganType(name));
-                return patentInventor;
-            }).collect(Collectors.toList());
+                if (params.getAddressList().size() > i) {
+                    patentInventor.setAddress(params.getAddressList().get(i));
+                    if (params.getAddressList().get(i).substring(params.getAddressList().get(i).lastIndexOf(",") + 1).replaceAll(" ", "").length() == 2) {
+                        patentInventor.setCountry(params.getAddressList().get(i).substring(params.getAddressList().get(i).lastIndexOf(",") + 1).replaceAll(" ", ""));
+                    }
+                } else {
+                    patentInventor.setAddress("");
+                }
+
+                //patentInventor.setType(PatentUtils.getIntKeyByOrganType(name));
+                dataList.add(patentInventor);
+            }
+//            if (StringUtils.isNotEmpty(params.getFirstAddress())) {
+//                PatentInventor patentInventor = patentInventorList.stream().filter(PatentInventor::getFirst).findFirst().orElse(null);
+//                if (patentInventor != null) {
+//                    patentInventor.setAddress(params.getFirstAddress().replaceAll(" ", ""));
+//                    patentInventor.setCountry(params.getFirstAddress().substring(params.getFirstAddress().lastIndexOf(",") + 1).replaceAll(" ", ""));
+//                    patentInventor.updateById();
+//                }
+//            }
+//            List<PatentInventor> dataList = params.getNameList().stream().map(name -> {
+//                PatentInventor patentInventor = this.getPatentInventorByName(name);
+//                if (patentInventor == null) {
+//                    patentInventor = new PatentInventor();
+//                }
+//                patentInventor.setName(name);
+//                patentInventor.setMerge(false);
+//                patentInventor.setType(PatentUtils.getIntKeyByOrganType(name));
+//                return patentInventor;
+//            }).collect(Collectors.toList());
             this.saveOrUpdateBatch(dataList);
             PatentInventor first = dataList.stream().filter(item -> item.getName().equals(params.getFirstName())).findFirst().orElse(null);
             patentInventorLinkService.updatePatentInventLink(dataList.stream().map(PatentInventor::getId).collect(Collectors.toList()), params.getPatentId(), first == null ? 0 : first.getId());

+ 28 - 28
PAS/src/main/java/cn/cslg/pas/service/ProjectService.java

@@ -585,7 +585,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
                                         patentApplicantStandardCurrentName.addAll(PatentUtils.formatValue(value.toString()));
                                         break;
                                     case "法律状态/事件":
-                                        patentAffairParams.setStatusList(PatentUtils.formatValue(value.toString()));
+                                        //patentAffairParams.setStatusList(PatentUtils.formatValue(value.toString()));
                                         break;
                                     case "INPADOC法律状态":
                                         patentAffairParams.setContent(value.toString());
@@ -819,7 +819,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
                         //专利信息许可人
                         //patentLicensorService.updatePatentLicensor(patentLicensorParams);
                         //专利信息事务信息
-                        patentAffairService.updatePatientAffair(patentAffairParams);
+                        //patentAffairService.updatePatientAffair(patentAffairParams);
                         //权利人
                         //patentApplicantLinkService.updatePatentApplicantLink(patentApplicantCurrentName, patentApplicantStandardCurrentName, 1, patent.getId());
                         //申请人
@@ -827,9 +827,9 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
                         //申请人地址
                         patentApplicantService.updatePatentApplicantAddress(patentApplicantAddressParams);
                         //发明人
-                        //patentInventorService.updatePatentInventor(patentInventorParams);
+                        patentInventorService.updatePatentInventor(patentInventorParams);
                         //发明人地址
-                        patentInventorService.updatePatentInventorAddress(patentInventorAddressParams);
+                        //patentInventorService.updatePatentInventorAddress(patentInventorAddressParams);
                         //专利信息简单同族关联
                         //patentSimpleFamilyService.updatePatentSimpleFamily(patentSimpleFamilyParams);
                         //专利分类号关联
@@ -841,34 +841,34 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
                         //文件夹管理
                         //projectFolderPatentLinkService.updateProjectFolderLink(projectImportPatentVO, patent.getId());
                         //自定义字段
-                        patentService.updatePatentCustomField(patentCustomFieldParams);
+                        //patentService.updatePatentCustomField(patentCustomFieldParams);
                         //标签
                         //patentLabelService.updatePatentLabel(patentLabelParams);
-                        WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
-                                .setTaskId(params.getTaskId())
-                                .setProjectId(projectImportPatentVO.getProjectId())
-                                .setComplete(false)
-                                .setIndex(i)
-                                .setTaskType(Constants.TASK_IMPORT_PATENT)
-                                .setPercentage(total == 0 ? 0 : Math.round((total.equals(i) ? (i * 1D) : (i + 1D)) / total * 100D))
-                                .setFileName("")
-                                .setOldName(params.getOldName())
-                                .setUrl("")
-                                .setTotal(total), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), params.getUserId());
+//                        WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
+//                                .setTaskId(params.getTaskId())
+//                                .setProjectId(projectImportPatentVO.getProjectId())
+//                                .setComplete(false)
+//                                .setIndex(i)
+//                                .setTaskType(Constants.TASK_IMPORT_PATENT)
+//                                .setPercentage(total == 0 ? 0 : Math.round((total.equals(i) ? (i * 1D) : (i + 1D)) / total * 100D))
+//                                .setFileName("")
+//                                .setOldName(params.getOldName())
+//                                .setUrl("")
+//                                .setTotal(total), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), params.getUserId());
                     }
                 }
-                SpringUtil.getBean(ProjectService.class).setImportPatentTaskStatus(2, params.getTaskId());
-                WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
-                        .setTaskId(params.getTaskId())
-                        .setProjectId(projectImportPatentVO.getProjectId())
-                        .setComplete(true)
-                        .setIndex(total)
-                        .setTaskType(Constants.TASK_IMPORT_PATENT)
-                        .setPercentage(100L)
-                        .setFileName("")
-                        .setOldName(params.getOldName())
-                        .setUrl("")
-                        .setTotal(total), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), params.getUserId());
+//                SpringUtil.getBean(ProjectService.class).setImportPatentTaskStatus(2, params.getTaskId());
+//                WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
+//                        .setTaskId(params.getTaskId())
+//                        .setProjectId(projectImportPatentVO.getProjectId())
+//                        .setComplete(true)
+//                        .setIndex(total)
+//                        .setTaskType(Constants.TASK_IMPORT_PATENT)
+//                        .setPercentage(100L)
+//                        .setFileName("")
+//                        .setOldName(params.getOldName())
+//                        .setUrl("")
+//                        .setTotal(total), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), params.getUserId());
             }
         } catch (Exception e) {
             e.printStackTrace();

+ 125 - 76
PAS/src/main/java/cn/cslg/pas/service/UploadPatentBatchService.java

@@ -16,14 +16,17 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class UploadPatentBatchService {
     private final FileUtils fileUtils;
+    private final SystemDictService systemDictService;
     private final PatentImageService patentImageService;
     private final PatentService patentService;
     private final PatentAgencyService patentAgencyService;
@@ -40,6 +43,7 @@ public class UploadPatentBatchService {
     private final PatentApplicantLinkService patentApplicantLinkService;
     private final PatentLabelService patentLabelService;
     private final PatentClassNumberLinkService patentClassNumberLinkService;
+    private final PatentAffairService patentAffairService;
 
     @Async("singleThreadAsyncTaskExecutor")
     public void uploadPatentBatch(TaskParams params, ProjectImportPatentVO projectImportPatentVO) {
@@ -65,15 +69,21 @@ public class UploadPatentBatchService {
                 //专利信息需要特殊处理部分
                 //专利信息(摘要附图)数据装配
                 PictureData pictureData = pictureDataMap.get(String.valueOf(i + 1));
-                uploadParamsVO.getPatent().setAbstractPath(patentImageService.updatePatentImage(uploadParamsVO.getPatent().getId(), pictureData));
-                //专利信息(代理机构)数据装配
-                if (uploadParamsVO.getPatent().getAgencyId() != null) {
-                    uploadParamsVO.getPatent().setAgencyId(patentAgencyService.getAgencyStringIdByName(uploadParamsVO.getPatent().getAgencyId()));
+                if (uploadParamsVO.getPatent() != null) {
+                    if (uploadParamsVO.getPatent().getId() != null && pictureData != null) {
+                        uploadParamsVO.getPatent().setAbstractPath(patentImageService.updatePatentImage(uploadParamsVO.getPatent().getId(), pictureData));
+                    }
                 }
+                //专利信息(代理机构)数据装配
+                if (uploadParamsVO.getPatent() != null) {
+                    if (uploadParamsVO.getPatent().getAgencyId() != null) {
+                        uploadParamsVO.getPatent().setAgencyId(patentAgencyService.getAgencyStringIdByName(uploadParamsVO.getPatent().getAgencyId()));
+                    }
 
-
+                }
                 //将装配对象中的数据保存到数据库
-                dataToDB(uploadParamsVO, projectImportPatentVO);
+                dataToDB(params, uploadParamsVO, projectImportPatentVO);
+
                 WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
                         .setTaskId(params.getTaskId())
                         .setProjectId(projectImportPatentVO.getProjectId())
@@ -109,54 +119,74 @@ public class UploadPatentBatchService {
      * @name 数据库交互
      * @description 将装配完毕的VO类向数据库中不同的表进行添加或修改操作
      */
-    private void dataToDB(UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {
-        // TODO: 2022/7/12 发明人地址 申请人地址 自定义字段 事务信息
-        //专利信息
-        //表:OS_PATENT
-        uploadParamsVO.getPatent().updateById();
-        //权利要求
-        //表:OS_PATENT_RIGHT
-        patentRightBusiness(uploadParamsVO);
-        //说明书(文本)
-        //表:OS_PATENT_INSTRUCTION_TEXT
-        patentInstructionTextBusiness(uploadParamsVO);
-        //代理人
-        //表:OS_PATENT_AGENT
-        patentAgentBusiness(uploadParamsVO);
-        //质押质权人
-        //表:OS_PATENT_PLEDGE
-        patentPledgeBusiness(uploadParamsVO);
-        //许可人
-        //表:OS_PATENT_LICENSOR
-        patentLicensorBusiness(uploadParamsVO);
-        //简单同族
-        //表:OS_PATENT_SIMPLEFAMILY
-        patentSimplyFamilyBusiness(uploadParamsVO);
-        //发明人
-        //表:OS_PATENT_INVENTOR
-        patentInventorBusiness(uploadParamsVO);
-        patentInventorAddressBusiness(uploadParamsVO);
-        //申请人/权利人
-        //表:OS_APPLICATION_ATTR
-        //权利人
-        patentCurrentApplicationBusiness(uploadParamsVO);
-        //申请人
-        patentOriginalApplicationBusiness(uploadParamsVO);
-        //专题库关联专利信息
-        //表:OS_THEMATIC_PID
-        patentThematicPidBusiness(uploadParamsVO, projectImportPatentVO);
-        //标引内容关联专利信息
-        //表:OS_PATENT_FIELD_PATENT_LINK
-        patentProjectFieldPatentLinkBusiness(uploadParamsVO, projectImportPatentVO);
-        //文件夹管理
-        //表:OS_PORTFOLIO_LINK
-        patentProjectFolderPatentLinkBusiness(uploadParamsVO, projectImportPatentVO);
-        //标签
-        //表:OS_PATENT_LABEL
-        //patentLabelBusiness(uploadParamsVO, projectImportPatentVO);
-        //分类号关联
-        //表:OS_PATENT_TYPENO
-        patentTypeNoBusiness(uploadParamsVO);
+    private void dataToDB(TaskParams params, UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {
+        //专利信息 OS_PATENT
+        if (uploadParamsVO.getPatent() != null) {
+            uploadParamsVO.getPatent().updateById();
+        }
+        //权利要求 OS_PATENT_RIGHT
+        if (uploadParamsVO.getPatentRight() != null && uploadParamsVO.getSelfContent() != null) {
+            patentRightBusiness(uploadParamsVO);
+        }
+        //说明书(文本) OS_PATENT_INSTRUCTION_TEXT
+        if (uploadParamsVO.getPatentInstructionText() != null) {
+            patentInstructionTextBusiness(uploadParamsVO);
+        }
+        //代理人 OS_PATENT_AGENT
+        if (uploadParamsVO.getPatentAgentList() != null) {
+            patentAgentBusiness(uploadParamsVO);
+        }
+        //质押质权人 OS_PATENT_PLEDGE
+        if (uploadParamsVO.getPatentPledgeList() != null) {
+            patentPledgeBusiness(uploadParamsVO);
+        }
+        //许可人 OS_PATENT_LICENSOR
+        if (uploadParamsVO.getPatentLicensorList() != null) {
+            patentLicensorBusiness(uploadParamsVO);
+        }
+        //简单同族 OS_PATENT_SIMPLEFAMILY
+        if (uploadParamsVO.getSimpleFamily() != null && uploadParamsVO.getPatSnapFamily() != null && uploadParamsVO.getInpadocFamily() != null) {
+            patentSimplyFamilyBusiness(uploadParamsVO);
+        }
+        //发明人 OS_PATENT_INVENTOR
+        if (uploadParamsVO.getPatentInventorList() != null && uploadParamsVO.getFirstName() != null && uploadParamsVO.getFirstAddress() != null) {
+            patentInventorBusiness(uploadParamsVO);
+        }
+//        //申请人/权利人 OS_APPLICATION_ATTR
+//        //权利人
+//        patentCurrentApplicationBusiness(uploadParamsVO);
+//        //申请人
+//        patentOriginalApplicationBusiness(uploadParamsVO);
+        //专题库关联专利信息 OS_THEMATIC_PID
+        if (uploadParamsVO.getPatent() != null) {
+            patentThematicPidBusiness(uploadParamsVO, projectImportPatentVO);
+        }
+
+        //标引内容关联专利信息 OS_PATENT_FIELD_PATENT_LINK
+        if (uploadParamsVO.getPatent() != null) {
+
+            patentProjectFieldPatentLinkBusiness(uploadParamsVO, projectImportPatentVO);
+        }
+        //文件夹管理 OS_PORTFOLIO_LINK
+        if (uploadParamsVO.getPatent() != null) {
+            patentProjectFolderPatentLinkBusiness(uploadParamsVO, projectImportPatentVO);
+        }
+        //标签 OS_PATENT_LABEL
+        if (uploadParamsVO.getPatentLabelList() != null) {
+            patentLabelBusiness(uploadParamsVO, projectImportPatentVO);
+        }
+        //分类号关联 OS_PATENT_TYPENO
+        if (uploadParamsVO.getMainIpc() != null && uploadParamsVO.getMainUpc() != null && uploadParamsVO.getCpcList() != null && uploadParamsVO.getLocList() != null && uploadParamsVO.getUpcList() != null && uploadParamsVO.getIpcList() != null) {
+            patentTypeNoBusiness(uploadParamsVO);
+        }
+        //事务信息 OS_PATENT_AFFAIR
+        if (uploadParamsVO.getPatentAffair() != null && uploadParamsVO.getSimpleStatus() != null) {
+            patentAffairBusiness(uploadParamsVO);
+        }
+        //自定义字段
+        if (uploadParamsVO.getKey() != null && uploadParamsVO.getFieldList() != null) {
+            patentFieldBusiness(params, uploadParamsVO, projectImportPatentVO);
+        }
     }
 
     /**
@@ -166,13 +196,15 @@ public class UploadPatentBatchService {
      * @description 查询数据是否存在 如果存在 返回该条数据 如果不存在 新增一条数据
      */
     private void getOneOrInsertOne(UploadParamsVO uploadParamsVO) {
-        //用专利号查询该条数据是否存在
-        Patent patent = patentService.getByPatentNo(uploadParamsVO.getPatent().getPatentNo());
-        //如果不存在就新增一条
-        if (patent == null) {
-            uploadParamsVO.getPatent().insert();
-        } else {
-            uploadParamsVO.getPatent().setId(patent.getId());
+        if (uploadParamsVO.getPatent() != null) {
+            //用专利号查询该条数据是否存在
+            Patent patent = patentService.getByPatentNo(uploadParamsVO.getPatent().getPatentNo());
+            //如果不存在就新增一条
+            if (patent == null) {
+                uploadParamsVO.getPatent().insert();
+            } else {
+                uploadParamsVO.getPatent().setId(patent.getId());
+            }
         }
     }
 
@@ -246,20 +278,15 @@ public class UploadPatentBatchService {
         PatentInventorParams patentInventorParams = new PatentInventorParams();
         patentInventorParams.setPatentId(uploadParamsVO.getPatent().getId());
         patentInventorParams.setFirstName(uploadParamsVO.getFirstName());
+        patentInventorParams.setFirstAddress(uploadParamsVO.getFirstAddress());
+        List<String> addressList = uploadParamsVO.getPatentInventorList().stream().map(PatentInventor::getAddress).filter(Objects::nonNull).collect(Collectors.toList());
+        patentInventorParams.setAddressList(addressList);
         List<String> nameList = uploadParamsVO.getPatentInventorList().stream().map(PatentInventor::getName).collect(Collectors.toList());
         patentInventorParams.setNameList(nameList);
 
         patentInventorService.updatePatentInventor(patentInventorParams);
-    }
-
-    private void patentInventorAddressBusiness(UploadParamsVO uploadParamsVO) {
-        PatentInventorAddressParams patentInventorAddressParams = new PatentInventorAddressParams();
-        List<String> addressList = uploadParamsVO.getPatentInventorList().stream().map(PatentInventor::getAddress).collect(Collectors.toList());
-        patentInventorAddressParams.setAddress(addressList);
-        patentInventorAddressParams.setFirstAddress(uploadParamsVO.getFirstAddress());
-        patentInventorAddressParams.setPatentId(uploadParamsVO.getPatent().getId());
 
-        patentInventorService.updatePatentInventorAddress(patentInventorAddressParams);
+        //patentInventorService.updatePatentInventorAddress(patentInventorAddressParams);
     }
 
     private void patentCurrentApplicationBusiness(UploadParamsVO uploadParamsVO) {
@@ -286,12 +313,8 @@ public class UploadPatentBatchService {
         PatentLabelParams patentLabelParams = new PatentLabelParams();
         patentLabelParams.setPatentId(uploadParamsVO.getPatent().getId());
         patentLabelParams.setProjectId(projectImportPatentVO.getProjectId());
-        if (uploadParamsVO.getPatentLabelList().get(0).getName() != null) {
-            List<String> labelList = uploadParamsVO.getPatentLabelList().stream().map(PatentLabel::getName).collect(Collectors.toList());
-            patentLabelParams.setLabel(labelList);
-
-        }
-
+        List<String> labelList = uploadParamsVO.getPatentLabelList().stream().map(PatentLabel::getName).collect(Collectors.toList());
+        patentLabelParams.setLabel(labelList);
 
         patentLabelService.updatePatentLabel(patentLabelParams);
     }
@@ -309,5 +332,31 @@ public class UploadPatentBatchService {
         patentClassNumberLinkService.updatePatentClassNumberLink(patentClassNumberParams);
     }
 
+    private void patentAffairBusiness(UploadParamsVO uploadParamsVO) {
+        PatentAffairParams patentAffairParams = new PatentAffairParams();
+        patentAffairParams.setPatentId(uploadParamsVO.getPatent().getId());
+        patentAffairParams.setContent(uploadParamsVO.getPatentAffair().getContent());
+        List<SystemDict> systemDictList = systemDictService.getSystemDictListByType(Collections.singletonList(Constants.PATENT_SIMPLE_STATUS));
+        Integer simpleStatus = Integer.parseInt(systemDictList.stream()
+                .filter(systemDict -> systemDict.getType().equals(Constants.PATENT_SIMPLE_STATUS) && systemDict.getLabel().equals(uploadParamsVO.getSimpleStatus()))
+                .findFirst()
+                .orElse(new SystemDict()).getValue());
+        patentAffairParams.setSimpleStatus(simpleStatus);
+        patentAffairParams.setStatusList(uploadParamsVO.getPatentAffair().getStatus());
+        patentAffairParams.setDateTime(uploadParamsVO.getPatentAffair().getDateTime());
+
+        patentAffairService.updatePatientAffair(patentAffairParams);
+    }
+
+    private void patentFieldBusiness(TaskParams params, UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {
+        PatentCustomFieldParams patentCustomFieldParams = new PatentCustomFieldParams();
+        patentCustomFieldParams.setPatentId(uploadParamsVO.getPatent().getId());
+        patentCustomFieldParams.setProjectId(projectImportPatentVO.getProjectId());
+        patentCustomFieldParams.setUserId(Integer.parseInt(params.getUserId()));
+        patentCustomFieldParams.put(uploadParamsVO.getKey(), uploadParamsVO.getFieldList());
+
+        patentService.updatePatentCustomField(patentCustomFieldParams);
+    }
+
 }
 

+ 1 - 1
PAS/src/main/resources/application-dev.yml

@@ -5,7 +5,7 @@ spring:
     database: 2
     timeout: 1000
   datasource:
-    url: jdbc:mysql://192.168.0.57:3306/pas_test_syy?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
+    url: jdbc:mysql://192.168.0.57:3306/pas?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
     username: root
     password: 123456
     driver-class-name: com.mysql.cj.jdbc.Driver