瀏覽代碼

Merge remote-tracking branch 'origin/develop' into dev/knowledge

rgb 6 年之前
父節點
當前提交
41888a6a57
共有 57 個文件被更改,包括 714 次插入383 次删除
  1. 22 5
      aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java
  2. 7 1
      config-server/src/main/resources/shared/application-dev.yml
  3. 7 1
      config-server/src/main/resources/shared/application-local.yml
  4. 7 1
      config-server/src/main/resources/shared/application-pro.yml
  5. 7 1
      config-server/src/main/resources/shared/application-test.yml
  6. 0 12
      config-server/src/main/resources/shared/gateway-service-dev.yml
  7. 0 12
      config-server/src/main/resources/shared/gateway-service-local.yml
  8. 0 12
      config-server/src/main/resources/shared/gateway-service-pro.yml
  9. 8 13
      config-server/src/main/resources/shared/gateway-service-test.yml
  10. 40 0
      docs/007.20190318对接相关修改/icss_tran.sql
  11. 110 101
      docs/07.20190318对接相关修改/icss_tran.sql
  12. 38 0
      docs/008.20190410标签别名脏数据处理/标签别名脏数据处理.sql
  13. 4 0
      icss-service/src/main/java/com/diagbot/client/BigDataServiceClient.java
  14. 8 0
      icss-service/src/main/java/com/diagbot/client/hystrix/BigDataServiceHystrix.java
  15. 2 1
      icss-service/src/main/java/com/diagbot/dto/EMRIntroduceDetailDTO.java
  16. 1 0
      icss-service/src/main/java/com/diagbot/dto/ModuleDetailDTO.java
  17. 2 2
      icss-service/src/main/java/com/diagbot/enums/DisTypeEnum.java
  18. 23 19
      icss-service/src/main/java/com/diagbot/facade/BuriedSomeStatisticalFacade.java
  19. 6 1
      icss-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java
  20. 9 3
      icss-service/src/main/java/com/diagbot/facade/LisExcelResFacade.java
  21. 4 0
      icss-service/src/main/java/com/diagbot/facade/ModuleFacade.java
  22. 114 100
      icss-service/src/main/java/com/diagbot/facade/PushFacade.java
  23. 1 1
      icss-service/src/main/java/com/diagbot/facade/VersionInfoFacade.java
  24. 15 0
      icss-service/src/main/java/com/diagbot/vo/EMRIntroduceInnerVO.java
  25. 2 2
      icss-service/src/main/java/com/diagbot/vo/EMRIntroduceVO.java
  26. 2 0
      icss-service/src/main/java/com/diagbot/vo/LisExcelWrapperVO.java
  27. 3 2
      icss-service/src/main/java/com/diagbot/web/EMRController.java
  28. 2 2
      icss-service/src/main/resources/mapper/InquiryDetailMapper.xml
  29. 5 0
      icssman-service/src/main/java/com/diagbot/dto/GetModuleDetailInfoDTO.java
  30. 27 0
      icssman-service/src/main/java/com/diagbot/dto/IndexRevDTO.java
  31. 6 0
      icssman-service/src/main/java/com/diagbot/dto/RetrievalListDTO.java
  32. 5 0
      icssman-service/src/main/java/com/diagbot/entity/ModuleDetail.java
  33. 40 14
      icssman-service/src/main/java/com/diagbot/facade/DeptInfoFacade.java
  34. 12 1
      icssman-service/src/main/java/com/diagbot/facade/DeptVitalFacade.java
  35. 14 6
      icssman-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java
  36. 13 2
      icssman-service/src/main/java/com/diagbot/facade/ModuleDetailFacade.java
  37. 2 1
      icssman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java
  38. 31 21
      icssman-service/src/main/java/com/diagbot/facade/QuestionFacade.java
  39. 8 3
      icssman-service/src/main/java/com/diagbot/facade/QuestionUsualFacade.java
  40. 21 8
      icssman-service/src/main/java/com/diagbot/facade/RetrievalFacade.java
  41. 8 1
      icssman-service/src/main/java/com/diagbot/mapper/DeptInfoMapper.java
  42. 8 0
      icssman-service/src/main/java/com/diagbot/service/DeptInfoService.java
  43. 5 0
      icssman-service/src/main/java/com/diagbot/service/impl/DeptInfoServiceImpl.java
  44. 1 1
      icssman-service/src/main/java/com/diagbot/vo/AddModuleDetailVO.java
  45. 6 1
      icssman-service/src/main/java/com/diagbot/vo/DVDetailVO.java
  46. 2 2
      icssman-service/src/main/java/com/diagbot/vo/DisclaimerInformationVO.java
  47. 1 1
      icssman-service/src/main/java/com/diagbot/vo/VersionInfoVO.java
  48. 6 2
      icssman-service/src/main/java/com/diagbot/web/DeptVitalController.java
  49. 1 1
      icssman-service/src/main/java/com/diagbot/web/ModuleInfoController.java
  50. 14 11
      icssman-service/src/main/java/com/diagbot/web/QuestionInfoController.java
  51. 2 1
      icssman-service/src/main/java/com/diagbot/web/QuestionUsualController.java
  52. 13 0
      icssman-service/src/main/resources/mapper/DeptInfoMapper.xml
  53. 2 2
      icssman-service/src/main/resources/mapper/DeptVitalMapper.xml
  54. 3 3
      icssman-service/src/main/resources/mapper/QuestionInfoMapper.xml
  55. 4 1
      icssman-service/src/main/resources/mapper/QuestionUsualMapper.xml
  56. 1 1
      icssman-service/src/main/resources/mapper/RetrievalMapper.xml
  57. 9 7
      pom.xml

+ 22 - 5
aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java

@@ -9,6 +9,7 @@ import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestBody;
 import com.diagbot.vo.SearchVo;
 
+import javax.print.attribute.standard.MediaSize;
 import java.util.List;
 
 /**
@@ -25,6 +26,13 @@ public class ClinicalFacade {
     @Autowired
     private AIServiceClient aiServiceClient;
 
+    private static String up = "增高";
+    private static String down = "降低";
+    private static String normal = "正常";
+
+    private static String pos = "阳性";
+    private static String neg = "阴性";
+
     /**
      * 处理临床数据
      *
@@ -35,6 +43,7 @@ public class ClinicalFacade {
         SearchVo sData = searchVo;
 
         sData.setLisArr(processLis(sData.getLisArr()));
+
         Response<ResponseData> res = aiServiceClient.bayesPageData(sData);
 
         return res.getData();
@@ -47,13 +56,21 @@ public class ClinicalFacade {
         for (int i=0; i<lisArr.size(); i++) {
             LisResult lisres = lisArr.get(i);
 
-            Otherval = (lisres.getOtherValue().trim().length() > 0)? lisres.getOtherValue().trim()+"\n":"";
+            Otherval = lisres.getOtherValue();
 
-            if (lisres.getMaxValue() != null && lisres.getValue() > lisres.getMaxValue()) {
-                lisres.setOtherValue(Otherval + "超出标准");
+            if (Otherval.indexOf(pos) >= 0 || Otherval.indexOf(neg) >= 0) {
+                lisres.setOtherValue(lisres.getDetailName() + Otherval);
             }
-            else if (lisres.getMinValue() != null && lisres.getValue() < lisres.getMinValue()) {
-                lisres.setOtherValue(Otherval + "低于标准");
+            else {
+                Otherval = (Otherval.trim().length() > 0) ? Otherval.trim() + "\n" : "";
+
+                if (lisres.getMaxValue() != null && lisres.getValue() > lisres.getMaxValue()) {
+                    lisres.setOtherValue(Otherval + lisres.getDetailName() + up);
+                } else if (lisres.getMinValue() != null && lisres.getValue() < lisres.getMinValue()) {
+                    lisres.setOtherValue(Otherval + lisres.getDetailName() + down);
+                } else {
+                    lisres.setOtherValue(Otherval + lisres.getDetailName() + normal);
+                }
             }
         }
 

+ 7 - 1
config-server/src/main/resources/shared/application-dev.yml

@@ -8,7 +8,13 @@ hystrix:
       execution:
         isolation:
           thread:
-            timeoutInMilliseconds: 3000
+            timeoutInMilliseconds: 20000
+
+ribbon:
+  ReadTimeout: 20000
+  ConnectTimeout: 20000
+  MaxAutoRetries: 0
+  MaxAutoRetriesNextServer: 1
 
 eureka:
   instance:

+ 7 - 1
config-server/src/main/resources/shared/application-local.yml

@@ -8,7 +8,13 @@ hystrix:
       execution:
         isolation:
           thread:
-            timeoutInMilliseconds: 3000
+            timeoutInMilliseconds: 20000
+
+ribbon:
+  ReadTimeout: 20000
+  ConnectTimeout: 20000
+  MaxAutoRetries: 0
+  MaxAutoRetriesNextServer: 1
 
 eureka:
   instance:

+ 7 - 1
config-server/src/main/resources/shared/application-pro.yml

@@ -8,7 +8,13 @@ hystrix:
       execution:
         isolation:
           thread:
-            timeoutInMilliseconds: 3000
+            timeoutInMilliseconds: 20000
+
+ribbon:
+  ReadTimeout: 20000
+  ConnectTimeout: 20000
+  MaxAutoRetries: 0
+  MaxAutoRetriesNextServer: 1
 
 eureka:
   instance:

+ 7 - 1
config-server/src/main/resources/shared/application-test.yml

@@ -8,7 +8,13 @@ hystrix:
       execution:
         isolation:
           thread:
-            timeoutInMilliseconds: 3000
+            timeoutInMilliseconds: 20000
+
+ribbon:
+  ReadTimeout: 20000
+  ConnectTimeout: 20000
+  MaxAutoRetries: 0
+  MaxAutoRetriesNextServer: 1
 
 eureka:
   instance:

+ 0 - 12
config-server/src/main/resources/shared/gateway-service-dev.yml

@@ -1,15 +1,3 @@
-hystrix:
-  command:
-    default:
-      execution:
-        isolation:
-          thread:
-            timeoutInMilliseconds: 20000
-
-ribbon:
-  ReadTimeout: 20000
-  ConnectTimeout: 20000
-
 spring:
   #mq
   rabbitmq:

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

@@ -1,15 +1,3 @@
-hystrix:
-  command:
-    default:
-      execution:
-        isolation:
-          thread:
-            timeoutInMilliseconds: 20000
-
-ribbon:
-  ReadTimeout: 20000
-  ConnectTimeout: 20000
-
 spring:
   #mq
   rabbitmq:

+ 0 - 12
config-server/src/main/resources/shared/gateway-service-pro.yml

@@ -1,15 +1,3 @@
-hystrix:
-  command:
-    default:
-      execution:
-        isolation:
-          thread:
-            timeoutInMilliseconds: 20000
-
-ribbon:
-  ReadTimeout: 20000
-  ConnectTimeout: 20000
-
 spring:
   #mq
   rabbitmq:

+ 8 - 13
config-server/src/main/resources/shared/gateway-service-test.yml

@@ -1,15 +1,3 @@
-hystrix:
-  command:
-    default:
-      execution:
-        isolation:
-          thread:
-            timeoutInMilliseconds: 20000
-
-ribbon:
-  ReadTimeout: 20000
-  ConnectTimeout: 20000
-
 spring:
   #mq
   rabbitmq:
@@ -118,10 +106,17 @@ spring:
         filters:
         - SwaggerHeaderFilter
         - StripPrefix=2
+      - id: icssyz-service
+        uri: lb://icss-service
+        predicates:
+        - Path=/api/icssyz/**
+        filters:
+        - SwaggerHeaderFilter
+        - StripPrefix=2
 
 server:
   port: 5050
 
 lantone:
-  product: triage33,1;icsstt,2
+  product: triage33,1;icssyz,147
 

+ 40 - 0
docs/007.20190318对接相关修改/icss_tran.sql

@@ -0,0 +1,40 @@
+use `sys-icss`;
+ALTER TABLE `icss_inquiry_detail`
+ADD COLUMN `content_value`  text NULL COMMENT '内容字符串纯文本' AFTER `content`;
+
+ALTER TABLE icss_question_info MODIFY COLUMN control_type tinyint(4) COMMENT '控件类型(0:无类型,默认值 1:下拉单选 2:下拉多选 3:待定 4:待定 5:数字键盘带单位 6:文本框 7:数字键盘文本框  11:下拉单选括号占位符,有无治疗 99:联合推送)';
+ALTER TABLE icss_question_info MODIFY COLUMN type tinyint(4) COMMENT '类型(1:症状 3:其他史 4:查体,5:化验 6:辅检 7:诊断,8:药品,9:药品分类 21:量表,22:推送指标)';
+ALTER TABLE icss_question_info ADD COLUMN  formula_code varchar(255) COMMENT '公式编码' AFTER `joint`;
+
+
+use `sys-tran`;
+CREATE TABLE `tran_pacs_config` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `hospital_code` varchar(60) DEFAULT NULL COMMENT '医院编码',
+  `meal_name` varchar(100) DEFAULT NULL COMMENT '套餐名',
+  `unique_name` varchar(100) DEFAULT NULL COMMENT '公表名',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='辅检项目公表映射配置表';
+
+CREATE TABLE `tran_introduce_title_config` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `hospital_code` varchar(60) DEFAULT NULL COMMENT '医院编码',
+  `item_name` varchar(100) DEFAULT NULL COMMENT '项目名',
+  `unique_name` varchar(100) DEFAULT NULL COMMENT '公表名',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COMMENT='提示信息标签映射表';
+
+
+ALTER TABLE `tran_disease_icd` ADD COLUMN `icss_question_name` varchar(20) NOT NULL COMMENT 'icss疾病名称' AFTER `status`;
+
+ALTER TABLE `tran_hospital_dept` CHANGE `dept_id` `icss_dept_name` varchar(20) DEFAULT NULL COMMENT 'icss科室名称';

+ 110 - 101
docs/07.20190318对接相关修改/icss_tran.sql

@@ -1,45 +1,20 @@
-use `sys-icss`;
-ALTER TABLE `icss_inquiry_detail`
-ADD COLUMN `content_value`  text NULL COMMENT '内容字符串纯文本' AFTER `content`;
+/*
+Navicat MySQL Data Transfer
 
-ALTER TABLE icss_question_info MODIFY COLUMN control_type tinyint(4) COMMENT '控件类型(0:无类型,默认值 1:下拉单选 2:下拉多选 3:待定 4:待定 5:数字键盘带单位 6:文本框 7:数字键盘文本框  11:下拉单选括号占位符,有无治疗 99:联合推送)';
-ALTER TABLE icss_question_info MODIFY COLUMN type tinyint(4) COMMENT '类型(1:症状 3:其他史 4:查体,5:化验 6:辅检 7:诊断,8:药品,9:药品分类 21:量表,22:推送指标)';
-ALTER TABLE icss_question_info ADD COLUMN  formula_code varchar(255) COMMENT '公式编码' AFTER `joint`;
+Source Server         : 2.241平台测试环境
+Source Server Version : 50723
+Source Host           : 192.168.2.241:3306
+Source Database       : sys-user
 
+Target Server Type    : MYSQL
+Target Server Version : 50723
+File Encoding         : 65001
 
-use `sys-tran`;
-CREATE TABLE `tran_pacs_config` (
-  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
-  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
-  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
-  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
-  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
-  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
-  `hospital_code` varchar(60) DEFAULT NULL COMMENT '医院编码',
-  `meal_name` varchar(100) DEFAULT NULL COMMENT '套餐名',
-  `unique_name` varchar(100) DEFAULT NULL COMMENT '公表名',
-  PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='辅检项目公表映射配置表';
-
-CREATE TABLE `tran_introduce_title_config` (
-  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
-  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
-  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
-  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
-  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
-  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
-  `hospital_code` varchar(60) DEFAULT NULL COMMENT '医院编码',
-  `item_name` varchar(100) DEFAULT NULL COMMENT '项目名',
-  `unique_name` varchar(100) DEFAULT NULL COMMENT '公表名',
-  PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COMMENT='提示信息标签映射表';
-
-
-ALTER TABLE `tran_disease_icd` ADD COLUMN `icss_question_name` varchar(20) NOT NULL COMMENT 'icss疾病名称' AFTER `status`;
-
-ALTER TABLE `tran_hospital_dept` CHANGE `dept_id` `icss_dept_name` varchar(20) DEFAULT NULL COMMENT 'icss科室名称';
+Date: 2019-04-10 14:28:32
+*/
 
 use `sys-user`;
