Forráskód Böngészése

更新图谱化验套餐实体及查询的方法

MarkHuang 4 éve
szülő
commit
14487bc92d

+ 73 - 8
src/main/java/com/diagbot/repository/LisPackNode.java

@@ -2,15 +2,13 @@ package com.diagbot.repository;
 
 import com.diagbot.dto.BillNeoDTO;
 import com.diagbot.dto.LisBillNeoDTO;
+import com.diagbot.dto.NeoEntityDTO;
 import com.diagbot.dto.NodeNeoDTO;
 import com.diagbot.entity.node.*;
 import com.diagbot.util.NeoUtil;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 public class LisPackNode {
 
@@ -102,7 +100,7 @@ public class LisPackNode {
 
 		LisBillNeoDTO lisBillNeoDTO;
 
-		LISPack lispack;
+		List<LISPack> lispacks;
 		String lispackname;
 
 		for (String term : lispackterm.keySet()) {
@@ -113,10 +111,10 @@ public class LisPackNode {
 
 			lisBillNeoDTO = new LisBillNeoDTO();
 
-			lispack = lisPackRepository.findByNameIs(lispackname);
+			lispacks = lisPackRepository.findByNameIs(lispackname);
 
-			if (lispack != null) {
-				lisBillNeoDTO = LisPacktoLISDTO(lispack);
+			if (lispacks != null && lispacks.size()>0) {
+				lisBillNeoDTO = LisPacktoLISDTO(lispacks.get(0));
 			}
 
 			billNeoDTO.setLisBillNeoDTO(lisBillNeoDTO);
@@ -150,5 +148,72 @@ public class LisPackNode {
 		return lispacklist;
 	}
 
+
+
+	/**
+	 * 更新实体属性信息
+	 */
+	public NeoEntityDTO updateEntity(String name, Map<String, String> props, List<String> keys, LisPackRepository lisPackRepository) {
+		NeoEntityDTO neoEntityDTO = new NeoEntityDTO();
+		neoEntityDTO.setName(name);
+
+		try {
+			List<LISPack> lispackres = lisPackRepository.findByNameIs(name);
+
+			if (lispackres!= null && lispackres.size()>0) {
+				LISPack lispack = lispackres.get(0);
+
+				for (String key : props.keySet()) {
+					switch (key) {
+						case "最大值":
+							lispack.setMaxval(Double.parseDouble(props.get(key)));
+							break;
+						case "最小值":
+							lispack.setMinval(Double.parseDouble(props.get(key)));
+							break;
+						case "单位":
+							lispack.setUnit(props.get(key));
+							break;
+					}
+				}
+
+				lispack = lisPackRepository.save(lispack);
+
+				neoEntityDTO = fillNeoDTO(lispack, keys);
+			}
+		}
+		catch (Exception ex) {
+			ex.printStackTrace();
+		}
+
+		return neoEntityDTO;
+	}
+
+
+	private NeoEntityDTO fillNeoDTO(LISPack lisPack, List<String> keys) {
+		NeoEntityDTO neoEntityDTO = new NeoEntityDTO();
+		Map<String, String> props = new HashMap<>();
+		String val = "";
+
+		neoEntityDTO.setName(lisPack.getName());
+		for (String key:keys) {
+			switch(key) {
+				case "最大值":
+					val = String.format("%.2f",lisPack.getMaxval());
+					break;
+				case "最小值":
+					val = String.format("%.2f", lisPack.getMinval());
+					break;
+				case "单位":
+					val = lisPack.getUnit();
+					break;
+			}
+			props.put(key, val);
+		}
+		neoEntityDTO.setProperty(props);
+
+		return neoEntityDTO;
+	}
+
 }
 

+ 5 - 1
src/main/java/com/diagbot/repository/LisPackRepository.java

@@ -1,6 +1,7 @@
 package com.diagbot.repository;
 
 import com.diagbot.entity.node.LISPack;
+import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
 
 import java.util.List;
@@ -8,8 +9,11 @@ import java.util.List;
 
 public interface LisPackRepository extends Neo4jRepository<LISPack, Long> {
 
-    LISPack findByNameIs(String name);
+    List<LISPack> findByNameIs(String name);
 
     List<LISPack> findByNameLike(String name);
+
+    @Query("MATCH (n:实验室检查套餐) RETURN DISTINCT(KEYS(n))")
+    List<List<String>> getKeys();
 }