DESKTOP-0GD05B0\Administrator 2 年之前
父节点
当前提交
cfb838b90d

+ 1 - 1
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/CaoYaoYiZhuService.java

@@ -165,7 +165,7 @@ public class CaoYaoYiZhuService {
         XinZhenYiZhu patInfo = yiZhuLuRuDao.queryPatientInfo(param.getInpatientNo(), param.getAdmissTimes());
         Map<String, XinZhenYzActOrder> drug = yiZhuLuRuServer.getDrugInformation(yaoPingCode, patInfo.getZkWard());
         // 错误信息
-        Map<String, List<String>> errorMap = new HashMap<>();
+        Map<String, List<String>> errorMap = new HashMap<>(param.getList().size());
         // 获取医生开药品的权限
         Integer doctorLevel = yiZhuLuRuDao.huoQuYiShenDengJi(TokenUtil.getTokenUserId());
         for (int i = 0; i < param.getList().size(); i++) {

+ 20 - 5
src/main/java/thyyxxk/webserver/utils/CacheOnce.java

@@ -3,10 +3,7 @@ package thyyxxk.webserver.utils;
 
 import com.alibaba.fastjson.JSON;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.function.Function;
 
 
@@ -15,6 +12,7 @@ import java.util.function.Function;
  */
 public class CacheOnce<V> {
     private final Map<String, Object> map = new HashMap<>();
+    private final Set<String> notQueried = new HashSet<>();
 
     @SuppressWarnings("unchecked")
     public V get(String name) {
@@ -31,8 +29,14 @@ public class CacheOnce<V> {
         if (map.containsKey(name)) {
             return (V) map.get(name);
         }
+
+        if (notQueried.contains(name)) {
+            return null;
+        }
+
         Object object = filter.apply(name);
         if (object == null) {
+            notQueried.add(name);
             return null;
         } else {
             map.put(name, object);
@@ -47,8 +51,14 @@ public class CacheOnce<V> {
             String oldOb = JSON.toJSONString(map.get(name));
             return JSON.parseObject(oldOb, tClass);
         }
+
+        if (notQueried.contains(name)) {
+            return null;
+        }
+
         Object object = filter.apply(name);
         if (object == null) {
+            notQueried.add(name);
             return null;
         } else {
             map.put(name, object);
@@ -64,8 +74,14 @@ public class CacheOnce<V> {
             String oldOb = JSON.toJSONString(map.get(name));
             return JSON.parseArray(oldOb, tClass);
         }
+
+        if (notQueried.contains(name)) {
+            return null;
+        }
+
         Object object = filter.apply(name);
         if (object == null) {
+            notQueried.add(name);
             return null;
         } else {
             map.put(name, object);
@@ -74,5 +90,4 @@ public class CacheOnce<V> {
         }
     }
 
-
 }