+
 -- ----------------------------
 -- Table structure for sys_menu
 -- ----------------------------
@@ -57,7 +32,7 @@ CREATE TABLE `sys_menu` (
   `order_no` int(11) NOT NULL DEFAULT '0' COMMENT '排序,从小到大',
   `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8 COMMENT='系统菜单';
+) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8 COMMENT='系统菜单';
 
 -- ----------------------------
 -- Records of sys_menu
@@ -78,7 +53,7 @@ INSERT INTO `sys_menu` VALUES ('16', 'N', '1970-01-01 12:00:00', '1970-01-01 12:
 INSERT INTO `sys_menu` VALUES ('17', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '订单系统', '-1', 'LT-DDXT', '3', '朗通-订单系统');
 INSERT INTO `sys_menu` VALUES ('18', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '产品申请列表', '17', 'LT-DDXT-CPXSQLB', '1', '朗通-订单系统-产品申请列表');
 INSERT INTO `sys_menu` VALUES ('19', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '产品线管理', '-1', 'LT-CPXGL', '4', '朗通-产品线管理');
-INSERT INTO `sys_menu` VALUES ('20', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '个人中心', '-1', 'LT-GRZX', '7', '朗通-个人中心');
+INSERT INTO `sys_menu` VALUES ('20', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '个人中心', '-1', 'LT-GRZX', '6', '朗通-个人中心');
 INSERT INTO `sys_menu` VALUES ('21', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '已认证超管信息', '10', 'LT-YRZCGXX', '0', '朗通-客户中心-已认证超管信息');
 INSERT INTO `sys_menu` VALUES ('22', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '产品续费列表', '17', 'LT-CPXFLB', '2', '朗通-订单系统-产品续费列表');
 INSERT INTO `sys_menu` VALUES ('23', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护', '-1', 'LT-YXSJWH', '5', '朗通-医学数据维护');
@@ -96,9 +71,10 @@ INSERT INTO `sys_menu` VALUES ('36', 'N', '1970-01-01 12:00:00', '1970-01-01 12:
 INSERT INTO `sys_menu` VALUES ('37', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '提示信息维护', '23', 'LT-YXSJWH-TSXXWH', '9', '朗通-医学数据维护-提示信息维护');
 INSERT INTO `sys_menu` VALUES ('38', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护', '-1', 'LT-YXSYKWH', '6', '朗通-医学术语库维护');
 INSERT INTO `sys_menu` VALUES ('39', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语命名维护', '38', 'LT-YXSYKWH-YXSYMMWH', '1', '朗通-医学术语库维护-医学术语命名维护');
-INSERT INTO `sys_menu` VALUES ('40', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语信息维护', '38', 'LT-YXSYKWH-YXSYXXWH', '2', '朗通-医学术语库维护-医学术语信息维护');
+INSERT INTO `sys_menu` VALUES ('40', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '术语医学属性维护', '38', 'LT-YXSYKWH-SYYXSXWH', '2', '朗通-医学术语库维护-术语医学属性维护');
 INSERT INTO `sys_menu` VALUES ('41', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语关系维护', '38', 'LT-YXSYKWH-YXSYGXWH', '3', '朗通-医学术语库维护-医学术语关系维护');
 INSERT INTO `sys_menu` VALUES ('42', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语静态知识维护', '38', 'LT-YXSYKWH-YXSYJTZSWH', '4', '朗通-医学术语库维护-医学术语静态知识维护');
+INSERT INTO `sys_menu` VALUES ('43', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语类型维护', '38', 'LT-YXSYKWH-YXSYLXWH', '5', '朗通-医学术语库维护-医学术语类型维护');
 
 -- ----------------------------
 -- Table structure for sys_menu_permission
@@ -115,7 +91,7 @@ CREATE TABLE `sys_menu_permission` (
   `permission_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '系统资源id',
   `remark` varchar(255) DEFAULT NULL COMMENT '备注',
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=170 DEFAULT CHARSET=utf8 COMMENT='菜单和系统资源的映射表';
+) ENGINE=InnoDB AUTO_INCREMENT=181 DEFAULT CHARSET=utf8 COMMENT='菜单和系统资源的映射表';
 
 -- ----------------------------
 -- Records of sys_menu_permission
