Ver Fonte

Merge remote-tracking branch 'origin/master_novelty' into master_novelty

lwhhszx há 1 ano atrás
pai
commit
6977dd2131

+ 21 - 0
src/main/java/cn/cslg/pas/common/vo/NoveltyProjectVO/NoveltyCompareLiteratureVO.java

@@ -0,0 +1,21 @@
+package cn.cslg.pas.common.vo.NoveltyProjectVO;
+
+import lombok.Data;
+
+/**
+ * 检索记录对应专利信息
+ * @Author xiexiang
+ * @Date 2024/10/10
+ */
+@Data
+public class NoveltyCompareLiteratureVO {
+    /**
+     * 专利号
+     */
+    private String patentNo;
+
+    /**
+     * 名称
+     */
+    private String name;
+}

+ 6 - 0
src/main/java/cn/cslg/pas/common/vo/NoveltyProjectVO/RetrieveRecordVO.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 检索记录VO
@@ -82,4 +83,9 @@ public class RetrieveRecordVO {
      * 检索人
      */
     private String searchPersonName;
+
+    /**
+     * 对比文件 专利号
+     */
+    private List<NoveltyCompareLiteratureVO> noveltyCompareLiteratureVOS;
 }

+ 2 - 0
src/main/java/cn/cslg/pas/mapper/novelty/NoveltyCompareLiteratureMapper.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.mapper.novelty;
 
 import cn.cslg.pas.common.dto.QueryCompareFileDTO;
+import cn.cslg.pas.common.vo.NoveltyProjectVO.NoveltyCompareLiteratureVO;
 import cn.cslg.pas.common.vo.QueryCompareFileVO;
 import cn.cslg.pas.domain.business.novelty.NoveltyCompareLiterature;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -20,6 +21,7 @@ public interface NoveltyCompareLiteratureMapper extends BaseMapper<NoveltyCompar
 
     List<QueryCompareFileVO> queryCompareFile(@Param("vo") QueryCompareFileDTO vo);
 
+    List<NoveltyCompareLiteratureVO> getPatentNoByRetrieveId(Integer RetrieveId);
 }
 
 

+ 23 - 0
src/main/java/cn/cslg/pas/service/novelty/NoveltyCompareLiteratureService.java

@@ -8,6 +8,8 @@ import cn.cslg.pas.common.dto.business.LiteratureQueryDTO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.cronModel.SystemFile;
 import cn.cslg.pas.common.vo.CompareLiteratureVO;
+import cn.cslg.pas.common.utils.DBUtil;
+import cn.cslg.pas.common.vo.NoveltyProjectVO.NoveltyCompareLiteratureVO;
 import cn.cslg.pas.common.vo.NoveltyProjectVO.NoveltyCompareRecordVO;
 import cn.cslg.pas.common.vo.QueryCompareFileVO;
 import cn.cslg.pas.domain.business.CompareLiterature;
@@ -35,8 +37,13 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -314,6 +321,22 @@ public class NoveltyCompareLiteratureService extends ServiceImpl<NoveltyCompareL
         }
         return ids;
     }
+
+    /**
+     * 根据检索记录ids查询专利信息
+     * @param retrieveIds
+     * @return
+     */
+    public Map<Integer, List<NoveltyCompareLiteratureVO>> getPatentNoByRetrieveIds(List<Integer> retrieveIds) {
+        Map<Integer, List<NoveltyCompareLiteratureVO>> noveltyMap = new HashMap<>();
+        for (Integer retrieveId : retrieveIds) {
+            List<NoveltyCompareLiteratureVO> noveltyCompareLiteratureVOS = noveltyCompareLiteratureMapper.getPatentNoByRetrieveId(retrieveId);
+            if (noveltyCompareLiteratureVOS != null && noveltyCompareLiteratureVOS.size() != 0) {
+                noveltyMap.put(retrieveId, noveltyCompareLiteratureVOS);
+            }
+        }
+        return noveltyMap;
+    }
 }
 
 

+ 12 - 7
src/main/java/cn/cslg/pas/service/novelty/NoveltySearchRecordService.java

