Sfoglia il codice sorgente

2022-10-31 11:31:00 分析系统提交代码 法律事件统计

沈永艺 2 anni fa
parent
commit
1475450184

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

@@ -57,7 +57,7 @@ public class PatentVO extends BaseVO {
     private List<String> whereInventor;
     private List<String> whereInventorMerge;
     private Boolean queryAffair;
-    private List<String> whereAffair;
+    private String whereAffair;
     private Boolean queryFieldMultiple;
     private List<String> whereFieldMultiple;
     private Boolean whereFieldMultipleNull;

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

@@ -66,7 +66,8 @@ public class UploadPatentBatchUtil {
                 String key = object.toString();
                 Object value = row.get(key);
                 if (key.contains(":")) {
-                    if (!value.equals("")) {
+                    // TODO: 2022/10/15 添加判空校验
+                    if (value != null && !value.equals("")) {
                         UploadParamsVO.Field field = new UploadParamsVO.Field();
                         StringSpecialHandler stringSpecialHandler = new StringSpecialHandler();
                         field.setKey(key);

+ 10 - 0
PAS/src/main/java/cn/cslg/pas/mapper/PatentMapper.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
 import java.util.Map;
@@ -41,4 +42,13 @@ public interface PatentMapper extends BaseMapper<Patent> {
     IPage<PatentQueryFieldSourceDTO> getPatentQuerySourcePageList(Page<Patent> page, @Param("params") PatentQueryFieldSourceVO params, @Param("ids") List<Integer> patentIds);
 
     List<PatentQueryFieldSourceDTO> getPatentQuerySourcePageList(@Param("params") PatentQueryFieldSourceVO params, @Param("ids") List<Integer> patentIds);
+
+    @Select(" SELECT count(status) as count, status as label" +
+            " FROM os_patent_affair A\n" +
+            " where A.pid IN (SELECT op.id\n" +
+            "                FROM os_patent op\n" +
+            "                         LEFT JOIN os_thematic_pid c on c.pid = op.id\n" +
+            "                where c.zid = #{projectId})\n" +
+            " group by status ")
+    List<PatentQueryFieldSourceDTO> getCountStatus(@Param("projectId") Integer projectId);
 }

+ 49 - 1
PAS/src/main/java/cn/cslg/pas/service/PatentService.java

@@ -339,7 +339,11 @@ public class PatentService extends ServiceImpl<PatentMapper, Patent> {
                     break;
                 case "40-0":
                     params.setQueryAffair(true);
-                    params.setWhereAffair(queryList);
+                    StringBuilder str = new StringBuilder();
+                    for (String s : queryList) {
+                        str.append(s).append("|");
+                    }
+                    params.setWhereAffair(str.substring(0,str.length()-1));
                     break;
                 case "54-0":
                     params.setQueryLabel(true);
@@ -924,6 +928,50 @@ public class PatentService extends ServiceImpl<PatentMapper, Patent> {
 
     public IPage<PatentQueryFieldSourceDTO> getPatentAttributeSourcePageList(PatentQueryFieldSourceVO params) {
         this.setPatentQuerySourceParams(params);
+        if (params.getKey().equals("40-0")) {
+            Integer projectId = params.getProjectId();
+            List<PatentQueryFieldSourceDTO> dataList = baseMapper.getCountStatus(projectId);
+            List<PatentQueryFieldSourceDTO> lstA = new ArrayList<>();
+            List<PatentQueryFieldSourceDTO> lstB = new ArrayList<>();
+            dataList.forEach(item -> {
+                if (StringUtils.changeStringToString(item.getLabel(), "\\|").size() > 1) {
+                    lstA.add(item);
+                } else {
+                    lstB.add(item);
+                }
+            });
+            lstA.forEach(item -> {
+                List<String> stringList = StringUtils.changeStringToString(item.getLabel(), "\\|");
+
+                stringList.forEach(x -> {
+                    List<PatentQueryFieldSourceDTO> lstC = new ArrayList<>();
+                    for (PatentQueryFieldSourceDTO patentQueryFieldSourceDTO : lstB) {
+                        if (!lstB.stream().map(PatentQueryFieldSourceDTO::getLabel).collect(Collectors.toList()).contains(x)) {
+                            PatentQueryFieldSourceDTO a = new PatentQueryFieldSourceDTO();
+                            a.setCount(item.getCount());
+                            a.setLabel(x);
+                            lstC.add(a);
+                            break;
+                        }
+                        if (patentQueryFieldSourceDTO.getLabel().equals(x)) {
+                            patentQueryFieldSourceDTO.setCount(patentQueryFieldSourceDTO.getCount() + item.getCount());
+                        }
+                    }
+                    lstB.addAll(lstC);
+                });
+            });
+            List<SystemDict> systemDictList = systemDictService.getSystemDictListByType(Collections.singletonList(Constants.PATENT_STATUS));
+            lstB.forEach(b -> {
+                Integer status = Integer.parseInt(systemDictList.stream()
+                        .filter(systemDict -> systemDict.getType().equals(Constants.PATENT_STATUS) && systemDict.getLabel().equals(b.getLabel()))
+                        .findFirst()
+                        .orElse(new SystemDict()).getValue());
+                b.setValue(String.valueOf(status));
+            });
+            IPage<PatentQueryFieldSourceDTO> pageList = baseMapper.getPatentQuerySourcePageList(new Page<>(params.getCurrent(), params.getSize()), params, new ArrayList<>());
+            pageList.setRecords(lstB);
+            return pageList;
+        }
         IPage<PatentQueryFieldSourceDTO> pageList = baseMapper.getPatentQuerySourcePageList(new Page<>(params.getCurrent(), params.getSize()), params, new ArrayList<>());
         pageList.getRecords().forEach(item -> item.setIds(null));
         return pageList;

+ 29 - 35
PAS/src/main/java/cn/cslg/pas/service/PatentSimpleFamilyService.java

@@ -1,19 +1,18 @@
 package cn.cslg.pas.service;
 
-import cn.cslg.pas.domain.*;
-import cn.cslg.pas.common.utils.StringUtils;
-import cn.cslg.pas.mapper.PatentSimpleFamilyMapper;
 import cn.cslg.pas.common.model.params.PatentSimpleFamilyParams;
 import cn.cslg.pas.common.utils.PatentUtils;
+import cn.cslg.pas.common.utils.StringUtils;
+import cn.cslg.pas.domain.Patent;
+import cn.cslg.pas.domain.PatentSimpleFamily;
+import cn.cslg.pas.domain.PatentSimpleFamilyLink;
+import cn.cslg.pas.mapper.PatentSimpleFamilyMapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -33,16 +32,16 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
     private final PatentApplicantService patentApplicantService;
     private final PatentSimpleFamilyLinkService patentSimpleFamilyLinkService;
 
-    public PatentSimpleFamily  getPatentSimpleFamilyByIdsAndType(List<Integer> ids, Integer type) {
+    public PatentSimpleFamily getPatentSimpleFamilyByIdsAndType(List<Integer> ids, Integer type) {
         if (ids == null || ids.size() == 0) {
             return null;
         }
         LambdaQueryWrapper<PatentSimpleFamily> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.in(PatentSimpleFamily::getId, ids);
         queryWrapper.eq(PatentSimpleFamily::getType, type);
-        List<PatentSimpleFamily> patentSimpleFamilies =this.list(queryWrapper);
-        if(patentSimpleFamilies.size()==0){
-            return  null;
+        List<PatentSimpleFamily> patentSimpleFamilies = this.list(queryWrapper);
+        if (patentSimpleFamilies.size() == 0) {
+            return null;
         }
         return patentSimpleFamilies.get(0);
     }
@@ -56,7 +55,7 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
         return this.list(queryWrapper);
     }
 
-    public void importPatentSimpleFamily(Patent patent, List<PatentSimpleFamily> importPatentSimpleFamilyList,  List<PatentSimpleFamilyLink> importPatentSimpleFamilyLinkList) {
+    public void importPatentSimpleFamily(Patent patent, List<PatentSimpleFamily> importPatentSimpleFamilyList, List<PatentSimpleFamilyLink> importPatentSimpleFamilyLinkList) {
         List<PatentSimpleFamilyLink> importPatentSimpleFamilyLink = importPatentSimpleFamilyLinkList.stream().filter(item -> item.getFamilyId().equals(patent.getSimpleFamily())).collect(Collectors.toList());
         List<PatentSimpleFamilyLink> importPatentInpadocFamilyLink = importPatentSimpleFamilyLinkList.stream().filter(item -> item.getFamilyId().equals(patent.getInpadocFamily())).collect(Collectors.toList());
         List<PatentSimpleFamilyLink> importPatentPatSnapFamilyLink = importPatentSimpleFamilyLinkList.stream().filter(item -> item.getFamilyId().equals(patent.getPatSnapFamily())).collect(Collectors.toList());
@@ -91,11 +90,11 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
     public void updateData(List<String> familyNo, String patentNo, Integer patentId, Integer type) {
         //两个表 1.同族表 2.同组关联专利表
         //用专利号 获取同族关联专利表的信息
-    if(!familyNo.contains(patentNo)){
-        familyNo.add(patentNo);
-    }
+        if (!familyNo.contains(patentNo)) {
+            familyNo.add(patentNo);
+        }
         List<PatentSimpleFamilyLink> patentSimpleFamilyLinkList = patentSimpleFamilyLinkService.getPatentSimpleFamilyLinkByPatentNo(familyNo);
-        PatentSimpleFamily family =new PatentSimpleFamily();
+        PatentSimpleFamily family = new PatentSimpleFamily();
 
         if (patentSimpleFamilyLinkList == null || patentSimpleFamilyLinkList.size() == 0) {
             //如果 同组关联专利表 内没有数据 就新建一条 同族表 的数据
@@ -105,19 +104,18 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
             PatentSimpleFamily patentSimpleFamily = this.getPatentSimpleFamilyByIdsAndType(patentSimpleFamilyLinkList.stream().map(PatentSimpleFamilyLink::getFamilyId).collect(Collectors.toList()), type);
             if (patentSimpleFamily == null) {
                 family = this.add(type);
+            } else {
+                family = patentSimpleFamily;
             }
-           else {
-             family = patentSimpleFamily;
-           }
         }
 //        List<PatentSimpleFamilyLink> temps = patentSimpleFamilyLinkService.getPatentSimpleFamilyLinkByPatentNoAndFamilyId(familyNo, family.getId());
 
         List<Patent> patent1s = patentService.getPublicDateAndPatentNoByPatentNo(familyNo);
-         // 遍历
-        if(patentSimpleFamilyLinkList!=null&&patentSimpleFamilyLinkList.size()!=0) {
-            Patent  patent2 =new Patent();
+        // 遍历
+        if (patentSimpleFamilyLinkList != null && patentSimpleFamilyLinkList.size() != 0) {
+            Patent patent2 = new Patent();
             for (String patent : familyNo) {
-                PatentSimpleFamilyLink   temp = patentSimpleFamilyLinkList.stream().filter(item -> item. getPatentNo().equals(patent)).findFirst().orElse(null);
+                PatentSimpleFamilyLink temp = patentSimpleFamilyLinkList.stream().filter(item -> item.getPatentNo().equals(patent)).findFirst().orElse(null);
                 if (temp == null) {
                     PatentSimpleFamilyLink patentSimpleFamilyLink = new PatentSimpleFamilyLink();
                     patentSimpleFamilyLink.setFamilyId(family.getId());
@@ -129,8 +127,8 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
                 }
 
                 //更新同族专利的同族号
-                Patent  patent1  = patent1s.stream().filter(item -> item.getPatentNo().equals(patent)).findFirst().orElse(null);
-                if (patent1 != null&&patent1.getType()!=null) {
+                Patent patent1 = patent1s.stream().filter(item -> item.getPatentNo().equals(patent)).findFirst().orElse(null);
+                if (patent1 != null && patent1.getType() != null) {
                     switch (type) {
                         case 1:
                             patent1.setSimpleFamily(family.getId());
@@ -154,27 +152,23 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
                         String country2 = PatentUtils.getPatentCountry(patent2.getPatentNo());
                         if ("CN".equals(country1) && !"CN".equals(country2)) {
                             family.setPatentNo(patent1.getPatentNo());
-                            patent2 =patent1;
-                        }
-                      else  if (!"CN".equals(country1) && "CN".equals(country2)) {
+                            patent2 = patent1;
+                        } else if (!"CN".equals(country1) && "CN".equals(country2)) {
                             family.setPatentNo(patent2.getPatentNo());
-                        }
-                     else   if (("CN".equals(country1) && "CN".equals(country2))||(!"CN".equals(country1) && !"CN".equals(country2))) {
+                        } else if (("CN".equals(country1) && "CN".equals(country2)) || (!"CN".equals(country1) && !"CN".equals(country2))) {
                             Integer publicData1 = patent1.getPublicDate();
                             Integer publicData2 = patent2.getPublicDate();
                             if (publicData1 == null && publicData2 != null) {
                                 family.setPatentNo(patent2.getPatentNo());
-                            }
-                          else   if (publicData1 != null && publicData2 == null) {
+                            } else if (publicData1 != null && publicData2 == null) {
                                 family.setPatentNo(patent1.getPatentNo());
-                                patent2 =patent1;
-                            }
-                            else if (publicData1 != null && publicData2 != null) {
+                                patent2 = patent1;
+                            } else if (publicData1 != null && publicData2 != null) {
                                 if (publicData1 > publicData2) {
                                     family.setPatentNo(patent2.getPatentNo());
                                 } else {
                                     family.setPatentNo(patent1.getPatentNo());
-                                    patent2 =patent1;
+                                    patent2 = patent1;
                                     System.out.println(patent2);
                                 }
                             }

+ 2 - 5
PAS/src/main/resources/mapper/PatentMapper.xml

@@ -372,10 +372,7 @@
                 </foreach>
             </if>
             <if test="params.whereAffair != null">
-                and p.status in
-                <foreach collection="params.whereAffair" item="item" separator="," open="(" close=")">
-                    #{item}
-                </foreach>
+                and p.status REGEXP #{params.whereAffair}
             </if>
             <if test="params.whereLabel != null">
                 and d.tagname in
@@ -1133,7 +1130,7 @@
                 <property name="value" value="d.value"/>
             </include>
             left join os_patent_affair c1 on b.pid = c1.pid
-            left join os_system_dict d on d.value = c1.status
+            left join os_system_dict d on d.label = c1.status
             <include refid="Patent_Query_Source_Base_Where">
                 <property name="label" value="d.label"/>
             </include>