浏览代码

caisp20190425慈溪中联接口

caisp 6 年之前
父节点
当前提交
19c93a1041
共有 100 个文件被更改,包括 6774 次插入5401 次删除
  1. 2 2
      aipt-service/src/main/resources/bootstrap.yml
  2. 2 2
      config-server/src/main/resources/application.yml
  3. 4 4
      config-server/src/main/resources/shared/aipt-service-local.yml
  4. 1 1
      config-server/src/main/resources/shared/gateway-service-local.yml
  5. 6 6
      config-server/src/main/resources/shared/icss-service-local.yml
  6. 3 3
      config-server/src/main/resources/shared/tran-service-local.yml
  7. 48 48
      diagbotman-service/src/main/java/com/diagbot/dto/AuthDetailDTO.java
  8. 49 49
      diagbotman-service/src/main/java/com/diagbot/dto/EnShowOptionDTO.java
  9. 91 91
      diagbotman-service/src/main/java/com/diagbot/dto/GetConsoleOnTrialDTO.java
  10. 102 102
      diagbotman-service/src/main/java/com/diagbot/dto/GetConsoleOpenedDTO.java
  11. 38 38
      diagbotman-service/src/main/java/com/diagbot/dto/OpenUpOnTrialDTO.java
  12. 59 59
      diagbotman-service/src/main/java/com/diagbot/dto/UserAndProdutDTO.java
  13. 20 20
      diagbotman-service/src/main/java/com/diagbot/dto/WaitExamOrderCouDTO.java
  14. 435 435
      diagbotman-service/src/main/java/com/diagbot/facade/ProductOrderFacade.java
  15. 25 25
      diagbotman-service/src/main/java/com/diagbot/vo/ModifyOpeningTimeVO.java
  16. 15 15
      diagbotman-service/src/main/java/com/diagbot/vo/OpenUpOnTrialVO.java
  17. 23 23
      diagbotman-service/src/main/java/com/diagbot/vo/StartAndendByUserIdVO.java
  18. 200 200
      diagbotman-service/src/main/java/com/diagbot/web/ProductOrderController.java
  19. 1 1
      eureka-server/src/main/resources/application-local.yml
  20. 2 2
      gateway-service/src/main/resources/bootstrap.yml
  21. 68 68
      icss-service/src/main/java/com/diagbot/dto/DisclaimerInformationDTO.java
  22. 36 36
      icss-service/src/main/java/com/diagbot/dto/DoctorPageModeDTO.java
  23. 30 30
      icss-service/src/main/java/com/diagbot/dto/GetLastOtherDTO.java
  24. 156 156
      icss-service/src/main/java/com/diagbot/dto/GetTopPatientInfoDTO.java
  25. 40 40
      icss-service/src/main/java/com/diagbot/dto/LisConfigDTO.java
  26. 30 30
      icss-service/src/main/java/com/diagbot/dto/TemplateInfoDTO.java
  27. 60 60
      icss-service/src/main/java/com/diagbot/dto/VersionDetailDTO.java
  28. 48 48
      icss-service/src/main/java/com/diagbot/dto/VersionWrapperDTO.java
  29. 56 56
      icss-service/src/main/java/com/diagbot/facade/BuriedSomeStatisticalFacade.java
  30. 86 86
      icss-service/src/main/java/com/diagbot/facade/DoctorPageModeFacade.java
  31. 41 41
      icss-service/src/main/java/com/diagbot/facade/HospitalDeptFacade.java
  32. 70 70
      icss-service/src/main/java/com/diagbot/facade/InquiryDetailFacade.java
  33. 351 351
      icss-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java
  34. 242 242
      icss-service/src/main/java/com/diagbot/facade/LisExcelResFacade.java
  35. 42 42
      icss-service/src/main/java/com/diagbot/facade/PrintRecordFacade.java
  36. 170 170
      icss-service/src/main/java/com/diagbot/facade/TemplateInfoFacade.java
  37. 50 50
      icss-service/src/main/java/com/diagbot/facade/VersionDetailFacaed.java
  38. 56 56
      icss-service/src/main/java/com/diagbot/facade/VersionInfoFacade.java
  39. 52 52
      icss-service/src/main/java/com/diagbot/vo/BuriedSomeStatisticalVO.java
  40. 27 27
      icss-service/src/main/java/com/diagbot/vo/ContentsVO.java
  41. 23 23
      icss-service/src/main/java/com/diagbot/vo/DoctorIdVO.java
  42. 33 33
      icss-service/src/main/java/com/diagbot/vo/DoctorPageModeVO.java
  43. 56 56
      icss-service/src/main/java/com/diagbot/vo/GetTopPatientInfoVO.java
  44. 23 23
      icss-service/src/main/java/com/diagbot/vo/LisExcelResVO.java
  45. 36 36
      icss-service/src/main/java/com/diagbot/vo/LisExcelWrapperVO.java
  46. 20 20
      icss-service/src/main/java/com/diagbot/vo/LisHospitalCodeVO.java
  47. 15 15
      icss-service/src/main/java/com/diagbot/vo/LitAssayVO.java
  48. 64 64
      icss-service/src/main/java/com/diagbot/vo/PrintRecordsVO.java
  49. 43 43
      icss-service/src/main/java/com/diagbot/vo/SaveInquiryDetailVO.java
  50. 45 45
      icss-service/src/main/java/com/diagbot/vo/Taggeds.java
  51. 41 41
      icss-service/src/main/java/com/diagbot/vo/TemplateInfoRevampVO.java
  52. 34 34
      icss-service/src/main/java/com/diagbot/vo/TemplateInfoVO.java
  53. 19 19
      icss-service/src/main/java/com/diagbot/vo/TemplateInfosIdVO.java
  54. 34 34
      icss-service/src/main/java/com/diagbot/vo/TemplateInfosVO.java
  55. 35 35
      icss-service/src/main/java/com/diagbot/web/LisExcelResController.java
  56. 2 2
      icss-service/src/main/resources/bootstrap.yml
  57. 142 142
      icssman-service/src/main/java/com/diagbot/dto/DisclaimerInformationDTO.java
  58. 54 54
      icssman-service/src/main/java/com/diagbot/dto/GetRetrievalsByTagDTO.java
  59. 27 27
      icssman-service/src/main/java/com/diagbot/dto/IndexRevDTO.java
  60. 24 24
      icssman-service/src/main/java/com/diagbot/dto/RetrievalExcelImDTO.java
  61. 68 68
      icssman-service/src/main/java/com/diagbot/dto/RetrievalListDTO.java
  62. 60 60
      icssman-service/src/main/java/com/diagbot/dto/VersionDetailDTO.java
  63. 51 51
      icssman-service/src/main/java/com/diagbot/dto/VersionWrapperDTO.java
  64. 47 47
      icssman-service/src/main/java/com/diagbot/enums/DisclaimerCodeEnum.java
  65. 468 468
      icssman-service/src/main/java/com/diagbot/facade/RetrievalFacade.java
  66. 40 40
      icssman-service/src/main/java/com/diagbot/facade/RetrievalMappingFacade.java
  67. 223 223
      icssman-service/src/main/java/com/diagbot/facade/VersionDetailFacade.java
  68. 248 248
      icssman-service/src/main/java/com/diagbot/facade/VersionInfoFacade.java
  69. 79 79
      icssman-service/src/main/java/com/diagbot/vo/AddTagRetrievalDetailVO.java
  70. 44 44
      icssman-service/src/main/java/com/diagbot/vo/AddTagRetrievalVO.java
  71. 28 28
      icssman-service/src/main/java/com/diagbot/vo/DelRetrievalsByQuesIdVO.java
  72. 55 55
      icssman-service/src/main/java/com/diagbot/vo/DisclaimerInformationAllVO.java
  73. 22 22
      icssman-service/src/main/java/com/diagbot/vo/DisclaimerInformationIdVO.java
  74. 23 23
      icssman-service/src/main/java/com/diagbot/vo/DisclaimerInformationTitleVO.java
  75. 49 49
      icssman-service/src/main/java/com/diagbot/vo/DisclaimerInformationVO.java
  76. 34 34
      icssman-service/src/main/java/com/diagbot/vo/GetRetrievalsByTagVO.java
  77. 27 27
      icssman-service/src/main/java/com/diagbot/vo/RetrievalListVO.java
  78. 21 21
      icssman-service/src/main/java/com/diagbot/vo/VersionDetailIdVO.java
  79. 48 48
      icssman-service/src/main/java/com/diagbot/vo/VersionDetailVO.java
  80. 44 44
      icssman-service/src/main/java/com/diagbot/vo/VersionInfoAllVO.java
  81. 26 26
      icssman-service/src/main/java/com/diagbot/vo/VersionInfoAndDetailIdVO.java
  82. 19 19
      icssman-service/src/main/java/com/diagbot/vo/VersionInfoIdVO.java
  83. 49 49
      icssman-service/src/main/java/com/diagbot/vo/VersionInfoVO.java
  84. 21 21
      icssman-service/src/main/java/com/diagbot/vo/VersionWrapperNameVO.java
  85. 4 0
      logs/aipt-service/aipt-service_debug.log
  86. 0 0
      logs/aipt-service/aipt-service_error.log
  87. 58 0
      logs/aipt-service/aipt-service_info.log
  88. 5 0
      logs/aipt-service/aipt-service_warn.log
  89. 8 0
      logs/aipt-service/debug/aipt-service-debug-2019-04-22.0.log
  90. 106 0
      logs/aipt-service/info/aipt-service-info-2019-04-22.0.log
  91. 10 0
      logs/aipt-service/warn/aipt-service-warn-2019-04-22.0.log
  92. 0 0
      logs/config-server/config-server_debug.log
  93. 216 0
      logs/config-server/config-server_error.log
  94. 873 0
      logs/config-server/config-server_info.log
  95. 24 0
      logs/config-server/config-server_warn.log
  96. 53 0
      logs/config-server/warn/config-server-warn-2019-04-22.0.log
  97. 16 0
      logs/config-server/warn/config-server-warn-2019-04-23.0.log
  98. 0 0
      logs/eureka-server/error/eureka-server-error-2019-04-22.0.log
  99. 0 0
      logs/eureka-server/eureka-server_debug.log
  100. 0 0
      logs/eureka-server/eureka-server_error.log

+ 2 - 2
aipt-service/src/main/resources/bootstrap.yml

@@ -3,7 +3,7 @@ spring:
     name: aipt-service
   cloud:
     config:
-      #uri: http://${myuri}:8769
+      #uri: http://${myuri}:4001
       fail-fast: true
       discovery:
         enabled: true
@@ -14,6 +14,6 @@ spring:
 eureka:
   client:
     serviceUrl:
-      defaultZone: http://${myuri}:8761/eureka/
+      defaultZone: http://${myuri}:4000/eureka/
 
 myuri: localhost

+ 2 - 2
config-server/src/main/resources/application.yml

@@ -33,7 +33,7 @@ spring:
 
 # port
 server:
-  port: 8769
+  port: 4001
 
 eureka:
   instance:
@@ -44,7 +44,7 @@ eureka:
   client:
     registryFetchIntervalSeconds: 5
     serviceUrl:
-      defaultZone: http://${myuri}:8761/eureka/
+      defaultZone: http://${myuri}:4000/eureka/
 
 management:
   endpoints:

+ 4 - 4
config-server/src/main/resources/shared/aipt-service-local.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8845
+  port: 4002
 
 # 驱动配置信息
 spring:
@@ -8,9 +8,9 @@ spring:
       driverClassName: com.mysql.jdbc.Driver
       driver-class-name: com.mysql.jdbc.Driver
       platform: mysql
-      url: jdbc:mysql://192.168.2.236:3306/sys-log?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
+      url: jdbc:mysql://127.0.0.1:3306/sys-log-zhonglian?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
       username: root
-      password: lantone
+      password: langtong
       # 连接池的配置信息
       # 初始化大小,最小,最大
       initialSize: 5
@@ -94,4 +94,4 @@ mybatis-plus:
 
 ai:
   server:
-    address: http://192.168.2.234:5008
+    address: http://223.93.170.82:5008

+ 1 - 1
config-server/src/main/resources/shared/gateway-service-local.yml

@@ -108,7 +108,7 @@ spring:
         - StripPrefix=2
 
 server:
-  port: 5050
+  port: 4005
 
 lantone:
   product: triage33,1;icsstt,2

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

@@ -1,5 +1,5 @@
 server:
-  port: 8843
+  port: 4003
 
 # 驱动配置信息
 spring:
@@ -8,9 +8,9 @@ spring:
       driverClassName: com.mysql.jdbc.Driver
       driver-class-name: com.mysql.jdbc.Driver
       platform: mysql
-      url: jdbc:mysql://192.168.2.236:3306/sys-icss?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
+      url: jdbc:mysql://127.0.0.1:3306/sys-icss-zhonglian?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
       username: root
-      password: lantone
+      password: langtong
       # 连接池的配置信息
       # 初始化大小,最小,最大
       initialSize: 5
@@ -100,12 +100,12 @@ mybatis-plus:
 
 bigdata:
   server:
-    address: http://192.168.2.234:5008
+    address: http://223.93.170.82:5008
 
 graph:
   server:
-    address: http://192.168.2.234:5003
+    address: http://223.93.170.82:5003
 
 nlp:
   server:
-    address: http://192.168.2.234:5002
+    address: http://223.93.170.82:5002

+ 3 - 3
config-server/src/main/resources/shared/tran-service-local.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8825
+  port: 4004
 
 # 驱动配置信息
 spring:
@@ -8,9 +8,9 @@ spring:
       driverClassName: com.mysql.jdbc.Driver
       driver-class-name: com.mysql.jdbc.Driver
       platform: mysql
-      url: jdbc:mysql://192.168.2.236:3306/sys-tran?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
+      url: jdbc:mysql://127.0.0.1:3306/sys-tran-zhonglian?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
       username: root
-      password: lantone
+      password: langtong
       # 连接池的配置信息
       # 初始化大小,最小,最大
       initialSize: 5

+ 48 - 48
diagbotman-service/src/main/java/com/diagbot/dto/AuthDetailDTO.java

@@ -1,48 +1,48 @@
-package com.diagbot.dto;
-
-import java.io.Serializable;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class AuthDetailDTO implements Serializable {
-
-    /**
-     *
-     */
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 订单号
-     */
-    private String num;
-
-    /**
-     * 产品名称
-     */
-    private String name;
-
-    /**
-     * 是否通过审核,0.不通过1.通过2.待审核
-     */
-    private Integer auditStatus;
-    
-    /**
-     * 审核信息
-     */
-    private String auditStatusMsg;
-    
-    /**
-     * 不通过类型
-     */
-    private Integer rejectType;
-
-    /**
-     * 不通过原因
-     */
-    private String rejectReason;
-
-
-}
+package com.diagbot.dto;
+
+import java.io.Serializable;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AuthDetailDTO implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单号
+     */
+    private String num;
+
+    /**
+     * 产品名称
+     */
+    private String name;
+
+    /**
+     * 是否通过审核,0.不通过1.通过2.待审核
+     */
+    private Integer auditStatus;
+    
+    /**
+     * 审核信息
+     */
+    private String auditStatusMsg;
+    
+    /**
+     * 不通过类型
+     */
+    private Integer rejectType;
+
+    /**
+     * 不通过原因
+     */
+    private String rejectReason;
+
+
+}

+ 49 - 49
diagbotman-service/src/main/java/com/diagbot/dto/EnShowOptionDTO.java

@@ -1,49 +1,49 @@
-package com.diagbot.dto;
-
-import java.io.Serializable;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class EnShowOptionDTO implements Serializable {
-
-    /**
-     *
-     */
-    private static final long serialVersionUID = 1L;
-    
-    /**
-     * 认证中数量
-     */
-    private Integer authIngCount;
-    
-    /**
-     * 认证被拒原因个数
-     */
-    private Integer authRejectCount;
-    
-    /**
-     * 订单数量
-     */
-    private Integer orderCount;
-
-    /**
-     * 订单审核不通过订单数
-     */
-    private Integer orderAuthFailCount;
-    
-    /**
-     * 可开通产品数量
-     */
-    private Integer openedCount;
-
-    /**
-     * 可试用产品数量
-     */
-    private Integer onTrialCount;
-    
-    
-
-}
+package com.diagbot.dto;
+
+import java.io.Serializable;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class EnShowOptionDTO implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+    
+    /**
+     * 认证中数量
+     */
+    private Integer authIngCount;
+    
+    /**
+     * 认证被拒原因个数
+     */
+    private Integer authRejectCount;
+    
+    /**
+     * 订单数量
+     */
+    private Integer orderCount;
+
+    /**
+     * 订单审核不通过订单数
+     */
+    private Integer orderAuthFailCount;
+    
+    /**
+     * 可开通产品数量
+     */
+    private Integer openedCount;
+
+    /**
+     * 可试用产品数量
+     */
+    private Integer onTrialCount;
+    
+    
+
+}

+ 91 - 91
diagbotman-service/src/main/java/com/diagbot/dto/GetConsoleOnTrialDTO.java

@@ -1,91 +1,91 @@
-package com.diagbot.dto;
-
-import java.io.Serializable;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class GetConsoleOnTrialDTO implements Serializable {
-
-    /**
-     *
-     */
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 产品id
-     */
-    private Long id;
-
-    /**
-     * 产品名
-     */
-    private String name;
-
-    /**
-     * 接入模式
-     */
-    private String accessType;
-    
-    /**
-     * 接入模式信息
-     */
-    private String accessTypeMsg;
-    
-    /**
-     * 产品停用状态
-     */
-    private Integer serviceStatus;
-    
-    /**
-     * 产品停用信息
-     */
-    private String serviceStatusMsg;
-
-    /**
-     * 是否已试用
-     */
-    private String isUsed;
-
-    /**
-     * 试用地址
-     */
-    private String trialUrl;
-
-    /**
-     * 
-     */
-    private String appKeyId;
-    
-    /**
-     * 
-     */
-    private String appKeySecret;
-    
-    /**
-     * token状态
-     */
-    private Integer tokenStatus;
-    
-    /**
-     * token状态信息
-     */
-    private String tokenStatusMsg;
-    
-    /**
-     * 开通日期
-     */
-    private String startingDate;
-
-    /**
-     * 到期时间
-     */
-    private String expiringDate;
-    
-    /**
-     * 剩余时间
-     */
-    private String surplusTime;
-}
+package com.diagbot.dto;
+
+import java.io.Serializable;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class GetConsoleOnTrialDTO implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 产品id
+     */
+    private Long id;
+
+    /**
+     * 产品名
+     */
+    private String name;
+
+    /**
+     * 接入模式
+     */
+    private String accessType;
+    
+    /**
+     * 接入模式信息
+     */
+    private String accessTypeMsg;
+    
+    /**
+     * 产品停用状态
+     */
+    private Integer serviceStatus;
+    
+    /**
+     * 产品停用信息
+     */
+    private String serviceStatusMsg;
+
+    /**
+     * 是否已试用
+     */
+    private String isUsed;
+
+    /**
+     * 试用地址
+     */
+    private String trialUrl;
+
+    /**
+     * 
+     */
+    private String appKeyId;
+    
+    /**
+     * 
+     */
+    private String appKeySecret;
+    
+    /**
+     * token状态
+     */
+    private Integer tokenStatus;
+    
+    /**
+     * token状态信息
+     */
+    private String tokenStatusMsg;
+    
+    /**
+     * 开通日期
+     */
+    private String startingDate;
+
+    /**
+     * 到期时间
+     */
+    private String expiringDate;
+    
+    /**
+     * 剩余时间
+     */
+    private String surplusTime;
+}

+ 102 - 102
diagbotman-service/src/main/java/com/diagbot/dto/GetConsoleOpenedDTO.java

@@ -1,103 +1,103 @@
-package com.diagbot.dto;
-
-import java.io.Serializable;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class GetConsoleOpenedDTO implements Serializable {
-
-    /**
-     *
-     */
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 已开通产品id
-     */
-    private Integer openId;
-
-    /**
-     * 产品id
-     */
-    private Integer productId;
-
-    /**
-     * 产品名称
-     */
-    private String name;
-
-    /**
-     * 开通日期
-     */
-    private String startTime;
-
-    /**
-     * 结束日期
-     */
-    private String endTime;
-
-    /**
-     * 当前用户的产品停用状态
-     */
-    private Integer serviceStatus;
-    
-    /**
-     * 当前用户产品停用状态信息
-     */
-    private String serviceStatusMsg;
-
-
-    /**
-     * 接入方式(1:嵌入式,2:接口方式,3:online)
-     */
-    private String accessType;
-    
-    /**
-     * 接入方式信息
-     */
-    private String accessTypeMsg;
-    
-    /**
-     * 是否续费中,0-否  1-是
-     */
-    private Integer renewalsStutas;
-    
-    /**
-     *  0-过期,1-未过期
-     */
-    private Integer isExpire;
-    
-    /**
-     * 产品地址
-     */
-    private String url;
-    
-    /**
-     * 
-     */
-    private String appKeyId;
-    
-    /**
-     * 
-     */
-    private String appKeySecret;
-    
-    /**
-     * 是否可以进入
-     */
-    private Integer isInto;
-    
-    /**
-     * 是否显示生成token
-     */
-    private Integer isCreateToken;
-    
-    /**
-     * 是否可以开始使用
-     */
-    private Integer isBegin;
-    
+package com.diagbot.dto;
+
+import java.io.Serializable;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class GetConsoleOpenedDTO implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 已开通产品id
+     */
+    private Integer openId;
+
+    /**
+     * 产品id
+     */
+    private Integer productId;
+
+    /**
+     * 产品名称
+     */
+    private String name;
+
+    /**
+     * 开通日期
+     */
+    private String startTime;
+
+    /**
+     * 结束日期
+     */
+    private String endTime;
+
+    /**
+     * 当前用户的产品停用状态
+     */
+    private Integer serviceStatus;
+    
+    /**
+     * 当前用户产品停用状态信息
+     */
+    private String serviceStatusMsg;
+
+
+    /**
+     * 接入方式(1:嵌入式,2:接口方式,3:online)
+     */
+    private String accessType;
+    
+    /**
+     * 接入方式信息
+     */
+    private String accessTypeMsg;
+    
+    /**
+     * 是否续费中,0-否  1-是
+     */
+    private Integer renewalsStutas;
+    
+    /**
+     *  0-过期,1-未过期
+     */
+    private Integer isExpire;
+    
+    /**
+     * 产品地址
+     */
+    private String url;
+    
+    /**
+     * 
+     */
+    private String appKeyId;
+    
+    /**
+     * 
+     */
+    private String appKeySecret;
+    
+    /**
+     * 是否可以进入
+     */
+    private Integer isInto;
+    
+    /**
+     * 是否显示生成token
+     */
+    private Integer isCreateToken;
+    
+    /**
+     * 是否可以开始使用
+     */
+    private Integer isBegin;
+    
 }

+ 38 - 38
diagbotman-service/src/main/java/com/diagbot/dto/OpenUpOnTrialDTO.java

@@ -1,38 +1,38 @@
-package com.diagbot.dto;
-
-import java.io.Serializable;
-
-import com.diagbot.entity.ServiceToken;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class OpenUpOnTrialDTO implements Serializable {
-
-    /**
-     *
-     */
-    private static final long serialVersionUID = 1L;
-
-
-//    private ServiceToken serviceToken;
-    
-    
-    /**
-     * 试用地址
-     */
-    private String trialUrl;
-
-    /**
-     * 
-     */
-    private String appKeyId;
-    
-    /**
-     * 
-     */
-    private String appKeySecret;
-
-}
+package com.diagbot.dto;
+
+import java.io.Serializable;
+
+import com.diagbot.entity.ServiceToken;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class OpenUpOnTrialDTO implements Serializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+
+//    private ServiceToken serviceToken;
+    
+    
+    /**
+     * 试用地址
+     */
+    private String trialUrl;
+
+    /**
+     * 
+     */
+    private String appKeyId;
+    
+    /**
+     * 
+     */
+    private String appKeySecret;
+
+}

+ 59 - 59
diagbotman-service/src/main/java/com/diagbot/dto/UserAndProdutDTO.java

@@ -1,59 +1,59 @@
-package com.diagbot.dto;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import com.diagbot.enums.AccessTypeEnum;
-import com.diagbot.enums.ChargeTypeEnum;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @author wangfeng
- * @Description: 用户已开通产品出参
- * @date 2018年9月21日 上午10:32:52
- */
-
-@Getter
-@Setter
-public class UserAndProdutDTO {
-
-    private Long Id;//开通的id
-    private Long productId;//产品Id
-    private Long userId;//用户Id
-    private Date startTime;//开通时间
-    private Date endTime;//结束时间
-    private Integer serviceStatus;//启用状态
-    private String accessType;//接入方式
-    private String chargeType;//结算方式
-    private String productName;//产品名称
-
-    /**
-     * list格式返回给前台
-     * @return
-     */
-    public String[] getAccessType() {
-        String[] strs =accessType.split(",");
-        List<String> list =new ArrayList();
-        for (int i =0;i<strs.length;i++){
-            list.add(AccessTypeEnum.getName(Integer.valueOf(strs[i])));
-        }
-        String[] strs1 =new String[list.size()];
-        return list.toArray(strs1);
-    }
-    /**
-     * list格式返回给前台
-     * @return
-     */
-    public String[] getChargeType() {
-        String[] strs =chargeType.split(",");
-        List<String> list =new ArrayList();
-        for (int i =0;i<strs.length;i++){
-            list.add(ChargeTypeEnum.getName(Integer.valueOf(strs[i])));
-        }
-        String[] strs1 =new String[list.size()];
-        return list.toArray(strs1);
-    }
-}
+package com.diagbot.dto;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import com.diagbot.enums.AccessTypeEnum;
+import com.diagbot.enums.ChargeTypeEnum;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description: 用户已开通产品出参
+ * @date 2018年9月21日 上午10:32:52
+ */
+
+@Getter
+@Setter
+public class UserAndProdutDTO {
+
+    private Long Id;//开通的id
+    private Long productId;//产品Id
+    private Long userId;//用户Id
+    private Date startTime;//开通时间
+    private Date endTime;//结束时间
+    private Integer serviceStatus;//启用状态
+    private String accessType;//接入方式
+    private String chargeType;//结算方式
+    private String productName;//产品名称
+
+    /**
+     * list格式返回给前台
+     * @return
+     */
+    public String[] getAccessType() {
+        String[] strs =accessType.split(",");
+        List<String> list =new ArrayList();
+        for (int i =0;i<strs.length;i++){
+            list.add(AccessTypeEnum.getName(Integer.valueOf(strs[i])));
+        }
+        String[] strs1 =new String[list.size()];
+        return list.toArray(strs1);
+    }
+    /**
+     * list格式返回给前台
+     * @return
+     */
+    public String[] getChargeType() {
+        String[] strs =chargeType.split(",");
+        List<String> list =new ArrayList();
+        for (int i =0;i<strs.length;i++){
+            list.add(ChargeTypeEnum.getName(Integer.valueOf(strs[i])));
+        }
+        String[] strs1 =new String[list.size()];
+        return list.toArray(strs1);
+    }
+}

+ 20 - 20
diagbotman-service/src/main/java/com/diagbot/dto/WaitExamOrderCouDTO.java

@@ -1,20 +1,20 @@
-package com.diagbot.dto;
-
-import java.io.Serializable;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class WaitExamOrderCouDTO implements Serializable {
-
-
-    /**
-     *
-     */
-    private static final long serialVersionUID = 1L;
-
-    private Integer count;
-
-}
+package com.diagbot.dto;
+
+import java.io.Serializable;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class WaitExamOrderCouDTO implements Serializable {
+
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    private Integer count;
+
+}

+ 435 - 435
diagbotman-service/src/main/java/com/diagbot/facade/ProductOrderFacade.java

@@ -1,435 +1,435 @@
-package com.diagbot.facade;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.diagbot.client.UserServiceClient;
-import com.diagbot.dto.AuthDetailDTO;
-import com.diagbot.dto.OrderDetialsDTO;
-import com.diagbot.dto.ProductAuthProgressDTO;
-import com.diagbot.dto.ProductLineDTO;
-import com.diagbot.dto.ProductOrderDTO;
-import com.diagbot.dto.ProductOrderExportDTO;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.UserOrgDTO;
-import com.diagbot.dto.WaitExamOrderCouDTO;
-import com.diagbot.entity.OrderDetailStatus;
-import com.diagbot.entity.OrderDetails;
-import com.diagbot.entity.ProductOrder;
-import com.diagbot.entity.ProductOrderIndex;
-import com.diagbot.entity.User;
-import com.diagbot.entity.wrapper.ProductOrderWrapper;
-import com.diagbot.enums.AuditStatusEnum;
-import com.diagbot.enums.AuthStatusEnum;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.enums.NotPassEnum;
-import com.diagbot.enums.StatusEnum;
-import com.diagbot.enums.VisibleIdTypeEnum;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.exception.CommonException;
-import com.diagbot.idc.VisibleIdCreater;
-import com.diagbot.service.impl.ProductOrderServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.ExportBeanExcelUtil;
-import com.diagbot.util.GsonUtil;
-import com.diagbot.util.UserUtils;
-import com.diagbot.vo.AddOrderVO;
-import com.diagbot.vo.OrderDetialsVO;
-import com.diagbot.vo.ProductOrderExportVO;
-import com.diagbot.vo.ProductOrderVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 订单业务
- *
- * @author Administrator
- */
-@Component
-public class ProductOrderFacade extends ProductOrderServiceImpl {
-    @Autowired
-    private VisibleIdCreater visibleIdCreater;
-    @Autowired
-    private OrderDetailsFacade orderDetailsFacade;
-    @Autowired
-    private ServiceInfoFacade serviceInfoFacade;
-    @Autowired
-    private LantoneProductFacade lantoneProductFacade;
-    @Autowired
-    private ProductServiceFacade productServiceFacade;
-    @Autowired
-    private UserServiceClient userServiceClient;
-    @Autowired
-    private ProductOrderFacade productOrderFacade;
-    @Autowired
-    private OpenedProductsFacade openedProductsFacade;
-    @Autowired
-    private ServiceTokenFacade serviceTokenFacade;
-
-
-    /**
-     * 获取产品的认证进度
-     *
-     * @return 包含产品当前的认证状态
-     */
-    public ProductAuthProgressDTO productAuthProgress() {
-//        List<ProductAuthProgressDTO> retList = new ArrayList<ProductAuthProgressDTO>();
-//        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
-//        List<ProductOrder> orderList = baseMapper.getUserProductOrder(userId);
-//        List<String> nums = new ArrayList<>();
-//        for (ProductOrder i : orderList) {
-//            nums.add(i.getNum());
-//        }
-//        
-//        if(nums.size()==0){
-//        	return retList;
-//        }
-        
-//        List<AuthDetailDTO> detailList = baseMapper.getOrderDetailsByNums(nums);
-//        List<AuthDetailDTO> products = null;
-//        Map<String, List<AuthDetailDTO>> detailMap = detailList.stream().collect(Collectors.groupingBy(AuthDetailDTO::getNum));
-//        for (String num : detailMap.keySet()) {
-//            ProductAuthProgressDTO productAuthProgressDTO = new ProductAuthProgressDTO();
-//            productAuthProgressDTO.setNum(num);
-//            products = detailMap.get(num);
-//            for(AuthDetailDTO i : products){
-//            	i.setAuditStatusMsg(AuditStatusEnum.getName(i.getAuditStatus()));
-//            	if(i.getRejectType()!=null&&i.getRejectType()!=-1){
-//            		i.setRejectReason(NotPassEnum.getName(i.getRejectType()));
-//            	}
-//            }
-//            productAuthProgressDTO.setProducts(products);
-//            retList.add(productAuthProgressDTO);
-//        }
-        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
-        List<AuthDetailDTO> detailList = baseMapper.getOrderDetailsByUserId(userId);
-        List<AuthDetailDTO> passProduct = new ArrayList<>();
-        List<AuthDetailDTO> failProduct = new ArrayList<>();
-        for(AuthDetailDTO i : detailList){
-        	i.setAuditStatusMsg(AuditStatusEnum.getName(i.getAuditStatus()));
-        	if(i.getRejectType()!=null&&i.getRejectType()!=-1){
-        		i.setRejectReason(NotPassEnum.getName(i.getRejectType()));
-        	}
-        	if(i.getAuditStatus()==0){
-        		failProduct.add(i);
-        	}else{
-        		passProduct.add(i);
-        	}
-        }
-
-        ProductAuthProgressDTO productAuthProgressDTO = new ProductAuthProgressDTO();
-        productAuthProgressDTO.setPassProduct(passProduct);
-        productAuthProgressDTO.setFailProduct(failProduct);
-        return productAuthProgressDTO;
-    }
-    
-    /**
-     * 根据用户id查询订单信息数量
-     * @param userId
-     * @return
-     */
-    public int getUserProductOrderCount(Long userId){
-    	return baseMapper.getUserProductOrderCount(userId);
-    }
-    
-    /**
-     * 根据用户id查询审核不通过订单信息数量
-     * @param userId
-     * @return
-     */
-    public int getOrderAuthFailCount(Long userId){
-    	return baseMapper.getOrderAuthFailCount(userId);
-    }
-
-
-    /**
-     * 根据用户选择的产品生成订单
-     *
-     * @param addOrderVO 需要提供参数(产品id)
-     * @return Boolean true
-     */
-    @Transactional
-    public Boolean addOrders(AddOrderVO addOrderVO) {
-        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
-        List<Long> opendId = openedProductsFacade.getOpendCountByUserId(userId);
-        List<Long> orderDetailsId = orderDetailsFacade.getOrderDetailsByUser(userId);
-        List<ProductLineDTO> productList = lantoneProductFacade.productLinesB();
-        List<Long> userIdList =new ArrayList<>();
-        userIdList.add(userId);
-        RespDTO<Map<Long, UserOrgDTO>> mapRespDTO = userServiceClient.getUserAndOrg(userIdList);
-        if (mapRespDTO == null || !"0".equals(mapRespDTO.code)) {
-            throw new CommonException(CommonErrorCode.RPC_ERROR,
-                    "获取用户机构信息失败");
-        }
-        Map<Long, UserOrgDTO> dataMap =mapRespDTO.data;
-        UserOrgDTO uo =dataMap.get(userId);
-        if(uo.getAuStatus().intValue() != AuthStatusEnum.Authorized.getKey()){
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
-                    "账号信息系不完善,请先认证");
-        }
-        for (int i =0; i<addOrderVO.getProductId().size();i++){
-            for(int l = 0; l< productList.size(); l++){
-                if(addOrderVO.getProductId().get(i).intValue() == productList.get(l).getId().intValue() && productList.get(l).getIsDeleted().equals(IsDeleteEnum.Y.getKey())){
-                        throw new CommonException(CommonErrorCode.NOT_EXISTS,
-                                "【"+productList.get(l).getName()+"】已删除,请刷新重试");
-                }
-                if(addOrderVO.getProductId().get(i).intValue() == productList.get(l).getId().intValue() && productList.get(l).getServiceStatus().intValue() == StatusEnum.Disable.getKey()){
-                    throw new CommonException(CommonErrorCode.NOT_EXISTS,
-                            "【"+productList.get(l).getName()+"】已停用,请刷新重试");
-                }
-            }
-            for (int j =0; j<opendId.size();j++){
-                if(addOrderVO.getProductId().get(i).longValue() == opendId.get(j).longValue()){
-                    throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "请勿重复提交已开通产品");
-                }
-            }
-            for (int k =0; k<orderDetailsId.size();k++){
-                if(addOrderVO.getProductId().get(i).longValue() == orderDetailsId.get(k).longValue()){
-                    throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "产品正在审核中请勿重复提交");
-                }
-            }
-        }
-        ProductOrder productOrder = new ProductOrder();
-        productOrder.setCreator(UserUtils.getCurrentPrincipleID());
-        productOrder.setGmtCreate(DateUtil.now());
-        String orderNum = visibleIdCreater.getNextId(VisibleIdTypeEnum.IS_ORDER.getKey()).toString();
-        productOrder.setNum(orderNum);
-        productOrder.setUserId(userId);
-        productOrder.setTime(DateUtil.now());
-        if (!save(productOrder)) {
-            throw new CommonException(CommonErrorCode.INSERT_DATA_FAILED, "添加订单失败");
-        }
-        OrderDetails orderDetails = null;
-        List<OrderDetails> list =new ArrayList();
-        List<Long> lantoneProductId =new ArrayList<>();
-        for (Long o : addOrderVO.getProductId()) {
-            lantoneProductId.add(o);
-            orderDetails = new OrderDetails();
-            orderDetails.setUserId(userId);
-            orderDetails.setOrderNum(orderNum);
-            orderDetails.setGmtCreate(DateUtil.now());
-            orderDetails.setCreator(UserUtils.getCurrentPrincipleID());
-            orderDetails.setProductId(o);
-            list.add(orderDetails);
-        }
-        if (0 == lantoneProductFacade.listByIds(lantoneProductId).size()) {
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "获取产品信息失败");
-        }
-        if(orderDetailsFacade.saveOrderDetails(list)){
-            throw new CommonException(CommonErrorCode.INSERT_DATA_FAILED, "添加订单失败");
-        }
-        return true;
-    }
-
-
-    /**
-     * 根据订单号查询订单信息
-     *
-     * @param productOrder 参数
-     * @return 订单信息
-     */
-    public ProductOrder selectByOrderNum(ProductOrder productOrder) {
-        return selctOrderTimeByOrderNum(productOrder);
-    }
-
-
-    /**
-     * 计算待审核的订单数量
-     *
-     * @return 待审核的订单数量
-     */
-    public WaitExamOrderCouDTO waitExamOrderCou() {
-        WaitExamOrderCouDTO waitExamOrderCouDTO = new WaitExamOrderCouDTO();
-        RespDTO<List<User>> userInfiList = userServiceClient.getUserAllInfo();
-        if(userInfiList == null || !"0".equals(userInfiList.code) ) {
-            throw new CommonException(CommonErrorCode.RPC_ERROR,
-                    "获取用户和机构信息失败");
-        }
-        List<Long> userIds =new ArrayList<>();
-        for (User user:userInfiList.data) {
-            userIds.add(user.getId());
-        }
-        waitExamOrderCouDTO.setCount(baseMapper.waitExamOrderCou(userIds));
-        return waitExamOrderCouDTO;
-    }
-    
-	/**
-	 * 产品申请查询所有订单信息
-     *
-	 * @param productOrderVO (订单编号,机构名称,申请状态)
-	 * @return 所有订单信息
-	 */
-	public RespDTO<IPage<ProductOrderDTO>> selectAllProductOrder(ProductOrderVO productOrderVO){
-	    Page page =new Page();
-	    BeanUtil.copyProperties(productOrderVO,page);
-		ProductOrderIndex productOrderIndex =new ProductOrderIndex();
-		BeanUtil.copyProperties(productOrderVO, productOrderIndex);
-		//TODO
-        if(productOrderVO.getOrgName() != null && productOrderVO.getOrgName()!=""){
-            RespDTO<List<Long>> rlist = userServiceClient.getUserByOrgName(productOrderVO.getOrgName());
-            if(rlist == null || !"0".equals(rlist.code) ) {
-                throw new CommonException(CommonErrorCode.RPC_ERROR,
-                        "获取用户和机构信息失败");
-            }
-            if(rlist.data.size() == 0){
-                rlist.data.add(-1L);
-            }
-            productOrderIndex.setUserId(rlist.data);
-        }else{
-            RespDTO<List<User>> userInfiList = userServiceClient.getUserAllInfo();
-            if(userInfiList == null || !"0".equals(userInfiList.code) ) {
-                throw new CommonException(CommonErrorCode.RPC_ERROR,
-                        "获取用户和机构信息失败");
-            }
-            List<Long> userIds =new ArrayList<>();
-            for (User user:userInfiList.data) {
-                userIds.add(user.getId());
-            }
-            productOrderIndex.setUserId(userIds);
-        }
-		List<ProductOrderDTO> list =productOrderFacade.selectAllProductOrder(page,productOrderIndex).getRecords();
-		List<Long> list1 =new ArrayList<>();
-		List<String> orderNoList =new ArrayList<>();
-		for (ProductOrderDTO productOrderWrapper:list) {
-			Long longs = productOrderWrapper.getUserId();
-			String orderNo =productOrderWrapper.getNum();
-			list1.add(longs);
-			orderNoList.add(orderNo);
-		}
-        OrderDetialsVO orderDetialsVO =new OrderDetialsVO();
-		orderDetialsVO.setOrderNum(orderNoList);
-		List<OrderDetialsDTO> orderDetilList = orderDetailsFacade.getAllOrderDetials(orderDetialsVO);
-		RespDTO<Map<Long, UserOrgDTO>> mapRespDTO = userServiceClient.getUserAndOrg(list1);
-		if(mapRespDTO == null || !"0".equals(mapRespDTO.code) ) {
-			throw new CommonException(CommonErrorCode.RPC_ERROR,
-					"获取用户和机构信息失败");
-		}
-		Map<Long, UserOrgDTO> dataMap = mapRespDTO.data;
-		Map<String,List<OrderDetialsDTO>> odMap = EntityUtil.makeEntityListMap(orderDetilList,"orderNum");
-		for(ProductOrderDTO bean : list) {
-			UserOrgDTO uo = dataMap.get(bean.getUserId());
-			if(uo != null) {
-				bean.setUsername(uo.getUsername());
-				bean.setLinkman(uo.getLinkman());
-				bean.setEmail(uo.getEmail());
-				bean.setOrgId(uo.getOrgId());
-				bean.setOrgName(uo.getOrgName());
-			}
-			if (null != odMap && null != odMap.get(bean.getNum())){
-                bean.setOrderDetial(odMap.get(bean.getNum()));
-            }
-		}
-		return RespDTO.onSuc(page);
-	}
-
-
-    /**
-     * 修改订单审核状态
-     *
-     * @param orderNum 参数
-     * @return Boolean true
-     */
-	public Boolean updateProductOrderStatus(String orderNum){
-        OrderDetailStatus  orderDetailStatus = orderDetailsFacade.selectAllOrderDetialsByOrderNum(orderNum);
-        ProductOrder productOrder=new ProductOrder();
-        productOrder.setNum(orderNum);
-        productOrder= this.selctOrderTimeByOrderNum(productOrder);
-        int satus =0;
-        if(orderDetailStatus.getCt().intValue() == orderDetailStatus.getNotAudit().intValue()){
-            satus = AuditStatusEnum.NotAudit.getKey();
-            // ct == sh 待审核
-        }else if(orderDetailStatus.getCt().intValue() > orderDetailStatus.getNotAudit().intValue() && orderDetailStatus.getNotAudit().intValue() != 0){
-            satus = AuditStatusEnum.Audit_Part.getKey();
-            // ct > sh && sh != 0 部分审核
-        }else if(orderDetailStatus.getCt().intValue() == orderDetailStatus.getPass().intValue()){
-            satus = AuditStatusEnum.Adopt.getKey();
-            // ct == pass 通过
-        }else if(orderDetailStatus.getCt().intValue() == orderDetailStatus.getNotPass().intValue()){
-            satus = AuditStatusEnum.Veto.getKey();
-            // ct == not_pass 不通过
-        }else {
-            satus = AuditStatusEnum.Adopt_Part.getKey();
-            // 其他 部分通过
-        }
-        productOrder.setAuditStatus(satus);
-        productOrder.setGmtModified(DateUtil.now());
-        productOrder.setModifier(UserUtils.getCurrentPrincipleID());
-        if(!this.updateById(productOrder)){
-            throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL,
-                    "用户订单审核状态修改失败");
-        }
-        return true;
-    }
-
-    /**
-     *  导出产品订单相关信息
-     * @param productOrderExportVO
-     * @param response
-     */
-    public void export(ProductOrderExportVO productOrderExportVO,HttpServletResponse response){
-	    ProductOrderVO productOrderVO =new ProductOrderVO();
-	    BeanUtil.copyProperties(productOrderExportVO,productOrderVO);
-	    if(DateUtil.getDaysBetweenTwoDate(DateUtil.parseDate(productOrderVO.getStartTime()), DateUtil.parseDate(productOrderVO.getEndTime()))>30 || DateUtil.getDaysBetweenTwoDate(DateUtil.parseDate(productOrderVO.getStartTime()), DateUtil.parseDate(productOrderVO.getEndTime())) < 0){
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
-                    "日期超出限制,请重新输入");
-        }
-	    productOrderVO.setCurrent(1L);
-        productOrderVO.setSize(999999999999999999L);
-        Map<String, Object> userMap = new HashMap<String, Object>();
-        userMap.put("startTime", productOrderExportVO.getStartTime());
-        userMap.put("endTime", productOrderExportVO.getEndTime());
-        RespDTO<IPage<ProductOrderDTO>> datas = this.selectAllProductOrder(productOrderVO);
-        GsonUtil.toJson(datas.data.getRecords());
-        List<String> listName = new ArrayList<>();
-
-        listName.add("编号");
-        listName.add("申请时间");
-        listName.add("订单号");
-        listName.add("申请机构");
-        listName.add("申请人");
-        listName.add("手机号");
-        listName.add("邮箱");
-        listName.add("审核状态");
-
-        List<String> listId = new ArrayList<>();
-        listId.add("id");//订单ID
-        listId.add("time");//申请时间
-        listId.add("num");// 订单号
-        listId.add("orgName");//申请机构
-        listId.add("linkman");// 申请人
-        listId.add("userName");//手机号
-        listId.add("email");//邮箱
-        listId.add("auditStatus");//审核状态
-
-
-        List<ProductOrderExportDTO> list = new ArrayList<>();
-        for (int i = 0; i < datas.data.getRecords().size(); i++) {
-            ProductOrderWrapper userInfo = datas.data.getRecords().get(i);
-            list.add(new ProductOrderExportDTO(String.valueOf(i+1),
-                    DateUtil.formatDateTime(userInfo.getTime()),
-                    userInfo.getNum(),
-                    userInfo.getOrgName(),
-                    userInfo.getLinkman(),
-                    userInfo.getUsername(),
-                    userInfo.getEmail(),
-                    String.valueOf(userInfo.getAuditStatus())));
-        }
-        response.setContentType("text/html;charset=UTF-8");
-        /*String filePath = productOrderExportVO.getFilePath();//文件路径
-        String fileName = productOrderExportVO.getFileName();//文件名
-        ExportBeanExcelUtil ex = new ExportBeanExcelUtil();
-        RespDTO resul = ex.exportExcel("测试POI导出EXCEL文档", listName, listId, list, filePath, fileName);*/
-        ExportBeanExcelUtil ex = new ExportBeanExcelUtil();
-        ex.exportExcelNew("产品申请相关信息", listName, listId, list,response);
-    }
-}
-
-
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.diagbot.client.UserServiceClient;
+import com.diagbot.dto.AuthDetailDTO;
+import com.diagbot.dto.OrderDetialsDTO;
+import com.diagbot.dto.ProductAuthProgressDTO;
+import com.diagbot.dto.ProductLineDTO;
+import com.diagbot.dto.ProductOrderDTO;
+import com.diagbot.dto.ProductOrderExportDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.UserOrgDTO;
+import com.diagbot.dto.WaitExamOrderCouDTO;
+import com.diagbot.entity.OrderDetailStatus;
+import com.diagbot.entity.OrderDetails;
+import com.diagbot.entity.ProductOrder;
+import com.diagbot.entity.ProductOrderIndex;
+import com.diagbot.entity.User;
+import com.diagbot.entity.wrapper.ProductOrderWrapper;
+import com.diagbot.enums.AuditStatusEnum;
+import com.diagbot.enums.AuthStatusEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.NotPassEnum;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.enums.VisibleIdTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.idc.VisibleIdCreater;
+import com.diagbot.service.impl.ProductOrderServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ExportBeanExcelUtil;
+import com.diagbot.util.GsonUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.AddOrderVO;
+import com.diagbot.vo.OrderDetialsVO;
+import com.diagbot.vo.ProductOrderExportVO;
+import com.diagbot.vo.ProductOrderVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 订单业务
+ *
+ * @author Administrator
+ */
+@Component
+public class ProductOrderFacade extends ProductOrderServiceImpl {
+    @Autowired
+    private VisibleIdCreater visibleIdCreater;
+    @Autowired
+    private OrderDetailsFacade orderDetailsFacade;
+    @Autowired
+    private ServiceInfoFacade serviceInfoFacade;
+    @Autowired
+    private LantoneProductFacade lantoneProductFacade;
+    @Autowired
+    private ProductServiceFacade productServiceFacade;
+    @Autowired
+    private UserServiceClient userServiceClient;
+    @Autowired
+    private ProductOrderFacade productOrderFacade;
+    @Autowired
+    private OpenedProductsFacade openedProductsFacade;
+    @Autowired
+    private ServiceTokenFacade serviceTokenFacade;
+
+
+    /**
+     * 获取产品的认证进度
+     *
+     * @return 包含产品当前的认证状态
+     */
+    public ProductAuthProgressDTO productAuthProgress() {
+//        List<ProductAuthProgressDTO> retList = new ArrayList<ProductAuthProgressDTO>();
+//        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
+//        List<ProductOrder> orderList = baseMapper.getUserProductOrder(userId);
+//        List<String> nums = new ArrayList<>();
+//        for (ProductOrder i : orderList) {
+//            nums.add(i.getNum());
+//        }
+//        
+//        if(nums.size()==0){
+//        	return retList;
+//        }
+        
+//        List<AuthDetailDTO> detailList = baseMapper.getOrderDetailsByNums(nums);
+//        List<AuthDetailDTO> products = null;
+//        Map<String, List<AuthDetailDTO>> detailMap = detailList.stream().collect(Collectors.groupingBy(AuthDetailDTO::getNum));
+//        for (String num : detailMap.keySet()) {
+//            ProductAuthProgressDTO productAuthProgressDTO = new ProductAuthProgressDTO();
+//            productAuthProgressDTO.setNum(num);
+//            products = detailMap.get(num);
+//            for(AuthDetailDTO i : products){
+//            	i.setAuditStatusMsg(AuditStatusEnum.getName(i.getAuditStatus()));
+//            	if(i.getRejectType()!=null&&i.getRejectType()!=-1){
+//            		i.setRejectReason(NotPassEnum.getName(i.getRejectType()));
+//            	}
+//            }
+//            productAuthProgressDTO.setProducts(products);
+//            retList.add(productAuthProgressDTO);
+//        }
+        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
+        List<AuthDetailDTO> detailList = baseMapper.getOrderDetailsByUserId(userId);
+        List<AuthDetailDTO> passProduct = new ArrayList<>();
+        List<AuthDetailDTO> failProduct = new ArrayList<>();
+        for(AuthDetailDTO i : detailList){
+        	i.setAuditStatusMsg(AuditStatusEnum.getName(i.getAuditStatus()));
+        	if(i.getRejectType()!=null&&i.getRejectType()!=-1){
+        		i.setRejectReason(NotPassEnum.getName(i.getRejectType()));
+        	}
+        	if(i.getAuditStatus()==0){
+        		failProduct.add(i);
+        	}else{
+        		passProduct.add(i);
+        	}
+        }
+
+        ProductAuthProgressDTO productAuthProgressDTO = new ProductAuthProgressDTO();
+        productAuthProgressDTO.setPassProduct(passProduct);
+        productAuthProgressDTO.setFailProduct(failProduct);
+        return productAuthProgressDTO;
+    }
+    
+    /**
+     * 根据用户id查询订单信息数量
+     * @param userId
+     * @return
+     */
+    public int getUserProductOrderCount(Long userId){
+    	return baseMapper.getUserProductOrderCount(userId);
+    }
+    
+    /**
+     * 根据用户id查询审核不通过订单信息数量
+     * @param userId
+     * @return
+     */
+    public int getOrderAuthFailCount(Long userId){
+    	return baseMapper.getOrderAuthFailCount(userId);
+    }
+
+
+    /**
+     * 根据用户选择的产品生成订单
+     *
+     * @param addOrderVO 需要提供参数(产品id)
+     * @return Boolean true
+     */
+    @Transactional
+    public Boolean addOrders(AddOrderVO addOrderVO) {
+        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
+        List<Long> opendId = openedProductsFacade.getOpendCountByUserId(userId);
+        List<Long> orderDetailsId = orderDetailsFacade.getOrderDetailsByUser(userId);
+        List<ProductLineDTO> productList = lantoneProductFacade.productLinesB();
+        List<Long> userIdList =new ArrayList<>();
+        userIdList.add(userId);
+        RespDTO<Map<Long, UserOrgDTO>> mapRespDTO = userServiceClient.getUserAndOrg(userIdList);
+        if (mapRespDTO == null || !"0".equals(mapRespDTO.code)) {
+            throw new CommonException(CommonErrorCode.RPC_ERROR,
+                    "获取用户机构信息失败");
+        }
+        Map<Long, UserOrgDTO> dataMap =mapRespDTO.data;
+        UserOrgDTO uo =dataMap.get(userId);
+        if(uo.getAuStatus().intValue() != AuthStatusEnum.Authorized.getKey()){
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
+                    "账号信息系不完善,请先认证");
+        }
+        for (int i =0; i<addOrderVO.getProductId().size();i++){
+            for(int l = 0; l< productList.size(); l++){
+                if(addOrderVO.getProductId().get(i).intValue() == productList.get(l).getId().intValue() && productList.get(l).getIsDeleted().equals(IsDeleteEnum.Y.getKey())){
+                        throw new CommonException(CommonErrorCode.NOT_EXISTS,
+                                "【"+productList.get(l).getName()+"】已删除,请刷新重试");
+                }
+                if(addOrderVO.getProductId().get(i).intValue() == productList.get(l).getId().intValue() && productList.get(l).getServiceStatus().intValue() == StatusEnum.Disable.getKey()){
+                    throw new CommonException(CommonErrorCode.NOT_EXISTS,
+                            "【"+productList.get(l).getName()+"】已停用,请刷新重试");
+                }
+            }
+            for (int j =0; j<opendId.size();j++){
+                if(addOrderVO.getProductId().get(i).longValue() == opendId.get(j).longValue()){
+                    throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "请勿重复提交已开通产品");
+                }
+            }
+            for (int k =0; k<orderDetailsId.size();k++){
+                if(addOrderVO.getProductId().get(i).longValue() == orderDetailsId.get(k).longValue()){
+                    throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "产品正在审核中请勿重复提交");
+                }
+            }
+        }
+        ProductOrder productOrder = new ProductOrder();
+        productOrder.setCreator(UserUtils.getCurrentPrincipleID());
+        productOrder.setGmtCreate(DateUtil.now());
+        String orderNum = visibleIdCreater.getNextId(VisibleIdTypeEnum.IS_ORDER.getKey()).toString();
+        productOrder.setNum(orderNum);
+        productOrder.setUserId(userId);
+        productOrder.setTime(DateUtil.now());
+        if (!save(productOrder)) {
+            throw new CommonException(CommonErrorCode.INSERT_DATA_FAILED, "添加订单失败");
+        }
+        OrderDetails orderDetails = null;
+        List<OrderDetails> list =new ArrayList();
+        List<Long> lantoneProductId =new ArrayList<>();
+        for (Long o : addOrderVO.getProductId()) {
+            lantoneProductId.add(o);
+            orderDetails = new OrderDetails();
+            orderDetails.setUserId(userId);
+            orderDetails.setOrderNum(orderNum);
+            orderDetails.setGmtCreate(DateUtil.now());
+            orderDetails.setCreator(UserUtils.getCurrentPrincipleID());
+            orderDetails.setProductId(o);
+            list.add(orderDetails);
+        }
+        if (0 == lantoneProductFacade.listByIds(lantoneProductId).size()) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "获取产品信息失败");
+        }
+        if(orderDetailsFacade.saveOrderDetails(list)){
+            throw new CommonException(CommonErrorCode.INSERT_DATA_FAILED, "添加订单失败");
+        }
+        return true;
+    }
+
+
+    /**
+     * 根据订单号查询订单信息
+     *
+     * @param productOrder 参数
+     * @return 订单信息
+     */
+    public ProductOrder selectByOrderNum(ProductOrder productOrder) {
+        return selctOrderTimeByOrderNum(productOrder);
+    }
+
+
+    /**
+     * 计算待审核的订单数量
+     *
+     * @return 待审核的订单数量
+     */
+    public WaitExamOrderCouDTO waitExamOrderCou() {
+        WaitExamOrderCouDTO waitExamOrderCouDTO = new WaitExamOrderCouDTO();
+        RespDTO<List<User>> userInfiList = userServiceClient.getUserAllInfo();
+        if(userInfiList == null || !"0".equals(userInfiList.code) ) {
+            throw new CommonException(CommonErrorCode.RPC_ERROR,
+                    "获取用户和机构信息失败");
+        }
+        List<Long> userIds =new ArrayList<>();
+        for (User user:userInfiList.data) {
+            userIds.add(user.getId());
+        }
+        waitExamOrderCouDTO.setCount(baseMapper.waitExamOrderCou(userIds));
+        return waitExamOrderCouDTO;
+    }
+    
+	/**
+	 * 产品申请查询所有订单信息
+     *
+	 * @param productOrderVO (订单编号,机构名称,申请状态)
+	 * @return 所有订单信息
+	 */
+	public RespDTO<IPage<ProductOrderDTO>> selectAllProductOrder(ProductOrderVO productOrderVO){
+	    Page page =new Page();
+	    BeanUtil.copyProperties(productOrderVO,page);
+		ProductOrderIndex productOrderIndex =new ProductOrderIndex();
+		BeanUtil.copyProperties(productOrderVO, productOrderIndex);
+		//TODO
+        if(productOrderVO.getOrgName() != null && productOrderVO.getOrgName()!=""){
+            RespDTO<List<Long>> rlist = userServiceClient.getUserByOrgName(productOrderVO.getOrgName());
+            if(rlist == null || !"0".equals(rlist.code) ) {
+                throw new CommonException(CommonErrorCode.RPC_ERROR,
+                        "获取用户和机构信息失败");
+            }
+            if(rlist.data.size() == 0){
+                rlist.data.add(-1L);
+            }
+            productOrderIndex.setUserId(rlist.data);
+        }else{
+            RespDTO<List<User>> userInfiList = userServiceClient.getUserAllInfo();
+            if(userInfiList == null || !"0".equals(userInfiList.code) ) {
+                throw new CommonException(CommonErrorCode.RPC_ERROR,
+                        "获取用户和机构信息失败");
+            }
+            List<Long> userIds =new ArrayList<>();
+            for (User user:userInfiList.data) {
+                userIds.add(user.getId());
+            }
+            productOrderIndex.setUserId(userIds);
+        }
+		List<ProductOrderDTO> list =productOrderFacade.selectAllProductOrder(page,productOrderIndex).getRecords();
+		List<Long> list1 =new ArrayList<>();
+		List<String> orderNoList =new ArrayList<>();
+		for (ProductOrderDTO productOrderWrapper:list) {
+			Long longs = productOrderWrapper.getUserId();
+			String orderNo =productOrderWrapper.getNum();
+			list1.add(longs);
+			orderNoList.add(orderNo);
+		}
+        OrderDetialsVO orderDetialsVO =new OrderDetialsVO();
+		orderDetialsVO.setOrderNum(orderNoList);
+		List<OrderDetialsDTO> orderDetilList = orderDetailsFacade.getAllOrderDetials(orderDetialsVO);
+		RespDTO<Map<Long, UserOrgDTO>> mapRespDTO = userServiceClient.getUserAndOrg(list1);
+		if(mapRespDTO == null || !"0".equals(mapRespDTO.code) ) {
+			throw new CommonException(CommonErrorCode.RPC_ERROR,
+					"获取用户和机构信息失败");
+		}
+		Map<Long, UserOrgDTO> dataMap = mapRespDTO.data;
+		Map<String,List<OrderDetialsDTO>> odMap = EntityUtil.makeEntityListMap(orderDetilList,"orderNum");
+		for(ProductOrderDTO bean : list) {
+			UserOrgDTO uo = dataMap.get(bean.getUserId());
+			if(uo != null) {
+				bean.setUsername(uo.getUsername());
+				bean.setLinkman(uo.getLinkman());
+				bean.setEmail(uo.getEmail());
+				bean.setOrgId(uo.getOrgId());
+				bean.setOrgName(uo.getOrgName());
+			}
+			if (null != odMap && null != odMap.get(bean.getNum())){
+                bean.setOrderDetial(odMap.get(bean.getNum()));
+            }
+		}
+		return RespDTO.onSuc(page);
+	}
+
+
+    /**
+     * 修改订单审核状态
+     *
+     * @param orderNum 参数
+     * @return Boolean true
+     */
+	public Boolean updateProductOrderStatus(String orderNum){
+        OrderDetailStatus  orderDetailStatus = orderDetailsFacade.selectAllOrderDetialsByOrderNum(orderNum);
+        ProductOrder productOrder=new ProductOrder();
+        productOrder.setNum(orderNum);
+        productOrder= this.selctOrderTimeByOrderNum(productOrder);
+        int satus =0;
+        if(orderDetailStatus.getCt().intValue() == orderDetailStatus.getNotAudit().intValue()){
+            satus = AuditStatusEnum.NotAudit.getKey();
+            // ct == sh 待审核
+        }else if(orderDetailStatus.getCt().intValue() > orderDetailStatus.getNotAudit().intValue() && orderDetailStatus.getNotAudit().intValue() != 0){
+            satus = AuditStatusEnum.Audit_Part.getKey();
+            // ct > sh && sh != 0 部分审核
+        }else if(orderDetailStatus.getCt().intValue() == orderDetailStatus.getPass().intValue()){
+            satus = AuditStatusEnum.Adopt.getKey();
+            // ct == pass 通过
+        }else if(orderDetailStatus.getCt().intValue() == orderDetailStatus.getNotPass().intValue()){
+            satus = AuditStatusEnum.Veto.getKey();
+            // ct == not_pass 不通过
+        }else {
+            satus = AuditStatusEnum.Adopt_Part.getKey();
+            // 其他 部分通过
+        }
+        productOrder.setAuditStatus(satus);
+        productOrder.setGmtModified(DateUtil.now());
+        productOrder.setModifier(UserUtils.getCurrentPrincipleID());
+        if(!this.updateById(productOrder)){
+            throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL,
+                    "用户订单审核状态修改失败");
+        }
+        return true;
+    }
+
+    /**
+     *  导出产品订单相关信息
+     * @param productOrderExportVO
+     * @param response
+     */
+    public void export(ProductOrderExportVO productOrderExportVO,HttpServletResponse response){
+	    ProductOrderVO productOrderVO =new ProductOrderVO();
+	    BeanUtil.copyProperties(productOrderExportVO,productOrderVO);
+	    if(DateUtil.getDaysBetweenTwoDate(DateUtil.parseDate(productOrderVO.getStartTime()), DateUtil.parseDate(productOrderVO.getEndTime()))>30 || DateUtil.getDaysBetweenTwoDate(DateUtil.parseDate(productOrderVO.getStartTime()), DateUtil.parseDate(productOrderVO.getEndTime())) < 0){
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
+                    "日期超出限制,请重新输入");
+        }
+	    productOrderVO.setCurrent(1L);
+        productOrderVO.setSize(999999999999999999L);
+        Map<String, Object> userMap = new HashMap<String, Object>();
+        userMap.put("startTime", productOrderExportVO.getStartTime());
+        userMap.put("endTime", productOrderExportVO.getEndTime());
+        RespDTO<IPage<ProductOrderDTO>> datas = this.selectAllProductOrder(productOrderVO);
+        GsonUtil.toJson(datas.data.getRecords());
+        List<String> listName = new ArrayList<>();
+
+        listName.add("编号");
+        listName.add("申请时间");
+        listName.add("订单号");
+        listName.add("申请机构");
+        listName.add("申请人");
+        listName.add("手机号");
+        listName.add("邮箱");
+        listName.add("审核状态");
+
+        List<String> listId = new ArrayList<>();
+        listId.add("id");//订单ID
+        listId.add("time");//申请时间
+        listId.add("num");// 订单号
+        listId.add("orgName");//申请机构
+        listId.add("linkman");// 申请人
+        listId.add("userName");//手机号
+        listId.add("email");//邮箱
+        listId.add("auditStatus");//审核状态
+
+
+        List<ProductOrderExportDTO> list = new ArrayList<>();
+        for (int i = 0; i < datas.data.getRecords().size(); i++) {
+            ProductOrderWrapper userInfo = datas.data.getRecords().get(i);
+            list.add(new ProductOrderExportDTO(String.valueOf(i+1),
+                    DateUtil.formatDateTime(userInfo.getTime()),
+                    userInfo.getNum(),
+                    userInfo.getOrgName(),
+                    userInfo.getLinkman(),
+                    userInfo.getUsername(),
+                    userInfo.getEmail(),
+                    String.valueOf(userInfo.getAuditStatus())));
+        }
+        response.setContentType("text/html;charset=UTF-8");
+        /*String filePath = productOrderExportVO.getFilePath();//文件路径
+        String fileName = productOrderExportVO.getFileName();//文件名
+        ExportBeanExcelUtil ex = new ExportBeanExcelUtil();
+        RespDTO resul = ex.exportExcel("测试POI导出EXCEL文档", listName, listId, list, filePath, fileName);*/
+        ExportBeanExcelUtil ex = new ExportBeanExcelUtil();
+        ex.exportExcelNew("产品申请相关信息", listName, listId, list,response);
+    }
+}
+
+

+ 25 - 25
diagbotman-service/src/main/java/com/diagbot/vo/ModifyOpeningTimeVO.java

@@ -1,25 +1,25 @@
-package com.diagbot.vo;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @author wangfeng
- * @Description: 据用户id和产品id,修改启用时间入参
- * @date 2018年9月21日 上午10:57:03
- */
-@Getter
-@Setter
-public class ModifyOpeningTimeVO {
-    @NotNull(message = "请输入到期时间")
-    private String endTime;
-    @NotNull(message = "请输入用户id")
-    private Long userId;
-    @NotNull(message = "请输入产品id")
-    private Long productId;
-    @NotNull(message = "请输入续费单号")
-    private String renewalsNo;
-
-}
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description: 据用户id和产品id,修改启用时间入参
+ * @date 2018年9月21日 上午10:57:03
+ */
+@Getter
+@Setter
+public class ModifyOpeningTimeVO {
+    @NotNull(message = "请输入到期时间")
+    private String endTime;
+    @NotNull(message = "请输入用户id")
+    private Long userId;
+    @NotNull(message = "请输入产品id")
+    private Long productId;
+    @NotNull(message = "请输入续费单号")
+    private String renewalsNo;
+
+}

+ 15 - 15
diagbotman-service/src/main/java/com/diagbot/vo/OpenUpOnTrialVO.java

@@ -1,15 +1,15 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class OpenUpOnTrialVO {
-
-    @NotNull(message = "产品id不能为空")
-    private Long productId;
-
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class OpenUpOnTrialVO {
+
+    @NotNull(message = "产品id不能为空")
+    private Long productId;
+
+}

+ 23 - 23
diagbotman-service/src/main/java/com/diagbot/vo/StartAndendByUserIdVO.java

@@ -1,23 +1,23 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @author wangfeng
- * @Description: 据用户id和产品id,启用和停用功能入参
- * @date 2018年9月21日 上午10:57:03
- */
-@Getter
-@Setter
-public class StartAndendByUserIdVO {
-
-    private Integer serviceStatus;
-    @NotNull(message = "请输入用户id!")
-    private Long userId;
-    @NotNull(message = "请输入产品id!")
-    private Long productId;
-
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description: 据用户id和产品id,启用和停用功能入参
+ * @date 2018年9月21日 上午10:57:03
+ */
+@Getter
+@Setter
+public class StartAndendByUserIdVO {
+
+    private Integer serviceStatus;
+    @NotNull(message = "请输入用户id!")
+    private Long userId;
+    @NotNull(message = "请输入产品id!")
+    private Long productId;
+
+}

+ 200 - 200
diagbotman-service/src/main/java/com/diagbot/web/ProductOrderController.java

@@ -1,200 +1,200 @@
-package com.diagbot.web;
-
-import java.util.List;
-
-import javax.validation.Valid;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.diagbot.annotation.SysLogger;
-import com.diagbot.dto.EnShowOptionDTO;
-import com.diagbot.dto.GetConsoleOnTrialDTO;
-import com.diagbot.dto.GetConsoleOpenedDTO;
-import com.diagbot.dto.OpenProductCheckDTO;
-import com.diagbot.dto.OpenUpOnTrialDTO;
-import com.diagbot.dto.ProductAuthProgressDTO;
-import com.diagbot.dto.ProductOrderDTO;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.UserAndProdutDTO;
-import com.diagbot.dto.WaitExamOrderCouDTO;
-import com.diagbot.entity.OpenedProducts;
-import com.diagbot.entity.UserRenewals;
-import com.diagbot.entity.wrapper.OrderDetailsWapper;
-import com.diagbot.facade.LantoneProductFacade;
-import com.diagbot.facade.OpenedProductsFacade;
-import com.diagbot.facade.OrderDetailsFacade;
-import com.diagbot.facade.ProductOrderFacade;
-import com.diagbot.facade.UserRenewalsFacade;
-import com.diagbot.vo.ModifyOpeningTimeVO;
-import com.diagbot.vo.OpenProductCheckVO;
-import com.diagbot.vo.OpenUpOnTrialVO;
-import com.diagbot.vo.ProductOrderVO;
-import com.diagbot.vo.StartAndendByUserIdVO;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import springfox.documentation.annotations.ApiIgnore;
-
-/**
- * @author rgb
- * @Description 订单产品相关的操作
- * @time 2018年9月25日下午4:06:16
- */
-@Api(value = "控制台-产品操作API", tags = { "控制台-产品操作API" })
-@RestController
-@RequestMapping("/productOrder")
-@SuppressWarnings("unchecked")
-public class ProductOrderController {
-    @Autowired
-    private LantoneProductFacade lantoneProductFacade;
-
-    @Autowired
-    private ProductOrderFacade productOrderFacade;
-    @Autowired
-    private OpenedProductsFacade openedProductsFacade;
-    @Autowired
-    private OrderDetailsFacade orderDetailsFacade;
-    @Autowired
-    private UserRenewalsFacade userRenewalsFacade;
-
-    @ApiOperation(value = "控制台-产品认证进度[by:rengb]", notes = "控制台-产品认证进度")
-    @PostMapping("/productAuthProgress")
-    @SysLogger("productAuthProgress")
-    public RespDTO<ProductAuthProgressDTO> productAuthProgress() {
-        return RespDTO.onSuc(productOrderFacade.productAuthProgress());
-    }
-
-    @ApiOperation(value = "控制台-已开通产品[by:rengb]", notes = "控制台-已开通产品")
-    @PostMapping("/getConsoleOpened")
-    @SysLogger("getConsoleOpened")
-    public RespDTO<List<GetConsoleOpenedDTO>> getConsoleOpened() {
-        return RespDTO.onSuc(openedProductsFacade.getConsoleOpened());
-    }
-
-    @ApiOperation(value = "控制台-可试用产品[by:rengb]", notes = "控制台-可试用产品")
-    @PostMapping("/getConsoleOnTrial")
-    @SysLogger("getConsoleOnTrial")
-    public RespDTO<List<GetConsoleOnTrialDTO>> getConsoleOnTrial() {
-        return RespDTO.onSuc(openedProductsFacade.getConsoleOnTrial());
-    }
-
-    @ApiOperation(value = "控制台-产品立即试用接口[by:rengb]", notes = "控制台-产品立即试用接口")
-    @PostMapping("/openUpOnTrial")
-    @SysLogger("openUpOnTrial")
-    public RespDTO<OpenUpOnTrialDTO> openUpOnTrial(@RequestBody OpenUpOnTrialVO openUpOnTrialVO) {
-        return RespDTO.onSuc(openedProductsFacade.openUpOnTrial(openUpOnTrialVO));
-    }
-
-    @ApiOperation(value = "控制台-可展示的选项卡[by:rengb]", notes = "控制台-可展示的选项卡")
-    @PostMapping("/enShowOption")
-    @SysLogger("enShowOption")
-    public RespDTO<EnShowOptionDTO> enShowOption() {
-        return RespDTO.onSuc(openedProductsFacade.enShowOption());
-    }
-
-    @ApiOperation(value = "控制台-待审核订单个数[by:rengb]", notes = "控制台-待审核订单个数")
-    @PostMapping("/waitExamOrderCou")
-    @SysLogger("waitExamOrderCou")
-    public RespDTO<WaitExamOrderCouDTO> waitExamOrderCou() {
-        return RespDTO.onSuc(productOrderFacade.waitExamOrderCou());
-    }
-    
-    @ApiOperation(value = "控制台-已开通产品状态校验[by:rengb]", notes = "控制台-已开通产品状态校验")
-    @PostMapping("/openProductCheck")
-    @SysLogger("openProductCheck")
-    public RespDTO<OpenProductCheckDTO> openProductCheck(@RequestBody OpenProductCheckVO openProductCheckVO) {
-        return RespDTO.onSuc(openedProductsFacade.openProductCheck(openProductCheckVO));
-    }
-
-    @ApiOperation(value = "客户中心-传入用户id查询已开通的功能(传userId)[by:wangfeng]", notes = "已开通信息")
-    @PostMapping("/getInformationAvailableByUserId")
-    @SysLogger("getInformationAvailableByUserId")
-    public RespDTO getInformationAvailableByUserId(@RequestBody OpenedProducts openedProduct) {
-        OpenedProducts openedProducts = new OpenedProducts();
-        openedProducts.setUserId(openedProduct.getUserId());
-        List<UserAndProdutDTO> UserAndProdutData = openedProductsFacade.getInformationAvailableByUserId(openedProducts);
-        return RespDTO.onSuc(UserAndProdutData);
-    }
-
-    @ApiOperation(value = "客户中心-传入用户id和产品id,启用和停用功能[by:wangfeng]", notes = "拥护开通的产品")
-    @PostMapping("/startAndendByuserId")
-    @SysLogger("startAndendByuserId")
-    @Transactional
-    public RespDTO<StartAndendByUserIdVO> startAndendByuserId(@RequestBody @Valid StartAndendByUserIdVO startAndendByUserIdVO) {
-
-        return openedProductsFacade.startAndendByuserIds(startAndendByUserIdVO);
-
-    }
-
-    @ApiOperation(value = "客户中心-传入用户userId和产品productId,删除开通信息[by:wangfeng]", notes = "删除开通信息")
-    @PostMapping("/delInformationAvailable")
-    @SysLogger("delInformationAvailable")
-    @Transactional
-    public RespDTO delInformationAvailable(@RequestBody OpenedProducts openedProduct) {
-    	long userId = openedProduct.getUserId(); 
-    	long productId = openedProduct.getProductId();
-        return openedProductsFacade.delInformationAvailables(userId, productId);
-    }
-
-    @ApiOperation(value = "产品续费-传入用户id和产品id,修改服务到期时间[by:wangyu]", notes = "修改服务到期时间")
-    @PostMapping("/modifyOpeningTime")
-    @SysLogger("modifyOpeningTime")
-    @Transactional
-    public RespDTO<Boolean> modifyOpeningTime(@RequestBody @Valid ModifyOpeningTimeVO modifyOpeningTimeVO) {
-
-        return openedProductsFacade.modifyOpeningTimes(modifyOpeningTimeVO);
-    }
-
-    @ApiOperation(value = "产品申请——显示所有订单[by:wangyu]",
-            notes = "current:页数<br>" +
-                    "size:每页显示条数<br>" +
-                    "auditStatus:审核状态(0.不通过1.通过2.待审核3.部分通过4.部分审核)<br>" +
-                    "num:订单编号<br>" +
-                    "orgName:机构名称<br>" +
-                    "id:订单id<br>" +
-                    "userId:用户id<br>" +
-                    "time:下单时间<br>" +
-                    "linkman:用户名称<br>" +
-                    "username:手机号码<br>" +
-                    "orderDetial:订单审核信息<br>")
-    @PostMapping("/getAllProductOrder")
-    @SysLogger("getAllProductOrder")
-    public RespDTO<IPage<ProductOrderDTO>> getAllProductOrder(@RequestBody ProductOrderVO productOrderVO) {
-        return productOrderFacade.selectAllProductOrder(productOrderVO);
-    }
-
-    @ApiOperation(value = "客户中心-查询用户已开通的功能[by:wangfeng]", notes = "用户已开通信息")
-    @PostMapping("/getInformationAvailableAll")
-    @SysLogger("getInformationAvailableAll")
-    @ApiIgnore
-    public RespDTO<List<UserAndProdutDTO>>  getInformationAvailableByUserIds(@RequestBody List<Long> userIds){
-    	List<UserAndProdutDTO> UserAndProdutData = openedProductsFacade.getInformationAvailableByUserIds(userIds);
-    	return RespDTO.onSuc(UserAndProdutData);
-    }
-    @ApiOperation(value = "客户中心-查询用户是否有待审核的产品数量[by:wangfeng]", notes = "用户已开通信息")
-    @PostMapping("/getOrderByUserToAudit")
-    @SysLogger("getOrderByUserToAudit")
-   
-    public RespDTO<Integer> getOrderByUserToAudit(@RequestBody Long userId){
-    	OrderDetailsWapper rderDetails =new OrderDetailsWapper();
-    	rderDetails.setUserId(userId);
-    	int sums = orderDetailsFacade.getOrderByUserToAudit(rderDetails);
-    	return RespDTO.onSuc(sums);	
-    }
-    @ApiOperation(value = "客户中心-查询用户续费数量[by:wangfeng]", notes = "用户已开通信息")
-    @PostMapping("/getUserWaitingRenewal")
-    @SysLogger("getUserWaitingRenewal")
-    
-    public RespDTO<Integer> getUserWaitingRenewal(@RequestBody Long userId){
-    	UserRenewals userRenewals = new UserRenewals();
-    	userRenewals.setUserId(userId);
-    	int userIdSum = userRenewalsFacade.getUserWaitingRenewal(userRenewals);
-    	return RespDTO.onSuc(userIdSum);	
-    }
-}
+package com.diagbot.web;
+
+import java.util.List;
+
+import javax.validation.Valid;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.EnShowOptionDTO;
+import com.diagbot.dto.GetConsoleOnTrialDTO;
+import com.diagbot.dto.GetConsoleOpenedDTO;
+import com.diagbot.dto.OpenProductCheckDTO;
+import com.diagbot.dto.OpenUpOnTrialDTO;
+import com.diagbot.dto.ProductAuthProgressDTO;
+import com.diagbot.dto.ProductOrderDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.UserAndProdutDTO;
+import com.diagbot.dto.WaitExamOrderCouDTO;
+import com.diagbot.entity.OpenedProducts;
+import com.diagbot.entity.UserRenewals;
+import com.diagbot.entity.wrapper.OrderDetailsWapper;
+import com.diagbot.facade.LantoneProductFacade;
+import com.diagbot.facade.OpenedProductsFacade;
+import com.diagbot.facade.OrderDetailsFacade;
+import com.diagbot.facade.ProductOrderFacade;
+import com.diagbot.facade.UserRenewalsFacade;
+import com.diagbot.vo.ModifyOpeningTimeVO;
+import com.diagbot.vo.OpenProductCheckVO;
+import com.diagbot.vo.OpenUpOnTrialVO;
+import com.diagbot.vo.ProductOrderVO;
+import com.diagbot.vo.StartAndendByUserIdVO;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import springfox.documentation.annotations.ApiIgnore;
+
+/**
+ * @author rgb
+ * @Description 订单产品相关的操作
+ * @time 2018年9月25日下午4:06:16
+ */
+@Api(value = "控制台-产品操作API", tags = { "控制台-产品操作API" })
+@RestController
+@RequestMapping("/productOrder")
+@SuppressWarnings("unchecked")
+public class ProductOrderController {
+    @Autowired
+    private LantoneProductFacade lantoneProductFacade;
+
+    @Autowired
+    private ProductOrderFacade productOrderFacade;
+    @Autowired
+    private OpenedProductsFacade openedProductsFacade;
+    @Autowired
+    private OrderDetailsFacade orderDetailsFacade;
+    @Autowired
+    private UserRenewalsFacade userRenewalsFacade;
+
+    @ApiOperation(value = "控制台-产品认证进度[by:rengb]", notes = "控制台-产品认证进度")
+    @PostMapping("/productAuthProgress")
+    @SysLogger("productAuthProgress")
+    public RespDTO<ProductAuthProgressDTO> productAuthProgress() {
+        return RespDTO.onSuc(productOrderFacade.productAuthProgress());
+    }
+
+    @ApiOperation(value = "控制台-已开通产品[by:rengb]", notes = "控制台-已开通产品")
+    @PostMapping("/getConsoleOpened")
+    @SysLogger("getConsoleOpened")
+    public RespDTO<List<GetConsoleOpenedDTO>> getConsoleOpened() {
+        return RespDTO.onSuc(openedProductsFacade.getConsoleOpened());
+    }
+
+    @ApiOperation(value = "控制台-可试用产品[by:rengb]", notes = "控制台-可试用产品")
+    @PostMapping("/getConsoleOnTrial")
+    @SysLogger("getConsoleOnTrial")
+    public RespDTO<List<GetConsoleOnTrialDTO>> getConsoleOnTrial() {
+        return RespDTO.onSuc(openedProductsFacade.getConsoleOnTrial());
+    }
+
+    @ApiOperation(value = "控制台-产品立即试用接口[by:rengb]", notes = "控制台-产品立即试用接口")
+    @PostMapping("/openUpOnTrial")
+    @SysLogger("openUpOnTrial")
+    public RespDTO<OpenUpOnTrialDTO> openUpOnTrial(@RequestBody OpenUpOnTrialVO openUpOnTrialVO) {
+        return RespDTO.onSuc(openedProductsFacade.openUpOnTrial(openUpOnTrialVO));
+    }
+
+    @ApiOperation(value = "控制台-可展示的选项卡[by:rengb]", notes = "控制台-可展示的选项卡")
+    @PostMapping("/enShowOption")
+    @SysLogger("enShowOption")
+    public RespDTO<EnShowOptionDTO> enShowOption() {
+        return RespDTO.onSuc(openedProductsFacade.enShowOption());
+    }
+
+    @ApiOperation(value = "控制台-待审核订单个数[by:rengb]", notes = "控制台-待审核订单个数")
+    @PostMapping("/waitExamOrderCou")
+    @SysLogger("waitExamOrderCou")
+    public RespDTO<WaitExamOrderCouDTO> waitExamOrderCou() {
+        return RespDTO.onSuc(productOrderFacade.waitExamOrderCou());
+    }
+    
+    @ApiOperation(value = "控制台-已开通产品状态校验[by:rengb]", notes = "控制台-已开通产品状态校验")
+    @PostMapping("/openProductCheck")
+    @SysLogger("openProductCheck")
+    public RespDTO<OpenProductCheckDTO> openProductCheck(@RequestBody OpenProductCheckVO openProductCheckVO) {
+        return RespDTO.onSuc(openedProductsFacade.openProductCheck(openProductCheckVO));
+    }
+
+    @ApiOperation(value = "客户中心-传入用户id查询已开通的功能(传userId)[by:wangfeng]", notes = "已开通信息")
+    @PostMapping("/getInformationAvailableByUserId")
+    @SysLogger("getInformationAvailableByUserId")
+    public RespDTO getInformationAvailableByUserId(@RequestBody OpenedProducts openedProduct) {
+        OpenedProducts openedProducts = new OpenedProducts();
+        openedProducts.setUserId(openedProduct.getUserId());
+        List<UserAndProdutDTO> UserAndProdutData = openedProductsFacade.getInformationAvailableByUserId(openedProducts);
+        return RespDTO.onSuc(UserAndProdutData);
+    }
+
+    @ApiOperation(value = "客户中心-传入用户id和产品id,启用和停用功能[by:wangfeng]", notes = "拥护开通的产品")
+    @PostMapping("/startAndendByuserId")
+    @SysLogger("startAndendByuserId")
+    @Transactional
+    public RespDTO<StartAndendByUserIdVO> startAndendByuserId(@RequestBody @Valid StartAndendByUserIdVO startAndendByUserIdVO) {
+
+        return openedProductsFacade.startAndendByuserIds(startAndendByUserIdVO);
+
+    }
+
+    @ApiOperation(value = "客户中心-传入用户userId和产品productId,删除开通信息[by:wangfeng]", notes = "删除开通信息")
+    @PostMapping("/delInformationAvailable")
+    @SysLogger("delInformationAvailable")
+    @Transactional
+    public RespDTO delInformationAvailable(@RequestBody OpenedProducts openedProduct) {
+    	long userId = openedProduct.getUserId(); 
+    	long productId = openedProduct.getProductId();
+        return openedProductsFacade.delInformationAvailables(userId, productId);
+    }
+
+    @ApiOperation(value = "产品续费-传入用户id和产品id,修改服务到期时间[by:wangyu]", notes = "修改服务到期时间")
+    @PostMapping("/modifyOpeningTime")
+    @SysLogger("modifyOpeningTime")
+    @Transactional
+    public RespDTO<Boolean> modifyOpeningTime(@RequestBody @Valid ModifyOpeningTimeVO modifyOpeningTimeVO) {
+
+        return openedProductsFacade.modifyOpeningTimes(modifyOpeningTimeVO);
+    }
+
+    @ApiOperation(value = "产品申请——显示所有订单[by:wangyu]",
+            notes = "current:页数<br>" +
+                    "size:每页显示条数<br>" +
+                    "auditStatus:审核状态(0.不通过1.通过2.待审核3.部分通过4.部分审核)<br>" +
+                    "num:订单编号<br>" +
+                    "orgName:机构名称<br>" +
+                    "id:订单id<br>" +
+                    "userId:用户id<br>" +
+                    "time:下单时间<br>" +
+                    "linkman:用户名称<br>" +
+                    "username:手机号码<br>" +
+                    "orderDetial:订单审核信息<br>")
+    @PostMapping("/getAllProductOrder")
+    @SysLogger("getAllProductOrder")
+    public RespDTO<IPage<ProductOrderDTO>> getAllProductOrder(@RequestBody ProductOrderVO productOrderVO) {
+        return productOrderFacade.selectAllProductOrder(productOrderVO);
+    }
+
+    @ApiOperation(value = "客户中心-查询用户已开通的功能[by:wangfeng]", notes = "用户已开通信息")
+    @PostMapping("/getInformationAvailableAll")
+    @SysLogger("getInformationAvailableAll")
+    @ApiIgnore
+    public RespDTO<List<UserAndProdutDTO>>  getInformationAvailableByUserIds(@RequestBody List<Long> userIds){
+    	List<UserAndProdutDTO> UserAndProdutData = openedProductsFacade.getInformationAvailableByUserIds(userIds);
+    	return RespDTO.onSuc(UserAndProdutData);
+    }
+    @ApiOperation(value = "客户中心-查询用户是否有待审核的产品数量[by:wangfeng]", notes = "用户已开通信息")
+    @PostMapping("/getOrderByUserToAudit")
+    @SysLogger("getOrderByUserToAudit")
+   
+    public RespDTO<Integer> getOrderByUserToAudit(@RequestBody Long userId){
+    	OrderDetailsWapper rderDetails =new OrderDetailsWapper();
+    	rderDetails.setUserId(userId);
+    	int sums = orderDetailsFacade.getOrderByUserToAudit(rderDetails);
+    	return RespDTO.onSuc(sums);	
+    }
+    @ApiOperation(value = "客户中心-查询用户续费数量[by:wangfeng]", notes = "用户已开通信息")
+    @PostMapping("/getUserWaitingRenewal")
+    @SysLogger("getUserWaitingRenewal")
+    
+    public RespDTO<Integer> getUserWaitingRenewal(@RequestBody Long userId){
+    	UserRenewals userRenewals = new UserRenewals();
+    	userRenewals.setUserId(userId);
+    	int userIdSum = userRenewalsFacade.getUserWaitingRenewal(userRenewals);
+    	return RespDTO.onSuc(userIdSum);	
+    }
+}

+ 1 - 1
eureka-server/src/main/resources/application-local.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8761
+  port: 4000
 eureka:
   client:
     register-with-eureka: false

+ 2 - 2
gateway-service/src/main/resources/bootstrap.yml

@@ -3,7 +3,7 @@ spring:
     name: gateway-service
   cloud:
     config:
-#      uri: http://${myuri}:8769
+#      uri: http://${myuri}:4001
       fail-fast: true
       discovery:
         enabled: true
@@ -14,7 +14,7 @@ spring:
 eureka:
   client:
     serviceUrl:
-      defaultZone: http://${myuri}:8761/eureka/
+      defaultZone: http://${myuri}:4000/eureka/
 
 myuri: localhost
 

+ 68 - 68
icss-service/src/main/java/com/diagbot/dto/DisclaimerInformationDTO.java

@@ -1,68 +1,68 @@
-package com.diagbot.dto;
-
-import java.util.Date;
-
-import com.diagbot.entity.DisclaimerInformation;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月21日 下午4:23:48
- */
-@Setter
-@Getter
-public class DisclaimerInformationDTO {
-	private Long id;
-
-    /**
-     * 记录创建时间
-     */
-    private Date gmtCreate;
-
-    
-
-    /**
-     * 创建人,0表示无创建人值
-     */
-    private String creator;
-
-    /**
-     * 主表id
-     */
-    private Long versionId;
-
-    /**
-     * 标题
-     */
-    private String title;
-
-    /**
-     * 描述
-     */
-    private String description;
-
-    /**
-     * 排序号
-     */
-    private String orderNo;
-
-    /**
-     * 1:启动,0:不启用
-     */
-    private String status;
-
-    /**
-     * 免责申明编号
-     */
-    private String disclaimerCode;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-}
+package com.diagbot.dto;
+
+import java.util.Date;
+
+import com.diagbot.entity.DisclaimerInformation;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月21日 下午4:23:48
+ */
+@Setter
+@Getter
+public class DisclaimerInformationDTO {
+	private Long id;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 主表id
+     */
+    private Long versionId;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 排序号
+     */
+    private String orderNo;
+
+    /**
+     * 1:启动,0:不启用
+     */
+    private String status;
+
+    /**
+     * 免责申明编号
+     */
+    private String disclaimerCode;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 36 - 36
icss-service/src/main/java/com/diagbot/dto/DoctorPageModeDTO.java

@@ -1,36 +1,36 @@
-package com.diagbot.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2018年12月18日 下午1:48:52
- */
-@Getter
-@Setter
-public class DoctorPageModeDTO {
-
-	    private Long id;
-	    /**
-	     * 医生id
-	     */
-	    private Long doctorId;
-
-	    /**
-	     * 模式分类
-	     */
-	    private Integer modeClassify;
-
-	    /**
-	     * 模式值
-	     */
-	    private Integer modeValue;
-
-	    /**
-	     * 备注
-	     */
-	    private String remark;
-}
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年12月18日 下午1:48:52
+ */
+@Getter
+@Setter
+public class DoctorPageModeDTO {
+
+	    private Long id;
+	    /**
+	     * 医生id
+	     */
+	    private Long doctorId;
+
+	    /**
+	     * 模式分类
+	     */
+	    private Integer modeClassify;
+
+	    /**
+	     * 模式值
+	     */
+	    private Integer modeValue;
+
+	    /**
+	     * 备注
+	     */
+	    private String remark;
+}

+ 30 - 30
icss-service/src/main/java/com/diagbot/dto/GetLastOtherDTO.java

@@ -1,30 +1,30 @@
-package com.diagbot.dto;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @Description:
- * @author: rengb
- * @time: 2019/01/14 45:00
- */
-@ApiModel(value="获取最近一次其他史信息接口出参")
-@Getter
-@Setter
-public class GetLastOtherDTO {
-	
-	/**
-	 * 内容JSON字符串
-	 */
-	@ApiModelProperty(value="内容JSON字符串")
-	private String dataJson;
-	
-	/**
-	 * 问诊明细中的其他史
-	 */
-	@ApiModelProperty(value="问诊明细中的其他史")
-	private String otherStr;
-	
-}
+package com.diagbot.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/01/14 45:00
+ */
+@ApiModel(value="获取最近一次其他史信息接口出参")
+@Getter
+@Setter
+public class GetLastOtherDTO {
+	
+	/**
+	 * 内容JSON字符串
+	 */
+	@ApiModelProperty(value="内容JSON字符串")
+	private String dataJson;
+	
+	/**
+	 * 问诊明细中的其他史
+	 */
+	@ApiModelProperty(value="问诊明细中的其他史")
+	private String otherStr;
+	
+}

+ 156 - 156
icss-service/src/main/java/com/diagbot/dto/GetTopPatientInfoDTO.java

@@ -1,156 +1,156 @@
-package com.diagbot.dto;
-
-import java.util.Date;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @Description
- * @author rgb
- * @time 2018年11月19日下午4:57:43
- */
-@ApiModel(value="页面顶部病人医生科室信息查询接口出参")
-@Getter
-@Setter
-public class GetTopPatientInfoDTO {
-	
-	/**
-	 * 医院id
-	 */
-	@ApiModelProperty(value="医院id")
-	private Long hospitalId;
-	
-	/**
-     * 医院编码
-     */
-	@ApiModelProperty(value="医院编码")
-    private String hospitalCode;
-
-    /**
-     * 医院名称
-     */
-	@ApiModelProperty(value="医院名称")
-    private String hospitalName;
-    
-    /**
-	 * 医院科室id
-	 */
-	@ApiModelProperty(value="医院科室id")
-	private Long hospitalDeptId;
-	
-    /**
-	 * 自己科室id
-	 */
-	@ApiModelProperty(value="自己科室id")
-	private Long selfDeptId;
-	
-	/**
-	 * 自己科室名称
-	 */
-	@ApiModelProperty(value="自己科室名称")
-	private String selfDeptName;
-    
-    /**
-     * 医院科室编码
-     */
-	@ApiModelProperty(value="医院科室编码")
-    private String hospitalDeptCode;
-
-    /**
-     * 医院科室名称
-     */
-	@ApiModelProperty(value="医院科室名称")
-    private String hospitalDeptName;
-    
-    /**
-	 * 医生id
-	 */
-	@ApiModelProperty(value="医生id")
-	private Long doctorId;
-	
-	/**
-     * 医生编码
-     */
-	@ApiModelProperty(value="医生编码")
-    private String doctorCode;
-
-    /**
-     * 医生姓名
-     */
-	@ApiModelProperty(value="医生姓名")
-    private String doctorName;
-    
-    /**
-   	 * 病人id
-   	 */
-	@ApiModelProperty(value="病人id")
-   	private Long patientId;
-   	
-   	/**
-     * 病人编号
-     */
-	@ApiModelProperty(value="病人编号")
-    private String patientCode;
-
-    /**
-     * 病人姓名
-     */
-	@ApiModelProperty(value="病人姓名")
-    private String patientName;
-
-    /**
-     * 病人性别
-     */
-	@ApiModelProperty(value="病人性别")
-    private String patientSex;
-    
-    /**
-     * 病人年龄
-     */
-	@ApiModelProperty(value="病人年龄")
-    private Integer patientAge;
-    
-    /**
-     * 病人证件号码
-     */
-	@ApiModelProperty(value="病人证件号码")
-    private String patientIdNo;
-
-	/**
-	 * 系统时间
-	 */
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
-	@ApiModelProperty(value="系统时间")
-	private Date systemTime;
-	
-	/**
-     * 出生日期
-     */
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
-	@ApiModelProperty(value="出生日期")
-    private Date birthday;
-	
-	/**
-     * 门诊号
-     */
-	@ApiModelProperty(value="门诊号")
-	private String recordId;
-	
-    /**
-     * 模式分类
-     */
-	@ApiModelProperty(value="模式分类")
-    private Integer modeClassify;
-
-    /**
-     * 模式值
-     */
-	@ApiModelProperty(value="模式值")
-    private Integer modeValue;
-	
-}
+package com.diagbot.dto;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年11月19日下午4:57:43
+ */
+@ApiModel(value="页面顶部病人医生科室信息查询接口出参")
+@Getter
+@Setter
+public class GetTopPatientInfoDTO {
+	
+	/**
+	 * 医院id
+	 */
+	@ApiModelProperty(value="医院id")
+	private Long hospitalId;
+	
+	/**
+     * 医院编码
+     */
+	@ApiModelProperty(value="医院编码")
+    private String hospitalCode;
+
+    /**
+     * 医院名称
+     */
+	@ApiModelProperty(value="医院名称")
+    private String hospitalName;
+    
+    /**
+	 * 医院科室id
+	 */
+	@ApiModelProperty(value="医院科室id")
+	private Long hospitalDeptId;
+	
+    /**
+	 * 自己科室id
+	 */
+	@ApiModelProperty(value="自己科室id")
+	private Long selfDeptId;
+	
+	/**
+	 * 自己科室名称
+	 */
+	@ApiModelProperty(value="自己科室名称")
+	private String selfDeptName;
+    
+    /**
+     * 医院科室编码
+     */
+	@ApiModelProperty(value="医院科室编码")
+    private String hospitalDeptCode;
+
+    /**
+     * 医院科室名称
+     */
+	@ApiModelProperty(value="医院科室名称")
+    private String hospitalDeptName;
+    
+    /**
+	 * 医生id
+	 */
+	@ApiModelProperty(value="医生id")
+	private Long doctorId;
+	
+	/**
+     * 医生编码
+     */
+	@ApiModelProperty(value="医生编码")
+    private String doctorCode;
+
+    /**
+     * 医生姓名
+     */
+	@ApiModelProperty(value="医生姓名")
+    private String doctorName;
+    
+    /**
+   	 * 病人id
+   	 */
+	@ApiModelProperty(value="病人id")
+   	private Long patientId;
+   	
+   	/**
+     * 病人编号
+     */
+	@ApiModelProperty(value="病人编号")
+    private String patientCode;
+
+    /**
+     * 病人姓名
+     */
+	@ApiModelProperty(value="病人姓名")
+    private String patientName;
+
+    /**
+     * 病人性别
+     */
+	@ApiModelProperty(value="病人性别")
+    private String patientSex;
+    
+    /**
+     * 病人年龄
+     */
+	@ApiModelProperty(value="病人年龄")
+    private Integer patientAge;
+    
+    /**
+     * 病人证件号码
+     */
+	@ApiModelProperty(value="病人证件号码")
+    private String patientIdNo;
+
+	/**
+	 * 系统时间
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+	@ApiModelProperty(value="系统时间")
+	private Date systemTime;
+	
+	/**
+     * 出生日期
+     */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+	@ApiModelProperty(value="出生日期")
+    private Date birthday;
+	
+	/**
+     * 门诊号
+     */
+	@ApiModelProperty(value="门诊号")
+	private String recordId;
+	
+    /**
+     * 模式分类
+     */
+	@ApiModelProperty(value="模式分类")
+    private Integer modeClassify;
+
+    /**
+     * 模式值
+     */
+	@ApiModelProperty(value="模式值")
+    private Integer modeValue;
+	
+}

+ 40 - 40
icss-service/src/main/java/com/diagbot/dto/LisConfigDTO.java

@@ -1,40 +1,40 @@
-package com.diagbot.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2018年12月25日 上午11:02:17
- */
-@Setter
-@Getter
-public class LisConfigDTO {
-	 private Long id;
-	 /**
-     * 医院id
-     */
-    private String hospitalId;
-
-    /**
-     * 套餐名
-     */
-    private String mealName;
-
-    /**
-     * 项目名
-     */
-    private String itemName;
-
-    /**
-     * 公表id
-     */
-    private String uniqueId;
-
-    /**
-     * 公表明
-     */
-    private String uniqueName;
-}
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年12月25日 上午11:02:17
+ */
+@Setter
+@Getter
+public class LisConfigDTO {
+	 private Long id;
+	 /**
+     * 医院id
+     */
+    private String hospitalId;
+
+    /**
+     * 套餐名
+     */
+    private String mealName;
+
+    /**
+     * 项目名
+     */
+    private String itemName;
+
+    /**
+     * 公表id
+     */
+    private String uniqueId;
+
+    /**
+     * 公表明
+     */
+    private String uniqueName;
+}

+ 30 - 30
icss-service/src/main/java/com/diagbot/dto/TemplateInfoDTO.java

@@ -1,30 +1,30 @@
-package com.diagbot.dto;
-
-import java.util.Date;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: 医生病历模板出参
- * @date 2018年11月16日 上午10:40:27
- */
-@Getter
-@Setter
-public class TemplateInfoDTO {
-	 private Long id;//模板id
-	 private Date  gmtCreate;//创建时间
-	 private String creator;//创建人id
-	 private String name;//模板名字
-	 private Long doctorId;//医生id
-	 private Long hospitalId;//医院id
-	 private Long hospitalDeptId;//部门id
-	 private Integer sex;//性别
-	 private String type;//模板类型
-	 private String  preview;//预览文字
-	 private String dataJson;//模板数据
-	 private String remark;//备注
-
-}
+package com.diagbot.dto;
+
+import java.util.Date;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: 医生病历模板出参
+ * @date 2018年11月16日 上午10:40:27
+ */
+@Getter
+@Setter
+public class TemplateInfoDTO {
+	 private Long id;//模板id
+	 private Date  gmtCreate;//创建时间
+	 private String creator;//创建人id
+	 private String name;//模板名字
+	 private Long doctorId;//医生id
+	 private Long hospitalId;//医院id
+	 private Long hospitalDeptId;//部门id
+	 private Integer sex;//性别
+	 private String type;//模板类型
+	 private String  preview;//预览文字
+	 private String dataJson;//模板数据
+	 private String remark;//备注
+
+}

+ 60 - 60
icss-service/src/main/java/com/diagbot/dto/VersionDetailDTO.java

@@ -1,60 +1,60 @@
-package com.diagbot.dto;
-
-import java.util.Date;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月21日 上午11:12:12
- */
-@Getter
-@Setter
-public class VersionDetailDTO {
-	
-	private Long id;
-
-    /**
-     * 记录创建时间
-     */
-    private Date gmtCreate;
-
-    /**
-     * 创建人,0表示无创建人值
-     */
-   // private String creator;
-
-  
-    /**
-     * 版本主表id
-     */
-    private Long versionId;
-
-    /**
-     * 标题
-     */
-    private String title;
-
-    /**
-     * 描述
-     */
-    private String description;
-
-    /**
-     * 排序号
-     */
-    private String orderNo;
-
-    /**
-     * 1:启动,0:不启用
-     */
-  //  private String status;
-
-    /**
-     * 备注
-     */
-    private String remark;
-}
+package com.diagbot.dto;
+
+import java.util.Date;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月21日 上午11:12:12
+ */
+@Getter
+@Setter
+public class VersionDetailDTO {
+	
+	private Long id;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+   // private String creator;
+
+  
+    /**
+     * 版本主表id
+     */
+    private Long versionId;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 排序号
+     */
+    private String orderNo;
+
+    /**
+     * 1:启动,0:不启用
+     */
+  //  private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 48 - 48
icss-service/src/main/java/com/diagbot/dto/VersionWrapperDTO.java

@@ -1,48 +1,48 @@
-package com.diagbot.dto;
-
-import java.util.Date;
-import java.util.List;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月21日 上午11:09:33
- */
-@Getter
-@Setter
-public class VersionWrapperDTO {
-	
-	private Long id;
-	/**
-	 * 记录创建时间
-	 */
-	private Date gmtCreate;
-
-	/**
-	 * 创建人,0表示无创建人值
-	 */
-	private String creator;
-
-	/**
-	 * 名称
-	 */
-	private String name;
-
-	private Date refreshTime;
-
-	/**
-	 * 1:启动,0:不启用
-	 */
-	private String status;
-
-	private List<VersionDetailDTO> detail;
-	/**
-	 * 备注
-	 */
-	private String remark;
-
-}
+package com.diagbot.dto;
+
+import java.util.Date;
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月21日 上午11:09:33
+ */
+@Getter
+@Setter
+public class VersionWrapperDTO {
+	
+	private Long id;
+	/**
+	 * 记录创建时间
+	 */
+	private Date gmtCreate;
+
+	/**
+	 * 创建人,0表示无创建人值
+	 */
+	private String creator;
+
+	/**
+	 * 名称
+	 */
+	private String name;
+
+	private Date refreshTime;
+
+	/**
+	 * 1:启动,0:不启用
+	 */
+	private String status;
+
+	private List<VersionDetailDTO> detail;
+	/**
+	 * 备注
+	 */
+	private String remark;
+
+}

+ 56 - 56
icss-service/src/main/java/com/diagbot/facade/BuriedSomeStatisticalFacade.java

@@ -1,56 +1,56 @@
-package com.diagbot.facade;
-
-import com.diagbot.entity.BuriedSomeStatistical;
-import com.diagbot.service.impl.BuriedSomeStatisticalServiceImpl;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.ListUtil;
-import com.diagbot.vo.BuriedSomeStatisticalVO;
-import com.diagbot.vo.Taggeds;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author wangfeng
- * @Description: TODO
- * @date 2018年12月3日 上午9:24:35
- */
-@Component
-public class BuriedSomeStatisticalFacade extends BuriedSomeStatisticalServiceImpl {
-
-    /**
-     * 批量保存
-     *
-     * @param buriedSomeStatisticalVO
-     * @return
-     */
-    public boolean saveBuriedSomeStatistical(BuriedSomeStatisticalVO buriedSomeStatisticalVO) {
-        boolean res = false;
-        if (null != buriedSomeStatisticalVO
-                && ListUtil.isNotEmpty(buriedSomeStatisticalVO.getTaggeds())) {
-            List<BuriedSomeStatistical> buriedList = new ArrayList<BuriedSomeStatistical>();
-            for (Taggeds taggedsNew : buriedSomeStatisticalVO.getTaggeds()) {
-                BuriedSomeStatistical buriedData = new BuriedSomeStatistical();
-                buriedData.setCreator(buriedSomeStatisticalVO.getDoctorId().toString());
-                buriedData.setDoctorId(buriedSomeStatisticalVO.getDoctorId());
-                buriedData.setGmtCreate(DateUtil.now());
-                buriedData.setHospitalDeptId(buriedSomeStatisticalVO.getHospitalDeptId());
-                buriedData.setHospitalId(buriedSomeStatisticalVO.getHospitalId());
-                buriedData.setInquiryCode(buriedSomeStatisticalVO.getInquiryCode());
-                buriedData.setPatientId(buriedSomeStatisticalVO.getPatientId());
-                buriedData.setLabelId(taggedsNew.getLabelId());
-                buriedData.setLabelName(taggedsNew.getLabelName());
-                buriedData.setOperationNum(taggedsNew.getOperationNum());
-                buriedData.setOperationType(taggedsNew.getOperationType());
-                buriedData.setStatus(taggedsNew.getStatus());
-                buriedList.add(buriedData);
-            }
-
-            res = insertCodeBatch(buriedList);
-        }
-        return res;
-    }
-
-
-}
+package com.diagbot.facade;
+
+import com.diagbot.entity.BuriedSomeStatistical;
+import com.diagbot.service.impl.BuriedSomeStatisticalServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.BuriedSomeStatisticalVO;
+import com.diagbot.vo.Taggeds;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年12月3日 上午9:24:35
+ */
+@Component
+public class BuriedSomeStatisticalFacade extends BuriedSomeStatisticalServiceImpl {
+
+    /**
+     * 批量保存
+     *
+     * @param buriedSomeStatisticalVO
+     * @return
+     */
+    public boolean saveBuriedSomeStatistical(BuriedSomeStatisticalVO buriedSomeStatisticalVO) {
+        boolean res = false;
+        if (null != buriedSomeStatisticalVO
+                && ListUtil.isNotEmpty(buriedSomeStatisticalVO.getTaggeds())) {
+            List<BuriedSomeStatistical> buriedList = new ArrayList<BuriedSomeStatistical>();
+            for (Taggeds taggedsNew : buriedSomeStatisticalVO.getTaggeds()) {
+                BuriedSomeStatistical buriedData = new BuriedSomeStatistical();
+                buriedData.setCreator(buriedSomeStatisticalVO.getDoctorId().toString());
+                buriedData.setDoctorId(buriedSomeStatisticalVO.getDoctorId());
+                buriedData.setGmtCreate(DateUtil.now());
+                buriedData.setHospitalDeptId(buriedSomeStatisticalVO.getHospitalDeptId());
+                buriedData.setHospitalId(buriedSomeStatisticalVO.getHospitalId());
+                buriedData.setInquiryCode(buriedSomeStatisticalVO.getInquiryCode());
+                buriedData.setPatientId(buriedSomeStatisticalVO.getPatientId());
+                buriedData.setLabelId(taggedsNew.getLabelId());
+                buriedData.setLabelName(taggedsNew.getLabelName());
+                buriedData.setOperationNum(taggedsNew.getOperationNum());
+                buriedData.setOperationType(taggedsNew.getOperationType());
+                buriedData.setStatus(taggedsNew.getStatus());
+                buriedList.add(buriedData);
+            }
+
+            res = insertCodeBatch(buriedList);
+        }
+        return res;
+    }
+
+
+}

+ 86 - 86
icss-service/src/main/java/com/diagbot/facade/DoctorPageModeFacade.java

@@ -1,86 +1,86 @@
-package com.diagbot.facade;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.validation.Valid;
-
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.diagbot.dto.DoctorPageModeDTO;
-import com.diagbot.dto.TemplateInfoDTO;
-import com.diagbot.entity.DoctorPageMode;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.service.impl.DoctorPageModeServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.vo.DoctorIdVO;
-import com.diagbot.vo.DoctorPageModeVO;
-
-/**
- * @author wangfeng
- * @Description: 医生页面模式设置
- * @date 2018年11月20日 下午2:56:01
- */
-@Component
-public class DoctorPageModeFacade extends DoctorPageModeServiceImpl {
-
-    /**
-     * 保存医生页面结构设置信息
-     *
-     * @param doctorPageModeVO
-     * @return
-     */
-    public boolean saveDoctorPageMode(DoctorPageModeVO doctorPageModeVO) {
-        QueryWrapper<DoctorPageMode> doctorPageModeWrapper = new QueryWrapper<>();
-        Map<String, Object> mapAll = new HashMap<>();
-        mapAll.put("doctor_id", doctorPageModeVO.getDoctorId());
-        mapAll.put("mode_classify", doctorPageModeVO.getModeClassify());
-        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
-        doctorPageModeWrapper.allEq(mapAll);
-        DoctorPageMode datas = getOne(doctorPageModeWrapper);
-        boolean res = false;
-        if (datas != null) {
-            UpdateWrapper<DoctorPageMode> doctorPageModeUpdate = new UpdateWrapper<>();
-            doctorPageModeUpdate.eq("id",datas.getId())
-                    .set("mode_classify", doctorPageModeVO.getModeClassify())
-                    .set("mode_value", doctorPageModeVO.getModeValue())
-                    .set("modifier", doctorPageModeVO.getDoctorId().toString())
-                    .set("gmt_modified", DateUtil.now());
-            res = update(new DoctorPageMode(), doctorPageModeUpdate);
-            //throw new CommonException(CommonErrorCode.NOT_EXISTS, "该模板名已存在");
-        } else {
-            DoctorPageMode doctorPageMode = new DoctorPageMode();
-            doctorPageMode.setDoctorId(doctorPageModeVO.getDoctorId());
-            doctorPageMode.setModeClassify(doctorPageModeVO.getModeClassify());
-            doctorPageMode.setModeValue(doctorPageModeVO.getModeValue());
-            doctorPageMode.setCreator(doctorPageModeVO.getDoctorId().toString());
-            doctorPageMode.setGmtCreate(DateUtil.now());
-            res = save(doctorPageMode);
-        }
-
-        return res;
-    }
-
-    /**
-     * 获取医生页面结构设置信息
-     *
-     * @param doctorIdVO
-     * @return
-     */
-    public List<DoctorPageModeDTO> getDoctorPageMode(@Valid DoctorIdVO doctorIdVO) {
-        QueryWrapper<DoctorPageMode> doctorPageModeWrapper = new QueryWrapper<>();
-        Map<String, Object> mapAll = new HashMap<>();
-        mapAll.put("doctor_id", doctorIdVO.getDoctorId());
-        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
-        doctorPageModeWrapper.allEq(mapAll);
-        List<DoctorPageMode> doctorPageModeData = list(doctorPageModeWrapper);
-        List<DoctorPageModeDTO> data =  BeanUtil.listCopyTo(doctorPageModeData, DoctorPageModeDTO.class);
-        return data;
-    }
-
-}
+package com.diagbot.facade;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.validation.Valid;
+
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.dto.DoctorPageModeDTO;
+import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.entity.DoctorPageMode;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.DoctorPageModeServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.vo.DoctorIdVO;
+import com.diagbot.vo.DoctorPageModeVO;
+
+/**
+ * @author wangfeng
+ * @Description: 医生页面模式设置
+ * @date 2018年11月20日 下午2:56:01
+ */
+@Component
+public class DoctorPageModeFacade extends DoctorPageModeServiceImpl {
+
+    /**
+     * 保存医生页面结构设置信息
+     *
+     * @param doctorPageModeVO
+     * @return
+     */
+    public boolean saveDoctorPageMode(DoctorPageModeVO doctorPageModeVO) {
+        QueryWrapper<DoctorPageMode> doctorPageModeWrapper = new QueryWrapper<>();
+        Map<String, Object> mapAll = new HashMap<>();
+        mapAll.put("doctor_id", doctorPageModeVO.getDoctorId());
+        mapAll.put("mode_classify", doctorPageModeVO.getModeClassify());
+        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
+        doctorPageModeWrapper.allEq(mapAll);
+        DoctorPageMode datas = getOne(doctorPageModeWrapper);
+        boolean res = false;
+        if (datas != null) {
+            UpdateWrapper<DoctorPageMode> doctorPageModeUpdate = new UpdateWrapper<>();
+            doctorPageModeUpdate.eq("id",datas.getId())
+                    .set("mode_classify", doctorPageModeVO.getModeClassify())
+                    .set("mode_value", doctorPageModeVO.getModeValue())
+                    .set("modifier", doctorPageModeVO.getDoctorId().toString())
+                    .set("gmt_modified", DateUtil.now());
+            res = update(new DoctorPageMode(), doctorPageModeUpdate);
+            //throw new CommonException(CommonErrorCode.NOT_EXISTS, "该模板名已存在");
+        } else {
+            DoctorPageMode doctorPageMode = new DoctorPageMode();
+            doctorPageMode.setDoctorId(doctorPageModeVO.getDoctorId());
+            doctorPageMode.setModeClassify(doctorPageModeVO.getModeClassify());
+            doctorPageMode.setModeValue(doctorPageModeVO.getModeValue());
+            doctorPageMode.setCreator(doctorPageModeVO.getDoctorId().toString());
+            doctorPageMode.setGmtCreate(DateUtil.now());
+            res = save(doctorPageMode);
+        }
+
+        return res;
+    }
+
+    /**
+     * 获取医生页面结构设置信息
+     *
+     * @param doctorIdVO
+     * @return
+     */
+    public List<DoctorPageModeDTO> getDoctorPageMode(@Valid DoctorIdVO doctorIdVO) {
+        QueryWrapper<DoctorPageMode> doctorPageModeWrapper = new QueryWrapper<>();
+        Map<String, Object> mapAll = new HashMap<>();
+        mapAll.put("doctor_id", doctorIdVO.getDoctorId());
+        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
+        doctorPageModeWrapper.allEq(mapAll);
+        List<DoctorPageMode> doctorPageModeData = list(doctorPageModeWrapper);
+        List<DoctorPageModeDTO> data =  BeanUtil.listCopyTo(doctorPageModeData, DoctorPageModeDTO.class);
+        return data;
+    }
+
+}

+ 41 - 41
icss-service/src/main/java/com/diagbot/facade/HospitalDeptFacade.java

@@ -1,41 +1,41 @@
-package com.diagbot.facade;
-
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import com.diagbot.client.TranServiceClient;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.entity.HospitalDept;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.exception.CommonException;
-
-/**
- * @author rgb
- * @Description
- * @time 2018年12月11日上午11:32:13
- */
-@Component
-public class HospitalDeptFacade {
-	
-	@Autowired
-    private TranServiceClient tranServiceClient;
-	
-	/**
-     * 根据ids获取科室信息map
-     * @param ids 科室ids
-     * @return 科室信息
-     */
-    public Map<Long, HospitalDept> hospitalDeptInfoMapByIds(List<Long> ids) {
-    	 RespDTO<Map<Long, HospitalDept>> retData = tranServiceClient.hospitalDeptInfoMapByIds(ids);
-         if (retData == null
-                 || !CommonErrorCode.OK.getCode().equals(retData.code)) {
-             throw new CommonException(CommonErrorCode.RPC_ERROR,
-                     "获取科室信息失败");
-         }
-         return retData.data;
-    }
-
-}
+package com.diagbot.facade;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.HospitalDept;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+
+/**
+ * @author rgb
+ * @Description
+ * @time 2018年12月11日上午11:32:13
+ */
+@Component
+public class HospitalDeptFacade {
+	
+	@Autowired
+    private TranServiceClient tranServiceClient;
+	
+	/**
+     * 根据ids获取科室信息map
+     * @param ids 科室ids
+     * @return 科室信息
+     */
+    public Map<Long, HospitalDept> hospitalDeptInfoMapByIds(List<Long> ids) {
+    	 RespDTO<Map<Long, HospitalDept>> retData = tranServiceClient.hospitalDeptInfoMapByIds(ids);
+         if (retData == null
+                 || !CommonErrorCode.OK.getCode().equals(retData.code)) {
+             throw new CommonException(CommonErrorCode.RPC_ERROR,
+                     "获取科室信息失败");
+         }
+         return retData.data;
+    }
+
+}

+ 70 - 70
icss-service/src/main/java/com/diagbot/facade/InquiryDetailFacade.java

@@ -1,70 +1,70 @@
-package com.diagbot.facade;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.diagbot.entity.InquiryDetail;
-import com.diagbot.service.impl.InquiryDetailServiceImpl;
-import com.diagbot.util.ListUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-/**
- * @author rengb
- * @Description
- * @time 2018年11月23日下午2:08:08
- */
-@Component
-public class InquiryDetailFacade extends InquiryDetailServiceImpl {
-
-    /**
-     * 批量保存问诊明细
-     *
-     * @param inquiryDetailList
-     */
-    public void saveInquiryDetails(List<InquiryDetail> inquiryDetailList) {
-        if (ListUtil.isNotEmpty(inquiryDetailList)) {
-            baseMapper.saveInquiryDetails(inquiryDetailList);
-        }
-    }
-
-    /**
-     * 根据问诊记录id删除问诊记录明细
-     *
-     * @param inquiryId
-     */
-    public void removeByInquiryId(Long inquiryId) {
-        QueryWrapper<InquiryDetail> queryWrapper = new QueryWrapper<InquiryDetail>();
-        queryWrapper.eq("inquiry_id", inquiryId);
-        this.remove(queryWrapper);
-    }
-
-    /**
-     * 根据病历id获取病历明细
-     *
-     * @param inquiryId
-     * @return
-     */
-    public List<InquiryDetail> getListByInquryId(Long inquiryId) {
-        QueryWrapper<InquiryDetail> queryWrapper = new QueryWrapper<InquiryDetail>();
-        queryWrapper.eq("is_deleted", "N");
-        queryWrapper.eq("inquiry_id", inquiryId);
-        return this.list(queryWrapper);
-    }
-
-    /**
-     * 根据病历id集合获取病历明细
-     *
-     * @param inquiryIds
-     * @return
-     */
-    public Map<Long, List<InquiryDetail>> getDetailsByInquryIds(List<Long> inquiryIds) {
-        QueryWrapper<InquiryDetail> queryWrapper = new QueryWrapper<InquiryDetail>();
-        queryWrapper.eq("is_deleted", "N").in("inquiry_id", inquiryIds);
-        List<InquiryDetail> inquiryDetails = this.list(queryWrapper);
-        return inquiryDetails.stream().collect(Collectors.groupingBy(InquiryDetail::getInquiryId));
-    }
-
-
-}
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.InquiryDetail;
+import com.diagbot.service.impl.InquiryDetailServiceImpl;
+import com.diagbot.util.ListUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author rengb
+ * @Description
+ * @time 2018年11月23日下午2:08:08
+ */
+@Component
+public class InquiryDetailFacade extends InquiryDetailServiceImpl {
+
+    /**
+     * 批量保存问诊明细
+     *
+     * @param inquiryDetailList
+     */
+    public void saveInquiryDetails(List<InquiryDetail> inquiryDetailList) {
+        if (ListUtil.isNotEmpty(inquiryDetailList)) {
+            baseMapper.saveInquiryDetails(inquiryDetailList);
+        }
+    }
+
+    /**
+     * 根据问诊记录id删除问诊记录明细
+     *
+     * @param inquiryId
+     */
+    public void removeByInquiryId(Long inquiryId) {
+        QueryWrapper<InquiryDetail> queryWrapper = new QueryWrapper<InquiryDetail>();
+        queryWrapper.eq("inquiry_id", inquiryId);
+        this.remove(queryWrapper);
+    }
+
+    /**
+     * 根据病历id获取病历明细
+     *
+     * @param inquiryId
+     * @return
+     */
+    public List<InquiryDetail> getListByInquryId(Long inquiryId) {
+        QueryWrapper<InquiryDetail> queryWrapper = new QueryWrapper<InquiryDetail>();
+        queryWrapper.eq("is_deleted", "N");
+        queryWrapper.eq("inquiry_id", inquiryId);
+        return this.list(queryWrapper);
+    }
+
+    /**
+     * 根据病历id集合获取病历明细
+     *
+     * @param inquiryIds
+     * @return
+     */
+    public Map<Long, List<InquiryDetail>> getDetailsByInquryIds(List<Long> inquiryIds) {
+        QueryWrapper<InquiryDetail> queryWrapper = new QueryWrapper<InquiryDetail>();
+        queryWrapper.eq("is_deleted", "N").in("inquiry_id", inquiryIds);
+        List<InquiryDetail> inquiryDetails = this.list(queryWrapper);
+        return inquiryDetails.stream().collect(Collectors.groupingBy(InquiryDetail::getInquiryId));
+    }
+
+
+}

+ 351 - 351
icss-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java

@@ -1,351 +1,351 @@
-package com.diagbot.facade;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.diagbot.client.TranServiceClient;
-import com.diagbot.dto.EMRIntroduceDetailDTO;
-import com.diagbot.dto.GetInquiryDetailDTO;
-import com.diagbot.dto.GetLastOtherDTO;
-import com.diagbot.dto.HisInquiryDTO;
-import com.diagbot.dto.HisInquirysForDjDTO;
-import com.diagbot.dto.HospitalInfoDTO;
-import com.diagbot.dto.PatientInfoDTO;
-import com.diagbot.dto.ReadInquiryDTO;
-import com.diagbot.dto.SaveInquiryDTO;
-import com.diagbot.entity.DoctorInfo;
-import com.diagbot.entity.HospitalDept;
-import com.diagbot.entity.InquiryDetail;
-import com.diagbot.entity.InquiryInfo;
-import com.diagbot.entity.PatientInfo;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.enums.SexTypeEnum;
-import com.diagbot.service.impl.InquiryInfoServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.ListUtil;
-import com.diagbot.util.StringUtil;
-import com.diagbot.vo.GetInquiryDetailVO;
-import com.diagbot.vo.GetLastOtherVO;
-import com.diagbot.vo.HisInquirysForDjVO;
-import com.diagbot.vo.HisInquirysVO;
-import com.diagbot.vo.PatientInfoVO;
-import com.diagbot.vo.ReadInquiryVO;
-import com.diagbot.vo.SaveInquiryDetailVO;
-import com.diagbot.vo.SaveInquiryToHisVO;
-import com.diagbot.vo.SaveInquiryVO;
-
-/**
- * @author rengb
- * @Description
- * @time 2018年11月23日下午2:08:08
- */
-@Component
-public class InquiryInfoFacade extends InquiryInfoServiceImpl {
-
-    @Autowired
-    private InquiryDetailFacade inquiryDetailFacade;
-    @Autowired
-    private HospitalInfoFacade hospitalInfoFacade;
-    @Autowired
-    private PatientInfoFacade patientInfoFacade;
-    @Autowired
-    private DoctorInfoFacade doctorInfoFacade;
-    @Autowired
-    private HospitalDeptFacade hospitalDeptFacade;
-    @Autowired
-    private TranServiceClient tranServiceClient;
-
-    /**
-     * 问诊记录保存
-     *
-     * @param saveInquiryVO
-     * @return
-     */
-    @Transactional
-    public SaveInquiryDTO saveInquiry(SaveInquiryVO saveInquiryVO) {
-        SaveInquiryDTO saveInquiryDTO = new SaveInquiryDTO();
-        Date now = new Date();
-
-        QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
-        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
-        queryWrapper.eq("hospital_id", saveInquiryVO.getHospitalId());
-        queryWrapper.eq("hospital_dept_id", saveInquiryVO.getHospitalDeptId());
-        queryWrapper.eq("doctor_id", saveInquiryVO.getDoctorId());
-        queryWrapper.eq("patient_id", saveInquiryVO.getPatientId());
-        queryWrapper.eq("inquiry_code", saveInquiryVO.getInquiryCode());
-        InquiryInfo inquiryInfo = this.getOne(queryWrapper);
-
-        Long inquiryId = null;
-        InquiryInfo inquiryInfoSave = new InquiryInfo();
-        inquiryInfoSave.setHospitalId(saveInquiryVO.getHospitalId());
-        inquiryInfoSave.setHospitalDeptId(saveInquiryVO.getHospitalDeptId());
-        inquiryInfoSave.setDoctorId(saveInquiryVO.getDoctorId());
-        inquiryInfoSave.setPatientId(saveInquiryVO.getPatientId());
-        inquiryInfoSave.setInquiryCode(saveInquiryVO.getInquiryCode());
-        inquiryInfoSave.setRegVisitedState(saveInquiryVO.getRegVisitedState());
-        inquiryInfoSave.setType(saveInquiryVO.getType());
-        inquiryInfoSave.setDiagnose(saveInquiryVO.getDiagnose());
-        inquiryInfoSave.setSign(saveInquiryVO.getSign());
-        inquiryInfoSave.setDataJson(saveInquiryVO.getDataJson());
-        if (inquiryInfo == null) {
-            inquiryInfoSave.setGmtCreate(now);
-            inquiryInfoSave.setGmtModified(now);
-            this.save(inquiryInfoSave);
-            inquiryId = inquiryInfoSave.getId();
-        } else {
-            inquiryId = inquiryInfo.getId();
-            inquiryInfoSave.setId(inquiryId);
-            inquiryInfoSave.setGmtModified(now);
-            this.updateById(inquiryInfoSave);
-
-            inquiryDetailFacade.removeByInquiryId(inquiryId);
-        }
-
-        List<InquiryDetail> inquiryDetailList = new ArrayList<>();
-        List<String> contentList = new ArrayList<>();
-        for (SaveInquiryDetailVO i : saveInquiryVO.getDetailList()) {
-            InquiryDetail inquiryDetail = new InquiryDetail();
-            inquiryDetail.setInquiryId(inquiryId);
-            inquiryDetail.setType(i.getType());
-            inquiryDetail.setContent(i.getContent());
-            inquiryDetail.setContentValue(i.getContentValue());
-            inquiryDetail.setGmtCreate(now);
-            inquiryDetailList.add(inquiryDetail);
-            contentList.add(i.getContentValue());
-        }
-        if (inquiryDetailList.size() > 0) {
-            inquiryDetailFacade.saveInquiryDetails(inquiryDetailList);
-        }
-
-        saveInquiryDTO.setInquiryId(inquiryId);
-        
-        SaveInquiryToHisVO saveInquiryToHisVO = new SaveInquiryToHisVO();
-        saveInquiryToHisVO.setContentList(contentList);
-        tranServiceClient.saveInquiryToHis(saveInquiryToHisVO);
-        
-        return saveInquiryDTO;
-    }
-
-    /**
-     * 问诊记录回显
-     *
-     * @param readInquiryVO
-     * @return
-     */
-    public ReadInquiryDTO readInquiry(ReadInquiryVO readInquiryVO) {
-        ReadInquiryDTO readInquiryDTO = new ReadInquiryDTO();
-        QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
-        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
-        queryWrapper.eq("hospital_id", readInquiryVO.getHospitalId());
-        queryWrapper.eq("hospital_dept_id", readInquiryVO.getHospitalDeptId());
-        queryWrapper.eq("doctor_id", readInquiryVO.getDoctorId());
-        queryWrapper.eq("patient_id", readInquiryVO.getPatientId());
-        queryWrapper.eq("inquiry_code", readInquiryVO.getInquiryCode());
-        InquiryInfo inquiryInfo = this.getOne(queryWrapper);
-
-        if (inquiryInfo != null) {
-            readInquiryDTO.setDataJson(inquiryInfo.getDataJson());
-            BeanUtil.copyProperties(inquiryInfo, readInquiryDTO);
-            
-            QueryWrapper<InquiryDetail> inquiryDetailQe = new QueryWrapper<>();
-            inquiryDetailQe.eq("inquiry_id", inquiryInfo.getId());
-            readInquiryDTO.setDetailList(inquiryDetailFacade.list(inquiryDetailQe).stream().sorted((a,b)->a.getType()-b.getType()).collect(Collectors.toList()));
-        }
-
-        return readInquiryDTO;
-    }
-
-    /**
-     * 获取最近一次其他史信息
-     *
-     * @param getLastOtherVO
-     * @return
-     */
-    public GetLastOtherDTO getLastOther(GetLastOtherVO getLastOtherVO) {
-    	GetLastOtherDTO getLastOtherDTO = new GetLastOtherDTO();
-    	
-    	HospitalInfoDTO hospitalInfoDTO = hospitalInfoFacade.getHospitalByCode(getLastOtherVO.getHospitalCode());
-    	
-    	PatientInfoVO patientInfoVO = new PatientInfoVO();
-    	patientInfoVO.setHospitalCode(getLastOtherVO.getHospitalCode());
-    	patientInfoVO.setPatientCode(getLastOtherVO.getPatientCode());
-    	PatientInfoDTO patientInfoDTO = patientInfoFacade.getPatientInfo(patientInfoVO);
-
-        Map<String, Object> map = new HashMap<>();
-        map.put("hospitalId", hospitalInfoDTO.getId());
-        map.put("patientId", patientInfoDTO.getId());
-        map.put("sign", getLastOtherVO.getSign());
-        InquiryInfo inquiryInfo = baseMapper.getPatientLast(map);
-
-        if (inquiryInfo != null) {
-        	getLastOtherDTO.setDataJson(inquiryInfo.getDataJson());
-        	
-        	QueryWrapper<InquiryDetail> inquiryDetailQe = new QueryWrapper<>();
-            inquiryDetailQe.eq("inquiry_id", inquiryInfo.getId());
-            inquiryDetailQe.eq("type", 3);
-            InquiryDetail inquiryDetail = inquiryDetailFacade.getOne(inquiryDetailQe);
-            if(inquiryDetail!=null){
-            	getLastOtherDTO.setOtherStr(inquiryDetail.getContent());
-            }
-        }
-        return getLastOtherDTO;
-    }
-
-    /**
-     * 历史病历列表
-     *
-     * @param hisInquirysVO
-     * @return
-     */
-    public List<HisInquiryDTO> hisInquirys(HisInquirysVO hisInquirysVO) {
-        QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
-        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
-        queryWrapper.eq("hospital_id", hisInquirysVO.getHospitalId());
-        if(hisInquirysVO.getHospitalDeptId()!=null){
-        	queryWrapper.eq("hospital_dept_id", hisInquirysVO.getHospitalDeptId());
-        }
-        if(hisInquirysVO.getDoctorId()!=null){
-        	queryWrapper.eq("doctor_id", hisInquirysVO.getDoctorId());
-        }
-        if (hisInquirysVO.getPatientId() != null) {
-            queryWrapper.eq("patient_id", hisInquirysVO.getPatientId());
-        }
-        if (hisInquirysVO.getType() != null) {
-            queryWrapper.eq("type", hisInquirysVO.getType());
-        }
-        if (hisInquirysVO.getSign() != null) {
-            queryWrapper.eq("sign", hisInquirysVO.getSign());
-        }
-        if (hisInquirysVO.getStartDate() != null) {
-            queryWrapper.ge("gmt_create", hisInquirysVO.getStartDate());
-        }
-        if (hisInquirysVO.getEndDate() != null) {
-            queryWrapper.le("gmt_create", hisInquirysVO.getEndDate());
-        }
-        if (hisInquirysVO.getOrderType() == 1) {
-            queryWrapper.orderByDesc("gmt_modified");
-        } else if (hisInquirysVO.getOrderType() == 2) {
-            queryWrapper.orderByAsc("gmt_modified");
-        }
-        List<InquiryInfo> inquiryInfoList = this.list(queryWrapper);
-        if (inquiryInfoList.size() == 0) {
-            return null;
-        }
-
-        List<Long> hospitalDeptIdList = inquiryInfoList.stream().map(i -> i.getHospitalDeptId()).collect(Collectors.toList());
-        List<Long> doctorIdList = inquiryInfoList.stream().map(i -> i.getDoctorId()).collect(Collectors.toList());
-        List<Long> patientIdList = inquiryInfoList.stream().map(i -> i.getPatientId()).collect(Collectors.toList());
-        List<Long> inquiryIdList = inquiryInfoList.stream().map(i -> i.getId()).collect(Collectors.toList());
-
-        Map<Long, HospitalDept> hospitalDeptMap = hospitalDeptFacade.hospitalDeptInfoMapByIds(hospitalDeptIdList);
-        Map<Long, DoctorInfo> doctorInfoMap = doctorInfoFacade.doctorInfoMapByIds(doctorIdList);
-        Map<Long, PatientInfo> patientInfoMap = patientInfoFacade.patientInfoMapByIds(patientIdList);
-        Map<Long, List<InquiryDetail>> inquiryDetailMap = inquiryDetailFacade.getDetailsByInquryIds(inquiryIdList);
-
-        List<HisInquiryDTO> hisInquiryDTOList = new ArrayList<>();
-        inquiryInfoList.forEach(i -> {
-            HisInquiryDTO hisInquiryDTO = new HisInquiryDTO();
-            BeanUtil.copyProperties(i, hisInquiryDTO);
-            hisInquiryDTO.setInquiryDate(i.getGmtModified());
-            hisInquiryDTO.setInquiryTime(i.getGmtModified());
-            hisInquiryDTO.setHospitalDeptName(Optional.ofNullable(hospitalDeptMap.get(i.getHospitalDeptId())).map(t -> t.getName()).orElse(null));
-            hisInquiryDTO.setDoctorName(Optional.ofNullable(doctorInfoMap.get(i.getDoctorId())).map(t -> t.getName()).orElse(null));
-            PatientInfo patientInfo = patientInfoMap.get(i.getPatientId());
-            if (patientInfo != null) {
-                hisInquiryDTO.setPatientName(patientInfo.getName());
-                hisInquiryDTO.setPatientIdNo(patientInfo.getIdNo());
-                hisInquiryDTO.setPatientSex(SexTypeEnum.getName(patientInfo.getSex()));
-                hisInquiryDTO.setPatientAge(DateUtil.yearCompare(patientInfo.getBirthday(), DateUtil.now()));
-            }
-
-            hisInquiryDTO.setDetailList(inquiryDetailMap.get(i.getId()));
-            hisInquiryDTOList.add(hisInquiryDTO);
-        });
-
-
-        return hisInquiryDTOList;
-    }
-    
-    /**
-     * 对接-历史病历列表
-     *
-     * @param hisInquirysForDjVO
-     * @return
-     */
-    public List<HisInquirysForDjDTO> hisInquirysForDj(HisInquirysForDjVO hisInquirysForDjVO) {
-    	QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
-        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
-        queryWrapper.eq("hospital_id", hisInquirysForDjVO.getHospitalId());
-        if(hisInquirysForDjVO.getHospitalDeptId()!=null){
-        	queryWrapper.eq("hospital_dept_id", hisInquirysForDjVO.getHospitalDeptId());
-        }
-        if(hisInquirysForDjVO.getDoctorId()!=null){
-        	queryWrapper.eq("doctor_id", hisInquirysForDjVO.getDoctorId());
-        }
-        if (hisInquirysForDjVO.getPatientId() != null) {
-            queryWrapper.eq("patient_id", hisInquirysForDjVO.getPatientId());
-        }
-        if(StringUtil.isNotBlank(hisInquirysForDjVO.getInquiryCode())){
-        	queryWrapper.eq("inquiry_code", hisInquirysForDjVO.getInquiryCode());
-        }
-        if (hisInquirysForDjVO.getType() != null) {
-            queryWrapper.eq("type", hisInquirysForDjVO.getType());
-        }
-        if (hisInquirysForDjVO.getSign() != null) {
-            queryWrapper.eq("sign", hisInquirysForDjVO.getSign());
-        }
-        if (hisInquirysForDjVO.getStartDate() != null) {
-            queryWrapper.ge("gmt_create", hisInquirysForDjVO.getStartDate());
-        }
-        if (hisInquirysForDjVO.getEndDate() != null) {
-            queryWrapper.le("gmt_create", hisInquirysForDjVO.getEndDate());
-        }
-        if (hisInquirysForDjVO.getOrderType() == 1) {
-            queryWrapper.orderByDesc("gmt_modified");
-        } else if (hisInquirysForDjVO.getOrderType() == 2) {
-            queryWrapper.orderByAsc("gmt_modified");
-        }
-        List<InquiryInfo> inquiryInfoList = this.list(queryWrapper);
-        if (ListUtil.isEmpty(inquiryInfoList)) {
-            return null;
-        }
-        
-        Map<Long, List<InquiryDetail>> inquiryDetailMap = inquiryDetailFacade.getDetailsByInquryIds(inquiryInfoList.stream().map(i -> i.getId()).collect(Collectors.toList()));
-        List<HisInquirysForDjDTO> hisInquirysForDjDTOList = BeanUtil.listCopyTo(inquiryInfoList, HisInquirysForDjDTO.class);
-        
-        hisInquirysForDjDTOList.forEach(i->{
-        	i.setContentList(inquiryDetailMap.get(i.getId()).stream().map(k->k.getContentValue()).collect(Collectors.toList()));
-        });
-        
-        return hisInquirysForDjDTOList;
-    }
-    
-
-    /**
-     * 病历详情
-     *
-     * @param getInquiryDetailVO
-     * @return
-     */
-    public GetInquiryDetailDTO getInquiryDetail(GetInquiryDetailVO getInquiryDetailVO) {
-        GetInquiryDetailDTO getInquiryDetailDTO = new GetInquiryDetailDTO();
-
-        List<InquiryDetail> inquiryDetailList = inquiryDetailFacade.getListByInquryId(getInquiryDetailVO.getInquiryId());
-
-        getInquiryDetailDTO.setInquiryDetailList(inquiryDetailList);
-
-        return getInquiryDetailDTO;
-    }
-
-}
+package com.diagbot.facade;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.EMRIntroduceDetailDTO;
+import com.diagbot.dto.GetInquiryDetailDTO;
+import com.diagbot.dto.GetLastOtherDTO;
+import com.diagbot.dto.HisInquiryDTO;
+import com.diagbot.dto.HisInquirysForDjDTO;
+import com.diagbot.dto.HospitalInfoDTO;
+import com.diagbot.dto.PatientInfoDTO;
+import com.diagbot.dto.ReadInquiryDTO;
+import com.diagbot.dto.SaveInquiryDTO;
+import com.diagbot.entity.DoctorInfo;
+import com.diagbot.entity.HospitalDept;
+import com.diagbot.entity.InquiryDetail;
+import com.diagbot.entity.InquiryInfo;
+import com.diagbot.entity.PatientInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.SexTypeEnum;
+import com.diagbot.service.impl.InquiryInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.GetInquiryDetailVO;
+import com.diagbot.vo.GetLastOtherVO;
+import com.diagbot.vo.HisInquirysForDjVO;
+import com.diagbot.vo.HisInquirysVO;
+import com.diagbot.vo.PatientInfoVO;
+import com.diagbot.vo.ReadInquiryVO;
+import com.diagbot.vo.SaveInquiryDetailVO;
+import com.diagbot.vo.SaveInquiryToHisVO;
+import com.diagbot.vo.SaveInquiryVO;
+
+/**
+ * @author rengb
+ * @Description
+ * @time 2018年11月23日下午2:08:08
+ */
+@Component
+public class InquiryInfoFacade extends InquiryInfoServiceImpl {
+
+    @Autowired
+    private InquiryDetailFacade inquiryDetailFacade;
+    @Autowired
+    private HospitalInfoFacade hospitalInfoFacade;
+    @Autowired
+    private PatientInfoFacade patientInfoFacade;
+    @Autowired
+    private DoctorInfoFacade doctorInfoFacade;
+    @Autowired
+    private HospitalDeptFacade hospitalDeptFacade;
+    @Autowired
+    private TranServiceClient tranServiceClient;
+
+    /**
+     * 问诊记录保存
+     *
+     * @param saveInquiryVO
+     * @return
+     */
+    @Transactional
+    public SaveInquiryDTO saveInquiry(SaveInquiryVO saveInquiryVO) {
+        SaveInquiryDTO saveInquiryDTO = new SaveInquiryDTO();
+        Date now = new Date();
+
+        QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        queryWrapper.eq("hospital_id", saveInquiryVO.getHospitalId());
+        queryWrapper.eq("hospital_dept_id", saveInquiryVO.getHospitalDeptId());
+        queryWrapper.eq("doctor_id", saveInquiryVO.getDoctorId());
+        queryWrapper.eq("patient_id", saveInquiryVO.getPatientId());
+        queryWrapper.eq("inquiry_code", saveInquiryVO.getInquiryCode());
+        InquiryInfo inquiryInfo = this.getOne(queryWrapper);
+
+        Long inquiryId = null;
+        InquiryInfo inquiryInfoSave = new InquiryInfo();
+        inquiryInfoSave.setHospitalId(saveInquiryVO.getHospitalId());
+        inquiryInfoSave.setHospitalDeptId(saveInquiryVO.getHospitalDeptId());
+        inquiryInfoSave.setDoctorId(saveInquiryVO.getDoctorId());
+        inquiryInfoSave.setPatientId(saveInquiryVO.getPatientId());
+        inquiryInfoSave.setInquiryCode(saveInquiryVO.getInquiryCode());
+        inquiryInfoSave.setRegVisitedState(saveInquiryVO.getRegVisitedState());
+        inquiryInfoSave.setType(saveInquiryVO.getType());
+        inquiryInfoSave.setDiagnose(saveInquiryVO.getDiagnose());
+        inquiryInfoSave.setSign(saveInquiryVO.getSign());
+        inquiryInfoSave.setDataJson(saveInquiryVO.getDataJson());
+        if (inquiryInfo == null) {
+            inquiryInfoSave.setGmtCreate(now);
+            inquiryInfoSave.setGmtModified(now);
+            this.save(inquiryInfoSave);
+            inquiryId = inquiryInfoSave.getId();
+        } else {
+            inquiryId = inquiryInfo.getId();
+            inquiryInfoSave.setId(inquiryId);
+            inquiryInfoSave.setGmtModified(now);
+            this.updateById(inquiryInfoSave);
+
+            inquiryDetailFacade.removeByInquiryId(inquiryId);
+        }
+
+        List<InquiryDetail> inquiryDetailList = new ArrayList<>();
+        List<String> contentList = new ArrayList<>();
+        for (SaveInquiryDetailVO i : saveInquiryVO.getDetailList()) {
+            InquiryDetail inquiryDetail = new InquiryDetail();
+            inquiryDetail.setInquiryId(inquiryId);
+            inquiryDetail.setType(i.getType());
+            inquiryDetail.setContent(i.getContent());
+            inquiryDetail.setContentValue(i.getContentValue());
+            inquiryDetail.setGmtCreate(now);
+            inquiryDetailList.add(inquiryDetail);
+            contentList.add(i.getContentValue());
+        }
+        if (inquiryDetailList.size() > 0) {
+            inquiryDetailFacade.saveInquiryDetails(inquiryDetailList);
+        }
+
+        saveInquiryDTO.setInquiryId(inquiryId);
+        
+        SaveInquiryToHisVO saveInquiryToHisVO = new SaveInquiryToHisVO();
+        saveInquiryToHisVO.setContentList(contentList);
+        tranServiceClient.saveInquiryToHis(saveInquiryToHisVO);
+        
+        return saveInquiryDTO;
+    }
+
+    /**
+     * 问诊记录回显
+     *
+     * @param readInquiryVO
+     * @return
+     */
+    public ReadInquiryDTO readInquiry(ReadInquiryVO readInquiryVO) {
+        ReadInquiryDTO readInquiryDTO = new ReadInquiryDTO();
+        QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        queryWrapper.eq("hospital_id", readInquiryVO.getHospitalId());
+        queryWrapper.eq("hospital_dept_id", readInquiryVO.getHospitalDeptId());
+        queryWrapper.eq("doctor_id", readInquiryVO.getDoctorId());
+        queryWrapper.eq("patient_id", readInquiryVO.getPatientId());
+        queryWrapper.eq("inquiry_code", readInquiryVO.getInquiryCode());
+        InquiryInfo inquiryInfo = this.getOne(queryWrapper);
+
+        if (inquiryInfo != null) {
+            readInquiryDTO.setDataJson(inquiryInfo.getDataJson());
+            BeanUtil.copyProperties(inquiryInfo, readInquiryDTO);
+            
+            QueryWrapper<InquiryDetail> inquiryDetailQe = new QueryWrapper<>();
+            inquiryDetailQe.eq("inquiry_id", inquiryInfo.getId());
+            readInquiryDTO.setDetailList(inquiryDetailFacade.list(inquiryDetailQe).stream().sorted((a,b)->a.getType()-b.getType()).collect(Collectors.toList()));
+        }
+
+        return readInquiryDTO;
+    }
+
+    /**
+     * 获取最近一次其他史信息
+     *
+     * @param getLastOtherVO
+     * @return
+     */
+    public GetLastOtherDTO getLastOther(GetLastOtherVO getLastOtherVO) {
+    	GetLastOtherDTO getLastOtherDTO = new GetLastOtherDTO();
+    	
+    	HospitalInfoDTO hospitalInfoDTO = hospitalInfoFacade.getHospitalByCode(getLastOtherVO.getHospitalCode());
+    	
+    	PatientInfoVO patientInfoVO = new PatientInfoVO();
+    	patientInfoVO.setHospitalCode(getLastOtherVO.getHospitalCode());
+    	patientInfoVO.setPatientCode(getLastOtherVO.getPatientCode());
+    	PatientInfoDTO patientInfoDTO = patientInfoFacade.getPatientInfo(patientInfoVO);
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("hospitalId", hospitalInfoDTO.getId());
+        map.put("patientId", patientInfoDTO.getId());
+        map.put("sign", getLastOtherVO.getSign());
+        InquiryInfo inquiryInfo = baseMapper.getPatientLast(map);
+
+        if (inquiryInfo != null) {
+        	getLastOtherDTO.setDataJson(inquiryInfo.getDataJson());
+        	
+        	QueryWrapper<InquiryDetail> inquiryDetailQe = new QueryWrapper<>();
+            inquiryDetailQe.eq("inquiry_id", inquiryInfo.getId());
+            inquiryDetailQe.eq("type", 3);
+            InquiryDetail inquiryDetail = inquiryDetailFacade.getOne(inquiryDetailQe);
+            if(inquiryDetail!=null){
+            	getLastOtherDTO.setOtherStr(inquiryDetail.getContent());
+            }
+        }
+        return getLastOtherDTO;
+    }
+
+    /**
+     * 历史病历列表
+     *
+     * @param hisInquirysVO
+     * @return
+     */
+    public List<HisInquiryDTO> hisInquirys(HisInquirysVO hisInquirysVO) {
+        QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        queryWrapper.eq("hospital_id", hisInquirysVO.getHospitalId());
+        if(hisInquirysVO.getHospitalDeptId()!=null){
+        	queryWrapper.eq("hospital_dept_id", hisInquirysVO.getHospitalDeptId());
+        }
+        if(hisInquirysVO.getDoctorId()!=null){
+        	queryWrapper.eq("doctor_id", hisInquirysVO.getDoctorId());
+        }
+        if (hisInquirysVO.getPatientId() != null) {
+            queryWrapper.eq("patient_id", hisInquirysVO.getPatientId());
+        }
+        if (hisInquirysVO.getType() != null) {
+            queryWrapper.eq("type", hisInquirysVO.getType());
+        }
+        if (hisInquirysVO.getSign() != null) {
+            queryWrapper.eq("sign", hisInquirysVO.getSign());
+        }
+        if (hisInquirysVO.getStartDate() != null) {
+            queryWrapper.ge("gmt_create", hisInquirysVO.getStartDate());
+        }
+        if (hisInquirysVO.getEndDate() != null) {
+            queryWrapper.le("gmt_create", hisInquirysVO.getEndDate());
+        }
+        if (hisInquirysVO.getOrderType() == 1) {
+            queryWrapper.orderByDesc("gmt_modified");
+        } else if (hisInquirysVO.getOrderType() == 2) {
+            queryWrapper.orderByAsc("gmt_modified");
+        }
+        List<InquiryInfo> inquiryInfoList = this.list(queryWrapper);
+        if (inquiryInfoList.size() == 0) {
+            return null;
+        }
+
+        List<Long> hospitalDeptIdList = inquiryInfoList.stream().map(i -> i.getHospitalDeptId()).collect(Collectors.toList());
+        List<Long> doctorIdList = inquiryInfoList.stream().map(i -> i.getDoctorId()).collect(Collectors.toList());
+        List<Long> patientIdList = inquiryInfoList.stream().map(i -> i.getPatientId()).collect(Collectors.toList());
+        List<Long> inquiryIdList = inquiryInfoList.stream().map(i -> i.getId()).collect(Collectors.toList());
+
+        Map<Long, HospitalDept> hospitalDeptMap = hospitalDeptFacade.hospitalDeptInfoMapByIds(hospitalDeptIdList);
+        Map<Long, DoctorInfo> doctorInfoMap = doctorInfoFacade.doctorInfoMapByIds(doctorIdList);
+        Map<Long, PatientInfo> patientInfoMap = patientInfoFacade.patientInfoMapByIds(patientIdList);
+        Map<Long, List<InquiryDetail>> inquiryDetailMap = inquiryDetailFacade.getDetailsByInquryIds(inquiryIdList);
+
+        List<HisInquiryDTO> hisInquiryDTOList = new ArrayList<>();
+        inquiryInfoList.forEach(i -> {
+            HisInquiryDTO hisInquiryDTO = new HisInquiryDTO();
+            BeanUtil.copyProperties(i, hisInquiryDTO);
+            hisInquiryDTO.setInquiryDate(i.getGmtModified());
+            hisInquiryDTO.setInquiryTime(i.getGmtModified());
+            hisInquiryDTO.setHospitalDeptName(Optional.ofNullable(hospitalDeptMap.get(i.getHospitalDeptId())).map(t -> t.getName()).orElse(null));
+            hisInquiryDTO.setDoctorName(Optional.ofNullable(doctorInfoMap.get(i.getDoctorId())).map(t -> t.getName()).orElse(null));
+            PatientInfo patientInfo = patientInfoMap.get(i.getPatientId());
+            if (patientInfo != null) {
+                hisInquiryDTO.setPatientName(patientInfo.getName());
+                hisInquiryDTO.setPatientIdNo(patientInfo.getIdNo());
+                hisInquiryDTO.setPatientSex(SexTypeEnum.getName(patientInfo.getSex()));
+                hisInquiryDTO.setPatientAge(DateUtil.yearCompare(patientInfo.getBirthday(), DateUtil.now()));
+            }
+
+            hisInquiryDTO.setDetailList(inquiryDetailMap.get(i.getId()));
+            hisInquiryDTOList.add(hisInquiryDTO);
+        });
+
+
+        return hisInquiryDTOList;
+    }
+    
+    /**
+     * 对接-历史病历列表
+     *
+     * @param hisInquirysForDjVO
+     * @return
+     */
+    public List<HisInquirysForDjDTO> hisInquirysForDj(HisInquirysForDjVO hisInquirysForDjVO) {
+    	QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        queryWrapper.eq("hospital_id", hisInquirysForDjVO.getHospitalId());
+        if(hisInquirysForDjVO.getHospitalDeptId()!=null){
+        	queryWrapper.eq("hospital_dept_id", hisInquirysForDjVO.getHospitalDeptId());
+        }
+        if(hisInquirysForDjVO.getDoctorId()!=null){
+        	queryWrapper.eq("doctor_id", hisInquirysForDjVO.getDoctorId());
+        }
+        if (hisInquirysForDjVO.getPatientId() != null) {
+            queryWrapper.eq("patient_id", hisInquirysForDjVO.getPatientId());
+        }
+        if(StringUtil.isNotBlank(hisInquirysForDjVO.getInquiryCode())){
+        	queryWrapper.eq("inquiry_code", hisInquirysForDjVO.getInquiryCode());
+        }
+        if (hisInquirysForDjVO.getType() != null) {
+            queryWrapper.eq("type", hisInquirysForDjVO.getType());
+        }
+        if (hisInquirysForDjVO.getSign() != null) {
+            queryWrapper.eq("sign", hisInquirysForDjVO.getSign());
+        }
+        if (hisInquirysForDjVO.getStartDate() != null) {
+            queryWrapper.ge("gmt_create", hisInquirysForDjVO.getStartDate());
+        }
+        if (hisInquirysForDjVO.getEndDate() != null) {
+            queryWrapper.le("gmt_create", hisInquirysForDjVO.getEndDate());
+        }
+        if (hisInquirysForDjVO.getOrderType() == 1) {
+            queryWrapper.orderByDesc("gmt_modified");
+        } else if (hisInquirysForDjVO.getOrderType() == 2) {
+            queryWrapper.orderByAsc("gmt_modified");
+        }
+        List<InquiryInfo> inquiryInfoList = this.list(queryWrapper);
+        if (ListUtil.isEmpty(inquiryInfoList)) {
+            return null;
+        }
+        
+        Map<Long, List<InquiryDetail>> inquiryDetailMap = inquiryDetailFacade.getDetailsByInquryIds(inquiryInfoList.stream().map(i -> i.getId()).collect(Collectors.toList()));
+        List<HisInquirysForDjDTO> hisInquirysForDjDTOList = BeanUtil.listCopyTo(inquiryInfoList, HisInquirysForDjDTO.class);
+        
+        hisInquirysForDjDTOList.forEach(i->{
+        	i.setContentList(inquiryDetailMap.get(i.getId()).stream().map(k->k.getContentValue()).collect(Collectors.toList()));
+        });
+        
+        return hisInquirysForDjDTOList;
+    }
+    
+
+    /**
+     * 病历详情
+     *
+     * @param getInquiryDetailVO
+     * @return
+     */
+    public GetInquiryDetailDTO getInquiryDetail(GetInquiryDetailVO getInquiryDetailVO) {
+        GetInquiryDetailDTO getInquiryDetailDTO = new GetInquiryDetailDTO();
+
+        List<InquiryDetail> inquiryDetailList = inquiryDetailFacade.getListByInquryId(getInquiryDetailVO.getInquiryId());
+
+        getInquiryDetailDTO.setInquiryDetailList(inquiryDetailList);
+
+        return getInquiryDetailDTO;
+    }
+
+}

+ 242 - 242
icss-service/src/main/java/com/diagbot/facade/LisExcelResFacade.java

@@ -1,242 +1,242 @@
-package com.diagbot.facade;
-
-import java.io.InputStream;
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.lang.time.DateFormatUtils;
-import org.apache.poi.hssf.usermodel.HSSFDateUtil;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.web.multipart.MultipartFile;
-
-import com.diagbot.client.TranServiceClient;
-import com.diagbot.dto.LisConfigDTO;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.exception.CommonException;
-import com.diagbot.util.StringUtil;
-import com.diagbot.vo.LisExcelResVO;
-import com.diagbot.vo.LisExcelWrapperVO;
-import com.diagbot.vo.LisHospitalCodeVO;
-import com.diagbot.vo.LitAssayVO;
-
-/**
- * @author wangfeng
- * @Description: 化验导入
- * @date 2018年11月29日 上午10:16:35
- */
-@Component
-public class LisExcelResFacade {
-
-	/*@Autowired
-	LisConfigFacade lisConfigFacade;*/
-	@Autowired
-	TranServiceClient tranServiceClient;
-
-	public RespDTO<LitAssayVO> lisExcelAnalysis(MultipartFile file, LisHospitalCodeVO lisHospitalCodeVO, HttpServletRequest request) {
-
-		List<String> messages = new ArrayList<>();
-		List<LisExcelWrapperVO> lisExcelWrapperList = new ArrayList<>();
-		InputStream inputStream = null;
-		Workbook wb = null;
-		try {
-			if (!file.isEmpty()) {
-				inputStream = file.getInputStream();
-				if (inputStream.available() > 512000) {
-					messages.add("化验文件最大支持500KB!");
-				} else {
-					String fileName = file.getOriginalFilename();
-					if (fileName.lastIndexOf(".") != -1) {
-						String type = fileName.substring(fileName.lastIndexOf("."));
-						if (type.equals(".xls")) {
-							wb = new HSSFWorkbook(inputStream);
-						} else if (type.equals(".xlsx")) {
-							wb = new XSSFWorkbook(inputStream);
-						}
-						if (wb != null) {
-							Sheet sheet = wb.getSheetAt(0);
-							int count = 0;
-							String mealName, itemName, unit, value, max, min, time;
-							for (Row row : sheet) {
-								count++;
-								try {
-									if (row != null) {
-										mealName = getValue(row.getCell(0)).trim().replace(" ", "");
-										itemName = getValue(row.getCell(1)).trim().replace(" ", "");
-										unit = getValue(row.getCell(2)).trim();
-										value = getValue(row.getCell(3)).trim();
-										min = getValue(row.getCell(4)).trim();
-										max = getValue(row.getCell(5)).trim();
-										time = getValue(row.getCell(6)).trim();
-										type = getValue(row.getCell(7)).trim();
-									} else {
-										mealName = null;
-										itemName = null;
-										unit = null;
-										value = null;
-										min = null;
-										max = null;
-										time = null;
-										type = null;
-									}
-
-									if (StringUtil.isEmpty(mealName) && StringUtil.isEmpty(itemName)
-											&& StringUtil.isEmpty(value) && StringUtil.isEmpty(type)) {
-										continue;
-									}
-
-									if (count == 1 && mealName.equals("套餐名")) {
-										continue;
-									}
-
-									if (StringUtil.isEmpty(mealName) || StringUtil.isEmpty(itemName)
-											|| StringUtil.isEmpty(value) || StringUtil.isEmpty(type)) {
-										messages.add("第" + count + "行数据不规范,套餐名、项目名、结果、是否异常四项必填;");
-										continue;
-									}
-									LisExcelWrapperVO lisExcelWrapper = new LisExcelWrapperVO();
-
-									lisExcelWrapper.setMealName(mealName);
-									lisExcelWrapper.setItemName(itemName);
-									//  lisExcelWrapper.setUniqueName(uniqueName);
-									lisExcelWrapper.setUnit(unit);
-									lisExcelWrapper.setValue(value);
-									lisExcelWrapper.setMax(max);
-									lisExcelWrapper.setMin(min);
-									lisExcelWrapper.setTime(time);
-									lisExcelWrapper.setType(type);
-									lisExcelWrapperList.add(lisExcelWrapper);
-								} catch (Exception e) {
-									e.printStackTrace();
-									throw new CommonException(CommonErrorCode.NOT_EXISTS, e.toString());
-									// logger.error("",e);
-								}
-							}
-						} else {
-							// throw new
-							// CommonException(CommonErrorCode.NOT_EXISTS,
-							// "非excel文件无法解析!");
-							messages.add("非excel文件无法解析!");
-						}
-					} else {
-						// throw new CommonException(CommonErrorCode.NOT_EXISTS,
-						// "未知文件无法解析!");
-						messages.add("未知文件无法解析!");
-					}
-				}
-			} else {
-				// throw new CommonException(CommonErrorCode.NOT_EXISTS,
-				// "无文件上传!");
-				messages.add("无文件上传!");
-			}
-			//匹配公表名
-			RespDTO<List<LisConfigDTO>> litDatas = tranServiceClient.getLisConfigByhospitalId(lisHospitalCodeVO);
-			 if (litDatas == null || !"0".equals(litDatas.code)) {
-	                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
-	                        "获取匹配公表名信息失败");
-	            }
-	        List<LisConfigDTO> litData = litDatas.data;
-	        //导入的数据跟公表数据进行配对
-			if(litData.size()>0){
-				List<LisExcelWrapperVO> lisExcelWrapperListNew = new ArrayList<>();
-				for (LisExcelWrapperVO lisExcelWrapperNew : lisExcelWrapperList) {
-					
-					for (LisConfigDTO LisNew : litData) {
-						if (LisNew.getItemName() != null) {
-							if (LisNew.getMealName().equals(lisExcelWrapperNew.getMealName())
-									&& LisNew.getItemName().equals(lisExcelWrapperNew.getItemName())) {
-								lisExcelWrapperNew.setUniqueName(LisNew.getUniqueName());
-							}
-						} else {
-							if (LisNew.getMealName().equals(lisExcelWrapperNew.getMealName())) {
-								lisExcelWrapperNew.setUniquemealName(LisNew.getUniqueName());
-							}
-						}
-
-					}
-					lisExcelWrapperListNew.add(lisExcelWrapperNew);
-				}
-				lisExcelWrapperList = lisExcelWrapperListNew;
-			}
-			
-			
-			Map<String, List<LisExcelWrapperVO>> lixExMap = lisExcelWrapperList.stream()
-					.collect(Collectors.groupingBy(LisExcelWrapperVO::getMealName));
-			List<LisExcelResVO> LisExcelReslist = new ArrayList<LisExcelResVO>();
-			for (String str : lixExMap.keySet()) {
-				LisExcelResVO lisExcelResVO = new LisExcelResVO();
-				lisExcelResVO.setMenus(str);
-				lisExcelResVO.setLisExcelItem(lixExMap.get(str));
-				
-				LisExcelReslist.add(lisExcelResVO);
-			}
-
-			LitAssayVO litAssay = new LitAssayVO();
-			litAssay.setMessages(messages);
-			litAssay.setLisExcelRes(LisExcelReslist);
-			return RespDTO.onSuc(litAssay);
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw new CommonException(CommonErrorCode.NOT_EXISTS, "化验excel文件解析出错!");
-			// return response.failure("化验excel文件解析出错!");
-		} finally {
-			try {
-				if (inputStream != null) {
-					inputStream.close();
-				}
-				if (wb != null) {
-					wb.close();
-				}
-			} catch (Exception e) {
-			}
-		}
-	}
-
-	private String getValue(Cell cell) {
-		try {
-			Object obj = null;
-			switch (cell.getCellTypeEnum()) {
-			case BOOLEAN:
-				obj = cell.getBooleanCellValue();
-				break;
-			case ERROR:
-				obj = cell.getErrorCellValue();
-				break;
-			case NUMERIC:
-				if (HSSFDateUtil.isCellDateFormatted(cell)) {
-					Date date = cell.getDateCellValue();
-					obj = DateFormatUtils.format(date, "yyyy-MM-dd");
-				} else {
-					obj = cell.getNumericCellValue();
-					DecimalFormat df = new DecimalFormat();
-					obj = df.format(obj);
-				}
-
-				// obj = cell.getNumericCellValue();
-				break;
-			case STRING:
-				obj = cell.getStringCellValue();
-				break;
-			default:
-				break;
-			}
-			return obj.toString();
-		} catch (Exception e) {
-			return "";
-		}
-	}
-
-}
+package com.diagbot.facade;
+
+import java.io.InputStream;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.commons.lang.time.DateFormatUtils;
+import org.apache.poi.hssf.usermodel.HSSFDateUtil;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.LisConfigDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.LisExcelResVO;
+import com.diagbot.vo.LisExcelWrapperVO;
+import com.diagbot.vo.LisHospitalCodeVO;
+import com.diagbot.vo.LitAssayVO;
+
+/**
+ * @author wangfeng
+ * @Description: 化验导入
+ * @date 2018年11月29日 上午10:16:35
+ */
+@Component
+public class LisExcelResFacade {
+
+	/*@Autowired
+	LisConfigFacade lisConfigFacade;*/
+	@Autowired
+	TranServiceClient tranServiceClient;
+
+	public RespDTO<LitAssayVO> lisExcelAnalysis(MultipartFile file, LisHospitalCodeVO lisHospitalCodeVO, HttpServletRequest request) {
+
+		List<String> messages = new ArrayList<>();
+		List<LisExcelWrapperVO> lisExcelWrapperList = new ArrayList<>();
+		InputStream inputStream = null;
+		Workbook wb = null;
+		try {
+			if (!file.isEmpty()) {
+				inputStream = file.getInputStream();
+				if (inputStream.available() > 512000) {
+					messages.add("化验文件最大支持500KB!");
+				} else {
+					String fileName = file.getOriginalFilename();
+					if (fileName.lastIndexOf(".") != -1) {
+						String type = fileName.substring(fileName.lastIndexOf("."));
+						if (type.equals(".xls")) {
+							wb = new HSSFWorkbook(inputStream);
+						} else if (type.equals(".xlsx")) {
+							wb = new XSSFWorkbook(inputStream);
+						}
+						if (wb != null) {
+							Sheet sheet = wb.getSheetAt(0);
+							int count = 0;
+							String mealName, itemName, unit, value, max, min, time;
+							for (Row row : sheet) {
+								count++;
+								try {
+									if (row != null) {
+										mealName = getValue(row.getCell(0)).trim().replace(" ", "");
+										itemName = getValue(row.getCell(1)).trim().replace(" ", "");
+										unit = getValue(row.getCell(2)).trim();
+										value = getValue(row.getCell(3)).trim();
+										min = getValue(row.getCell(4)).trim();
+										max = getValue(row.getCell(5)).trim();
+										time = getValue(row.getCell(6)).trim();
+										type = getValue(row.getCell(7)).trim();
+									} else {
+										mealName = null;
+										itemName = null;
+										unit = null;
+										value = null;
+										min = null;
+										max = null;
+										time = null;
+										type = null;
+									}
+
+									if (StringUtil.isEmpty(mealName) && StringUtil.isEmpty(itemName)
+											&& StringUtil.isEmpty(value) && StringUtil.isEmpty(type)) {
+										continue;
+									}
+
+									if (count == 1 && mealName.equals("套餐名")) {
+										continue;
+									}
+
+									if (StringUtil.isEmpty(mealName) || StringUtil.isEmpty(itemName)
+											|| StringUtil.isEmpty(value) || StringUtil.isEmpty(type)) {
+										messages.add("第" + count + "行数据不规范,套餐名、项目名、结果、是否异常四项必填;");
+										continue;
+									}
+									LisExcelWrapperVO lisExcelWrapper = new LisExcelWrapperVO();
+
+									lisExcelWrapper.setMealName(mealName);
+									lisExcelWrapper.setItemName(itemName);
+									//  lisExcelWrapper.setUniqueName(uniqueName);
+									lisExcelWrapper.setUnit(unit);
+									lisExcelWrapper.setValue(value);
+									lisExcelWrapper.setMax(max);
+									lisExcelWrapper.setMin(min);
+									lisExcelWrapper.setTime(time);
+									lisExcelWrapper.setType(type);
+									lisExcelWrapperList.add(lisExcelWrapper);
+								} catch (Exception e) {
+									e.printStackTrace();
+									throw new CommonException(CommonErrorCode.NOT_EXISTS, e.toString());
+									// logger.error("",e);
+								}
+							}
+						} else {
+							// throw new
+							// CommonException(CommonErrorCode.NOT_EXISTS,
+							// "非excel文件无法解析!");
+							messages.add("非excel文件无法解析!");
+						}
+					} else {
+						// throw new CommonException(CommonErrorCode.NOT_EXISTS,
+						// "未知文件无法解析!");
+						messages.add("未知文件无法解析!");
+					}
+				}
+			} else {
+				// throw new CommonException(CommonErrorCode.NOT_EXISTS,
+				// "无文件上传!");
+				messages.add("无文件上传!");
+			}
+			//匹配公表名
+			RespDTO<List<LisConfigDTO>> litDatas = tranServiceClient.getLisConfigByhospitalId(lisHospitalCodeVO);
+			 if (litDatas == null || !"0".equals(litDatas.code)) {
+	                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
+	                        "获取匹配公表名信息失败");
+	            }
+	        List<LisConfigDTO> litData = litDatas.data;
+	        //导入的数据跟公表数据进行配对
+			if(litData.size()>0){
+				List<LisExcelWrapperVO> lisExcelWrapperListNew = new ArrayList<>();
+				for (LisExcelWrapperVO lisExcelWrapperNew : lisExcelWrapperList) {
+					
+					for (LisConfigDTO LisNew : litData) {
+						if (LisNew.getItemName() != null) {
+							if (LisNew.getMealName().equals(lisExcelWrapperNew.getMealName())
+									&& LisNew.getItemName().equals(lisExcelWrapperNew.getItemName())) {
+								lisExcelWrapperNew.setUniqueName(LisNew.getUniqueName());
+							}
+						} else {
+							if (LisNew.getMealName().equals(lisExcelWrapperNew.getMealName())) {
+								lisExcelWrapperNew.setUniquemealName(LisNew.getUniqueName());
+							}
+						}
+
+					}
+					lisExcelWrapperListNew.add(lisExcelWrapperNew);
+				}
+				lisExcelWrapperList = lisExcelWrapperListNew;
+			}
+			
+			
+			Map<String, List<LisExcelWrapperVO>> lixExMap = lisExcelWrapperList.stream()
+					.collect(Collectors.groupingBy(LisExcelWrapperVO::getMealName));
+			List<LisExcelResVO> LisExcelReslist = new ArrayList<LisExcelResVO>();
+			for (String str : lixExMap.keySet()) {
+				LisExcelResVO lisExcelResVO = new LisExcelResVO();
+				lisExcelResVO.setMenus(str);
+				lisExcelResVO.setLisExcelItem(lixExMap.get(str));
+				
+				LisExcelReslist.add(lisExcelResVO);
+			}
+
+			LitAssayVO litAssay = new LitAssayVO();
+			litAssay.setMessages(messages);
+			litAssay.setLisExcelRes(LisExcelReslist);
+			return RespDTO.onSuc(litAssay);
+		} catch (Exception e) {
+			e.printStackTrace();
+			throw new CommonException(CommonErrorCode.NOT_EXISTS, "化验excel文件解析出错!");
+			// return response.failure("化验excel文件解析出错!");
+		} finally {
+			try {
+				if (inputStream != null) {
+					inputStream.close();
+				}
+				if (wb != null) {
+					wb.close();
+				}
+			} catch (Exception e) {
+			}
+		}
+	}
+
+	private String getValue(Cell cell) {
+		try {
+			Object obj = null;
+			switch (cell.getCellTypeEnum()) {
+			case BOOLEAN:
+				obj = cell.getBooleanCellValue();
+				break;
+			case ERROR:
+				obj = cell.getErrorCellValue();
+				break;
+			case NUMERIC:
+				if (HSSFDateUtil.isCellDateFormatted(cell)) {
+					Date date = cell.getDateCellValue();
+					obj = DateFormatUtils.format(date, "yyyy-MM-dd");
+				} else {
+					obj = cell.getNumericCellValue();
+					DecimalFormat df = new DecimalFormat();
+					obj = df.format(obj);
+				}
+
+				// obj = cell.getNumericCellValue();
+				break;
+			case STRING:
+				obj = cell.getStringCellValue();
+				break;
+			default:
+				break;
+			}
+			return obj.toString();
+		} catch (Exception e) {
+			return "";
+		}
+	}
+
+}

+ 42 - 42
icss-service/src/main/java/com/diagbot/facade/PrintRecordFacade.java

@@ -1,42 +1,42 @@
-package com.diagbot.facade;
-
-import com.diagbot.entity.PrintRecord;
-import com.diagbot.service.impl.PrintRecordServiceImpl;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.GsonUtil;
-import com.diagbot.vo.PrintRecordsVO;
-import org.springframework.stereotype.Component;
-
-/**
- * @author wangfeng
- * @Description: 打印记录
- * @date 2018年11月19日 上午10:04:42
- */
-@Component
-public class PrintRecordFacade extends PrintRecordServiceImpl {
-
-    /**
-     * 保存打印记录
-     *
-     * @param printRecordsVO
-     * @return boolean
-     */
-    public boolean savePrintRecord(PrintRecordsVO printRecordsVO) {
-        //获取传入的参数值,保存在数据表中
-        PrintRecord printRecord = new PrintRecord();
-        printRecord.setCreator(printRecordsVO.getDoctorId().toString());//创建人id
-        printRecord.setDoctorId(printRecordsVO.getDoctorId());//医生
-        printRecord.setGmtCreate(DateUtil.now());//创建时间
-        printRecord.setName(printRecordsVO.getName());//打印的名称
-        printRecord.setHospitalDeptId(printRecordsVO.getHospitalDeptId());//部门id
-        printRecord.setHospitalId(printRecordsVO.getHospitalId());//医院id
-        printRecord.setInquiryCode(printRecordsVO.getInquiryCode());//就诊号
-        printRecord.setPatientId(printRecordsVO.getPatientId());//患者id
-        printRecord.setContent(GsonUtil.toJson(printRecordsVO.getContent()));//文件展现
-        printRecord.setDataJson(printRecordsVO.getDataJson());//打印数据json
-        boolean res = save(printRecord);
-        return res;
-    }
-
-
-}
+package com.diagbot.facade;
+
+import com.diagbot.entity.PrintRecord;
+import com.diagbot.service.impl.PrintRecordServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.GsonUtil;
+import com.diagbot.vo.PrintRecordsVO;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author wangfeng
+ * @Description: 打印记录
+ * @date 2018年11月19日 上午10:04:42
+ */
+@Component
+public class PrintRecordFacade extends PrintRecordServiceImpl {
+
+    /**
+     * 保存打印记录
+     *
+     * @param printRecordsVO
+     * @return boolean
+     */
+    public boolean savePrintRecord(PrintRecordsVO printRecordsVO) {
+        //获取传入的参数值,保存在数据表中
+        PrintRecord printRecord = new PrintRecord();
+        printRecord.setCreator(printRecordsVO.getDoctorId().toString());//创建人id
+        printRecord.setDoctorId(printRecordsVO.getDoctorId());//医生
+        printRecord.setGmtCreate(DateUtil.now());//创建时间
+        printRecord.setName(printRecordsVO.getName());//打印的名称
+        printRecord.setHospitalDeptId(printRecordsVO.getHospitalDeptId());//部门id
+        printRecord.setHospitalId(printRecordsVO.getHospitalId());//医院id
+        printRecord.setInquiryCode(printRecordsVO.getInquiryCode());//就诊号
+        printRecord.setPatientId(printRecordsVO.getPatientId());//患者id
+        printRecord.setContent(GsonUtil.toJson(printRecordsVO.getContent()));//文件展现
+        printRecord.setDataJson(printRecordsVO.getDataJson());//打印数据json
+        boolean res = save(printRecord);
+        return res;
+    }
+
+
+}

+ 170 - 170
icss-service/src/main/java/com/diagbot/facade/TemplateInfoFacade.java

@@ -1,170 +1,170 @@
-package com.diagbot.facade;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.diagbot.dto.TemplateInfoDTO;
-import com.diagbot.entity.TemplateInfo;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.exception.CommonException;
-import com.diagbot.service.impl.TemplateInfoServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.GsonUtil;
-import com.diagbot.vo.TemplateInfoRevampVO;
-import com.diagbot.vo.TemplateInfoVO;
-import com.diagbot.vo.TemplateInfosIdVO;
-import com.diagbot.vo.TemplateInfosVO;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author wangfeng
- * @Description: 病历模板
- * @date 2018年11月16日 上午11:24:36
- */
-@Component
-public class TemplateInfoFacade extends TemplateInfoServiceImpl {
-
-    /**
-     * @param templateInfoVO
-     * @return 医生病历模板信息
-     */
-    public List<TemplateInfoDTO> findByDoctorIdTemplates(TemplateInfoVO templateInfoVO) {
-		//根据传入的医生id和部门id还有医院id在数据表中查出相应的模板数据
-		
-        QueryWrapper<TemplateInfo> templateInfoQuery = new QueryWrapper<>();
-        Map<String, Object> mapAll = new HashMap<>();
-        mapAll.put("hospital_dept_id", templateInfoVO.getHospitalDeptId());
-        mapAll.put("doctor_id", templateInfoVO.getDoctorId());
-        mapAll.put("hospital_id", templateInfoVO.getHospitalId());
-        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
-        mapAll.put("type", templateInfoVO.getType());
-        if(templateInfoVO.getSex()!=null){
-        	templateInfoQuery.allEq(mapAll).in("sex", 3,templateInfoVO.getSex()).orderByDesc("gmt_create");
-        }else {
-        	templateInfoQuery.allEq(mapAll).orderByDesc("gmt_create");
-		} 
-        List<TemplateInfoDTO> data = new ArrayList<TemplateInfoDTO>();
-        List<TemplateInfo> datas = list(templateInfoQuery);
-		//过滤
-        data = BeanUtil.listCopyTo(datas, TemplateInfoDTO.class);
-
-        return data;
-    }
-
-    /**
-     * 根据模板id 修改模板名
-     *
-     * @param templateInfoRevampVO
-     * @return
-     */
-    public boolean updateByIdUsName(TemplateInfoRevampVO templateInfoRevampVO) {
-        //1.先判断数据是否存在有效
-        QueryWrapper<TemplateInfo> templateInfoFand = new QueryWrapper<>();
-        templateInfoFand.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("id", templateInfoRevampVO.getId());
-        int sum = count(templateInfoFand);
-        if (sum == 0) {
-            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该模板不存在");
-        }
-        //2.再判断该医生下模板名是否重复重在
-        QueryWrapper<TemplateInfo> templates = new QueryWrapper<>();
-        Map<String, Object> mapAll = new HashMap<>();
-        mapAll.put("hospital_dept_id", templateInfoRevampVO.getHospitalDeptId());
-        mapAll.put("doctor_id", templateInfoRevampVO.getDoctorId());
-        mapAll.put("hospital_id", templateInfoRevampVO.getHospitalId());
-        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
-        mapAll.put("name", templateInfoRevampVO.getModeName());
-        mapAll.put("type", templateInfoRevampVO.getType());
-        templates.allEq(mapAll);
-        TemplateInfo datas = getOne(templates);
-        if (datas != null) {
-            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该模板名已存在");
-        }
-        //3.修改表数据的模板名字
-        TemplateInfo templateInfo = new TemplateInfo();
-        templateInfo.setId(templateInfoRevampVO.getId());//模板id
-        templateInfo.setName(templateInfoRevampVO.getModeName());//模板名称
-        templateInfo.setGmtModified(DateUtil.now());//修改时间
-        boolean res = updateById(templateInfo);
-        if (!res) {
-            throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
-        }
-
-        return res;
-    }
-
-    /**
-     * 保存模板
-     *
-     * @param templateInfosVO
-     * @return
-     */
-    public boolean saveTemplateInfo(TemplateInfosVO templateInfosVO) {
-        //1.判断该医生下是否存在模板名相同的数据
-        TemplateInfo templateInfo = new TemplateInfo();
-        QueryWrapper<TemplateInfo> templateInfoFand = new QueryWrapper<>();
-        Map<String, Object> mapAll = new HashMap<>();
-        mapAll.put("hospital_dept_id", templateInfosVO.getHospitalDeptId());
-        mapAll.put("doctor_id", templateInfosVO.getDoctorId());
-        mapAll.put("hospital_id", templateInfosVO.getHospitalId());
-        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
-        mapAll.put("name", templateInfosVO.getModeName());
-        mapAll.put("type", templateInfosVO.getModeType());
-        
-        templateInfoFand.allEq(mapAll);
-        int sum = count(templateInfoFand);
-        if (sum != 0) {
-            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该模板名存在");
-        }
-        //2.获取传入的数据,保存到数据表中。
-        templateInfo.setCreator(templateInfosVO.getDoctorId().toString());//创建人id
-        templateInfo.setDoctorId(templateInfosVO.getDoctorId());//医生id
-        templateInfo.setGmtCreate(DateUtil.now());//创建时间
-        templateInfo.setHospitalDeptId(templateInfosVO.getHospitalDeptId());//部门id
-        templateInfo.setHospitalId(templateInfosVO.getHospitalId());//医院id
-        templateInfo.setSex(templateInfosVO.getSex());
-        templateInfo.setPreview(GsonUtil.toJson(templateInfosVO.getPreview()));//文本的展示
-        templateInfo.setDataJson(templateInfosVO.getDataJson());//页面json
-        templateInfo.setName(templateInfosVO.getModeName());//模板名称
-        templateInfo.setType(templateInfosVO.getModeType());//模板类型
-        boolean res = save(templateInfo);
-        if (!res) {
-            throw new CommonException(CommonErrorCode.INSERT_DATA_FAILED);
-        }
-
-        return res;
-    }
-
-    /**
-     * 根据模板id批量删除模板
-     *
-     * @param templateInfosIdVO
-     * @return
-     */
-    public boolean cancelTemplateInfo(TemplateInfosIdVO templateInfosIdVO) {
-        //1.获取传入的ids数据
-        String ids = templateInfosIdVO.getIds();
-        //2.截取到最后一个
-        String substring = ids.substring(0, ids.length());
-        //System.out.println(substring);
-        //3.以逗号分割
-        String[] splitIds = substring.split(",");
-        //把分割的id数据传入对象中,在表中批量删除
-        UpdateWrapper<TemplateInfo> templateInfoNew = new UpdateWrapper<>();
-        templateInfoNew.in("id", splitIds)
-                .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .set("is_deleted", IsDeleteEnum.Y.getKey())
-                //.set("modifier",UserUtils.getCurrentPrincipleID())
-                .set("gmt_modified", DateUtil.now());
-        boolean res = update(new TemplateInfo(), templateInfoNew);
-
-        return res;
-    }
-
-}
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.entity.TemplateInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.TemplateInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.GsonUtil;
+import com.diagbot.vo.TemplateInfoRevampVO;
+import com.diagbot.vo.TemplateInfoVO;
+import com.diagbot.vo.TemplateInfosIdVO;
+import com.diagbot.vo.TemplateInfosVO;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author wangfeng
+ * @Description: 病历模板
+ * @date 2018年11月16日 上午11:24:36
+ */
+@Component
+public class TemplateInfoFacade extends TemplateInfoServiceImpl {
+
+    /**
+     * @param templateInfoVO
+     * @return 医生病历模板信息
+     */
+    public List<TemplateInfoDTO> findByDoctorIdTemplates(TemplateInfoVO templateInfoVO) {
+		//根据传入的医生id和部门id还有医院id在数据表中查出相应的模板数据
+		
+        QueryWrapper<TemplateInfo> templateInfoQuery = new QueryWrapper<>();
+        Map<String, Object> mapAll = new HashMap<>();
+        mapAll.put("hospital_dept_id", templateInfoVO.getHospitalDeptId());
+        mapAll.put("doctor_id", templateInfoVO.getDoctorId());
+        mapAll.put("hospital_id", templateInfoVO.getHospitalId());
+        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
+        mapAll.put("type", templateInfoVO.getType());
+        if(templateInfoVO.getSex()!=null){
+        	templateInfoQuery.allEq(mapAll).in("sex", 3,templateInfoVO.getSex()).orderByDesc("gmt_create");
+        }else {
+        	templateInfoQuery.allEq(mapAll).orderByDesc("gmt_create");
+		} 
+        List<TemplateInfoDTO> data = new ArrayList<TemplateInfoDTO>();
+        List<TemplateInfo> datas = list(templateInfoQuery);
+		//过滤
+        data = BeanUtil.listCopyTo(datas, TemplateInfoDTO.class);
+
+        return data;
+    }
+
+    /**
+     * 根据模板id 修改模板名
+     *
+     * @param templateInfoRevampVO
+     * @return
+     */
+    public boolean updateByIdUsName(TemplateInfoRevampVO templateInfoRevampVO) {
+        //1.先判断数据是否存在有效
+        QueryWrapper<TemplateInfo> templateInfoFand = new QueryWrapper<>();
+        templateInfoFand.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", templateInfoRevampVO.getId());
+        int sum = count(templateInfoFand);
+        if (sum == 0) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该模板不存在");
+        }
+        //2.再判断该医生下模板名是否重复重在
+        QueryWrapper<TemplateInfo> templates = new QueryWrapper<>();
+        Map<String, Object> mapAll = new HashMap<>();
+        mapAll.put("hospital_dept_id", templateInfoRevampVO.getHospitalDeptId());
+        mapAll.put("doctor_id", templateInfoRevampVO.getDoctorId());
+        mapAll.put("hospital_id", templateInfoRevampVO.getHospitalId());
+        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
+        mapAll.put("name", templateInfoRevampVO.getModeName());
+        mapAll.put("type", templateInfoRevampVO.getType());
+        templates.allEq(mapAll);
+        TemplateInfo datas = getOne(templates);
+        if (datas != null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该模板名已存在");
+        }
+        //3.修改表数据的模板名字
+        TemplateInfo templateInfo = new TemplateInfo();
+        templateInfo.setId(templateInfoRevampVO.getId());//模板id
+        templateInfo.setName(templateInfoRevampVO.getModeName());//模板名称
+        templateInfo.setGmtModified(DateUtil.now());//修改时间
+        boolean res = updateById(templateInfo);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
+        }
+
+        return res;
+    }
+
+    /**
+     * 保存模板
+     *
+     * @param templateInfosVO
+     * @return
+     */
+    public boolean saveTemplateInfo(TemplateInfosVO templateInfosVO) {
+        //1.判断该医生下是否存在模板名相同的数据
+        TemplateInfo templateInfo = new TemplateInfo();
+        QueryWrapper<TemplateInfo> templateInfoFand = new QueryWrapper<>();
+        Map<String, Object> mapAll = new HashMap<>();
+        mapAll.put("hospital_dept_id", templateInfosVO.getHospitalDeptId());
+        mapAll.put("doctor_id", templateInfosVO.getDoctorId());
+        mapAll.put("hospital_id", templateInfosVO.getHospitalId());
+        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
+        mapAll.put("name", templateInfosVO.getModeName());
+        mapAll.put("type", templateInfosVO.getModeType());
+        
+        templateInfoFand.allEq(mapAll);
+        int sum = count(templateInfoFand);
+        if (sum != 0) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该模板名存在");
+        }
+        //2.获取传入的数据,保存到数据表中。
+        templateInfo.setCreator(templateInfosVO.getDoctorId().toString());//创建人id
+        templateInfo.setDoctorId(templateInfosVO.getDoctorId());//医生id
+        templateInfo.setGmtCreate(DateUtil.now());//创建时间
+        templateInfo.setHospitalDeptId(templateInfosVO.getHospitalDeptId());//部门id
+        templateInfo.setHospitalId(templateInfosVO.getHospitalId());//医院id
+        templateInfo.setSex(templateInfosVO.getSex());
+        templateInfo.setPreview(GsonUtil.toJson(templateInfosVO.getPreview()));//文本的展示
+        templateInfo.setDataJson(templateInfosVO.getDataJson());//页面json
+        templateInfo.setName(templateInfosVO.getModeName());//模板名称
+        templateInfo.setType(templateInfosVO.getModeType());//模板类型
+        boolean res = save(templateInfo);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.INSERT_DATA_FAILED);
+        }
+
+        return res;
+    }
+
+    /**
+     * 根据模板id批量删除模板
+     *
+     * @param templateInfosIdVO
+     * @return
+     */
+    public boolean cancelTemplateInfo(TemplateInfosIdVO templateInfosIdVO) {
+        //1.获取传入的ids数据
+        String ids = templateInfosIdVO.getIds();
+        //2.截取到最后一个
+        String substring = ids.substring(0, ids.length());
+        //System.out.println(substring);
+        //3.以逗号分割
+        String[] splitIds = substring.split(",");
+        //把分割的id数据传入对象中,在表中批量删除
+        UpdateWrapper<TemplateInfo> templateInfoNew = new UpdateWrapper<>();
+        templateInfoNew.in("id", splitIds)
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .set("is_deleted", IsDeleteEnum.Y.getKey())
+                //.set("modifier",UserUtils.getCurrentPrincipleID())
+                .set("gmt_modified", DateUtil.now());
+        boolean res = update(new TemplateInfo(), templateInfoNew);
+
+        return res;
+    }
+
+}

+ 50 - 50
icss-service/src/main/java/com/diagbot/facade/VersionDetailFacaed.java

@@ -1,50 +1,50 @@
-package com.diagbot.facade;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.diagbot.dto.VersionDetailDTO;
-import com.diagbot.entity.VersionDetail;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.enums.StatusEnum;
-import com.diagbot.service.impl.VersionDetailServiceImpl;
-import com.diagbot.util.BeanUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 版本详情
- *
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月21日 上午11:38:40
- */
-@Component
-public class VersionDetailFacaed extends VersionDetailServiceImpl {
-
-    /**
-     * 根据版本id查询版本详情
-     *
-     * @param id
-     * @return
-     */
-    public List<VersionDetailDTO> getById(Long id) {
-        QueryWrapper<VersionDetail> versionDetailQuery = new QueryWrapper<>();
-        Map<String, Object> mapAll = new HashMap<>();
-        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
-        mapAll.put("version_id", id);
-        mapAll.put("STATUS", StatusEnum.Enable.getKey());
-        versionDetailQuery.allEq(mapAll).orderByAsc("order_no");
-
-        VersionDetail versionDetail = new VersionDetail();
-        versionDetail.setVersionId(id);
-        List<VersionDetail> datas = list(versionDetailQuery);
-        List<VersionDetailDTO> dataNew = new ArrayList<VersionDetailDTO>();
-        //过滤字段
-        dataNew = BeanUtil.listCopyTo(datas, VersionDetailDTO.class);
-        return dataNew;
-
-    }
-}
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.VersionDetailDTO;
+import com.diagbot.entity.VersionDetail;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.service.impl.VersionDetailServiceImpl;
+import com.diagbot.util.BeanUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 版本详情
+ *
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月21日 上午11:38:40
+ */
+@Component
+public class VersionDetailFacaed extends VersionDetailServiceImpl {
+
+    /**
+     * 根据版本id查询版本详情
+     *
+     * @param id
+     * @return
+     */
+    public List<VersionDetailDTO> getById(Long id) {
+        QueryWrapper<VersionDetail> versionDetailQuery = new QueryWrapper<>();
+        Map<String, Object> mapAll = new HashMap<>();
+        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
+        mapAll.put("version_id", id);
+        mapAll.put("STATUS", StatusEnum.Enable.getKey());
+        versionDetailQuery.allEq(mapAll).orderByAsc("order_no");
+
+        VersionDetail versionDetail = new VersionDetail();
+        versionDetail.setVersionId(id);
+        List<VersionDetail> datas = list(versionDetailQuery);
+        List<VersionDetailDTO> dataNew = new ArrayList<VersionDetailDTO>();
+        //过滤字段
+        dataNew = BeanUtil.listCopyTo(datas, VersionDetailDTO.class);
+        return dataNew;
+
+    }
+}

+ 56 - 56
icss-service/src/main/java/com/diagbot/facade/VersionInfoFacade.java

@@ -1,56 +1,56 @@
-package com.diagbot.facade;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.diagbot.dto.VersionDetailDTO;
-import com.diagbot.dto.VersionWrapperDTO;
-import com.diagbot.entity.VersionInfo;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.enums.StatusEnum;
-import com.diagbot.service.impl.VersionInfoServiceImpl;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * @author wangfeng
- * @Description: 版本信息
- * @date 2018年11月21日 上午11:07:01
- */
-@Component
-public class VersionInfoFacade extends VersionInfoServiceImpl {
-
-    @Autowired
-    VersionDetailFacaed versionDetailFacaed;
-
-
-    /**
-     * 查询版本信息
-     *
-     * @return
-     */
-    public VersionWrapperDTO getVersionInfoAll() {
-        //查询最新的一条版本信息
-        QueryWrapper<VersionInfo> versionInfoQuery = new QueryWrapper<>();
-        versionInfoQuery.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("STATUS", StatusEnum.Enable.getKey())
-                .orderByDesc("gmt_modified");
-
-        VersionInfo versionInfo = getOne(versionInfoQuery);
-        VersionWrapperDTO versionList = new VersionWrapperDTO();
-
-        if (versionInfo != null) {
-            //当查出的数据不为空时,取到版本id,再去版本明细表中查询详细的信息
-            long id = versionInfo.getId();
-            List<VersionDetailDTO> detail = versionDetailFacaed.getById(id);
-            //System.out.println(detail.toString());
-            versionList.setId(versionInfo.getId());
-            versionList.setName(versionInfo.getName());
-            versionList.setRefreshTime(versionInfo.getRefreshTime());
-            versionList.setStatus(versionInfo.getStatus());
-            versionList.setDetail(detail);
-        }
-
-        return versionList;
-    }
-}
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.VersionDetailDTO;
+import com.diagbot.dto.VersionWrapperDTO;
+import com.diagbot.entity.VersionInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.service.impl.VersionInfoServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description: 版本信息
+ * @date 2018年11月21日 上午11:07:01
+ */
+@Component
+public class VersionInfoFacade extends VersionInfoServiceImpl {
+
+    @Autowired
+    VersionDetailFacaed versionDetailFacaed;
+
+
+    /**
+     * 查询版本信息
+     *
+     * @return
+     */
+    public VersionWrapperDTO getVersionInfoAll() {
+        //查询最新的一条版本信息
+        QueryWrapper<VersionInfo> versionInfoQuery = new QueryWrapper<>();
+        versionInfoQuery.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("STATUS", StatusEnum.Enable.getKey())
+                .orderByDesc("gmt_modified");
+
+        VersionInfo versionInfo = getOne(versionInfoQuery);
+        VersionWrapperDTO versionList = new VersionWrapperDTO();
+
+        if (versionInfo != null) {
+            //当查出的数据不为空时,取到版本id,再去版本明细表中查询详细的信息
+            long id = versionInfo.getId();
+            List<VersionDetailDTO> detail = versionDetailFacaed.getById(id);
+            //System.out.println(detail.toString());
+            versionList.setId(versionInfo.getId());
+            versionList.setName(versionInfo.getName());
+            versionList.setRefreshTime(versionInfo.getRefreshTime());
+            versionList.setStatus(versionInfo.getStatus());
+            versionList.setDetail(detail);
+        }
+
+        return versionList;
+    }
+}

+ 52 - 52
icss-service/src/main/java/com/diagbot/vo/BuriedSomeStatisticalVO.java

@@ -1,52 +1,52 @@
-package com.diagbot.vo;
-
-import java.util.List;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月23日 上午10:03:11
- */
-@Getter
-@Setter
-public class BuriedSomeStatisticalVO {
-	 /**
-     * 医院id
-     */
-	@NotNull(message = "请输入医院id")
-    private Long hospitalId;
-
-    /**
-     * 部门id
-     */
-	@NotNull(message = "请输入部门id")
-    private Long hospitalDeptId;
-
-    /**
-     * 医生id
-     */
-	@NotNull(message = "请输入医生id")
-    private Long doctorId;
-
-    /**
-     * 病人id
-     */
-	@NotNull(message = "请输入病人id")
-    private Long patientId;
-
-    /**
-     * 就诊号
-     */
-	@NotBlank(message = "请输入就诊号")
-    private String inquiryCode;
-
-	private List<Taggeds> taggeds;
-	
-}
+package com.diagbot.vo;
+
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月23日 上午10:03:11
+ */
+@Getter
+@Setter
+public class BuriedSomeStatisticalVO {
+	 /**
+     * 医院id
+     */
+	@NotNull(message = "请输入医院id")
+    private Long hospitalId;
+
+    /**
+     * 部门id
+     */
+	@NotNull(message = "请输入部门id")
+    private Long hospitalDeptId;
+
+    /**
+     * 医生id
+     */
+	@NotNull(message = "请输入医生id")
+    private Long doctorId;
+
+    /**
+     * 病人id
+     */
+	@NotNull(message = "请输入病人id")
+    private Long patientId;
+
+    /**
+     * 就诊号
+     */
+	@NotBlank(message = "请输入就诊号")
+    private String inquiryCode;
+
+	private List<Taggeds> taggeds;
+	
+}

+ 27 - 27
icss-service/src/main/java/com/diagbot/vo/ContentsVO.java

@@ -1,27 +1,27 @@
-package com.diagbot.vo;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: 类型(1:主诉,2现病史,3其他史,4查体,5化验,6辅检,7诊断,8医嘱)
- * @date 2018年11月23日 下午2:20:02
- */
-
-@Getter
-@Setter
-public class ContentsVO {
-	 /**
-     * 类型(1:主诉,2现病史,3其他史,4查体,5化验,6辅检,7诊断,8医嘱)
-     */
-    private String chief;//主诉
-    private String present;//现病史
-    private String other;//其他史
-    private String vital;//查体
-    private String lis;//化验
-    private String pacs;//辅检
-    private String diag;//诊断
-    private String advice;//医嘱
-}
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: 类型(1:主诉,2现病史,3其他史,4查体,5化验,6辅检,7诊断,8医嘱)
+ * @date 2018年11月23日 下午2:20:02
+ */
+
+@Getter
+@Setter
+public class ContentsVO {
+	 /**
+     * 类型(1:主诉,2现病史,3其他史,4查体,5化验,6辅检,7诊断,8医嘱)
+     */
+    private String chief;//主诉
+    private String present;//现病史
+    private String other;//其他史
+    private String vital;//查体
+    private String lis;//化验
+    private String pacs;//辅检
+    private String diag;//诊断
+    private String advice;//医嘱
+}

+ 23 - 23
icss-service/src/main/java/com/diagbot/vo/DoctorIdVO.java

@@ -1,23 +1,23 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月20日 下午3:41:15
- */
-@Getter
-@Setter
-public class DoctorIdVO {
-
-	/**
-     * 医生id
-     */
-	@NotNull(message = "请输入医生id")
-    private Long doctorId;
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月20日 下午3:41:15
+ */
+@Getter
+@Setter
+public class DoctorIdVO {
+
+	/**
+     * 医生id
+     */
+	@NotNull(message = "请输入医生id")
+    private Long doctorId;
+}

+ 33 - 33
icss-service/src/main/java/com/diagbot/vo/DoctorPageModeVO.java

@@ -1,33 +1,33 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月20日 下午3:15:26
- */
-@Setter
-@Getter
-public class DoctorPageModeVO {
-	/**
-     * 医生id
-     */
-	@NotNull(message = "请输入医生id")
-    private Long doctorId;
-    /**
-     * 模式分类
-     */
-    private Integer modeClassify;
-
-    /**
-     * 模式值
-     */
-    private Integer modeValue;
-
-
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月20日 下午3:15:26
+ */
+@Setter
+@Getter
+public class DoctorPageModeVO {
+	/**
+     * 医生id
+     */
+	@NotNull(message = "请输入医生id")
+    private Long doctorId;
+    /**
+     * 模式分类
+     */
+    private Integer modeClassify;
+
+    /**
+     * 模式值
+     */
+    private Integer modeValue;
+
+
+}

+ 56 - 56
icss-service/src/main/java/com/diagbot/vo/GetTopPatientInfoVO.java

@@ -1,56 +1,56 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotBlank;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @Description
- * @author rgb
- * @time 2018年11月19日下午4:58:37
- */
-@ApiModel(value="页面顶部病人医生科室信息查询接口传参")
-@Getter
-@Setter
-public class GetTopPatientInfoVO {
-	
-	/**
-	 * 医院编号
-	 */
-	@ApiModelProperty(value="医院编号",required=true)
-	@NotBlank(message="医院编号必填")
-	private String hospitalCode;
-	
-	/**
-	 * 医院科室编号
-	 */
-	@ApiModelProperty(value="医院科室编号",required=true)
-	@NotBlank(message="医院科室编号必填")
-	private String hospitalDeptCode;
-	
-	/**
-	 * 医院医生编号
-	 */
-	@ApiModelProperty(value="医院医生编号",required=true)
-	@NotBlank(message="医院医生编号必填")
-	private String doctorCode;
-	
-	/**
-	 * 医院患者编号
-	 */
-	@ApiModelProperty(value="医院患者编号",required=true)
-	@NotBlank(message="医院患者编号必填")
-	private String patientCode;
-	
-	/**
-	 * 门诊号
-	 */
-	@ApiModelProperty(value="门诊号",required=true)
-	@NotBlank(message="门诊号必填")
-	private String recordId;
-	
-
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotBlank;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年11月19日下午4:58:37
+ */
+@ApiModel(value="页面顶部病人医生科室信息查询接口传参")
+@Getter
+@Setter
+public class GetTopPatientInfoVO {
+	
+	/**
+	 * 医院编号
+	 */
+	@ApiModelProperty(value="医院编号",required=true)
+	@NotBlank(message="医院编号必填")
+	private String hospitalCode;
+	
+	/**
+	 * 医院科室编号
+	 */
+	@ApiModelProperty(value="医院科室编号",required=true)
+	@NotBlank(message="医院科室编号必填")
+	private String hospitalDeptCode;
+	
+	/**
+	 * 医院医生编号
+	 */
+	@ApiModelProperty(value="医院医生编号",required=true)
+	@NotBlank(message="医院医生编号必填")
+	private String doctorCode;
+	
+	/**
+	 * 医院患者编号
+	 */
+	@ApiModelProperty(value="医院患者编号",required=true)
+	@NotBlank(message="医院患者编号必填")
+	private String patientCode;
+	
+	/**
+	 * 门诊号
+	 */
+	@ApiModelProperty(value="门诊号",required=true)
+	@NotBlank(message="门诊号必填")
+	private String recordId;
+	
+
+}

+ 23 - 23
icss-service/src/main/java/com/diagbot/vo/LisExcelResVO.java

@@ -1,23 +1,23 @@
-package com.diagbot.vo;
-
-import java.util.List;
-
-import lombok.Getter;
-import lombok.Setter;
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月28日 上午9:51:17
- */
-@Setter
-@Getter
-public class LisExcelResVO {
-
-	
-	private String menus;
-	
-	private List<LisExcelWrapperVO> lisExcelItem ;
-	
-
-}
+package com.diagbot.vo;
+
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月28日 上午9:51:17
+ */
+@Setter
+@Getter
+public class LisExcelResVO {
+
+	
+	private String menus;
+	
+	private List<LisExcelWrapperVO> lisExcelItem ;
+	
+
+}

+ 36 - 36
icss-service/src/main/java/com/diagbot/vo/LisExcelWrapperVO.java

@@ -1,36 +1,36 @@
-package com.diagbot.vo;
-
-import lombok.Getter;
-import lombok.Setter;
-
-
-@Setter
-@Getter
-public class LisExcelWrapperVO {
-
-    private String mealName;
-	
-    private String uniquemealName;
-    
-	private String itemName;
-	
-	private String uniqueName;
-	
-	private String unit;
-	
-	private String value;
-	
-	private String max;
-	
-	private String min;
-	
-	private String time;
-	
-	private String type;
-
-	@Override
-	public String toString() {
-		return "LisExcelWrapper [mealName=" + mealName + ", itemName=" + itemName + ", unit=" + unit + ", value="
-				+ value + "]";
-	}
-}
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+
+@Setter
+@Getter
+public class LisExcelWrapperVO {
+
+    private String mealName;
+	
+    private String uniquemealName;
+    
+	private String itemName;
+	
+	private String uniqueName;
+	
+	private String unit;
+	
+	private String value;
+	
+	private String max;
+	
+	private String min;
+	
+	private String time;
+	
+	private String type;
+
+	@Override
+	public String toString() {
+		return "LisExcelWrapper [mealName=" + mealName + ", itemName=" + itemName + ", unit=" + unit + ", value="
+				+ value + "]";
+	}
+}

+ 20 - 20
icss-service/src/main/java/com/diagbot/vo/LisHospitalCodeVO.java

@@ -1,20 +1,20 @@
-package com.diagbot.vo;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2019年1月4日 上午10:45:53
- */
-@Getter
-@Setter
-public class LisHospitalCodeVO {
-
-	/**
-	 * 医院编码
-	 */
-	String hospitalCode;
-}
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年1月4日 上午10:45:53
+ */
+@Getter
+@Setter
+public class LisHospitalCodeVO {
+
+	/**
+	 * 医院编码
+	 */
+	String hospitalCode;
+}

+ 15 - 15
icss-service/src/main/java/com/diagbot/vo/LitAssayVO.java

@@ -1,15 +1,15 @@
-package com.diagbot.vo;
-
-import java.util.List;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class LitAssayVO {
-
-	private List<LisExcelResVO> lisExcelRes;
-	
-	private List<String> messages;
-}
+package com.diagbot.vo;
+
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class LitAssayVO {
+
+	private List<LisExcelResVO> lisExcelRes;
+	
+	private List<String> messages;
+}

+ 64 - 64
icss-service/src/main/java/com/diagbot/vo/PrintRecordsVO.java

@@ -1,64 +1,64 @@
-package com.diagbot.vo;
-
-import java.util.List;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: 保存打印记录
- * @date 2018年11月19日 上午10:25:00
- */
-@Getter
-@Setter
-public class PrintRecordsVO {
-	/**
-	 * 名称
-	 */
-	@NotBlank(message = "请输打印的名称")
-	private String name;
-	/**
-     * 医生id
-     */
-	@NotNull(message = "请输入医生id")
-    private Long doctorId;
-
-    /**
-     * 医院编码
-     */
-	@NotNull(message = "请输入医院id")
-    private Long hospitalId;
-
-    /**
-     * 患者id
-     */
-	@NotNull(message = "请输入患者id")
-    private Long patientId;
-	/**
-     * 医院部门id
-     */
-	@NotNull(message = "请输入医院部门id")
-	private Long hospitalDeptId;
-    /**
-     * 问诊号
-     */
-	@NotBlank(message = "请输入就诊号")
-    private String inquiryCode;
-
-    /**
-     * 文本内容
-     */
-    private ContentsVO content;
-
-    /**
-     * 内容JSON字符串(打印页面展示)
-     */
-	@NotBlank(message = "请输入内容JSON字符串")
-    private String dataJson;
-
-}
+package com.diagbot.vo;
+
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: 保存打印记录
+ * @date 2018年11月19日 上午10:25:00
+ */
+@Getter
+@Setter
+public class PrintRecordsVO {
+	/**
+	 * 名称
+	 */
+	@NotBlank(message = "请输打印的名称")
+	private String name;
+	/**
+     * 医生id
+     */
+	@NotNull(message = "请输入医生id")
+    private Long doctorId;
+
+    /**
+     * 医院编码
+     */
+	@NotNull(message = "请输入医院id")
+    private Long hospitalId;
+
+    /**
+     * 患者id
+     */
+	@NotNull(message = "请输入患者id")
+    private Long patientId;
+	/**
+     * 医院部门id
+     */
+	@NotNull(message = "请输入医院部门id")
+	private Long hospitalDeptId;
+    /**
+     * 问诊号
+     */
+	@NotBlank(message = "请输入就诊号")
+    private String inquiryCode;
+
+    /**
+     * 文本内容
+     */
+    private ContentsVO content;
+
+    /**
+     * 内容JSON字符串(打印页面展示)
+     */
+	@NotBlank(message = "请输入内容JSON字符串")
+    private String dataJson;
+
+}

+ 43 - 43
icss-service/src/main/java/com/diagbot/vo/SaveInquiryDetailVO.java

@@ -1,43 +1,43 @@
-/**
- * 
- */
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotNull;
-
-import org.hibernate.validator.constraints.Range;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @Description
- * @author rgb
- * @time 2018年11月23日下午2:29:43
- */
-@Getter
-@Setter
-public class SaveInquiryDetailVO {
-	
-	/**
-     * 类型(1:主诉,2现病史,3其他史,4查体,5化验,6辅检,7诊断,8医嘱)
-     */
-	@ApiModelProperty(value="类型(1:主诉,2现病史,3其他史,4查体,5化验,6辅检,7诊断,8医嘱)",required=true)
-	@NotNull(message="问诊明细-类型必传")
-	@Range(min=1,max=8,message="问诊明细-类型必须是1-8")
-    private Integer type;
-
-    /**
-     * 内容字符串
-     */
-    @ApiModelProperty(value="内容字符串")
-    private String content;
-    
-    /**
-     * 内容字符串纯文本
-     */
-    @ApiModelProperty(value="内容字符串纯文本")
-    private String contentValue;
-
-}
+/**
+ * 
+ */
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Range;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年11月23日下午2:29:43
+ */
+@Getter
+@Setter
+public class SaveInquiryDetailVO {
+	
+	/**
+     * 类型(1:主诉,2现病史,3其他史,4查体,5化验,6辅检,7诊断,8医嘱)
+     */
+	@ApiModelProperty(value="类型(1:主诉,2现病史,3其他史,4查体,5化验,6辅检,7诊断,8医嘱)",required=true)
+	@NotNull(message="问诊明细-类型必传")
+	@Range(min=1,max=8,message="问诊明细-类型必须是1-8")
+    private Integer type;
+
+    /**
+     * 内容字符串
+     */
+    @ApiModelProperty(value="内容字符串")
+    private String content;
+    
+    /**
+     * 内容字符串纯文本
+     */
+    @ApiModelProperty(value="内容字符串纯文本")
+    private String contentValue;
+
+}

+ 45 - 45
icss-service/src/main/java/com/diagbot/vo/Taggeds.java

@@ -1,45 +1,45 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月23日 上午10:35:30
- */
-@Getter
-@Setter
-public class Taggeds {
-
-	/**
-     * 标签ID
-     */
-	@NotNull(message = "请输入标签ID")
-    private Integer labelId;
-
-    /**
-     * 标签名
-     */
-    private String labelName;
-
-    /**
-     * 操作类型
-     */
-    @NotBlank(message = "请输入操作类型")
-    private String operationType;
-
-    /**
-     * 操作次数
-     */
-    private Integer operationNum;
-    
-    /**
-     * 是否存在标签库
-     */
-    private Integer status;
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月23日 上午10:35:30
+ */
+@Getter
+@Setter
+public class Taggeds {
+
+	/**
+     * 标签ID
+     */
+	@NotNull(message = "请输入标签ID")
+    private Integer labelId;
+
+    /**
+     * 标签名
+     */
+    private String labelName;
+
+    /**
+     * 操作类型
+     */
+    @NotBlank(message = "请输入操作类型")
+    private String operationType;
+
+    /**
+     * 操作次数
+     */
+    private Integer operationNum;
+    
+    /**
+     * 是否存在标签库
+     */
+    private Integer status;
+}

+ 41 - 41
icss-service/src/main/java/com/diagbot/vo/TemplateInfoRevampVO.java

@@ -1,41 +1,41 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: 修改模板名入参
- * @date 2018年11月16日 下午2:41:01
- */
-@Getter
-@Setter
-public class TemplateInfoRevampVO {
-	@NotNull(message = "请输入模板id")
-	private Long id;//模板id
-	@NotBlank(message = "请输入模板名")
-	private String modeName;//模板名
-	/**
-     * 医生id
-     */
-	@NotNull(message = "请输入医生id")
-    private Long doctorId;
-
-    /**
-     * 医院编码
-     */
-	@NotNull(message = "请输入医院Id")
-    private Long hospitalId;
-	/**
-	 * 部门id
-	 */
-	@NotNull(message = "请输入部门id")
-	private Long hospitalDeptId;//部门id
-	
-	@NotBlank(message = "请输入模板类型")
-	private String type;//模板名
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: 修改模板名入参
+ * @date 2018年11月16日 下午2:41:01
+ */
+@Getter
+@Setter
+public class TemplateInfoRevampVO {
+	@NotNull(message = "请输入模板id")
+	private Long id;//模板id
+	@NotBlank(message = "请输入模板名")
+	private String modeName;//模板名
+	/**
+     * 医生id
+     */
+	@NotNull(message = "请输入医生id")
+    private Long doctorId;
+
+    /**
+     * 医院编码
+     */
+	@NotNull(message = "请输入医院Id")
+    private Long hospitalId;
+	/**
+	 * 部门id
+	 */
+	@NotNull(message = "请输入部门id")
+	private Long hospitalDeptId;//部门id
+	
+	@NotBlank(message = "请输入模板类型")
+	private String type;//模板名
+}

+ 34 - 34
icss-service/src/main/java/com/diagbot/vo/TemplateInfoVO.java

@@ -1,34 +1,34 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class TemplateInfoVO {
-	
-	/**
-     * 医生id
-     */
-	@NotNull(message = "请输入医生id")
-    private Long doctorId;
-
-    /**
-     * 医院编码
-     */
-	@NotNull(message = "请输入医院Id")
-    private Long hospitalId;
-	/**
-	 * 部门id
-	 */
-	@NotNull(message = "请输入部门id")
-	private Long hospitalDeptId;//部门id
-	
-	@NotBlank(message = "请输入模板类型")
-	private String type;//模板类型
-	
-	private Integer sex;//性别
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class TemplateInfoVO {
+	
+	/**
+     * 医生id
+     */
+	@NotNull(message = "请输入医生id")
+    private Long doctorId;
+
+    /**
+     * 医院编码
+     */
+	@NotNull(message = "请输入医院Id")
+    private Long hospitalId;
+	/**
+	 * 部门id
+	 */
+	@NotNull(message = "请输入部门id")
+	private Long hospitalDeptId;//部门id
+	
+	@NotBlank(message = "请输入模板类型")
+	private String type;//模板类型
+	
+	private Integer sex;//性别
+}

+ 19 - 19
icss-service/src/main/java/com/diagbot/vo/TemplateInfosIdVO.java

@@ -1,19 +1,19 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotBlank;
-
-import lombok.Getter;
-import lombok.Setter;
-/***
- * 
- * @author wangfeng
- * @Description: 批量删除
- * @date 2018年11月16日 下午4:57:25
- */
-@Getter
-@Setter
-public class TemplateInfosIdVO {
-	@NotBlank(message = "请输入模板id")
-	private String ids;
-
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotBlank;
+
+import lombok.Getter;
+import lombok.Setter;
+/***
+ * 
+ * @author wangfeng
+ * @Description: 批量删除
+ * @date 2018年11月16日 下午4:57:25
+ */
+@Getter
+@Setter
+public class TemplateInfosIdVO {
+	@NotBlank(message = "请输入模板id")
+	private String ids;
+
+}

+ 34 - 34
icss-service/src/main/java/com/diagbot/vo/TemplateInfosVO.java

@@ -1,34 +1,34 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: 病历保存
- * @date 2018年11月16日 下午3:35:05
- */
-@Getter
-@Setter
-public class TemplateInfosVO {
-	@NotBlank(message = "请输入模板名字")
-	private String modeName;//模板名字
-	@NotNull(message = "请输入医生id")
-	private Long doctorId;//医生id
-	@NotNull(message = "请输入医院id")
-	private Long hospitalId;//医院id
-	@NotNull(message = "请输入部门id")
-	private Long hospitalDeptId;//部门id
-	@NotNull(message = "请输入性别")
-	private Integer sex;//性别
-	@NotBlank(message = "请输入模板类型")
-	private String modeType;//模板类型
-	@NotNull(message = "请输入预览文本")
-	private ContentsVO preview;//预览文本
-	@NotBlank(message = "请输入模板数据")
-	private String dataJson;//模板数据
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: 病历保存
+ * @date 2018年11月16日 下午3:35:05
+ */
+@Getter
+@Setter
+public class TemplateInfosVO {
+	@NotBlank(message = "请输入模板名字")
+	private String modeName;//模板名字
+	@NotNull(message = "请输入医生id")
+	private Long doctorId;//医生id
+	@NotNull(message = "请输入医院id")
+	private Long hospitalId;//医院id
+	@NotNull(message = "请输入部门id")
+	private Long hospitalDeptId;//部门id
+	@NotNull(message = "请输入性别")
+	private Integer sex;//性别
+	@NotBlank(message = "请输入模板类型")
+	private String modeType;//模板类型
+	@NotNull(message = "请输入预览文本")
+	private ContentsVO preview;//预览文本
+	@NotBlank(message = "请输入模板数据")
+	private String dataJson;//模板数据
+}

+ 35 - 35
icss-service/src/main/java/com/diagbot/web/LisExcelResController.java

@@ -1,36 +1,36 @@
-package com.diagbot.web;
-
-import com.diagbot.facade.LisExcelResFacade;
-import com.diagbot.util.GsonUtil;
-import com.diagbot.vo.LisHospitalCodeVO;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * @author wangfeng
- * @Description: 化验导入
- * @date 2018年11月28日 上午10:20:38
- */
-@RestController
-@RequestMapping("/lisExcelRes")
-@Api(value = "化验导入API[by:wangfeng]", tags = { "WF——化验导入API" })
-@SuppressWarnings("unchecked")
-public class LisExcelResController {
-
-    @Autowired
-    LisExcelResFacade lisExcelResFacade;
-
-    @ApiOperation(value = "导入化验数据:[by:wangfeng]", notes = "导入化验数据")
-    @PostMapping(value = "/lisExcelAnalysis", produces="text/html;charset=utf-8")
-    public String lisExcelAnalysis(@RequestParam("uploadfile") MultipartFile file, LisHospitalCodeVO lisHospitalCodeVO, HttpServletRequest request) {
-        return GsonUtil.toJson(lisExcelResFacade.lisExcelAnalysis(file,lisHospitalCodeVO, request));
-    }
+package com.diagbot.web;
+
+import com.diagbot.facade.LisExcelResFacade;
+import com.diagbot.util.GsonUtil;
+import com.diagbot.vo.LisHospitalCodeVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @author wangfeng
+ * @Description: 化验导入
+ * @date 2018年11月28日 上午10:20:38
+ */
+@RestController
+@RequestMapping("/lisExcelRes")
+@Api(value = "化验导入API[by:wangfeng]", tags = { "WF——化验导入API" })
+@SuppressWarnings("unchecked")
+public class LisExcelResController {
+
+    @Autowired
+    LisExcelResFacade lisExcelResFacade;
+
+    @ApiOperation(value = "导入化验数据:[by:wangfeng]", notes = "导入化验数据")
+    @PostMapping(value = "/lisExcelAnalysis", produces="text/html;charset=utf-8")
+    public String lisExcelAnalysis(@RequestParam("uploadfile") MultipartFile file, LisHospitalCodeVO lisHospitalCodeVO, HttpServletRequest request) {
+        return GsonUtil.toJson(lisExcelResFacade.lisExcelAnalysis(file,lisHospitalCodeVO, request));
+    }
 }

+ 2 - 2
icss-service/src/main/resources/bootstrap.yml

@@ -3,7 +3,7 @@ spring:
     name: icss-service
   cloud:
     config:
-      #uri: http://${myuri}:8769
+      #uri: http://${myuri}:4001
       fail-fast: true
       discovery:
         enabled: true
@@ -14,6 +14,6 @@ spring:
 eureka:
   client:
     serviceUrl:
-      defaultZone: http://${myuri}:8761/eureka/
+      defaultZone: http://${myuri}:4000/eureka/
 
 myuri: localhost

+ 142 - 142
icssman-service/src/main/java/com/diagbot/dto/DisclaimerInformationDTO.java

@@ -1,142 +1,142 @@
-package com.diagbot.dto;
-
-import com.diagbot.enums.DisclaimerCodeEnum;
-
-import java.util.Date;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月21日 下午4:23:48
- */
-
-public class DisclaimerInformationDTO {
-	private Long id;
-
-	/**
-	 * 记录创建时间
-	 */
-	private Date gmtCreate;
-
-	/**
-	 * 创建人,0表示无创建人值
-	 */
-	private String modifier;
-
-	/**
-	 * 主表id
-	 */
-	// private Long versionId;
-
-	/**
-	 * 标题
-	 */
-	private String title;
-
-	/**
-	 * 描述
-	 */
-	private String description;
-
-	/**
-	 * 排序号
-	 */
-	private String orderNo;
-
-	/**
-	 * 1:启动,0:不启用
-	 */
-	private String status;
-
-	/**
-	 * 免责申明位置
-	 */
-	private String disclaimerCode;
-
-	/**
-	 * 备注
-	 */
-	private String remark;
-
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	public Date getGmtCreate() {
-		return gmtCreate;
-	}
-
-	public void setGmtCreate(Date gmtCreate) {
-		this.gmtCreate = gmtCreate;
-	}
-
-	public String getModifier() {
-		return modifier;
-	}
-
-	public void setModifier(String modifier) {
-		this.modifier = modifier;
-	}
-
-	public String getTitle() {
-		return title;
-	}
-
-	public void setTitle(String title) {
-		this.title = title;
-	}
-
-	public String getDescription() {
-		return description;
-	}
-
-	public void setDescription(String description) {
-		this.description = description;
-	}
-
-	public String getOrderNo() {
-		return orderNo;
-	}
-
-	public void setOrderNo(String orderNo) {
-		this.orderNo = orderNo;
-	}
-
-	public String getStatus() {
-		return status;
-	}
-
-	public void setStatus(String status) {
-		this.status = status;
-	}
-
-	public String getDisclaimerCode() {
-		if (disclaimerCode.equals("1")) {
-			return DisclaimerCodeEnum.getName(1);
-		} else if (disclaimerCode.equals("2")) {
-			return DisclaimerCodeEnum.getName(2);
-		} else if (disclaimerCode.equals("3")) {
-			return DisclaimerCodeEnum.getName(3);
-		} else {
-			return disclaimerCode;
-		}
-	}
-
-	public void setDisclaimerCode(String disclaimerCode) {
-		this.disclaimerCode = disclaimerCode;
-	}
-
-	public String getRemark() {
-		return remark;
-	}
-
-	public void setRemark(String remark) {
-		this.remark = remark;
-	}
-
-}
+package com.diagbot.dto;
+
+import com.diagbot.enums.DisclaimerCodeEnum;
+
+import java.util.Date;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月21日 下午4:23:48
+ */
+
+public class DisclaimerInformationDTO {
+	private Long id;
+
+	/**
+	 * 记录创建时间
+	 */
+	private Date gmtCreate;
+
+	/**
+	 * 创建人,0表示无创建人值
+	 */
+	private String modifier;
+
+	/**
+	 * 主表id
+	 */
+	// private Long versionId;
+
+	/**
+	 * 标题
+	 */
+	private String title;
+
+	/**
+	 * 描述
+	 */
+	private String description;
+
+	/**
+	 * 排序号
+	 */
+	private String orderNo;
+
+	/**
+	 * 1:启动,0:不启用
+	 */
+	private String status;
+
+	/**
+	 * 免责申明位置
+	 */
+	private String disclaimerCode;
+
+	/**
+	 * 备注
+	 */
+	private String remark;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Date getGmtCreate() {
+		return gmtCreate;
+	}
+
+	public void setGmtCreate(Date gmtCreate) {
+		this.gmtCreate = gmtCreate;
+	}
+
+	public String getModifier() {
+		return modifier;
+	}
+
+	public void setModifier(String modifier) {
+		this.modifier = modifier;
+	}
+
+	public String getTitle() {
+		return title;
+	}
+
+	public void setTitle(String title) {
+		this.title = title;
+	}
+
+	public String getDescription() {
+		return description;
+	}
+
+	public void setDescription(String description) {
+		this.description = description;
+	}
+
+	public String getOrderNo() {
+		return orderNo;
+	}
+
+	public void setOrderNo(String orderNo) {
+		this.orderNo = orderNo;
+	}
+
+	public String getStatus() {
+		return status;
+	}
+
+	public void setStatus(String status) {
+		this.status = status;
+	}
+
+	public String getDisclaimerCode() {
+		if (disclaimerCode.equals("1")) {
+			return DisclaimerCodeEnum.getName(1);
+		} else if (disclaimerCode.equals("2")) {
+			return DisclaimerCodeEnum.getName(2);
+		} else if (disclaimerCode.equals("3")) {
+			return DisclaimerCodeEnum.getName(3);
+		} else {
+			return disclaimerCode;
+		}
+	}
+
+	public void setDisclaimerCode(String disclaimerCode) {
+		this.disclaimerCode = disclaimerCode;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+}

+ 54 - 54
icssman-service/src/main/java/com/diagbot/dto/GetRetrievalsByTagDTO.java

@@ -1,54 +1,54 @@
-/**
- * 
- */
-package com.diagbot.dto;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @Description
- * @author rgb
- * @time 2018年12月5日下午5:00:34
- */
-@ApiModel(value="根据标签获取同义词接口出参")
-@Getter
-@Setter
-public class GetRetrievalsByTagDTO {
-	
-	/**
-	 * 同义词id
-	 */
-	@ApiModelProperty(value="同义词id")
-	private Long retrievalId;
-	
-	/**
-	 * 同义词映射id
-	 */
-	@ApiModelProperty(value="同义词映射id")
-	private Long retrievalMappingId;
-	
-	/**
-	 * 同义词名称
-	 */
-	@ApiModelProperty(value="同义词名称")
-	private String retrievalName;
-	
-	/**
-	 * 同义词拼音
-	 */
-	@ApiModelProperty(value="同义词拼音")
-	private String retrievalSpell;
-	
-	/**
-	 * 同义词种类,1:本体,2:同义词3:组合项目(生命体征-脉搏)
-	 */
-	@ApiModelProperty(value="同义词种类,1:本体,2:同义词3:组合项目(生命体征-脉搏)")
-	private Integer retrievalType;
-	
-	
-	
-
-}
+/**
+ * 
+ */
+package com.diagbot.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月5日下午5:00:34
+ */
+@ApiModel(value="根据标签获取同义词接口出参")
+@Getter
+@Setter
+public class GetRetrievalsByTagDTO {
+	
+	/**
+	 * 同义词id
+	 */
+	@ApiModelProperty(value="同义词id")
+	private Long retrievalId;
+	
+	/**
+	 * 同义词映射id
+	 */
+	@ApiModelProperty(value="同义词映射id")
+	private Long retrievalMappingId;
+	
+	/**
+	 * 同义词名称
+	 */
+	@ApiModelProperty(value="同义词名称")
+	private String retrievalName;
+	
+	/**
+	 * 同义词拼音
+	 */
+	@ApiModelProperty(value="同义词拼音")
+	private String retrievalSpell;
+	
+	/**
+	 * 同义词种类,1:本体,2:同义词3:组合项目(生命体征-脉搏)
+	 */
+	@ApiModelProperty(value="同义词种类,1:本体,2:同义词3:组合项目(生命体征-脉搏)")
+	private Integer retrievalType;
+	
+	
+	
+
+}

+ 27 - 27
icssman-service/src/main/java/com/diagbot/dto/IndexRevDTO.java

@@ -1,27 +1,27 @@
-/**
- * 
- */
-package com.diagbot.dto;
-
-import java.util.List;
-
-import com.diagbot.entity.QuestionInfo;
-
-import io.swagger.annotations.ApiModel;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @Description
- * @author rgb
- * @time 2018年12月19日下午2:06:21
- */
-@SuppressWarnings("serial")
-@ApiModel(value="同义词excel文件导入接口出参")
-@Getter
-@Setter
-public class IndexRevDTO extends QuestionInfo{
-	
-	private String typeName;
-
-}
+/**
+ * 
+ */
+package com.diagbot.dto;
+
+import java.util.List;
+
+import com.diagbot.entity.QuestionInfo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月19日下午2:06:21
+ */
+@SuppressWarnings("serial")
+@ApiModel(value="同义词excel文件导入接口出参")
+@Getter
+@Setter
+public class IndexRevDTO extends QuestionInfo{
+	
+	private String typeName;
+
+}

+ 24 - 24
icssman-service/src/main/java/com/diagbot/dto/RetrievalExcelImDTO.java

@@ -1,24 +1,24 @@
-/**
- * 
- */
-package com.diagbot.dto;
-
-import java.util.List;
-
-import io.swagger.annotations.ApiModel;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @Description
- * @author rgb
- * @time 2018年12月19日下午2:06:21
- */
-@ApiModel(value="同义词excel文件导入接口出参")
-@Getter
-@Setter
-public class RetrievalExcelImDTO {
-	
-	private List<String> messages;
-
-}
+/**
+ * 
+ */
+package com.diagbot.dto;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月19日下午2:06:21
+ */
+@ApiModel(value="同义词excel文件导入接口出参")
+@Getter
+@Setter
+public class RetrievalExcelImDTO {
+	
+	private List<String> messages;
+
+}

+ 68 - 68
icssman-service/src/main/java/com/diagbot/dto/RetrievalListDTO.java

@@ -1,68 +1,68 @@
-package com.diagbot.dto;
-
-import java.util.Date;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @Description
- * @author rgb
- * @time 2018年12月17日上午10:11:39
- */
-@ApiModel(value="获取标签同义词列表接口出参")
-@Getter
-@Setter
-public class RetrievalListDTO {
-	
-	/**
-     * 标签id
-     */
-	@ApiModelProperty(value="标签id")
-    private Long questionId;
-	
-	/**
-	 * 标签名称
-	 */
-	@ApiModelProperty(value="标签名称")
-	private String questionName;
-	
-	/**
-	 * 标签归属
-	 */
-	@ApiModelProperty(value="标签归属")
-	private Integer questionType;
-	
-	/**
-	 * 本体
-	 */
-	@ApiModelProperty(value="本体")
-	private String retrievalSelfName;
-	
-	/**
-	 * 别名
-	 */
-	@ApiModelProperty(value="别名")
-	private String retrievalNames;
-	
-	/**
-	 * 子项
-	 */
-	@ApiModelProperty(value="子项")
-	private String retrievalSonNames;
-	
-    /**
-     * 操作人姓名
-     */
-	@ApiModelProperty(value="操作人姓名")
-    private String operatorName;
-    
-    /**
-     * 操作时间
-     */
-	@ApiModelProperty(value="操作时间")
-    private Date gmtOperate;
-
-}
+package com.diagbot.dto;
+
+import java.util.Date;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月17日上午10:11:39
+ */
+@ApiModel(value="获取标签同义词列表接口出参")
+@Getter
+@Setter
+public class RetrievalListDTO {
+	
+	/**
+     * 标签id
+     */
+	@ApiModelProperty(value="标签id")
+    private Long questionId;
+	
+	/**
+	 * 标签名称
+	 */
+	@ApiModelProperty(value="标签名称")
+	private String questionName;
+	
+	/**
+	 * 标签归属
+	 */
+	@ApiModelProperty(value="标签归属")
+	private Integer questionType;
+	
+	/**
+	 * 本体
+	 */
+	@ApiModelProperty(value="本体")
+	private String retrievalSelfName;
+	
+	/**
+	 * 别名
+	 */
+	@ApiModelProperty(value="别名")
+	private String retrievalNames;
+	
+	/**
+	 * 子项
+	 */
+	@ApiModelProperty(value="子项")
+	private String retrievalSonNames;
+	
+    /**
+     * 操作人姓名
+     */
+	@ApiModelProperty(value="操作人姓名")
+    private String operatorName;
+    
+    /**
+     * 操作时间
+     */
+	@ApiModelProperty(value="操作时间")
+    private Date gmtOperate;
+
+}

+ 60 - 60
icssman-service/src/main/java/com/diagbot/dto/VersionDetailDTO.java

@@ -1,60 +1,60 @@
-package com.diagbot.dto;
-
-import java.util.Date;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月21日 上午11:12:12
- */
-@Getter
-@Setter
-public class VersionDetailDTO {
-	
-	private Long id;
-
-    /**
-     * 记录创建时间
-     */
-    private Date gmtCreate;
-
-    /**
-     * 创建人,0表示无创建人值
-     */
-    //private String creator;
-
-    private String modifierid;
-    /**
-     * 版本主表id
-     */
-    private Long versionId;
-
-    /**
-     * 标题
-     */
-    private String title;
-
-    /**
-     * 描述
-     */
-    private String description;
-
-    /**
-     * 排序号
-     */
-    private String orderNo;
-
-    /**
-     * 1:启动,0:不启用
-     */
-    private String status;
-
-    /**
-     * 备注
-     */
-    private String remark;
-}
+package com.diagbot.dto;
+
+import java.util.Date;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月21日 上午11:12:12
+ */
+@Getter
+@Setter
+public class VersionDetailDTO {
+	
+	private Long id;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    //private String creator;
+
+    private String modifierid;
+    /**
+     * 版本主表id
+     */
+    private Long versionId;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 排序号
+     */
+    private String orderNo;
+
+    /**
+     * 1:启动,0:不启用
+     */
+    private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 51 - 51
icssman-service/src/main/java/com/diagbot/dto/VersionWrapperDTO.java

@@ -1,51 +1,51 @@
-package com.diagbot.dto;
-
-import java.util.Date;
-import java.util.List;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月21日 上午11:09:33
- */
-@Getter
-@Setter
-public class VersionWrapperDTO {
-	
-	private Long id;
-	/**
-	 * 记录创建时间
-	 */
-	private Date gmtCreate;
-
-	/**
-	 * 创建人,0表示无创建人值
-	 */
-	//private String creator;
-	
-	private String modifierid;
-	/**
-	 * 名称
-	 */
-	private String name;
-	@JsonFormat(pattern = "yyyy-MM-dd")
-	private Date refreshTime;
-
-	/**
-	 * 1:启动,0:不启用
-	 */
-	private String status;
-
-	private List<VersionDetailDTO> detail;
-	/**
-	 * 备注
-	 */
-	private String remark;
-
-}
+package com.diagbot.dto;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月21日 上午11:09:33
+ */
+@Getter
+@Setter
+public class VersionWrapperDTO {
+	
+	private Long id;
+	/**
+	 * 记录创建时间
+	 */
+	private Date gmtCreate;
+
+	/**
+	 * 创建人,0表示无创建人值
+	 */
+	//private String creator;
+	
+	private String modifierid;
+	/**
+	 * 名称
+	 */
+	private String name;
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date refreshTime;
+
+	/**
+	 * 1:启动,0:不启用
+	 */
+	private String status;
+
+	private List<VersionDetailDTO> detail;
+	/**
+	 * 备注
+	 */
+	private String remark;
+
+}

+ 47 - 47
icssman-service/src/main/java/com/diagbot/enums/DisclaimerCodeEnum.java

@@ -1,47 +1,47 @@
-package com.diagbot.enums;
-
-import com.diagbot.core.KeyedNamed;
-
-import lombok.Setter;
-
-public enum DisclaimerCodeEnum implements KeyedNamed{
-	
-	DiagnoseDisclaimer(1, "诊断免责信息"),
-	PushLiability(2, "推送免责信息"),
-	Disclaimer(3,"免责声明");
-	
-	@Setter
-    private Integer key;
-
-    @Setter
-    private String name;
-
-    DisclaimerCodeEnum(Integer key, String name) {
-        this.key = key;
-        this.name = name;
-    }
-
-    public static DisclaimerCodeEnum getEnum(Integer key) {
-        for (DisclaimerCodeEnum item : DisclaimerCodeEnum.values()) {
-            if (item.key == key) {
-                return item;
-            }
-        }
-        return null;
-    }
-
-    public static String getName(Integer key) {
-    	DisclaimerCodeEnum item = getEnum(key);
-        return item != null ? item.name : null;
-    }
-
-    @Override
-    public int getKey() {
-        return key;
-    }
-
-    @Override
-    public String getName() {
-        return name;
-    }
-}
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+
+import lombok.Setter;
+
+public enum DisclaimerCodeEnum implements KeyedNamed{
+	
+	DiagnoseDisclaimer(1, "诊断免责信息"),
+	PushLiability(2, "推送免责信息"),
+	Disclaimer(3,"免责声明");
+	
+	@Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    DisclaimerCodeEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static DisclaimerCodeEnum getEnum(Integer key) {
+        for (DisclaimerCodeEnum item : DisclaimerCodeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+    	DisclaimerCodeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 468 - 468
icssman-service/src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -1,468 +1,468 @@
-package com.diagbot.facade;
-
-import java.io.InputStream;
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import org.apache.commons.lang.time.DateFormatUtils;
-import org.apache.poi.hssf.usermodel.HSSFDateUtil;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-import org.springframework.web.multipart.MultipartFile;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.diagbot.client.UserServiceClient;
-import com.diagbot.dto.GetRetrievalsByTagDTO;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.RetrievalExcelImDTO;
-import com.diagbot.dto.RetrievalListDTO;
-import com.diagbot.entity.QuestionInfo;
-import com.diagbot.entity.Retrieval;
-import com.diagbot.entity.RetrievalMapping;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.enums.TagTypeEnum;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.exception.CommonException;
-import com.diagbot.service.RetrievalMappingService;
-import com.diagbot.service.RetrievalService;
-import com.diagbot.service.impl.RetrievalServiceImpl;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.ListUtil;
-import com.diagbot.util.StringUtil;
-import com.diagbot.util.UserUtils;
-import com.diagbot.vo.AddTagRetrievalDetailVO;
-import com.diagbot.vo.AddTagRetrievalVO;
-import com.diagbot.vo.DelRetrievalsByQuesIdVO;
-import com.diagbot.vo.GetRetrievalsByTagVO;
-import com.diagbot.vo.RetrievalListVO;
-
-/**
- * @author rgb
- * @Description
- * @time 2018年12月5日下午4:53:59
- */
-@Component
-public class RetrievalFacade extends RetrievalServiceImpl {
-
-    @Autowired
-    private RetrievalMappingFacade retrievalMappingFacade;
-    @Autowired
-    private QuestionFacade questionFacade;
-    @Autowired
-    private UserServiceClient userServiceClient;
-    @Autowired
-    @Qualifier("retrievalServiceImpl")
-    private RetrievalService retrievalService;
-    @Autowired
-    @Qualifier("retrievalMappingServiceImpl")
-    private RetrievalMappingService retrievalMappingService;
-    
-    /**
-     * 根据标签获取同义词
-     *
-     * @param getRetrievalsByTagVO
-     * @return
-     */
-    public Map<Integer, List<GetRetrievalsByTagDTO>> getRetrievalsByTag(GetRetrievalsByTagVO getRetrievalsByTagVO) {
-        List<GetRetrievalsByTagDTO> retList = baseMapper.getRetrievalsByTag(getRetrievalsByTagVO);
-        if (ListUtil.isEmpty(retList)) {
-            throw new CommonException(CommonErrorCode.NOT_EXISTS);
-        }
-        
-        Map<Integer, List<GetRetrievalsByTagDTO>> retMap = retList.stream().collect(Collectors.groupingBy(GetRetrievalsByTagDTO::getRetrievalType));
-        
-        return retMap;
-    }
-
-    /**
-     * 根据映射关系删除标签的同义词
-     *
-     * @param delRetrievalsByQuesIdVO
-     * @return
-     */
-    public Boolean delRetrievalsByQuesId(DelRetrievalsByQuesIdVO delRetrievalsByQuesIdVO) {
-        QueryWrapper<RetrievalMapping> mappingQe = new QueryWrapper<>();
-        mappingQe.eq("question_id", delRetrievalsByQuesIdVO.getQuestionId());
-        if (retrievalMappingFacade.count(mappingQe) == 0) {
-            throw new CommonException(CommonErrorCode.NOT_EXISTS);
-        }
-        String userId = UserUtils.getCurrentPrincipleID();
-        RetrievalMapping retrievalMapping = new RetrievalMapping();
-        retrievalMapping.setGmtModified(DateUtil.now());
-        retrievalMapping.setModifier(userId);
-        retrievalMapping.setIsDeleted(IsDeleteEnum.Y.getKey());
-
-        retrievalMappingFacade.update(retrievalMapping, mappingQe);
-        return true;
-    }
-    
-    /**
-     * 添加或者编辑标签同义词
-     *
-     * @param addTagRetrievalVO
-     * @return
-     */
-    public Boolean addTagRetrieval(AddTagRetrievalVO addTagRetrievalVO) {
-        if (addTagRetrievalVO.getItemList().stream().distinct().count() != addTagRetrievalVO.getItemList().size()) {
-            throw new CommonException(CommonErrorCode.RPC_ERROR,
-                    "本体/同义/子项名称重复("+addTagRetrievalVO.getQuestionName()+")!");
-        }
-        
-        long typeOneCou = addTagRetrievalVO.getItemList().stream().filter(i->i.getRetrievalType()==1).count();
-        if(typeOneCou==0){
-        	throw new CommonException(CommonErrorCode.RPC_ERROR,
-                    "数据不完整("+addTagRetrievalVO.getQuestionName()+")!");
-        }
-        if(typeOneCou>1){
-        	throw new CommonException(CommonErrorCode.RPC_ERROR,
-                    "本体类型数据重复("+addTagRetrievalVO.getQuestionName()+")!");
-        }
-
-        Date now = DateUtil.now();
-        String userId = UserUtils.getCurrentPrincipleID();
-
-        Map<String, AddTagRetrievalDetailVO> detailMap = addTagRetrievalVO.getItemList().stream().collect(Collectors.toMap(AddTagRetrievalDetailVO::getRetrievalName, i -> i));
-        List<String> retrievalNames = addTagRetrievalVO.getItemList().stream().map(i -> i.getRetrievalName()).collect(Collectors.toList());
-
-        QueryWrapper<Retrieval> retrievalQe = new QueryWrapper<Retrieval>();
-        retrievalQe.in("name", retrievalNames);
-        retrievalQe.eq("is_deleted", IsDeleteEnum.N.getKey());
-        Map<String, Retrieval> retrievalMap = this.list(retrievalQe).stream().collect(Collectors.toMap(Retrieval::getName, i -> i));
-
-        List<Retrieval> saveOrUpdateRetrievals = new ArrayList<>();
-        List<Retrieval> retrievals = new ArrayList<>();
-        addTagRetrievalVO.getItemList().forEach(i -> {
-            Retrieval retrieval = retrievalMap.get(i.getRetrievalName());
-            if (retrieval == null) {
-                retrieval = new Retrieval();
-                retrieval.setName(i.getRetrievalName());
-                retrieval.setSpell(i.getRetrievalSpell());
-                retrieval.setCreator(userId);
-                retrieval.setGmtCreate(now);
-                retrieval.setModifier(userId);
-                retrieval.setGmtModified(now);
-                saveOrUpdateRetrievals.add(retrieval);
-            } else if (!retrieval.getSpell().equals(i.getRetrievalSpell())) {
-                retrieval.setSpell(i.getRetrievalSpell());
-                retrieval.setModifier(userId);
-                retrieval.setGmtModified(now);
-                saveOrUpdateRetrievals.add(retrieval);
-            } else {
-                retrievals.add(retrieval);
-            }
-        });
-        if(saveOrUpdateRetrievals.size()>0){
-        	retrievalService.saveOrUpdateBatch(saveOrUpdateRetrievals);
-        }
-        retrievals.addAll(saveOrUpdateRetrievals);
-        List<Long> retrievalIds = retrievals.stream().map(i -> i.getId()).collect(Collectors.toList());
-
-        QueryWrapper<RetrievalMapping> retrievalMappingQe = new QueryWrapper<RetrievalMapping>();
-        retrievalMappingQe.eq("question_id", addTagRetrievalVO.getQuestionId());
-        List<RetrievalMapping> retrievalMappings = retrievalMappingFacade.list(retrievalMappingQe);
-        Map<Long, RetrievalMapping> retrievalMappingMap = retrievalMappings.stream().collect(Collectors.toMap(RetrievalMapping::getRetrievalId, i -> i));
-
-        List<RetrievalMapping> addOrUpdateRetrievalMappings = new ArrayList<>();
-        retrievalMappings.stream().filter(i ->i.getIsDeleted().equals(IsDeleteEnum.N.getKey())&&!retrievalIds.contains(i.getRetrievalId())).forEach(i -> {
-            i.setIsDeleted(IsDeleteEnum.Y.getKey());
-            i.setGmtModified(now);
-            i.setModifier(userId);
-            addOrUpdateRetrievalMappings.add(i);
-        });
-
-        retrievals.forEach(i -> {
-            RetrievalMapping retrievalMapping = retrievalMappingMap.get(i.getId());
-            AddTagRetrievalDetailVO detail = detailMap.get(i.getName());
-            if (retrievalMapping == null) {
-                retrievalMapping = new RetrievalMapping();
-                retrievalMapping.setQuestionId(addTagRetrievalVO.getQuestionId());
-                retrievalMapping.setRetrievalId(i.getId());
-                retrievalMapping.setGmtCreate(now);
-                retrievalMapping.setGmtModified(now);
-                retrievalMapping.setCreator(userId);
-                retrievalMapping.setModifier(userId);
-                retrievalMapping.setShowType(detail.getRetrievalType());
-                addOrUpdateRetrievalMappings.add(retrievalMapping);
-            } else {
-                if (detail.getRetrievalType() != retrievalMapping.getShowType()
-                        || retrievalMapping.getIsDeleted().equals(IsDeleteEnum.Y.getKey())) {
-                    retrievalMapping.setShowType(detailMap.get(i.getName()).getRetrievalType());
-                    retrievalMapping.setGmtModified(now);
-                    retrievalMapping.setModifier(userId);
-                    retrievalMapping.setIsDeleted(IsDeleteEnum.N.getKey());
-                    addOrUpdateRetrievalMappings.add(retrievalMapping);
-                }
-            }
-        });
-
-        if(ListUtil.isNotEmpty(addOrUpdateRetrievalMappings)){
-        	retrievalMappingService.saveOrUpdateBatch(addOrUpdateRetrievalMappings);
-        }
-        return true;
-    }
-    
-    /**
-     * 获取标签同义词列表
-     *
-     * @param retrievalListVO
-     * @return
-     */
-    public IPage<RetrievalListDTO> retrievalList(RetrievalListVO retrievalListVO) {
-        IPage<RetrievalListDTO> ipage = this.getRetrievalList(retrievalListVO);
-
-        List<RetrievalListDTO> retrievalListDTOList = ipage.getRecords();
-        if (ListUtil.isEmpty(retrievalListDTOList)) {
-            return ipage;
-        }
-
-        List<Long> questionIds = retrievalListDTOList.stream().map(i -> i.getQuestionId()).collect(Collectors.toList());
-        
-        Map<Long,Integer> questionInfoTypeNameMap = questionFacade.listByIds(questionIds).stream().collect(Collectors.toMap(QuestionInfo::getId, i->i.getType()));
-
-        QueryWrapper<RetrievalMapping> retrievalMappingQe = new QueryWrapper<RetrievalMapping>();
-        retrievalMappingQe.in("question_id", questionIds);
-        List<RetrievalMapping> retrievalMappings = retrievalMappingFacade.list(retrievalMappingQe);
-        Map<Long, List<RetrievalMapping>> retrievalMappingListMap = retrievalMappings.stream().collect(Collectors.groupingBy(RetrievalMapping::getQuestionId));
-
-        List<Long> retrievalIds = retrievalMappings.stream().map(i -> i.getRetrievalId()).distinct().collect(Collectors.toList());
-        Map<Long, Retrieval> retrievalMap = this.listByIds(retrievalIds).stream().filter(i -> i.getIsDeleted().equals("N")).collect(Collectors.toMap(Retrieval::getId, i -> i));
-
-        retrievalListDTOList.forEach(retrievalListDTO -> {
-            List<RetrievalMapping> retrievalMappingList = retrievalMappingListMap.get(retrievalListDTO.getQuestionId());
-            retrievalMappingList = retrievalMappingList.stream().filter(i -> retrievalMap.get(i.getRetrievalId())!=null).sorted((t1, t2) -> t2.getGmtModified().compareTo(t1.getGmtModified())).collect(Collectors.toList());
-            retrievalListDTO.setOperatorName(retrievalMappingList.get(0).getModifier());
-            retrievalListDTO.setRetrievalSelfName(retrievalMappingList.stream().filter(i -> i.getShowType() == 1 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining("、")));
-            retrievalListDTO.setRetrievalNames(retrievalMappingList.stream().filter(i -> i.getShowType() == 2 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining("、")));
-            retrievalListDTO.setRetrievalSonNames(retrievalMappingList.stream().filter(i -> i.getShowType() == 3 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining("、")));
-            
-            retrievalListDTO.setQuestionType(questionInfoTypeNameMap.get(retrievalListDTO.getQuestionId()));
-        });
-
-        List<String> ids = retrievalListDTOList.stream().map(i -> i.getOperatorName()).collect(Collectors.toList());
-        RespDTO<Map<String, String>> respDTO = userServiceClient.getUserInfoByIds(ids);
-        if (respDTO == null || !CommonErrorCode.OK.getCode().equals(respDTO.code)) {
-            throw new CommonException(CommonErrorCode.RPC_ERROR,
-                    "获取用户信息失败");
-        }
-
-        retrievalListDTOList.forEach(i -> i.setOperatorName(respDTO.data.get(i.getOperatorName())));
-        ipage.setRecords(retrievalListDTOList);
-        return ipage;
-    }
-
-    /**
-     * 同义词excel文件导入
-     *
-     * @param file
-     * @return
-     */
-    public RetrievalExcelImDTO retrievalExcelIm(MultipartFile file) {
-        List<AddTagRetrievalVO> addTagRetrievalVOList = new ArrayList<>();
-        List<AddTagRetrievalDetailVO> detailList = new ArrayList<>();
-        List<AddTagRetrievalDetailVO> detailList_ = new ArrayList<>();
-        StringBuffer sbf = new StringBuffer();
-        InputStream inputStream = null;
-        Workbook wb = null;
-        try {
-            if (!file.isEmpty()) {
-                inputStream = file.getInputStream();
-                if (inputStream.available() > 512000) {
-                    sbf.append("文件最大支持500KB!").append("<br/>");
-                } else {
-                    String fileName = file.getOriginalFilename();
-                    if (fileName.lastIndexOf(".") != -1) {
-                        String type = fileName.substring(fileName.lastIndexOf("."));
-                        if (type.equals(".xls")) {
-                            wb = new HSSFWorkbook(inputStream);
-                        } else if (type.equals(".xlsx")) {
-                            wb = new XSSFWorkbook(inputStream);
-                        }
-                        if (wb != null) {
-                            
-                            Sheet sheet = wb.getSheetAt(0);
-                            int count = 0;
-                            String questionName, retrievalName, retrievalSpell, retrievalType;
-                            for (Row row : sheet) {
-                                count++;
-                                if (count == 1 || row == null) {
-                                    continue;
-                                }
-                                questionName = getValue(row.getCell(0)).trim().replace(" ", "");
-                                retrievalName = getValue(row.getCell(1)).trim().replace(" ", "");
-                                retrievalSpell = getValue(row.getCell(2)).trim().replace(" ", "");
-                                retrievalType = getValue(row.getCell(3)).trim().replace(" ", "");
-                                if(StringUtil.isEmpty(questionName) && StringUtil.isEmpty(retrievalName)
-                                        && StringUtil.isEmpty(retrievalSpell) && StringUtil.isEmpty(retrievalType)){
-                                	continue;
-                                }
-                                if (StringUtil.isEmpty(questionName) || StringUtil.isEmpty(retrievalName)
-                                        || StringUtil.isEmpty(retrievalSpell) || StringUtil.isEmpty(retrievalType)) {
-                                    sbf.append("第" + count + "行数据不完整;").append("<br/>");
-                                    continue;
-                                }
-
-                                AddTagRetrievalDetailVO addTagRetrievalDetailVO = new AddTagRetrievalDetailVO();
-                                addTagRetrievalDetailVO.setQuestionName(questionName);
-                                addTagRetrievalDetailVO.setRetrievalName(retrievalName);
-                                addTagRetrievalDetailVO.setRetrievalSpell(retrievalSpell);
-                                addTagRetrievalDetailVO.setRetrievalType(Integer.parseInt(retrievalType));
-                                detailList.add(addTagRetrievalDetailVO);
-                            }
-                        } else {
-                            sbf.append("非excel文件无法解析!").append("<br/>");
-                        }
-                    } else {
-                        sbf.append("未知文件无法解析!").append("<br/>");
-                    }
-                }
-            } else {
-                sbf.append("无文件上传!").append("<br/>");
-            }
-        } catch (Exception e) {
-            sbf.append("解析失败!").append("<br/>");
-        } finally {
-            try {
-                if (wb != null) {
-                    wb.close();
-                }
-                if (inputStream != null) {
-                    inputStream.close();
-                }
-            } catch (Exception e) {
-            }
-        }
-        
-        if(sbf.length()>0){
-        	throw new CommonException(CommonErrorCode.RPC_ERROR,sbf.toString());
-        }
-        
-        if (detailList.size() > 0) {
-            List<String> questionNames = detailList.stream().map(i -> i.getQuestionName()).distinct().collect(Collectors.toList());
-            QueryWrapper<QuestionInfo> questionInfoQe = new QueryWrapper<>();
-            questionInfoQe.in("tag_name", questionNames);
-            List<QuestionInfo> questionInfos = questionFacade.list(questionInfoQe);
-            
-            
-           /* Map<String,Long> quesCouMap = questionInfos.stream().collect(Collectors.groupingBy(QuestionInfo::getTagName, Collectors.counting()));
-            for(String key:quesCouMap.keySet()){
-            	if(quesCouMap.get(key)>1){
-            		sbf.append(key).append(" ");
-            	}
-            }
-            if(sbf.length()>0){
-            	sbf.append("数据不规范");
-            	throw new CommonException(CommonErrorCode.RPC_ERROR,sbf.toString());
-            }*/
-            
-            Map<String, List<QuestionInfo>> questionInfoListMap = questionInfos.stream().collect(Collectors.groupingBy(QuestionInfo::getTagName));
-            if(questionNames.size()==questionInfoListMap.size()){
-            	List<QuestionInfo> questionInfos_ = questionInfos.stream().filter(p->p.getTagType()==TagTypeEnum.T8.getKey()||p.getTagType()==TagTypeEnum.T10.getKey()||p.getTagType()==TagTypeEnum.T11.getKey()).collect(Collectors.toList());
-            	if(questionInfos_.size()>0){
-            		sbf.append("(");
-            		int index = 0;
-            		for(QuestionInfo p:questionInfos_){
-            			sbf.append(p.getTagName()).append("-").append(TagTypeEnum.getName(p.getTagType()));
-            			if(index<questionNames.size()-1){
-                			sbf.append("、");
-                		}
-                		index++;
-            		}
-            		sbf.append(")");
-            		sbf.append("标签不支持导入!");
-            		throw new CommonException(CommonErrorCode.RPC_ERROR,sbf.toString());
-            	}
-            	
-            	
-            	detailList.forEach(i -> {
-            		questionInfoListMap.get(i.getQuestionName()).forEach(j->{
-            			AddTagRetrievalDetailVO addTagRetrievalDetailVO = new AddTagRetrievalDetailVO();
-            			BeanUtil.copyProperties(i, addTagRetrievalDetailVO);
-            			addTagRetrievalDetailVO.setQuestionId(j.getId());
-            			detailList_.add(addTagRetrievalDetailVO);
-            		});
-                });
-            	
-            	
-            	
-            	Map<Long, List<AddTagRetrievalDetailVO>> detailMap = detailList_.stream().collect(Collectors.groupingBy(AddTagRetrievalDetailVO::getQuestionId));
-                for (Long key : detailMap.keySet()) {
-                    AddTagRetrievalVO addTagRetrievalVO = new AddTagRetrievalVO();
-                    addTagRetrievalVO.setQuestionId(key);
-                    addTagRetrievalVO.setQuestionName(detailMap.get(key).get(0).getQuestionName());
-                    addTagRetrievalVO.setItemList(detailMap.get(key));
-                    addTagRetrievalVOList.add(addTagRetrievalVO);
-                }
-            }else{
-            	List<String> questionNames_ = questionNames.stream().filter(t->questionInfoListMap.get(t)==null).collect(Collectors.toList());
-            	sbf.append("标签数据不存在(");
-            	int index = 0;
-            	
-            	for(String k:questionNames_){
-            		sbf.append(k);
-            		if(index<questionNames_.size()-1){
-            			sbf.append("、");
-            		}
-            		index++;
-            	}
-            	sbf.append(");");
-            	throw new CommonException(CommonErrorCode.RPC_ERROR,sbf.toString());
-            }
-        }
-
-        addTagRetrievalVOList.forEach(i -> {
-            addTagRetrieval(i);
-        });
-
-        RetrievalExcelImDTO retrievalExcelImDTO = new RetrievalExcelImDTO();
-        return retrievalExcelImDTO;
-    }
-    
-    @SuppressWarnings("deprecation")
-    private String getValue(Cell cell) {
-        try {
-            Object obj = null;
-            switch (cell.getCellTypeEnum()) {
-                case BOOLEAN:
-                    obj = cell.getBooleanCellValue();
-                    break;
-                case ERROR:
-                    obj = cell.getErrorCellValue();
-                    break;
-                case NUMERIC:
-                    if (HSSFDateUtil.isCellDateFormatted(cell)) {
-                        Date date = cell.getDateCellValue();
-                        obj = DateFormatUtils.format(date, "yyyy-MM-dd");
-                    } else {
-                        obj = cell.getNumericCellValue();
-                        DecimalFormat df = new DecimalFormat("0");
-                        obj = df.format(obj);
-                    }
-
-                    // obj = cell.getNumericCellValue();
-                    break;
-                case STRING:
-                    obj = cell.getStringCellValue();
-                    break;
-                default:
-                    break;
-            }
-            return obj.toString();
-        } catch (Exception e) {
-            return "";
-        }
-    }
-
-}
+package com.diagbot.facade;
+
+import java.io.InputStream;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang.time.DateFormatUtils;
+import org.apache.poi.hssf.usermodel.HSSFDateUtil;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.client.UserServiceClient;
+import com.diagbot.dto.GetRetrievalsByTagDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.RetrievalExcelImDTO;
+import com.diagbot.dto.RetrievalListDTO;
+import com.diagbot.entity.QuestionInfo;
+import com.diagbot.entity.Retrieval;
+import com.diagbot.entity.RetrievalMapping;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.TagTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.RetrievalMappingService;
+import com.diagbot.service.RetrievalService;
+import com.diagbot.service.impl.RetrievalServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.AddTagRetrievalDetailVO;
+import com.diagbot.vo.AddTagRetrievalVO;
+import com.diagbot.vo.DelRetrievalsByQuesIdVO;
+import com.diagbot.vo.GetRetrievalsByTagVO;
+import com.diagbot.vo.RetrievalListVO;
+
+/**
+ * @author rgb
+ * @Description
+ * @time 2018年12月5日下午4:53:59
+ */
+@Component
+public class RetrievalFacade extends RetrievalServiceImpl {
+
+    @Autowired
+    private RetrievalMappingFacade retrievalMappingFacade;
+    @Autowired
+    private QuestionFacade questionFacade;
+    @Autowired
+    private UserServiceClient userServiceClient;
+    @Autowired
+    @Qualifier("retrievalServiceImpl")
+    private RetrievalService retrievalService;
+    @Autowired
+    @Qualifier("retrievalMappingServiceImpl")
+    private RetrievalMappingService retrievalMappingService;
+    
+    /**
+     * 根据标签获取同义词
+     *
+     * @param getRetrievalsByTagVO
+     * @return
+     */
+    public Map<Integer, List<GetRetrievalsByTagDTO>> getRetrievalsByTag(GetRetrievalsByTagVO getRetrievalsByTagVO) {
+        List<GetRetrievalsByTagDTO> retList = baseMapper.getRetrievalsByTag(getRetrievalsByTagVO);
+        if (ListUtil.isEmpty(retList)) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS);
+        }
+        
+        Map<Integer, List<GetRetrievalsByTagDTO>> retMap = retList.stream().collect(Collectors.groupingBy(GetRetrievalsByTagDTO::getRetrievalType));
+        
+        return retMap;
+    }
+
+    /**
+     * 根据映射关系删除标签的同义词
+     *
+     * @param delRetrievalsByQuesIdVO
+     * @return
+     */
+    public Boolean delRetrievalsByQuesId(DelRetrievalsByQuesIdVO delRetrievalsByQuesIdVO) {
+        QueryWrapper<RetrievalMapping> mappingQe = new QueryWrapper<>();
+        mappingQe.eq("question_id", delRetrievalsByQuesIdVO.getQuestionId());
+        if (retrievalMappingFacade.count(mappingQe) == 0) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS);
+        }
+        String userId = UserUtils.getCurrentPrincipleID();
+        RetrievalMapping retrievalMapping = new RetrievalMapping();
+        retrievalMapping.setGmtModified(DateUtil.now());
+        retrievalMapping.setModifier(userId);
+        retrievalMapping.setIsDeleted(IsDeleteEnum.Y.getKey());
+
+        retrievalMappingFacade.update(retrievalMapping, mappingQe);
+        return true;
+    }
+    
+    /**
+     * 添加或者编辑标签同义词
+     *
+     * @param addTagRetrievalVO
+     * @return
+     */
+    public Boolean addTagRetrieval(AddTagRetrievalVO addTagRetrievalVO) {
+        if (addTagRetrievalVO.getItemList().stream().distinct().count() != addTagRetrievalVO.getItemList().size()) {
+            throw new CommonException(CommonErrorCode.RPC_ERROR,
+                    "本体/同义/子项名称重复("+addTagRetrievalVO.getQuestionName()+")!");
+        }
+        
+        long typeOneCou = addTagRetrievalVO.getItemList().stream().filter(i->i.getRetrievalType()==1).count();
+        if(typeOneCou==0){
+        	throw new CommonException(CommonErrorCode.RPC_ERROR,
+                    "数据不完整("+addTagRetrievalVO.getQuestionName()+")!");
+        }
+        if(typeOneCou>1){
+        	throw new CommonException(CommonErrorCode.RPC_ERROR,
+                    "本体类型数据重复("+addTagRetrievalVO.getQuestionName()+")!");
+        }
+
+        Date now = DateUtil.now();
+        String userId = UserUtils.getCurrentPrincipleID();
+
+        Map<String, AddTagRetrievalDetailVO> detailMap = addTagRetrievalVO.getItemList().stream().collect(Collectors.toMap(AddTagRetrievalDetailVO::getRetrievalName, i -> i));
+        List<String> retrievalNames = addTagRetrievalVO.getItemList().stream().map(i -> i.getRetrievalName()).collect(Collectors.toList());
+
+        QueryWrapper<Retrieval> retrievalQe = new QueryWrapper<Retrieval>();
+        retrievalQe.in("name", retrievalNames);
+        retrievalQe.eq("is_deleted", IsDeleteEnum.N.getKey());
+        Map<String, Retrieval> retrievalMap = this.list(retrievalQe).stream().collect(Collectors.toMap(Retrieval::getName, i -> i));
+
+        List<Retrieval> saveOrUpdateRetrievals = new ArrayList<>();
+        List<Retrieval> retrievals = new ArrayList<>();
+        addTagRetrievalVO.getItemList().forEach(i -> {
+            Retrieval retrieval = retrievalMap.get(i.getRetrievalName());
+            if (retrieval == null) {
+                retrieval = new Retrieval();
+                retrieval.setName(i.getRetrievalName());
+                retrieval.setSpell(i.getRetrievalSpell());
+                retrieval.setCreator(userId);
+                retrieval.setGmtCreate(now);
+                retrieval.setModifier(userId);
+                retrieval.setGmtModified(now);
+                saveOrUpdateRetrievals.add(retrieval);
+            } else if (!retrieval.getSpell().equals(i.getRetrievalSpell())) {
+                retrieval.setSpell(i.getRetrievalSpell());
+                retrieval.setModifier(userId);
+                retrieval.setGmtModified(now);
+                saveOrUpdateRetrievals.add(retrieval);
+            } else {
+                retrievals.add(retrieval);
+            }
+        });
+        if(saveOrUpdateRetrievals.size()>0){
+        	retrievalService.saveOrUpdateBatch(saveOrUpdateRetrievals);
+        }
+        retrievals.addAll(saveOrUpdateRetrievals);
+        List<Long> retrievalIds = retrievals.stream().map(i -> i.getId()).collect(Collectors.toList());
+
+        QueryWrapper<RetrievalMapping> retrievalMappingQe = new QueryWrapper<RetrievalMapping>();
+        retrievalMappingQe.eq("question_id", addTagRetrievalVO.getQuestionId());
+        List<RetrievalMapping> retrievalMappings = retrievalMappingFacade.list(retrievalMappingQe);
+        Map<Long, RetrievalMapping> retrievalMappingMap = retrievalMappings.stream().collect(Collectors.toMap(RetrievalMapping::getRetrievalId, i -> i));
+
+        List<RetrievalMapping> addOrUpdateRetrievalMappings = new ArrayList<>();
+        retrievalMappings.stream().filter(i ->i.getIsDeleted().equals(IsDeleteEnum.N.getKey())&&!retrievalIds.contains(i.getRetrievalId())).forEach(i -> {
+            i.setIsDeleted(IsDeleteEnum.Y.getKey());
+            i.setGmtModified(now);
+            i.setModifier(userId);
+            addOrUpdateRetrievalMappings.add(i);
+        });
+
+        retrievals.forEach(i -> {
+            RetrievalMapping retrievalMapping = retrievalMappingMap.get(i.getId());
+            AddTagRetrievalDetailVO detail = detailMap.get(i.getName());
+            if (retrievalMapping == null) {
+                retrievalMapping = new RetrievalMapping();
+                retrievalMapping.setQuestionId(addTagRetrievalVO.getQuestionId());
+                retrievalMapping.setRetrievalId(i.getId());
+                retrievalMapping.setGmtCreate(now);
+                retrievalMapping.setGmtModified(now);
+                retrievalMapping.setCreator(userId);
+                retrievalMapping.setModifier(userId);
+                retrievalMapping.setShowType(detail.getRetrievalType());
+                addOrUpdateRetrievalMappings.add(retrievalMapping);
+            } else {
+                if (detail.getRetrievalType() != retrievalMapping.getShowType()
+                        || retrievalMapping.getIsDeleted().equals(IsDeleteEnum.Y.getKey())) {
+                    retrievalMapping.setShowType(detailMap.get(i.getName()).getRetrievalType());
+                    retrievalMapping.setGmtModified(now);
+                    retrievalMapping.setModifier(userId);
+                    retrievalMapping.setIsDeleted(IsDeleteEnum.N.getKey());
+                    addOrUpdateRetrievalMappings.add(retrievalMapping);
+                }
+            }
+        });
+
+        if(ListUtil.isNotEmpty(addOrUpdateRetrievalMappings)){
+        	retrievalMappingService.saveOrUpdateBatch(addOrUpdateRetrievalMappings);
+        }
+        return true;
+    }
+    
+    /**
+     * 获取标签同义词列表
+     *
+     * @param retrievalListVO
+     * @return
+     */
+    public IPage<RetrievalListDTO> retrievalList(RetrievalListVO retrievalListVO) {
+        IPage<RetrievalListDTO> ipage = this.getRetrievalList(retrievalListVO);
+
+        List<RetrievalListDTO> retrievalListDTOList = ipage.getRecords();
+        if (ListUtil.isEmpty(retrievalListDTOList)) {
+            return ipage;
+        }
+
+        List<Long> questionIds = retrievalListDTOList.stream().map(i -> i.getQuestionId()).collect(Collectors.toList());
+        
+        Map<Long,Integer> questionInfoTypeNameMap = questionFacade.listByIds(questionIds).stream().collect(Collectors.toMap(QuestionInfo::getId, i->i.getType()));
+
+        QueryWrapper<RetrievalMapping> retrievalMappingQe = new QueryWrapper<RetrievalMapping>();
+        retrievalMappingQe.in("question_id", questionIds);
+        List<RetrievalMapping> retrievalMappings = retrievalMappingFacade.list(retrievalMappingQe);
+        Map<Long, List<RetrievalMapping>> retrievalMappingListMap = retrievalMappings.stream().collect(Collectors.groupingBy(RetrievalMapping::getQuestionId));
+
+        List<Long> retrievalIds = retrievalMappings.stream().map(i -> i.getRetrievalId()).distinct().collect(Collectors.toList());
+        Map<Long, Retrieval> retrievalMap = this.listByIds(retrievalIds).stream().filter(i -> i.getIsDeleted().equals("N")).collect(Collectors.toMap(Retrieval::getId, i -> i));
+
+        retrievalListDTOList.forEach(retrievalListDTO -> {
+            List<RetrievalMapping> retrievalMappingList = retrievalMappingListMap.get(retrievalListDTO.getQuestionId());
+            retrievalMappingList = retrievalMappingList.stream().filter(i -> retrievalMap.get(i.getRetrievalId())!=null).sorted((t1, t2) -> t2.getGmtModified().compareTo(t1.getGmtModified())).collect(Collectors.toList());
+            retrievalListDTO.setOperatorName(retrievalMappingList.get(0).getModifier());
+            retrievalListDTO.setRetrievalSelfName(retrievalMappingList.stream().filter(i -> i.getShowType() == 1 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining("、")));
+            retrievalListDTO.setRetrievalNames(retrievalMappingList.stream().filter(i -> i.getShowType() == 2 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining("、")));
+            retrievalListDTO.setRetrievalSonNames(retrievalMappingList.stream().filter(i -> i.getShowType() == 3 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining("、")));
+            
+            retrievalListDTO.setQuestionType(questionInfoTypeNameMap.get(retrievalListDTO.getQuestionId()));
+        });
+
+        List<String> ids = retrievalListDTOList.stream().map(i -> i.getOperatorName()).collect(Collectors.toList());
+        RespDTO<Map<String, String>> respDTO = userServiceClient.getUserInfoByIds(ids);
+        if (respDTO == null || !CommonErrorCode.OK.getCode().equals(respDTO.code)) {
+            throw new CommonException(CommonErrorCode.RPC_ERROR,
+                    "获取用户信息失败");
+        }
+
+        retrievalListDTOList.forEach(i -> i.setOperatorName(respDTO.data.get(i.getOperatorName())));
+        ipage.setRecords(retrievalListDTOList);
+        return ipage;
+    }
+
+    /**
+     * 同义词excel文件导入
+     *
+     * @param file
+     * @return
+     */
+    public RetrievalExcelImDTO retrievalExcelIm(MultipartFile file) {
+        List<AddTagRetrievalVO> addTagRetrievalVOList = new ArrayList<>();
+        List<AddTagRetrievalDetailVO> detailList = new ArrayList<>();
+        List<AddTagRetrievalDetailVO> detailList_ = new ArrayList<>();
+        StringBuffer sbf = new StringBuffer();
+        InputStream inputStream = null;
+        Workbook wb = null;
+        try {
+            if (!file.isEmpty()) {
+                inputStream = file.getInputStream();
+                if (inputStream.available() > 512000) {
+                    sbf.append("文件最大支持500KB!").append("<br/>");
+                } else {
+                    String fileName = file.getOriginalFilename();
+                    if (fileName.lastIndexOf(".") != -1) {
+                        String type = fileName.substring(fileName.lastIndexOf("."));
+                        if (type.equals(".xls")) {
+                            wb = new HSSFWorkbook(inputStream);
+                        } else if (type.equals(".xlsx")) {
+                            wb = new XSSFWorkbook(inputStream);
+                        }
+                        if (wb != null) {
+                            
+                            Sheet sheet = wb.getSheetAt(0);
+                            int count = 0;
+                            String questionName, retrievalName, retrievalSpell, retrievalType;
+                            for (Row row : sheet) {
+                                count++;
+                                if (count == 1 || row == null) {
+                                    continue;
+                                }
+                                questionName = getValue(row.getCell(0)).trim().replace(" ", "");
+                                retrievalName = getValue(row.getCell(1)).trim().replace(" ", "");
+                                retrievalSpell = getValue(row.getCell(2)).trim().replace(" ", "");
+                                retrievalType = getValue(row.getCell(3)).trim().replace(" ", "");
+                                if(StringUtil.isEmpty(questionName) && StringUtil.isEmpty(retrievalName)
+                                        && StringUtil.isEmpty(retrievalSpell) && StringUtil.isEmpty(retrievalType)){
+                                	continue;
+                                }
+                                if (StringUtil.isEmpty(questionName) || StringUtil.isEmpty(retrievalName)
+                                        || StringUtil.isEmpty(retrievalSpell) || StringUtil.isEmpty(retrievalType)) {
+                                    sbf.append("第" + count + "行数据不完整;").append("<br/>");
+                                    continue;
+                                }
+
+                                AddTagRetrievalDetailVO addTagRetrievalDetailVO = new AddTagRetrievalDetailVO();
+                                addTagRetrievalDetailVO.setQuestionName(questionName);
+                                addTagRetrievalDetailVO.setRetrievalName(retrievalName);
+                                addTagRetrievalDetailVO.setRetrievalSpell(retrievalSpell);
+                                addTagRetrievalDetailVO.setRetrievalType(Integer.parseInt(retrievalType));
+                                detailList.add(addTagRetrievalDetailVO);
+                            }
+                        } else {
+                            sbf.append("非excel文件无法解析!").append("<br/>");
+                        }
+                    } else {
+                        sbf.append("未知文件无法解析!").append("<br/>");
+                    }
+                }
+            } else {
+                sbf.append("无文件上传!").append("<br/>");
+            }
+        } catch (Exception e) {
+            sbf.append("解析失败!").append("<br/>");
+        } finally {
+            try {
+                if (wb != null) {
+                    wb.close();
+                }
+                if (inputStream != null) {
+                    inputStream.close();
+                }
+            } catch (Exception e) {
+            }
+        }
+        
+        if(sbf.length()>0){
+        	throw new CommonException(CommonErrorCode.RPC_ERROR,sbf.toString());
+        }
+        
+        if (detailList.size() > 0) {
+            List<String> questionNames = detailList.stream().map(i -> i.getQuestionName()).distinct().collect(Collectors.toList());
+            QueryWrapper<QuestionInfo> questionInfoQe = new QueryWrapper<>();
+            questionInfoQe.in("tag_name", questionNames);
+            List<QuestionInfo> questionInfos = questionFacade.list(questionInfoQe);
+            
+            
+           /* Map<String,Long> quesCouMap = questionInfos.stream().collect(Collectors.groupingBy(QuestionInfo::getTagName, Collectors.counting()));
+            for(String key:quesCouMap.keySet()){
+            	if(quesCouMap.get(key)>1){
+            		sbf.append(key).append(" ");
+            	}
+            }
+            if(sbf.length()>0){
+            	sbf.append("数据不规范");
+            	throw new CommonException(CommonErrorCode.RPC_ERROR,sbf.toString());
+            }*/
+            
+            Map<String, List<QuestionInfo>> questionInfoListMap = questionInfos.stream().collect(Collectors.groupingBy(QuestionInfo::getTagName));
+            if(questionNames.size()==questionInfoListMap.size()){
+            	List<QuestionInfo> questionInfos_ = questionInfos.stream().filter(p->p.getTagType()==TagTypeEnum.T8.getKey()||p.getTagType()==TagTypeEnum.T10.getKey()||p.getTagType()==TagTypeEnum.T11.getKey()).collect(Collectors.toList());
+            	if(questionInfos_.size()>0){
+            		sbf.append("(");
+            		int index = 0;
+            		for(QuestionInfo p:questionInfos_){
+            			sbf.append(p.getTagName()).append("-").append(TagTypeEnum.getName(p.getTagType()));
+            			if(index<questionNames.size()-1){
+                			sbf.append("、");
+                		}
+                		index++;
+            		}
+            		sbf.append(")");
+            		sbf.append("标签不支持导入!");
+            		throw new CommonException(CommonErrorCode.RPC_ERROR,sbf.toString());
+            	}
+            	
+            	
+            	detailList.forEach(i -> {
+            		questionInfoListMap.get(i.getQuestionName()).forEach(j->{
+            			AddTagRetrievalDetailVO addTagRetrievalDetailVO = new AddTagRetrievalDetailVO();
+            			BeanUtil.copyProperties(i, addTagRetrievalDetailVO);
+            			addTagRetrievalDetailVO.setQuestionId(j.getId());
+            			detailList_.add(addTagRetrievalDetailVO);
+            		});
+                });
+            	
+            	
+            	
+            	Map<Long, List<AddTagRetrievalDetailVO>> detailMap = detailList_.stream().collect(Collectors.groupingBy(AddTagRetrievalDetailVO::getQuestionId));
+                for (Long key : detailMap.keySet()) {
+                    AddTagRetrievalVO addTagRetrievalVO = new AddTagRetrievalVO();
+                    addTagRetrievalVO.setQuestionId(key);
+                    addTagRetrievalVO.setQuestionName(detailMap.get(key).get(0).getQuestionName());
+                    addTagRetrievalVO.setItemList(detailMap.get(key));
+                    addTagRetrievalVOList.add(addTagRetrievalVO);
+                }
+            }else{
+            	List<String> questionNames_ = questionNames.stream().filter(t->questionInfoListMap.get(t)==null).collect(Collectors.toList());
+            	sbf.append("标签数据不存在(");
+            	int index = 0;
+            	
+            	for(String k:questionNames_){
+            		sbf.append(k);
+            		if(index<questionNames_.size()-1){
+            			sbf.append("、");
+            		}
+            		index++;
+            	}
+            	sbf.append(");");
+            	throw new CommonException(CommonErrorCode.RPC_ERROR,sbf.toString());
+            }
+        }
+
+        addTagRetrievalVOList.forEach(i -> {
+            addTagRetrieval(i);
+        });
+
+        RetrievalExcelImDTO retrievalExcelImDTO = new RetrievalExcelImDTO();
+        return retrievalExcelImDTO;
+    }
+    
+    @SuppressWarnings("deprecation")
+    private String getValue(Cell cell) {
+        try {
+            Object obj = null;
+            switch (cell.getCellTypeEnum()) {
+                case BOOLEAN:
+                    obj = cell.getBooleanCellValue();
+                    break;
+                case ERROR:
+                    obj = cell.getErrorCellValue();
+                    break;
+                case NUMERIC:
+                    if (HSSFDateUtil.isCellDateFormatted(cell)) {
+                        Date date = cell.getDateCellValue();
+                        obj = DateFormatUtils.format(date, "yyyy-MM-dd");
+                    } else {
+                        obj = cell.getNumericCellValue();
+                        DecimalFormat df = new DecimalFormat("0");
+                        obj = df.format(obj);
+                    }
+
+                    // obj = cell.getNumericCellValue();
+                    break;
+                case STRING:
+                    obj = cell.getStringCellValue();
+                    break;
+                default:
+                    break;
+            }
+            return obj.toString();
+        } catch (Exception e) {
+            return "";
+        }
+    }
+
+}

+ 40 - 40
icssman-service/src/main/java/com/diagbot/facade/RetrievalMappingFacade.java

@@ -1,40 +1,40 @@
-/**
- *
- */
-package com.diagbot.facade;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.stereotype.Component;
-
-import com.diagbot.service.impl.RetrievalMappingServiceImpl;
-import com.diagbot.util.ListUtil;
-
-/**
- * @author rgb
- * @Description
- * @time 2018年12月5日下午4:53:59
- */
-@Component
-public class RetrievalMappingFacade extends RetrievalMappingServiceImpl {
-	
-	/**
-	 * 根据标签id集合获取标签别名个数
-	 * @param ids
-	 * @return questionId-标签id,cou-别名个数
-	 */
-	public Map<Long,Long> getMapCouByQuesIds(List<Long> ids){
-		Map<Long,Long> retMap = new HashMap<Long,Long>();
-		if(ListUtil.isEmpty(ids)){
-			return retMap;
-		}
-		this.baseMapper.getMapCouByQuesIds(ids).forEach(i->{
-			retMap.put((Long)(i.get("questionId")), (Long)(i.get("cou")));
-		});
-		return retMap;
-	}
-
-
-}
+/**
+ *
+ */
+package com.diagbot.facade;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Component;
+
+import com.diagbot.service.impl.RetrievalMappingServiceImpl;
+import com.diagbot.util.ListUtil;
+
+/**
+ * @author rgb
+ * @Description
+ * @time 2018年12月5日下午4:53:59
+ */
+@Component
+public class RetrievalMappingFacade extends RetrievalMappingServiceImpl {
+	
+	/**
+	 * 根据标签id集合获取标签别名个数
+	 * @param ids
+	 * @return questionId-标签id,cou-别名个数
+	 */
+	public Map<Long,Long> getMapCouByQuesIds(List<Long> ids){
+		Map<Long,Long> retMap = new HashMap<Long,Long>();
+		if(ListUtil.isEmpty(ids)){
+			return retMap;
+		}
+		this.baseMapper.getMapCouByQuesIds(ids).forEach(i->{
+			retMap.put((Long)(i.get("questionId")), (Long)(i.get("cou")));
+		});
+		return retMap;
+	}
+
+
+}

+ 223 - 223
icssman-service/src/main/java/com/diagbot/facade/VersionDetailFacade.java

@@ -1,223 +1,223 @@
-package com.diagbot.facade;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.diagbot.client.UserServiceClient;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.VersionDetailDTO;
-import com.diagbot.entity.VersionDetail;
-import com.diagbot.entity.VersionInfo;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.enums.StatusEnum;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.exception.CommonException;
-import com.diagbot.service.impl.VersionDetailServiceImpl;
-import com.diagbot.service.impl.VersionInfoServiceImpl;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.UserUtils;
-import com.diagbot.vo.VersionDetailIdVO;
-import com.diagbot.vo.VersionDetailVO;
-import com.diagbot.vo.VersionInfoAndDetailIdVO;
-
-/**
- * 版本详情
- *
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月21日 上午11:38:40
- */
-@Component
-public class VersionDetailFacade extends VersionDetailServiceImpl {
-
-    @Autowired
-    VersionDetailServiceImpl versionDetailServiceImpl;
-    @Autowired
-    UserServiceClient userServiceClient;
-    @Autowired
-    VersionInfoServiceImpl versionInfoServiceImpl;
-
-    /**
-     * 根据版本id查询版本详情
-     *
-     * @param id
-     * @return
-     */
-    public List<VersionDetailDTO> getById(Long id) {
-        QueryWrapper<VersionDetail> versionDetailQuery = new QueryWrapper<>();
-
-        versionDetailQuery.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("STATUS", StatusEnum.Enable.getKey())
-                .eq("version_id", id).orderByAsc("order_no");
-
-        VersionDetail versionDetail = new VersionDetail();
-        versionDetail.setVersionId(id);
-        List<VersionDetail> datas = list(versionDetailQuery);
-        // System.out.println("List<VersionDetail>==="+datas.toString());
-        List<VersionDetailDTO> dataNew = new ArrayList<VersionDetailDTO>();
-        // 过滤字段
-        for (VersionDetail versionData : datas) {
-            VersionDetailDTO versionDTO = new VersionDetailDTO();
-            versionDTO.setId(versionData.getId());
-            //versionDTO.setCreator(versionData.getCreator());
-            versionDTO.setDescription(versionData.getDescription());
-            versionDTO.setGmtCreate(versionData.getGmtCreate());
-            versionDTO.setOrderNo(versionData.getOrderNo());
-            versionDTO.setRemark(versionData.getRemark());
-            versionDTO.setStatus(versionData.getStatus());
-            versionDTO.setTitle(versionData.getTitle());
-            versionDTO.setVersionId(versionData.getVersionId());
-            dataNew.add(versionDTO);
-        }
-        return dataNew;
-
-    }
-
-    /**
-     * 根据版本ids查询版本详情
-     *
-     * @param ids
-     * @return
-     */
-    public List<VersionDetailDTO> getByIds(List<Long> ids) {
-        QueryWrapper<VersionDetail> versionDetailQuery = new QueryWrapper<>();
-
-        versionDetailQuery.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("STATUS", StatusEnum.Enable.getKey())
-                .in("version_id", ids).orderByAsc("order_no");
-
-        List<VersionDetail> datas = list(versionDetailQuery);
-        List<VersionDetailDTO> dataNew = new ArrayList<VersionDetailDTO>();
-        List<String> modifierid = new ArrayList<>();
-        modifierid = datas.stream().map(ac -> ac.getModifier()).collect(Collectors.toList());
-        Map<String, String> userNames = new HashMap<>();
-        if (modifierid.size() > 0) {
-            RespDTO<Map<String, String>> userNamesDTO = userServiceClient.getUserInfoByIds(modifierid);
-            if (userNamesDTO == null || !CommonErrorCode.OK.getCode().equals(userNamesDTO.code)) {
-                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
-                        "获取所有用户信息失败");
-            }
-            userNames = userNamesDTO.data;
-        }
-		
-		// 过滤字段
-		for (VersionDetail versionData : datas) {
-			VersionDetailDTO versionDTO = new VersionDetailDTO();
-			versionDTO.setId(versionData.getId());
-			//versionDTO.setCreator(versionData.getCreator());
-			versionDTO.setModifierid(userNames.get(versionData.getModifier()));
-			versionDTO.setDescription(versionData.getDescription());
-			versionDTO.setGmtCreate(versionData.getGmtCreate());
-			versionDTO.setOrderNo(versionData.getOrderNo());
-			versionDTO.setRemark(versionData.getRemark());
-			versionDTO.setStatus(versionData.getStatus());
-			versionDTO.setTitle(versionData.getTitle());
-			versionDTO.setVersionId(versionData.getVersionId());
-			dataNew.add(versionDTO);
-		}
-        return dataNew;
-
-    }
-
-    /**
-     * 更新接口
-     *
-     * @param versionDetailVO
-     * @return
-     */
-    public boolean updateVersionDetail(VersionDetailVO versionDetailVO) {
-        // 1.先判断数据是否存在有效
-    	checkExist(versionDetailVO.getDetailId());
-        // 2.修改版本详情信息
-        VersionDetail versionDetail = new VersionDetail();
-
-        versionDetail.setGmtModified(DateUtil.now());// 修改时间
-        versionDetail.setModifier(UserUtils.getCurrentPrincipleID());
-        versionDetail.setTitle(versionDetailVO.getTitle());
-        versionDetail.setOrderNo(versionDetailVO.getOrderNo());
-        versionDetail.setStatus(versionDetailVO.getStatus());
-        versionDetail.setId(versionDetailVO.getDetailId());
-        versionDetail.setDescription(versionDetailVO.getDescription());
-        versionDetail.setRemark(versionDetailVO.getRemark());
-        boolean res = updateById(versionDetail);
-        if (!res) {
-            throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
-        }
-
-        return res;
-    }
-
-    /**
-     * 删除接口
-     *
-     * @param versionDetailIdVO
-     * @return
-     */
-    public boolean cancelVersionDetail(VersionDetailIdVO versionDetailIdVO) {
-    	 // 1.先判断数据是否存在有效
-    	checkExist(versionDetailIdVO.getId());
-        UpdateWrapper<VersionDetail> versionDetailNew = new UpdateWrapper<>();
-        versionDetailNew.in("id", versionDetailIdVO.getId()).eq("is_deleted", IsDeleteEnum.N.getKey()).set("is_deleted",
-                IsDeleteEnum.Y.getKey()).set("modifier", UserUtils.getCurrentPrincipleID()).set("gmt_modified", DateUtil.now());
-        return update(new VersionDetail(), versionDetailNew);
-    }
-
-    /**
-     * 增加明细接口
-     *
-     * @param versionDetailIdVO
-     * @return
-     */
-    public boolean addVersionDetail(VersionInfoAndDetailIdVO versionInfoAndDetailIdVO) {
-
-    	//1.增加明细前先判断主版本号的id是否有效
-        QueryWrapper<VersionInfo> VersionInfoFand = new QueryWrapper<>();
-        VersionInfoFand.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("id", versionInfoAndDetailIdVO.getVersionInfoId());
-        int sum = versionInfoServiceImpl.count(VersionInfoFand);
-        if (sum == 0) {
-            throw new CommonException(CommonErrorCode.NOT_EXISTS, "主版本号数据不存在");
-        }
-        
-        List<VersionDetail> dataNew = new ArrayList<VersionDetail>();
-        List<VersionDetailVO> datas = versionInfoAndDetailIdVO.getVersionDetail();
-        for (VersionDetailVO data : datas) {
-            VersionDetail versionDetail = new VersionDetail();
-            versionDetail.setCreator(UserUtils.getCurrentPrincipleID());
-            versionDetail.setGmtCreate(DateUtil.now());
-            versionDetail.setGmtModified(DateUtil.now());
-            versionDetail.setModifier(UserUtils.getCurrentPrincipleID());
-            versionDetail.setDescription(data.getDescription());
-            versionDetail.setOrderNo(data.getOrderNo());
-            versionDetail.setTitle(data.getTitle());
-            versionDetail.setVersionId(versionInfoAndDetailIdVO.getVersionInfoId());
-            versionDetail.setRemark(data.getRemark());
-            versionDetail.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
-            dataNew.add(versionDetail);
-
-        }
-
-        boolean res = versionDetailServiceImpl.saveBatch(dataNew);
-
-        return res;
-    }
-    /**
-     * 判断数据是否存在有效
-     *
-     * @param id
-     */
-    private void checkExist(Long id) {
-    	 // 1.先判断数据是否存在有效
-    	 QueryWrapper<VersionDetail> VersionInfoFand = new QueryWrapper<>();
-         VersionInfoFand.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("id", id);
-         int sum = count(VersionInfoFand);
-         if (sum == 0) {
-             throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在");
-         }
-    }
-}
+package com.diagbot.facade;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.client.UserServiceClient;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.VersionDetailDTO;
+import com.diagbot.entity.VersionDetail;
+import com.diagbot.entity.VersionInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.VersionDetailServiceImpl;
+import com.diagbot.service.impl.VersionInfoServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.VersionDetailIdVO;
+import com.diagbot.vo.VersionDetailVO;
+import com.diagbot.vo.VersionInfoAndDetailIdVO;
+
+/**
+ * 版本详情
+ *
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月21日 上午11:38:40
+ */
+@Component
+public class VersionDetailFacade extends VersionDetailServiceImpl {
+
+    @Autowired
+    VersionDetailServiceImpl versionDetailServiceImpl;
+    @Autowired
+    UserServiceClient userServiceClient;
+    @Autowired
+    VersionInfoServiceImpl versionInfoServiceImpl;
+
+    /**
+     * 根据版本id查询版本详情
+     *
+     * @param id
+     * @return
+     */
+    public List<VersionDetailDTO> getById(Long id) {
+        QueryWrapper<VersionDetail> versionDetailQuery = new QueryWrapper<>();
+
+        versionDetailQuery.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("STATUS", StatusEnum.Enable.getKey())
+                .eq("version_id", id).orderByAsc("order_no");
+
+        VersionDetail versionDetail = new VersionDetail();
+        versionDetail.setVersionId(id);
+        List<VersionDetail> datas = list(versionDetailQuery);
+        // System.out.println("List<VersionDetail>==="+datas.toString());
+        List<VersionDetailDTO> dataNew = new ArrayList<VersionDetailDTO>();
+        // 过滤字段
+        for (VersionDetail versionData : datas) {
+            VersionDetailDTO versionDTO = new VersionDetailDTO();
+            versionDTO.setId(versionData.getId());
+            //versionDTO.setCreator(versionData.getCreator());
+            versionDTO.setDescription(versionData.getDescription());
+            versionDTO.setGmtCreate(versionData.getGmtCreate());
+            versionDTO.setOrderNo(versionData.getOrderNo());
+            versionDTO.setRemark(versionData.getRemark());
+            versionDTO.setStatus(versionData.getStatus());
+            versionDTO.setTitle(versionData.getTitle());
+            versionDTO.setVersionId(versionData.getVersionId());
+            dataNew.add(versionDTO);
+        }
+        return dataNew;
+
+    }
+
+    /**
+     * 根据版本ids查询版本详情
+     *
+     * @param ids
+     * @return
+     */
+    public List<VersionDetailDTO> getByIds(List<Long> ids) {
+        QueryWrapper<VersionDetail> versionDetailQuery = new QueryWrapper<>();
+
+        versionDetailQuery.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("STATUS", StatusEnum.Enable.getKey())
+                .in("version_id", ids).orderByAsc("order_no");
+
+        List<VersionDetail> datas = list(versionDetailQuery);
+        List<VersionDetailDTO> dataNew = new ArrayList<VersionDetailDTO>();
+        List<String> modifierid = new ArrayList<>();
+        modifierid = datas.stream().map(ac -> ac.getModifier()).collect(Collectors.toList());
+        Map<String, String> userNames = new HashMap<>();
+        if (modifierid.size() > 0) {
+            RespDTO<Map<String, String>> userNamesDTO = userServiceClient.getUserInfoByIds(modifierid);
+            if (userNamesDTO == null || !CommonErrorCode.OK.getCode().equals(userNamesDTO.code)) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
+                        "获取所有用户信息失败");
+            }
+            userNames = userNamesDTO.data;
+        }
+		
+		// 过滤字段
+		for (VersionDetail versionData : datas) {
+			VersionDetailDTO versionDTO = new VersionDetailDTO();
+			versionDTO.setId(versionData.getId());
+			//versionDTO.setCreator(versionData.getCreator());
+			versionDTO.setModifierid(userNames.get(versionData.getModifier()));
+			versionDTO.setDescription(versionData.getDescription());
+			versionDTO.setGmtCreate(versionData.getGmtCreate());
+			versionDTO.setOrderNo(versionData.getOrderNo());
+			versionDTO.setRemark(versionData.getRemark());
+			versionDTO.setStatus(versionData.getStatus());
+			versionDTO.setTitle(versionData.getTitle());
+			versionDTO.setVersionId(versionData.getVersionId());
+			dataNew.add(versionDTO);
+		}
+        return dataNew;
+
+    }
+
+    /**
+     * 更新接口
+     *
+     * @param versionDetailVO
+     * @return
+     */
+    public boolean updateVersionDetail(VersionDetailVO versionDetailVO) {
+        // 1.先判断数据是否存在有效
+    	checkExist(versionDetailVO.getDetailId());
+        // 2.修改版本详情信息
+        VersionDetail versionDetail = new VersionDetail();
+
+        versionDetail.setGmtModified(DateUtil.now());// 修改时间
+        versionDetail.setModifier(UserUtils.getCurrentPrincipleID());
+        versionDetail.setTitle(versionDetailVO.getTitle());
+        versionDetail.setOrderNo(versionDetailVO.getOrderNo());
+        versionDetail.setStatus(versionDetailVO.getStatus());
+        versionDetail.setId(versionDetailVO.getDetailId());
+        versionDetail.setDescription(versionDetailVO.getDescription());
+        versionDetail.setRemark(versionDetailVO.getRemark());
+        boolean res = updateById(versionDetail);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
+        }
+
+        return res;
+    }
+
+    /**
+     * 删除接口
+     *
+     * @param versionDetailIdVO
+     * @return
+     */
+    public boolean cancelVersionDetail(VersionDetailIdVO versionDetailIdVO) {
+    	 // 1.先判断数据是否存在有效
+    	checkExist(versionDetailIdVO.getId());
+        UpdateWrapper<VersionDetail> versionDetailNew = new UpdateWrapper<>();
+        versionDetailNew.in("id", versionDetailIdVO.getId()).eq("is_deleted", IsDeleteEnum.N.getKey()).set("is_deleted",
+                IsDeleteEnum.Y.getKey()).set("modifier", UserUtils.getCurrentPrincipleID()).set("gmt_modified", DateUtil.now());
+        return update(new VersionDetail(), versionDetailNew);
+    }
+
+    /**
+     * 增加明细接口
+     *
+     * @param versionDetailIdVO
+     * @return
+     */
+    public boolean addVersionDetail(VersionInfoAndDetailIdVO versionInfoAndDetailIdVO) {
+
+    	//1.增加明细前先判断主版本号的id是否有效
+        QueryWrapper<VersionInfo> VersionInfoFand = new QueryWrapper<>();
+        VersionInfoFand.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("id", versionInfoAndDetailIdVO.getVersionInfoId());
+        int sum = versionInfoServiceImpl.count(VersionInfoFand);
+        if (sum == 0) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "主版本号数据不存在");
+        }
+        
+        List<VersionDetail> dataNew = new ArrayList<VersionDetail>();
+        List<VersionDetailVO> datas = versionInfoAndDetailIdVO.getVersionDetail();
+        for (VersionDetailVO data : datas) {
+            VersionDetail versionDetail = new VersionDetail();
+            versionDetail.setCreator(UserUtils.getCurrentPrincipleID());
+            versionDetail.setGmtCreate(DateUtil.now());
+            versionDetail.setGmtModified(DateUtil.now());
+            versionDetail.setModifier(UserUtils.getCurrentPrincipleID());
+            versionDetail.setDescription(data.getDescription());
+            versionDetail.setOrderNo(data.getOrderNo());
+            versionDetail.setTitle(data.getTitle());
+            versionDetail.setVersionId(versionInfoAndDetailIdVO.getVersionInfoId());
+            versionDetail.setRemark(data.getRemark());
+            versionDetail.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
+            dataNew.add(versionDetail);
+
+        }
+
+        boolean res = versionDetailServiceImpl.saveBatch(dataNew);
+
+        return res;
+    }
+    /**
+     * 判断数据是否存在有效
+     *
+     * @param id
+     */
+    private void checkExist(Long id) {
+    	 // 1.先判断数据是否存在有效
+    	 QueryWrapper<VersionDetail> VersionInfoFand = new QueryWrapper<>();
+         VersionInfoFand.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("id", id);
+         int sum = count(VersionInfoFand);
+         if (sum == 0) {
+             throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在");
+         }
+    }
+}

+ 248 - 248
icssman-service/src/main/java/com/diagbot/facade/VersionInfoFacade.java

@@ -1,248 +1,248 @@
-package com.diagbot.facade;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.diagbot.client.UserServiceClient;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.VersionDetailDTO;
-import com.diagbot.dto.VersionWrapperDTO;
-import com.diagbot.entity.VersionDetail;
-import com.diagbot.entity.VersionInfo;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.enums.StatusEnum;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.exception.CommonException;
-import com.diagbot.service.impl.VersionDetailServiceImpl;
-import com.diagbot.service.impl.VersionInfoServiceImpl;
-import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.ListUtil;
-import com.diagbot.util.UserUtils;
-import com.diagbot.vo.VersionDetailVO;
-import com.diagbot.vo.VersionInfoAllVO;
-import com.diagbot.vo.VersionInfoIdVO;
-import com.diagbot.vo.VersionInfoVO;
-import com.diagbot.vo.VersionWrapperNameVO;
-
-/**
- * @author wangfeng
- * @Description: 版本信息
- * @date 2018年12月6日 下午2:14:54
- */
-@Component
-public class VersionInfoFacade extends VersionInfoServiceImpl {
-
-    @Autowired
-    VersionDetailFacade versionDetailFacade;
-    @Autowired
-    VersionDetailServiceImpl versionDetailServiceImpl;
-    @Autowired
-    UserServiceClient userServiceClient;
-
-    /**
-     * 查询版本信息
-     *
-     * @return
-     */
-    public IPage<VersionWrapperDTO> getVersionInfoAll(Page page,VersionWrapperNameVO versionWrapperNameVO) {
-        // 模糊查询最新的一条版本信息
-       /* QueryWrapper<VersionInfo> versionInfoQuery = new QueryWrapper<>();
-        versionInfoQuery.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("STATUS", StatusEnum.Enable.getKey())
-                .like("name", name).orderByDesc("refresh_time");
-      
-        // 分页查询
-*/        //IPage<VersionInfo> queryUserInformation = page(page, versionInfoQuery);
-        IPage<VersionWrapperDTO> queryUserInformation = getVersionInfoAPage(page,versionWrapperNameVO);
-        List<VersionWrapperDTO> versionInfos = queryUserInformation.getRecords();
-        List<VersionWrapperDTO> versionLists = new ArrayList<VersionWrapperDTO>();
-        // 取出操作人id
-        List<String> modifierid = new ArrayList<>();
-        modifierid = versionInfos.stream().map(ac -> ac.getModifierid()).collect(Collectors.toList());
-        // 根据操作人的id获取操作人信息
-        Map<String, String> userNames = new HashMap<>();
-        if (ListUtil.isNotEmpty(modifierid)) {
-            RespDTO<Map<String, String>> userNamesDTO = userServiceClient.getUserInfoByIds(modifierid);
-            if (userNamesDTO == null || !CommonErrorCode.OK.getCode().equals(userNamesDTO.code)) {
-                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "获取所有用户信息失败");
-            }
-            userNames = userNamesDTO.data;
-        }
-        // 当查出的数据不为空时,取到版本id,再去版本明细表中查询详细的信息
-		for (VersionWrapperDTO versionInfo : versionInfos) {
-			VersionWrapperDTO versionList = new VersionWrapperDTO();
-			versionList.setId(versionInfo.getId());
-			versionList.setGmtCreate(versionInfo.getGmtCreate());
-			versionList.setName(versionInfo.getName());
-			versionList.setModifierid(userNames.get(versionInfo.getModifierid()));
-			versionList.setRefreshTime(versionInfo.getRefreshTime());
-			versionList.setStatus(versionInfo.getStatus());
-			versionList.setRemark(versionInfo.getRemark());
-			versionLists.add(versionList);
-		}
-        // 取版本id查明细
-        List<Long> ids = new ArrayList<>();
-        if (versionInfos != null) {
-            // 当查出的数据不为空时,取到版本id,再去版本明细表中查询详细的信息
-            for (VersionWrapperDTO versionInfo : versionInfos) {
-                ids.add(versionInfo.getId());
-            }
-            // 获取明细信息
-            List<VersionDetailDTO> details = versionDetailFacade.getByIds(ids);
-            Map<Long, List<VersionDetailDTO>> map = new HashMap<>();
-            // 获取所有用户开通的产品信息
-            map = EntityUtil.makeEntityListMap(details, "versionId");
-            if (map.size() > 0) {
-                for (VersionWrapperDTO versionList : versionLists) {
-                    List<VersionDetailDTO> userAndProdutUDTO = map.get(versionList.getId());
-                    if (ListUtil.isNotEmpty(userAndProdutUDTO)) {
-                        versionList.setDetail(userAndProdutUDTO);
-                    }
-                }
-            }
-        }
-        return queryUserInformation.setRecords(versionLists);
-
-    }
-
-    /**
-     * 保存版本信息
-     *
-     * @param versionInfoVO
-     * @return
-     */
-    public boolean saveVersionInfoAll(VersionInfoVO versionInfoVO) {
-        // 1.判断该版本号是否存在名字相同的数据
-        QueryWrapper<VersionInfo> templateInfoFand = new QueryWrapper<>();
-        templateInfoFand.eq("name", versionInfoVO.getName()).eq("is_deleted", IsDeleteEnum.N.getKey());
-        VersionInfo dataInfo = getOne(templateInfoFand);
-        if (dataInfo != null) {
-            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该版本号已存在");
-        }
-
-        // 增加版本数据
-        VersionInfo versionInfo = new VersionInfo();
-        versionInfo.setCreator(UserUtils.getCurrentPrincipleID());
-        versionInfo.setGmtCreate(DateUtil.now());
-        versionInfo.setName(versionInfoVO.getName());
-        versionInfo.setGmtModified(DateUtil.now());
-        versionInfo.setModifier(UserUtils.getCurrentPrincipleID());
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-        try {
-            versionInfo.setRefreshTime(sdf.parse(versionInfoVO.getRefreshTime()));
-        } catch (ParseException e) {
-            throw new CommonException(CommonErrorCode.NOT_EXISTS, "时间格式有误");
-        }
-        versionInfo.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
-        versionInfo.setRemark(versionInfoVO.getRemark());
-        // 优先保存版本号,成功后再保存明细信息
-        boolean res = save(versionInfo);
-        if (res) {
-            List<VersionDetail> dataNew = new ArrayList<VersionDetail>();
-            List<VersionDetailVO> datas = versionInfoVO.getVersionDetail();
-            if (datas != null && datas.size() > 0) {
-                for (VersionDetailVO data : datas) {
-                    VersionDetail versionDetail = new VersionDetail();
-                    versionDetail.setCreator(UserUtils.getCurrentPrincipleID());
-                    versionDetail.setGmtCreate(DateUtil.now());
-                    versionDetail.setGmtModified(DateUtil.now());
-                    versionDetail.setModifier(UserUtils.getCurrentPrincipleID());
-                    versionDetail.setDescription(data.getDescription());
-                    versionDetail.setOrderNo(data.getOrderNo());
-                    versionDetail.setTitle(data.getTitle());
-                    versionDetail.setVersionId(versionInfo.getId());
-                    versionDetail.setRemark(data.getRemark());
-                    versionDetail.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
-                    dataNew.add(versionDetail);
-                }
-
-                res = versionDetailServiceImpl.saveBatch(dataNew);
-            }
-        }
-        return res;
-    }
-
-    /**
-     * 更新
-     *
-     * @param versionInfoVO
-     * @return
-     */
-    public boolean updateVersionInfoAll(VersionInfoAllVO versionInfoVO) {
-        // 1.先判断数据是否存在有效
-    	checkExist(versionInfoVO.getId());
-        // 2.判断该版本号是否存在名字相同的数据
-        QueryWrapper<VersionInfo> templateInfoFand = new QueryWrapper<>();
-        templateInfoFand.eq("name", versionInfoVO.getName()).eq("is_deleted", IsDeleteEnum.N.getKey());
-        VersionInfo dataInfo = getOne(templateInfoFand);
-        if (dataInfo != null && !dataInfo.getId().equals(versionInfoVO.getId())) {
-            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该版本号已存在");
-        }
-        // 3.修改版本信息
-        VersionInfo versionInfo = new VersionInfo();
-        versionInfo.setId(versionInfoVO.getId());// 模板id
-        versionInfo.setName(versionInfoVO.getName());// 模板名称
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-        if (versionInfoVO.getRefreshTime() != null) {
-            try {
-                versionInfo.setRefreshTime(sdf.parse(versionInfoVO.getRefreshTime()));
-            } catch (ParseException e) {
-                throw new CommonException(CommonErrorCode.NOT_EXISTS, "时间格式有误");
-                // e.printStackTrace();
-            }
-        }
-        versionInfo.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
-        versionInfo.setRemark(versionInfoVO.getRemark());
-        versionInfo.setGmtModified(DateUtil.now());// 修改时间
-        versionInfo.setModifier(UserUtils.getCurrentPrincipleID());
-        boolean res = updateById(versionInfo);
-        if (!res) {
-            throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
-        }
-
-        return res;
-    }
-
-    /**
-     * 删除
-     *
-     * @param versionInfoVO
-     * @return
-     */
-    public boolean cancelVersionInfoAll(VersionInfoIdVO versionInfoVO) {
-    	 // 1.先判断数据是否存在有效
-    	checkExist(versionInfoVO.getId());
-        UpdateWrapper<VersionInfo> versionInfoNew = new UpdateWrapper<>();
-        versionInfoNew.in("id", versionInfoVO.getId()).eq("is_deleted", IsDeleteEnum.N.getKey())
-                .set("is_deleted", IsDeleteEnum.Y.getKey()).set("modifier", UserUtils.getCurrentPrincipleID())
-                .set("gmt_modified", DateUtil.now());
-        return update(new VersionInfo(), versionInfoNew);
-    }
-
-    /**
-     * 判断数据是否存在有效
-     *
-     * @param id
-     */
-    private void checkExist(Long id) {
-    	 // 1.先判断数据是否存在有效
-        QueryWrapper<VersionInfo> VersionInfoFand = new QueryWrapper<>();
-        VersionInfoFand.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("id", id);
-        int sum = count(VersionInfoFand);
-        if (sum == 0) {
-            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在");
-        }
-    }
-}
+package com.diagbot.facade;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.diagbot.client.UserServiceClient;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.VersionDetailDTO;
+import com.diagbot.dto.VersionWrapperDTO;
+import com.diagbot.entity.VersionDetail;
+import com.diagbot.entity.VersionInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.VersionDetailServiceImpl;
+import com.diagbot.service.impl.VersionInfoServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.VersionDetailVO;
+import com.diagbot.vo.VersionInfoAllVO;
+import com.diagbot.vo.VersionInfoIdVO;
+import com.diagbot.vo.VersionInfoVO;
+import com.diagbot.vo.VersionWrapperNameVO;
+
+/**
+ * @author wangfeng
+ * @Description: 版本信息
+ * @date 2018年12月6日 下午2:14:54
+ */
+@Component
+public class VersionInfoFacade extends VersionInfoServiceImpl {
+
+    @Autowired
+    VersionDetailFacade versionDetailFacade;
+    @Autowired
+    VersionDetailServiceImpl versionDetailServiceImpl;
+    @Autowired
+    UserServiceClient userServiceClient;
+
+    /**
+     * 查询版本信息
+     *
+     * @return
+     */
+    public IPage<VersionWrapperDTO> getVersionInfoAll(Page page,VersionWrapperNameVO versionWrapperNameVO) {
+        // 模糊查询最新的一条版本信息
+       /* QueryWrapper<VersionInfo> versionInfoQuery = new QueryWrapper<>();
+        versionInfoQuery.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("STATUS", StatusEnum.Enable.getKey())
+                .like("name", name).orderByDesc("refresh_time");
+      
+        // 分页查询
+*/        //IPage<VersionInfo> queryUserInformation = page(page, versionInfoQuery);
+        IPage<VersionWrapperDTO> queryUserInformation = getVersionInfoAPage(page,versionWrapperNameVO);
+        List<VersionWrapperDTO> versionInfos = queryUserInformation.getRecords();
+        List<VersionWrapperDTO> versionLists = new ArrayList<VersionWrapperDTO>();
+        // 取出操作人id
+        List<String> modifierid = new ArrayList<>();
+        modifierid = versionInfos.stream().map(ac -> ac.getModifierid()).collect(Collectors.toList());
+        // 根据操作人的id获取操作人信息
+        Map<String, String> userNames = new HashMap<>();
+        if (ListUtil.isNotEmpty(modifierid)) {
+            RespDTO<Map<String, String>> userNamesDTO = userServiceClient.getUserInfoByIds(modifierid);
+            if (userNamesDTO == null || !CommonErrorCode.OK.getCode().equals(userNamesDTO.code)) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "获取所有用户信息失败");
+            }
+            userNames = userNamesDTO.data;
+        }
+        // 当查出的数据不为空时,取到版本id,再去版本明细表中查询详细的信息
+		for (VersionWrapperDTO versionInfo : versionInfos) {
+			VersionWrapperDTO versionList = new VersionWrapperDTO();
+			versionList.setId(versionInfo.getId());
+			versionList.setGmtCreate(versionInfo.getGmtCreate());
+			versionList.setName(versionInfo.getName());
+			versionList.setModifierid(userNames.get(versionInfo.getModifierid()));
+			versionList.setRefreshTime(versionInfo.getRefreshTime());
+			versionList.setStatus(versionInfo.getStatus());
+			versionList.setRemark(versionInfo.getRemark());
+			versionLists.add(versionList);
+		}
+        // 取版本id查明细
+        List<Long> ids = new ArrayList<>();
+        if (versionInfos != null) {
+            // 当查出的数据不为空时,取到版本id,再去版本明细表中查询详细的信息
+            for (VersionWrapperDTO versionInfo : versionInfos) {
+                ids.add(versionInfo.getId());
+            }
+            // 获取明细信息
+            List<VersionDetailDTO> details = versionDetailFacade.getByIds(ids);
+            Map<Long, List<VersionDetailDTO>> map = new HashMap<>();
+            // 获取所有用户开通的产品信息
+            map = EntityUtil.makeEntityListMap(details, "versionId");
+            if (map.size() > 0) {
+                for (VersionWrapperDTO versionList : versionLists) {
+                    List<VersionDetailDTO> userAndProdutUDTO = map.get(versionList.getId());
+                    if (ListUtil.isNotEmpty(userAndProdutUDTO)) {
+                        versionList.setDetail(userAndProdutUDTO);
+                    }
+                }
+            }
+        }
+        return queryUserInformation.setRecords(versionLists);
+
+    }
+
+    /**
+     * 保存版本信息
+     *
+     * @param versionInfoVO
+     * @return
+     */
+    public boolean saveVersionInfoAll(VersionInfoVO versionInfoVO) {
+        // 1.判断该版本号是否存在名字相同的数据
+        QueryWrapper<VersionInfo> templateInfoFand = new QueryWrapper<>();
+        templateInfoFand.eq("name", versionInfoVO.getName()).eq("is_deleted", IsDeleteEnum.N.getKey());
+        VersionInfo dataInfo = getOne(templateInfoFand);
+        if (dataInfo != null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该版本号已存在");
+        }
+
+        // 增加版本数据
+        VersionInfo versionInfo = new VersionInfo();
+        versionInfo.setCreator(UserUtils.getCurrentPrincipleID());
+        versionInfo.setGmtCreate(DateUtil.now());
+        versionInfo.setName(versionInfoVO.getName());
+        versionInfo.setGmtModified(DateUtil.now());
+        versionInfo.setModifier(UserUtils.getCurrentPrincipleID());
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        try {
+            versionInfo.setRefreshTime(sdf.parse(versionInfoVO.getRefreshTime()));
+        } catch (ParseException e) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "时间格式有误");
+        }
+        versionInfo.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
+        versionInfo.setRemark(versionInfoVO.getRemark());
+        // 优先保存版本号,成功后再保存明细信息
+        boolean res = save(versionInfo);
+        if (res) {
+            List<VersionDetail> dataNew = new ArrayList<VersionDetail>();
+            List<VersionDetailVO> datas = versionInfoVO.getVersionDetail();
+            if (datas != null && datas.size() > 0) {
+                for (VersionDetailVO data : datas) {
+                    VersionDetail versionDetail = new VersionDetail();
+                    versionDetail.setCreator(UserUtils.getCurrentPrincipleID());
+                    versionDetail.setGmtCreate(DateUtil.now());
+                    versionDetail.setGmtModified(DateUtil.now());
+                    versionDetail.setModifier(UserUtils.getCurrentPrincipleID());
+                    versionDetail.setDescription(data.getDescription());
+                    versionDetail.setOrderNo(data.getOrderNo());
+                    versionDetail.setTitle(data.getTitle());
+                    versionDetail.setVersionId(versionInfo.getId());
+                    versionDetail.setRemark(data.getRemark());
+                    versionDetail.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
+                    dataNew.add(versionDetail);
+                }
+
+                res = versionDetailServiceImpl.saveBatch(dataNew);
+            }
+        }
+        return res;
+    }
+
+    /**
+     * 更新
+     *
+     * @param versionInfoVO
+     * @return
+     */
+    public boolean updateVersionInfoAll(VersionInfoAllVO versionInfoVO) {
+        // 1.先判断数据是否存在有效
+    	checkExist(versionInfoVO.getId());
+        // 2.判断该版本号是否存在名字相同的数据
+        QueryWrapper<VersionInfo> templateInfoFand = new QueryWrapper<>();
+        templateInfoFand.eq("name", versionInfoVO.getName()).eq("is_deleted", IsDeleteEnum.N.getKey());
+        VersionInfo dataInfo = getOne(templateInfoFand);
+        if (dataInfo != null && !dataInfo.getId().equals(versionInfoVO.getId())) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该版本号已存在");
+        }
+        // 3.修改版本信息
+        VersionInfo versionInfo = new VersionInfo();
+        versionInfo.setId(versionInfoVO.getId());// 模板id
+        versionInfo.setName(versionInfoVO.getName());// 模板名称
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        if (versionInfoVO.getRefreshTime() != null) {
+            try {
+                versionInfo.setRefreshTime(sdf.parse(versionInfoVO.getRefreshTime()));
+            } catch (ParseException e) {
+                throw new CommonException(CommonErrorCode.NOT_EXISTS, "时间格式有误");
+                // e.printStackTrace();
+            }
+        }
+        versionInfo.setStatus(String.valueOf(StatusEnum.Enable.getKey()));
+        versionInfo.setRemark(versionInfoVO.getRemark());
+        versionInfo.setGmtModified(DateUtil.now());// 修改时间
+        versionInfo.setModifier(UserUtils.getCurrentPrincipleID());
+        boolean res = updateById(versionInfo);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
+        }
+
+        return res;
+    }
+
+    /**
+     * 删除
+     *
+     * @param versionInfoVO
+     * @return
+     */
+    public boolean cancelVersionInfoAll(VersionInfoIdVO versionInfoVO) {
+    	 // 1.先判断数据是否存在有效
+    	checkExist(versionInfoVO.getId());
+        UpdateWrapper<VersionInfo> versionInfoNew = new UpdateWrapper<>();
+        versionInfoNew.in("id", versionInfoVO.getId()).eq("is_deleted", IsDeleteEnum.N.getKey())
+                .set("is_deleted", IsDeleteEnum.Y.getKey()).set("modifier", UserUtils.getCurrentPrincipleID())
+                .set("gmt_modified", DateUtil.now());
+        return update(new VersionInfo(), versionInfoNew);
+    }
+
+    /**
+     * 判断数据是否存在有效
+     *
+     * @param id
+     */
+    private void checkExist(Long id) {
+    	 // 1.先判断数据是否存在有效
+        QueryWrapper<VersionInfo> VersionInfoFand = new QueryWrapper<>();
+        VersionInfoFand.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("id", id);
+        int sum = count(VersionInfoFand);
+        if (sum == 0) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在");
+        }
+    }
+}

+ 79 - 79
icssman-service/src/main/java/com/diagbot/vo/AddTagRetrievalDetailVO.java

@@ -1,79 +1,79 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @Description
- * @author rgb
- * @time 2018年12月5日下午5:00:52
- */
-@ApiModel(value="添加或者编辑标签同义词接口明细传参")
-@Getter
-@Setter
-public class AddTagRetrievalDetailVO {
-	
-	/**
-     * 标签id
-     */
-	@ApiModelProperty(value="标签id")
-	private Long questionId; 
-	
-	/**
-	 * 标签名称
-	 */
-	@ApiModelProperty(value="标签名称")
-	private String questionName;
-	
-	/**
-	 * 同义词名称
-	 */
-	@ApiModelProperty(value="同义词名称",required=true)
-	@NotBlank(message="同义词名称必传")
-	private String retrievalName;
-	
-	/**
-	 * 同义词拼音
-	 */
-	@ApiModelProperty(value="同义词拼音",required=true)
-	@NotBlank(message="同义词拼音必传")
-	private String retrievalSpell;
-	
-	/**
-	 * 同义词种类
-	 */
-	@ApiModelProperty(value="同义词种类",required=true)
-	@NotNull(message="同义词种类必传")
-	private Integer retrievalType;
-
-	@Override
-	public boolean equals(Object obj) {
-		if(this==obj){
-			return true;
-		}
-		if(obj instanceof AddTagRetrievalDetailVO){
-			AddTagRetrievalDetailVO addTagRetrievalDetailVO = (AddTagRetrievalDetailVO)obj;
-			if(addTagRetrievalDetailVO.getRetrievalName().equals(this.retrievalName)){
-					//&&addTagRetrievalDetailVO.getRetrievalType()==this.retrievalType){
-				return true;
-			}else{
-				return false;
-			}
-		}else{
-			return false;
-		}
-	}
-
-	@Override
-	public int hashCode() {
-		return this.retrievalName.hashCode();
-	}
-	
-	
-	
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月5日下午5:00:52
+ */
+@ApiModel(value="添加或者编辑标签同义词接口明细传参")
+@Getter
+@Setter
+public class AddTagRetrievalDetailVO {
+	
+	/**
+     * 标签id
+     */
+	@ApiModelProperty(value="标签id")
+	private Long questionId; 
+	
+	/**
+	 * 标签名称
+	 */
+	@ApiModelProperty(value="标签名称")
+	private String questionName;
+	
+	/**
+	 * 同义词名称
+	 */
+	@ApiModelProperty(value="同义词名称",required=true)
+	@NotBlank(message="同义词名称必传")
+	private String retrievalName;
+	
+	/**
+	 * 同义词拼音
+	 */
+	@ApiModelProperty(value="同义词拼音",required=true)
+	@NotBlank(message="同义词拼音必传")
+	private String retrievalSpell;
+	
+	/**
+	 * 同义词种类
+	 */
+	@ApiModelProperty(value="同义词种类",required=true)
+	@NotNull(message="同义词种类必传")
+	private Integer retrievalType;
+
+	@Override
+	public boolean equals(Object obj) {
+		if(this==obj){
+			return true;
+		}
+		if(obj instanceof AddTagRetrievalDetailVO){
+			AddTagRetrievalDetailVO addTagRetrievalDetailVO = (AddTagRetrievalDetailVO)obj;
+			if(addTagRetrievalDetailVO.getRetrievalName().equals(this.retrievalName)){
+					//&&addTagRetrievalDetailVO.getRetrievalType()==this.retrievalType){
+				return true;
+			}else{
+				return false;
+			}
+		}else{
+			return false;
+		}
+	}
+
+	@Override
+	public int hashCode() {
+		return this.retrievalName.hashCode();
+	}
+	
+	
+	
+}

+ 44 - 44
icssman-service/src/main/java/com/diagbot/vo/AddTagRetrievalVO.java

@@ -1,44 +1,44 @@
-package com.diagbot.vo;
-
-import java.util.List;
-
-import javax.validation.Valid;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @Description
- * @author rgb
- * @time 2018年12月5日下午5:00:52
- */
-@ApiModel(value="添加或者编辑标签同义词接口传参")
-@Getter
-@Setter
-public class AddTagRetrievalVO {
-	
-	/**
-     * 标签id
-     */
-	@ApiModelProperty(value="标签id",required=true)
-	@NotNull(message="标签id必传")
-    private Long questionId;
-	
-	/**
-	 * 标签名称
-	 */
-	@ApiModelProperty(value="标签名称",required=true)
-	@NotBlank(message="标签名称必传")
-	private String questionName;
-	
-	@Valid
-	@ApiModelProperty(value="同义词集合",required=true)
-	@NotEmpty(message="同义词必传")
-	private List<AddTagRetrievalDetailVO> itemList;
-	
-}
+package com.diagbot.vo;
+
+import java.util.List;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月5日下午5:00:52
+ */
+@ApiModel(value="添加或者编辑标签同义词接口传参")
+@Getter
+@Setter
+public class AddTagRetrievalVO {
+	
+	/**
+     * 标签id
+     */
+	@ApiModelProperty(value="标签id",required=true)
+	@NotNull(message="标签id必传")
+    private Long questionId;
+	
+	/**
+	 * 标签名称
+	 */
+	@ApiModelProperty(value="标签名称",required=true)
+	@NotBlank(message="标签名称必传")
+	private String questionName;
+	
+	@Valid
+	@ApiModelProperty(value="同义词集合",required=true)
+	@NotEmpty(message="同义词必传")
+	private List<AddTagRetrievalDetailVO> itemList;
+	
+}

+ 28 - 28
icssman-service/src/main/java/com/diagbot/vo/DelRetrievalsByQuesIdVO.java

@@ -1,28 +1,28 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotNull;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @Description
- * @author rgb
- * @time 2018年12月5日下午5:00:52
- */
-@ApiModel(value="根据标签id删除标签的同义词接口传参")
-@Getter
-@Setter
-public class DelRetrievalsByQuesIdVO {
-	
-	/**
-     * 标签id
-     */
-	@ApiModelProperty(value="标签id",required=true)
-	@NotNull(message="标签id必传")
-    private Long questionId;
-	
-
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月5日下午5:00:52
+ */
+@ApiModel(value="根据标签id删除标签的同义词接口传参")
+@Getter
+@Setter
+public class DelRetrievalsByQuesIdVO {
+	
+	/**
+     * 标签id
+     */
+	@ApiModelProperty(value="标签id",required=true)
+	@NotNull(message="标签id必传")
+    private Long questionId;
+	
+
+}

+ 55 - 55
icssman-service/src/main/java/com/diagbot/vo/DisclaimerInformationAllVO.java

@@ -1,55 +1,55 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 修改免责申明详情
- * @author wangfeng
- * @Description: TODO
- * @date 2018年12月13日 下午2:33:07
- */
-@Getter
-@Setter
-public class DisclaimerInformationAllVO {
-	
-	@NotNull(message = "请输入id")
-	private Long id;
-    /**
-     * 主表id
-     */
-   // private Long versionId;
-
-    /**
-     * 标题
-     */
-    private String title;
-
-    /**
-     * 描述
-     */
-    private String description;
-
-    /**
-     * 排序号
-     */
-    //private String orderNo;
-
-    /**
-     * 1:启动,0:不启用
-     */
-   // private String status;
-
-    /**
-     * 免责申明编号
-     */
-    private String disclaimerCode;
-
-    /**
-     * 备注
-     */
-    //private String remark;
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 修改免责申明详情
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年12月13日 下午2:33:07
+ */
+@Getter
+@Setter
+public class DisclaimerInformationAllVO {
+	
+	@NotNull(message = "请输入id")
+	private Long id;
+    /**
+     * 主表id
+     */
+   // private Long versionId;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 排序号
+     */
+    //private String orderNo;
+
+    /**
+     * 1:启动,0:不启用
+     */
+   // private String status;
+
+    /**
+     * 免责申明编号
+     */
+    private String disclaimerCode;
+
+    /**
+     * 备注
+     */
+    //private String remark;
+}

+ 22 - 22
icssman-service/src/main/java/com/diagbot/vo/DisclaimerInformationIdVO.java

@@ -1,22 +1,22 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 删除免责申明详情,启用免责申明详情,停用免责申明详情
- * @author wangfeng
- * @Description: TODO
- * @date 2018年12月13日 下午2:34:02
- */
-@Getter
-@Setter
-public class DisclaimerInformationIdVO {
-
-	@NotNull(message = "请输入id")
-	private Long id;
-	
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 删除免责申明详情,启用免责申明详情,停用免责申明详情
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年12月13日 下午2:34:02
+ */
+@Getter
+@Setter
+public class DisclaimerInformationIdVO {
+
+	@NotNull(message = "请输入id")
+	private Long id;
+	
+}

+ 23 - 23
icssman-service/src/main/java/com/diagbot/vo/DisclaimerInformationTitleVO.java

@@ -1,23 +1,23 @@
-package com.diagbot.vo;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
-import lombok.Getter;
-import lombok.Setter;
-
-
-/**
- * 获取免责申明详情
- * @author wangfeng
- * @Description: TODO
- * @date 2018年12月13日 下午2:33:22
- */
-@Setter
-@Getter
-public class DisclaimerInformationTitleVO extends Page{
-
-	/**
-     * 名称
-     */
-    private String title;
-}
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import lombok.Getter;
+import lombok.Setter;
+
+
+/**
+ * 获取免责申明详情
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年12月13日 下午2:33:22
+ */
+@Setter
+@Getter
+public class DisclaimerInformationTitleVO extends Page{
+
+	/**
+     * 名称
+     */
+    private String title;
+}

+ 49 - 49
icssman-service/src/main/java/com/diagbot/vo/DisclaimerInformationVO.java

@@ -1,49 +1,49 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotBlank;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 增加免责申明详情
- * @author wangfeng
- * @Description: TODO
- * @date 2018年12月13日 下午2:33:36
- */
-@Getter
-@Setter
-public class DisclaimerInformationVO {
-	 /**
-     * 主表id
-     */
-   // private Long versionId;
-
-    /**
-     * 标题
-     */
-	@NotBlank(message = "标题不能为空")
-    private String title;
-
-    /**
-     * 描述
-     */
-	@NotBlank(message = "内容不能为空")
-    private String description;
-
-    /**
-     * 排序号
-     */
-    private String orderNo;
-
-    /**
-     * 免责申明编号
-     */
-    private String disclaimerCode;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotBlank;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 增加免责申明详情
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年12月13日 下午2:33:36
+ */
+@Getter
+@Setter
+public class DisclaimerInformationVO {
+	 /**
+     * 主表id
+     */
+   // private Long versionId;
+
+    /**
+     * 标题
+     */
+	@NotBlank(message = "标题不能为空")
+    private String title;
+
+    /**
+     * 描述
+     */
+	@NotBlank(message = "内容不能为空")
+    private String description;
+
+    /**
+     * 排序号
+     */
+    private String orderNo;
+
+    /**
+     * 免责申明编号
+     */
+    private String disclaimerCode;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 34 - 34
icssman-service/src/main/java/com/diagbot/vo/GetRetrievalsByTagVO.java

@@ -1,34 +1,34 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotNull;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @Description
- * @author rgb
- * @time 2018年12月5日下午5:00:52
- */
-@ApiModel(value="根据标签获取同义词接口传参")
-@Getter
-@Setter
-public class GetRetrievalsByTagVO {
-	
-	/**
-     * 标签id
-     */
-	@ApiModelProperty(value="标签id")
-	@NotNull(message="标签id必传")
-    private Long questionId;
-	
-	/**
-	 * 标签名称
-	 */
-	@ApiModelProperty(value="标签名称",required=true)
-	private String questionName;
-
-
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月5日下午5:00:52
+ */
+@ApiModel(value="根据标签获取同义词接口传参")
+@Getter
+@Setter
+public class GetRetrievalsByTagVO {
+	
+	/**
+     * 标签id
+     */
+	@ApiModelProperty(value="标签id")
+	@NotNull(message="标签id必传")
+    private Long questionId;
+	
+	/**
+	 * 标签名称
+	 */
+	@ApiModelProperty(value="标签名称",required=true)
+	private String questionName;
+
+
+}

+ 27 - 27
icssman-service/src/main/java/com/diagbot/vo/RetrievalListVO.java

@@ -1,27 +1,27 @@
-package com.diagbot.vo;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @Description
- * @author rgb
- * @time 2018年12月17日上午10:08:43
- */
-@ApiModel(value="获取标签同义词列表接口传参")
-@SuppressWarnings({ "serial", "rawtypes" })
-@Getter
-@Setter
-public class RetrievalListVO extends Page {
-	
-	/**
-	 * 标签名称
-	 */
-	@ApiModelProperty(value="标签名称")
-	private String questionName;
-
-}
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月17日上午10:08:43
+ */
+@ApiModel(value="获取标签同义词列表接口传参")
+@SuppressWarnings({ "serial", "rawtypes" })
+@Getter
+@Setter
+public class RetrievalListVO extends Page {
+	
+	/**
+	 * 标签名称
+	 */
+	@ApiModelProperty(value="标签名称")
+	private String questionName;
+
+}

+ 21 - 21
icssman-service/src/main/java/com/diagbot/vo/VersionDetailIdVO.java

@@ -1,21 +1,21 @@
-package com.diagbot.vo;
-
-import java.util.Date;
-
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 删除版本详情信息
- * @author wangfeng
- * @Description: TODO
- * @date 2018年12月13日 下午2:35:33
- */
-@Getter
-@Setter
-public class VersionDetailIdVO {
-	@NotNull(message = "请输入id")
-	private Long id;
-}
+package com.diagbot.vo;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 删除版本详情信息
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年12月13日 下午2:35:33
+ */
+@Getter
+@Setter
+public class VersionDetailIdVO {
+	@NotNull(message = "请输入id")
+	private Long id;
+}

+ 48 - 48
icssman-service/src/main/java/com/diagbot/vo/VersionDetailVO.java

@@ -1,48 +1,48 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 更新版本详情信息
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月27日 上午10:20:56
- */
-@Getter
-@Setter
-public class VersionDetailVO {
-
-	   /**
-     * 版本主表id
-     */
-	@NotNull(message = "请输入id")
-    private Long detailId;
-
-    /**
-     * 标题
-     */
-    private String title;
-
-    /**
-     * 描述
-     */
-    private String description;
-
-    /**
-     * 排序号
-     */
-    private String orderNo;
-
-    /**
-     * 1:启动,0:不启用
-     */
-    private String status;
-
-    /**
-     * 备注
-     */
-    private String remark;
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 更新版本详情信息
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月27日 上午10:20:56
+ */
+@Getter
+@Setter
+public class VersionDetailVO {
+
+	   /**
+     * 版本主表id
+     */
+	@NotNull(message = "请输入id")
+    private Long detailId;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 描述
+     */
+    private String description;
+
+    /**
+     * 排序号
+     */
+    private String orderNo;
+
+    /**
+     * 1:启动,0:不启用
+     */
+    private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 44 - 44
icssman-service/src/main/java/com/diagbot/vo/VersionInfoAllVO.java

@@ -1,44 +1,44 @@
-package com.diagbot.vo;
-
-import java.util.Date;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 更新版本信息
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月29日 下午4:01:30
- */
-@Getter
-@Setter
-public class VersionInfoAllVO {
-	/**
-	 * 版本id
-	 */
-	@NotNull(message = "请输入id")
-	private Long id;
-	/**
-     * 名称
-     */
-    private String name;
-
-    /**
-     * 时间
-     */
-    private String refreshTime;
-
-    /**
-     * 1:启动,0:不启用
-     */
-   // private String status;
-
-    /**
-     * 备注
-     */
-    private String remark;
-}
+package com.diagbot.vo;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 更新版本信息
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月29日 下午4:01:30
+ */
+@Getter
+@Setter
+public class VersionInfoAllVO {
+	/**
+	 * 版本id
+	 */
+	@NotNull(message = "请输入id")
+	private Long id;
+	/**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 时间
+     */
+    private String refreshTime;
+
+    /**
+     * 1:启动,0:不启用
+     */
+   // private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 26 - 26
icssman-service/src/main/java/com/diagbot/vo/VersionInfoAndDetailIdVO.java

@@ -1,26 +1,26 @@
-package com.diagbot.vo;
-
-import java.util.List;
-
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 增加版本详情信息
- * @author wangfeng
- * @Description: TODO
- * @date 2018年12月13日 下午2:35:41
- */
-@Getter
-@Setter
-public class VersionInfoAndDetailIdVO {
-	/**
-	 * 用户id
-	 */
-	@NotNull(message = "请输入id")
-	private Long versionInfoId;
-	
-    private List<VersionDetailVO> versionDetail;
-}
+package com.diagbot.vo;
+
+import java.util.List;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 增加版本详情信息
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年12月13日 下午2:35:41
+ */
+@Getter
+@Setter
+public class VersionInfoAndDetailIdVO {
+	/**
+	 * 用户id
+	 */
+	@NotNull(message = "请输入id")
+	private Long versionInfoId;
+	
+    private List<VersionDetailVO> versionDetail;
+}

+ 19 - 19
icssman-service/src/main/java/com/diagbot/vo/VersionInfoIdVO.java

@@ -1,19 +1,19 @@
-package com.diagbot.vo;
-
-import javax.validation.constraints.NotNull;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 删除版本信息
- * @author wangfeng
- * @Description: TODO
- * @date 2018年12月13日 下午2:35:02
- */
-@Getter
-@Setter
-public class VersionInfoIdVO {
-	@NotNull(message = "请输入id")
-	private Long id;
-}
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 删除版本信息
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年12月13日 下午2:35:02
+ */
+@Getter
+@Setter
+public class VersionInfoIdVO {
+	@NotNull(message = "请输入id")
+	private Long id;
+}

+ 49 - 49
icssman-service/src/main/java/com/diagbot/vo/VersionInfoVO.java

@@ -1,49 +1,49 @@
-package com.diagbot.vo;
-
-import java.util.Date;
-import java.util.List;
-
-import javax.validation.constraints.NotBlank;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 
- * 保存版本信息
- * @author wangfeng
- * @Description: TODO
- * @date 2018年11月28日 上午10:55:17
- */
-@Getter
-@Setter
-public class VersionInfoVO {
-
-	/**
-	 * 用户id
-	 */
-	//private Long id;
-	/**
-     * 名称
-     */
-	@NotBlank(message = "标题不能为空")
-    private String name;
-
-    /**
-     * 时间
-     */
-	@NotBlank(message = "请输入时间")
-    private String refreshTime;
-
-    /**
-     * 1:启动,0:不启用
-     */
-   // private String status;
-
-    /**
-     * 备注
-     */
-    private String remark;
-    
-    private List<VersionDetailVO> versionDetail;
-}
+package com.diagbot.vo;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * 保存版本信息
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年11月28日 上午10:55:17
+ */
+@Getter
+@Setter
+public class VersionInfoVO {
+
+	/**
+	 * 用户id
+	 */
+	//private Long id;
+	/**
+     * 名称
+     */
+	@NotBlank(message = "标题不能为空")
+    private String name;
+
+    /**
+     * 时间
+     */
+	@NotBlank(message = "请输入时间")
+    private String refreshTime;
+
+    /**
+     * 1:启动,0:不启用
+     */
+   // private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+    
+    private List<VersionDetailVO> versionDetail;
+}

+ 21 - 21
icssman-service/src/main/java/com/diagbot/vo/VersionWrapperNameVO.java

@@ -1,21 +1,21 @@
-package com.diagbot.vo;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 获取版本信息
- * @author wangfeng
- * @Description: TODO
- * @date 2018年12月13日 下午2:34:35
- */
-@Getter
-@Setter
-public class VersionWrapperNameVO extends Page{
-	/**
-     * 名称
-     */
-    private String name;
-}
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 获取版本信息
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2018年12月13日 下午2:34:35
+ */
+@Getter
+@Setter
+public class VersionWrapperNameVO extends Page{
+	/**
+     * 名称
+     */
+    private String name;
+}

+ 4 - 0
logs/aipt-service/aipt-service_debug.log

@@ -0,0 +1,4 @@
+2019-04-23 09:32:49.436 DEBUG --- [main] org.apache.ibatis.logging.LogFactory Line:135 - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.
+2019-04-23 09:32:49.969 DEBUG --- [main] org.apache.ibatis.io.VFS Line:77  - Using VFS adapter com.baomidou.mybatisplus.autoconfigure.SpringBootVFS
+2019-04-23 09:32:49.978 DEBUG --- [main] org.apache.ibatis.io.ResolverUtil Line:256 - Checking to see if class com.diagbot.entity.SysLog matches criteria [is assignable to Object]
+2019-04-23 09:32:49.981 DEBUG --- [main] org.apache.ibatis.io.ResolverUtil Line:256 - Checking to see if class com.diagbot.entity.User matches criteria [is assignable to Object]

+ 0 - 0
logs/aipt-service/aipt-service_error.log


+ 58 - 0
logs/aipt-service/aipt-service_info.log

@@ -0,0 +1,58 @@
+2019-04-23 09:32:26.474 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-23 09:32:27.045 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-23 09:32:27.046 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-23 09:32:27.242 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-23 09:32:27.242 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-23 09:32:27.615 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 09:32:27.869 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 09:32:27.872 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 09:32:27.873 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 09:32:27.875 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 09:32:27.875 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 09:32:27.877 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-23 09:32:27.877 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 09:32:28.145 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 09:32:28.150 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1311 - Not registering with Eureka server per configuration
+2019-04-23 09:32:28.156 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1555983148154 with initial instances count: 1
+2019-04-23 09:32:29.937 INFO  --- [main] com.diagbot.AiptServiceApplication Line:684 - The following profiles are active: local
+2019-04-23 09:32:34.887 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-23 09:32:34.987 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-23 09:32:35.212 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-23 09:32:36.368 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-23 09:32:36.441 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@782dc5
+2019-04-23 09:32:39.331 INFO  --- [main] com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure Line:56  - Init DruidDataSource
+2019-04-23 09:32:40.350 INFO  --- [main] com.alibaba.druid.pool.DruidDataSource Line:928 - {dataSource-1} inited
+2019-04-23 09:32:53.841 INFO  --- [main] springfox.documentation.spring.web.PropertySourcedRequestMappingHandlerMapping Line:69  - Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
+2019-04-23 09:32:54.354 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-23 09:32:59.192 INFO  --- [main] com.diagbot.config.ResourceServerConfigurer Line:36  - Configuring ResourceServerSecurityConfigurer 
+2019-04-23 09:33:03.034 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:888 - Shutting down DiscoveryClient ...
+2019-04-23 09:33:03.154 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:911 - Completed shut down of DiscoveryClient
+2019-04-23 09:33:07.454 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-23 09:33:07.458 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-23 09:33:07.458 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-23 09:33:07.459 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-23 09:33:07.459 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-23 09:33:07.810 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 09:33:07.814 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 09:33:07.816 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 09:33:07.818 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 09:33:07.820 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 09:33:07.822 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 09:33:07.823 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-23 09:33:07.826 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 09:33:07.846 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 09:33:07.860 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-23 09:33:07.867 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-23 09:33:07.871 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1555983187871 with initial instances count: 1
+2019-04-23 09:33:07.893 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1555983187893, current=UP, previous=STARTING]
+2019-04-23 09:33:07.896 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_AIPT-SERVICE/192.168.4.186:8845: registering service...
+2019-04-23 09:33:07.966 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_AIPT-SERVICE/192.168.4.186:8845 - registration status: 204
+2019-04-23 09:33:08.248 INFO  --- [main] springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper Line:160 - Context refreshed
+2019-04-23 09:33:08.285 INFO  --- [main] springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper Line:163 - Found 1 custom documentation plugin(s)
+2019-04-23 09:33:08.383 INFO  --- [main] springfox.documentation.spring.web.scanners.ApiListingReferenceScanner Line:41  - Scanning for api listing references
+2019-04-23 09:33:09.346 INFO  --- [main] com.diagbot.AiptServiceApplication Line:59  - Started AiptServiceApplication in 45.808 seconds (JVM running for 46.713)
+2019-04-23 09:38:07.952 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 09:43:08.136 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 09:48:08.157 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 09:53:08.159 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 09:58:08.161 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration

+ 5 - 0
logs/aipt-service/aipt-service_warn.log

@@ -0,0 +1,5 @@
+2019-04-23 09:32:35.128 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-23 09:32:35.130 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-23 09:32:36.366 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-23 09:32:47.259 WARN  --- [main] com.diagbot.config.security.UrlFilterSecurityInterceptor Line:159 - Could not validate configuration attributes as the SecurityMetadataSource did not return any attributes from getAllConfigAttributes()
+2019-04-23 09:32:54.353 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.

+ 8 - 0
logs/aipt-service/debug/aipt-service-debug-2019-04-22.0.log

@@ -0,0 +1,8 @@
+2019-04-22 16:48:19.806 DEBUG --- [main] org.apache.ibatis.logging.LogFactory Line:135 - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.
+2019-04-22 16:48:20.170 DEBUG --- [main] org.apache.ibatis.io.VFS Line:77  - Using VFS adapter com.baomidou.mybatisplus.autoconfigure.SpringBootVFS
+2019-04-22 16:48:20.175 DEBUG --- [main] org.apache.ibatis.io.ResolverUtil Line:256 - Checking to see if class com.diagbot.entity.SysLog matches criteria [is assignable to Object]
+2019-04-22 16:48:20.177 DEBUG --- [main] org.apache.ibatis.io.ResolverUtil Line:256 - Checking to see if class com.diagbot.entity.User matches criteria [is assignable to Object]
+2019-04-22 17:37:57.056 DEBUG --- [main] org.apache.ibatis.logging.LogFactory Line:135 - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.
+2019-04-22 17:37:57.761 DEBUG --- [main] org.apache.ibatis.io.VFS Line:77  - Using VFS adapter com.baomidou.mybatisplus.autoconfigure.SpringBootVFS
+2019-04-22 17:37:57.777 DEBUG --- [main] org.apache.ibatis.io.ResolverUtil Line:256 - Checking to see if class com.diagbot.entity.SysLog matches criteria [is assignable to Object]
+2019-04-22 17:37:57.778 DEBUG --- [main] org.apache.ibatis.io.ResolverUtil Line:256 - Checking to see if class com.diagbot.entity.User matches criteria [is assignable to Object]

+ 106 - 0
logs/aipt-service/info/aipt-service-info-2019-04-22.0.log

@@ -0,0 +1,106 @@
+2019-04-22 16:47:48.240 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-22 16:47:48.849 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-22 16:47:48.850 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-22 16:47:49.062 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-22 16:47:49.063 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-22 16:47:49.485 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 16:47:49.709 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 16:47:49.710 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 16:47:49.712 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 16:47:49.713 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 16:47:49.713 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 16:47:49.716 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-22 16:47:49.717 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 16:47:49.991 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 16:47:49.995 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1311 - Not registering with Eureka server per configuration
+2019-04-22 16:47:49.999 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1555922869998 with initial instances count: 1
+2019-04-22 16:47:51.421 INFO  --- [main] com.diagbot.AiptServiceApplication Line:684 - The following profiles are active: local
+2019-04-22 16:48:00.831 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-22 16:48:00.894 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-22 16:48:01.088 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-22 16:48:01.975 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-22 16:48:02.007 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@6a3e633a
+2019-04-22 16:48:07.212 INFO  --- [main] com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure Line:56  - Init DruidDataSource
+2019-04-22 16:48:09.676 INFO  --- [main] com.alibaba.druid.pool.DruidDataSource Line:928 - {dataSource-1} inited
+2019-04-22 16:48:25.881 INFO  --- [main] springfox.documentation.spring.web.PropertySourcedRequestMappingHandlerMapping Line:69  - Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
+2019-04-22 16:48:27.895 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-22 16:48:34.500 INFO  --- [main] com.diagbot.config.ResourceServerConfigurer Line:36  - Configuring ResourceServerSecurityConfigurer 
+2019-04-22 16:48:41.674 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:888 - Shutting down DiscoveryClient ...
+2019-04-22 16:48:41.729 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:911 - Completed shut down of DiscoveryClient
+2019-04-22 16:48:53.837 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-22 16:48:54.084 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-22 16:48:54.085 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-22 16:48:54.089 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-22 16:48:54.092 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-22 16:48:56.113 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 16:48:56.156 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 16:48:56.158 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 16:48:56.160 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 16:48:56.162 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 16:48:56.168 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 16:48:56.168 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-22 16:48:56.169 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 16:48:56.180 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 16:48:56.181 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-22 16:48:56.190 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-22 16:48:56.194 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1555922936194 with initial instances count: 1
+2019-04-22 16:48:56.247 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1555922936247, current=UP, previous=STARTING]
+2019-04-22 16:48:56.251 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_AIPT-SERVICE/192.168.4.186:8845: registering service...
+2019-04-22 16:48:56.309 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_AIPT-SERVICE/192.168.4.186:8845 - registration status: 204
+2019-04-22 16:48:58.593 INFO  --- [main] springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper Line:160 - Context refreshed
+2019-04-22 16:48:58.626 INFO  --- [main] springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper Line:163 - Found 1 custom documentation plugin(s)
+2019-04-22 16:48:58.954 INFO  --- [main] springfox.documentation.spring.web.scanners.ApiListingReferenceScanner Line:41  - Scanning for api listing references
+2019-04-22 16:49:00.290 INFO  --- [main] com.diagbot.AiptServiceApplication Line:59  - Started AiptServiceApplication in 74.773 seconds (JVM running for 75.763)
+2019-04-22 17:37:33.387 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-22 17:37:33.929 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-22 17:37:33.930 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-22 17:37:34.074 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-22 17:37:34.074 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-22 17:37:34.447 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 17:37:34.630 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 17:37:34.631 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 17:37:34.632 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 17:37:34.633 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 17:37:34.633 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 17:37:34.635 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-22 17:37:34.635 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 17:37:34.870 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 17:37:34.873 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1311 - Not registering with Eureka server per configuration
+2019-04-22 17:37:34.879 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1555925854878 with initial instances count: 1
+2019-04-22 17:37:36.894 INFO  --- [main] com.diagbot.AiptServiceApplication Line:684 - The following profiles are active: local
+2019-04-22 17:37:44.076 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-22 17:37:44.104 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-22 17:37:44.255 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-22 17:37:44.973 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-22 17:37:45.023 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@7d483ebe
+2019-04-22 17:37:47.878 INFO  --- [main] com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure Line:56  - Init DruidDataSource
+2019-04-22 17:37:49.334 INFO  --- [main] com.alibaba.druid.pool.DruidDataSource Line:928 - {dataSource-1} inited
+2019-04-22 17:38:00.864 INFO  --- [main] springfox.documentation.spring.web.PropertySourcedRequestMappingHandlerMapping Line:69  - Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
+2019-04-22 17:38:03.117 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-22 17:38:09.790 INFO  --- [main] com.diagbot.config.ResourceServerConfigurer Line:36  - Configuring ResourceServerSecurityConfigurer 
+2019-04-22 17:38:12.705 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:888 - Shutting down DiscoveryClient ...
+2019-04-22 17:38:12.721 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:911 - Completed shut down of DiscoveryClient
+2019-04-22 17:38:21.327 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-22 17:38:21.347 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-22 17:38:21.347 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-22 17:38:21.348 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-22 17:38:21.348 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-22 17:38:21.957 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 17:38:21.960 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 17:38:21.960 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 17:38:21.961 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 17:38:21.962 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 17:38:21.962 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 17:38:21.962 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-22 17:38:21.962 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 17:38:21.968 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 17:38:21.971 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-22 17:38:21.974 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-22 17:38:21.976 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1555925901976 with initial instances count: 1
+2019-04-22 17:38:21.993 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1555925901993, current=UP, previous=STARTING]
+2019-04-22 17:38:22.092 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_AIPT-SERVICE/192.168.4.186:8845: registering service...
+2019-04-22 17:38:22.244 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_AIPT-SERVICE/192.168.4.186:8845 - registration status: 204
+2019-04-22 17:38:22.504 INFO  --- [main] springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper Line:160 - Context refreshed
+2019-04-22 17:38:22.535 INFO  --- [main] springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper Line:163 - Found 1 custom documentation plugin(s)
+2019-04-22 17:38:22.618 INFO  --- [main] springfox.documentation.spring.web.scanners.ApiListingReferenceScanner Line:41  - Scanning for api listing references
+2019-04-22 17:38:23.469 INFO  --- [main] com.diagbot.AiptServiceApplication Line:59  - Started AiptServiceApplication in 52.755 seconds (JVM running for 53.576)

+ 10 - 0
logs/aipt-service/warn/aipt-service-warn-2019-04-22.0.log

@@ -0,0 +1,10 @@
+2019-04-22 16:48:00.993 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-22 16:48:00.994 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-22 16:48:01.974 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-22 16:48:16.916 WARN  --- [main] com.diagbot.config.security.UrlFilterSecurityInterceptor Line:159 - Could not validate configuration attributes as the SecurityMetadataSource did not return any attributes from getAllConfigAttributes()
+2019-04-22 16:48:27.879 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-22 17:37:44.202 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-22 17:37:44.204 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-22 17:37:44.971 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-22 17:37:55.112 WARN  --- [main] com.diagbot.config.security.UrlFilterSecurityInterceptor Line:159 - Could not validate configuration attributes as the SecurityMetadataSource did not return any attributes from getAllConfigAttributes()
+2019-04-22 17:38:03.116 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.

+ 0 - 0
logs/config-server/config-server_debug.log


+ 216 - 0
logs/config-server/config-server_error.log

@@ -0,0 +1,216 @@
+2019-04-22 15:15:37.139 ERROR --- [main] com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient Line:83  - Request execution error
+com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect
+	at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187)
+	at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123)
+	at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27)
+	at com.sun.jersey.api.client.Client.handle(Client.java:652)
+	at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
+	at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
+	at com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:509)
+	at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.getApplicationsInternal(AbstractJerseyEurekaHttpClient.java:194)
+	at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.getApplications(AbstractJerseyEurekaHttpClient.java:165)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$6.execute(EurekaHttpClientDecorator.java:137)
+	at com.netflix.discovery.shared.transport.decorator.MetricsCollectingEurekaHttpClient.execute(MetricsCollectingEurekaHttpClient.java:73)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$6.execute(EurekaHttpClientDecorator.java:137)
+	at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.executeOnNewServer(RedirectingEurekaHttpClient.java:118)
+	at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.execute(RedirectingEurekaHttpClient.java:79)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$6.execute(EurekaHttpClientDecorator.java:137)
+	at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:120)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$6.execute(EurekaHttpClientDecorator.java:137)
+	at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134)
+	at com.netflix.discovery.DiscoveryClient.getAndStoreFullRegistry(DiscoveryClient.java:1051)
+	at com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.java:965)
+	at com.netflix.discovery.DiscoveryClient.<init>(DiscoveryClient.java:414)
+	at com.netflix.discovery.DiscoveryClient.<init>(DiscoveryClient.java:269)
+	at org.springframework.cloud.netflix.eureka.CloudEurekaClient.<init>(CloudEurekaClient.java:63)
+	at org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration.eurekaClient(EurekaClientAutoConfiguration.java:290)
+	at org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration$$EnhancerBySpringCGLIB$$d95b3ee9.CGLIB$eurekaClient$2(<generated>)
+	at org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration$$EnhancerBySpringCGLIB$$d95b3ee9$$FastClassBySpringCGLIB$$45c4a1aa.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
+	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:365)
+	at org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration$$EnhancerBySpringCGLIB$$d95b3ee9.eurekaClient(<generated>)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
+	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:582)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1247)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1096)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:535)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$1(AbstractBeanFactory.java:353)
+	at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.getBean(GenericScope.java:390)
+	at org.springframework.cloud.context.scope.GenericScope.get(GenericScope.java:184)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:350)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
+	at org.springframework.aop.target.SimpleBeanTargetSource.getTarget(SimpleBeanTargetSource.java:35)
+	at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaRegistration.getTargetObject(EurekaRegistration.java:167)
+	at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaRegistration.getEurekaClient(EurekaRegistration.java:156)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:223)
+	at org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:494)
+	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
+	at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaRegistration$$EnhancerBySpringCGLIB$$36e57452.getEurekaClient(<generated>)
+	at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaServiceRegistry.maybeInitializeClient(EurekaServiceRegistry.java:57)
+	at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaServiceRegistry.register(EurekaServiceRegistry.java:39)
+	at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaAutoServiceRegistration.start(EurekaAutoServiceRegistration.java:80)
+	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:182)
+	at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:53)
+	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:360)
+	at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:158)
+	at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:122)
+	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:885)
+	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:161)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553)
+	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
+	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:780)
+	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:412)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:333)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1277)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1265)
+	at com.diagbot.ConfigServerApplication.main(ConfigServerApplication.java:24)
+Caused by: java.net.ConnectException: Connection refused: connect
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121)
+	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
+	at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144)
+	at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:134)
+	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610)
+	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445)
+	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)
+	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:118)
+	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
+	at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173)
+	... 77 common frames omitted
+2019-04-22 15:15:37.151 ERROR --- [main] com.netflix.discovery.DiscoveryClient Line:972 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769 - was unable to refresh its cache! status = Cannot execute request on any known server
+com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
+	at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$6.execute(EurekaHttpClientDecorator.java:137)
+	at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134)
+	at com.netflix.discovery.DiscoveryClient.getAndStoreFullRegistry(DiscoveryClient.java:1051)
+	at com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.java:965)
+	at com.netflix.discovery.DiscoveryClient.<init>(DiscoveryClient.java:414)
+	at com.netflix.discovery.DiscoveryClient.<init>(DiscoveryClient.java:269)
+	at org.springframework.cloud.netflix.eureka.CloudEurekaClient.<init>(CloudEurekaClient.java:63)
+	at org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration.eurekaClient(EurekaClientAutoConfiguration.java:290)
+	at org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration$$EnhancerBySpringCGLIB$$d95b3ee9.CGLIB$eurekaClient$2(<generated>)
+	at org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration$$EnhancerBySpringCGLIB$$d95b3ee9$$FastClassBySpringCGLIB$$45c4a1aa.invoke(<generated>)
+	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
+	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:365)
+	at org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration$$EnhancerBySpringCGLIB$$d95b3ee9.eurekaClient(<generated>)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
+	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:582)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1247)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1096)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:535)
+	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$1(AbstractBeanFactory.java:353)
+	at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.getBean(GenericScope.java:390)
+	at org.springframework.cloud.context.scope.GenericScope.get(GenericScope.java:184)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:350)
+	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
+	at org.springframework.aop.target.SimpleBeanTargetSource.getTarget(SimpleBeanTargetSource.java:35)
+	at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaRegistration.getTargetObject(EurekaRegistration.java:167)
+	at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaRegistration.getEurekaClient(EurekaRegistration.java:156)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:498)
+	at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:223)
+	at org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:494)
+	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
+	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
+	at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaRegistration$$EnhancerBySpringCGLIB$$36e57452.getEurekaClient(<generated>)
+	at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaServiceRegistry.maybeInitializeClient(EurekaServiceRegistry.java:57)
+	at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaServiceRegistry.register(EurekaServiceRegistry.java:39)
+	at org.springframework.cloud.netflix.eureka.serviceregistry.EurekaAutoServiceRegistration.start(EurekaAutoServiceRegistration.java:80)
+	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:182)
+	at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:53)
+	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:360)
+	at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:158)
+	at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:122)
+	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:885)
+	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:161)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553)
+	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
+	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:780)
+	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:412)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:333)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1277)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1265)
+	at com.diagbot.ConfigServerApplication.main(ConfigServerApplication.java:24)
+2019-04-22 15:15:39.380 ERROR --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient Line:83  - Request execution error
+com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect
+	at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187)
+	at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123)
+	at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27)
+	at com.sun.jersey.api.client.Client.handle(Client.java:652)
+	at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
+	at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
+	at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570)
+	at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.register(AbstractJerseyEurekaHttpClient.java:56)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59)
+	at com.netflix.discovery.shared.transport.decorator.MetricsCollectingEurekaHttpClient.execute(MetricsCollectingEurekaHttpClient.java:73)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59)
+	at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.executeOnNewServer(RedirectingEurekaHttpClient.java:118)
+	at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.execute(RedirectingEurekaHttpClient.java:79)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59)
+	at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:120)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59)
+	at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
+	at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:829)
+	at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:121)
+	at com.netflix.discovery.InstanceInfoReplicator$1.run(InstanceInfoReplicator.java:101)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+	at java.lang.Thread.run(Thread.java:748)
+Caused by: java.net.ConnectException: Connection refused: connect
+	at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
+	at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
+	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
+	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
+	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
+	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
+	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
+	at java.net.Socket.connect(Socket.java:589)
+	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121)
+	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
+	at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144)
+	at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:134)
+	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610)
+	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445)
+	at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)
+	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:118)
+	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
+	at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173)
+	... 30 common frames omitted

+ 873 - 0
logs/config-server/config-server_info.log

@@ -0,0 +1,873 @@
+2019-04-22 15:15:16.496 INFO  --- [main] com.diagbot.ConfigServerApplication Line:684 - The following profiles are active: native
+2019-04-22 15:15:20.395 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-22 15:15:20.441 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-22 15:15:20.849 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-22 15:15:21.154 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-22 15:15:21.212 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@57151b3a
+2019-04-22 15:15:25.548 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-22 15:15:29.662 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-22 15:15:31.940 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-22 15:15:31.941 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-22 15:15:32.838 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-22 15:15:32.839 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-22 15:15:33.890 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 15:15:34.529 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 15:15:34.531 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 15:15:34.532 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 15:15:34.534 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 15:15:34.535 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 15:15:34.538 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-22 15:15:34.545 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 15:15:37.156 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-22 15:15:37.162 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-22 15:15:37.184 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1555917337169 with initial instances count: 0
+2019-04-22 15:15:37.199 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1555917337199, current=UP, previous=STARTING]
+2019-04-22 15:15:37.331 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769: registering service...
+2019-04-22 15:15:37.548 INFO  --- [main] com.diagbot.ConfigServerApplication Line:59  - Started ConfigServerApplication in 23.636 seconds (JVM running for 24.489)
+2019-04-22 15:15:42.159 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 15:15:42.160 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 15:15:42.160 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 15:15:42.161 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 15:15:42.161 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 15:15:42.161 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-22 15:15:42.161 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 15:15:45.059 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 15:15:47.247 INFO  --- [DiscoveryClient-HeartbeatExecutor-0] com.netflix.discovery.DiscoveryClient Line:850 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769 - Re-registering apps/CONFIG-SERVER
+2019-04-22 15:15:47.248 INFO  --- [DiscoveryClient-HeartbeatExecutor-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769: registering service...
+2019-04-22 15:15:47.964 INFO  --- [DiscoveryClient-HeartbeatExecutor-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769 - registration status: 204
+2019-04-22 15:15:50.062 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 15:15:50.062 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 15:15:50.062 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 15:15:50.063 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 15:15:50.063 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 15:15:50.063 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-22 15:15:50.063 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 15:15:50.085 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 15:15:55.088 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 15:15:55.088 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 15:15:55.088 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 15:15:55.089 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 15:15:55.089 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 15:15:55.090 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-22 15:15:55.092 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 15:15:55.111 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 15:16:00.115 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 15:16:00.115 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 15:16:00.116 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 15:16:00.116 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 15:16:00.116 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 15:16:00.116 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-22 15:16:00.116 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 15:16:00.173 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 15:19:37.136 INFO  --- [main] com.diagbot.ConfigServerApplication Line:684 - The following profiles are active: native
+2019-04-22 15:19:39.238 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-22 15:19:39.266 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-22 15:19:39.543 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-22 15:19:39.725 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-22 15:19:39.746 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@2d4608a6
+2019-04-22 15:19:41.254 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-22 15:19:42.612 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-22 15:19:43.097 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-22 15:19:43.099 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-22 15:19:43.356 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-22 15:19:43.358 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-22 15:19:43.691 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 15:19:43.905 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 15:19:43.907 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 15:19:43.907 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 15:19:43.908 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 15:19:43.908 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 15:19:43.909 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-22 15:19:43.909 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 15:19:44.317 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 15:19:44.321 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-22 15:19:44.326 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-22 15:19:44.334 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1555917584332 with initial instances count: 0
+2019-04-22 15:19:44.341 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1555917584340, current=UP, previous=STARTING]
+2019-04-22 15:19:44.365 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769: registering service...
+2019-04-22 15:19:44.557 INFO  --- [main] com.diagbot.ConfigServerApplication Line:59  - Started ConfigServerApplication in 11.509 seconds (JVM running for 12.771)
+2019-04-22 15:19:44.712 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769 - registration status: 204
+2019-04-22 15:19:49.321 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 15:19:49.321 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 15:19:49.322 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 15:19:49.322 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 15:19:49.322 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 15:19:49.323 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-22 15:19:49.323 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 15:19:49.332 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 15:19:54.335 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 15:19:54.336 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 15:19:54.336 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 15:19:54.337 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 15:19:54.337 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 15:19:54.338 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-22 15:19:54.338 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 15:19:54.349 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 15:19:59.350 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 15:19:59.353 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 15:19:59.353 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 15:19:59.353 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 15:19:59.357 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 15:19:59.358 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-22 15:19:59.358 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 15:19:59.365 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 15:20:04.369 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 15:20:04.369 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 15:20:04.369 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 15:20:04.369 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 15:20:04.370 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 15:20:04.370 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-22 15:20:04.370 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 15:20:04.443 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 15:20:04.772 INFO  --- [XNIO-2 task-1] io.undertow.servlet Line:360 - Initializing Spring FrameworkServlet 'dispatcherServlet'
+2019-04-22 15:24:43.913 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 15:29:43.915 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 15:34:43.917 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 15:39:43.920 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 15:44:43.922 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 15:49:43.924 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 15:54:43.927 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 15:59:43.928 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 16:04:43.930 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 16:09:43.931 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 16:15:03.660 INFO  --- [main] com.diagbot.ConfigServerApplication Line:684 - The following profiles are active: native
+2019-04-22 16:15:08.672 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-22 16:15:08.926 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-22 16:15:09.144 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-22 16:15:09.805 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-22 16:15:09.833 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@22ebccb9
+2019-04-22 16:15:12.326 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-22 16:15:13.946 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-22 16:15:14.456 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-22 16:15:14.456 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-22 16:15:14.653 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-22 16:15:14.654 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-22 16:15:14.904 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 16:15:15.162 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 16:15:15.162 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 16:15:15.163 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 16:15:15.163 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 16:15:15.163 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 16:15:15.164 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-22 16:15:15.165 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 16:15:15.545 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 16:15:15.549 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-22 16:15:15.552 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-22 16:15:15.557 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1555920915556 with initial instances count: 0
+2019-04-22 16:15:15.561 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1555920915561, current=UP, previous=STARTING]
+2019-04-22 16:15:15.572 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769: registering service...
+2019-04-22 16:15:15.743 INFO  --- [main] com.diagbot.ConfigServerApplication Line:59  - Started ConfigServerApplication in 16.661 seconds (JVM running for 17.813)
+2019-04-22 16:15:15.875 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769 - registration status: 204
+2019-04-22 16:15:20.549 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 16:15:20.549 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 16:15:20.549 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 16:15:20.549 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 16:15:20.549 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 16:15:20.550 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-22 16:15:20.550 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 16:15:20.554 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 16:15:25.557 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 16:15:25.557 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 16:15:25.558 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 16:15:25.559 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 16:15:25.559 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 16:15:25.560 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-22 16:15:25.560 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 16:15:25.577 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 16:15:30.580 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 16:15:30.580 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 16:15:30.581 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 16:15:30.581 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 16:15:30.582 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 16:15:30.582 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-22 16:15:30.582 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 16:15:30.670 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 16:15:47.411 INFO  --- [XNIO-2 task-1] io.undertow.servlet Line:360 - Initializing Spring FrameworkServlet 'dispatcherServlet'
+2019-04-22 16:20:15.170 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 16:25:15.172 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 16:30:15.174 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 16:35:15.176 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 16:40:15.178 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 16:45:15.180 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 16:49:48.350 INFO  --- [main] com.diagbot.ConfigServerApplication Line:684 - The following profiles are active: native
+2019-04-22 16:49:50.848 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-22 16:49:50.864 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-22 16:49:51.029 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-22 16:49:51.190 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-22 16:49:51.206 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@3f1ef9d6
+2019-04-22 16:49:52.805 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-22 16:49:54.337 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-22 16:49:55.490 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-22 16:49:55.491 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-22 16:49:56.369 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-22 16:49:56.378 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-22 16:49:57.075 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 16:49:57.503 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 16:49:57.506 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 16:49:57.506 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 16:49:57.508 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 16:49:57.508 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 16:49:57.509 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-22 16:49:57.510 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 16:49:58.138 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 16:49:58.142 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-22 16:49:58.147 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-22 16:49:58.162 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1555922998158 with initial instances count: 0
+2019-04-22 16:49:58.241 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1555922998240, current=UP, previous=STARTING]
+2019-04-22 16:49:58.258 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769: registering service...
+2019-04-22 16:49:58.638 INFO  --- [main] com.diagbot.ConfigServerApplication Line:59  - Started ConfigServerApplication in 12.559 seconds (JVM running for 13.173)
+2019-04-22 16:49:59.115 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769 - registration status: 204
+2019-04-22 16:50:03.154 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-22 16:50:03.154 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-22 16:50:03.155 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-22 16:50:03.155 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-22 16:50:03.155 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-22 16:50:03.155 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-22 16:50:03.155 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-22 16:50:03.234 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-22 16:54:57.514 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 16:59:57.516 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 17:04:57.518 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 17:09:57.519 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 17:14:57.522 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 17:19:57.524 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 17:24:57.526 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 17:29:57.527 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 17:34:57.529 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-22 17:37:35.674 INFO  --- [XNIO-2 task-1] io.undertow.servlet Line:360 - Initializing Spring FrameworkServlet 'dispatcherServlet'
+2019-04-22 17:39:57.568 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 09:30:36.052 INFO  --- [main] com.diagbot.ConfigServerApplication Line:684 - The following profiles are active: native
+2019-04-23 09:30:38.369 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-23 09:30:38.386 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-23 09:30:38.690 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-23 09:30:38.861 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-23 09:30:38.879 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@6e6d4780
+2019-04-23 09:30:40.330 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-23 09:30:41.627 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-23 09:30:42.023 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-23 09:30:42.023 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-23 09:30:42.167 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-23 09:30:42.167 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-23 09:30:42.368 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 09:30:42.563 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 09:30:42.564 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 09:30:42.564 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 09:30:42.564 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 09:30:42.565 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 09:30:42.565 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-23 09:30:42.566 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 09:30:42.997 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 09:30:43.000 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-23 09:30:43.004 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-23 09:30:43.010 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1555983043008 with initial instances count: 0
+2019-04-23 09:30:43.015 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1555983043015, current=UP, previous=STARTING]
+2019-04-23 09:30:43.027 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769: registering service...
+2019-04-23 09:30:43.201 INFO  --- [main] com.diagbot.ConfigServerApplication Line:59  - Started ConfigServerApplication in 9.355 seconds (JVM running for 10.678)
+2019-04-23 09:30:43.387 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769 - registration status: 204
+2019-04-23 09:30:48.001 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 09:30:48.001 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 09:30:48.001 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 09:30:48.001 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 09:30:48.001 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 09:30:48.001 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-23 09:30:48.002 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 09:30:48.008 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 09:30:53.014 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 09:30:53.015 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 09:30:53.015 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 09:30:53.015 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 09:30:53.015 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 09:30:53.016 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-23 09:30:53.016 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 09:30:53.037 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 09:30:58.040 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 09:30:58.040 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 09:30:58.040 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 09:30:58.041 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 09:30:58.041 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 09:30:58.042 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-23 09:30:58.042 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 09:30:58.049 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 09:31:03.050 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 09:31:03.050 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 09:31:03.050 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 09:31:03.050 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 09:31:03.051 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 09:31:03.051 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-23 09:31:03.051 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 09:31:03.163 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 09:32:29.022 INFO  --- [XNIO-2 task-1] io.undertow.servlet Line:360 - Initializing Spring FrameworkServlet 'dispatcherServlet'
+2019-04-23 09:35:42.570 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 09:40:42.584 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 09:45:42.609 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 09:50:42.611 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 09:55:42.647 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 10:00:02.042 INFO  --- [main] com.diagbot.ConfigServerApplication Line:684 - The following profiles are active: native
+2019-04-23 10:00:04.007 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-23 10:00:04.023 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-23 10:00:04.277 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-23 10:00:04.447 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-23 10:00:04.472 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@2e1ddc90
+2019-04-23 10:00:06.178 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-23 10:00:07.753 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-23 10:00:08.245 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-23 10:00:08.245 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-23 10:00:08.436 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-23 10:00:08.437 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-23 10:00:08.655 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 10:00:08.877 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 10:00:08.877 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 10:00:08.878 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 10:00:08.878 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 10:00:08.878 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 10:00:08.879 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-23 10:00:08.880 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 10:00:09.276 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 10:00:09.279 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-23 10:00:09.283 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-23 10:00:09.289 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1555984809287 with initial instances count: 0
+2019-04-23 10:00:09.296 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1555984809296, current=UP, previous=STARTING]
+2019-04-23 10:00:09.309 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769: registering service...
+2019-04-23 10:00:09.457 INFO  --- [main] com.diagbot.ConfigServerApplication Line:59  - Started ConfigServerApplication in 11.015 seconds (JVM running for 12.228)
+2019-04-23 10:00:09.629 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769 - registration status: 204
+2019-04-23 10:00:14.281 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 10:00:14.282 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 10:00:14.282 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 10:00:14.282 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 10:00:14.282 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 10:00:14.283 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-23 10:00:14.283 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 10:00:14.288 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 10:00:19.292 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 10:00:19.293 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 10:00:19.294 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 10:00:19.295 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 10:00:19.295 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 10:00:19.295 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-23 10:00:19.296 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 10:00:19.302 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 10:00:24.304 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 10:00:24.304 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 10:00:24.305 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 10:00:24.305 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 10:00:24.305 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 10:00:24.305 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-23 10:00:24.306 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 10:00:24.312 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 10:00:29.330 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 10:00:29.331 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 10:00:29.331 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 10:00:29.332 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 10:00:29.332 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 10:00:29.332 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-23 10:00:29.332 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 10:00:29.374 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 10:00:34.357 INFO  --- [XNIO-2 task-1] io.undertow.servlet Line:360 - Initializing Spring FrameworkServlet 'dispatcherServlet'
+2019-04-23 10:00:34.380 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 10:00:34.384 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 10:00:34.384 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 10:00:34.385 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 10:00:34.386 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 10:00:34.387 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-23 10:00:34.388 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 10:00:34.477 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 10:05:08.885 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 10:10:08.887 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 10:14:43.186 INFO  --- [main] com.diagbot.ConfigServerApplication Line:684 - The following profiles are active: native
+2019-04-23 10:14:46.399 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-23 10:14:46.411 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-23 10:14:46.593 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-23 10:14:46.778 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-23 10:14:46.800 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@3b5c665c
+2019-04-23 10:14:48.267 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-23 10:14:49.552 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-23 10:14:49.935 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-23 10:14:49.936 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-23 10:14:50.111 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-23 10:14:50.111 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-23 10:14:50.346 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 10:14:50.553 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 10:14:50.553 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 10:14:50.554 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 10:14:50.554 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 10:14:50.554 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 10:14:50.555 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-23 10:14:50.556 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 10:14:50.886 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 10:14:50.889 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-23 10:14:50.893 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-23 10:14:50.899 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1555985690897 with initial instances count: 0
+2019-04-23 10:14:50.905 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1555985690905, current=UP, previous=STARTING]
+2019-04-23 10:14:50.911 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769: registering service...
+2019-04-23 10:14:51.061 INFO  --- [main] com.diagbot.ConfigServerApplication Line:59  - Started ConfigServerApplication in 13.126 seconds (JVM running for 14.339)
+2019-04-23 10:14:51.195 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769 - registration status: 204
+2019-04-23 10:14:55.890 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 10:14:55.891 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 10:14:55.891 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 10:14:55.891 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 10:14:55.892 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 10:14:55.892 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-23 10:14:55.892 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 10:14:55.898 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 10:15:00.902 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 10:15:00.903 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 10:15:00.903 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 10:15:00.903 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 10:15:00.904 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 10:15:00.904 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-23 10:15:00.904 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 10:15:01.036 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 10:15:16.165 INFO  --- [XNIO-2 task-1] io.undertow.servlet Line:360 - Initializing Spring FrameworkServlet 'dispatcherServlet'
+2019-04-23 10:19:50.559 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 10:24:50.561 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 10:29:50.563 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 10:34:50.565 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 10:39:50.580 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 10:44:50.584 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 10:49:50.586 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 10:54:50.587 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 10:59:50.589 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 11:04:50.591 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 11:09:50.593 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 11:14:50.594 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 11:19:50.596 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 11:24:50.597 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 11:29:50.599 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 11:34:50.600 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 11:39:50.602 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 11:44:50.603 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 11:49:50.606 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 11:54:50.608 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 11:59:50.609 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 12:04:50.612 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 12:09:50.614 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 12:14:50.615 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 12:19:50.617 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 12:24:50.618 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 12:29:50.620 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 12:34:50.621 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 12:39:50.622 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 12:44:50.624 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 12:49:50.627 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 12:54:50.629 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 12:59:50.631 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 13:04:50.632 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 13:09:50.635 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 13:14:50.637 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 13:19:50.639 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 13:25:47.730 INFO  --- [main] com.diagbot.ConfigServerApplication Line:684 - The following profiles are active: native
+2019-04-23 13:25:49.676 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-23 13:25:49.690 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-23 13:25:49.867 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-23 13:25:50.042 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-23 13:25:50.062 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@196ae579
+2019-04-23 13:25:51.516 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-23 13:25:52.862 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-23 13:25:53.236 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-23 13:25:53.237 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-23 13:25:53.384 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-23 13:25:53.384 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-23 13:25:53.607 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 13:25:53.842 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 13:25:53.844 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 13:25:53.844 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 13:25:53.845 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 13:25:53.845 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 13:25:53.846 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-23 13:25:53.846 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 13:25:54.439 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 13:25:54.442 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-23 13:25:54.445 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-23 13:25:54.449 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1555997154448 with initial instances count: 0
+2019-04-23 13:25:54.456 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1555997154456, current=UP, previous=STARTING]
+2019-04-23 13:25:54.461 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:4001: registering service...
+2019-04-23 13:25:54.646 INFO  --- [main] com.diagbot.ConfigServerApplication Line:59  - Started ConfigServerApplication in 9.258 seconds (JVM running for 9.794)
+2019-04-23 13:25:54.840 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:4001 - registration status: 204
+2019-04-23 13:25:59.443 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 13:25:59.444 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 13:25:59.444 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 13:25:59.444 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 13:25:59.444 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 13:25:59.445 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-23 13:25:59.445 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 13:25:59.450 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 13:26:04.453 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-23 13:26:04.453 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-23 13:26:04.454 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-23 13:26:04.454 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-23 13:26:04.454 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-23 13:26:04.455 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-23 13:26:04.455 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-23 13:26:04.527 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-23 13:27:17.362 INFO  --- [XNIO-2 task-1] io.undertow.servlet Line:360 - Initializing Spring FrameworkServlet 'dispatcherServlet'
+2019-04-23 13:30:53.850 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 13:35:53.852 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 13:40:53.854 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 13:45:53.855 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 13:50:53.858 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 13:55:53.859 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 14:00:53.862 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 14:05:53.864 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 14:10:53.865 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 14:15:53.867 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 14:20:53.868 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 14:25:53.870 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 14:30:53.872 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 14:35:53.874 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 14:40:53.875 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 14:45:53.878 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 14:50:53.879 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 14:55:53.881 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 15:00:53.883 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 15:05:53.892 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 15:10:53.893 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 15:15:53.895 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 15:20:53.897 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 15:25:53.898 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 15:30:53.944 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 15:35:53.947 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 15:40:53.949 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 15:45:53.950 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 15:50:53.951 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 15:55:54.003 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 16:00:54.005 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 16:05:54.007 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 16:10:54.009 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 16:15:54.011 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 16:20:54.012 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 16:25:54.014 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 16:30:54.016 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 16:35:54.017 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 16:40:54.018 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 16:45:54.020 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 16:50:54.022 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 16:55:54.024 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 17:00:54.026 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 17:05:54.028 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 17:10:54.030 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 17:15:54.032 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 17:20:54.039 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 17:25:54.064 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 17:30:54.066 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-23 17:35:54.067 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 09:16:55.415 INFO  --- [main] com.diagbot.ConfigServerApplication Line:684 - The following profiles are active: native
+2019-04-24 09:17:01.074 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-24 09:17:01.106 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-24 09:17:01.429 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-24 09:17:01.879 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-24 09:17:01.916 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@41dc0598
+2019-04-24 09:17:07.511 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-24 09:17:12.932 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-24 09:17:14.840 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-24 09:17:14.841 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-24 09:17:15.195 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-24 09:17:15.196 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-24 09:17:15.648 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 09:17:16.158 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 09:17:16.159 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 09:17:16.160 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 09:17:16.160 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 09:17:16.161 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 09:17:16.161 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-24 09:17:16.161 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 09:17:16.515 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 09:17:16.520 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-24 09:17:16.523 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-24 09:17:16.529 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1556068636527 with initial instances count: 0
+2019-04-24 09:17:16.539 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1556068636538, current=UP, previous=STARTING]
+2019-04-24 09:17:16.547 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:4001: registering service...
+2019-04-24 09:17:16.698 INFO  --- [main] com.diagbot.ConfigServerApplication Line:59  - Started ConfigServerApplication in 26.206 seconds (JVM running for 27.568)
+2019-04-24 09:17:17.319 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:4001 - registration status: 204
+2019-04-24 09:17:21.570 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 09:17:21.571 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 09:17:21.571 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 09:17:21.571 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 09:17:21.571 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 09:17:21.572 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-24 09:17:21.573 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 09:17:21.625 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 09:17:26.628 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 09:17:26.628 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 09:17:26.628 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 09:17:26.628 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 09:17:26.628 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 09:17:26.628 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-24 09:17:26.628 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 09:17:26.634 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 09:17:31.637 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 09:17:31.638 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 09:17:31.638 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 09:17:31.639 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 09:17:31.639 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 09:17:31.640 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-24 09:17:31.640 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 09:17:31.738 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 09:26:45.161 INFO  --- [main] com.diagbot.ConfigServerApplication Line:684 - The following profiles are active: native
+2019-04-24 09:26:47.959 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-24 09:26:47.974 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-24 09:26:48.201 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-24 09:26:48.477 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-24 09:26:48.497 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@f5b6e78
+2019-04-24 09:26:50.452 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-24 09:26:52.435 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-24 09:26:52.896 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-24 09:26:52.896 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-24 09:26:53.050 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-24 09:26:53.051 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-24 09:26:53.358 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 09:26:53.576 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 09:26:53.577 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 09:26:53.578 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 09:26:53.578 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 09:26:53.578 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 09:26:53.578 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-24 09:26:53.579 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 09:26:53.962 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 09:26:53.967 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-24 09:26:53.971 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-24 09:26:53.977 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1556069213975 with initial instances count: 0
+2019-04-24 09:26:53.983 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1556069213983, current=UP, previous=STARTING]
+2019-04-24 09:26:53.999 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:4001: registering service...
+2019-04-24 09:26:54.126 INFO  --- [main] com.diagbot.ConfigServerApplication Line:59  - Started ConfigServerApplication in 13.982 seconds (JVM running for 15.37)
+2019-04-24 09:26:54.317 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:4001 - registration status: 204
+2019-04-24 09:26:58.968 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 09:26:58.969 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 09:26:58.969 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 09:26:58.969 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 09:26:58.970 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 09:26:58.970 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-24 09:26:58.970 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 09:26:58.979 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 09:27:03.981 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 09:27:03.981 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 09:27:03.981 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 09:27:03.982 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 09:27:03.982 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 09:27:03.982 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-24 09:27:03.982 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 09:27:04.026 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 09:31:53.582 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 09:36:53.585 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 09:41:53.587 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 09:46:53.588 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 09:51:53.589 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 09:56:53.591 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 10:01:53.594 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 10:06:53.597 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 10:11:53.598 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 10:16:53.601 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 10:21:53.602 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 10:26:53.603 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 10:31:53.605 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 10:36:53.606 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 10:41:53.608 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 10:46:53.610 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 10:51:53.613 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 10:56:53.614 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 11:01:53.617 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 11:06:53.618 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 11:11:53.621 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 11:16:53.621 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 11:21:53.623 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 11:26:53.624 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 11:31:53.626 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 11:36:53.702 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 11:41:53.704 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 11:46:53.706 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 11:51:53.708 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 11:56:53.750 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 12:01:53.752 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 12:06:53.754 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 12:11:53.756 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 12:16:53.758 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 12:21:53.760 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 12:26:53.763 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 12:31:53.764 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 12:36:53.766 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 12:41:53.768 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 12:46:53.771 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 12:51:53.773 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 12:56:53.774 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 13:01:53.775 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 13:06:53.777 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 13:11:53.779 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 13:16:53.781 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 13:21:53.782 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 13:26:53.783 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 13:31:53.786 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 13:36:53.788 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 14:57:20.119 INFO  --- [main] com.diagbot.ConfigServerApplication Line:684 - The following profiles are active: native
+2019-04-24 14:57:22.043 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-24 14:57:22.065 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-24 14:57:22.291 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-24 14:57:22.456 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-24 14:57:22.473 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@4190bc8a
+2019-04-24 14:57:23.858 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-24 14:57:25.100 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-24 14:57:25.468 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-24 14:57:25.469 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-24 14:57:25.618 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-24 14:57:25.618 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-24 14:57:25.891 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 14:57:26.099 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 14:57:26.100 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 14:57:26.102 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 14:57:26.104 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 14:57:26.104 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 14:57:26.106 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-24 14:57:26.106 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 14:57:26.477 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 14:57:26.479 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-24 14:57:26.482 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-24 14:57:26.487 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1556089046486 with initial instances count: 0
+2019-04-24 14:57:26.491 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1556089046491, current=UP, previous=STARTING]
+2019-04-24 14:57:26.495 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:4001: registering service...
+2019-04-24 14:57:26.650 INFO  --- [main] com.diagbot.ConfigServerApplication Line:59  - Started ConfigServerApplication in 8.641 seconds (JVM running for 9.17)
+2019-04-24 14:57:26.768 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:4001 - registration status: 204
+2019-04-24 14:57:31.480 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 14:57:31.481 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 14:57:31.481 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 14:57:31.481 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 14:57:31.481 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 14:57:31.481 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-24 14:57:31.481 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 14:57:31.535 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 14:58:02.015 INFO  --- [XNIO-2 task-1] io.undertow.servlet Line:360 - Initializing Spring FrameworkServlet 'dispatcherServlet'
+2019-04-24 15:02:26.109 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 15:05:35.780 INFO  --- [main] com.diagbot.ConfigServerApplication Line:684 - The following profiles are active: native
+2019-04-24 15:05:40.778 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-24 15:05:40.796 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-24 15:05:40.985 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-24 15:05:41.162 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-24 15:05:41.181 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@7f37b6d9
+2019-04-24 15:05:42.780 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-24 15:05:44.061 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-24 15:05:44.478 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-24 15:05:44.479 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-24 15:05:44.654 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-24 15:05:44.656 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-24 15:05:44.866 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 15:05:45.120 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 15:05:45.121 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 15:05:45.121 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 15:05:45.122 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 15:05:45.122 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 15:05:45.122 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-24 15:05:45.123 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 15:05:45.317 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 15:05:45.320 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-24 15:05:45.324 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-24 15:05:45.329 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1556089545327 with initial instances count: 0
+2019-04-24 15:05:45.335 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1556089545335, current=UP, previous=STARTING]
+2019-04-24 15:05:45.342 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:4001: registering service...
+2019-04-24 15:05:45.650 INFO  --- [main] com.diagbot.ConfigServerApplication Line:59  - Started ConfigServerApplication in 15.224 seconds (JVM running for 16.225)
+2019-04-24 15:05:45.796 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:4001 - registration status: 204
+2019-04-24 15:05:50.322 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 15:05:50.322 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 15:05:50.323 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 15:05:50.323 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 15:05:50.323 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 15:05:50.324 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-24 15:05:50.324 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 15:05:50.330 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 15:05:55.334 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 15:05:55.334 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 15:05:55.335 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 15:05:55.336 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 15:05:55.336 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 15:05:55.337 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-24 15:05:55.337 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 15:05:55.345 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 15:06:00.347 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 15:06:00.348 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 15:06:00.348 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 15:06:00.348 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 15:06:00.349 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 15:06:00.349 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-24 15:06:00.349 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 15:06:00.422 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 15:06:18.322 INFO  --- [XNIO-2 task-1] io.undertow.servlet Line:360 - Initializing Spring FrameworkServlet 'dispatcherServlet'
+2019-04-24 15:10:45.127 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 15:16:10.887 INFO  --- [main] com.diagbot.ConfigServerApplication Line:684 - The following profiles are active: native
+2019-04-24 15:16:13.347 INFO  --- [main] org.xnio Line:104 - XNIO version 3.3.8.Final
+2019-04-24 15:16:13.367 INFO  --- [main] org.xnio.nio Line:55  - XNIO NIO Implementation Version 3.3.8.Final
+2019-04-24 15:16:13.595 INFO  --- [main] io.undertow.servlet Line:360 - Initializing Spring embedded WebApplicationContext
+2019-04-24 15:16:13.763 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-24 15:16:13.782 INFO  --- [main] com.netflix.config.DynamicPropertyFactory Line:281 - DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@4397a639
+2019-04-24 15:16:15.247 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-24 15:16:16.534 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:349 - Initializing Eureka in region us-east-1
+2019-04-24 15:16:16.974 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:70  - Using JSON encoding codec LegacyJacksonJson
+2019-04-24 15:16:16.974 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:71  - Using JSON decoding codec LegacyJacksonJson
+2019-04-24 15:16:17.181 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:80  - Using XML encoding codec XStreamXml
+2019-04-24 15:16:17.183 INFO  --- [main] com.netflix.discovery.provider.DiscoveryJerseyProvider Line:81  - Using XML decoding codec XStreamXml
+2019-04-24 15:16:17.429 INFO  --- [main] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 15:16:17.701 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 15:16:17.702 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 15:16:17.702 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 15:16:17.703 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 15:16:17.703 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 15:16:17.704 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: true
+2019-04-24 15:16:17.705 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 15:16:18.152 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 15:16:18.160 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1264 - Starting heartbeat executor: renew interval is: 10
+2019-04-24 15:16:18.166 INFO  --- [main] com.netflix.discovery.InstanceInfoReplicator Line:60  - InstanceInfoReplicator onDemand update allowed rate per min is 4
+2019-04-24 15:16:18.175 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:449 - Discovery Client initialized at timestamp 1556090178173 with initial instances count: 0
+2019-04-24 15:16:18.199 INFO  --- [main] com.netflix.discovery.DiscoveryClient Line:1299 - Saw local status change event StatusChangeEvent [timestamp=1556090178199, current=UP, previous=STARTING]
+2019-04-24 15:16:18.318 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:826 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:4001: registering service...
+2019-04-24 15:16:18.441 INFO  --- [main] com.diagbot.ConfigServerApplication Line:59  - Started ConfigServerApplication in 13.058 seconds (JVM running for 14.382)
+2019-04-24 15:16:18.739 INFO  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:835 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:4001 - registration status: 204
+2019-04-24 15:16:23.162 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 15:16:23.162 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 15:16:23.162 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 15:16:23.162 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 15:16:23.162 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 15:16:23.163 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-24 15:16:23.165 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 15:16:23.171 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 15:16:28.176 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 15:16:28.176 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 15:16:28.177 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 15:16:28.178 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 15:16:28.178 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 15:16:28.179 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-24 15:16:28.179 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 15:16:28.185 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 15:16:33.188 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:958 - Disable delta property : false
+2019-04-24 15:16:33.188 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:959 - Single vip registry refresh property : null
+2019-04-24 15:16:33.189 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:960 - Force full registry fetch : false
+2019-04-24 15:16:33.189 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:961 - Application is null : false
+2019-04-24 15:16:33.189 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:962 - Registered Applications size is zero : true
+2019-04-24 15:16:33.189 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:964 - Application version is -1: false
+2019-04-24 15:16:33.190 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1047 - Getting all instance registry info from the eureka server
+2019-04-24 15:16:33.241 INFO  --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient Line:1056 - The response status is 200
+2019-04-24 15:17:26.371 INFO  --- [XNIO-2 task-1] io.undertow.servlet Line:360 - Initializing Spring FrameworkServlet 'dispatcherServlet'
+2019-04-24 15:21:17.757 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 15:26:17.761 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 15:31:17.763 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 15:36:17.765 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 15:41:17.767 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 15:46:17.768 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 15:51:17.770 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 15:56:17.815 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 16:01:17.817 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 16:06:17.818 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 16:11:17.820 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 16:16:17.822 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 16:21:17.823 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 16:26:17.824 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 16:31:17.825 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 16:36:17.827 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 16:41:17.828 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 16:46:17.830 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 16:51:17.850 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 16:56:17.851 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 17:01:17.853 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 17:06:17.856 INFO  --- [AsyncResolver-bootstrap-executor-0] com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver Line:43  - Resolving eureka endpoints via configuration
+2019-04-24 17:12:41.146 INFO  --- [main] com.diagbot.ConfigServerApplicationTests Line:684 - The following profiles are active: native
+2019-04-24 17:12:43.268 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-24 17:12:43.282 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-24 17:12:46.487 INFO  --- [main] com.diagbot.ConfigServerApplicationTests Line:59  - Started ConfigServerApplicationTests in 7.669 seconds (JVM running for 9.634)
+2019-04-24 17:14:06.462 INFO  --- [main] com.diagbot.ConfigServerApplicationTests Line:684 - The following profiles are active: native
+2019-04-24 17:14:08.807 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-24 17:14:08.817 INFO  --- [main] com.netflix.config.sources.URLConfigurationSource Line:122 - To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
+2019-04-24 17:14:12.460 INFO  --- [main] com.diagbot.ConfigServerApplicationTests Line:59  - Started ConfigServerApplicationTests in 8.158 seconds (JVM running for 9.266)

+ 24 - 0
logs/config-server/config-server_warn.log

@@ -0,0 +1,24 @@
+2019-04-24 09:17:01.366 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-24 09:17:01.387 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-24 09:17:01.879 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-24 09:17:07.510 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-24 09:26:48.175 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-24 09:26:48.176 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-24 09:26:48.477 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-24 09:26:50.451 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-24 14:57:22.271 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-24 14:57:22.271 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-24 14:57:22.455 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-24 14:57:23.857 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-24 15:05:40.965 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-24 15:05:40.965 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-24 15:05:41.162 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-24 15:05:42.779 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-24 15:16:13.572 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-24 15:16:13.573 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-24 15:16:13.761 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-24 15:16:15.246 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-24 17:12:43.267 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-24 17:12:43.282 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-24 17:14:08.806 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-24 17:14:08.816 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.

+ 53 - 0
logs/config-server/warn/config-server-warn-2019-04-22.0.log

@@ -0,0 +1,53 @@
+2019-04-22 15:15:20.782 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-22 15:15:20.782 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-22 15:15:21.153 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-22 15:15:25.548 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-22 15:15:37.140 WARN  --- [main] com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient Line:130 - Request execution failed with message: java.net.ConnectException: Connection refused: connect
+2019-04-22 15:15:37.152 WARN  --- [main] com.netflix.discovery.DiscoveryClient Line:290 - Using default backup registry implementation which does not do anything.
+2019-04-22 15:15:39.381 WARN  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient Line:130 - Request execution failed with message: java.net.ConnectException: Connection refused: connect
+2019-04-22 15:15:39.382 WARN  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient Line:831 - DiscoveryClient_CONFIG-SERVER/192.168.4.186:8769 - registration failed Cannot execute request on any known server
+com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
+	at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59)
+	at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
+	at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:829)
+	at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:121)
+	at com.netflix.discovery.InstanceInfoReplicator$1.run(InstanceInfoReplicator.java:101)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+	at java.lang.Thread.run(Thread.java:748)
+2019-04-22 15:15:39.383 WARN  --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.InstanceInfoReplicator Line:125 - There was a problem with the instance info replicator
+com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
+	at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59)
+	at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
+	at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
+	at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:829)
+	at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:121)
+	at com.netflix.discovery.InstanceInfoReplicator$1.run(InstanceInfoReplicator.java:101)
+	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
+	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
+	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
+	at java.lang.Thread.run(Thread.java:748)
+2019-04-22 15:19:39.517 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-22 15:19:39.518 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-22 15:19:39.724 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-22 15:19:41.253 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-22 16:15:09.077 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-22 16:15:09.079 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-22 16:15:09.804 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-22 16:15:12.325 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-22 16:49:51.009 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-22 16:49:51.010 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-22 16:49:51.190 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-22 16:49:52.804 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.

+ 16 - 0
logs/config-server/warn/config-server-warn-2019-04-23.0.log

@@ -0,0 +1,16 @@
+2019-04-23 09:30:38.654 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-23 09:30:38.657 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-23 09:30:38.861 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-23 09:30:40.329 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-23 10:00:04.229 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-23 10:00:04.249 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-23 10:00:04.446 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-23 10:00:06.177 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-23 10:14:46.570 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-23 10:14:46.570 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-23 10:14:46.777 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-23 10:14:48.266 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-23 13:25:49.845 WARN  --- [main] io.undertow.websockets.jsr Line:67  - UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
+2019-04-23 13:25:49.846 WARN  --- [main] io.undertow.websockets.jsr Line:76  - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2019-04-23 13:25:50.041 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.
+2019-04-23 13:25:51.515 WARN  --- [main] com.netflix.config.sources.URLConfigurationSource Line:121 - No URLs will be polled as dynamic configuration sources.

+ 0 - 0
logs/eureka-server/error/eureka-server-error-2019-04-22.0.log


+ 0 - 0
logs/eureka-server/eureka-server_debug.log


+ 0 - 0
logs/eureka-server/eureka-server_error.log


部分文件因为文件数量过多而无法显示