@@ -247,23 +223,34 @@ INSERT INTO `sys_menu_permission` VALUES ('149', 'N', '1970-01-01 12:00:00', '19
 INSERT INTO `sys_menu_permission` VALUES ('150', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '37', '158', '医学数据维护-提示信息明细维护-根据id查询');
 INSERT INTO `sys_menu_permission` VALUES ('151', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '37', '159', '医学数据维护-提示信息明细维护-根据提示信息id查询');
 INSERT INTO `sys_menu_permission` VALUES ('152', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '37', '160', '医学数据维护-提示信息明细维护-保存');
-INSERT INTO `sys_menu_permission` VALUES ('153', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '34', '161', '医学数据维护-版本信息-根据版本id获取版本详情信息');
-INSERT INTO `sys_menu_permission` VALUES ('154', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '39', '162', '医学术语库维护-医学术语命名维护-获取医学术语命名');
-INSERT INTO `sys_menu_permission` VALUES ('155', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '39', '163', '医学术语库维护-医学术语命名维护-保存医学术语命名');
-INSERT INTO `sys_menu_permission` VALUES ('156', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '39', '164', '医学术语库维护-医学术语命名维护-更新医学术语命名');
-INSERT INTO `sys_menu_permission` VALUES ('157', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '39', '165', '医学术语库维护-医学术语命名维护-删除医学术语命名');
-INSERT INTO `sys_menu_permission` VALUES ('158', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '40', '166', '医学术语库维护-医学术语信息维护-获取医学术语信息');
-INSERT INTO `sys_menu_permission` VALUES ('159', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '40', '167', '医学术语库维护-医学术语信息维护-保存医学术语信息');
-INSERT INTO `sys_menu_permission` VALUES ('160', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '40', '168', '医学术语库维护-医学术语信息维护-更新医学术语信息');
-INSERT INTO `sys_menu_permission` VALUES ('161', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '40', '169', '医学术语库维护-医学术语信息维护-删除医学术语信息');
-INSERT INTO `sys_menu_permission` VALUES ('162', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '41', '170', '医学术语库维护-医学术语关系维护-获取医学术语关系');
-INSERT INTO `sys_menu_permission` VALUES ('163', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '41', '171', '医学术语库维护-医学术语关系维护-保存医学术语关系');
-INSERT INTO `sys_menu_permission` VALUES ('164', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '41', '172', '医学术语库维护-医学术语关系维护-删除医学术语关系');
-INSERT INTO `sys_menu_permission` VALUES ('165', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '42', '173', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识');
-INSERT INTO `sys_menu_permission` VALUES ('166', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '42', '174', '医学术语库维护-医学术语静态知识维护-保存医学术语静态知识');
-INSERT INTO `sys_menu_permission` VALUES ('167', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '42', '175', '医学术语库维护-医学术语静态知识维护-更新医学术语静态知识');
-INSERT INTO `sys_menu_permission` VALUES ('168', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '42', '176', '医学术语库维护-医学术语静态知识维护-删除医学术语静态知识');
-INSERT INTO `sys_menu_permission` VALUES ('169', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '27', '177', '医学数据维护-别名维护-标签搜索');
+INSERT INTO `sys_menu_permission` VALUES ('153', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '27', '161', '医学数据维护-别名维护-标签搜索');
+INSERT INTO `sys_menu_permission` VALUES ('154', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '34', '162', '医学数据维护-版本信息-根据版本id获取版本详情信息');
+INSERT INTO `sys_menu_permission` VALUES ('155', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '39', '163', '医学术语库维护-医学术语命名维护-获取所有医学术语命名');
+INSERT INTO `sys_menu_permission` VALUES ('156', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '39', '164', '医学术语库维护-医学术语命名维护-获取医学术语命名列表');
+INSERT INTO `sys_menu_permission` VALUES ('157', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '39', '165', '医学术语库维护-医学术语命名维护-医学术语命名删除');
+INSERT INTO `sys_menu_permission` VALUES ('158', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '39', '166', '医学术语库维护-医学术语命名维护-获取医学术语命名详情');
+INSERT INTO `sys_menu_permission` VALUES ('159', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '39', '181', '医学术语库维护-医学术语命名维护-医学术语命名添加或者编辑');
+INSERT INTO `sys_menu_permission` VALUES ('160', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '39', '182', '医学术语库维护-医学术语命名维护-医学术语命名excel文件导入');
+INSERT INTO `sys_menu_permission` VALUES ('161', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '40', '167', '医学术语库维护-术语医学属性维护-获取术语医学属性列表');
+INSERT INTO `sys_menu_permission` VALUES ('162', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '40', '168', '医学术语库维护-术语医学属性维护-获取术语医学属性详情');
+INSERT INTO `sys_menu_permission` VALUES ('163', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '40', '169', '医学术语库维护-术语医学属性维护-术语医学属性添加或者编辑');
+INSERT INTO `sys_menu_permission` VALUES ('164', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '40', '170', '医学术语库维护-术语医学属性维护-术语医学属性删除');
+INSERT INTO `sys_menu_permission` VALUES ('165', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '40', '178', '医学术语库维护-术语医学属性维护-术语医学属性excel文件导入');
+INSERT INTO `sys_menu_permission` VALUES ('166', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '40', '187', '医学术语库维护-术语医学属性维护-获取所有部位');
+INSERT INTO `sys_menu_permission` VALUES ('167', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '40', '188', '医学术语库维护-术语医学属性维护-获取术语医学属性所需全部科室');
+INSERT INTO `sys_menu_permission` VALUES ('168', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '41', '171', '医学术语库维护-医学术语关系维护-获取医学术语关系列表');
+INSERT INTO `sys_menu_permission` VALUES ('169', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '41', '172', '医学术语库维护-医学术语关系维护-医学术语关系删除');
+INSERT INTO `sys_menu_permission` VALUES ('170', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '41', '173', '医学术语库维护-医学术语关系维护-获取医学术语关系详情');
+INSERT INTO `sys_menu_permission` VALUES ('171', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '41', '179', '医学术语库维护-医学术语关系维护-医学术语关系添加或者编辑');
+INSERT INTO `sys_menu_permission` VALUES ('172', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '41', '180', '医学术语库维护-医学术语关系维护-医学术语关系excel文件导入');
+INSERT INTO `sys_menu_permission` VALUES ('173', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '41', '186', '医学术语库维护-医学术语关系维护-获取所有关系类型');
+INSERT INTO `sys_menu_permission` VALUES ('174', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '42', '174', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识列表');
+INSERT INTO `sys_menu_permission` VALUES ('175', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '42', '175', '医学术语库维护-医学术语静态知识维护-医学术语静态知识删除');
+INSERT INTO `sys_menu_permission` VALUES ('176', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '42', '176', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识详情');
+INSERT INTO `sys_menu_permission` VALUES ('177', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '42', '177', '医学术语库维护-医学术语静态知识维护-医学术语静态知识添加或者编辑');
+INSERT INTO `sys_menu_permission` VALUES ('178', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '43', '183', '医学术语库维护-医学术语类型维护-获取所有术语类型');
+INSERT INTO `sys_menu_permission` VALUES ('179', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '43', '184', '医学术语库维护-医学术语类型维护-获取术语类型列表');
+INSERT INTO `sys_menu_permission` VALUES ('180', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '43', '185', '医学术语库维护-医学术语类型维护-术语类型添加');
 
 -- ----------------------------
 -- Table structure for sys_permission
@@ -282,7 +269,7 @@ CREATE TABLE `sys_permission` (
   `descritpion` varchar(255) NOT NULL DEFAULT '' COMMENT '资源描述',
   `remark` varchar(255) DEFAULT NULL COMMENT '备注',
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=178 DEFAULT CHARSET=utf8 COMMENT='系统资源表';
+) ENGINE=InnoDB AUTO_INCREMENT=189 DEFAULT CHARSET=utf8 COMMENT='系统资源表';
 
 -- ----------------------------
 -- Records of sys_permission
@@ -432,23 +419,34 @@ INSERT INTO `sys_permission` VALUES ('157', 'N', '1970-01-01 12:00:00', '1970-01
 INSERT INTO `sys_permission` VALUES ('158', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-提示信息明细维护-根据id查询', '/introduceDetail/getById', 'ALL', '医学数据维护-提示信息明细维护-根据id查询', null);
 INSERT INTO `sys_permission` VALUES ('159', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-提示信息明细维护-根据提示信息id查询', '/introduceDetail/getByIntroduceId', 'ALL', '医学数据维护-提示信息明细维护-根据提示信息id查询', null);
 INSERT INTO `sys_permission` VALUES ('160', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-提示信息明细维护-保存', '/introduceDetail/saveRecord', 'ALL', '医学数据维护-提示信息明细维护-保存', null);
-INSERT INTO `sys_permission` VALUES ('161', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-版本信息-根据版本id获取版本详情信息', '/versionDetail/getDetailById', 'ALL', '医学数据维护-版本信息-根据版本id获取版本详情信息', null);
-INSERT INTO `sys_permission` VALUES ('162', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语命名维护-获取医学术语命名', '/library/getTerm', 'ALL', '医学术语库维护-医学术语命名维护-获取医学术语命名', null);
-INSERT INTO `sys_permission` VALUES ('163', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语命名维护-保存医学术语命名', '/versionDetail/getDetailById1', 'ALL', '医学术语库维护-医学术语命名维护-保存医学术语命名', null);
-INSERT INTO `sys_permission` VALUES ('164', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语命名维护-更新医学术语命名', '/versionDetail/getDetailById2', 'ALL', '医学术语库维护-医学术语命名维护-更新医学术语命名', null);
-INSERT INTO `sys_permission` VALUES ('165', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语命名维护-删除医学术语命名', '/versionDetail/getDetailById3', 'ALL', '医学术语库维护-医学术语命名维护-删除医学术语命名', null);
-INSERT INTO `sys_permission` VALUES ('166', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语信息维护-获取医学术语信息', '/library/getTermInfo', 'ALL', '医学术语库维护-医学术语信息维护-获取医学术语信息', null);
-INSERT INTO `sys_permission` VALUES ('167', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语信息维护-保存医学术语信息', '/versionDetail/getDetailById4', 'ALL', '医学术语库维护-医学术语信息维护-保存医学术语信息', null);
-INSERT INTO `sys_permission` VALUES ('168', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语信息维护-更新医学术语信息', '/versionDetail/getDetailById5', 'ALL', '医学术语库维护-医学术语信息维护-更新医学术语信息', null);
-INSERT INTO `sys_permission` VALUES ('169', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语信息维护-删除医学术语信息', '/versionDetail/getDetailById6', 'ALL', '医学术语库维护-医学术语信息维护-删除医学术语信息', null);
-INSERT INTO `sys_permission` VALUES ('170', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语关系维护-获取医学术语关系', '/versionDetail/getDetailById7', 'ALL', '医学术语库维护-医学术语关系维护-获取医学术语关系', null);
-INSERT INTO `sys_permission` VALUES ('171', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语关系维护-保存医学术语关系', '/versionDetail/getDetailById8', 'ALL', '医学术语库维护-医学术语关系维护-保存医学术语关系', null);
-INSERT INTO `sys_permission` VALUES ('172', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语关系维护-删除医学术语关系', '/versionDetail/getDetailById9', 'ALL', '医学术语库维护-医学术语关系维护-删除医学术语关系', null);
-INSERT INTO `sys_permission` VALUES ('173', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识', '/versionDetail/getDetailById10', 'ALL', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识', null);
-INSERT INTO `sys_permission` VALUES ('174', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语静态知识维护-保存医学术语静态知识', '/versionDetail/getDetailById11', 'ALL', '医学术语库维护-医学术语静态知识维护-保存医学术语静态知识', null);
-INSERT INTO `sys_permission` VALUES ('175', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语静态知识维护-更新医学术语静态知识', '/versionDetail/getDetailById12', 'ALL', '医学术语库维护-医学术语静态知识维护-更新医学术语静态知识', null);
-INSERT INTO `sys_permission` VALUES ('176', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语静态知识维护-删除医学术语静态知识', '/versionDetail/getDetailById13', 'ALL', '医学术语库维护-医学术语静态知识维护-删除医学术语静态知识', null);
-INSERT INTO `sys_permission` VALUES ('177', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-别名维护-标签搜索', '/questionInfo/indexRev', 'ALL', '医学数据维护-别名维护-标签搜索', null);
+INSERT INTO `sys_permission` VALUES ('161', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-别名维护-标签搜索', '/questionInfo/indexRev', 'ALL', '医学数据维护-别名维护-标签搜索', null);
+INSERT INTO `sys_permission` VALUES ('162', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护-版本信息-根据版本id获取版本详情信息', '/versionDetail/getDetailById', 'ALL', '医学数据维护-版本信息-根据版本id获取版本详情信息', null);
+INSERT INTO `sys_permission` VALUES ('163', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语命名维护-获取所有医学术语命名', '/concept/getAllConcept', 'ALL', '医学术语库维护-医学术语命名维护-获取所有医学术语命名', null);
+INSERT INTO `sys_permission` VALUES ('164', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语命名维护-获取医学术语命名列表', '/concept/getAllInformation', 'ALL', '医学术语库维护-医学术语命名维护-获取医学术语命名列表', null);
+INSERT INTO `sys_permission` VALUES ('165', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语命名维护-医学术语命名删除', '/concept/removeConceptInfo', 'ALL', '医学术语库维护-医学术语命名维护-医学术语命名删除', null);
+INSERT INTO `sys_permission` VALUES ('166', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语命名维护-获取医学术语命名详情', '/concept/getConceptInfoDetail', 'ALL', '医学术语库维护-医学术语命名维护-获取医学术语命名详情', null);
+INSERT INTO `sys_permission` VALUES ('167', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-术语医学属性维护-获取术语医学属性列表', '/medical/getMedicalInfoList', 'ALL', '医学术语库维护-术语医学属性维护-获取术语医学属性列表', null);
+INSERT INTO `sys_permission` VALUES ('168', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-术语医学属性维护-获取术语医学属性详情', '/medical/getMedicalInfoDetail', 'ALL', '医学术语库维护-术语医学属性维护-获取术语医学属性详情', null);
+INSERT INTO `sys_permission` VALUES ('169', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-术语医学属性维护-术语医学属性添加或者编辑', '/medical/addMedicalInfo', 'ALL', '医学术语库维护-术语医学属性维护-术语医学属性添加或者编辑', null);
+INSERT INTO `sys_permission` VALUES ('170', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-术语医学属性维护-术语医学属性删除', '/medical/removeMedicalInfo', 'ALL', '医学术语库维护-术语医学属性维护-术语医学属性删除', null);
+INSERT INTO `sys_permission` VALUES ('171', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语关系维护-获取医学术语关系列表', '/relation/getRelationInfoList', 'ALL', '医学术语库维护-医学术语关系维护-获取医学术语关系列表', null);
+INSERT INTO `sys_permission` VALUES ('172', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语关系维护-医学术语关系删除', '/relation/removeRelationInfo', 'ALL', '医学术语库维护-医学术语关系维护-医学术语关系删除', null);
+INSERT INTO `sys_permission` VALUES ('173', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语关系维护-获取医学术语关系详情', '/relation/getRelationInfoDetail', 'ALL', '医学术语库维护-医学术语关系维护-获取医学术语关系详情', null);
+INSERT INTO `sys_permission` VALUES ('174', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识列表', '/libraryDetail/getLibraryDetailList', 'ALL', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识列表', null);
+INSERT INTO `sys_permission` VALUES ('175', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语静态知识维护-医学术语静态知识删除', '/libraryDetail/removeLibraryDetail', 'ALL', '医学术语库维护-医学术语静态知识维护-医学术语静态知识删除', null);
+INSERT INTO `sys_permission` VALUES ('176', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识详情', '/libraryDetail/getLibraryDetail', 'ALL', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识详情', null);
+INSERT INTO `sys_permission` VALUES ('177', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语静态知识维护-医学术语静态知识添加或者编辑', '/libraryDetail/addLibraryDetail', 'ALL', '医学术语库维护-医学术语静态知识维护-医学术语静态知识添加或者编辑', null);
+INSERT INTO `sys_permission` VALUES ('178', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-术语医学属性维护-术语医学属性excel文件导入', '/medical/medicalInfoExcelIm', 'ALL', '医学术语库维护-术语医学属性维护-术语医学属性excel文件导入', null);
+INSERT INTO `sys_permission` VALUES ('179', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语关系维护-医学术语关系添加或者编辑', '/relation/addRelationInfo', 'ALL', '医学术语库维护-医学术语关系维护-医学术语关系添加或者编辑', null);
+INSERT INTO `sys_permission` VALUES ('180', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语关系维护-医学术语关系excel文件导入', '/relation/relationInfoExcelIm', 'ALL', '医学术语库维护-医学术语关系维护-医学术语关系excel文件导入', null);
+INSERT INTO `sys_permission` VALUES ('181', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语命名维护-医学术语命名添加或者编辑', '/concept/addConceptInfo', 'ALL', '医学术语库维护-医学术语命名维护-医学术语命名添加或者编辑', null);
+INSERT INTO `sys_permission` VALUES ('182', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语命名维护-医学术语命名excel文件导入', '/concept/conceptInfoExcelIm', 'ALL', '医学术语库维护-医学术语命名维护-医学术语命名excel文件导入', null);
+INSERT INTO `sys_permission` VALUES ('183', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语类型维护-获取所有术语类型', '/lexicon/getAllLexicon', 'ALL', '医学术语库维护-医学术语类型维护-获取所有术语类型', null);
+INSERT INTO `sys_permission` VALUES ('184', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语类型维护-获取术语类型列表', '/lexicon/getLexiconList', 'ALL', '医学术语库维护-医学术语类型维护-获取术语类型列表', null);
+INSERT INTO `sys_permission` VALUES ('185', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语类型维护-术语类型添加', '/lexicon/addLexicon', 'ALL', '医学术语库维护-医学术语类型维护-术语类型添加', null);
+INSERT INTO `sys_permission` VALUES ('186', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-医学术语关系维护-获取所有关系类型', '/lexiconRelationship/getAllLexiconRelationship', 'ALL', '医学术语库维护-医学术语关系维护-获取所有关系类型', null);
+INSERT INTO `sys_permission` VALUES ('187', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-术语医学属性维护-获取所有部位', '/bodypart/getAllBodypart', 'ALL', '医学术语库维护-术语医学属性维护-获取所有部位', null);
+INSERT INTO `sys_permission` VALUES ('188', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护-术语医学属性维护-获取术语医学属性所需全部科室', '/medical/getAllDepts', 'ALL', '医学术语库维护-术语医学属性维护-获取术语医学属性所需全部科室', null);
 
 -- ----------------------------
 -- Table structure for sys_role
@@ -467,7 +465,7 @@ CREATE TABLE `sys_role` (
   `menuItems` varchar(255) NOT NULL DEFAULT '' COMMENT '菜单ID:对应角色ID',
   `remark` varchar(255) DEFAULT NULL COMMENT '备注',
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='系统角色表';
+) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='系统角色表';
 
 -- ----------------------------
 -- Records of sys_role
@@ -475,8 +473,7 @@ CREATE TABLE `sys_role` (
 INSERT INTO `sys_role` VALUES ('1', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '普通用户', '0', '', '', '');
 INSERT INTO `sys_role` VALUES ('2', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '管理员', '0', '', '', '');
 INSERT INTO `sys_role` VALUES ('3', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学数据维护人员', '0', '', '', '');
-INSERT INTO `sys_role` VALUES ('4', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护人员', '0', '', '', '');
-INSERT INTO `sys_role` VALUES ('5', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '待录角色', '0', '', '', null);
+INSERT INTO `sys_role` VALUES ('4', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医学术语库维护人员', '0', '', '', null);
 
 -- ----------------------------
 -- Table structure for sys_role_menu
@@ -493,7 +490,7 @@ CREATE TABLE `sys_role_menu` (
   `menu_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '菜单id',
   `remark` varchar(255) DEFAULT NULL COMMENT '备注',
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8 COMMENT='角色和菜单的映射表';
+) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8 COMMENT='角色和菜单的映射表';
 
 -- ----------------------------
 -- Records of sys_role_menu
@@ -530,13 +527,14 @@ INSERT INTO `sys_role_menu` VALUES ('32', 'N', '1970-01-01 12:00:00', '1970-01-0
 INSERT INTO `sys_role_menu` VALUES ('33', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '33', '朗通-医学数据维护-免责声明维护');
 INSERT INTO `sys_role_menu` VALUES ('34', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '34', '朗通-医学数据维护-版本信息维护');
 INSERT INTO `sys_role_menu` VALUES ('35', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '35', '朗通-医学数据维护-查体模板维护');
-INSERT INTO `sys_role_menu` VALUES ('36', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '36', '朗通-医学数据维护-查体标签维护');
+INSERT INTO `sys_role_menu` VALUES ('36', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '36', '朗通-医学数据维护-查体标签维护');
 INSERT INTO `sys_role_menu` VALUES ('37', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '37', '朗通-医学数据维护-提示信息维护');
 INSERT INTO `sys_role_menu` VALUES ('38', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '38', '朗通-医学术语库维护');
 INSERT INTO `sys_role_menu` VALUES ('39', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '39', '朗通-医学术语库维护-医学术语命名维护');
-INSERT INTO `sys_role_menu` VALUES ('40', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '40', '朗通-医学术语库维护-医学术语信息维护');
+INSERT INTO `sys_role_menu` VALUES ('40', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '40', '朗通-医学术语库维护-术语医学属性维护');
 INSERT INTO `sys_role_menu` VALUES ('41', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '41', '朗通-医学术语库维护-医学术语关系维护');
 INSERT INTO `sys_role_menu` VALUES ('42', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '42', '朗通-医学术语库维护-医学术语静态知识维护');
+INSERT INTO `sys_role_menu` VALUES ('43', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '43', '朗通-医学术语库维护-医学术语类型维护');
 
 -- ----------------------------
 -- Table structure for sys_role_permission
@@ -553,7 +551,7 @@ CREATE TABLE `sys_role_permission` (
   `permission_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '资源id',
   `remark` varchar(255) DEFAULT NULL COMMENT '备注',
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=195 DEFAULT CHARSET=utf8 COMMENT='角色和资源的映射表';
+) ENGINE=InnoDB AUTO_INCREMENT=207 DEFAULT CHARSET=utf8 COMMENT='角色和资源的映射表';
 
 -- ----------------------------
 -- Records of sys_role_permission
@@ -703,21 +701,32 @@ INSERT INTO `sys_role_permission` VALUES ('173', 'N', '1970-01-01 12:00:00', '19
 INSERT INTO `sys_role_permission` VALUES ('174', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '159', '医学数据维护-提示信息明细维护-根据提示信息id查询');
 INSERT INTO `sys_role_permission` VALUES ('175', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '160', '医学数据维护-提示信息明细维护-保存');
 INSERT INTO `sys_role_permission` VALUES ('176', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '63', '朗通-默认-获取用户、机构、菜单信息');
-INSERT INTO `sys_role_permission` VALUES ('177', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '161', '医学数据维护-版本信息-根据版本id获取版本详情信息');
-INSERT INTO `sys_role_permission` VALUES ('178', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '162', '医学术语库维护-医学术语命名维护-获取医学术语命名');
-INSERT INTO `sys_role_permission` VALUES ('179', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '163', '医学术语库维护-医学术语命名维护-保存医学术语命名');
-INSERT INTO `sys_role_permission` VALUES ('180', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '164', '医学术语库维护-医学术语命名维护-更新医学术语命名');
-INSERT INTO `sys_role_permission` VALUES ('181', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '165', '医学术语库维护-医学术语命名维护-删除医学术语命名');
-INSERT INTO `sys_role_permission` VALUES ('182', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '166', '医学术语库维护-医学术语信息维护-获取医学术语信息');
-INSERT INTO `sys_role_permission` VALUES ('183', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '167', '医学术语库维护-医学术语信息维护-保存医学术语信息');
-INSERT INTO `sys_role_permission` VALUES ('184', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '168', '医学术语库维护-医学术语信息维护-更新医学术语信息');
-INSERT INTO `sys_role_permission` VALUES ('185', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '169', '医学术语库维护-医学术语信息维护-删除医学术语信息');
-INSERT INTO `sys_role_permission` VALUES ('186', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '170', '医学术语库维护-医学术语关系维护-获取医学术语关系');
-INSERT INTO `sys_role_permission` VALUES ('187', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '171', '医学术语库维护-医学术语关系维护-保存医学术语关系');
-INSERT INTO `sys_role_permission` VALUES ('188', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '172', '医学术语库维护-医学术语关系维护-删除医学术语关系');
-INSERT INTO `sys_role_permission` VALUES ('189', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '173', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识');
-INSERT INTO `sys_role_permission` VALUES ('190', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '174', '医学术语库维护-医学术语静态知识维护-保存医学术语静态知识');
-INSERT INTO `sys_role_permission` VALUES ('191', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '175', '医学术语库维护-医学术语静态知识维护-更新医学术语静态知识');
-INSERT INTO `sys_role_permission` VALUES ('192', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '176', '医学术语库维护-医学术语静态知识维护-删除医学术语静态知识');
-INSERT INTO `sys_role_permission` VALUES ('193', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '63', '朗通-默认-获取用户、机构、菜单信息');
-INSERT INTO `sys_role_permission` VALUES ('194', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '177', '医学数据维护-别名维护-标签搜索');
+INSERT INTO `sys_role_permission` VALUES ('177', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '161', '医学数据维护-别名维护-标签搜索');
+INSERT INTO `sys_role_permission` VALUES ('178', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '162', '医学数据维护-版本信息-根据版本id获取版本详情信息');
+INSERT INTO `sys_role_permission` VALUES ('180', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '163', '医学术语库维护-医学术语命名维护-获取所有医学术语命名');
+INSERT INTO `sys_role_permission` VALUES ('181', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '164', '医学术语库维护-医学术语命名维护-获取医学术语命名列表');
+INSERT INTO `sys_role_permission` VALUES ('182', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '165', '医学术语库维护-医学术语命名维护-医学术语命名删除');
+INSERT INTO `sys_role_permission` VALUES ('183', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '166', '医学术语库维护-医学术语命名维护-获取医学术语命名详情');
+INSERT INTO `sys_role_permission` VALUES ('184', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '181', '医学术语库维护-医学术语命名维护-医学术语命名添加或者编辑');
+INSERT INTO `sys_role_permission` VALUES ('185', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '182', '医学术语库维护-医学术语命名维护-医学术语命名excel文件导入');
+INSERT INTO `sys_role_permission` VALUES ('186', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '167', '医学术语库维护-术语医学属性维护-获取术语医学属性列表');
+INSERT INTO `sys_role_permission` VALUES ('187', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '168', '医学术语库维护-术语医学属性维护-获取术语医学属性详情');
+INSERT INTO `sys_role_permission` VALUES ('188', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '169', '医学术语库维护-术语医学属性维护-术语医学属性添加或者编辑');
+INSERT INTO `sys_role_permission` VALUES ('189', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '170', '医学术语库维护-术语医学属性维护-术语医学属性删除');
+INSERT INTO `sys_role_permission` VALUES ('190', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '178', '医学术语库维护-术语医学属性维护-术语医学属性excel文件导入');
+INSERT INTO `sys_role_permission` VALUES ('191', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '187', '医学术语库维护-术语医学属性维护-获取所有部位');
+INSERT INTO `sys_role_permission` VALUES ('192', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '188', '医学术语库维护-术语医学属性维护-获取术语医学属性所需全部科室');
+INSERT INTO `sys_role_permission` VALUES ('193', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '171', '医学术语库维护-医学术语关系维护-获取医学术语关系列表');
+INSERT INTO `sys_role_permission` VALUES ('194', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '172', '医学术语库维护-医学术语关系维护-医学术语关系删除');
+INSERT INTO `sys_role_permission` VALUES ('195', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '173', '医学术语库维护-医学术语关系维护-获取医学术语关系详情');
+INSERT INTO `sys_role_permission` VALUES ('196', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '179', '医学术语库维护-医学术语关系维护-医学术语关系添加或者编辑');
+INSERT INTO `sys_role_permission` VALUES ('197', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '180', '医学术语库维护-医学术语关系维护-医学术语关系excel文件导入');
+INSERT INTO `sys_role_permission` VALUES ('198', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '186', '医学术语库维护-医学术语关系维护-获取所有关系类型');
+INSERT INTO `sys_role_permission` VALUES ('199', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '174', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识列表');
+INSERT INTO `sys_role_permission` VALUES ('200', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '175', '医学术语库维护-医学术语静态知识维护-医学术语静态知识删除');
+INSERT INTO `sys_role_permission` VALUES ('201', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '176', '医学术语库维护-医学术语静态知识维护-获取医学术语静态知识详情');
+INSERT INTO `sys_role_permission` VALUES ('202', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '177', '医学术语库维护-医学术语静态知识维护-医学术语静态知识添加或者编辑');
+INSERT INTO `sys_role_permission` VALUES ('203', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '183', '医学术语库维护-医学术语类型维护-获取所有术语类型');
+INSERT INTO `sys_role_permission` VALUES ('204', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '184', '医学术语库维护-医学术语类型维护-获取术语类型列表');
+INSERT INTO `sys_role_permission` VALUES ('205', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '185', '医学术语库维护-医学术语类型维护-术语类型添加');
+INSERT INTO `sys_role_permission` VALUES ('206', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '4', '63', '朗通-默认-获取用户、机构、菜单信息');

+ 38 - 0
docs/008.20190410标签别名脏数据处理/标签别名脏数据处理.sql

@@ -0,0 +1,38 @@
+use `sys-icss`;
+update icss_retrieval_mapping a join
+(SELECT
+a.id as oldId,
+b.id as newId,
+a.name
+FROM
+(SELECT
+id,name
+FROM icss_retrieval
+WHERE name in
+(SELECT  
+name
+FROM `icss_retrieval`
+group by name
+HAVING count(1)>1)) a
+JOIN
+(SELECT
+id,name
+FROM(
+SELECT
+id,name
+FROM icss_retrieval
+WHERE name in
+(SELECT  
+name
+FROM `icss_retrieval`
+group by name
+HAVING count(1)>1)
+) t
+group by name) b on a.name=b.name) b on a.retrieval_id=b.oldId
+set a.retrieval_id=b.newId;
+
+update icss_retrieval a left join icss_retrieval_mapping b on a.id=b.retrieval_id set a.is_deleted='Y' where b.id is null;
+update icss_retrieval_mapping a left join icss_retrieval b on a.retrieval_id=b.id set a.is_deleted='Y' where b.id is  null;
+delete from icss_retrieval_mapping where is_deleted='Y';
+delete from icss_retrieval where is_deleted='Y';
+

+ 4 - 0
icss-service/src/main/java/com/diagbot/client/BigDataServiceClient.java

@@ -1,5 +1,6 @@
 package com.diagbot.client;
 
+import com.diagbot.client.bean.GdbResponse;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.client.bean.SearchData;
@@ -17,4 +18,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 public interface BigDataServiceClient {
     @PostMapping(value = "/push-web/algorithm/neural")
     Response<ResponseData> bayesPageData(@RequestBody SearchData searchData);
+
+    @PostMapping(value = "/push-web/graph/highRisk")
+    Response<GdbResponse> highRiskPageData(@RequestBody SearchData searchData);
 }

+ 8 - 0
icss-service/src/main/java/com/diagbot/client/hystrix/BigDataServiceHystrix.java

@@ -1,11 +1,13 @@
 package com.diagbot.client.hystrix;
 
 import com.diagbot.client.BigDataServiceClient;
+import com.diagbot.client.bean.GdbResponse;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.client.bean.SearchData;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * @Description:调用大数据对接层服务
@@ -20,4 +22,10 @@ public class BigDataServiceHystrix implements BigDataServiceClient {
         log.error("【hystrix】调用{}异常", "bayesPageData");
         return null;
     }
+
+    @Override
+    public Response<GdbResponse> highRiskPageData(@RequestBody SearchData searchData) {
+        log.error("【hystrix】调用{}异常", "highRiskPageData");
+        return null;
+    }
 }

+ 2 - 1
icss-service/src/main/java/com/diagbot/dto/EMRIntroduceDetailDTO.java

@@ -4,7 +4,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 /**
- * @Description:
+ * @Description:电子病历解读返回参数
  * @Author:zhaops
  * @time: 2019/3/12 11:16
  */
@@ -13,4 +13,5 @@ import lombok.Setter;
 public class EMRIntroduceDetailDTO {
     private String title;
     private String text;
+    private String content;
 }

+ 1 - 0
icss-service/src/main/java/com/diagbot/dto/ModuleDetailDTO.java

@@ -25,5 +25,6 @@ public class ModuleDetailDTO extends QuestionDTO implements Serializable {
     private Long questionId; //questionId
     private String flag; //特殊标识
     private Long relationModule; //关联模板
+    private String relationModuleName;//关联模板名称
 
 }

+ 2 - 2
icss-service/src/main/java/com/diagbot/enums/DisTypeEnum.java

@@ -10,8 +10,8 @@ import lombok.Setter;
  * @date 2018年11月21日 下午2:31:42
  */
 public enum DisTypeEnum implements KeyedNamed {
-    CHRONIC(0, "慢病"),
-    EMERGENCY(1, "急诊");
+    CHRONIC(1, "慢病"),
+    EMERGENCY(2, "急诊");
 
     @Setter
     private Integer key;

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

@@ -3,6 +3,7 @@ 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;
@@ -25,26 +26,29 @@ public class BuriedSomeStatisticalFacade extends BuriedSomeStatisticalServiceImp
      * @return
      */
     public boolean saveBuriedSomeStatistical(BuriedSomeStatisticalVO buriedSomeStatisticalVO) {
-        List<BuriedSomeStatistical> buriedList = new ArrayList<BuriedSomeStatistical>();
-        List<Taggeds> taggeds = buriedSomeStatisticalVO.getTaggeds();
-        for (Taggeds taggedsNew : taggeds) {
-            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);
-        }
+        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);
+            }
 
-        boolean res = insertCodeBatch(buriedList);
+            res = insertCodeBatch(buriedList);
+        }
         return res;
     }
 

+ 6 - 1
icss-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java

@@ -91,7 +91,7 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
         QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
         questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("tag_name", introduceByQuestionVO.getTagName())
-                .eq("type", QuestionTypeEnum.Disease.getKey());
+                .eq("type", introduceByQuestionVO.getType());
         QuestionInfo questionInfo = questionFacade.getOne(questionInfoQueryWrapper);
         if (questionInfo == null) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "标签不存在");
@@ -279,6 +279,10 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
                 introduceDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.Y.getKey());
             }
         }
+        if (emrIntroduceVO.getPosition() != null) {
+            introduceDetailQueryWrapper.apply("find_in_set({0},position)", emrIntroduceVO.getPosition());
+        }
+
         List<IntroduceDetail> introduceDetailList = introduceDetailFacade.list(introduceDetailQueryWrapper);
         List<EMRIntroduceDetailDTO> retList = Lists.newLinkedList();
         if (ArrayUtil.isNotEmpty(emrIntroduceVO.getTitles())) {
@@ -291,6 +295,7 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
                         for (IntroduceDetail introduceDetail : introduceDetailList) {
                             if (entry.getValue().equals(introduceDetail.getTitle())) {
                                 detailDTO.setText(introduceDetail.getText());
+                                detailDTO.setContent(introduceDetail.getContent());
                             }
                         }
                     }

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

@@ -155,9 +155,15 @@ public class LisExcelResFacade {
 				for (LisExcelWrapperVO lisExcelWrapperNew : lisExcelWrapperList) {
 					
 					for (LisConfigDTO LisNew : litData) {
-						if (LisNew.getMealName().equals(lisExcelWrapperNew.getMealName())
-								&& LisNew.getItemName().equals(lisExcelWrapperNew.getItemName())) {
-							lisExcelWrapperNew.setUniqueName(LisNew.getUniqueName());
+						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());
+							}
 						}
 
 					}

+ 4 - 0
icss-service/src/main/java/com/diagbot/facade/ModuleFacade.java

@@ -51,6 +51,7 @@ public class ModuleFacade extends ModuleInfoServiceImpl {
         List<Long> ids = data.stream()
                 .map(artist -> artist.getId())
                 .collect(Collectors.toList());
+        Map<Long,ModuleInfo> moduleInfoMap = list.stream().collect(Collectors.toMap(ModuleInfo::getId,moduleInfo -> moduleInfo));
         Map<Long, List<ModuleDetail>> moduleDetailMap = new LinkedHashMap<>();
         if (ListUtil.isNotEmpty(ids)) {
             Map<String, Object> paramMap = new HashMap<>();
@@ -75,6 +76,9 @@ public class ModuleFacade extends ModuleInfoServiceImpl {
                         QuestionDTO questionDTO = questionFacade.getById(questionVO);
                         BeanUtil.copyProperties(questionDTO, detailDTO);
                     }
+                    if(null != detailDTO.getRelationModule()){
+                        detailDTO.setRelationModuleName(moduleInfoMap.get(detailDTO.getRelationModule()).getName());
+                    }
                 }
                 bean.setModuleDetailDTOList(moduleDetailDTOList);
             }

+ 114 - 100
icss-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.client.AiptServiceClient;
 import com.diagbot.client.BigDataServiceClient;
-import com.diagbot.client.GraphServiceClient;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.client.bean.FeatureRate;
 import com.diagbot.client.bean.GdbResponse;
@@ -30,9 +29,15 @@ import com.diagbot.util.EntityUtil;
 import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
-import com.diagbot.vo.*;
+import com.diagbot.vo.EMRPushVO;
+import com.diagbot.vo.HosCodeVO;
+import com.diagbot.vo.LisKYJVO;
+import com.diagbot.vo.LisResult;
+import com.diagbot.vo.LisResultVO;
+import com.diagbot.vo.PushKYJVO;
+import com.diagbot.vo.PushVO;
+import com.diagbot.vo.QuestionVO;
 import com.google.common.collect.Lists;
-import io.micrometer.core.instrument.search.Search;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -63,8 +68,6 @@ public class PushFacade {
     @Autowired
     private TreatmentFacade treatmentFacade;
     @Autowired
-    private GraphServiceClient graphServiceClient;
-    @Autowired
     private LisMappingFacade lisMappingFacade;
     @Autowired
     private TranServiceClient tranServiceClient;
@@ -103,7 +106,7 @@ public class PushFacade {
         }
 
         //化验项映射,转公表
-        if (pushVO.getLis().size() > 0) {
+        if (ListUtil.isNotEmpty(pushVO.getLis())) {
             Map<String, Map<String, String>> lisConfigMap = lisMappingFacade.getLisMapping_NotEmptyItemName();
             Map<String, String> lisConfigWithEmptyItemNameMap = lisMappingFacade.getLisConfig_EmptyItemName();
             for (LisResultVO lisResultVO : pushVO.getLis()) {
@@ -114,7 +117,7 @@ public class PushFacade {
                 if (StringUtil.isNotBlank(lisResultVO.getName())) {
                     if (StringUtil.isNotBlank(lisResultVO.getDetailName())) {
                         Map<String, String> detailMap = lisConfigMap.get(lisResultVO.getName());
-                        if (StringUtil.isNotBlank(detailMap.get(lisResultVO.getDetailName()))) {
+                        if (null != detailMap && detailMap.size() > 0 && StringUtil.isNotBlank(detailMap.get(lisResultVO.getDetailName()))) {
                             lisResultVO.setUniqueName(detailMap.get(lisResultVO.getDetailName()));
                         }
                     } else {
@@ -167,108 +170,135 @@ public class PushFacade {
     public PushDTO pushInner(PushVO pushVO, Integer mode) {
         PushDTO pushDTO = new PushDTO();
         SearchData Data = assembleData(pushVO);
-//        ResponseData data = pushAI(searchData);
         ResponseData data = pushAipt(Data);
 
+        //大数据返回内容
+        List<FeatureRate> dis = data.getDis();
+
         String featureType = pushVO.getFeatureType();
         String[] featureTypes = featureType.split(",|,");
         Set<String> featureTypeSet = new HashSet(Arrays.asList(featureTypes));
 
-        List<FeatureRate> symptom = data.getSymptom();
-        List<FeatureRate> dis = data.getDis();
-        List<FeatureRate> pacs = data.getPacs();
-        List<FeatureRate> labs = data.getLabs();
-        List<FeatureRate> other = data.getHistory();
-        Map<String, JSONObject> treat = data.getTreat();
-
-        Map<String, Object> symptomMap = list2Map(symptom);
-        Map<String, Object> labMap = list2Map(labs);
-        Map<String, Object> pacsMap = list2Map(pacs);
-        Map<String, Object> otherMap = list2Map(other);
-
         //症状 标签列表
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Symptom.getKey()))) {
-            //文本模式不推症状,仅结构化模式推症状
-            //if (mode.equals(InputModeEnum.Structured.getKey())) {
-            List<QuestionDTO> symptomDTO = getTagListByMap(symptomMap, pushVO, QuestionTypeEnum.Symptom.getKey());
-            pushDTO.setSymptom(symptomDTO);
-            //}
+            List<FeatureRate> symptom = data.getSymptom();
+            if (ListUtil.isNotEmpty(symptom)) {
+                List<String> nameList = symptom.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
+                List<QuestionDTO> symptomDTO = getTagList(nameList, pushVO, QuestionTypeEnum.Symptom.getKey());
+                pushDTO.setSymptom(symptomDTO);
+            }
         }
         //其他史 标签列表
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Other.getKey()))) {
-            List<QuestionDTO> otherDTO = getTagListByMap(otherMap, pushVO, QuestionTypeEnum.Other.getKey());
-            pushDTO.setOther(otherDTO);
+            List<FeatureRate> other = data.getHistory();
+            if (ListUtil.isNotEmpty(other)) {
+                List<String> nameList = other.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
+                List<QuestionDTO> otherDTO = getTagList(nameList, pushVO, QuestionTypeEnum.Other.getKey());
+                pushDTO.setOther(otherDTO);
+            }
         }
         //查体 返回模板(标签列表)
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Vital.getKey()))) {
             //没有推送信息时,默认取全科模板
-            String deptName = "全科";
+            String deptName = "";
             if (dis != null && dis.size() > 0) {
-                deptName = dis.get(0).getExtraProperty();
+                for (FeatureRate featureRate : dis) {
+                    if (StringUtil.isNotBlank(featureRate.getExtraProperty())) {
+                        deptName = featureRate.getExtraProperty();
+                        break;
+                    }
+                }
+                //deptName = dis.get(0).getExtraProperty();
+            }
+            if (StringUtil.isBlank(deptName)) {
+                deptName = "全科";
             }
             List<QuestionDTO> vitalDTO = getVitalModule(deptName, pushVO);
             pushDTO.setVital(vitalDTO);
-
         }
         //化验  标签列表
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Lis.getKey()))) {
-            List<QuestionDTO> labDTO = getTagListByMap(labMap, pushVO, QuestionTypeEnum.Lis.getKey());
-            pushDTO.setLab(labDTO);
+            List<FeatureRate> labs = data.getLabs();
+            if (ListUtil.isNotEmpty(labs)) {
+                //公表项转套餐项
+                Map<String, List<String>> lisMapping = lisMappingFacade.getLisMappingByUniqueName();
+                List<String> nameList = Lists.newLinkedList();
+                for (FeatureRate featureRate : labs) {
+                    if (ListUtil.isNotEmpty(lisMapping.get(featureRate.getFeatureName()))) {
+                        //匹配出多个套餐项默认取第一个
+                        String name = lisMapping.get(featureRate.getFeatureName()).get(0);
+                        if (nameList.contains(name)) {
+                            continue;
+                        }
+                        nameList.add(name);
+                    }
+                }
+                List<QuestionDTO> labDTO = getTagList(nameList, pushVO, QuestionTypeEnum.Lis.getKey());
+                pushDTO.setLab(labDTO);
+            }
         }
+
         //辅检  标签列表
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Pacs.getKey()))) {
-            List<QuestionDTO> pacsDTO = getTagListByMap(pacsMap, pushVO, QuestionTypeEnum.Pacs.getKey());
-            pushDTO.setPacs(pacsDTO);
+            List<FeatureRate> pacs = data.getPacs();
+            if (ListUtil.isNotEmpty(pacs)) {
+                List<String> nameList = pacs.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
+                List<QuestionDTO> pacsDTO = getTagList(nameList, pushVO, QuestionTypeEnum.Pacs.getKey());
+                pushDTO.setPacs(pacsDTO);
+            }
         }
         //诊断 返回分类+标签列表
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Disease.getKey()))) {
-            Map<String, List<QuestionDTO>> disMapDTO = new LinkedHashMap<>();
-            Map<String, List<FeatureRate>> disFeatureMap = new LinkedHashMap<>();
-            //警惕
-            List<String> diseaseNameList = dis.stream().map(disease -> disease.getFeatureName()).collect(Collectors.toList());
-            Map<String, String> highRiskMap = new HashMap<>();
-            highRiskMap.put("disease", String.join(",", diseaseNameList));
-            SearchData searchData = new SearchData();
-            searchData.setDiag(String.join(",", diseaseNameList));
-            Response<GdbResponse> graphRes = graphServiceClient.highRiskPageData(searchData);
-            if (graphRes != null) {
-                Map<String, String> graphResult = graphRes.getData().getResult();
-                if (graphResult.size() > 0) {
-                    Map<String, Object> disMap = new LinkedHashMap<>();
-                    for (Map.Entry<String, String> entry : graphResult.entrySet()) {
-                        if (entry.getValue().equals("1")) {
-                            disMap.put(entry.getKey(), "");
+            if (ListUtil.isNotEmpty(dis)) {
+                List<String> nameList = dis.stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
+                Map<String, List<QuestionDTO>> disMapDTO = new LinkedHashMap<>();
+                Map<String, List<FeatureRate>> disFeatureMap = new LinkedHashMap<>();
+                //警惕
+                Map<String, String> highRiskMap = new HashMap<>();
+                highRiskMap.put("disease", String.join(",", nameList));
+                SearchData searchData = new SearchData();
+                searchData.setDiag(String.join(",", nameList));
+                Response<GdbResponse> graphRes = bigDataServiceClient.highRiskPageData(searchData);
+                if (graphRes != null) {
+                    Map<String, String> graphResult = graphRes.getData().getResult();
+                    if (graphResult.size() > 0) {
+                        List<String> hrNameList = Lists.newLinkedList();
+                        for (Map.Entry<String, String> entry : graphResult.entrySet()) {
+                            if (entry.getValue().equals("1")) {
+                                hrNameList.add(entry.getKey());
+                            }
                         }
+                        List<QuestionDTO> disDTO = getTagList(hrNameList, pushVO, QuestionTypeEnum.Disease.getKey());
+                        disMapDTO.put("警惕", disDTO);
                     }
-                    List<QuestionDTO> disDTO = getTagListByMap(disMap, pushVO, QuestionTypeEnum.Disease.getKey());
-                    disMapDTO.put("警惕", disDTO);
                 }
-            }
 
-            //诊断分类
-            for (FeatureRate featureRate : dis) {
-                if (StringUtil.isBlank(featureRate.getDesc())) {
-                    featureRate.setDesc("{\"可能诊断\":\"\"}");
-                }
-                Map<String, Object> descMap = FastJsonUtils.getJsonToMap(featureRate.getDesc());
-                for (String disClass : descMap.keySet()) {
-                    List<FeatureRate> featureRateList = Lists.newLinkedList();
-                    if (disFeatureMap.get(disClass) != null) {
-                        featureRateList = disFeatureMap.get(disClass);
+                //诊断分类
+                for (FeatureRate featureRate : dis) {
+                    if (StringUtil.isBlank(featureRate.getDesc())) {
+                        featureRate.setDesc("{\"可能诊断\":\"\"}");
+                    }
+                    Map<String, Object> descMap = FastJsonUtils.getJsonToMap(featureRate.getDesc());
+                    for (String disClass : descMap.keySet()) {
+                        List<FeatureRate> featureRateList = Lists.newLinkedList();
+                        if (disFeatureMap.get(disClass) != null) {
+                            featureRateList = disFeatureMap.get(disClass);
+                        }
+                        featureRateList.add(featureRate);
+                        disFeatureMap.put(disClass, featureRateList);
                     }
-                    featureRateList.add(featureRate);
-                    disFeatureMap.put(disClass, featureRateList);
                 }
+                for (Map.Entry<String, List<FeatureRate>> entry : disFeatureMap.entrySet()) {
+                    List<String> nameListByDisClass = entry.getValue().stream().map(featureRate -> featureRate.getFeatureName()).collect(Collectors.toList());
+                    List<QuestionDTO> disDTO = getTagList(nameListByDisClass, pushVO, QuestionTypeEnum.Disease.getKey());
+                    disMapDTO.put(entry.getKey(), disDTO);
+                }
+                pushDTO.setDis(disMapDTO);
             }
-            for (Map.Entry<String, List<FeatureRate>> entry : disFeatureMap.entrySet()) {
-                Map<String, Object> disMap = list2Map(entry.getValue());
-                List<QuestionDTO> disDTO = getTagListByMap(disMap, pushVO, QuestionTypeEnum.Disease.getKey());
-                disMapDTO.put(entry.getKey(), disDTO);
-            }
-            pushDTO.setDis(disMapDTO);
         }
         //治疗方案
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Drug.getKey()))) {
+            Map<String, JSONObject> treat = data.getTreat();
             if (pushVO.getDiseaseId() == null) {
                 throw new CommonException(CommonErrorCode.PARAM_ERROR, "请输入诊断id");
             }
@@ -282,36 +312,35 @@ public class PushFacade {
     /**
      * 获取返回结果标签
      *
-     * @param map
+     * @param nameList
      * @param pushVO
      * @param type
      * @return
      */
-    public List<QuestionDTO> getTagListByMap(Map<String, Object> map, PushVO pushVO, Integer type) {
+    public List<QuestionDTO> getTagList(List<String> nameList, PushVO pushVO, Integer type) {
         List<QuestionDTO> questionDTOList = Lists.newLinkedList();
         QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper();
         questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
-                in("tag_name", map.keySet()).
+                in("tag_name", nameList).
                 eq("type", type);
         List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
         Map<String, QuestionInfo> questionMap = EntityUtil.makeEntityMap(questionInfoList, "tagName");
-        for (Map.Entry<String, Object> entry : map.entrySet()) {
+        for (String name : nameList) {
             QuestionDTO questionDTO = new QuestionDTO();
-            if (questionMap.get(entry.getKey()) != null) {
+            if (questionMap.get(name) != null) {
                 QuestionVO questionVO = new QuestionVO();
                 questionVO.setAge(pushVO.getAge());
                 questionVO.setSexType(pushVO.getSex());
-                questionVO.setId(questionMap.get(entry.getKey()).getId());
+                questionVO.setId(questionMap.get(name).getId());
                 questionDTO = questionFacade.getById(questionVO);
-                if (questionDTO == null || (!questionDTO.getSubType().equals(0))) {
+                if (questionDTO == null || questionDTO.getId() == null) {
                     questionDTO = new QuestionDTO();
-                    questionDTO.setTagName(entry.getKey());
-                    questionDTO.setName(entry.getKey());
+                    questionDTO.setTagName(name);
+                    questionDTO.setName(name);
                 }
-
             } else {
-                questionDTO.setTagName(entry.getKey());
-                questionDTO.setName(entry.getKey());
+                questionDTO.setTagName(name);
+                questionDTO.setName(name);
             }
             questionDTOList.add(questionDTO);
         }
@@ -355,21 +384,6 @@ public class PushFacade {
         return pushKYJDTO;
     }
 
-    /**
-     * 将list 转换成 map
-     *
-     * @param list
-     * @return
-     */
-    public Map<String, Object> list2Map(List<FeatureRate> list) {
-        Map<String, Object> map = new LinkedHashMap<>();
-        for (FeatureRate featureRate : list) {
-            map.put(featureRate.getFeatureName(), null);
-        }
-        return map;
-    }
-
-
     /**
      * 快易检结果预处理
      *
@@ -476,7 +490,7 @@ public class PushFacade {
             questionVO.setSexType(pushVO.getSex());
             questionVO.setId(deptVital.getVitalId());
             QuestionDTO questionDTO = questionFacade.getById(questionVO);
-            if (questionDTO != null) {
+            if (questionDTO != null && questionDTO.getId() != null) {
                 vitalDTO.add(questionDTO);
             }
         }
@@ -602,7 +616,7 @@ public class PushFacade {
             //警惕
             searchData = new SearchData();
             searchData.setDiag(String.join(",", disNameList));
-            Response<GdbResponse> graphRes = graphServiceClient.highRiskPageData(searchData);
+            Response<GdbResponse> graphRes = bigDataServiceClient.highRiskPageData(searchData);
             Map<String, String> graphResult = graphRes.getData().getResult();
             if (graphResult.size() > 0) {
                 List<EMRQuestionDTO> highRiskDisList = Lists.newLinkedList();

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

@@ -34,7 +34,7 @@ public class VersionInfoFacade extends VersionInfoServiceImpl {
         QueryWrapper<VersionInfo> versionInfoQuery = new QueryWrapper<>();
         versionInfoQuery.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("STATUS", StatusEnum.Enable.getKey())
-                .orderByDesc("refresh_time");
+                .orderByDesc("gmt_modified");
 
         VersionInfo versionInfo = getOne(versionInfoQuery);
         VersionWrapperDTO versionList = new VersionWrapperDTO();

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

@@ -0,0 +1,15 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/4/2 10:46
+ */
+@Getter
+@Setter
+public class EMRIntroduceInnerVO extends EMRIntroduceVO {
+    private String uniqueName;
+}

+ 2 - 2
icss-service/src/main/java/com/diagbot/vo/EMRIntroduceVO.java

@@ -6,7 +6,7 @@ import lombok.Setter;
 import javax.validation.constraints.NotBlank;
 
 /**
- * @Description:
+ * @Description:电子病历模式入参
  * @Author:zhaops
  * @time: 2019/3/11 13:50
  */
@@ -20,7 +20,7 @@ public class EMRIntroduceVO {
     @NotBlank(message = "请输入检查或检验套餐名称")
     private String name;
     private String detailName;
-    private String uniqueName;
     private String[] titles;
     private String icdCode; //诊断icd10编码
+    private Integer position;
 }

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

@@ -10,6 +10,8 @@ public class LisExcelWrapperVO {
 
     private String mealName;
 	
+    private String uniquemealName;
+    
 	private String itemName;
 	
 	private String uniqueName;

+ 3 - 2
icss-service/src/main/java/com/diagbot/web/EMRController.java

@@ -39,8 +39,9 @@ public class EMRController {
                     "type: 检验检查类型,5-检验,6-检查,7-诊断,单选必填,Integer<br>" +
                     "name: 名称(检验检查诊断),必填,String<br>" +
                     "detailName: 项目名称(检验选填,检查不填),String<br>" +
-                    "titles: 提示信息标题列表,String数组<br>"+
-                    "icdCode: 诊断icd10编码,String<br>")
+                    "titles: 提示信息标题列表,String数组<br>" +
+                    "icdCode: 诊断icd10编码,String<br>" +
+                    "position: 显示位置1-推送展示,2-更多展示,Integer<br>")
     @PostMapping("/getIntroduceByEMR")
     public RespDTO<List<EMRIntroduceDetailDTO>> getIntroduceByEMR(@RequestBody EMRIntroduceVO emrIntroduceVO) {
         List<EMRIntroduceDetailDTO> data = introduceInfoFacade.getIntroduceByEMR(emrIntroduceVO);

+ 2 - 2
icss-service/src/main/resources/mapper/InquiryDetailMapper.xml

@@ -18,9 +18,9 @@
     </resultMap>
     
     <insert id="saveInquiryDetails" parameterType="list">
-    	insert into icss_inquiry_detail(inquiry_id,type,content) values
+    	insert into icss_inquiry_detail(inquiry_id,type,content,content_value) values
     	<foreach collection="list" separator="," item="detail">
-    		(#{detail.inquiryId},#{detail.type},#{detail.content})
+    		(#{detail.inquiryId},#{detail.type},#{detail.content},#{detail.contentValue})
     	</foreach>
     </insert>
 

+ 5 - 0
icssman-service/src/main/java/com/diagbot/dto/GetModuleDetailInfoDTO.java

@@ -46,4 +46,9 @@ public class GetModuleDetailInfoDTO {
      * 子模板名称
      */
     private String relationModuleName;
+
+    /**
+     * 特殊标识
+     */
+    private String flag;
 }

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

@@ -0,0 +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;
+
+}

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

@@ -29,6 +29,12 @@ public class RetrievalListDTO {
 	@ApiModelProperty(value="标签名称")
 	private String questionName;
 	
+	/**
+	 * 标签归属
+	 */
+	@ApiModelProperty(value="标签归属")
+	private Integer questionType;
+	
 	/**
 	 * 本体
 	 */

+ 5 - 0
icssman-service/src/main/java/com/diagbot/entity/ModuleDetail.java

@@ -80,6 +80,11 @@ public class ModuleDetail implements Serializable {
      */
     private Long relationModule;
 
+    /**
+     * 特殊标志
+     */
+    private String flag;
+
     /**
      * 排序号
      */

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

@@ -18,6 +18,7 @@ import com.diagbot.dto.GetQuestionUsualAndTypeDTO;
 import com.diagbot.dto.QuestionTypeDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.DeptInfo;
+import com.diagbot.entity.QuestionUsual;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.QuestionTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
@@ -88,6 +89,21 @@ public class DeptInfoFacade extends DeptInfoServiceImpl {
             throw new CommonException(CommonErrorCode.NOT_EXISTS,
                     "科室已删除");
         }
+        //判断科室是否重名
+        Boolean boole = false;
+        QueryWrapper<DeptInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted",IsDeleteEnum.N.getKey())
+                .notIn("id",updateDeptInfoVO.getId());
+        List<DeptInfo> deptInfoList = this.list(queryWrapper);
+        for (DeptInfo deptInfo: deptInfoList) {
+            if(updateDeptInfoVO.getName().equals(deptInfo.getName())){
+                boole = true;
+            }
+        }
+        if(boole){
+            throw new CommonException(CommonErrorCode.IS_EXISTS,
+                    "科室名称重复");
+        }
         //修改操作
         DeptInfo deptInfo = this.getById(updateDeptInfoVO.getId());
         BeanUtil.copyProperties(updateDeptInfoVO, deptInfo);
@@ -109,6 +125,13 @@ public class DeptInfoFacade extends DeptInfoServiceImpl {
             throw new CommonException(CommonErrorCode.NOT_EXISTS,
                     "科室已删除");
         }
+        QueryWrapper<QuestionUsual> questionUsualQueryWrapper = new QueryWrapper<>();
+        questionUsualQueryWrapper.eq("is_deleted",IsDeleteEnum.N.getKey())
+                .eq("dept_id",deleteDeptInfoVO.getId());
+        if(questionUsualFacade.count(questionUsualQueryWrapper) > 0){
+            throw new CommonException(CommonErrorCode.NOT_EXISTS,
+                    "与常用标签关联未删除");
+        }
         //删除操作
         DeptInfo deptInfo = new DeptInfo();
         deptInfo.setId(Long.parseLong(deleteDeptInfoVO.getId()));
@@ -127,20 +150,23 @@ public class DeptInfoFacade extends DeptInfoServiceImpl {
      * @return
      */
     public IPage<GetDeptInfoDTO> getDeptInfo(GetDeptInfoVO getDeptInfoVO) {
-        IPage<GetDeptInfoDTO> iPage = this.getAllDeptInfo(getDeptInfoVO);
-        List<String> ids = new ArrayList<>();
-        for (GetDeptInfoDTO getDeptInfoDTO : iPage.getRecords()) {
-            ids.add(getDeptInfoDTO.getModifier());
-        }
-        //获取用户信息
-        RespDTO<Map<String, String>> respDTO = userServiceClient.getUserInfoByIds(ids);
-        if (respDTO == null || !CommonErrorCode.OK.getCode().equals(respDTO.code)) {
-            throw new CommonException(CommonErrorCode.RPC_ERROR,
-                    "获取用户信息失败");
-        }
-        //将用户信息放入实体
-        for (GetDeptInfoDTO getDeptInfoDTO : iPage.getRecords()) {
-            getDeptInfoDTO.setUserName(respDTO.data.get(getDeptInfoDTO.getModifier()));
+        IPage<GetDeptInfoDTO> iPage = this.getDeptInfos(getDeptInfoVO);
+        RespDTO<Map<String, String>> respDTO = new RespDTO<>();
+        if (ListUtil.isNotEmpty(iPage.getRecords())) {
+            List<String> ids = new ArrayList<>();
+            for (GetDeptInfoDTO getDeptInfoDTO : iPage.getRecords()) {
+                ids.add(getDeptInfoDTO.getModifier());
+            }
+            //获取用户信息
+            respDTO = userServiceClient.getUserInfoByIds(ids);
+            if (respDTO == null || !CommonErrorCode.OK.getCode().equals(respDTO.code)) {
+                throw new CommonException(CommonErrorCode.RPC_ERROR,
+                        "获取用户信息失败");
+            }
+            //将用户信息放入实体
+            for (GetDeptInfoDTO getDeptInfoDTO : iPage.getRecords()) {
+                getDeptInfoDTO.setUserName(respDTO.data.get(getDeptInfoDTO.getModifier()));
+            }
         }
         return iPage;
     }

+ 12 - 1
icssman-service/src/main/java/com/diagbot/facade/DeptVitalFacade.java

@@ -59,6 +59,10 @@ public class DeptVitalFacade extends DeptVitalServiceImpl {
      * @return
      */
     public Boolean saveDeptVitals(DeptVitalVO deptVitalVO) {
+        DeptInfo deptInfo = deptInfoFacade.getById(deptVitalVO.getDeptId());
+        if (deptInfo == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "科室不存在");
+        }
         //先删除该科室原有模板
         UpdateWrapper<DeptVital> deptVitalUpdateWrapper = new UpdateWrapper<>();
         deptVitalUpdateWrapper.eq("dept_id", deptVitalVO.getDeptId()).
@@ -91,6 +95,7 @@ public class DeptVitalFacade extends DeptVitalServiceImpl {
             DeptVital deptVital = new DeptVital();
             deptVital.setDeptId(deptVitalVO.getDeptId());
             deptVital.setVitalId(dvDetailVO.getVitalId());
+            deptVital.setRemark(dvDetailVO.getRemark());
             deptVital.setOrderNo(dvDetailVO.getOrderNo());
             deptVital.setCreator(userId);
             deptVital.setGmtCreate(now);
@@ -166,7 +171,13 @@ public class DeptVitalFacade extends DeptVitalServiceImpl {
                 .collect(Collectors.toList());
         if (vitalIds.size() > 0) {
             List<QuestionInfo> vitalList = Lists.newArrayList(questionFacade.listByIds(vitalIds));
-            List<QuestionShortDTO> vitals = BeanUtil.listCopyTo(vitalList, QuestionShortDTO.class);
+            Map<Long, QuestionInfo> vitalMap = EntityUtil.makeEntityMap(vitalList, "id");
+            List<QuestionShortDTO> vitals = Lists.newArrayList();
+            for (Long vitalId : vitalIds) {
+                QuestionShortDTO vital = new QuestionShortDTO();
+                BeanUtil.copyProperties(vitalMap.get(vitalId), vital);
+                vitals.add(vital);
+            }
             deptVitalDTO.setVitals(vitals);
         }
 

+ 14 - 6
icssman-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java

@@ -122,8 +122,12 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
         List<Long> questionIds = introduceVO.getMapVOList().stream().map(introduceMapVO -> introduceMapVO.getQuestionId()).collect(Collectors.toList());
         Long introudceId = introduceInfo.getId();
         UpdateWrapper<IntroduceMap> introduceMapUpdateWrapper = new UpdateWrapper<>();
-        introduceMapUpdateWrapper.and(i -> i.eq("introduce_id", introudceId).or().in("question_id", questionIds)).
-                eq("is_deleted", IsDeleteEnum.N.getKey()).
+        if (ListUtil.isNotEmpty(questionIds)) {
+            introduceMapUpdateWrapper.and(i -> i.eq("introduce_id", introudceId).or().in("question_id", questionIds));
+        } else {
+            introduceMapUpdateWrapper.eq("introduce_id", introudceId);
+        }
+        introduceMapUpdateWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
                 set("is_deleted", IsDeleteEnum.Y.getKey()).
                 set("modifier", UserUtils.getCurrentPrincipleID()).
                 set("gmt_modified", DateUtil.now());
@@ -134,6 +138,7 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
             IntroduceMap introduceMap = new IntroduceMap();
             BeanUtil.copyProperties(introduceMapVO, introduceMap);
             introduceMap.setIntroduceId(introduceInfo.getId());
+            introduceMap.setQuestionId(introduceMapVO.getQuestionId());
             introduceMap.setCreator(userId);
             introduceMap.setGmtCreate(now);
             introduceMap.setModifier(userId);
@@ -192,6 +197,9 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
      */
     public Boolean deleteRecords(List<IdVO> idVOList) {
         List<Long> ids = idVOList.stream().map(idVO -> idVO.getId()).collect(Collectors.toList());
+        if (ListUtil.isEmpty(ids)) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "请输入提示信息id");
+        }
         //删除已有映射关系
         UpdateWrapper<IntroduceMap> introduceMapUpdateWrapper = new UpdateWrapper<>();
         introduceMapUpdateWrapper.in("introduce_id", ids).
@@ -276,7 +284,7 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
         List<IntroduceMap> introduceMapList = introduceMapFacade.list(introduceMapQueryWrapper);
 
         List<Long> questionIds = introduceMapList.stream().map(introduceMap -> introduceMap.getQuestionId()).collect(Collectors.toList());
-        if(ListUtil.isNotEmpty(questionIds)) {
+        if (ListUtil.isNotEmpty(questionIds)) {
             QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
             questionInfoQueryWrapper.in("id", questionIds).eq("is_deleted", IsDeleteEnum.N.getKey());
             List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
@@ -308,9 +316,9 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
         introducePageDTO.setUnRelatedQuestionList(unRelatedQuestionDTOList);*/
 
         //提示信息明细
-        QueryWrapper<IntroduceDetail> introduceDetailQueryWrapper=new QueryWrapper<>();
-        introduceDetailQueryWrapper.eq("is_deleted",IsDeleteEnum.N).eq("introduce_id",id).orderByAsc("order_no");
-        List<IntroduceDetail> introduceDetailList=introduceDetailFacade.list(introduceDetailQueryWrapper);
+        QueryWrapper<IntroduceDetail> introduceDetailQueryWrapper = new QueryWrapper<>();
+        introduceDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N).eq("introduce_id", id).orderByAsc("order_no");
+        List<IntroduceDetail> introduceDetailList = introduceDetailFacade.list(introduceDetailQueryWrapper);
         introducePageDTO.setDetails(introduceDetailList);
 
         return introducePageDTO;

+ 13 - 2
icssman-service/src/main/java/com/diagbot/facade/ModuleDetailFacade.java

@@ -151,13 +151,24 @@ public class ModuleDetailFacade extends ModuleDetailServiceImpl {
             moduleDetail.setGmtCreate(now);
             moduleDetail.setGmtModified(now);
             moduleDetail.setOrderNo(i+1);
-            moduleDetail.setRelationModule(addModuleInfoVO.getModelDetils().get(i).getRelationModule());
+            if(addModuleInfoVO.getModelDetils().get(i).getRelationModule() != null){
+                moduleDetail.setRelationModule(addModuleInfoVO.getModelDetils().get(i).getRelationModule());
+            }
             if (StringUtil.isNotEmpty(addModuleInfoVO.getModelDetils().get(i).getText())){
                 moduleDetail.setQuestionId(questionIdMap.get(addModuleInfoVO.getModelDetils().get(i).getText()));
             }else {
                 moduleDetail.setQuestionId(addModuleInfoVO.getModelDetils().get(i).getQuestionId());
             }
-            moduleDetailList.add(moduleDetail);
+            if(StringUtil.isNotEmpty(addModuleInfoVO.getModelDetils().get(i).getFlag())){
+                moduleDetail.setFlag(addModuleInfoVO.getModelDetils().get(i).getFlag());
+            }
+            //判断是否是有效数据
+            if(addModuleInfoVO.getModelDetils().get(i).getRelationModule() != null
+                || StringUtil.isNotEmpty(addModuleInfoVO.getModelDetils().get(i).getText())
+                || StringUtil.isNotEmpty(addModuleInfoVO.getModelDetils().get(i).getFlag())
+                || addModuleInfoVO.getModelDetils().get(i).getQuestionId() != null ){
+                moduleDetailList.add(moduleDetail);
+            }
         }
         //添加模板明细
         moduleDetailService.saveBatch(moduleDetailList);

+ 2 - 1
icssman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java

@@ -239,7 +239,8 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
         //获取模板明细
         QueryWrapper<ModuleDetail> moduleDetailQueryWrapper = new QueryWrapper<>();
         moduleDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("module_id", getModuleDetailInfoVO.getModuleId());
+                .eq("module_id", getModuleDetailInfoVO.getModuleId())
+                .orderByAsc("order_no");
         List<ModuleDetail> moduleDetailList = moduleDetailFacade.list(moduleDetailQueryWrapper);
         //获取标签信息
         QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();

+ 31 - 21
icssman-service/src/main/java/com/diagbot/facade/QuestionFacade.java

@@ -1,10 +1,23 @@
 package com.diagbot.facade;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+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.beans.factory.annotation.Qualifier;
+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.diagbot.client.UserServiceClient;
 import com.diagbot.dto.GetQuestionInfoDTO;
+import com.diagbot.dto.IndexRevDTO;
 import com.diagbot.dto.QuestionDTO;
 import com.diagbot.dto.QuestionPageDTO;
 import com.diagbot.dto.RespDTO;
@@ -22,6 +35,7 @@ import com.diagbot.entity.wrapper.QuestionInfoWrapper;
 import com.diagbot.entity.wrapper.QuestionMappingWrapper;
 import com.diagbot.entity.wrapper.QuestionWrapper;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.QuestionTypeEnum;
 import com.diagbot.enums.TagTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
@@ -44,17 +58,6 @@ import com.diagbot.vo.QuestionPageVO;
 import com.diagbot.vo.QuestionSaveVO;
 import com.diagbot.vo.QuestionSpecVO;
 import com.diagbot.vo.QuestionVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -500,7 +503,7 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
      * @param questionIndexVO
      * @return
      */
-    public List<QuestionInfo> indexRev(QuestionIndexVO questionIndexVO) {
+    public List<IndexRevDTO> indexRev(QuestionIndexVO questionIndexVO) {
         Map<String, Object> paramMap = new HashMap<>();
         paramMap.put("age", questionIndexVO.getAge());
         paramMap.put("sexType", questionIndexVO.getSexType());
@@ -513,16 +516,23 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
         paramMap.put("notTagType", questionIndexVO.getNotTagType());
         paramMap.put("notControlType", questionIndexVO.getNotControlType());
         List<QuestionInfo> list = this.index(paramMap);
-        if(ListUtil.isEmpty(list)){
-        	return list;
-        }
-        Map<Long,Long> couMap = retrievalMappingFacade.getMapCouByQuesIds(list.stream().map(i->i.getId()).collect(Collectors.toList()));
-        return list.stream().filter(i->{
-        	if(couMap.get(i.getId())!=null){
-        		return false;
+        if(ListUtil.isNotEmpty(list)){
+        	Map<Long,Long> couMap = retrievalMappingFacade.getMapCouByQuesIds(list.stream().map(i->i.getId()).collect(Collectors.toList()));
+        	list = list.stream().filter(i->{
+            	if(couMap.get(i.getId())!=null){
+            		return false;
+            	}
+            	return true;
+            }).collect(Collectors.toList());
+        	if(ListUtil.isNotEmpty(list)){
+        		List<IndexRevDTO> indexRevDTOList = BeanUtil.listCopyTo(list, IndexRevDTO.class);
+        		indexRevDTOList.forEach(i->{
+        			i.setTypeName(QuestionTypeEnum.getName(i.getType()));
+        		});
+        		return indexRevDTOList;
         	}
-        	return true;
-        }).collect(Collectors.toList());
+        }
+        return null;
     }
 
 

+ 8 - 3
icssman-service/src/main/java/com/diagbot/facade/QuestionUsualFacade.java

@@ -27,8 +27,10 @@ import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -63,14 +65,17 @@ public class QuestionUsualFacade extends QuestionUsualServiceImpl {
         //判断该科室是否添加过常用标签
         QuestionUsual questionUsual = new QuestionUsual();
         String userId = UserUtils.getCurrentPrincipleID();
+        Date now = DateUtil.now();
         List<QuestionUsual> questionUsualList = this.getQuestionUsualByQuestionId(questionUsualVO);
+        List<Long> questionIdList = questionUsualList.stream().map(questionUsual1 -> questionUsual1.getQuestionId()).collect(Collectors.toList());
         //如果添加过将原来的标签删除
         if (ListUtil.isNotEmpty(questionUsualList)) {
             UpdateWrapper<QuestionUsual> updateWrapper = new UpdateWrapper();
             updateWrapper.eq("dept_id", questionUsualVO.getDeptId())
+                    .in("question_id",questionIdList)
                     .set("is_deleted", IsDeleteEnum.Y.getKey())
                     .set("modifier", userId)
-                    .set("gmt_modified", DateUtil.now());
+                    .set("gmt_modified", now);
             this.update(new QuestionUsual(), updateWrapper);
         }
         //重新添加标签
@@ -78,8 +83,8 @@ public class QuestionUsualFacade extends QuestionUsualServiceImpl {
             questionUsual = new QuestionUsual();
             questionUsual.setCreator(userId);
             questionUsual.setModifier(userId);
-            questionUsual.setGmtCreate(DateUtil.now());
-            questionUsual.setGmtModified(DateUtil.now());
+            questionUsual.setGmtCreate(now);
+            questionUsual.setGmtModified(now );
             questionUsual.setQuestionId(questionUsualVO.getQuestionId().get(i));
             questionUsual.setDeptId(questionUsualVO.getDeptId());
             questionUsual.setOrderNo(Long.parseLong(String.valueOf(i + 1)));

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

@@ -38,6 +38,7 @@ 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;
@@ -69,7 +70,6 @@ public class RetrievalFacade extends RetrievalServiceImpl {
     @Qualifier("retrievalMappingServiceImpl")
     private RetrievalMappingService retrievalMappingService;
     
-
     /**
      * 根据标签获取同义词
      *
@@ -229,6 +229,8 @@ public class RetrievalFacade extends RetrievalServiceImpl {
         }
 
         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);
@@ -245,6 +247,8 @@ public class RetrievalFacade extends RetrievalServiceImpl {
             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());
@@ -268,6 +272,7 @@ public class RetrievalFacade extends RetrievalServiceImpl {
     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;
@@ -351,7 +356,7 @@ public class RetrievalFacade extends RetrievalServiceImpl {
             List<QuestionInfo> questionInfos = questionFacade.list(questionInfoQe);
             
             
-            Map<String,Long> quesCouMap = questionInfos.stream().collect(Collectors.groupingBy(QuestionInfo::getTagName, Collectors.counting()));
+           /* 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(" ");
@@ -360,10 +365,10 @@ public class RetrievalFacade extends RetrievalServiceImpl {
             if(sbf.length()>0){
             	sbf.append("数据不规范");
             	throw new CommonException(CommonErrorCode.RPC_ERROR,sbf.toString());
-            }
+            }*/
             
-            Map<String, Long> questionIdMap = questionInfos.stream().collect(Collectors.toMap(QuestionInfo::getTagName, i -> i.getId()));
-            if(questionNames.size()==questionInfos.size()){
+            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("(");
@@ -382,9 +387,17 @@ public class RetrievalFacade extends RetrievalServiceImpl {
             	
             	
             	detailList.forEach(i -> {
-                	i.setQuestionId(questionIdMap.get(i.getQuestionName()));
+            		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));
+            	
+            	
+            	
+            	Map<Long, List<AddTagRetrievalDetailVO>> detailMap = detailList_.stream().collect(Collectors.groupingBy(AddTagRetrievalDetailVO::getQuestionId));
                 for (Long key : detailMap.keySet()) {
                     AddTagRetrievalVO addTagRetrievalVO = new AddTagRetrievalVO();
                     addTagRetrievalVO.setQuestionId(key);
@@ -393,7 +406,7 @@ public class RetrievalFacade extends RetrievalServiceImpl {
                     addTagRetrievalVOList.add(addTagRetrievalVO);
                 }
             }else{
-            	List<String> questionNames_ = questionNames.stream().filter(t->questionIdMap.get(t)==null).collect(Collectors.toList());
+            	List<String> questionNames_ = questionNames.stream().filter(t->questionInfoListMap.get(t)==null).collect(Collectors.toList());
             	sbf.append("标签数据不存在(");
             	int index = 0;
             	

+ 8 - 1
icssman-service/src/main/java/com/diagbot/mapper/DeptInfoMapper.java

@@ -21,12 +21,19 @@ import java.util.List;
 public interface DeptInfoMapper extends BaseMapper<DeptInfo> {
 
     /**
-     * 分页获取科室信息
+     * 常用标签修改获取科室信息
      * @param getDeptInfoVO
      * @return
      */
     public IPage<GetDeptInfoDTO> getAllDeptInfo(GetDeptInfoVO getDeptInfoVO);
 
+    /**
+     * 分页获取科室信息
+     * @param getDeptInfoVO
+     * @return
+     */
+    public IPage<GetDeptInfoDTO> getDeptInfos(GetDeptInfoVO getDeptInfoVO);
+
     /**
      * 获取科室名称
      * @return

+ 8 - 0
icssman-service/src/main/java/com/diagbot/service/DeptInfoService.java

@@ -28,6 +28,14 @@ public interface DeptInfoService extends IService<DeptInfo> {
     public IPage<GetDeptInfoDTO> getAllDeptInfo(GetDeptInfoVO getDeptInfoVO);
 
 
+    /**
+     * 分页获取科室信息
+     *
+     * @param getDeptInfoVO
+     * @return
+     */
+    public IPage<GetDeptInfoDTO> getDeptInfos(GetDeptInfoVO getDeptInfoVO);
+
     /**
      * 获取科室名称
      *

+ 5 - 0
icssman-service/src/main/java/com/diagbot/service/impl/DeptInfoServiceImpl.java

@@ -23,6 +23,11 @@ import java.util.List;
 @Service
 public class DeptInfoServiceImpl extends ServiceImpl<DeptInfoMapper, DeptInfo> implements DeptInfoService {
 
+    @Override
+    public IPage<GetDeptInfoDTO> getDeptInfos(GetDeptInfoVO getDeptInfoVO) {
+        return baseMapper.getDeptInfos(getDeptInfoVO);
+    }
+
     @Override
     public IPage<GetDeptInfoDTO> getAllDeptInfo(GetDeptInfoVO getDeptInfoVO) {
         return baseMapper.getAllDeptInfo(getDeptInfoVO);

+ 1 - 1
icssman-service/src/main/java/com/diagbot/vo/AddModuleDetailVO.java

@@ -14,7 +14,7 @@ public class AddModuleDetailVO {
     //标签id
     private Long questionId;
     //特殊标识
-    private int flag;
+    private String flag;
     //特殊符号,例如逗号,句号
     private String text;
     //子模板id

+ 6 - 1
icssman-service/src/main/java/com/diagbot/vo/DVDetailVO.java

@@ -3,14 +3,19 @@ package com.diagbot.vo;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotNull;
+
 /**
- * @Description:
+ * @Description:查体模板明细
  * @Author:zhaops
  * @time: 2019/1/3 16:45
  */
 @Getter
 @Setter
 public class DVDetailVO {
+    @NotNull(message = "请输入查体标签id")
     private Long vitalId;
+    @NotNull(message = "请输入查体标签排序")
     private Integer orderNo;
+    private String remark;
 }

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

@@ -22,13 +22,13 @@ public class DisclaimerInformationVO {
     /**
      * 标题
      */
-	@NotBlank(message = "请输入标题")
+	@NotBlank(message = "标题不能为空")
     private String title;
 
     /**
      * 描述
      */
-	@NotBlank(message = "请输入描述")
+	@NotBlank(message = "内容不能为空")
     private String description;
 
     /**

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

@@ -26,7 +26,7 @@ public class VersionInfoVO {
 	/**
      * 名称
      */
-	@NotBlank(message = "请输入名称")
+	@NotBlank(message = "标题不能为空")
     private String name;
 
     /**

+ 6 - 2
icssman-service/src/main/java/com/diagbot/web/DeptVitalController.java

@@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
+import javax.validation.Valid;
 import java.util.List;
 
 /**
@@ -41,11 +42,14 @@ public class DeptVitalController {
 
     @ApiOperation(value = "保存查体模板[by:zhaops]",
             notes = "deptId:科室ID,必填<br>" +
-                    "vitalIds:查体标签ids,必填<br>")
+                    "dvDetailVOList:查体标签明细,必填<br>" +
+                    "vitalId:查体标签id,必填<br>" +
+                    "orderNo:查体标签排序,必填<br>" +
+                    "remark:查体标签备注(格式:deptName-tagName),必填<br>")
     @PostMapping("/saveDeptVitals")
     @SysLogger("saveDeptVitals")
     @Transactional
-    public RespDTO<Boolean> saveDeptVitals(@RequestBody DeptVitalVO deptVitalVO) {
+    public RespDTO<Boolean> saveDeptVitals(@RequestBody @Valid DeptVitalVO deptVitalVO) {
         Boolean data = deptVitalFacade.saveDeptVitals(deptVitalVO);
         return RespDTO.onSuc(data);
     }

+ 1 - 1
icssman-service/src/main/java/com/diagbot/web/ModuleInfoController.java

@@ -51,7 +51,7 @@ public class ModuleInfoController {
             notes = "name: 模板名称,必填<br>" +
                     "type: 模板类型,必填<br>" +
                     "questionId: 标签id,不是标点符号时需要填写<br>" +
-                    "flag: 特殊标类型<br>" +
+                    "flag: 特殊标类型<br>" +
                     "relationModule: 关联模板id<br>" +
                     "text: 特殊标签(如逗号句号)<br>" +
                     "textType: 特殊标签归属类型")

+ 14 - 11
icssman-service/src/main/java/com/diagbot/web/QuestionInfoController.java

@@ -1,8 +1,19 @@
 package com.diagbot.web;
 
 
+import java.util.List;
+import java.util.Map;
+
+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.IndexRevDTO;
 import com.diagbot.dto.QuestionDTO;
 import com.diagbot.dto.QuestionPageDTO;
 import com.diagbot.dto.RespDTO;
@@ -15,17 +26,9 @@ import com.diagbot.vo.QuestionPageVO;
 import com.diagbot.vo.QuestionSaveVO;
 import com.diagbot.vo.QuestionSpecVO;
 import com.diagbot.vo.QuestionVO;
+
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-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 java.util.List;
-import java.util.Map;
 
 /**
  * <p>
@@ -78,8 +81,8 @@ public class QuestionInfoController {
             notes = "")
     @PostMapping("/indexRev")
     @SysLogger("indexRev")
-    public RespDTO<List<QuestionInfo>> indexRev(@RequestBody QuestionIndexVO questionIndexVO) {
-        List<QuestionInfo> data = questionFacade.indexRev(questionIndexVO);
+    public RespDTO<List<IndexRevDTO>> indexRev(@RequestBody QuestionIndexVO questionIndexVO) {
+        List<IndexRevDTO> data = questionFacade.indexRev(questionIndexVO);
         return RespDTO.onSuc(data);
     }
 

+ 2 - 1
icssman-service/src/main/java/com/diagbot/web/QuestionUsualController.java

@@ -50,7 +50,8 @@ public class QuestionUsualController {
 
     @ApiOperation(value = "常用标签维护——添加和修改[by:wangyu]",
             notes = "deptId: 科室id,必填<br>" +
-                    "questionName: 症状名称,必填")
+                    "questionName: 症状id,必填<br>" +
+                    "type: 修改时要传")
     @PostMapping("/addQuestionUsual")
     @SysLogger("addQuestionUsual")
     @Transactional

+ 13 - 0
icssman-service/src/main/resources/mapper/DeptInfoMapper.xml

@@ -31,6 +31,19 @@
         b.gmt_modified DESC
     </select>
 
+    <select id="getDeptInfos" resultType="com.diagbot.dto.GetDeptInfoDTO">
+        SELECT
+        a.id,a.gmt_create,a.gmt_modified,a.creator,a.modifier,a.`name`,a.remark
+        FROM
+        `icss_dept_info` a
+        WHERE
+        a.is_deleted = 'N'
+        <if test="name != null and name != ''">
+            AND a.`name` LIKE CONCAT('%',#{name},'%')
+        </if>
+        ORDER BY a.gmt_modified DESC
+    </select>
+
     <select id="getDeptName" resultType="com.diagbot.dto.DeptInfoDTO">
         SELECT
 	      *

+ 2 - 2
icssman-service/src/main/resources/mapper/DeptVitalMapper.xml

@@ -27,7 +27,7 @@
         <result column="name" property="name" />
         <result column="remark" property="remark" />
         <result column="operator" property="operator" />
-        <result column="gmtOperate" property="gmt_operate" />
+        <result column="gmt_operate" property="gmtOperate" />
     </resultMap>
 
     <!--查询已有模板分页-->
@@ -40,7 +40,7 @@
           <if test="deptVitalPageVO.deptName!=null and deptVitalPageVO.deptName!=''">
               AND a.name like CONCAT("%",#{deptVitalPageVO.deptName},"%")
           </if>
-        order by gmt_modified desc
+        order by b.gmt_modified desc
     </select>
 
 </mapper>

+ 3 - 3
icssman-service/src/main/resources/mapper/QuestionInfoMapper.xml

@@ -105,7 +105,7 @@
         WHERE
         a.is_deleted = 'N'
         AND a.sub_type = '0'
-        AND a.type = #{type}
+        AND a.type = #{type} and a.tag_type != 8
         <if test="deptId != null and deptId != ''">
             AND a.id NOT IN (
             SELECT
@@ -136,7 +136,7 @@
         `icss_question_info` a
         WHERE
         a.is_deleted = 'N'
-        AND a.type = #{type}
+        AND a.type = #{type} AND a.tag_type != 8 and a.control_type != 99
         <if test="moduleId != null and moduleId != ''">
             AND a.id NOT IN (
             SELECT
@@ -187,7 +187,7 @@
     <select id="getQuestionUsualsByDept" resultType="com.diagbot.dto.GetQuestionInfoDTO">
         SELECT a.* FROM `icss_question_info` a
         LEFT JOIN icss_question_usual b ON a.id = b.question_id
-        WHERE b.dept_id = #{deptId} AND a.type = #{type}
+        WHERE a.is_deleted = 'N' and b.is_deleted = 'N' and b.dept_id = #{deptId} AND a.type = #{type}
         GROUP BY a.id
     </select>
 

+ 4 - 1
icssman-service/src/main/resources/mapper/QuestionUsualMapper.xml

@@ -17,7 +17,10 @@
     </resultMap>
 
     <select id="getQuestionUsualByQuestionId" resultType="com.diagbot.entity.QuestionUsual">
-        SELECT a.* FROM `icss_question_usual` a WHERE a.is_deleted = 'N' AND a.dept_id = #{questionUsualVO.deptId} AND a.type = #{type}
+        SELECT a.* FROM `icss_question_usual` a
+        LEFT JOIN icss_question_info b ON a.question_id = b.id
+        WHERE a.is_deleted = 'N' and b.is_deleted = 'N'
+        AND a.dept_id = #{questionUsualVO.deptId} AND b.type = #{questionUsualVO.type}
     </select>
 
     <select id="getQuestionUsualByDeptIds" resultType="com.diagbot.dto.GetQuestionUsualAndTypeDTO">

+ 1 - 1
icssman-service/src/main/resources/mapper/RetrievalMapper.xml

@@ -33,7 +33,7 @@
 			AND a.id=#{questionId}
 		</if>
 		<if test="questionName!=null">
-			AND a.`name`=#{questionName}
+			AND a.tag_name=#{questionName}
 		</if>
 	</select>
 	

+ 9 - 7
pom.xml

@@ -47,6 +47,8 @@
         <mybatis-spring-boot.version>1.3.2</mybatis-spring-boot.version>
         <druid.version>1.1.9</druid.version>
         <swagger.version>2.9.2</swagger.version>
+        <logstash.version>5.2</logstash.version>
+        <docker-maven-plugin.version>1.1.1</docker-maven-plugin.version>
         <docker.image.prefix>192.168.2.236:5000/diagbotcloud</docker.image.prefix>
     </properties>
 
@@ -99,11 +101,11 @@
                 <version>${swagger.version}</version>
             </dependency>
 
-            <dependency>
-                <groupId>de.codecentric</groupId>
-                <artifactId>spring-boot-admin-starter-client</artifactId>
-                <version>2.0.2</version>
-            </dependency>
+            <!--<dependency>-->
+                <!--<groupId>de.codecentric</groupId>-->
+                <!--<artifactId>spring-boot-admin-starter-client</artifactId>-->
+                <!--<version>2.0.2</version>-->
+            <!--</dependency>-->
 
             <!-- springboot整合mybatis(核心就这一个) -->
             <!-- 注意顺序,这个一定要放在最下面 -->
@@ -116,14 +118,14 @@
             <dependency>
                 <groupId>com.spotify</groupId>
                 <artifactId>docker-maven-plugin</artifactId>
-                <version>1.1.1</version>
+                <version>${docker-maven-plugin.version}</version>
             </dependency>
 
             <!-- Logstash encoder -->
             <dependency>
                 <groupId>net.logstash.logback</groupId>
                 <artifactId>logstash-logback-encoder</artifactId>
-                <version>5.2</version>
+                <version>${logstash.version}</version>
             </dependency>
 
         </dependencies>