Kaynağa Gözat

ICSS,智能分诊日志统计

zhoutg 5 yıl önce
ebeveyn
işleme
4c71bca5ee

+ 2 - 0
config-server/src/main/resources/shared/icss-service-dev.yml

@@ -59,6 +59,8 @@ spring:
         outputPoint:
           destination: myPoint
         #          contentType: text/plain      # 实体 json string 在传递的类型装换 查看 http://docs.spring
+        outputBiLog:
+          destination: myBiLog
         inputPoint:
           destination: myPoint
           group: pointReceiveGroup

+ 2 - 0
config-server/src/main/resources/shared/icss-service-local.yml

@@ -59,6 +59,8 @@ spring:
         outputPoint:
           destination: myPoint
         #          contentType: text/plain      # 实体 json string 在传递的类型装换 查看 http://docs.spring
+        outputBiLog:
+          destination: myBiLog
         inputPoint:
           destination: myPoint
           group: pointReceiveGroup

+ 2 - 0
config-server/src/main/resources/shared/icss-service-pre.yml

@@ -59,6 +59,8 @@ spring:
         outputPoint:
           destination: myPoint
         #          contentType: text/plain      # 实体 json string 在传递的类型装换 查看 http://docs.spring
+        outputBiLog:
+          destination: myBiLog
         inputPoint:
           destination: myPoint
           group: pointReceiveGroup

+ 2 - 0
config-server/src/main/resources/shared/icss-service-pro.yml

@@ -59,6 +59,8 @@ spring:
         outputPoint:
           destination: myPoint
         #          contentType: text/plain      # 实体 json string 在传递的类型装换 查看 http://docs.spring
+        outputBiLog:
+          destination: myBiLog
         inputPoint:
           destination: myPoint
           group: pointReceiveGroup

+ 2 - 0
config-server/src/main/resources/shared/icss-service-test.yml

@@ -59,6 +59,8 @@ spring:
         outputPoint:
           destination: myPoint
         #          contentType: text/plain      # 实体 json string 在传递的类型装换 查看 http://docs.spring
+        outputBiLog:
+          destination: myBiLog
         inputPoint:
           destination: myPoint
           group: pointReceiveGroup

+ 2 - 0
config-server/src/main/resources/shared/prec-service-dev.yml

@@ -56,6 +56,8 @@ spring:
         outputLog:
           destination: myLog
   #          contentType: text/plain      # 实体 json string 在传递的类型装换 查看 http://docs.spring
+        outputBiLog:
+          destination: myBiLog
 
   #mq
   rabbitmq:

+ 2 - 0
config-server/src/main/resources/shared/prec-service-local.yml

@@ -56,6 +56,8 @@ spring:
         outputLog:
           destination: myLog
   #          contentType: text/plain      # 实体 json string 在传递的类型装换 查看 http://docs.spring
+        outputBiLog:
+          destination: myBiLog
 
   #mq
   rabbitmq:

+ 2 - 0
config-server/src/main/resources/shared/prec-service-pre.yml

@@ -56,6 +56,8 @@ spring:
         outputLog:
           destination: myLog
   #          contentType: text/plain      # 实体 json string 在传递的类型装换 查看 http://docs.spring
+        outputBiLog:
+          destination: myBiLog
 
   #mq
   rabbitmq:

+ 2 - 0
config-server/src/main/resources/shared/prec-service-pro.yml

@@ -56,6 +56,8 @@ spring:
         outputLog:
           destination: myLog
   #          contentType: text/plain      # 实体 json string 在传递的类型装换 查看 http://docs.spring
+        outputBiLog:
+          destination: myBiLog
 
   #mq
   rabbitmq:

+ 2 - 0
config-server/src/main/resources/shared/prec-service-test.yml

@@ -56,6 +56,8 @@ spring:
         outputLog:
           destination: myLog
   #          contentType: text/plain      # 实体 json string 在传递的类型装换 查看 http://docs.spring
