Bladeren bron

疾病代理修改

rengb 5 jaren geleden
bovenliggende
commit
75a7c65c6c

+ 2 - 1
kernel/src/main/java/com/lantone/qc/kernel/util/DiagEnhancer.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.kernel.util;
 
 import com.lantone.qc.pub.model.entity.Diag;
+import com.lantone.qc.pub.util.StringUtil;
 import net.sf.cglib.proxy.Enhancer;
 
 /**
@@ -17,7 +18,7 @@ public class DiagEnhancer {
         enhancer.setSuperclass(Diag.class);
         //设置回调函数
         enhancer.setCallback(new DiagMethodInterceptor());
-        if (!KernelConstants.hospitalDiagNameList.contains(hospitalDiagName)) {
+        if (StringUtil.isNotBlank(hospitalDiagName) && !KernelConstants.hospitalDiagNameList.contains(hospitalDiagName)) {
             KernelConstants.hospitalDiagNameList.add(hospitalDiagName);
         }
 

+ 20 - 6
kernel/src/main/java/com/lantone/qc/kernel/util/DiagMethodInterceptor.java

@@ -1,9 +1,9 @@
 package com.lantone.qc.kernel.util;
 
 import com.lantone.qc.pub.model.entity.Diag;
+import com.lantone.qc.pub.util.StringUtil;
 import net.sf.cglib.proxy.MethodInterceptor;
 import net.sf.cglib.proxy.MethodProxy;
-import org.springframework.beans.factory.annotation.Autowired;
 
 import java.lang.reflect.Method;
 import java.util.Map;
@@ -18,13 +18,27 @@ public class DiagMethodInterceptor implements MethodInterceptor {
     @Override
     public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
         if (method.getName().equals("setName")) {
-            RedisUtil redisUtil = SpringContextUtil.getBean("redisUtil");
-            Map<String, String> diagRedisMap = (Map<String, String>) redisUtil.get(KernelConstants.CONCEPT_DIAG_HOSPITAL_REFLECT);
-            String hospitalDiagName = args[0].toString();
-            args[0] = diagRedisMap.get(hospitalDiagName) == null ? "" : diagRedisMap.get(hospitalDiagName);
+            String hospitalDiagName = (String) args[0];
+            if (StringUtil.isNotBlank(hospitalDiagName)) {
+                RedisUtil redisUtil = SpringContextUtil.getBean("redisUtil");
+                Map<String, Map<String, String>> hospitalDiagHuazMap = redisUtil.getJsonStringValue(KernelConstants.HOSPITAL_DIAG_HUAZ_MAP);
+                Map<String, Map<String, String>> lantoneDiagHuazMap = redisUtil.getJsonStringValue(KernelConstants.LANTONE_DIAG_HUAZ_MAP);
+                if (hospitalDiagHuazMap != null && lantoneDiagHuazMap != null) {
+                    Map<String, String> huazDiagMap = hospitalDiagHuazMap.get(hospitalDiagName);
+                    if (huazDiagMap != null) {
+                        String huazDiagName = huazDiagMap.get("name");
+                        if (StringUtil.isNotBlank(huazDiagName)) {
+                            Map<String, String> lantoneDiagMap = lantoneDiagHuazMap.get(huazDiagName);
+                            if (lantoneDiagMap != null) {
+                                args[0] = lantoneDiagMap.get("name");
+                            }
+                        }
+                    }
+                }
+            }
         } else if (method.getName().equals("setHospitalDiagName")) {
             Diag diag = (Diag) obj;
-            diag.setName(args[0].toString());
+            diag.setName((String) args[0]);
         }
         Object object = proxy.invokeSuper(obj, args);
         return object;

+ 38 - 0
kernel/src/main/java/com/lantone/qc/kernel/util/RedisUtil.java

@@ -1,5 +1,6 @@
 package com.lantone.qc.kernel.util;
 
+import com.lantone.qc.pub.util.FastJsonUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
@@ -573,5 +574,42 @@ public final class RedisUtil {
             return 0;
         }
     }
+
+    /**
+     * 获取---value为json字符串
+     *
+     * @param key
+     * @param <T>
+     * @return
+     */
+    public <T> T getJsonStringValue(String key) {
+        try {
+            Object valObj = get(key);
+            if (valObj != null && valObj.getClass().getName().indexOf("String") > -1) {
+                return (T) FastJsonUtils.getJsonToBean(valObj.toString(), Object.class);
+            }
+            return null;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    /**
+     * 插入---value为json字符串
+     *
+     * @param key
+     * @param value
+     */
+    public void setJsonStringValue(String key, Object value) {
+        try {
+            set(key, FastJsonUtils.getBeanToJson(value));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+
 }