@@ -8,6 +8,7 @@ import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.common.vo.NoveltyProjectVO.NoveltyCompareLiteratureVO;
 import cn.cslg.pas.common.vo.NoveltyProjectVO.QueryTemplateVO;
 import cn.cslg.pas.common.vo.NoveltyProjectVO.RetrieveRecordVO;
 import cn.cslg.pas.domain.business.RetrieveRecord;
@@ -30,10 +31,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -54,6 +52,9 @@ public class NoveltySearchRecordService extends ServiceImpl<RetrieveRecordMapper
     @Autowired
     private PermissionService permissionService;
 
+    @Autowired
+    private NoveltyCompareLiteratureService noveltyCompareLiteratureService;
+
     /**
      * 查询检索记录
      *
@@ -78,6 +79,9 @@ public class NoveltySearchRecordService extends ServiceImpl<RetrieveRecordMapper
                         .map(AssoRetrieveRecordProject::getRetrieveRecordId)
                         .collect(Collectors.toList());
 
+                //根据检索记录ids查询专利信息集合
+                Map<Integer, List<NoveltyCompareLiteratureVO>> noveltyMap = noveltyCompareLiteratureService.getPatentNoByRetrieveIds(retrieveIds);
+
                 LambdaQueryWrapper<RetrieveRecord> queryWrapper = new LambdaQueryWrapper<>();
                 queryWrapper.in(RetrieveRecord::getId, retrieveIds)
                         .orderByDesc(RetrieveRecord::getRetrieveTime)
@@ -91,9 +95,8 @@ public class NoveltySearchRecordService extends ServiceImpl<RetrieveRecordMapper
                     total = (long) retrieveRecordList.size();
                 }
                 if (!retrieveRecordList.isEmpty()) {
-                    retrieveRecordVOS = this.loadRetrieveRecords(retrieveRecordList, assoRetrieveRecordProjects);
+                    retrieveRecordVOS = this.loadRetrieveRecords(retrieveRecordList, assoRetrieveRecordProjects, noveltyMap);
                 }
-
             }
         }
 
@@ -110,7 +113,7 @@ public class NoveltySearchRecordService extends ServiceImpl<RetrieveRecordMapper
      *
      * @param retrieveRecordList
      */
-    private List<RetrieveRecordVO> loadRetrieveRecords(List<RetrieveRecord> retrieveRecordList, List<AssoRetrieveRecordProject> assoRetrieveRecordProjects) throws IOException {
+    private List<RetrieveRecordVO> loadRetrieveRecords(List<RetrieveRecord> retrieveRecordList, List<AssoRetrieveRecordProject> assoRetrieveRecordProjects, Map<Integer, List<NoveltyCompareLiteratureVO>> noveltyMap) throws IOException {
         List<RetrieveRecordVO> retrieveRecordVOS = new ArrayList<>();
 
         if (!CollectionUtils.isEmpty(retrieveRecordList)) {
@@ -154,6 +157,8 @@ public class NoveltySearchRecordService extends ServiceImpl<RetrieveRecordMapper
                         retrieveRecordVO.setSearchPersonName(assoRecordProject.getSearchPersonName());
                     }
                 }
+                List<NoveltyCompareLiteratureVO> noveltyCompareLiteratureVOS = noveltyMap.getOrDefault(retrieveRecord.getId(), new ArrayList<>());
+                retrieveRecordVO.setNoveltyCompareLiteratureVOS(noveltyCompareLiteratureVOS);
                 retrieveRecordVOS.add(retrieveRecordVO);
             }
 

+ 13 - 0
src/main/resources/mapper/NoveltyCompareLiteratureMapper.xml

@@ -51,4 +51,17 @@
             order by cl.sys_order
         </where>
     </select>
+
+
+    <select id="getPatentNoByRetrieveId" resultType="cn.cslg.pas.common.vo.NoveltyProjectVO.NoveltyCompareLiteratureVO">
+        SELECT B.literature_no as patentNo, B.name FROM novelty_compare_literature A INNER JOIN compare_literature B
+        ON A.compare_literture_id = B.id
+        <where>
+            <if test="retrieveId != null">
+                A.retrieve_record_id = #{retrieveId}
+            </if>
+        </where>
+    </select>
+
+
 </mapper>