+        outputBiLog:
+          destination: myBiLog
 
   #mq
   rabbitmq:

+ 76 - 0
icss-service/src/main/java/com/diagbot/aop/BiLoggerAspect.java

@@ -0,0 +1,76 @@
+package com.diagbot.aop;
+
+import com.diagbot.annotation.BiLogger;
+import com.diagbot.enums.ProductTypeEnum;
+import com.diagbot.rabbit.MySender;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.GsonUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.BaseBiVO;
+import com.diagbot.vo.BiRecord;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.lang.reflect.Method;
+import java.util.Date;
+
+/**
+ * @Description: 日志拦截切面
+ * @author: gaodm
+ * @time: 2018/8/2 13:36
+ */
+@Aspect
+@Component
+public class BiLoggerAspect {
+    @Autowired
+    private MySender mySender;
+
+    @AfterReturning(value = "@annotation(com.diagbot.annotation.BiLogger)", returning = "keys")
+    public void saveBiRecord(JoinPoint joinPoint, Object keys) {
+        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+        Method method = signature.getMethod();
+
+        BiRecord biRecord = new BiRecord();
+        //请求的参数
+        Object[] args = joinPoint.getArgs();
+        String params = "";
+        for (Object o : args) {
+            if (o instanceof BaseBiVO) {
+                BaseBiVO baseBiVO = (BaseBiVO) o;
+                if (StringUtil.isBlank(baseBiVO.getHospitalCode())) {
+                    return;
+                } else {
+                    BeanUtil.copyProperties(baseBiVO, biRecord);
+                }
+            }
+            params += GsonUtil.toJson(o);
+        }
+        if (!StringUtil.isEmpty(params)) {
+            biRecord.setParams(params);
+        }
+
+        //设置功能编码
+        BiLogger biLogger = method.getAnnotation(BiLogger.class);
+        if (biLogger != null) {
+            //注解上的描述
+            biRecord.setCode(biLogger.value());
+        }
+
+        //出参设置
+        String result = "";
+        result = GsonUtil.toJson(keys);
+        if (!StringUtil.isEmpty(result)) {
+            biRecord.setResult(result);
+        }
+
+        biRecord.setGmtCreate(new Date());
+        biRecord.setProductType(ProductTypeEnum.ICSS.getKey());
+        //保存BI日志
+        mySender.outputBiLogSend(biRecord);
+    }
+}
+

+ 10 - 0
icss-service/src/main/java/com/diagbot/rabbit/MyProcessor.java

@@ -29,4 +29,14 @@ public interface MyProcessor {
 
     @Output(OUTPUT_POINT)
     MessageChannel outputPoint();
+
+
+    String INPUT_BI_LOG = "inputBiLog";
+    String OUTPUT_BI_LOG = "outputBiLog";
+
+    @Input(INPUT_BI_LOG)
+    SubscribableChannel inputBiLog();
+
+    @Output(OUTPUT_BI_LOG)
+    MessageChannel outputBiLog();
 }

+ 9 - 0
icss-service/src/main/java/com/diagbot/rabbit/MySender.java

@@ -2,6 +2,7 @@ package com.diagbot.rabbit;
 
 import com.diagbot.entity.SysLog;
 import com.diagbot.util.GsonUtil;
+import com.diagbot.vo.BiRecord;
 import com.diagbot.vo.BuriedSomeStatisticalVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -33,4 +34,12 @@ public class MySender {
     public void outputPointSend(BuriedSomeStatisticalVO buriedSomeStatisticalVO) {
         outputPoint.send(MessageBuilder.withPayload(GsonUtil.toJson(buriedSomeStatisticalVO)).build());
     }
+
+    @Autowired
+    @Qualifier("outputBiLog")
+    MessageChannel outputBiLog;
+
+    public void outputBiLogSend(BiRecord biRecord) {
+        outputBiLog.send(MessageBuilder.withPayload(GsonUtil.toJson(biRecord)).build());
+    }
 }

