Explorar el Código

Merge branch 'develop' of luocaiyang/Wispro-CodeWarehouse-BackEnd into release

沈永艺 hace 3 años
padre
commit
362089d86f

+ 6 - 4
PAS/src/main/java/cn/cslg/pas/common/model/params/PatentApplicantAddressParams.java

@@ -2,12 +2,14 @@ package cn.cslg.pas.common.model.params;
 
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class PatentApplicantAddressParams {
-    private String currentCountry;
-    private String originalCountry;
-    private String currentAddress;
+    private List<String> currentCountry;
+    private List<String> originalCountry;
+    private List<String> currentAddress;
     private String firstCurrentAddress;
-    private String originalAddress;
+    private List<String> originalAddress;
     private Integer patentId;
 }

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

@@ -62,10 +62,19 @@ public class UploadParamsVO {
      * 申请人
      */
     private List<PatentApplicant> patentApplicantList;
+    //权利人
     private List<String> patentApplicantCurrentName;
     private List<String> patentApplicantStandardCurrentName;
+    //申请人
     private List<String> patentApplicantOriginalName;
     private List<String> patentApplicantStandardOriginalName;
+    //权利人地址
+    private List<String> patentApplicantCurrentAddress;
+    private List<String> patentApplicantCurrentCountry;
+    private String patentApplicantCurrentFirstAddress;
+    //申请人地址
+    private List<String> patentApplicantOriginalAddress;
+    private List<String> patentApplicantOriginalCountry;
 
     /**
      * 标签

+ 41 - 2
PAS/src/main/java/cn/cslg/pas/common/utils/DataProcessHandler.java

@@ -3,7 +3,9 @@ package cn.cslg.pas.common.utils;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -12,17 +14,25 @@ interface IProcessData {
     Object processData(Object data, Object code);
 }
 
+/**
+ * @name 一般字符串处理类
+ * @description 1.带有分隔符按照分隔符拆分(去除所有空格) 2.不带分隔符直接返回原数据
+ */
 class StringHandler implements IProcessData {
     @Override
     public Object processData(Object data, Object splitSymbol) {
         if (!"".equals(splitSymbol)) {
-            return StringUtils.changeStringToString(data.toString().replaceAll(" ", ""), splitSymbol.toString());
+            return StringUtils.changeStringToString(data.toString().trim(), splitSymbol.toString());
         } else {
             return data.toString();
         }
     }
 }
 
+/**
+ * @name 时间处理类
+ * @description 1.将时间类型数据转换为int型 2.现支持格式为 yyyy-MM-dd yyyy/MM/dd 可后需添加
+ */
 class TimeHandler implements IProcessData {
     @Override
     public Object processData(Object data, Object splitSymbol) {
@@ -30,6 +40,10 @@ class TimeHandler implements IProcessData {
     }
 }
 
+/**
+ * @name 数字处理类
+ * @description 1.传入的字符型数字数据转换为int型
+ */
 class IntegerHandler implements IProcessData {
     @Override
     public Object processData(Object data, Object splitSymbol) {
@@ -37,6 +51,10 @@ class IntegerHandler implements IProcessData {
     }
 }
 
+/**
+ * @name 特殊字符串处理类
+ * @description 1.带有分隔符按照分隔符拆分(去除 '>' 符号) 2.不带分隔符直接返回原数据 3.目前只有两个字段会使用 (1)标签(2)自定义字段
+ */
 class StringSpecialHandler implements IProcessData {
     @Override
     public Object processData(Object data, Object splitSymbol) {
@@ -48,6 +66,10 @@ class StringSpecialHandler implements IProcessData {
     }
 }
 
+/**
+ * @name
+ * @description
+ */
 class SplitOriginalAndTranslationHandler implements IProcessData {
     @Override
     public Object processData(Object data, Object splitSymbol) {
@@ -63,6 +85,10 @@ class SplitOriginalAndTranslationHandler implements IProcessData {
     }
 }
 
+/**
+ * @name 专利类型处理类
+ * @description 1.将传入的专利类型转换成不同的ID 2.目前这个没有用字典项的原因是因为不同数据源的叫法不一致 无法统一进行分类
+ */
 class PatentTypeHandler implements IProcessData {
     @Override
     public Object processData(Object data, Object ob) {
@@ -174,6 +200,19 @@ class IncoPatUCMainHandler implements IProcessData {
     }
 }
 
+class IncoPatInventorAddressHandler implements IProcessData {
+    @Override
+    public Object processData(Object data, Object code) {
+        List<String> splitStr = StringUtils.changeStringToString(data.toString().replaceAll(" ", ""), ";");
+        if (code.toString().equals("1")) {
+            return splitStr;
+        } else if (code.toString().equals("2")) {
+            return splitStr.get(0);
+        }
+        return null;
+    }
+}
+
 class PatenticsPatentAffairHandler implements IProcessData {
     @Override
     public Object processData(Object data, Object code) {

+ 75 - 43
PAS/src/main/java/cn/cslg/pas/service/PatentApplicantService.java

@@ -232,70 +232,102 @@ public class PatentApplicantService extends ServiceImpl<PatentApplicantMapper, P
     }
 
     /**
-     *
-     * @param name 权利人 通过分割符 | 分割后的List
+     * @param name      权利人 通过分割符 | 分割后的List
      * @param shortName 【标】权利人 通过分割符 | 分割后的List
-     * @return
      */
     public List<Integer> updatePatentApplicant(List<String> name, List<String> shortName) {
         //生成 一个存放ID的List
         List<Integer> ids = new ArrayList<>();
-        for (int i = 0; i < name.size(); i++) {
-            String s = i < shortName.size() ? shortName.get(i) : null;
-            LambdaQueryWrapper<PatentApplicant> queryWrapper = new LambdaQueryWrapper<>();
-            queryWrapper.eq(PatentApplicant::getName, name.get(i));
-            queryWrapper.eq(PatentApplicant::getMerge, 0);
-            PatentApplicant temp = this.getOne(queryWrapper);
-            if (temp == null) {
-                temp = this.add(name.get(i), s);
-            } else if (s != null && !s.equals(temp.getShortName())) {
-                temp.setShortName(s);
-                temp.updateById();
+        if (name != null) {
+            for (int i = 0; i < name.size(); i++) {
+                String s = i < shortName.size() ? shortName.get(i) : null;
+                LambdaQueryWrapper<PatentApplicant> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(PatentApplicant::getName, name.get(i));
+                queryWrapper.eq(PatentApplicant::getMerge, 0);
+                PatentApplicant temp = this.getOne(queryWrapper);
+                if (temp == null) {
+                    temp = this.add(name.get(i), s);
+                } else if (s != null && !s.equals(temp.getShortName())) {
+                    temp.setShortName(s);
+                    temp.updateById();
+                }
+                ids.add(temp.getId());
+            }
+        } else {
+            for (String s : shortName) {
+                LambdaQueryWrapper<PatentApplicant> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(PatentApplicant::getName, "");
+                queryWrapper.eq(PatentApplicant::getShortName, s);
+                queryWrapper.eq(PatentApplicant::getMerge, 0);
+                PatentApplicant temp = this.getOne(queryWrapper);
+                if (temp == null) {
+                    temp = this.add("", s);
+                } else if (s != null && !s.equals(temp.getShortName())) {
+                    temp.setShortName(s);
+                    temp.updateById();
+                }
+                ids.add(temp.getId());
             }
-            ids.add(temp.getId());
         }
+
         return ids;
     }
 
     public void updatePatentApplicantAddress(PatentApplicantAddressParams params) {
+        //用专利ID获取数据 申请人ID 申请人类型 申请人顺序
         List<PatentApplicantLink> patentApplicantLinkList = patentApplicantLinkService.getPatentApplicantAttributesByPatentId(params.getPatentId());
+        //获取属于权利人的ID List 并且是第一位
         List<Integer> currentIds = patentApplicantLinkList.stream().filter(item -> item.getType().equals(1) && !item.getOrder().equals(0)).map(PatentApplicantLink::getApplicantId).collect(Collectors.toList());
         Integer firstCurrentId = patentApplicantLinkList.stream().filter(item -> item.getType().equals(1) && item.getOrder().equals(0)).map(PatentApplicantLink::getApplicantId).findFirst().orElse(null);
         List<Integer> originalIds = patentApplicantLinkList.stream().filter(item -> item.getType().equals(2) && item.getOrder().equals(0)).map(PatentApplicantLink::getApplicantId).collect(Collectors.toList());
+
         List<PatentApplicant> currentList = this.getPatentApplicantByIds(currentIds);
         PatentApplicant first = this.getById(firstCurrentId);
         List<PatentApplicant> originalList = this.getPatentApplicantByIds(originalIds);
-        if (StringUtils.isNotEmpty(params.getCurrentAddress())) {
-            currentList.forEach(item -> {
-                AreaAddressDTO dto = areaService.getAreaAddressDTO(params.getCurrentAddress());
-                item.setAddressStr(params.getCurrentAddress());
-                item.setProvinceId(dto.getProvinceId());
-                item.setCityId(dto.getCityId());
-                item.setAreaId(dto.getAreaId());
-                item.updateById();
-            });
+
+        if (params.getCurrentAddress() != null) {
+            for (int i = 0; i < params.getCurrentAddress().size(); i++) {
+                int finalI = i;
+                currentList.forEach(item -> {
+                    AreaAddressDTO dto = areaService.getAreaAddressDTO(params.getCurrentAddress().get(finalI));
+                    item.setAddressStr(params.getCurrentAddress().get(finalI));
+                    item.setProvinceId(dto.getProvinceId());
+                    item.setCityId(dto.getCityId());
+                    item.setAreaId(dto.getAreaId());
+                    item.updateById();
+                });
+            }
         }
-        if (StringUtils.isNotEmpty(params.getCurrentCountry())) {
-            currentList.forEach(item -> {
-                item.setCountry(params.getCurrentCountry());
-                item.updateById();
-            });
+        if (params.getCurrentCountry() != null) {
+            for (int i = 0; i < params.getCurrentCountry().size(); i++) {
+                int finalI = i;
+                currentList.forEach(item -> {
+                    item.setCountry(params.getCurrentCountry().get(finalI));
+                    item.updateById();
+                });
+            }
         }
-        if (StringUtils.isNotEmpty(params.getOriginalAddress())) {
-            originalList.forEach(item -> {
-                AreaAddressDTO dto = areaService.getAreaAddressDTO(params.getOriginalAddress());
-                item.setAddressStr(params.getOriginalAddress());
-                item.setProvinceId(dto.getProvinceId());
-                item.setCityId(dto.getCityId());
-                item.setAreaId(dto.getAreaId());
-                item.updateById();
-            });
+        if (params.getOriginalAddress() != null) {
+            for (int i = 0; i < params.getOriginalAddress().size(); i++) {
+                int finalI = i;
+                originalList.forEach(item -> {
+                    AreaAddressDTO dto = areaService.getAreaAddressDTO(params.getOriginalAddress().get(finalI));
+                    item.setAddressStr(params.getOriginalAddress().get(finalI));
+                    item.setProvinceId(dto.getProvinceId());
+                    item.setCityId(dto.getCityId());
+                    item.setAreaId(dto.getAreaId());
+                    item.updateById();
+                });
+            }
         }
-        if (StringUtils.isNotEmpty(params.getOriginalCountry())) {
-            originalList.forEach(item -> {
-                item.setCountry(params.getOriginalCountry());
-                item.updateById();
-            });
+        if (params.getOriginalCountry() != null) {
+            for (int i = 0; i < params.getOriginalCountry().size(); i++) {
+                int finalI = i;
+                originalList.forEach(item -> {
+                    item.setCountry(params.getOriginalCountry().get(finalI));
+                    item.updateById();
+                });
+            }
         }
         if (StringUtils.isNotEmpty(params.getFirstCurrentAddress()) && first != null) {
             AreaAddressDTO dto = areaService.getAreaAddressDTO(params.getFirstCurrentAddress());

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

@@ -576,10 +576,10 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
                                         patentApplicantCurrentName.addAll(PatentUtils.formatValue(value.toString()));
                                         break;
                                     case "当前申请(专利权)人地址":
-                                        patentApplicantAddressParams.setCurrentAddress(value.toString());
+                                        //patentApplicantAddressParams.setCurrentAddress(value.toString());
                                         break;
                                     case "当前申请(专利权)人国家":
-                                        patentApplicantAddressParams.setCurrentCountry(value.toString());
+                                        //patentApplicantAddressParams.setCurrentCountry(value.toString());
                                         break;
                                     case "[标]当前申请(专利权)人":
                                         patentApplicantStandardCurrentName.addAll(PatentUtils.formatValue(value.toString()));
@@ -650,10 +650,10 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
                                         patentApplicantOriginalName.addAll(PatentUtils.formatValue(value.toString()));
                                         break;
                                     case "原始申请(专利权)人地址":
-                                        patentApplicantAddressParams.setOriginalAddress(value.toString());
+                                        //patentApplicantAddressParams.setOriginalAddress(value.toString());
                                         break;
                                     case "原始申请(专利权)人国家":
-                                        patentApplicantAddressParams.setOriginalCountry(value.toString());
+                                        //patentApplicantAddressParams.setOriginalCountry(value.toString());
                                         break;
                                     case "[标]原始申请(专利权)人":
                                         patentApplicantStandardOriginalName.addAll(PatentUtils.formatValue(value.toString()));
@@ -819,17 +819,17 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
                         //专利信息许可人
                         //patentLicensorService.updatePatentLicensor(patentLicensorParams);
                         //专利信息事务信息
-                        patentAffairService.updatePatientAffair(patentAffairParams);
+                        //patentAffairService.updatePatientAffair(patentAffairParams);
                         //权利人
-                        //patentApplicantLinkService.updatePatentApplicantLink(patentApplicantCurrentName, patentApplicantStandardCurrentName, 1, patent.getId());
+                        patentApplicantLinkService.updatePatentApplicantLink(patentApplicantCurrentName, patentApplicantStandardCurrentName, 1, patent.getId());
                         //申请人
-                        //patentApplicantLinkService.updatePatentApplicantLink(patentApplicantOriginalName, patentApplicantStandardOriginalName, 2, patent.getId());
+                        patentApplicantLinkService.updatePatentApplicantLink(patentApplicantOriginalName, patentApplicantStandardOriginalName, 2, patent.getId());
                         //申请人地址
                         patentApplicantService.updatePatentApplicantAddress(patentApplicantAddressParams);
                         //发明人
                         patentInventorService.updatePatentInventor(patentInventorParams);
                         //发明人地址
-                        //patentInventorService.updatePatentInventorAddress(patentInventorAddressParams);
+                        patentInventorService.updatePatentInventorAddress(patentInventorAddressParams);
                         //专利信息简单同族关联
                         //patentSimpleFamilyService.updatePatentSimpleFamily(patentSimpleFamilyParams);
                         //专利分类号关联

+ 20 - 8
PAS/src/main/java/cn/cslg/pas/service/UploadPatentBatchService.java

@@ -42,6 +42,7 @@ public class UploadPatentBatchService {
     private final ProjectFieldPatentLinkService projectFieldPatentLinkService;
     private final ProjectFolderPatentLinkService projectFolderPatentLinkService;
     private final PatentApplicantLinkService patentApplicantLinkService;
+    private final PatentApplicantService patentApplicantService;
     private final PatentLabelService patentLabelService;
     private final PatentClassNumberLinkService patentClassNumberLinkService;
     private final PatentAffairService patentAffairService;
@@ -165,11 +166,12 @@ public class UploadPatentBatchService {
             patentSimplyFamilyBusiness(uploadParamsVO);
             //发明人 OS_PATENT_INVENTOR
             patentInventorBusiness(uploadParamsVO);
-            //申请人/权利人 OS_APPLICATION_ATTR
-            //权利人
-            //patentCurrentApplicationBusiness(uploadParamsVO);
-            //申请人
-            //patentOriginalApplicationBusiness(uploadParamsVO);
+            //申请人(原始)/权利人(当前) OS_PATENT_APPLICATION || OS_APPLICATION_ATTR
+            if (uploadParamsVO.getPatentApplicantStandardCurrentName() != null && uploadParamsVO.getPatentApplicantOriginalName() != null && uploadParamsVO.getPatentApplicantStandardOriginalName() != null) {
+                patentApplicationBusiness(uploadParamsVO);
+            }
+            //申请人地址 OS_PATENT_APPLICATION
+            patentApplicationAddressBusiness(uploadParamsVO);
             //专题库关联专利信息 OS_THEMATIC_PID
             if (uploadParamsVO.getPatent() != null) {
                 patentThematicPidBusiness(uploadParamsVO, projectImportPatentVO);
@@ -324,12 +326,22 @@ public class UploadPatentBatchService {
         patentInventorService.updatePatentInventor(patentInventorParams);
     }
 
-    private void patentCurrentApplicationBusiness(UploadParamsVO uploadParamsVO) {
+    private void patentApplicationBusiness(UploadParamsVO uploadParamsVO) {
+        //权利人
         patentApplicantLinkService.updatePatentApplicantLink(uploadParamsVO.getPatentApplicantCurrentName(), uploadParamsVO.getPatentApplicantStandardCurrentName(), 1, uploadParamsVO.getPatent().getId());
+        //申请人
+        patentApplicantLinkService.updatePatentApplicantLink(uploadParamsVO.getPatentApplicantOriginalName(), uploadParamsVO.getPatentApplicantStandardOriginalName(), 2, uploadParamsVO.getPatent().getId());
     }
 
-    private void patentOriginalApplicationBusiness(UploadParamsVO uploadParamsVO) {
-        patentApplicantLinkService.updatePatentApplicantLink(uploadParamsVO.getPatentApplicantOriginalName(), uploadParamsVO.getPatentApplicantStandardOriginalName(), 2, uploadParamsVO.getPatent().getId());
+    private void patentApplicationAddressBusiness(UploadParamsVO uploadParamsVO) {
+        PatentApplicantAddressParams patentApplicantAddressParams = new PatentApplicantAddressParams();
+        patentApplicantAddressParams.setPatentId(uploadParamsVO.getPatent().getId());
+        patentApplicantAddressParams.setCurrentAddress(uploadParamsVO.getPatentApplicantCurrentAddress());
+        patentApplicantAddressParams.setOriginalAddress(uploadParamsVO.getPatentApplicantOriginalAddress());
+        patentApplicantAddressParams.setCurrentCountry(uploadParamsVO.getPatentApplicantCurrentCountry());
+        patentApplicantAddressParams.setOriginalCountry(uploadParamsVO.getPatentApplicantOriginalCountry());
+        patentApplicantAddressParams.setFirstCurrentAddress(uploadParamsVO.getFirstAddress());
+        patentApplicantService.updatePatentApplicantAddress(patentApplicantAddressParams);
     }
 
     private void patentThematicPidBusiness(UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {