Jelajahi Sumber

Merge remote-tracking branch 'origin/master'

zhoutg 4 tahun lalu
induk
melakukan
5ffe1f4084

+ 10 - 9
src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -31,7 +31,6 @@ import com.diagbot.repository.YiBaoOperationNameNode;
 import com.diagbot.repository.YiBaoOperationNameRepository;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
-import com.diagbot.util.StringUtil;
 import com.diagbot.vo.RetrievalVO;
 import com.diagbot.vo.StaticKnowledgeIndexVO;
 import com.google.common.collect.Lists;
@@ -221,7 +220,7 @@ public class RetrievalFacade {
         List<Integer> types = staticKnowledgeIndexVO.getTypes();
 
         //TODO 诊断
-        List<YiBaoDiseaseName> icdDiseaseList = icdDiseaseRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
+        List<YiBaoDiseaseName> icdDiseaseList = icdDiseaseRepository.findByIsKLAndNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(staticKnowledgeIndexVO.getHasInfo(), inputStr, inputStr, 100);
         List<StaticKnowledgeIndexDTO> disRetList = Lists.newLinkedList();
         for (YiBaoDiseaseName icdDisease : icdDiseaseList) {
             StaticKnowledgeIndexDTO staticDTO = new StaticKnowledgeIndexDTO();
@@ -231,7 +230,7 @@ public class RetrievalFacade {
             disRetList.add(staticDTO);
         }
         //TODO 药品
-        List<Medicine> medicineList = medicineRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
+        List<Medicine> medicineList = medicineRepository.findByIsKLAndNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(staticKnowledgeIndexVO.getHasInfo(), inputStr, inputStr, 100);
 
         List<StaticKnowledgeIndexDTO> drugRetList = Lists.newLinkedList();
         for (Medicine medicine : medicineList) {
@@ -242,7 +241,7 @@ public class RetrievalFacade {
             drugRetList.add(staticDTO);
         }
         //TODO 检验套餐
-        List<LisSet> lisSetList = lisSetRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
+        List<LisSet> lisSetList = lisSetRepository.findByIsKLAndNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(staticKnowledgeIndexVO.getHasInfo(), inputStr, inputStr, 100);
 
         List<StaticKnowledgeIndexDTO> lisSetRetList = Lists.newLinkedList();
         for (LisSet lisSet : lisSetList) {
@@ -253,7 +252,7 @@ public class RetrievalFacade {
             lisSetRetList.add(staticDTO);
         }
         //TODO 检验明细关联出检验套餐
-        List<LisName> lisList = lisRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
+        List<LisName> lisList = lisRepository.findByIsKLAndNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(staticKnowledgeIndexVO.getHasInfo(), inputStr, inputStr, 100);
 
         List<StaticKnowledgeIndexDTO> lisSetRelatecLisRetList = Lists.newLinkedList();
         for (LisName lis : lisList) {
@@ -281,7 +280,7 @@ public class RetrievalFacade {
             }
         }
         //TODO 检验明细
-        lisList = lisRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
+        //lisList = lisRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
 
         List<StaticKnowledgeIndexDTO> lisRetList = Lists.newLinkedList();
         for (LisName lis : lisList) {
@@ -292,7 +291,7 @@ public class RetrievalFacade {
             lisRetList.add(staticDTO);
         }
         //TODO 检查
-        List<PacsName> pacsList = pacsRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
+        List<PacsName> pacsList = pacsRepository.findByIsKLAndNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(staticKnowledgeIndexVO.getHasInfo(), inputStr, inputStr, 100);
 
         List<StaticKnowledgeIndexDTO> pacsRetList = Lists.newLinkedList();
         for (PacsName pacs : pacsList) {
@@ -303,9 +302,8 @@ public class RetrievalFacade {
             pacsRetList.add(staticDTO);
         }
 
-
         //TODO 手术和操作
-        List<YiBaoOperationName> operationList = operationRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
+        List<YiBaoOperationName> operationList = operationRepository.findByIsKLAndNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(staticKnowledgeIndexVO.getHasInfo(), inputStr, inputStr, 100);
 
         List<StaticKnowledgeIndexDTO> operationRetList = Lists.newLinkedList();
 
@@ -348,6 +346,9 @@ public class RetrievalFacade {
                 retList.addAll(operationRetList);
             }
         }
+        if (ListUtil.isNotEmpty(retList) && retList.size() > 100) {
+            retList = retList.subList(0, 100);
+        }
         return retList;
     }
 }

+ 4 - 11
src/main/java/com/diagbot/repository/DeptNode.java

@@ -1,7 +1,8 @@
 package com.diagbot.repository;
 
 import com.diagbot.entity.node.Dept;
-import com.diagbot.util.ListUtil;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -12,20 +13,12 @@ public class DeptNode {
      * 获取科室名称列表
      */
     public List<String> getDeptNameList(String name, DeptRepository deptRepository, BaseNodeRepository baseNodeRepository) {
-
         List<String> deptlt = new ArrayList<>();
-
-        List<Dept> deptlist = deptRepository.findByNameContaining(name);
-        deptlist.addAll(baseNodeRepository.getDeptbyPinYin(name));
-
-        if (ListUtil.isNotEmpty(deptlist) && deptlist.size() > 100) {
-            deptlist = deptlist.subList(0, 100);
-        }
-
+        Page<Dept> deptPage = deptRepository.findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(name, name, PageRequest.of(0, 100));
+        List<Dept> deptlist = deptPage.getContent();
         for (Dept dept : deptlist) {
             deptlt.add(dept.getName());
         }
-
         return deptlt;
     }
 }

+ 3 - 2
src/main/java/com/diagbot/repository/DeptRepository.java

@@ -1,6 +1,8 @@
 package com.diagbot.repository;
 
 import com.diagbot.entity.node.Dept;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
 
 import java.util.List;
@@ -12,6 +14,5 @@ public interface DeptRepository extends Neo4jRepository<Dept, Long> {
 
     List<Dept> findByNameIs(String name);
 
-    List<Dept> findByNameContainingOrPycodeContaining(String name, String pycode);
+    Page<Dept> findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(String name, String pycode, Pageable pageable);
 }
-

+ 4 - 7
src/main/java/com/diagbot/repository/LisNameNode.java

@@ -12,10 +12,11 @@ import com.diagbot.entity.node.Group;
 import com.diagbot.entity.node.LisCritical;
 import com.diagbot.entity.node.LisName;
 import com.diagbot.entity.node.LisSet;
-import com.diagbot.util.ListUtil;
 import com.diagbot.util.NeoUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.CriticalNeoVO;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
@@ -180,12 +181,8 @@ public class LisNameNode {
 		List<LisDetailDTO> lislist = new ArrayList<>();
 		LisDetailDTO lisDetailDTO;
 
-		List<LisName> lislt = lisRepository.findByNameContainingOrPycodeContaining(name,name);
-		//lislt.addAll(baseNodeRepository.getLisbyPinYin(name));
-
-		if (ListUtil.isNotEmpty(lislt) && lislt.size() > 100) {
-			lislt = lislt.subList(0, 100);
-		}
+		Page<LisName> lisPage = lisRepository.findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(name, name, PageRequest.of(0, 100));
+		List<LisName> lislt = lisPage.getContent();
 
 		for (LisName lis : lislt) {
 			lisDetailDTO = new LisDetailDTO();

+ 6 - 3
src/main/java/com/diagbot/repository/LisNameRepository.java

@@ -1,6 +1,8 @@
 package com.diagbot.repository;
 
 import com.diagbot.entity.node.LisName;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
 import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
 import org.springframework.data.repository.query.Param;
@@ -16,9 +18,10 @@ public interface LisNameRepository extends Neo4jRepository<LisName, Long> {
 
     List<LisName> findByNameIn(List<String> names);
 
-    List<LisName> findByNameContainingOrPycodeContaining(String name, String pycode);
+    Page<LisName> findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(String name, String pycode, Pageable pageable);
+
+    @Query("MATCH (n:`实验室检查名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL  AND (toLower(n.`name`) CONTAINS toLower($name) OR toLower(n.`拼音编码`) CONTAINS toLower($pycode))  RETURN n, collect(r), collect(m) limit $size")
+    List<LisName> findByIsKLAndNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(@Param("isKL") Integer isKL, @Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
 
-    @Query("MATCH (n:实验室检查名称)-[r]->(b) where n.name contains {name} or (EXISTS(n.拼音编码) AND n.拼音编码 CONTAINS {name}) return n.name, n.拼音编码,collect(r), collect(b) limit 100")
-    List<LisName> findByNameOrPycodeContaininglimit100(@Param("name") String name);
 }
 

+ 4 - 7
src/main/java/com/diagbot/repository/LisSetNode.java

@@ -5,8 +5,9 @@ import com.diagbot.dto.LisBillNeoDTO;
 import com.diagbot.dto.NeoEntityDTO;
 import com.diagbot.entity.node.Gender;
 import com.diagbot.entity.node.LisSet;
-import com.diagbot.util.ListUtil;
 import com.diagbot.util.NeoUtil;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -148,12 +149,8 @@ public class LisSetNode {
 
 		List<String> lispacklist = new ArrayList<>();
 
-		List<LisSet> lisSetlist = lisPackRepository.findByNameContainingOrPycodeContaining(name, name);
-		//lisSetlist.addAll(baseNodeRepository.getLisSetbyPinYin(name));
-
-		if (ListUtil.isNotEmpty(lisSetlist) && lisSetlist.size() > 100) {
-			lisSetlist = lisSetlist.subList(0, 100);
-		}
+		Page<LisSet> lisPackPage = lisPackRepository.findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(name, name, PageRequest.of(0, 100));
+		List<LisSet> lisSetlist = lisPackPage.getContent();
 
 		for (LisSet lisSet : lisSetlist) {
 			nodename = lisSet.getName();

+ 8 - 1
src/main/java/com/diagbot/repository/LisSetRepository.java

@@ -1,7 +1,11 @@
 package com.diagbot.repository;
 
 import com.diagbot.entity.node.LisSet;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
+import org.springframework.data.repository.query.Param;
 
 import java.util.List;
 
@@ -14,6 +18,9 @@ public interface LisSetRepository extends Neo4jRepository<LisSet, Long> {
 
     List<LisSet> findByNameIn(List<String> names);
 
-    List<LisSet> findByNameContainingOrPycodeContaining(String name, String pycode);
+    Page<LisSet> findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(String name, String pycode, Pageable pageable);
+
+    @Query("MATCH (n:`实验室检查套餐名`)-[r]-(m) WHERE n.`静态知识标识` = $isKL  AND (toLower(n.`name`) CONTAINS toLower($name) OR toLower(n.`拼音编码`) CONTAINS toLower($pycode))  RETURN n, collect(r), collect(m) limit $size")
+    List<LisSet> findByIsKLAndNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(@Param("isKL") Integer isKL, @Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
 }
 

+ 7 - 11
src/main/java/com/diagbot/repository/MedicineNode.java

@@ -10,6 +10,8 @@ import com.diagbot.entity.node.Group;
 import com.diagbot.entity.node.MedAllergen;
 import com.diagbot.entity.node.Medicine;
 import com.diagbot.util.ListUtil;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
@@ -66,13 +68,13 @@ public class MedicineNode {
 
         nodeNeoDTO.setName(age.getName());
 
-        max = (age.getMaxval()==null)?null:new BigDecimal(age.getMaxval());
+        max = (age.getMaxval() == null) ? null : new BigDecimal(age.getMaxval());
         nodeNeoDTO.setMax(max);
 
-        min = (age.getMinval()==null)?null:new BigDecimal(age.getMinval());
+        min = (age.getMinval() == null) ? null : new BigDecimal(age.getMinval());
         nodeNeoDTO.setMin(min);
 
-        range = (age.getRange()==null)?0:age.getRange();
+        range = (age.getRange() == null) ? 0 : age.getRange();
         nodeNeoDTO.setValType(range);
 
         nodeNeoDTO.setName(age.getTermname());
@@ -81,7 +83,6 @@ public class MedicineNode {
     }
 
 
-
     /**
      * 处理处方开单合理性
      */
@@ -118,7 +119,6 @@ public class MedicineNode {
     }
 
 
-
     /**
      * 获取药品商品名称列表
      */
@@ -128,12 +128,8 @@ public class MedicineNode {
         List<DrugInfoDTO> medslist = new ArrayList<>();
         DrugInfoDTO drugInfoDTO;
 
-        List<Medicine> medicines = medicineRepository.findByNameContainingOrPycodeContaining(name, name);
-        //medicines.addAll(baseNodeRepository.getMedicinebyPinYin(name));
-
-        if (ListUtil.isNotEmpty(medicines) && medicines.size() > 100) {
-            medicines = medicines.subList(0, 100);
-        }
+        Page<Medicine> medicinePage = medicineRepository.findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(name, name, PageRequest.of(0, 100));
+        List<Medicine> medicines = medicinePage.getContent();
 
         for (Medicine med : medicines) {
             drugInfoDTO = new DrugInfoDTO();

+ 9 - 1
src/main/java/com/diagbot/repository/MedicineRepository.java

@@ -1,7 +1,11 @@
 package com.diagbot.repository;
 
 import com.diagbot.entity.node.Medicine;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
+import org.springframework.data.repository.query.Param;
 
 import java.util.List;
 
@@ -14,6 +18,10 @@ public interface MedicineRepository extends Neo4jRepository<Medicine, Long> {
 
     List<Medicine> findByNameIn(List<String> names);
 
-    List<Medicine> findByNameContainingOrPycodeContaining(String name, String pycode);
+    Page<Medicine> findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(String name, String pycode, Pageable pageable);
+
+    @Query("MATCH (n:`药品通用名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL  AND (toLower(n.`name`) CONTAINS toLower($name) OR toLower(n.`拼音编码`) CONTAINS toLower($pycode))  RETURN n, collect(r), collect(m) limit $size")
+    List<Medicine> findByIsKLAndNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(@Param("isKL") Integer isKL, @Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
+
 }
 

+ 4 - 6
src/main/java/com/diagbot/repository/PacsNameNode.java

@@ -14,8 +14,9 @@ import com.diagbot.entity.node.OralMedicine;
 import com.diagbot.entity.node.PacsDescribe;
 import com.diagbot.entity.node.PacsName;
 import com.diagbot.entity.node.Vital;
-import com.diagbot.util.ListUtil;
 import com.diagbot.util.NeoUtil;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -188,12 +189,9 @@ public class PacsNameNode {
 
         List<String> pacslist = new ArrayList<>();
 
-        List<PacsName> pacslt = pacsRepository.findByNameContainingOrPycodeContaining(name, name);
-        //pacslt.addAll(baseNodeRepository.getPacsbyPinYin(name));
+        Page<PacsName> pacsPage = pacsRepository.findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(name, name, PageRequest.of(0, 100));
 
-        if (ListUtil.isNotEmpty(pacslt) && pacslt.size() > 100) {
-            pacslt = pacslt.subList(0, 100);
-        }
+        List<PacsName> pacslt = pacsPage.getContent();
 
         for (PacsName pacs : pacslt) {
             pacsname = pacs.getName();

+ 10 - 1
src/main/java/com/diagbot/repository/PacsNameRepository.java

@@ -1,7 +1,11 @@
 package com.diagbot.repository;
 
 import com.diagbot.entity.node.PacsName;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
+import org.springframework.data.repository.query.Param;
 
 import java.util.List;
 
@@ -14,6 +18,11 @@ public interface PacsNameRepository extends Neo4jRepository<PacsName, Long> {
 
     List<PacsName> findByNameIn(List<String> names);
 
-    List<PacsName> findByNameContainingOrPycodeContaining(String name, String pycode);
+    Page<PacsName> findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(String name, String pycode, Pageable pageable);
+
+    @Query("MATCH (n:`辅助检查名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL  AND (toLower(n.`name`) CONTAINS toLower($name) OR toLower(n.`拼音编码`) CONTAINS toLower($pycode))  RETURN n, collect(r), collect(m) limit $size")
+    List<PacsName> findByIsKLAndNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(@Param("isKL") Integer isKL, @Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
+
+
 }
 

+ 3 - 12
src/main/java/com/diagbot/repository/YiBaoDiseaseNode.java

@@ -8,11 +8,9 @@ import com.diagbot.entity.node.GuoLinICD_10Code;
 import com.diagbot.entity.node.PathwayName;
 import com.diagbot.entity.node.YiBaoDiseaseName;
 import com.diagbot.entity.node.YiBaoICD_10Code;
-import com.diagbot.util.ListUtil;
 import com.diagbot.vo.NeoPushVO;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -255,16 +253,9 @@ public class YiBaoDiseaseNode {
 		List<String> dislist = new ArrayList<>();
 		List<DiseaseInfoDTO> diseaseInfoDTOList = new ArrayList<>();
 
-//		List<YiBaoDiseaseName> diseases = diseaseRepository.findByNameContainingOrPycodeContaining(name, name);
-//		//diseases.addAll(baseNodeRepository.getYiBaoDiseasebyPinYin(name));
-//
-//		if (ListUtil.isNotEmpty(diseases) && diseases.size() > 100) {
-//			diseases = diseases.subList(0, 100);
-//		}
-
-        Page<YiBaoDiseaseName> diseasesPage
-				= diseaseRepository.findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(name, name, PageRequest.of(0, 10));
-        List<YiBaoDiseaseName> diseases = diseasesPage.getContent();
+		Page<YiBaoDiseaseName> diseasesPage
+				= diseaseRepository.findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(name, name, PageRequest.of(0, 100));
+		List<YiBaoDiseaseName> diseases = diseasesPage.getContent();
 
 		for (YiBaoDiseaseName dis : diseases) {
 			icdname = dis.getName();

+ 5 - 3
src/main/java/com/diagbot/repository/YiBaoDiseaseRepository.java

@@ -3,7 +3,9 @@ package com.diagbot.repository;
 import com.diagbot.entity.node.YiBaoDiseaseName;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
+import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
+import org.springframework.data.repository.query.Param;
 
 import java.util.List;
 
@@ -16,10 +18,10 @@ public interface YiBaoDiseaseRepository extends Neo4jRepository<YiBaoDiseaseName
 
     List<YiBaoDiseaseName> findByNameIn(List<String> names);
 
-    List<YiBaoDiseaseName> findByNameContainingOrPycodeContaining(String name, String pycode);
-
     Page<YiBaoDiseaseName> findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(String name, String pycode, Pageable pageable);
 
-    List<YiBaoDiseaseName> findTop100ByNameContainingOrPycodeContaining(String name, String pycode);
+    @Query("MATCH (n:`医保疾病名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL  AND (toLower(n.`name`) CONTAINS toLower($name) OR toLower(n.`拼音编码`) CONTAINS toLower($pycode))  RETURN n, collect(r), collect(m) limit $size")
+    List<YiBaoDiseaseName> findByIsKLAndNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(@Param("isKL") Integer isKL, @Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
+
 }
 

+ 4 - 5
src/main/java/com/diagbot/repository/YiBaoOperationNameNode.java

@@ -27,6 +27,8 @@ import com.diagbot.util.CoreUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.NeoUtil;
 import com.diagbot.util.StringUtil;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -174,12 +176,9 @@ public class YiBaoOperationNameNode {
         List<OperationInfoDTO> opslist = new ArrayList<>();
         OperationInfoDTO opInfoDTO;
 
-        List<YiBaoOperationName> operations = operationRepository.findByNameContainingOrPycodeContaining(name, name);
-        //operations.addAll(baseNodeRepository.getYiBaoOperationbyPinYin(name));
+        Page<YiBaoOperationName> operationPage = operationRepository.findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(name, name, PageRequest.of(0, 100));
 
-        if (ListUtil.isNotEmpty(operations) && operations.size() > 100) {
-            operations = operations.subList(0, 100);
-        }
+        List<YiBaoOperationName> operations = operationPage.getContent();
 
         for (YiBaoOperationName op : operations) {
             opInfoDTO = new OperationInfoDTO();

+ 9 - 1
src/main/java/com/diagbot/repository/YiBaoOperationNameRepository.java

@@ -1,7 +1,11 @@
 package com.diagbot.repository;
 
 import com.diagbot.entity.node.YiBaoOperationName;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
+import org.springframework.data.repository.query.Param;
 
 import java.util.List;
 
@@ -14,5 +18,9 @@ public interface YiBaoOperationNameRepository extends Neo4jRepository<YiBaoOpera
 
     List<YiBaoOperationName> findByNameIn(List<String> names);
 
-    List<YiBaoOperationName> findByNameContainingOrPycodeContaining(String name, String pycode);
+    Page<YiBaoOperationName> findByNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(String name, String pycode, Pageable pageable);
+
+    @Query("MATCH (n:`医保手术和操作名称`)-[r]-(m) WHERE n.`静态知识标识` = $isKL  AND (toLower(n.`name`) CONTAINS toLower($name) OR toLower(n.`拼音编码`) CONTAINS toLower($pycode))  RETURN n, collect(r), collect(m) limit $size")
+    List<YiBaoOperationName> findByIsKLAndNameContainingIgnoreCaseOrPycodeContainingIgnoreCase(@Param("isKL") Integer isKL, @Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
+
 }

+ 9 - 1
src/main/java/com/diagbot/vo/StaticKnowledgeIndexVO.java

@@ -3,6 +3,7 @@ package com.diagbot.vo;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.util.List;
 
@@ -17,10 +18,17 @@ public class StaticKnowledgeIndexVO {
     /**
      * 检索内容
      */
+    @NotBlank(message = "请输入检索内容")
     private String inputStr;
     /**
      * 检索类型(多选):0-全部、1-诊断、2-药品、3-检验、4-检查、5-手术和操作
      */
     @NotNull(message = "请输入检索类型")
     private List<Integer> types;
-}
+
+    /**
+     * 是否有静态知识:0-无,1-有
+     */
+    @NotNull(message = "请输入是否有静态知识")
+    private Integer hasInfo;
+}