+ 76 - 0
prec-service/src/main/java/com/diagbot/aop/BiLoggerAspect.java

@@ -0,0 +1,76 @@
+package com.diagbot.aop;
+
+import com.diagbot.annotation.BiLogger;
+import com.diagbot.enums.ProductTypeEnum;
+import com.diagbot.rabbit.MySender;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.GsonUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.BaseBiVO;
+import com.diagbot.vo.BiRecord;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.lang.reflect.Method;
+import java.util.Date;
+
+/**
+ * @Description: 日志拦截切面
+ * @author: gaodm
+ * @time: 2018/8/2 13:36
+ */
+@Aspect
+@Component
+public class BiLoggerAspect {
+    @Autowired
+    private MySender mySender;
+
+    @AfterReturning(value = "@annotation(com.diagbot.annotation.BiLogger)", returning = "keys")
+    public void saveBiRecord(JoinPoint joinPoint, Object keys) {
+        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+        Method method = signature.getMethod();
+
+        BiRecord biRecord = new BiRecord();
+        //请求的参数
+        Object[] args = joinPoint.getArgs();
+        String params = "";
+        for (Object o : args) {
+            if (o instanceof BaseBiVO) {
+                BaseBiVO baseBiVO = (BaseBiVO) o;
+                if (StringUtil.isBlank(baseBiVO.getHospitalCode())) {
+                    return;
+                } else {
+                    BeanUtil.copyProperties(baseBiVO, biRecord);
+                }
+            }
+            params += GsonUtil.toJson(o);
+        }
+        if (!StringUtil.isEmpty(params)) {
+            biRecord.setParams(params);
+        }
+
+        //设置功能编码
+        BiLogger biLogger = method.getAnnotation(BiLogger.class);
+        if (biLogger != null) {
+            //注解上的描述
+            biRecord.setCode(biLogger.value());
+        }
+
+        //出参设置
+        String result = "";
+        result = GsonUtil.toJson(keys);
+        if (!StringUtil.isEmpty(result)) {
+            biRecord.setResult(result);
+        }
+
+        biRecord.setGmtCreate(new Date());
+        biRecord.setProductType(ProductTypeEnum.PREC.getKey());
+        //保存BI日志
+        mySender.outputBiLogSend(biRecord);
+    }
+}
+

+ 9 - 0
prec-service/src/main/java/com/diagbot/rabbit/MyProcessor.java

@@ -20,4 +20,13 @@ public interface MyProcessor {
 
     @Output(OUTPUT_LOG)
     MessageChannel outputLog();
+
+    String INPUT_BI_LOG = "inputBiLog";
+    String OUTPUT_BI_LOG = "outputBiLog";
+
+    @Input(INPUT_BI_LOG)
+    SubscribableChannel inputBiLog();
+
+    @Output(OUTPUT_BI_LOG)
+    MessageChannel outputBiLog();
 }

+ 9 - 0
prec-service/src/main/java/com/diagbot/rabbit/MySender.java

@@ -2,6 +2,7 @@ package com.diagbot.rabbit;
 
 import com.diagbot.entity.SysLog;
 import com.diagbot.util.GsonUtil;
+import com.diagbot.vo.BiRecord;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.cloud.stream.annotation.EnableBinding;
@@ -21,7 +22,15 @@ public class MySender {
     @Qualifier("outputLog")
     MessageChannel outputLog;
 
+    @Autowired
+    @Qualifier("outputBiLog")
+    MessageChannel outputBiLog;
+
     public void outputLogSend(SysLog sysLog) {
         outputLog.send(MessageBuilder.withPayload(GsonUtil.toJson(sysLog)).build());
     }
+
+    public void outputBiLogSend(BiRecord biRecord) {
+        outputBiLog.send(MessageBuilder.withPayload(GsonUtil.toJson(biRecord)).build());
+    }
 }