فهرست منبع

Merge branch 'master' into his/tzmh

# Conflicts:
#	src/main/java/com/diagbot/config/ResourceServerConfigurer.java
#	src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
#	src/main/java/com/diagbot/facade/DoctorAdviceFacade.java
#	src/main/resources/application-local.yml
liuqq 5 سال پیش
والد
کامیت
53e2a6c29d
82فایلهای تغییر یافته به همراه5808 افزوده شده و 257 حذف شده
  1. 21 0
      doc/012.20200706v1.3.6.4/qc_initv1.3.6.4.sql
  2. 372 0
      doc/013.20200706v1.3.7/qc_initv1.3.7.sql
  3. 18 0
      doc/014.20200708v1.3.6.5/qc_initv1.3.6.5.sql
  4. 9 0
      doc/015.20200706v1.3.7.1/qc_initv1.3.7.1.sql
  5. 15 0
      doc/015.20200714病案首页添加14个字段/qc_init_20200714.sql
  6. 9 0
      doc/016.20200715v1.3.7.2/qc_initv.1.3.7.2.sql
  7. 3 0
      doc/017.20200717v1.3.7.3/qc_initv1.3.7.3.sql
  8. 110 0
      src/main/java/com/diagbot/aggregate/LeaveHosStatisticsAggregate.java
  9. 6 0
      src/main/java/com/diagbot/aggregate/MrStatisticsAggregate.java
  10. 4 2
      src/main/java/com/diagbot/client/QcServiceClient.java
  11. 3 1
      src/main/java/com/diagbot/client/hystrix/QcServiceHystrix.java
  12. 9 18
      src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  13. 9 3
      src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  14. 2 0
      src/main/java/com/diagbot/dto/BehospitalInfoDTO.java
  15. 20 0
      src/main/java/com/diagbot/dto/ColumnDTO.java
  16. 140 0
      src/main/java/com/diagbot/dto/DoctorAdviceDTO.java
  17. 88 0
      src/main/java/com/diagbot/dto/HomePageImproveDTO.java
  18. 4 0
      src/main/java/com/diagbot/dto/MsgDTO.java
  19. 17 14
      src/main/java/com/diagbot/dto/QcResultShortDTO.java
  20. 18 0
      src/main/java/com/diagbot/dto/UnModifyMRDTO.java
  21. 19 0
      src/main/java/com/diagbot/dto/UnModifyMRDetailDTO.java
  22. 70 0
      src/main/java/com/diagbot/entity/HomePage.java
  23. 184 0
      src/main/java/com/diagbot/entity/MedCheckInfo.java
  24. 10 0
      src/main/java/com/diagbot/entity/QcCasesEntry.java
  25. 5 0
      src/main/java/com/diagbot/entity/QcresultInfo.java
  26. 167 0
      src/main/java/com/diagbot/entity/SysHospitalSet.java
  27. 15 7
      src/main/java/com/diagbot/facade/AlgorithmFacade.java
  28. 31 4
      src/main/java/com/diagbot/facade/BehospitalInfoFacade.java
  29. 148 5
      src/main/java/com/diagbot/facade/ConsoleExportFacade.java
  30. 446 1
      src/main/java/com/diagbot/facade/ConsoleFacade.java
  31. 29 2
      src/main/java/com/diagbot/facade/DoctorAdviceFacade.java
  32. 23 15
      src/main/java/com/diagbot/facade/FilterFacade.java
  33. 98 0
      src/main/java/com/diagbot/facade/MedCheckInfoFacade.java
  34. 44 0
      src/main/java/com/diagbot/facade/QcClientFacade.java
  35. 13 6
      src/main/java/com/diagbot/facade/QcresultInfoFacade.java
  36. 47 0
      src/main/java/com/diagbot/facade/SysHospitalSetFacade.java
  37. 99 0
      src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java
  38. 6 1
      src/main/java/com/diagbot/mapper/DoctorAdviceMapper.java
  39. 16 0
      src/main/java/com/diagbot/mapper/MedCheckInfoMapper.java
  40. 16 0
      src/main/java/com/diagbot/mapper/SysHospitalSetMapper.java
  41. 99 0
      src/main/java/com/diagbot/service/BehospitalInfoService.java
  42. 4 0
      src/main/java/com/diagbot/service/DoctorAdviceService.java
  43. 16 0
      src/main/java/com/diagbot/service/MedCheckInfoService.java
  44. 16 0
      src/main/java/com/diagbot/service/SysHospitalSetService.java
  45. 135 0
      src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java
  46. 7 0
      src/main/java/com/diagbot/service/impl/DoctorAdviceServiceImpl.java
  47. 20 0
      src/main/java/com/diagbot/service/impl/MedCheckInfoServiceImpl.java
  48. 20 0
      src/main/java/com/diagbot/service/impl/SysHospitalSetServiceImpl.java
  49. 57 0
      src/main/java/com/diagbot/util/ClassUtil.java
  50. 70 0
      src/main/java/com/diagbot/util/DynamicBean.java
  51. 17 0
      src/main/java/com/diagbot/util/ExcelUtils.java
  52. 39 0
      src/main/java/com/diagbot/util/ObjectUtil.java
  53. 47 0
      src/main/java/com/diagbot/util/SpringContextUtil.java
  54. 3 0
      src/main/java/com/diagbot/vo/AnalyzeVO.java
  55. 2 0
      src/main/java/com/diagbot/vo/BehospitalPageVO.java
  56. 51 0
      src/main/java/com/diagbot/vo/DoctorAdviceVO.java
  57. 1 0
      src/main/java/com/diagbot/vo/ExportQcresultVO.java
  58. 3 1
      src/main/java/com/diagbot/vo/FilterPageVO.java
  59. 60 0
      src/main/java/com/diagbot/vo/FilterUnModifyMRVO.java
  60. 4 2
      src/main/java/com/diagbot/vo/FilterVO.java
  61. 19 0
      src/main/java/com/diagbot/vo/MedCheckInfoAddVO.java
  62. 10 0
      src/main/java/com/diagbot/vo/QcResultShortPageVO.java
  63. 3 0
      src/main/java/com/diagbot/vo/TaskVO.java
  64. 2 1
      src/main/java/com/diagbot/web/BehospitalInfoController.java
  65. 101 2
      src/main/java/com/diagbot/web/ConsoleController.java
  66. 82 2
      src/main/java/com/diagbot/web/ConsoleExportController.java
  67. 45 0
      src/main/java/com/diagbot/web/DoctorAdviceController.java
  68. 42 0
      src/main/java/com/diagbot/web/MedCheckInfoController.java
  69. 0 1
      src/main/resources/application-dev.yml
  70. 6 6
      src/main/resources/application-local.yml
  71. 0 1
      src/main/resources/application-pre.yml
  72. 0 1
      src/main/resources/application-pro.yml
  73. 0 1
      src/main/resources/application-test.yml
  74. 2318 99
      src/main/resources/mapper/BehospitalInfoMapper.xml
  75. 26 0
      src/main/resources/mapper/DoctorAdviceMapper.xml
  76. 14 0
      src/main/resources/mapper/HomePageMapper.xml
  77. 21 0
      src/main/resources/mapper/MedCheckInfoMapper.xml
  78. 1 0
      src/main/resources/mapper/MedicalRecordMapper.xml
  79. 2 0
      src/main/resources/mapper/QcCasesEntryMapper.xml
  80. 61 60
      src/main/resources/mapper/QcresultInfoMapper.xml
  81. 20 0
      src/main/resources/mapper/SysHospitalSetMapper.xml
  82. 1 1
      src/test/java/com/diagbot/CodeGeneration.java

+ 21 - 0
doc/012.20200706v1.3.6.4/qc_initv1.3.6.4.sql

@@ -0,0 +1,21 @@
+use `qc`;
+
+ ALTER TABLE `qc`.`qc_cases_entry` CHANGE `remark` `remark` VARCHAR(1000) CHARSET utf8 COLLATE utf8_general_ci NULL COMMENT '备注';
+
+DROP TABLE IF EXISTS `sys_hospital_set`;
+CREATE TABLE `sys_hospital_set` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(3) DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(60) DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(60) DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `hospital_id` bigint(20) DEFAULT '0' COMMENT '医院ID',
+  `name` varchar(100) DEFAULT NULL COMMENT '配置名称',
+  `code` varchar(100) DEFAULT NULL COMMENT '配置编码',
+  `value` varchar(255) DEFAULT NULL,
+  `remark` varchar(128) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='医院所有配置信息';
+
+INSERT INTO `sys_hospital_set` VALUES ('1', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '评分类型', 'score_type', '1', '评分类型(0:120分制,1:100分制)');

+ 372 - 0
doc/013.20200706v1.3.7/qc_initv1.3.7.sql

@@ -0,0 +1,372 @@
+use `qc`;
+
+ALTER TABLE `med_qcresult_info` ADD `have_home_page` tinyint(4) DEFAULT '0' COMMENT '是否有病案首页(0:无,1:有)' AFTER `score_res`;
+
+DROP TABLE IF EXISTS `med_check_info`;
+CREATE TABLE `med_check_info` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(3) DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(60) DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(60) DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `behospital_code` varchar(16) NOT NULL COMMENT '病人住院ID',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `check_id` bigint(20) NOT NULL COMMENT '核查人id',
+  `check_name` varchar(255) NOT NULL COMMENT '核查人',
+  `check_time` datetime DEFAULT '1970-01-01 12:00:00' COMMENT '核查时间',
+  `status` int(11) NOT NULL DEFAULT '0' COMMENT '核查状态(0未核查,1已核查)',
+  PRIMARY KEY (`id`),
+  KEY `idx_hospital_id_behospital_code` (`behospital_code`,`hospital_id`),
+  KEY `idx_behospital_code` (`behospital_code`),
+  KEY `idx_hospital_id` (`hospital_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='核查表';
+
+DELETE FROM sys_user_pageset WHERE user_id = -1;
+
+INSERT INTO `sys_user_pageset` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '病历等级', 'level', '1', '1', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '病历得分', 'scoreRes', '1', '2', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '病人住院序号', 'behospitalCode', '1', '3', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '病案号', 'fileCode', '1', '5', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '病人姓名', 'name', '1', '6', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '性别', 'sex', '1', '7', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '年龄', 'age', '1', '8', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '床号', 'bedCode', '1', '9', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '入院日期', 'behospitalDate', '1', '10', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '出院日期', 'leaveHospitalDate', '1', '11', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '归档日期', 'placefileDate', '1', '12', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '主诊断', 'diagnose', '1', '13', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '住院医生', 'behDoctorName', '1', '14', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '主管医生', 'doctorName', '1', '15', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '主任医生', 'directorDoctorName', '1', '16', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '科室', 'behDeptName', '1', '17', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '评分时间', 'gradeTime', '1', '18', NULL);
+INSERT INTO `sys_user_pageset` (  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '1', '核查状态', 'checkStatus', '1', '4', NULL);
+
+-- 找出没有”核查状态“的人员并给加上
+ INSERT INTO sys_user_pageset
+(  `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `user_id`, `page_type`, `name`, `val`, `status`, `order_no`, `remark`)
+ SELECT is_deleted,
+gmt_create,
+ gmt_modified,
+ creator,
+MODIFIER,
+ user_id,
+ page_type,
+ CASE WHEN ISNULL(NAME) THEN "核查状态" ELSE "核查状态" END NAME,
+ CASE WHEN ISNULL(userId) THEN "checkStatus" ELSE "checkStatus" END val,
+ CASE WHEN ISNULL(STATUS) THEN 0 ELSE 0 END STATUS,
+ CASE WHEN ISNULL(order_no) THEN 4 ELSE 4 END order_no,
+ remark
+ FROM (SELECT * FROM  sys_user_pageset  WHERE user_id <> -1) b LEFT JOIN  (SELECT c.user_id AS userId FROM  sys_user_pageset c  WHERE user_id <> -1 AND val = "checkStatus") p ON b.user_id = p.userId
+WHERE  userId IS NULL
+ GROUP BY user_id ;
+
+
+-- ----------------------------
+-- Table structure for sys_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu`;
+CREATE TABLE `sys_menu` (
+  `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则表示纪录未修改',
+  `name` varchar(255) NOT NULL DEFAULT '' COMMENT '菜单名称',
+  `parent_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '-1:表示顶级,其他值表示上级菜单的id',
+  `code` varchar(255) NOT NULL DEFAULT '' COMMENT '编码,与前端对应',
+  `show_status` int(11) NOT NULL DEFAULT '0' COMMENT '是否在右侧菜单显示(0:不显示,1:显示)',
+  `maintain_status` int(11) NOT NULL DEFAULT '0' COMMENT '是否可以维护(0:不可维护,1:可以维护)',
+  `order_no` int(11) NOT NULL DEFAULT '0' COMMENT '排序,从小到大',
+  `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8 COMMENT='系统菜单';
+
+-- ----------------------------
+-- Records of sys_menu
+-- ----------------------------
+INSERT INTO `sys_menu` VALUES ('1', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '控制台', '-1', 'YH-KZT', '1', '1', '-10', '用户-控制台');
+INSERT INTO `sys_menu` VALUES ('2', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '基础数据维护', '-1', 'YH-JCSJWH', '1', '1', '2', '用户-基础数据维护');
+INSERT INTO `sys_menu` VALUES ('3', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '病案质控', '-1', 'YH-BLZK', '1', '1', '3', '用户-病历质控');
+INSERT INTO `sys_menu` VALUES ('4', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '统计分析', '-1', 'YH-TJFX', '1', '1', '4', '用户-统计分析');
+INSERT INTO `sys_menu` VALUES ('5', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '模块数据维护', '2', 'YH-JCSJWH-MKSJWH', '1', '1', '1', '用户-基础数据维护-模块数据维护');
+INSERT INTO `sys_menu` VALUES ('6', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '条目数据维护', '2', 'YH-JCSJWH-TMSJWH', '1', '1', '2', '用户-基础数据维护-条目数据维护');
+INSERT INTO `sys_menu` VALUES ('7', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '质控评分', '3', 'YH-BLZK-ZKPF', '1', '1', '1', '用户-病历质控-质控评分');
+INSERT INTO `sys_menu` VALUES ('8', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '基础功能', '-1', 'YH-QBYH-JCGN', '0', '1', '0', '用户-基础功能');
+INSERT INTO `sys_menu` VALUES ('9', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '质控评分(科室)', '3', 'YH-BLZK-ZKPFKS', '1', '1', '2', '用户-病历质控-质控评分(科室)');
+INSERT INTO `sys_menu` VALUES ('10', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '质控评分(个人)', '3', 'YH-BLZK-ZKPFGR', '1', '1', '3', '用户-病历质控-质控评分(个人)');
+INSERT INTO `sys_menu` VALUES ('12', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '权限管理', '-1', 'YH-QXGL', '1', '0', '5', '用户-权限管理');
+INSERT INTO `sys_menu` VALUES ('13', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户管理', '12', 'YH-QXGL-YHGL', '1', '0', '1', '用户-权限管理-用户管理');
+INSERT INTO `sys_menu` VALUES ('14', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '角色管理', '12', 'YH-QXGL-JSGL', '1', '0', '2', '用户-权限管理-角色管理');
+INSERT INTO `sys_menu` VALUES ('15', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '控制台(科室)', '-1', 'YH-KZTKS', '1', '1', '-9', '用户-控制台(科室)');
+INSERT INTO `sys_menu` VALUES ('16', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '异常数据监控', '-1', 'YH-YCSJJK', '1', '0', '10', '用户-异常数据监控');
+INSERT INTO `sys_menu` VALUES ('17', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '数据报表明细', '-1', 'YH-ZKK', '1', '1', '-8', '用户-质控科');
+INSERT INTO `sys_menu` VALUES ('18', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '数据报表明细(科室)', '-1', 'YH-KSZR', '1', '1', '-7', '用户-科室主任');
+INSERT INTO `sys_menu` VALUES ('19', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各模块缺陷占比', '17', 'YH-ZKK-GMKQXZB_XQ', '1', '1', '1', '用户-质控科-各模块缺陷占比_详情');
+INSERT INTO `sys_menu` VALUES ('20', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '条目缺陷占比', '17', 'YH-ZKK-TMQXZB_XQ', '1', '1', '2', '用户-质控科-条目缺陷占比_详情');
+INSERT INTO `sys_menu` VALUES ('21', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '科室平均住院天数', '17', 'YH-ZKK-KSPJZYTS_XQ', '1', '1', '4', '用户-质控科-科室平均住院天数_详情');
+INSERT INTO `sys_menu` VALUES ('22', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '科室平均住院花费', '17', 'YH-ZKK-KSPJZYHF_XQ', '1', '1', '5', '用户-质控科-科室平均住院花费_详情');
+INSERT INTO `sys_menu` VALUES ('23', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各科室质控平均分', '17', 'YH-ZKK-GKSZKPJF_XQ', '1', '1', '6', '用户-质控科-各科室质控平均分_详情');
+INSERT INTO `sys_menu` VALUES ('24', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '缺陷详情', '17', 'YH-ZKK-GKSQXZB', '1', '1', '7', '用户-质控科-各科室缺陷占比_详情');
+INSERT INTO `sys_menu` VALUES ('25', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各科室甲级病历占比', '17', 'YH-ZKK-GKSJJBLZB_XQ', '1', '1', '8', '用户-质控科-各科室甲级病历占比_详情');
+INSERT INTO `sys_menu` VALUES ('26', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各模块缺陷占比', '18', 'YH-KSZR-GMKQXZB_XQ', '1', '1', '2', '用户-科室主任-各模块缺陷占比_详情');
+INSERT INTO `sys_menu` VALUES ('27', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '条目缺陷占比', '18', 'YH-KSZR-TMQXZB_XQ', '1', '1', '3', '用户-科室主任-条目缺陷占比_详情');
+INSERT INTO `sys_menu` VALUES ('28', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '病案首页合格率占比', '17', 'YH-ZKK-BASYHGLZB_XQ', '1', '1', '0', '用户-质控科-病案首页合格率占比_详情');
+INSERT INTO `sys_menu` VALUES ('29', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '病案首页合格率占比', '18', 'YH-KSZR-BASYHGLZB_XQ', '1', '1', '1', '用户-科室主任-病案首页合格率占比_详情');
+INSERT INTO `sys_menu` VALUES ('30', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '科室缺陷占比', '18', 'YH-KSZR-KSQXZB_XQ', '1', '1', '4', '用户-科室主任-科室缺陷占比_详情');
+INSERT INTO `sys_menu` VALUES ('31', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各科室缺陷占比', '17', 'YH-ZKK-GKSQXZB_XQ', '1', '1', '9', '用户-质控科-各科室缺陷占比_详情');
+INSERT INTO `sys_menu` VALUES ('32', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '质控类型维护', '2', 'YH-JCSJWH-ZKLXWH', '1', '0', '3', '用户-基础数据维护-质控类型维护');
+INSERT INTO `sys_menu` VALUES ('33', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '质控评分(医疗组)', '3', 'YH-BLZK-ZKPFYLZ', '1', '1', '4', '用户-病历质控-质控评分(医疗组)');
+INSERT INTO `sys_menu` VALUES ('34', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '关键条目缺陷占比', '17', 'YH-ZKK-GJTMQXZB', '1', '1', '3', '用户-质控科-关键条目缺陷占比');
+INSERT INTO `sys_menu` VALUES ('35', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '出院人数统计', '17', 'YH-ZKK-CYRSTJ', '1', '1', '11', '用户-质控科-出院人数统计');
+INSERT INTO `sys_menu` VALUES ('36', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '质控核查统计', '17', 'YH-ZKK-ZKHCTJ', '1', '1', '12', '用户-质控科-质控核查统计');
+
+-- ----------------------------
+-- Table structure for sys_menu_permission
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu_permission`;
+CREATE TABLE `sys_menu_permission` (
+  `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则表示纪录未修改',
+  `menu_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '菜单id',
+  `permission_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '系统资源id',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8 COMMENT='菜单和系统资源的映射表';
+
+-- ----------------------------
+-- Records of sys_menu_permission
+-- ----------------------------
+INSERT INTO `sys_menu_permission` VALUES ('1', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '8', '1', '基础功能-获取用户、机构、菜单信息');
+INSERT INTO `sys_menu_permission` VALUES ('2', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '8', '2', '基础功能-修改密码');
+INSERT INTO `sys_menu_permission` VALUES ('3', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '9', '控制台-病历相关统计');
+INSERT INTO `sys_menu_permission` VALUES ('4', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '15', '控制台-缺陷相关统计');
+INSERT INTO `sys_menu_permission` VALUES ('5', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '16', '控制台-医院运营相关统计');
+INSERT INTO `sys_menu_permission` VALUES ('6', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '3', '用户-基础数据维护-获取医院模块数据信息');
+INSERT INTO `sys_menu_permission` VALUES ('7', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '5', '4', '用户-基础数据维护-批量更新模块数据');
+INSERT INTO `sys_menu_permission` VALUES ('8', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '6', '6', '用户-条目数据维护-分页获取医院条目数据信息');
+INSERT INTO `sys_menu_permission` VALUES ('9', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '6', '7', '用户-条目数据维护-修改医院条目数据信息');
+INSERT INTO `sys_menu_permission` VALUES ('10', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '6', '8', '用户-条目数据维护-获取医院模块数据下拉列表');
+INSERT INTO `sys_menu_permission` VALUES ('11', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '7', '30', '用户-质控评分-获取病历质控一览下医院科室下拉列表信息');
+INSERT INTO `sys_menu_permission` VALUES ('12', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '7', '17', '用户-质控评分-评分');
+INSERT INTO `sys_menu_permission` VALUES ('13', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '7', '5', '用户-质控评分-分页');
+INSERT INTO `sys_menu_permission` VALUES ('14', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '7', '11', '用户-质控评分-新增质控条目');
+INSERT INTO `sys_menu_permission` VALUES ('15', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '7', '12', '用户-质控评分-删除质控条目');
+INSERT INTO `sys_menu_permission` VALUES ('16', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '7', '13', '用户-质控评分-修改质控条目');
+INSERT INTO `sys_menu_permission` VALUES ('17', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '7', '14', '用户-质控评分-获取详情');
+INSERT INTO `sys_menu_permission` VALUES ('18', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '9', '31', '用户-质控评分(科室)-获取病历质控一览下用户科室下拉列表信息');
+INSERT INTO `sys_menu_permission` VALUES ('19', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '9', '34', '用户-质控评分(科室)-评分');
+INSERT INTO `sys_menu_permission` VALUES ('20', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '9', '32', '用户-质控评分(科室)-分页');
+INSERT INTO `sys_menu_permission` VALUES ('21', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '9', '35', '用户-质控评分(科室)-新增质控条目');
+INSERT INTO `sys_menu_permission` VALUES ('22', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '9', '36', '用户-质控评分(科室)-删除质控条目');
+INSERT INTO `sys_menu_permission` VALUES ('23', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '9', '37', '用户-质控评分(科室)-修改质控条目');
+INSERT INTO `sys_menu_permission` VALUES ('24', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '9', '38', '用户-质控评分(科室)-获取详情');
+INSERT INTO `sys_menu_permission` VALUES ('25', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '39', '用户-质控评分(个人)-获取病历质控一览下用户科室下拉列表信息');
+INSERT INTO `sys_menu_permission` VALUES ('26', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '40', '用户-质控评分(个人)-评分');
+INSERT INTO `sys_menu_permission` VALUES ('27', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '33', '用户-质控评分(个人)-分页');
+INSERT INTO `sys_menu_permission` VALUES ('28', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '41', '用户-质控评分(个人)-新增质控条目');
+INSERT INTO `sys_menu_permission` VALUES ('29', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '42', '用户-质控评分(个人)-删除质控条目');
+INSERT INTO `sys_menu_permission` VALUES ('30', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '43', '用户-质控评分(个人)-修改质控条目');
+INSERT INTO `sys_menu_permission` VALUES ('31', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '44', '用户-质控评分(个人)-获取详情');
+INSERT INTO `sys_menu_permission` VALUES ('32', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '45', '控制台-平均住院天数');
+INSERT INTO `sys_menu_permission` VALUES ('33', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '46', '控制台-平均住院费用');
+INSERT INTO `sys_menu_permission` VALUES ('34', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '47', '控制台-质控平均分按科室统计');
+INSERT INTO `sys_menu_permission` VALUES ('35', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '48', '控制台-各科室甲级病历占比');
+INSERT INTO `sys_menu_permission` VALUES ('36', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '49', '控制台-出院人数统计');
+INSERT INTO `sys_menu_permission` VALUES ('37', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '50', '控制台-质控病历统计');
+INSERT INTO `sys_menu_permission` VALUES ('38', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '51', '控制台-各模块缺陷占比排行');
+INSERT INTO `sys_menu_permission` VALUES ('39', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '52', '控制台-条目缺陷占比');
+INSERT INTO `sys_menu_permission` VALUES ('40', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '53', '控制台-各科室缺陷占比');
+INSERT INTO `sys_menu_permission` VALUES ('41', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '15', '54', '控制台(科室)-出院人数统计(科室)');
+INSERT INTO `sys_menu_permission` VALUES ('42', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '15', '55', '控制台(科室)-质控病历数统计(科室)');
+INSERT INTO `sys_menu_permission` VALUES ('43', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '15', '56', '控制台(科室)-各模块缺陷占比排行(科室)');
+INSERT INTO `sys_menu_permission` VALUES ('44', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '15', '57', '控制台(科室)-条目缺陷占比(科室)');
+INSERT INTO `sys_menu_permission` VALUES ('45', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '15', '58', '控制台(科室)-查询用户关联科室');
+INSERT INTO `sys_menu_permission` VALUES ('46', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '19', '59', '控制台-各模块缺陷占比_详情');
+INSERT INTO `sys_menu_permission` VALUES ('47', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '20', '60', '控制台-条目缺陷占比_详情');
+INSERT INTO `sys_menu_permission` VALUES ('48', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '21', '64', '控制台-科室平均住院天数_详情');
+INSERT INTO `sys_menu_permission` VALUES ('49', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '22', '65', '控制台-科室平均住院花费_详情');
+INSERT INTO `sys_menu_permission` VALUES ('50', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '66', '控制台-各科室质控平均分_详情');
+INSERT INTO `sys_menu_permission` VALUES ('51', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '31', '67', '控制台-各科室缺陷占比-缺陷详情');
+INSERT INTO `sys_menu_permission` VALUES ('52', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '25', '68', '控制台-各科室甲级病历占比_详情');
+INSERT INTO `sys_menu_permission` VALUES ('53', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '26', '69', '控制台(科室)-各模块缺陷占比_详情');
+INSERT INTO `sys_menu_permission` VALUES ('54', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '27', '70', '控制台(科室)-条目缺陷占比_详情');
+INSERT INTO `sys_menu_permission` VALUES ('55', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '31', '71', '控制台-各科室缺陷占比(组合)');
+INSERT INTO `sys_menu_permission` VALUES ('56', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '28', '72', '控制台-病案首页合格率占比');
+INSERT INTO `sys_menu_permission` VALUES ('57', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '30', '73', '控制台(科室)-各科室缺陷占比(科室)');
+INSERT INTO `sys_menu_permission` VALUES ('58', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '29', '74', '控制台(科室)-病案首页合格率占比(科室)');
+INSERT INTO `sys_menu_permission` VALUES ('59', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '75', '控制台-病案首页合格率占比(首页)');
+INSERT INTO `sys_menu_permission` VALUES ('60', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '15', '76', '控制台(科室)-病案首页合格率占比(首页)');
+INSERT INTO `sys_menu_permission` VALUES ('61', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '30', '77', '控制台(科室)-科室缺陷占比-缺陷明细');
+INSERT INTO `sys_menu_permission` VALUES ('62', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '20', '89', '控制台-条目缺陷占比(内页)');
+INSERT INTO `sys_menu_permission` VALUES ('63', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '27', '90', '控制台(科室)-条目缺陷占比-科室(内页)');
+INSERT INTO `sys_menu_permission` VALUES ('64', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '91', '控制台-各科室质控平均分(首页)-根据内外科系统统计');
+INSERT INTO `sys_menu_permission` VALUES ('65', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '31', '92', '控制台-各科室缺陷占比(内页)-根据内外科系统统计');
+INSERT INTO `sys_menu_permission` VALUES ('66', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '20', '94', '数据报表明细-条目缺陷占比-条目缺陷占比质控详情页(全院)');
+INSERT INTO `sys_menu_permission` VALUES ('67', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '27', '95', '数据报表明细(科室)-条目缺陷占比-条目缺陷占比质控详情页(科室)');
+INSERT INTO `sys_menu_permission` VALUES ('68', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '33', '96', '用户-医疗组-分页');
+INSERT INTO `sys_menu_permission` VALUES ('69', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '33', '97', '用户-医疗组-新增质控条目');
+INSERT INTO `sys_menu_permission` VALUES ('70', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '33', '98', '用户-医疗组-删除质控条目');
+INSERT INTO `sys_menu_permission` VALUES ('71', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '33', '99', '用户-医疗组-修改质控条目');
+INSERT INTO `sys_menu_permission` VALUES ('72', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '34', '100', '数据报表明细-关键条目缺陷占比');
+INSERT INTO `sys_menu_permission` VALUES ('73', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '7', '101', '用户-质控评分-核查数据接口');
+INSERT INTO `sys_menu_permission` VALUES ('74', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '9', '105', '用户-质控评分(科室)-核查数据接口');
+INSERT INTO `sys_menu_permission` VALUES ('75', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '10', '104', '用户-质控评分(个人)-核查数据接口');
+INSERT INTO `sys_menu_permission` VALUES ('76', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '33', '106', '用户-医疗组-核查数据接口');
+INSERT INTO `sys_menu_permission` VALUES ('77', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '35', '102', '数据报表明细-出院人数统计');
+INSERT INTO `sys_menu_permission` VALUES ('78', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '36', '103', '数据报表明细-质控核查统计');
+
+-- ----------------------------
+-- Table structure for sys_permission
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_permission`;
+CREATE TABLE `sys_permission` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '资源ID',
+  `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则表示纪录未修改',
+  `name` varchar(255) NOT NULL DEFAULT '' COMMENT '资源名称',
+  `code` varchar(20) NOT NULL DEFAULT '' COMMENT '资源编码',
+  `permissionUrl` varchar(255) NOT NULL DEFAULT '' COMMENT '资源Url',
+  `method` varchar(255) NOT NULL DEFAULT 'ALL' COMMENT '资源允许的请求方式',
+  `descritpion` varchar(255) NOT NULL DEFAULT '' COMMENT '资源描述',
+  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=107 DEFAULT CHARSET=utf8 COMMENT='系统资源表';
+
+-- ----------------------------
+-- Records of sys_permission
+-- ----------------------------
+INSERT INTO `sys_permission` VALUES ('1', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取用户、机构、菜单信息', 'FUNC000001', '/sys/user/getUserOrgMenu', 'ALL', '基础功能-获取用户、机构、菜单信息', null);
+INSERT INTO `sys_permission` VALUES ('2', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '修改密码', 'FUNC000002', '/sys/user/midifyPassword', 'ALL', '基础功能-修改密码', null);
+INSERT INTO `sys_permission` VALUES ('3', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取医院模块数据信息', 'FUNC000003', '/qc/cases/getQcCases', 'ALL', '用户-基础数据维护-获取医院模块数据信息', '无需加密');
+INSERT INTO `sys_permission` VALUES ('4', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '修改医院模块数据', 'FUNC000004', '/qc/cases/saveQcCases', 'ALL', '用户-基础数据维护-修改医院模块数据', null);
+INSERT INTO `sys_permission` VALUES ('5', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '分页查询', 'FUNC000005', '/qc/behospitalInfo/page', 'ALL', '用户-质控评分-分页', '无需加密');
+INSERT INTO `sys_permission` VALUES ('6', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '分页获取医院条目数据信息', 'FUNC000006', '/qc/casesEntryHospital/getQcCasesEntryAll', 'ALL', '用户-条目数据维护-分页获取医院条目数据信息', '无需加密');
+INSERT INTO `sys_permission` VALUES ('7', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '修改医院条目数据信息', 'FUNC000007', '/qc/casesEntryHospital/updataQcCasesEntry', 'ALL', '用户-条目数据维护-修改医院条目数据信息', null);
+INSERT INTO `sys_permission` VALUES ('8', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取医院模块下拉数据列表', 'FUNC000008', '/qc/casesEntryHospital/getQcCasesAll', 'ALL', '获取医院模块数据列表', '无需加密');
+INSERT INTO `sys_permission` VALUES ('9', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '病历相关统计', 'FUNC000009', '/console/mrStatistics', 'ALL', '控制台-病历相关统计', null);
+INSERT INTO `sys_permission` VALUES ('10', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '模糊查询医院模块条目列表', 'FUNC000010', '/qc/casesEntryHospital/findQcCasesEntry', 'ALL', '用户-条目数据维护-模糊查询医院模块条目列表', null);
+INSERT INTO `sys_permission` VALUES ('11', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '新增质控条目', 'FUNC000011', '/qc/behospitalInfo/addCase', 'ALL', '用户-质控评分-新增质控条目', null);
+INSERT INTO `sys_permission` VALUES ('12', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '删除质控条目', 'FUNC000012', '/qc/behospitalInfo/delCase', 'ALL', '用户-质控评分-删除质控条目', null);
+INSERT INTO `sys_permission` VALUES ('13', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '修改质控条目', 'FUNC000013', '/qc/behospitalInfo/updCase', 'ALL', '用户-质控评分-修改质控条目', null);
+INSERT INTO `sys_permission` VALUES ('14', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取质控评分详情', 'FUNC000014', '/qc/behospitalInfo/getByBehospitalCode', 'ALL', '用户-质控评分-获取详情', '无需加密');
+INSERT INTO `sys_permission` VALUES ('15', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '缺陷相关统计', 'FUNC000015', '/console/resultStatistics', 'ALL', '控制台-缺陷相关统计', null);
+INSERT INTO `sys_permission` VALUES ('16', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '平均值相关统计', 'FUNC000016', '/console/averageStatistics', 'ALL', '控制台-平均值相关统计', null);
+INSERT INTO `sys_permission` VALUES ('17', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '质控评分', 'FUNC000017', '/qc/behospitalInfo/analyze', 'ALL', '用户-质控评分-评分', null);
+INSERT INTO `sys_permission` VALUES ('18', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取角色列表信息', 'FUNC000018', '/sys/role/list', 'ALL', '用户-权限管理-角色管理-获取角色列表信息', null);
+INSERT INTO `sys_permission` VALUES ('19', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取角色菜权限单等数据', 'FUNC000019', '/sys/role/getRoleMenu', 'ALL', '用户-权限管理-角色管理-获取角色菜权限单等数据', null);
+INSERT INTO `sys_permission` VALUES ('20', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '修改角色菜单权限数据', 'FUNC000020', '/sys/role/saveRoleMenu', 'ALL', '用户-权限管理-角色管理-修改角色菜单权限数据', null);
+INSERT INTO `sys_permission` VALUES ('21', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取医院科室下拉列表信息', 'FUNC000021', '/bas/dept/listForUser', 'ALL', '用户-权限管理-用户管理-获取用户管理下医院科室下拉列表信息', null);
+INSERT INTO `sys_permission` VALUES ('22', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取角色下拉列表信息', 'FUNC000022', '/sys/role/listForUser', 'ALL', '用户-权限管理-用户管理-获取角色下拉列表信息', null);
+INSERT INTO `sys_permission` VALUES ('23', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户列表翻页信息查询', 'FUNC000023', '/sys/user/userPage', 'ALL', '用户-权限管理-用户管理-用户列表翻页信息查询', null);
+INSERT INTO `sys_permission` VALUES ('24', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取用户科室', 'FUNC000024', '/sys/user/getUserDepts', 'ALL', '用户-权限管理-用户管理-获取用户科室', null);
+INSERT INTO `sys_permission` VALUES ('25', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取用户角色', 'FUNC000025', '/sys/user/getUserRoles', 'ALL', '用户-权限管理-用户管理-获取用户角色', null);
+INSERT INTO `sys_permission` VALUES ('26', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户启用', 'FUNC000026', '/sys/user/enable', 'ALL', '用户-权限管理-用户管理-用户启用', null);
+INSERT INTO `sys_permission` VALUES ('27', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '用户停用', 'FUNC000027', '/sys/user/disable', 'ALL', '用户-权限管理-用户管理-用户停用', null);
+INSERT INTO `sys_permission` VALUES ('28', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '编辑用户科室', 'FUNC000028', '/sys/user/editUserDepts', 'ALL', '用户-权限管理-用户管理-编辑用户科室', null);
+INSERT INTO `sys_permission` VALUES ('29', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '编辑用户角色', 'FUNC000029', '/sys/user/editUserRoles', 'ALL', '用户-权限管理-用户管理-编辑用户角色', null);
+INSERT INTO `sys_permission` VALUES ('30', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取医院科室下拉列表信息', 'FUNC000030', '/bas/dept/getList', 'ALL', '用户-质控评分-获取病历质控一览下医院科室下拉列表信息', '无需加密');
+INSERT INTO `sys_permission` VALUES ('31', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取用户科室下拉列表信息', 'FUNC000031', '/bas/dept/getListUser', 'ALL', '用户-质控评分(科室)-获取病历质控一览下用户科室下拉列表信息', '无需加密');
+INSERT INTO `sys_permission` VALUES ('32', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '分页查询', 'FUNC000032', '/qc/behospitalInfo/page_dept', 'ALL', '用户-质控评分(科室)-分页', '无需加密');
+INSERT INTO `sys_permission` VALUES ('33', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '分页查询', 'FUNC000033', '/qc/behospitalInfo/page_person', 'ALL', '用户-质控评分(个人)-分页', '无需加密');
+INSERT INTO `sys_permission` VALUES ('34', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '质控评分', 'FUNC000017', '/qc/behospitalInfo/analyze', 'ALL', '用户-质控评分(科室)-评分', null);
+INSERT INTO `sys_permission` VALUES ('35', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '新增质控条目', 'FUNC000011', '/qc/behospitalInfo/addCase', 'ALL', '用户-质控评分(科室)-新增质控条目', null);
+INSERT INTO `sys_permission` VALUES ('36', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '删除质控条目', 'FUNC000012', '/qc/behospitalInfo/delCase', 'ALL', '用户-质控评分(科室)-删除质控条目', null);
+INSERT INTO `sys_permission` VALUES ('37', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '修改质控条目', 'FUNC000013', '/qc/behospitalInfo/updCase', 'ALL', '用户-质控评分(科室)-修改质控条目', null);
+INSERT INTO `sys_permission` VALUES ('38', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取质控评分详情', 'FUNC000014', '/qc/behospitalInfo/getByBehospitalCode', 'ALL', '用户-质控评分(科室)-获取详情', '无需加密');
+INSERT INTO `sys_permission` VALUES ('39', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取用户科室下拉列表信息', 'FUNC000031', '/bas/dept/getListUser', 'ALL', '用户-质控评分(个人)-获取病历质控一览下用户科室下拉列表信息', '无需加密');
+INSERT INTO `sys_permission` VALUES ('40', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '质控评分', 'FUNC000017', '/qc/behospitalInfo/analyze', 'ALL', '用户-质控评分(个人)-评分', null);
+INSERT INTO `sys_permission` VALUES ('41', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '新增质控条目', 'FUNC000011', '/qc/behospitalInfo/addCase', 'ALL', '用户-质控评分(个人)-新增质控条目', null);
+INSERT INTO `sys_permission` VALUES ('42', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '删除质控条目', 'FUNC000012', '/qc/behospitalInfo/delCase', 'ALL', '用户-质控评分(个人)-删除质控条目', null);
+INSERT INTO `sys_permission` VALUES ('43', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '修改质控条目', 'FUNC000013', '/qc/behospitalInfo/updCase', 'ALL', '用户-质控评分(个人)-修改质控条目', null);
+INSERT INTO `sys_permission` VALUES ('44', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取质控评分详情', 'FUNC000014', '/qc/behospitalInfo/getByBehospitalCode', 'ALL', '用户-质控评分(个人)-获取详情', '无需加密');
+INSERT INTO `sys_permission` VALUES ('45', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '平均住院天数', 'FUNC000045', '/console/getAverageDayNum', 'ALL', '控制台-平均住院天数', null);
+INSERT INTO `sys_permission` VALUES ('46', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '平均住院费用', 'FUNC000046', '/console/getAverageFee', 'ALL', '控制台-平均住院费用', null);
+INSERT INTO `sys_permission` VALUES ('47', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '质控平均分按科室统计', 'FUNC000047', '/console/getAverageScore', 'ALL', '控制台-质控平均分按科室统计', null);
+INSERT INTO `sys_permission` VALUES ('48', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各科室甲级病历占比', 'FUNC000048', '/console/getLevelResultDept', 'ALL', '控制台-各科室甲级病历占比', null);
+INSERT INTO `sys_permission` VALUES ('49', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '出院人数统计', 'FUNC000049', '/console/leaveHosCount', 'ALL', '控制台-出院人数统计', null);
+INSERT INTO `sys_permission` VALUES ('50', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '质控病历统计', 'FUNC000050', '/console/mrCount', 'ALL', '控制台-质控病历统计', null);
+INSERT INTO `sys_permission` VALUES ('51', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各模块缺陷占比排行', 'FUNC000051', '/console/entryCountGroupByCase', 'ALL', '控制台-各模块缺陷占比排行', null);
+INSERT INTO `sys_permission` VALUES ('52', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '条目缺陷占比', 'FUNC000052', '/console/entryCountGroupByEntry', 'ALL', '控制台-条目缺陷占比', null);
+INSERT INTO `sys_permission` VALUES ('53', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各科室缺陷占比', 'FUNC000053', '/console/entryByDept', 'ALL', '控制台-各科室缺陷占比', null);
+INSERT INTO `sys_permission` VALUES ('54', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '出院人数统计(科室)', 'FUNC000054', '/consoleByDept/leaveHosCountByDept', 'ALL', '控制台(科室)-出院人数统计(科室)', null);
+INSERT INTO `sys_permission` VALUES ('55', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '质控病历数统计(科室)', 'FUNC000055', '/consoleByDept/mrCountByDept', 'ALL', '控制台(科室)-质控病历数统计(科室)', null);
+INSERT INTO `sys_permission` VALUES ('56', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各模块缺陷占比排行(科室)', 'FUNC000056', '/consoleByDept/entryCountGroupByCaseAndDept', 'ALL', '控制台(科室)-各模块缺陷占比排行(科室)', null);
+INSERT INTO `sys_permission` VALUES ('57', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '条目缺陷占比(科室)', 'FUNC000057', '/consoleByDept/entryCountGroupByEntryAndDept', 'ALL', '控制台(科室)-条目缺陷占比(科室)', null);
+INSERT INTO `sys_permission` VALUES ('58', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '查询用户关联科室', 'FUNC000058', '/consoleByDept/getDept', 'ALL', '控制台(科室)-查询用户关联科室', null);
+INSERT INTO `sys_permission` VALUES ('59', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各模块缺陷占比_详情', 'FUNC000059', '/console/entryCountGroupByCasePage', 'ALL', '控制台-各模块缺陷占比_详情', null);
+INSERT INTO `sys_permission` VALUES ('60', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '条目缺陷占比_详情', 'FUNC000060', '/console/entryCountGroupByEntryPage', 'ALL', '控制台-条目缺陷占比_详情', null);
+INSERT INTO `sys_permission` VALUES ('61', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '查询异常数据监控信息', 'FUNC000061', '/qc/abnormal/getQcAnnormal', 'ALL', '异常数据监控-查询异常数据监控信息', null);
+INSERT INTO `sys_permission` VALUES ('62', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '更新异常数据监控信息', 'FUNC000062', '/qc/abnormal/saveQcAnnormal', 'ALL', '异常数据监控-异常数据监控-查询异常数据监控信息', null);
+INSERT INTO `sys_permission` VALUES ('63', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '删除异常数据监控信息', 'FUNC000063', '/qc/abnormal/delQcAnnormal', 'ALL', '异常数据监控-异常数据监控-删除异常数据监控信息', null);
+INSERT INTO `sys_permission` VALUES ('64', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '科室平均住院天数_详情', 'FUNC000064', '/console/getAverageDayNumPage', 'ALL', '控制台-科室平均住院天数_详情', null);
+INSERT INTO `sys_permission` VALUES ('65', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '科室平均住院花费_详情', 'FUNC000065', '/console/getAverageFeePage', 'ALL', '控制台-科室平均住院花费_详情', null);
+INSERT INTO `sys_permission` VALUES ('66', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各科室质控平均分_详情', 'FUNC000066', '/console/getAverageScoreByDeptPage', 'ALL', '控制台-各科室质控平均分_详情', null);
+INSERT INTO `sys_permission` VALUES ('67', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各科室缺陷占比-缺陷详情', 'FUNC000067', '/console/resultStatisticsByDeptPage', 'ALL', '控制台-各科室缺陷占比-缺陷详情', null);
+INSERT INTO `sys_permission` VALUES ('68', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各科室甲级病历占比_详情', 'FUNC000068', '/console/levelPercentGroupByDeptPage', 'ALL', '控制台-各科室甲级病历占比_详情', null);
+INSERT INTO `sys_permission` VALUES ('69', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各模块缺陷占比_详情', 'FUNC000069', '/consoleByDept/entryCountGroupByCaseAndDeptPage', 'ALL', '控制台(科室)-各模块缺陷占比_详情', null);
+INSERT INTO `sys_permission` VALUES ('70', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '条目缺陷占比_详情', 'FUNC000070', '/consoleByDept/entryCountGroupByEntryAndDeptPage', 'ALL', '控制台(科室)-条目缺陷占比_详情', null);
+INSERT INTO `sys_permission` VALUES ('71', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各科室缺陷占比(组合)', 'FUNC000071', '/console/levelStatistics', 'ALL', '控制台-各科室缺陷占比(组合)', null);
+INSERT INTO `sys_permission` VALUES ('72', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '病案首页合格率占比', 'FUNC000072', '/console/homePageLevelStatistics', 'ALL', '控制台-病案首页合格率占比', null);
+INSERT INTO `sys_permission` VALUES ('73', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各科室缺陷占比', 'FUNC000073', '/consoleByDept/levelStatisticsByDept', 'ALL', '控制台(科室)-各科室缺陷占比(科室)', null);
+INSERT INTO `sys_permission` VALUES ('74', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '病案首页合格率占比', 'FUNC000074', '/consoleByDept/homePageLevelStatisticsByDept', 'ALL', '控制台(科室)-病案首页合格率占比(科室)', null);
+INSERT INTO `sys_permission` VALUES ('75', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '病案首页合格率占比(首页)', 'FUNC000075', '/console/homePageLevelLimit', 'ALL', '控制台-病案首页合格率占比(首页)', null);
+INSERT INTO `sys_permission` VALUES ('76', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '病案首页合格率占比(首页)', 'FUNC000076', '/consoleByDept/homePageLevelByDeptLimit', 'ALL', '控制台(科室)-病案首页合格率占比(首页)', null);
+INSERT INTO `sys_permission` VALUES ('77', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '科室缺陷占比-缺陷明细', 'FUNC000077', '/consoleByDept/resultStatisticsByDeptAndDoctorPage', 'ALL', '控制台(科室)-科室缺陷占比-缺陷明细', null);
+INSERT INTO `sys_permission` VALUES ('78', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '分页列表', 'FUNC000078', '/qc/qcType/page', 'ALL', '用户-质控类型维护-分页列表', null);
+INSERT INTO `sys_permission` VALUES ('79', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '新增或更新', 'FUNC000079', '/qc/qcType/saveOrUpdate', 'ALL', '用户-质控类型维护-新增或更新', null);
+INSERT INTO `sys_permission` VALUES ('80', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '新增时质控条目分组信息', 'FUNC000080', '/qc/qcType/getEntryByHospital', 'ALL', '用户-质控类型维护-新增时质控条目分组信息', null);
+INSERT INTO `sys_permission` VALUES ('81', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '质控条目检索', 'FUNC000081', '/qc/qcType/index', 'ALL', '用户-质控类型维护-质控条目检索', null);
+INSERT INTO `sys_permission` VALUES ('82', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '删除', 'FUNC000082', '/qc/qcType/delete', 'ALL', '用户-质控类型维护-删除', null);
+INSERT INTO `sys_permission` VALUES ('83', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '根据id返回内容', 'FUNC000083', '/qc/qcType/getById', 'ALL', '用户-质控类型维护-根据id返回内容', null);
+INSERT INTO `sys_permission` VALUES ('84', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取医院数据全部条目', 'FUNC000084', '/qc/modelHospital/getModelHospitalAll', 'ALL', '用户-质控类型维护-获取医院数据全部条目', null);
+INSERT INTO `sys_permission` VALUES ('85', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '根据id获取医院数据', 'FUNC000085', '/qc/modelHospital/getModelHospitalById', 'ALL', '用户-质控类型维护-根据id获取医院数据', null);
+INSERT INTO `sys_permission` VALUES ('86', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '添加和修改医院数据模块', 'FUNC000086', '/qc/modelHospital/saveAndupdataModel', 'ALL', '用户-质控类型维护-添加和修改医院数据模块', null);
+INSERT INTO `sys_permission` VALUES ('87', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '删除医院数据模块', 'FUNC000087', '/qc/modelHospital/clearModelHospital', 'ALL', '用户-质控类型维护-删除医院数据模块', null);
+INSERT INTO `sys_permission` VALUES ('88', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '获取医院全部模块', 'FUNC0000888', '/qc/mode/getModes', 'ALL', '用户-质控类型维护-获取医院全部模块', null);
+INSERT INTO `sys_permission` VALUES ('89', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '条目缺陷占比(内页)', 'FUNC000089', '/console/entryGroupByEntryInnerPage', 'ALL', '控制台-条目缺陷占比(内页)', null);
+INSERT INTO `sys_permission` VALUES ('90', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '条目缺陷占比-科室(内页)', 'FUNC000090', '/consoleByDept/entryGroupByEntryAndDeptInnerPage', 'ALL', '控制台(科室)-条目缺陷占比-科室(内页)', null);
+INSERT INTO `sys_permission` VALUES ('91', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各科室质控平均分(首页)-根据内外科系统统计', 'FUNC000091', '/console/getAverageScoreByDeptClass', 'ALL', '控制台-各科室质控平均分(首页)-根据内外科系统统计', null);
+INSERT INTO `sys_permission` VALUES ('92', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '各科室缺陷占比(内页)-根据内外科系统统计', 'FUNC000092', '/console/levelStatisticsByDeptClass', 'ALL', '控制台-各科室缺陷占比(内页)-根据内外科系统统计', null);
+INSERT INTO `sys_permission` VALUES ('93', 'Y', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '根据id查询数据模块信息', 'FUNC000093', '/qc/abnormal/getQcAnnormalMode', 'ALL', '异常数据监控-异常数据监控-根据id查询数据模块信息', null);
+INSERT INTO `sys_permission` VALUES ('94', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '条目缺陷占比质控详情页(全院)', 'FUNC000094', '/console/qcResultShortPage', 'ALL', '数据报表明细-条目缺陷占比-条目缺陷占比质控详情页(全院)', null);
+INSERT INTO `sys_permission` VALUES ('95', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '条目缺陷占比质控详情页(科室)', 'FUNC000095', '/consoleByDept/qcResultShortByDeptPage', 'ALL', '数据报表明细(科室)-条目缺陷占比-条目缺陷占比质控详情页(科室)', null);
+INSERT INTO `sys_permission` VALUES ('96', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '质控评分', 'FUNC000017', '/qc/behospitalInfo/analyze', 'ALL', '用户-医疗组-评分', null);
+INSERT INTO `sys_permission` VALUES ('97', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '新增质控条目', 'FUNC000011', '/qc/behospitalInfo/addCase', 'ALL', '用户-医疗组-新增质控条目', null);
+INSERT INTO `sys_permission` VALUES ('98', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '删除质控条目', 'FUNC000012', '/qc/behospitalInfo/delCase', 'ALL', '用户-医疗组-删除质控条目', null);
+INSERT INTO `sys_permission` VALUES ('99', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '修改质控条目', 'FUNC000013', '/qc/behospitalInfo/updCase', 'ALL', '用户-医疗组-修改质控条目', null);
+INSERT INTO `sys_permission` VALUES ('100', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '关键条目缺陷占比', 'FUNC000100', '/console/entryStatistics', 'ALL', '数据报表明细-关键条目缺陷占比', null);
+INSERT INTO `sys_permission` VALUES ('101', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '核查数据接口', 'FUNC000014', '/qc/medCheckInfo/addMedCheckInfo', 'ALL', '用户-核查数据接口', null);
+INSERT INTO `sys_permission` VALUES ('102', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '出院人数统计', 'FUNC000102', '/console/leaveHosMRPage', 'ALL', '数据报表明细-出院人数统计', null);
+INSERT INTO `sys_permission` VALUES ('103', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '质控核查统计', 'FUNC000103', '/console/qcCheckStatistics', 'ALL', '数据表白明细-质控核查统计', null);
+INSERT INTO `sys_permission` VALUES ('104', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '核查数据接口(个人)', 'FUNC000014', '/qc/medCheckInfo/addMedCheckInfo', 'ALL', '用户-核查数据接口', null);
+INSERT INTO `sys_permission` VALUES ('105', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '核查数据接口(科室)', 'FUNC000014', '/qc/medCheckInfo/addMedCheckInfo', 'ALL', '用户-核查数据接口', null);
+INSERT INTO `sys_permission` VALUES ('106', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '核查数据接口(医疗组)', 'FUNC000014', '/qc/medCheckInfo/addMedCheckInfo', 'ALL', '用户-核查数据接口', null);
+-- ----------------------------
+
+INSERT INTO `sys_role_menu`( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`)  VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '35', '用户-质控科-出院人数统计');
+INSERT INTO `sys_role_menu`( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`)  VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '36', '用户-质控科-质控核查统计');
+
+
+-- ----------------------------
+
+INSERT INTO `sys_role_permission` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`)  VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '101', null);
+INSERT INTO `sys_role_permission` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '101', null);
+INSERT INTO `sys_role_permission` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`)  VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '102', '数据报表明细-出院人数统计');
+INSERT INTO `sys_role_permission` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '103', '数据报表明细-质控核查统计');
+
+INSERT INTO `sys_role_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '104', NULL);
+INSERT INTO `sys_role_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '104', NULL);
+INSERT INTO `sys_role_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '105', NULL);
+INSERT INTO `sys_role_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '105', NULL);
+INSERT INTO `sys_role_permission` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', '106', NULL);
+INSERT INTO `sys_role_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '106', NULL);

+ 18 - 0
doc/014.20200708v1.3.6.5/qc_initv1.3.6.5.sql

@@ -0,0 +1,18 @@
+use `qc`;
+
+INSERT INTO `qc`.`sys_hospital_set` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `name`, `code`, `value`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '评分接口地址(本地)', 'active_profiles_local', 'http://192.168.2.232:6007', '评分接口地址(本地)-长兴');
+INSERT INTO `qc`.`sys_hospital_set` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `name`, `code`, `value`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '评分接口地址(本地)', 'active_profiles_local', 'http://192.168.2.232:6008', '评分接口地址(本地)-邵逸夫');
+INSERT INTO `qc`.`sys_hospital_set` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `name`, `code`, `value`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '评分接口地址(本地)', 'active_profiles_local', 'http://192.168.2.232:6009', '评分接口地址(本地)-台州');
+INSERT INTO `qc`.`sys_hospital_set` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `name`, `code`, `value`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '评分接口地址(开发)', 'active_profiles_dev', 'http://192.168.2.232:6007', '评分接口地址(开发)-长兴');
+INSERT INTO `qc`.`sys_hospital_set` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `name`, `code`, `value`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '评分接口地址(开发)', 'active_profiles_dev', 'http://192.168.2.232:6008', '评分接口地址(开发)-邵逸夫');
+INSERT INTO `qc`.`sys_hospital_set` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `name`, `code`, `value`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '评分接口地址(开发)', 'active_profiles_dev', 'http://192.168.2.232:6009', '评分接口地址(开发)-台州');
+INSERT INTO `qc`.`sys_hospital_set` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `name`, `code`, `value`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '评分接口地址(测试)', 'active_profiles_test', 'http://192.168.2.241:6007', '评分接口地址(测试)-长兴');
+INSERT INTO `qc`.`sys_hospital_set` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `name`, `code`, `value`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '评分接口地址(测试)', 'active_profiles_test', 'http://192.168.2.241:6008', '评分接口地址(测试)-邵逸夫');
+INSERT INTO `qc`.`sys_hospital_set` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `name`, `code`, `value`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '评分接口地址(测试)', 'active_profiles_test', 'http://192.168.2.241:6009', '评分接口地址(测试)-台州');
+INSERT INTO `qc`.`sys_hospital_set` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `name`, `code`, `value`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '评分接口地址(医学)', 'active_profiles_pre', 'http://192.168.2.186:6007', '评分接口地址(医学)-长兴');
+INSERT INTO `qc`.`sys_hospital_set` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `name`, `code`, `value`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '评分接口地址(医学)', 'active_profiles_pre', 'http://192.168.2.186:6008', '评分接口地址(医学)-邵逸夫');
+INSERT INTO `qc`.`sys_hospital_set` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `name`, `code`, `value`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '评分接口地址(医学)', 'active_profiles_pre', 'http://192.168.2.186:6009', '评分接口地址(医学)-台州');
+INSERT INTO `qc`.`sys_hospital_set` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `name`, `code`, `value`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '1', '评分接口地址(参考)', 'active_profiles_pro', 'http://192.168.2.123:6007', '评分接口地址(参考)-长兴');
+INSERT INTO `qc`.`sys_hospital_set` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `name`, `code`, `value`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', '评分接口地址(参考)', 'active_profiles_pro', 'http://192.168.2.123:6008', '评分接口地址(参考)-邵逸夫');
+INSERT INTO `qc`.`sys_hospital_set` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_id`, `name`, `code`, `value`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '3', '评分接口地址(参考)', 'active_profiles_pro', 'http://192.168.2.123:6009', '评分接口地址(参考)-台州');
+

+ 9 - 0
doc/015.20200706v1.3.7.1/qc_initv1.3.7.1.sql

@@ -0,0 +1,9 @@
+use `qc`;
+
+ALTER TABLE `qc_cases_entry` ADD `drgs` tinyint(4) DEFAULT '2' COMMENT '是否控费(1:是,2:否)' AFTER `name`;
+ALTER TABLE `qc_cases_entry` ADD `type` tinyint(4) DEFAULT '1' COMMENT '质控形式(1:形式质控,2:内涵质控)' AFTER `drgs`;
+
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '17', '是', '1', '1', '1', '是否控费');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '17', '否', '2', '1', '2', '是否控费');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '18', '形式质控', '1', '1', '2', '质控形式');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '18', '内涵质控', '2', '1', '1', '质控形式');

+ 15 - 0
doc/015.20200714病案首页添加14个字段/qc_init_20200714.sql

@@ -0,0 +1,15 @@
+use `qc`;
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isPhysicalRestraint', '住院期间身体约束', '2', '0', '病案首页');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'tbiBehospitalBeforeTime', '入院前颅脑损伤患者昏迷时间', '2', '0', '病案首页');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'tbiBehospitalAfterTime', '入院后颅脑损伤患者昏迷时间', '2', '0', '病案首页');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isFallBed', '住院期间是否发生跌倒或坠床', '2', '0', '病案首页');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isNosocomialInfection', '医院感染', '2', '0', '病案首页');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isIntoIcu', '入住ICU情况', '2', '0', '病案首页');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isComplications', '并发症情况', '2', '0', '病案首页');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isPressureSore', '是否发生压疮', '2', '0', '病案首页');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isBehospitalPressureSore', '是否住院期间发生压疮', '2', '0', '病案首页');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isUnplannedReoperation', '非计划再次手术', '2', '0', '病案首页');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'treatmentResults', '治疗结果', '2', '0', '病案首页');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'complicationsResults', '并发症', '2', '0', '病案首页');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'infectionSite', '感染部位', '2', '0', '病案首页');
+INSERT INTO `qc`.`sys_dictionary_info` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `group_type`, `name`, `val`, `return_type`, `order_no`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '2', 'isBeInDanger', '住院期间有无告病危', '2', '0', '病案首页');

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
doc/016.20200715v1.3.7.2/qc_initv.1.3.7.2.sql


+ 3 - 0
doc/017.20200717v1.3.7.3/qc_initv1.3.7.3.sql

@@ -0,0 +1,3 @@
+use `qc`;
+
+UPDATE `qc`.`qc_mode` SET `id`='8', `name`='医嘱信息', `order_no`='255', `parent_id`='37', `is_deleted`='N', `gmt_create`='1970-01-01 12:00:00', `gmt_modified`='1970-01-01 12:00:00', `creator`='0', `modifier`='0', `remark`=NULL WHERE (`id`='8');

+ 110 - 0
src/main/java/com/diagbot/aggregate/LeaveHosStatisticsAggregate.java

@@ -0,0 +1,110 @@
+package com.diagbot.aggregate;
+
+import com.diagbot.facade.BehospitalInfoFacade;
+import com.diagbot.vo.FilterVO;
+import io.github.lvyahui8.spring.annotation.DataConsumer;
+import io.github.lvyahui8.spring.annotation.DataProvider;
+import io.github.lvyahui8.spring.annotation.InvokeParameter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/15 16:03
+ */
+@Component
+public class LeaveHosStatisticsAggregate {
+    @Autowired
+    private BehospitalInfoFacade behospitalInfoFacade;
+
+    @DataProvider("setAllLeaveHos")
+    public Map<String, Object> setAllLeaveHos(
+            @InvokeParameter("filterVO") FilterVO filterVO,
+            @DataConsumer("getTotleCount") Integer totleNum,
+            @DataConsumer("getDeathCount") Integer deathNum,
+            @DataConsumer("getNewBornCount") Integer newBornNum,
+            @DataConsumer("getOperationCount") Integer operationNum,
+            @DataConsumer("getNonAdviceCount") Integer nonAdviceNum,
+            @DataConsumer("get31DaysBehospitalCount") Integer reBehospitalNum) {
+
+        Map<String, Object> retMap = new LinkedHashMap<>();
+        retMap.put("总人数", totleNum);
+        retMap.put("死亡人数", deathNum);
+        retMap.put("新生儿人数", newBornNum);
+        retMap.put("手术病人数", operationNum);
+        retMap.put("非医嘱离院病人数", nonAdviceNum);
+        retMap.put("31日再入院病人数", reBehospitalNum);
+        return retMap;
+
+    }
+
+    /**
+     * 总人数
+     *
+     * @param filterVO
+     * @return
+     */
+    @DataProvider("getTotleCount")
+    public Integer getTotleCount(@InvokeParameter("filterVO") FilterVO filterVO) {
+        return behospitalInfoFacade.leaveHosCount(filterVO);
+    }
+
+    /**
+     * 死亡人数
+     *
+     * @param filterVO
+     * @return
+     */
+    @DataProvider("getDeathCount")
+    public Integer getDeathCount(@InvokeParameter("filterVO") FilterVO filterVO) {
+        return behospitalInfoFacade.deathCount(filterVO);
+    }
+
+    /**
+     * 新生儿患者人数
+     *
+     * @param filterVO
+     * @return
+     */
+    @DataProvider("getNewBornCount")
+    public Integer getNewBornCount(@InvokeParameter("filterVO") FilterVO filterVO) {
+        return behospitalInfoFacade.newBornCount(filterVO);
+    }
+
+    /**
+     * 手术人数
+     *
+     * @param filterVO
+     * @return
+     */
+    @DataProvider("getOperationCount")
+    public Integer getOperationCount(@InvokeParameter("filterVO") FilterVO filterVO) {
+        return behospitalInfoFacade.operationCount(filterVO);
+    }
+
+    /**
+     * 非医嘱离院
+     *
+     * @param filterVO
+     * @return
+     */
+    @DataProvider("getNonAdviceCount")
+    public Integer getNonAdviceCount(@InvokeParameter("filterVO") FilterVO filterVO) {
+        return behospitalInfoFacade.nonAdviceCount(filterVO);
+    }
+
+    /**
+     * 31天重复入院
+     *
+     * @param filterVO
+     * @return
+     */
+    @DataProvider("get31DaysBehospitalCount")
+    public Integer get31DaysBehospitalCount(@InvokeParameter("filterVO") FilterVO filterVO) {
+        return behospitalInfoFacade.get31DaysBehospitalCount(filterVO);
+    }
+}

+ 6 - 0
src/main/java/com/diagbot/aggregate/MrStatisticsAggregate.java

@@ -88,14 +88,20 @@ public class MrStatisticsAggregate {
         retMap.put("死亡人数", 0);
         retMap.put("新生儿人数", 0);
         retMap.put("手术病人数", 0);
+        retMap.put("非医嘱离院病人数", 0);
+        retMap.put("31日再入院病人数", 0);
         Integer totleNum = behospitalInfoFacade.leaveHosCount(filterVO);
         Integer deathNum = behospitalInfoFacade.deathCount(filterVO);
         Integer newBornNum = behospitalInfoFacade.newBornCount(filterVO);
         Integer operationNum = behospitalInfoFacade.operationCount(filterVO);
+        Integer nonAdviceNum = behospitalInfoFacade.nonAdviceCount(filterVO);
+        Integer reBehospitalNum = behospitalInfoFacade.get31DaysBehospitalCount(filterVO);
         retMap.put("总人数", totleNum);
         retMap.put("死亡人数", deathNum);
         retMap.put("新生儿人数", newBornNum);
         retMap.put("手术病人数", operationNum);
+        retMap.put("非医嘱离院病人数", nonAdviceNum);
+        retMap.put("31日再入院病人数", reBehospitalNum);
         return retMap;
     }
 

+ 4 - 2
src/main/java/com/diagbot/client/QcServiceClient.java

@@ -7,17 +7,19 @@ import com.diagbot.vo.QueryVo;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 
+import java.net.URI;
+
 
 /**
  * @description: 病历质控远程调用
  * @author: zhoutg
  * @date: 2020/4/13 18:28
  */
-@FeignClient(name = "qc", url = "${qc.address}",fallback = QcServiceHystrix.class)
+@FeignClient(name = "qc", url = "url-placehokder", fallback = QcServiceHystrix.class)
 public interface QcServiceClient {
 
     @PostMapping(value = "/analyse/rec")
-    Response<OutputInfo> extract(QueryVo queryVo);
+    Response<OutputInfo> extract(URI uri, QueryVo queryVo);
 
 }
 

+ 3 - 1
src/main/java/com/diagbot/client/hystrix/QcServiceHystrix.java

@@ -8,6 +8,8 @@ import com.diagbot.vo.QueryVo;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
+import java.net.URI;
+
 /**
  * @description: 病历质控远程调用熔断器
  * @author: zhoutg
@@ -18,7 +20,7 @@ import org.springframework.stereotype.Component;
 public class QcServiceHystrix implements QcServiceClient {
 
     @Override
-    public Response<OutputInfo> extract(QueryVo queryVo) {
+    public Response<OutputInfo> extract(URI uri, QueryVo queryVo) {
         log.error("【hystrix】调用{}异常", "extract");
         return null;
     }

+ 9 - 18
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -45,21 +45,6 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/oauth/token").permitAll()
                 .antMatchers("/oauth/check_token").permitAll()
                 .antMatchers("/cache/clear").permitAll()
-                .antMatchers("/qc/mode/getMenu").permitAll()
-                .antMatchers("/qc/data/sendDoctorInfos").permitAll()
-                .antMatchers("/qc/data/sendDeptInfos").permitAll()
-                .antMatchers("/qc/data/sendRecordTypes").permitAll()
-                .antMatchers("/qc/data/sendMrRecordIng").permitAll()
-                .antMatchers("/qc/data/sendMrContent").permitAll()
-                .antMatchers("/qc/data/sendMrRecord").permitAll()
-                .antMatchers("/qc/data/sendPatientInfo").permitAll()
-                .antMatchers("/qc/data/sendDoctorAdvice").permitAll()
-                .antMatchers("/qc/data/sendHomePageIng").permitAll()
-                .antMatchers("/qc/data/sendHomePage").permitAll()
-                .antMatchers("/qc/data/sendHomeDiagnose").permitAll()
-                .antMatchers("/qc/data/sendHomeOperation").permitAll()
-                .antMatchers("/qc/data/sendCrisis").permitAll()
-                .antMatchers("/qc/data/deleteFlag").permitAll()
                 .antMatchers("/qc/behospitalInfo/execule").permitAll()
                 .antMatchers("/qc/behospitalInfo/analyze_rpc").permitAll()
                 .antMatchers("/qc/behospitalInfo/analyze_api").permitAll()
@@ -116,6 +101,10 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/console/qcResultShortPage").permitAll()
                 .antMatchers("/console/resultStatistics").permitAll()
                 .antMatchers("/console/resultStatisticsByDeptPage").permitAll()
+                .antMatchers("/console/homePageMRCount").permitAll()
+                .antMatchers("/console/qcCheckStatistics").permitAll()
+                .antMatchers("/console/unModifyMRStatistics").permitAll()
+                .antMatchers("/console/unModifyMRPage").permitAll()
                 .antMatchers("/consoleByDept/entryCountGroupByCaseAndDept").permitAll()
                 .antMatchers("/consoleByDept/entryCountGroupByCaseAndDeptPage").permitAll()
                 .antMatchers("/consoleByDept/entryCountGroupByEntryAndDept").permitAll()
@@ -140,6 +129,10 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/console/export/entryCountGroupByCaseExport").permitAll()
                 .antMatchers("/console/export/entryStatisticsExport").permitAll()
                 .antMatchers("/console/export/qcResultShortPageExport").permitAll()
+                .antMatchers("/console/export/leaveHosMrPageExport").permitAll()
+                .antMatchers("/console/export/qcCheckStatisticsExport").permitAll()
+                .antMatchers("/console/export/unModifyMRPageExport").permitAll()
+                .antMatchers("/console/export/unModifyMRStatisticsExport").permitAll()
                 .antMatchers("/qc/data/sendDoctorInfos").permitAll()
                 .antMatchers("/qc/data/sendDeptInfos").permitAll()
                 .antMatchers("/qc/data/sendRecordTypes").permitAll()
@@ -153,9 +146,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/data/sendHomeDiagnose").permitAll()
                 .antMatchers("/qc/data/sendHomeOperation").permitAll()
                 .antMatchers("/qc/data/sendCrisis").permitAll()
-                .antMatchers("/qc/data/deleteFlag").permitAll()
-                .antMatchers("/qc/data/sendPacsResults").permitAll()
-                .antMatchers("/qc/data/sendLisResults").permitAll()
+                .antMatchers("/qc/doctoradvice/getPage").permitAll()
                 .antMatchers("/**").authenticated();
         //                .antMatchers("/**").permitAll();
     }

+ 9 - 3
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -144,6 +144,10 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/console/qcResultShortPage", request)
                 || matchers("/console/resultStatistics", request)
                 || matchers("/console/resultStatisticsByDeptPage", request)
+                || matchers("/console/homePageMRCount", request)
+                || matchers("/console/qcCheckStatistics", request)
+                || matchers("/console/unModifyMRStatistics", request)
+                || matchers("/console/unModifyMRPage", request)
                 || matchers("/consoleByDept/entryCountGroupByCaseAndDept", request)
                 || matchers("/consoleByDept/entryCountGroupByCaseAndDeptPage", request)
                 || matchers("/consoleByDept/entryCountGroupByEntryAndDept", request)
@@ -168,6 +172,10 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/console/export/entryCountGroupByCaseExport", request)
                 || matchers("/console/export/entryStatisticsExport", request)
                 || matchers("/console/export/qcResultShortPageExport", request)
+                || matchers("/console/export/leaveHosMrPageExport", request)
+                || matchers("/console/export/qcCheckStatisticsExport", request)
+                || matchers("/console/export/unModifyMRPageExport", request)
+                || matchers("/console/export/unModifyMRStatisticsExport", request)
                 || matchers("/qc/data/sendDoctorInfos", request)
                 || matchers("/qc/data/sendDeptInfos", request)
                 || matchers("/qc/data/sendRecordTypes", request)
@@ -181,9 +189,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/data/sendHomeDiagnose", request)
                 || matchers("/qc/data/sendHomeOperation", request)
                 || matchers("/qc/data/sendCrisis", request)
-                || matchers("/qc/data/deleteFlag", request)
-                || matchers("/qc/data/sendLisResults", request)
-                || matchers("/qc/data/sendPacsResults", request)
+                || matchers("/qc/doctoradvice/getPage", request)
                 || matchers("/", request)) {
             return true;
         }

+ 2 - 0
src/main/java/com/diagbot/dto/BehospitalInfoDTO.java

@@ -117,4 +117,6 @@ public class BehospitalInfoDTO implements Serializable {
      */
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date placefileDate;
+
+    private Integer checkStatus;
 }

+ 20 - 0
src/main/java/com/diagbot/dto/ColumnDTO.java

@@ -0,0 +1,20 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/13 17:37
+ */
+@Getter
+@Setter
+public class ColumnDTO {
+    private Long id;
+    private String columnName;
+    private String fieldName;
+    private Integer orderNo;
+    private String fieldType;
+    private Integer isShow;
+}

+ 140 - 0
src/main/java/com/diagbot/dto/DoctorAdviceDTO.java

@@ -0,0 +1,140 @@
+package com.diagbot.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/7/13 15:00
+ */
+@Getter
+@Setter
+public class DoctorAdviceDTO {
+    private String doctorAdviceId;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人ID
+     */
+    private String behospitalCode;
+
+//    /**
+//     * 医生开单判别
+//     */
+//    private String orderDoctorName;
+//
+//    /**
+//     * 医嘱频率判别
+//     */
+//    private String frequency;
+//
+//    /**
+//     * 父类医嘱ID
+//     */
+//    private String parentTypeId;
+
+    /**
+     * 医嘱类型判别(嘱托长嘱、长期医嘱等)
+     */
+    private String doctorAdviceType;
+
+//    /**
+//     * 一次使用数量
+//     */
+//    private String usageNum;
+//
+//    /**
+//     * 一次用量单位
+//     */
+//    private String usageUnit;
+//
+//    /**
+//     * 医嘱单次剂量
+//     */
+//    private String dose;
+//
+//    /**
+//     * 单次剂量单位
+//     */
+//    private String doseUnit;
+//
+//    /**
+//     * 给药方式
+//     */
+//    private String medModeType;
+//
+//    /**
+//     * 医嘱频率
+//     */
+//    private String daFrequency;
+//
+//    /**
+//     * 医嘱处理类型
+//     */
+//    private String daDealType;
+
+    /**
+     * 医嘱开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date daStartDate;
+
+    /**
+     * 医嘱项目名称
+     */
+    private String daItemName;
+
+//    /**
+//     * 医嘱状态判别
+//     */
+//    private String daStatus;
+
+    /**
+     * 医嘱结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date daStopDate;
+
+//    /**
+//     * 医嘱同组序号
+//     */
+//    private String daGroupNo;
+
+    /**
+     * 医嘱处方类型(检验、描述医嘱、膳食、西药、护理等)
+     */
+    private String daPrescriptionType;
+
+    /**
+     * 药品类型(0.普药 1.抗生素 2.激素)
+     */
+    private String medicineType;
+
+//    /**
+//     * 医嘱领药类型
+//     */
+//    private String daMedType;
+//
+//    /**
+//     * 医生嘱托
+//     */
+//    private String doctorNotice;
+//
+//    /**
+//     * 开单医生ID
+//     */
+//    private String doctorId;
+
+    /**
+     * 开单医生姓名
+     */
+    private String doctorName;
+}

+ 88 - 0
src/main/java/com/diagbot/dto/HomePageImproveDTO.java

@@ -0,0 +1,88 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/6 20:03
+ */
+@Getter
+@Setter
+public class HomePageImproveDTO {
+    /**
+     * 科室编码
+     */
+    private String deptId;
+    /**
+     * 科室
+     */
+    @Excel(name = "科室名称", width = 30, orderNum = "1")
+    private String deptName;
+    /**
+     * 质控总数(总病历数)
+     */
+    @Excel(name = "质控总数", width = 10, orderNum = "2")
+    private Integer mrNum = 0;
+    /**
+     * 核查数量
+     */
+    @Excel(name = "核查数量", width = 10, orderNum = "3")
+    private Integer checkedNum = 0;
+    /**
+     * 核查占比
+     */
+    private Double checkedPercent = 0d;
+    /**
+     * 核查占比(百分比)
+     */
+    private String checkedPercentStr = "0.00%";
+    /**
+     * 有病案首页的病历数
+     */
+    private Integer homePageMRNum = 0;
+    /**
+     * 已改善数量
+     */
+    @Excel(name = "已改善数量", width = 10, orderNum = "4")
+    private Integer improveNum = 0;
+    /**
+     * 改善率
+     */
+    private Double improvePercent = 0d;
+    /**
+     * 改善率(百分比)
+     */
+    @Excel(name = "改善率", width = 10, orderNum = "5")
+    private String improvePercentStr = "0.00%";
+    /**
+     * 改善至合格数量
+     */
+    @Excel(name = "改善至合格数量", width = 15, orderNum = "6")
+    private Integer improveToPassNum = 0;
+    /**
+     * 改善至合格率
+     */
+    private Double improveToPassPercent = 0d;
+    /**
+     * 改善至合格率(百分比)
+     */
+    @Excel(name = "改善至合格率", width = 15, orderNum = "7")
+    private String improveToPassPercentStr = "0.00%";
+    /**
+     * 改善至满分数量
+     */
+    @Excel(name = "改善至满分数量", width = 15, orderNum = "8")
+    private Integer improveToFullNum = 0;
+    /**
+     * 改善至满分率
+     */
+    private Double improveToFullPercent = 0d;
+    /**
+     * 改善至满分率(百分比)
+     */
+    @Excel(name = "改善至满分率", width = 15, orderNum = "9")
+    private String improveToFullPercentStr = "0.00%";
+}

+ 4 - 0
src/main/java/com/diagbot/dto/MsgDTO.java

@@ -22,6 +22,10 @@ public class MsgDTO {
     private BigDecimal score;
     //提示信息
     private String msg;
+    // 控费标识(1:是控费条目,2:不是控费条目)
+    private Integer drgs;
+    // 质控形式(1:形式质控,2:内涵质控)
+    private Integer type;
     //提示信息
     private String code;
     //提示信息

+ 17 - 14
src/main/java/com/diagbot/dto/QcResultShortDTO.java

@@ -32,29 +32,31 @@ public class QcResultShortDTO {
     private Double scoreRes;
     @Excel(name = "病人住院序号", width = 40, orderNum = "3")
     private String behospitalCode;
-    @Excel(name = "病案号", width = 30, orderNum = "4")
+    //@Excel(name = "核查状态", width = 20, orderNum = "4",replace = { "已核查_1", "未核查_0", "_null" })
+    private Integer checkStatus;
+    @Excel(name = "病案号", width = 30, orderNum = "5")
     private String fileCode;
-    @Excel(name = "病人姓名", width = 30, orderNum = "5")
+    @Excel(name = "病人姓名", width = 30, orderNum = "6")
     private String name;
-    @Excel(name = "性别", width = 20, orderNum = "6")
+    @Excel(name = "性别", width = 20, orderNum = "7")
     private String sex;
-    @Excel(name = "年龄", width = 20, orderNum = "7")
+    @Excel(name = "年龄", width = 20, orderNum = "8")
     private String age;
-    @Excel(name = "床号", width = 30, orderNum = "8")
+    @Excel(name = "床号", width = 30, orderNum = "9")
     private String bedCode;
-    @Excel(name = "入院日期", format = "yyyy-MM-dd", width = 30, orderNum = "9")
+    @Excel(name = "入院日期", format = "yyyy-MM-dd", width = 30, orderNum = "10")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date behospitalDate;
-    @Excel(name = "出院日期", format = "yyyy-MM-dd", width = 30, orderNum = "10")
+    @Excel(name = "出院日期", format = "yyyy-MM-dd", width = 30, orderNum = "11")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date leaveHospitalDate;
-    @Excel(name = "归档日期", format = "yyyy-MM-dd", width = 30, orderNum = "11")
+    @Excel(name = "归档日期", format = "yyyy-MM-dd", width = 30, orderNum = "12")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date placefileDate;
-    @Excel(name = "主诊断", width = 60, orderNum = "12")
+    @Excel(name = "主诊断", width = 60, orderNum = "13")
     private String diagnose;
     private String behDoctorId;
-    @Excel(name = "住院医生", width = 30, orderNum = "13")
+    @Excel(name = "住院医生", width = 30, orderNum = "14")
     private String behDoctorName;
     /**
      * 主治医生id
@@ -63,10 +65,10 @@ public class QcResultShortDTO {
     /**
      * 主治医生姓名
      */
-    @Excel(name = "主管医生", width = 30, orderNum = "14")
+    @Excel(name = "主管医生", width = 30, orderNum = "15")
     private String doctorName;
     private String directorDoctorId;
-    @Excel(name = "主任医生", width = 30, orderNum = "15")
+    @Excel(name = "主任医生", width = 30, orderNum = "16")
     private String directorDoctorName;
     /**
      * 科室编码
@@ -75,9 +77,9 @@ public class QcResultShortDTO {
     /**
      * 科室名称
      */
-    @Excel(name = "科室", width = 70, orderNum = "16")
+    @Excel(name = "科室", width = 70, orderNum = "17")
     private String behDeptName;
-    @Excel(name = "评分时间", format = "yyyy-MM-dd", width = 30, orderNum = "17")
+    @Excel(name = "评分时间", format = "yyyy-MM-dd", width = 30, orderNum = "18")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date gradeTime;
 
@@ -91,4 +93,5 @@ public class QcResultShortDTO {
      * 病区名称
      */
     private String wardName;
+
 }

+ 18 - 0
src/main/java/com/diagbot/dto/UnModifyMRDTO.java

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/14 10:19
+ */
+@Getter
+@Setter
+public class UnModifyMRDTO {
+    private List<ColumnDTO> columns;
+    private List<Object> data;
+}

+ 19 - 0
src/main/java/com/diagbot/dto/UnModifyMRDetailDTO.java

@@ -0,0 +1,19 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/13 16:57
+ */
+@Getter
+@Setter
+public class UnModifyMRDetailDTO {
+    private String deptId;
+    private String deptName;
+    private Long casesEntryId;
+    private String casesEntryName;
+    private Integer casesEntryNum;
+}

+ 70 - 0
src/main/java/com/diagbot/entity/HomePage.java

@@ -678,4 +678,74 @@ public class HomePage implements Serializable {
      */
     private String modifier;
 
+    /**
+     * 住院期间身体约束
+     */
+    private String isPhysicalRestraint;
+
+    /**
+     * 颅脑损伤患者昏迷时间(入院前)
+     */
+    private String tbiBehospitalBeforeTime;
+
+    /**
+     * 颅脑损伤患者昏迷时间(入院后)
+     */
+    private String tbiBehospitalAfterTime;
+
+    /**
+     * 住院期间是否发生跌倒或坠床
+     */
+    private String isFallBed;
+
+    /**
+     * 医院感染
+     */
+    private String isNosocomialInfection;
+
+    /**
+     * 入住ICU情况
+     */
+    private String isIntoIcu;
+
+    /**
+     * 并发症情况
+     */
+    private String isComplications;
+
+    /**
+     * 是否发生压疮
+     */
+    private String isPressureSore;
+
+    /**
+     * 是否住院期间发生压疮
+     */
+    private String isBehospitalPressureSore;
+
+    /**
+     * 非计划再次手术
+     */
+    private String isUnplannedReoperation;
+
+    /**
+     * 治疗结果
+     */
+    private String treatmentResults;
+
+    /**
+     * 并发症
+     */
+    private String complicationsResults;
+
+    /**
+     * 感染部位
+     */
+    private String infectionSite;
+
+    /**
+     * 住院期间有无告病危
+     */
+    private String isBeInDanger;
+
 }

+ 184 - 0
src/main/java/com/diagbot/entity/MedCheckInfo.java

@@ -0,0 +1,184 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 核查表
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-07-06
+ */
+public class MedCheckInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 核查人id
+     */
+    private Long checkId;
+
+    /**
+     * 核查人
+     */
+    private String checkName;
+
+    /**
+     * 核查时间
+     */
+    private Date checkTime;
+
+    /**
+     * 核查状态(0未核查,1已核查)
+     */
+    private Integer status;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public String getBehospitalCode() {
+        return behospitalCode;
+    }
+
+    public void setBehospitalCode(String behospitalCode) {
+        this.behospitalCode = behospitalCode;
+    }
+    public Long getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Long hospitalId) {
+        this.hospitalId = hospitalId;
+    }
+    public Long getCheckId() {
+        return checkId;
+    }
+
+    public void setCheckId(Long checkId) {
+        this.checkId = checkId;
+    }
+    public String getCheckName() {
+        return checkName;
+    }
+
+    public void setCheckName(String checkName) {
+        this.checkName = checkName;
+    }
+    public Date getCheckTime() {
+        return checkTime;
+    }
+
+    public void setCheckTime(Date checkTime) {
+        this.checkTime = checkTime;
+    }
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    @Override
+    public String toString() {
+        return "MedCheckInfo{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", behospitalCode=" + behospitalCode +
+            ", hospitalId=" + hospitalId +
+            ", checkId=" + checkId +
+            ", checkName=" + checkName +
+            ", checkTime=" + checkTime +
+            ", status=" + status +
+        "}";
+    }
+}

+ 10 - 0
src/main/java/com/diagbot/entity/QcCasesEntry.java

@@ -45,6 +45,16 @@ public class QcCasesEntry implements Serializable {
      */
     private String name;
 
+    /**
+     * 控费标识(1:是控费条目,2:不是控费条目)
+     */
+    private Integer drgs;
+
+    /**
+     * 质控形式(1:形式质控,2:内涵质控)
+     */
+    private Integer type;
+
     /**
      * 规则类型(0:无,1:空项,2:错误)
      */

+ 5 - 0
src/main/java/com/diagbot/entity/QcresultInfo.java

@@ -62,6 +62,11 @@ public class QcresultInfo implements Serializable {
      */
     private BigDecimal scoreRes;
 
+    /**
+     * 是否有病案首页(0:无,1:有)
+     */
+    private Integer haveHomePage;
+
     /**
      * 是否删除,N:未删除,Y:删除
      */

+ 167 - 0
src/main/java/com/diagbot/entity/SysHospitalSet.java

@@ -0,0 +1,167 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 医院所有配置信息
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-07-06
+ */
+public class SysHospitalSet implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 配置名称
+     */
+    private String name;
+
+    /**
+     * 配置编码
+     */
+    private String code;
+
+    private String value;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public LocalDateTime getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(LocalDateTime gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public LocalDateTime getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(LocalDateTime gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public Long getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Long hospitalId) {
+        this.hospitalId = hospitalId;
+    }
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "SysHospitalSet{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", hospitalId=" + hospitalId +
+            ", name=" + name +
+            ", code=" + code +
+            ", value=" + value +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 15 - 7
src/main/java/com/diagbot/facade/AlgorithmFacade.java

@@ -9,6 +9,7 @@ import com.diagbot.util.ListUtil;
 import com.diagbot.vo.AlgorithmVO;
 import com.diagbot.vo.MedQcresultCasesVO;
 import com.diagbot.vo.QcResultAlgVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.math.BigDecimal;
@@ -28,6 +29,9 @@ import java.util.Map;
 public class AlgorithmFacade {
     private final static List<Integer> types = Arrays.asList(0, 1, 2, 3);
 
+    @Autowired
+    private SysHospitalSetFacade sysHospitalSetFacade;
+
     /**
      * 获取评分结果和等级
      *
@@ -112,6 +116,10 @@ public class AlgorithmFacade {
                 .add(homePageExtRes)
                 .multiply(new BigDecimal(100))
                 .divide(new BigDecimal(120), 1, RoundingMode.HALF_UP);
+        // 判断是否是百分制
+        if (sysHospitalSetFacade.getScoreType(algorithmVO.getHospitalId()).equals("1")) {
+            res = cal(algorithmVO);
+        }
         return res;
     }
 
@@ -138,17 +146,17 @@ public class AlgorithmFacade {
      */
     private String getLevel(BigDecimal score) {
         String level = "甲";
-        //得分90分为甲级
-        if (BigDecimalUtil.gt(score, new BigDecimal(90))) {
+        //得分90分为甲级
+        if (BigDecimalUtil.ge(score, new BigDecimal(90))) {
             level = "甲";
         }
-        //得分≤90分且得分>80分为乙级
-        if (BigDecimalUtil.le(score, new BigDecimal(90))
-                && BigDecimalUtil.gt(score, new BigDecimal(80))) {
+        //得分<90分且得分≥80分为乙级
+        if (BigDecimalUtil.lt(score, new BigDecimal(90))
+                && BigDecimalUtil.ge(score, new BigDecimal(80))) {
             level = "乙";
         }
-        //得分80分为丙级
-        if (BigDecimalUtil.le(score, new BigDecimal(80))) {
+        //得分<80分为丙级
+        if (BigDecimalUtil.lt(score, new BigDecimal(80))) {
             level = "丙";
         }
 

+ 31 - 4
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.AuthServiceClient;
-import com.diagbot.client.QcServiceClient;
 import com.diagbot.dto.AlgorithmDTO;
 import com.diagbot.dto.AnalyzeDTO;
 import com.diagbot.dto.AnalyzeRunDTO;
@@ -27,6 +26,7 @@ import com.diagbot.entity.DoctorAdvice;
 import com.diagbot.entity.HomeDiagnoseInfo;
 import com.diagbot.entity.HomeOperationInfo;
 import com.diagbot.entity.HomePage;
+import com.diagbot.entity.MedCheckInfo;
 import com.diagbot.entity.MedCrisisInfo;
 import com.diagbot.entity.MedLisResult;
 import com.diagbot.entity.MedPacsResult;
@@ -83,7 +83,7 @@ import java.util.stream.Collectors;
 public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
 
     @Autowired
-    QcServiceClient qcServiceClient;
+    QcClientFacade qcServiceClient;
     @Autowired
     DoctorAdviceFacade doctorAdviceFacade;
     @Autowired
@@ -124,6 +124,8 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
     MedPacsResultFacade medPacsResultFacade;
     @Autowired
     MedCrisisInfoFacade medCrisisInfoFacade;
+    @Autowired
+    MedCheckInfoFacade medCheckInfoFacade;
 
     /**
      * 分页
@@ -176,6 +178,19 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
                 qcResultDTO.setMenuData("");
             }
             res.put("result", qcResultDTO);
+            //增加该病历是否核查状态
+            Map<String, Object> mapAll = new HashMap<String, Object>();
+            mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
+            mapAll.put("behospital_code", getDetailVO.getBehospitalCode());
+            mapAll.put("hospital_id", hospitalId);
+            QueryWrapper<MedCheckInfo> medCheckInfoQuerys = new QueryWrapper<>();
+            medCheckInfoQuerys.allEq(mapAll);
+            int count = medCheckInfoFacade.count(medCheckInfoQuerys);
+            if (count > 0) {
+                res.put("checkStatus", 1);
+            } else {
+                res.put("checkStatus", 0);
+            }
         }
 
         // 获取提示信息
@@ -199,7 +214,13 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
             // 根据模块分组
             Map<String, List<MsgDTO>> msgMap = EntityUtil.makeEntityListMap(msgDTOList, "modelName");
             res.put("msg", msgMap);
+
+            // 添加DRGS分组
+            List<MsgDTO> msgDTOListDrgs = msgDTOList.stream().filter(r -> r.getDrgs().equals(1)).collect(Collectors.toList());
+            Map<String, List<MsgDTO>> drgsMap = EntityUtil.makeEntityListMap(msgDTOListDrgs, "modelName");
+            res.put("drgs", drgsMap);
         }
+
         return res;
     }
 
@@ -245,6 +266,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("hospital_id", hospitalId)
                 .eq("behospital_code", analyzeVO.getBehospitalCode())
+                .orderByAsc("da_start_date")
         );
 
         // 危急值
@@ -293,6 +315,9 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
                     .eq("home_page_id", homePage.getHomePageId())
                     .orderByAsc("operation_order_no")
             );
+            analyzeVO.setHaveHomePage(1);
+        } else {
+            analyzeVO.setHaveHomePage(0);
         }
 
         // 拼接数据
@@ -470,6 +495,8 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         if (recordMap.get(16L) != null) {
             recordDTOList.addAll(recordMap.get(16L)); // 手术知情同意书
         }
+        // 医嘱信息
+        pageMap.put("医嘱信息", null);
         // 知情同意书 = 【知情同意书】 + 【手术知情同意书】
         pageMap.put("知情同意书", recordDTOList);
         pageMap.put("谈话告知书", recordMap.get(54L));
@@ -479,7 +506,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         List<QcModeDTO> qcModeDTOList = qcModeFacade.getMenu(pageMap);
         String menuData = JSON.toJSONString(qcModeDTOList);
 
-        Date date = qcresultInfoFacade.saveQcResult(algorithmDTO, algorithmVO, analyzeVO, pageData, menuData, analyzeVO.getIsTask());
+        Date date = qcresultInfoFacade.saveQcResult(algorithmDTO, algorithmVO, analyzeVO, pageData, menuData, analyzeVO.getIsTask(), null);
 
         // 返回提示信息
         //        List<MsgDTO> msgDTOList = getMsg(analyzeVO);
@@ -589,7 +616,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
      * @param map
      */
     public <T> void addDataWithKeyConvert(String key, List<T> list,
-                                      List<MedrecVo> medrecVoList, Map<String, String> map, List<String> dateList) {
+                                          List<MedrecVo> medrecVoList, Map<String, String> map, List<String> dateList) {
         MedrecVo medrecVo = new MedrecVo();
         medrecVo.setTitle(key);
         Map<String, Object> content = new HashMap<>();

+ 148 - 5
src/main/java/com/diagbot/facade/ConsoleExportFacade.java

@@ -1,5 +1,7 @@
 package com.diagbot.facade;
 
+import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.AverageStatisticsDTO;
 import com.diagbot.dto.AverageStatisticsFeeDTO;
@@ -8,23 +10,35 @@ import com.diagbot.dto.AverageStatisticsMonthDTO;
 import com.diagbot.dto.EntryNumDTO;
 import com.diagbot.dto.EntryNumGroupDTO;
 import com.diagbot.dto.EntryStatisticsDTO;
+import com.diagbot.dto.ExportExcelDTO;
+import com.diagbot.dto.HomePageImproveDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.LevelStatisticsTZDTO;
 import com.diagbot.dto.NumDTO;
 import com.diagbot.dto.QcResultPercentDTO;
-import com.diagbot.dto.QcResultShortDTO;
+import com.diagbot.dto.UnModifyMRDTO;
+import com.diagbot.entity.SysHospitalSet;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ExcelUtils;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.SysUserUtils;
 import com.diagbot.vo.EntryStatisticsVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByAverageVO;
 import com.diagbot.vo.FilterPageVO;
+import com.diagbot.vo.FilterUnModifyMRVO;
 import com.diagbot.vo.QcResultShortPageVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -38,7 +52,11 @@ public class ConsoleExportFacade {
     @Autowired
     private ConsoleFacade consoleFacade;
     @Autowired
-    private QcCasesFacade qcCasesFacade;
+    private BehospitalInfoFacade behospitalInfoFacade;
+    @Autowired
+    private SysHospitalSetFacade sysHospitalSetFacade;
+    @Autowired
+    private FilterFacade filterFacade;
 
     /**
      * 病案首页合格率占比
@@ -201,11 +219,136 @@ public class ConsoleExportFacade {
      * @return
      */
     public void qcResultShortPageExport(HttpServletResponse response, QcResultShortPageVO qcResultShortPageVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        qcResultShortPageVO.setHospitalId(hospitalId);
+        Date startDate = qcResultShortPageVO.getStartDate();
+        Date endDate = qcResultShortPageVO.getEndDate();
+        //时间间隔7天
+        long interval = 7 * 24 * 60 * 60 * 1000;
+        if (endDate.getTime() < startDate.getTime()) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+        }
+        if (endDate.getTime() - startDate.getTime() > interval) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+        }
+
         qcResultShortPageVO.setCurrent(1L);
         qcResultShortPageVO.setSize(Long.MAX_VALUE);
         qcResultShortPageVO.setSearchCount(false);
-        IPage<QcResultShortDTO> page = consoleFacade.qcResultShortPage(qcResultShortPageVO);
+        List<ExportExcelDTO> record = behospitalInfoFacade.qcResultShortPageExport(qcResultShortPageVO);
         String fileName = "缺陷详情质控评分页.xls";
-        ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", QcResultShortDTO.class, fileName, response, 12.8f);
+        ExcelUtils.exportExcelUser(record, null, "sheet1", ExportExcelDTO.class, fileName, response);
+    }
+
+    /**
+     * 出院人数统计导出
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public void leaveHosMrPageExport(HttpServletResponse response, QcResultShortPageVO qcResultShortPageVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        qcResultShortPageVO.setHospitalId(hospitalId);
+        Date startDate = qcResultShortPageVO.getStartDate();
+        Date endDate = qcResultShortPageVO.getEndDate();
+        //时间间隔7天
+        long interval = 7 * 24 * 60 * 60 * 1000;
+        if (endDate.getTime() < startDate.getTime()) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+        }
+        if (endDate.getTime() - startDate.getTime() > interval) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+        }
+
+        qcResultShortPageVO.setCurrent(1L);
+        qcResultShortPageVO.setSize(Long.MAX_VALUE);
+        qcResultShortPageVO.setSearchCount(false);
+        List<ExportExcelDTO> records = behospitalInfoFacade.leaveHosMRPageExport(qcResultShortPageVO);
+        String fileName = "出院人数统计.xls";
+        ExcelUtils.exportExcelUser(records, null, "sheet1", ExportExcelDTO.class, fileName, response);
+    }
+
+    /**
+     * 质控核查统计导出
+     *
+     * @param filterOrderVO
+     * @return
+     */
+    public void qcCheckStatisticsExport(HttpServletResponse response, FilterOrderVO filterOrderVO) {
+        List<HomePageImproveDTO> records = consoleFacade.qcCheckStatistics(filterOrderVO);
+        String fileName = "质控核查统计.xls";
+        ExcelUtils.exportExcel(records, null, "sheet1", HomePageImproveDTO.class, fileName, response, 12.8f);
+    }
+
+    /**
+     * 未整改病历详情页导出
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public void unModifyMRPageExport(HttpServletResponse response, QcResultShortPageVO qcResultShortPageVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        qcResultShortPageVO.setHospitalId(hospitalId);
+        Date startDate = qcResultShortPageVO.getStartDate();
+        Date endDate = qcResultShortPageVO.getEndDate();
+        //时间间隔7天
+        long interval = 7 * 24 * 60 * 60 * 1000;
+        if (endDate.getTime() < startDate.getTime()) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+        }
+        if (endDate.getTime() - startDate.getTime() > interval) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+        }
+
+        qcResultShortPageVO.setCurrent(1L);
+        qcResultShortPageVO.setSize(Long.MAX_VALUE);
+        qcResultShortPageVO.setSearchCount(false);
+        List<ExportExcelDTO> records = behospitalInfoFacade.unModifyMRPageExport(qcResultShortPageVO);
+        String fileName = "未整改病历详情页.xls";
+        ExcelUtils.exportExcelUser(records, null, "sheet1", ExportExcelDTO.class, fileName, response);
+    }
+
+    /**
+     * 未整改病历统计导出
+     *
+     * @param response
+     * @param filterUnModifyMRVO
+     */
+    public void unModifyMRStatisticsExport(HttpServletResponse response, FilterUnModifyMRVO filterUnModifyMRVO) {
+        filterFacade.filterUnModifyMRVOSet(filterUnModifyMRVO);
+        List<ExcelExportEntity> colList = Lists.newLinkedList();
+        ExcelExportEntity deptNameCol = new ExcelExportEntity("科室名称", "deptName");
+        deptNameCol.setWidth(50);
+        colList.add(deptNameCol);
+
+        QueryWrapper<SysHospitalSet> hospitalSetQueryWrapper = new QueryWrapper<>();
+        hospitalSetQueryWrapper.eq("is_deleted", 'N')
+                .eq("hospital_id", filterUnModifyMRVO.getHospitalId())
+                .eq("code", "unmodify_mr_entry");
+        SysHospitalSet hospitalSet = sysHospitalSetFacade.getOne(hospitalSetQueryWrapper);
+        //缺陷条目未维护
+        if (hospitalSet == null || StringUtil.isBlank(hospitalSet.getValue())) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "未整改病历条目未设置");
+        }
+
+        List<String> columnSet = Arrays.asList(hospitalSet.getValue().split(","));
+        for (String valueStr : columnSet) {
+            if(StringUtil.isBlank(valueStr)){
+                continue;
+            }
+            String[] keyValue = valueStr.split("--");
+            if (keyValue != null || keyValue.length > 1) {
+                ExcelExportEntity entryCol = new ExcelExportEntity(keyValue[1], "entry_" + keyValue[0] + "_num");
+                entryCol.setWidth(20);
+                colList.add(entryCol);
+            }
+        }
+        UnModifyMRDTO unModifyMRDTO = consoleFacade.unModifyMRStatistics(filterUnModifyMRVO);
+        List<Object> data = Lists.newLinkedList();
+        if (unModifyMRDTO != null && ListUtil.isNotEmpty(unModifyMRDTO.getData())) {
+            data = unModifyMRDTO.getData();
+        }
+        String fileName = "未整改病历统计.xls";
+        ExcelUtils.exportExcelDynamicCol(colList, data, null, "sheet1", fileName, response);
     }
-}
+}

+ 446 - 1
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -1,29 +1,40 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.aggregate.AverageStatisticsAggregate;
 import com.diagbot.aggregate.MrStatisticsAggregate;
 import com.diagbot.aggregate.ResultStatisticsAggregate;
 import com.diagbot.dto.AverageStatisticsDTO;
 import com.diagbot.dto.AverageStatisticsFeeDTO;
+import com.diagbot.dto.ColumnDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.EntryNumDTO;
 import com.diagbot.dto.EntryNumGroupDTO;
 import com.diagbot.dto.EntryStatisticsDTO;
+import com.diagbot.dto.HomePageImproveDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.LevelStatisticsTZDTO;
 import com.diagbot.dto.NumDTO;
 import com.diagbot.dto.QcResultPercentDTO;
 import com.diagbot.dto.QcResultShortDTO;
+import com.diagbot.dto.UnModifyMRDTO;
+import com.diagbot.dto.UnModifyMRDetailDTO;
+import com.diagbot.entity.QcCasesEntry;
+import com.diagbot.entity.SysHospitalSet;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.util.ClassUtil;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
+import com.diagbot.util.ObjectUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.EntryStatisticsVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByAverageVO;
 import com.diagbot.vo.FilterPageVO;
+import com.diagbot.vo.FilterUnModifyMRVO;
 import com.diagbot.vo.FilterVO;
 import com.diagbot.vo.QcResultShortPageVO;
 import com.google.common.collect.Lists;
@@ -34,6 +45,9 @@ import org.springframework.stereotype.Component;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.DecimalFormat;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -64,6 +78,10 @@ public class ConsoleFacade {
     private HomePageFacade homePageFacade;
     @Autowired
     private BehospitalInfoFacade behospitalInfoFacade;
+    @Autowired
+    private SysHospitalSetFacade sysHospitalSetFacade;
+    @Autowired
+    private QcCasesEntryFacade qcCasesEntryFacade;
 
     //region-----------------------聚合接口开始-------------------------------
 
@@ -222,7 +240,15 @@ public class ConsoleFacade {
     public Map<String, Object> leaveHosCount(FilterVO filterVO) {
         Map<String, Object> retMap = new HashMap<>();
         filterFacade.filterVOSet(filterVO);
-        Map<String, Object> leaveHosMap = mrStatisticsAggregate.leaveHosCount(filterVO);
+        Map<String, Object> leaveHosMap = new HashMap<>();
+        try {
+            Map<String, Object> invokeParams = new HashMap<>();
+            invokeParams.put("filterVO", filterVO);
+            leaveHosMap
+                    = dataBeanAggregateQueryFacade.get("setAllLeaveHos", invokeParams, Map.class);
+        } catch (Exception e) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR);
+        }
         if (leaveHosMap != null) {
             retMap.put("出院人数统计", leaveHosMap);
         }
@@ -777,4 +803,423 @@ public class ConsoleFacade {
         }
         return record;
     }
+
+    /**
+     * 病案首页合格率、完整率、改善率统计
+     *
+     * @param filterVO
+     * @return
+     */
+    public Map<String, Object> homePageMRCount(FilterVO filterVO) {
+        Map<String, Object> retMap = new HashMap<>();
+        retMap.put("合格率", null);
+        retMap.put("不合格率", null);
+        retMap.put("完整率", null);
+        retMap.put("改善率", null);
+        filterFacade.filterVOSet(filterVO);
+        HomePageNumDTO qcNumDTO = behospitalInfoFacade.homePageQcPercent(filterVO);
+        HomePageNumDTO emptyNumDTO = behospitalInfoFacade.hmEmptyEntryPercent(filterVO);
+        HomePageImproveDTO improveDTO = behospitalInfoFacade.homePageImproveCount(filterVO);
+
+        //合格率
+        NumDTO pass = new NumDTO();
+        pass.setName("合格率");
+        pass.setNum(qcNumDTO.getFirstLevelNum());
+        pass.setTotleNum(qcNumDTO.getMrNum());
+        pass.setPercent(qcNumDTO.getFirstLevelPercent());
+        pass.setPercentStr(qcNumDTO.getFirstLevelPercentStr());
+
+        //不合格率
+        NumDTO unPass = new NumDTO();
+        unPass.setName("不合格率");
+        unPass.setNum(qcNumDTO.getSecondLevelNum());
+        unPass.setTotleNum(qcNumDTO.getMrNum());
+        unPass.setPercent(qcNumDTO.getSecondLevelPercent());
+        unPass.setPercentStr(qcNumDTO.getSecondLevelPercentStr());
+
+        //完整率
+        NumDTO full = new NumDTO();
+        full.setName("完整率");
+        full.setNum(emptyNumDTO.getEntryTotleNum() - emptyNumDTO.getEmptyNum());
+        full.setTotleNum(emptyNumDTO.getEntryTotleNum());
+        full.setPercent(emptyNumDTO.getEmptyPercent());
+        full.setPercentStr(emptyNumDTO.getEmptyPercentStr());
+
+        //改善率
+        NumDTO improve = new NumDTO();
+        improve.setName("改善率");
+        improve.setNum(improveDTO.getImproveNum());
+        improve.setTotleNum(improveDTO.getHomePageMRNum());
+        improve.setPercent(improveDTO.getImprovePercent());
+        improve.setPercentStr(improveDTO.getImprovePercentStr());
+
+        retMap.put("合格率", pass);
+        retMap.put("不合格率", unPass);
+        retMap.put("完整率", full);
+        retMap.put("改善率", improve);
+        return retMap;
+    }
+
+    /**
+     * 离院病人质控评分详情页
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public IPage<QcResultShortDTO> leaveHosMRPage(QcResultShortPageVO qcResultShortPageVO) {
+        filterFacade.qcResultShortPageVOSet(qcResultShortPageVO);
+        IPage<QcResultShortDTO> page = behospitalInfoFacade.leaveHosMRPage(qcResultShortPageVO);
+        return page;
+    }
+
+    /**
+     * 质控核查统计(内页)
+     *
+     * @param filterOrderVO
+     * @return
+     */
+    public List<HomePageImproveDTO> qcCheckStatistics(FilterOrderVO filterOrderVO) {
+        filterFacade.filterOrderVOSet(filterOrderVO);
+        List<HomePageImproveDTO> records = behospitalInfoFacade.qcCheckStatistics(filterOrderVO);
+        //增加全院数据
+        if (StringUtil.isBlank(filterOrderVO.getName()) || filterOrderVO.getName().equals("全院")) {
+            HomePageImproveDTO item = getGlobleRecord_improve(records);
+            if (item != null) {
+                records.add(0, item);
+            }
+        }
+        return records;
+    }
+
+    /**
+     * 增加全院记录
+     *
+     * @param records
+     * @return
+     */
+    public HomePageImproveDTO getGlobleRecord_improve(List<HomePageImproveDTO> records) {
+        DecimalFormat df = new DecimalFormat("#0.00");
+        HomePageImproveDTO item = new HomePageImproveDTO();
+
+        if (ListUtil.isEmpty(records)) {
+            return null;
+        }
+
+        item.setDeptName("全院");
+
+        //总病历数
+        Integer mrNum = records
+                .stream()
+                .map(HomePageImproveDTO::getMrNum)
+                .reduce(0, Integer::sum);
+        if (mrNum == null || mrNum == 0) {
+            return null;
+        }
+        item.setMrNum(mrNum);
+        //核查病历数
+        Integer checkedNum = records
+                .stream()
+                .map(HomePageImproveDTO::getCheckedNum)
+                .reduce(0, Integer::sum);
+        item.setCheckedNum(checkedNum);
+        if (mrNum != null && !mrNum.equals(0)) {
+            //核查病历占比
+            Double checkedPercent = BigDecimal.valueOf(checkedNum)
+                    .divide(BigDecimal.valueOf(mrNum), 4, RoundingMode.HALF_UP)
+                    .doubleValue();
+            String checkedPercentStr
+                    = df.format(BigDecimal.valueOf(checkedPercent).multiply(BigDecimal.valueOf(100))) + "%";
+            item.setCheckedPercent(checkedPercent);
+            item.setCheckedPercentStr(checkedPercentStr);
+        }
+        //带病案首页的病历数
+        Integer homePageMRNum = records
+                .stream()
+                .map(HomePageImproveDTO::getHomePageMRNum)
+                .reduce(0, Integer::sum);
+        item.setHomePageMRNum(homePageMRNum);
+        if (homePageMRNum == null || homePageMRNum.equals(0)) {
+            return item;
+        }
+        //改善病历数
+        Integer improveNum = records
+                .stream()
+                .map(HomePageImproveDTO::getImproveNum)
+                .reduce(0, Integer::sum);
+        //改善率
+        Double improvePercent = BigDecimal.valueOf(improveNum)
+                .divide(BigDecimal.valueOf(homePageMRNum), 4, RoundingMode.HALF_UP)
+                .doubleValue();
+        String improvePercentStr
+                = df.format(BigDecimal.valueOf(improvePercent).multiply(BigDecimal.valueOf(100))) + "%";
+        //改善至合格病历数
+        Integer improveToPassNum = records
+                .stream()
+                .map(HomePageImproveDTO::getImproveToPassNum)
+                .reduce(0, Integer::sum);
+        //改善至合格占比
+        Double improveToPassPercent = BigDecimal.valueOf(improveToPassNum)
+                .divide(BigDecimal.valueOf(homePageMRNum), 4, RoundingMode.HALF_UP)
+                .doubleValue();
+        String improveToPassPercentStr
+                = df.format(BigDecimal.valueOf(improveToPassPercent).multiply(BigDecimal.valueOf(100))) + "%";
+        //改善至满分病历数
+        Integer improveToFullNum = records
+                .stream()
+                .map(HomePageImproveDTO::getImproveToFullNum)
+                .reduce(0, Integer::sum);
+        //改善至满分占比
+        Double improveToFullPercent = BigDecimal.valueOf(improveToFullNum)
+                .divide(BigDecimal.valueOf(homePageMRNum), 4, RoundingMode.HALF_UP)
+                .doubleValue();
+        String improveToFullPercentStr
+                = df.format(BigDecimal.valueOf(improveToFullPercent).multiply(BigDecimal.valueOf(100))) + "%";
+
+        item.setImproveNum(improveNum);
+        item.setImprovePercent(improvePercent);
+        item.setImprovePercentStr(improvePercentStr);
+        item.setImproveToPassNum(improveToPassNum);
+        item.setImproveToPassPercent(improveToPassPercent);
+        item.setImproveToPassPercentStr(improveToPassPercentStr);
+        item.setImproveToFullNum(improveToFullNum);
+        item.setImproveToFullPercent(improveToFullPercent);
+        item.setImproveToFullPercentStr(improveToFullPercentStr);
+        return item;
+    }
+
+    /**
+     * 未整改病历统计
+     *
+     * @param filterUnModifyMRVO
+     * @return
+     */
+    public UnModifyMRDTO unModifyMRStatistics(FilterUnModifyMRVO filterUnModifyMRVO) {
+        UnModifyMRDTO unModifyMRDTO = new UnModifyMRDTO();
+        List<Object> retList = Lists.newLinkedList();
+        filterFacade.filterUnModifyMRVOSet(filterUnModifyMRVO);
+
+        //colums
+        QueryWrapper<SysHospitalSet> hospitalSetQueryWrapper = new QueryWrapper<>();
+        hospitalSetQueryWrapper.eq("is_deleted", 'N')
+                .eq("hospital_id", filterUnModifyMRVO.getHospitalId())
+                .eq("code", "unmodify_mr_entry");
+        SysHospitalSet hospitalSet = sysHospitalSetFacade.getOne(hospitalSetQueryWrapper);
+        if (hospitalSet == null || StringUtil.isBlank(hospitalSet.getValue())) {
+            return unModifyMRDTO;
+        }
+
+        //表头生成
+        List<String> columnSet = Arrays.asList(hospitalSet.getValue().split(","));
+        List<ColumnDTO> columns = Lists.newLinkedList();
+        Integer orderNo = 1;
+        ColumnDTO columnDeptId = new ColumnDTO();
+        columnDeptId.setOrderNo(orderNo);
+        columnDeptId.setFieldName("deptId");
+        columnDeptId.setColumnName("科室编码");
+        columnDeptId.setIsShow(0);
+        columns.add(columnDeptId);
+        orderNo++;
+        ColumnDTO columnDeptName = new ColumnDTO();
+        columnDeptName.setOrderNo(orderNo);
+        columnDeptName.setFieldName("deptName");
+        columnDeptName.setColumnName("科室名称");
+        columnDeptName.setIsShow(1);
+        columns.add(columnDeptName);
+        orderNo++;
+        List<Long> casesEntryIds = Lists.newArrayList();
+        for (String valueStr : columnSet) {
+            if (StringUtil.isBlank(valueStr)) {
+                continue;
+            }
+            String[] keyValue = valueStr.split("--");
+            if (keyValue != null || keyValue.length > 1) {
+                casesEntryIds.add(Long.valueOf(keyValue[0]));
+                ColumnDTO columnId = new ColumnDTO();
+                columnId.setOrderNo(orderNo);
+                columnId.setId(Long.valueOf(keyValue[0]));
+                columnId.setFieldName("entry_" + keyValue[0] + "_id");
+                columnId.setColumnName(keyValue[1] + "id");
+                columnId.setIsShow(0);
+                columns.add(columnId);
+                orderNo++;
+                ColumnDTO columnName = new ColumnDTO();
+                columnName.setOrderNo(orderNo);
+                columnName.setId(Long.valueOf(keyValue[0]));
+                columnName.setFieldName("entry_" + keyValue[0] + "_name");
+                columnName.setColumnName(keyValue[1] + "name");
+                columnName.setIsShow(0);
+                columns.add(columnName);
+                orderNo++;
+                ColumnDTO columnNum = new ColumnDTO();
+                columnNum.setOrderNo(orderNo);
+                columnNum.setId(Long.valueOf(keyValue[0]));
+                columnNum.setFieldName("entry_" + keyValue[0] + "_num");
+                columnNum.setColumnName(keyValue[1]);
+                columnNum.setIsShow(1);
+                columns.add(columnNum);
+                orderNo++;
+            }
+        }
+        //条目未维护
+        if (ListUtil.isEmpty(casesEntryIds)) {
+            return unModifyMRDTO;
+        }
+
+        //casesEntryIds
+        filterUnModifyMRVO.setCasesEntryIds(casesEntryIds);
+        QueryWrapper<QcCasesEntry> qcCasesEntryQueryWrapper = new QueryWrapper<>();
+        qcCasesEntryQueryWrapper.eq("is_deleted", "N")
+                .in("id", casesEntryIds);
+        List<QcCasesEntry> casesEntryList = qcCasesEntryFacade.list(qcCasesEntryQueryWrapper);
+        Map<Long, String> basCasesEntryMap = EntityUtil.makeMapWithKeyValue(casesEntryList, "id", "name");
+
+        List<UnModifyMRDetailDTO> records = behospitalInfoFacade.unModifyMRStatistics(filterUnModifyMRVO);
+        Map<String, List<UnModifyMRDetailDTO>> deptMap = EntityUtil.makeEntityListMap(records, "deptName");
+        Map<String, String> deptInfoMap = EntityUtil.makeMapWithKeyValue(records, "deptName", "deptId");
+        Map<String, Map<Long, UnModifyMRDetailDTO>> deptEntryMap = new LinkedHashMap<>();
+        for (Map.Entry<String, List<UnModifyMRDetailDTO>> entry : deptMap.entrySet()) {
+            Map<Long, UnModifyMRDetailDTO> entryMap = EntityUtil.makeEntityMap(entry.getValue(), "casesEntryId");
+            deptEntryMap.put(entry.getKey(), entryMap);
+        }
+
+        try {
+            for (Map.Entry<String, Map<Long, UnModifyMRDetailDTO>> entry : deptEntryMap.entrySet()) {
+                Object obj = new Object();
+                HashMap addMap = new HashMap();
+                HashMap addValMap = new HashMap();
+
+                addMap.put("deptName", Class.forName("java.lang.String"));
+                addValMap.put("deptName", entry.getKey());
+                addMap.put("deptId", Class.forName("java.lang.String"));
+                addValMap.put("deptId", deptInfoMap.get(entry.getKey()));
+
+                for (ColumnDTO item : columns) {
+                    if (item.getFieldName().lastIndexOf("_id") > 0) {
+                        addMap.put(item.getFieldName(), Class.forName("java.lang.Long"));
+                        if (item.getId() != null) {
+                            addValMap.put(item.getFieldName(), item.getId());
+                        } else {
+                            addValMap.put(item.getFieldName(), null);
+                        }
+                    } else if (item.getFieldName().lastIndexOf("_name") > 0) {
+                        addMap.put(item.getFieldName(), Class.forName("java.lang.String"));
+                        if (basCasesEntryMap.containsKey(item.getId())) {
+                            addValMap.put(item.getFieldName(), basCasesEntryMap.get(item.getId()));
+                        } else {
+                            addValMap.put(item.getFieldName(), "");
+                        }
+                    } else if (item.getFieldName().lastIndexOf("_num") > 0) {
+                        addMap.put(item.getFieldName(), Class.forName("java.lang.Integer"));
+                        if (entry.getValue().containsKey(item.getId())) {
+                            addValMap.put(item.getFieldName(), entry.getValue().get(item.getId()).getCasesEntryNum());
+                        } else {
+                            addValMap.put(item.getFieldName(), 0);
+                        }
+                    }
+                }
+                obj = new ClassUtil().dynamicClass(obj, addMap, addValMap);
+                retList.add(obj);
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        //排序
+        Collections.sort(retList, new Comparator<Object>() {
+            @Override
+            public int compare(Object o1, Object o2) {
+
+                if (StringUtil.isNotBlank(filterUnModifyMRVO.getAsc())) {
+                    //升序
+                    Object o1Val = ObjectUtil.getValueByKey(o1, filterUnModifyMRVO.getAsc());
+                    Object o2Val = ObjectUtil.getValueByKey(o2, filterUnModifyMRVO.getAsc());
+                    if (filterUnModifyMRVO.getAsc().lastIndexOf("_num") > 1) {
+                        return ((Integer) o1Val).compareTo((Integer) o2Val);
+                    }
+                    if (filterUnModifyMRVO.getAsc().lastIndexOf("_id") > 1) {
+                        return ((Long) o1Val).compareTo((Long) o2Val);
+                    } else {
+                        return ((String) o1Val).compareTo((String) o2Val);
+                    }
+                } else if (StringUtil.isNotBlank(filterUnModifyMRVO.getDesc())) {
+                    //降序
+                    Object o1Val = ObjectUtil.getValueByKey(o1, filterUnModifyMRVO.getDesc());
+                    Object o2Val = ObjectUtil.getValueByKey(o2, filterUnModifyMRVO.getDesc());
+                    if (filterUnModifyMRVO.getDesc().lastIndexOf("_num") > 1) {
+                        return ((Integer) o2Val).compareTo((Integer) o1Val);
+                    }
+                    if (filterUnModifyMRVO.getDesc().lastIndexOf("_id") > 1) {
+                        return ((Long) o2Val).compareTo((Long) o1Val);
+                    } else {
+                        return ((String) o2Val).compareTo((String) o1Val);
+                    }
+                } else {
+                    return 0;
+                }
+            }
+        });
+        //增加全院数据
+        if (StringUtil.isBlank(filterUnModifyMRVO.getName()) || filterUnModifyMRVO.getName().equals("全院")) {
+            try {
+
+                Object globleObj = new Object();
+                HashMap addMap = new HashMap();
+                HashMap addValMap = new HashMap();
+                addMap.put("deptId", Class.forName("java.lang.String"));
+                addValMap.put("deptId", "");
+                addMap.put("deptName", Class.forName("java.lang.String"));
+                addValMap.put("deptName", "全院");
+
+                for (ColumnDTO item : columns) {
+                    if (item.getFieldName().lastIndexOf("_id") > 0) {
+                        addMap.put(item.getFieldName(), Class.forName("java.lang.Long"));
+                        if (item.getId() != null) {
+                            addValMap.put(item.getFieldName(), item.getId());
+                        } else {
+                            addValMap.put(item.getFieldName(), null);
+                        }
+
+                    } else if (item.getFieldName().lastIndexOf("_name") > 0) {
+                        addMap.put(item.getFieldName(), Class.forName("java.lang.String"));
+                        if (basCasesEntryMap.containsKey(item.getId())) {
+                            addValMap.put(item.getFieldName(), basCasesEntryMap.get(item.getId()));
+                        } else {
+                            addValMap.put(item.getFieldName(), "");
+                        }
+
+                    } else if (item.getFieldName().lastIndexOf("_num") > 0) {
+                        addMap.put(item.getFieldName(), Class.forName("java.lang.Integer"));
+                        Integer entryNum = retList
+                                .stream()
+                                .map(i -> ObjectUtil.getValueByKey(i, item.getFieldName()))
+                                .filter(i -> i != null)
+                                .map(i -> (Integer) i)
+                                .reduce(0, Integer::sum);
+                        addValMap.put(item.getFieldName(), entryNum);
+                    }
+                }
+                globleObj = new ClassUtil().dynamicClass(globleObj, addMap, addValMap);
+                retList.add(0, globleObj);
+
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        unModifyMRDTO.setColumns(columns);
+        unModifyMRDTO.setData(retList);
+        return unModifyMRDTO;
+    }
+
+
+    /**
+     * 未整改病历质控评分页(内页)
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public IPage<QcResultShortDTO> unModifyMRPage(QcResultShortPageVO qcResultShortPageVO) {
+        filterFacade.qcResultShortPageVOSet(qcResultShortPageVO);
+        return behospitalInfoFacade.unModifyMRPage(qcResultShortPageVO);
+    }
 }

+ 29 - 2
src/main/java/com/diagbot/facade/DoctorAdviceFacade.java

@@ -1,7 +1,13 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.DoctorAdviceDTO;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.DoctorAdviceServiceImpl;
-
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.SysUserUtils;
+import com.diagbot.vo.DoctorAdviceVO;
 import org.springframework.stereotype.Component;
 
 /**
@@ -11,5 +17,26 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class DoctorAdviceFacade extends DoctorAdviceServiceImpl {
-	
+
+    /**
+     * 获取医嘱信息翻页
+     *
+     * @param doctorAdviceVO 获取医嘱信息入参
+     * @return 医嘱翻页信息
+     */
+    public IPage<DoctorAdviceDTO> getPageFac(DoctorAdviceVO doctorAdviceVO) {
+        doctorAdviceVO.setHospitalId(Long.valueOf(SysUserUtils.getCurrentHospitalID()));
+        if (null != doctorAdviceVO.getDaStartDateStart()) {
+            doctorAdviceVO.setDaStartDateStart(DateUtil.getFirstTimeOfDay(doctorAdviceVO.getDaStartDateStart()));
+        }
+        if (null != doctorAdviceVO.getDaStartDateEnd()) {
+            doctorAdviceVO.setDaStartDateEnd(DateUtil.getFirstTimeOfDay(DateUtil.addDay(doctorAdviceVO.getDaStartDateEnd(), 1)));
+        }
+        if (null != doctorAdviceVO.getDaStartDateStart() && null != doctorAdviceVO.getDaStartDateEnd()) {
+            if (DateUtil.after(doctorAdviceVO.getDaStartDateStart(), doctorAdviceVO.getDaStartDateEnd())) {
+                throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "开始时间必须小于结束时间!");
+            }
+        }
+        return this.getPage(doctorAdviceVO);
+    }
 }

+ 23 - 15
src/main/java/com/diagbot/facade/FilterFacade.java

@@ -10,12 +10,11 @@ import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByAverageVO;
 import com.diagbot.vo.FilterPageByDeptVO;
 import com.diagbot.vo.FilterPageVO;
+import com.diagbot.vo.FilterUnModifyMRVO;
 import com.diagbot.vo.FilterVO;
 import com.diagbot.vo.QcResultShortPageVO;
 import org.springframework.stereotype.Component;
 
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.util.Date;
 
 /**
@@ -118,7 +117,6 @@ public class FilterFacade {
         if (filterVO.getLimitCount() == null || filterVO.getLimitCount().equals(0)) {
             filterVO.setLimitCount(10);
         }
-
         if (StringUtil.isBlank(filterVO.getStartDate())) {
             String startDate = getStartDateStr(filterVO.getType(), null);
             filterVO.setStartDate(startDate);
@@ -126,7 +124,7 @@ public class FilterFacade {
         if (StringUtil.isBlank(filterVO.getEndDate())) {
             String endDate = getEndDateStr(filterVO.getType(), null);
             filterVO.setEndDate(endDate);
-        } else {
+        } /*else {
             try {
                 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 Date date = dateFormat.parse(filterVO.getEndDate());
@@ -135,7 +133,7 @@ public class FilterFacade {
             } catch (ParseException e) {
 
             }
-        }
+        }*/
     }
 
     /**
@@ -148,16 +146,14 @@ public class FilterFacade {
         String userId = SysUserUtils.getCurrentPrincipleID();
         filterPageVO.setHospitalId(hospitalId);
         filterPageVO.setUserId(Long.valueOf(userId));
-        String startDate = "";
-        String endDate = "";
         if (StringUtil.isBlank(filterPageVO.getStartDate())) {
-            startDate = getStartDateStr(filterPageVO.getType(), null);
+            String startDate = getStartDateStr(filterPageVO.getType(), null);
             filterPageVO.setStartDate(startDate);
         }
         if (StringUtil.isBlank(filterPageVO.getEndDate())) {
-            endDate = getEndDateStr(filterPageVO.getType(), null);
+            String endDate = getEndDateStr(filterPageVO.getType(), null);
             filterPageVO.setEndDate(endDate);
-        } else {
+        }/* else {
             try {
                 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 Date date = dateFormat.parse(filterPageVO.getEndDate());
@@ -166,7 +162,7 @@ public class FilterFacade {
             } catch (ParseException e) {
 
             }
-        }
+        }*/
     }
 
 
@@ -253,8 +249,8 @@ public class FilterFacade {
         String userId = SysUserUtils.getCurrentPrincipleID();
         qcResultShortPageVO.setHospitalId(hospitalId);
         qcResultShortPageVO.setUserId(Long.valueOf(userId));
-        long interval = qcResultShortPageVO.getEndDate().getTime() + 1000;
-        qcResultShortPageVO.setEndDate(new Date(Long.valueOf(interval)));
+        /*long interval = qcResultShortPageVO.getEndDate().getTime() + 1000;
+        qcResultShortPageVO.setEndDate(new Date(Long.valueOf(interval)));*/
     }
 
     /**
@@ -267,7 +263,19 @@ public class FilterFacade {
         String userId = SysUserUtils.getCurrentPrincipleID();
         entryStatisticsVO.setHospitalId(hospitalId);
         entryStatisticsVO.setUserId(Long.valueOf(userId));
-        long interval = entryStatisticsVO.getEndDate().getTime() + 1000;
-        entryStatisticsVO.setEndDate(new Date(Long.valueOf(interval)));
+        /*long interval = entryStatisticsVO.getEndDate().getTime() + 1000;
+        entryStatisticsVO.setEndDate(new Date(Long.valueOf(interval)));*/
+    }
+
+    /**
+     * 未整改病历统计入参拼接
+     *
+     * @param filterUnModifyMRVO
+     */
+    public void filterUnModifyMRVOSet(FilterUnModifyMRVO filterUnModifyMRVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        filterUnModifyMRVO.setHospitalId(hospitalId);
+        filterUnModifyMRVO.setUserId(Long.valueOf(userId));
     }
 }

+ 98 - 0
src/main/java/com/diagbot/facade/MedCheckInfoFacade.java

@@ -0,0 +1,98 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.entity.MedCheckInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.MedCheckInfoServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.SysUserUtils;
+import com.diagbot.vo.MedCheckInfoAddVO;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-07-06 13:27
+ */
+@Component
+public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
+
+    /**
+     * @param medCheckInfoAddVO
+     * @return
+     */
+    public Boolean addMedCheckInfos(MedCheckInfoAddVO medCheckInfoAddVO) {
+        boolean res = false;
+        Date now = DateUtil.now();
+        //获取人员id 和 该人员的医院id
+        Long hospitalId = Long.valueOf(SysUserUtils.getCurrentHospitalID());
+        String principleName = SysUserUtils.getCurrentPrinciple();
+        Long principleId = Long.valueOf(SysUserUtils.getCurrentPrincipleID());
+        Map<String, Object> mapAll = new HashMap<String, Object>();
+        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
+        mapAll.put("behospital_code", medCheckInfoAddVO.getBehospitalCode());
+        mapAll.put("hospital_id", hospitalId);
+        QueryWrapper<MedCheckInfo> medCheckInfoQuerys = new QueryWrapper<>();
+        medCheckInfoQuerys.allEq(mapAll);
+        MedCheckInfo data = this.getOne(medCheckInfoQuerys, false);
+        if (data != null) {
+            //检验核查人是否是本人
+            if (data.getCheckId().equals(principleId)) {
+                res = saveNew(mapAll, now, hospitalId, principleId, principleName, medCheckInfoAddVO);
+            } else {
+                throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据已被人核查,您暂无权限!");
+            }
+        } else {
+            //该病历没有核查的时候, 就添加核查记录
+            MedCheckInfo medCheckInfo = new MedCheckInfo();
+            medCheckInfo.setGmtCreate(now);
+            medCheckInfo.setGmtModified(now);
+            medCheckInfo.setHospitalId(hospitalId);
+            medCheckInfo.setCheckId(principleId);
+            medCheckInfo.setCheckName(principleName);
+            medCheckInfo.setCheckTime(now);
+            medCheckInfo.setStatus(medCheckInfoAddVO.getCheckStatus());
+            medCheckInfo.setBehospitalCode(medCheckInfoAddVO.getBehospitalCode());
+            res = this.save(medCheckInfo);
+        }
+
+        return res;
+    }
+
+    /**
+     * @param mapAll
+     * @param now
+     * @param hospitalId
+     * @param principleId
+     * @param principleName
+     * @param medCheckInfoAddVO
+     * @return
+     */
+    public boolean saveNew(Map<String, Object> mapAll, Date now, Long hospitalId, Long principleId, String principleName, MedCheckInfoAddVO medCheckInfoAddVO) {
+        boolean res = false;
+        UpdateWrapper<MedCheckInfo> medCheckInfoUpdate = new UpdateWrapper<>();
+        medCheckInfoUpdate.allEq(mapAll).set("is_deleted", IsDeleteEnum.Y.getKey()).set("gmt_modified", now);
+        res = this.update(medCheckInfoUpdate);
+        //删除原来的成功后, 再新建一条核查数据
+        if (res) {
+            MedCheckInfo medCheckInfo = new MedCheckInfo();
+            medCheckInfo.setGmtCreate(now);
+            medCheckInfo.setGmtModified(now);
+            medCheckInfo.setHospitalId(hospitalId);
+            medCheckInfo.setCheckId(principleId);
+            medCheckInfo.setCheckName(principleName);
+            medCheckInfo.setCheckTime(now);
+            medCheckInfo.setStatus(medCheckInfoAddVO.getCheckStatus());
+            medCheckInfo.setBehospitalCode(medCheckInfoAddVO.getBehospitalCode());
+            res = this.save(medCheckInfo);
+        }
+        return res;
+    }
+}

+ 44 - 0
src/main/java/com/diagbot/facade/QcClientFacade.java

@@ -0,0 +1,44 @@
+package com.diagbot.facade;
+
+import com.diagbot.client.QcServiceClient;
+import com.diagbot.dto.OutputInfo;
+import com.diagbot.dto.Response;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.util.SpringContextUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.QueryVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.net.URI;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/7/8 11:33
+ */
+@Component
+public class QcClientFacade {
+
+    @Autowired
+    private QcServiceClient qcServiceClient;
+    @Autowired
+    private SysHospitalSetFacade sysHospitalSetFacade;
+
+    public Response<OutputInfo> extract(QueryVo queryVo) {
+        URI uri = null;
+        String code = "active_profiles_" + SpringContextUtil.getActiveProfile();
+        String url = sysHospitalSetFacade.getValue(Long.valueOf(queryVo.getHospitalId()), code);
+        if (StringUtil.isBlank(url)) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "配置表内找不到评分接口地址数据!");
+        }
+        try {
+            uri = new URI(url);
+        } catch (Exception e) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR);
+        }
+
+        return qcServiceClient.extract(uri, queryVo);
+    }
+}

+ 13 - 6
src/main/java/com/diagbot/facade/QcresultInfoFacade.java

@@ -79,13 +79,13 @@ public class QcresultInfoFacade extends QcresultInfoServiceImpl {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "该医院下该病历号不存在!");
         }
         //验证是否评估过
-        Integer cnt
-                = this.count(
+        QcresultInfo qcresultInfo
+                = this.getOne(
                 new QueryWrapper<QcresultInfo>()
                         .eq("is_deleted", IsDeleteEnum.N.getKey())
                         .eq("hospital_id", hospitalId)
-                        .eq("behospital_code", qcresultVO.getBehospitalCode()));
-        if (cnt < 1) {
+                        .eq("behospital_code", qcresultVO.getBehospitalCode()), false);
+        if (null == qcresultInfo) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "该病历尚未评分,请先评分!");
         }
         //查询质控评分明细信息
@@ -111,7 +111,7 @@ public class QcresultInfoFacade extends QcresultInfoServiceImpl {
         AnalyzeVO analyzeVO = new AnalyzeVO();
         analyzeVO.setHospitalId(hospitalId);
         analyzeVO.setBehospitalCode(qcresultVO.getBehospitalCode());
-        Date date = this.saveQcResult(algorithmDTO, algorithmVO, analyzeVO, null, null, false);
+        Date date = this.saveQcResult(algorithmDTO, algorithmVO, analyzeVO, null, null, false, qcresultInfo);
         //返回参数组装
         AnalyzeDTO analyzeDTO = new AnalyzeDTO();
         analyzeDTO.setBehospitalCode(qcresultVO.getBehospitalCode());
@@ -136,7 +136,7 @@ public class QcresultInfoFacade extends QcresultInfoServiceImpl {
      * @return 评分的时间
      */
     public Date saveQcResult(AlgorithmDTO algorithmDTO, AlgorithmVO algorithmVO, AnalyzeVO analyzeVO,
-                             String pageData, String menuData, Boolean isTask) {
+                             String pageData, String menuData, Boolean isTask, QcresultInfo qcresultInfoOld) {
         //更新质控评分结果信息
         Long useId = 0L;
         if (!isTask) {
@@ -153,6 +153,13 @@ public class QcresultInfoFacade extends QcresultInfoServiceImpl {
                 .set("gmt_modified", now));
         //新增记录
         QcresultInfo qcresultInfo = new QcresultInfo();
+        if (qcresultInfoOld != null) {
+            //新增、删除、修改时的操作
+            BeanUtil.copyProperties(qcresultInfoOld, qcresultInfo);
+        } else {
+            //基本评分是的操作
+            qcresultInfo.setHaveHomePage(analyzeVO.getHaveHomePage());
+        }
         qcresultInfo.setBehospitalCode(analyzeVO.getBehospitalCode());
         qcresultInfo.setHospitalId(analyzeVO.getHospitalId());
         qcresultInfo.setScoreRes(algorithmDTO.getScore());

+ 47 - 0
src/main/java/com/diagbot/facade/SysHospitalSetFacade.java

@@ -0,0 +1,47 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.SysHospitalSet;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.SysHospitalSetServiceImpl;
+import com.diagbot.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/7/6 9:29
+ */
+@Component
+public class SysHospitalSetFacade extends SysHospitalSetServiceImpl {
+
+    public String getScoreType(Long hospitalId) {
+        String res = "0";
+        SysHospitalSet sysHospitalSet
+                = this.getOne(new QueryWrapper<SysHospitalSet>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("hospital_id", hospitalId)
+                        .eq("code", "score_type")
+                , false);
+        if (null != sysHospitalSet
+                && sysHospitalSet.getValue().equals("1")) {
+            res = "1";
+        }
+        return res;
+    }
+
+    public String getValue(Long hospitalId, String code) {
+        String res = "";
+        SysHospitalSet sysHospitalSet
+                = this.getOne(new QueryWrapper<SysHospitalSet>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("hospital_id", hospitalId)
+                        .eq("code", code)
+                , false);
+        if (null != sysHospitalSet
+                && StringUtil.isNotBlank(sysHospitalSet.getValue())) {
+            res = sysHospitalSet.getValue();
+        }
+        return res;
+    }
+}

+ 99 - 0
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -6,12 +6,14 @@ import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.EntryStatisticsDTO;
 import com.diagbot.dto.ExportExcelDTO;
+import com.diagbot.dto.HomePageImproveDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.LevelStatisticsTZDTO;
 import com.diagbot.dto.MsgDTO;
 import com.diagbot.dto.NumDTO;
 import com.diagbot.dto.QcResultShortDTO;
+import com.diagbot.dto.UnModifyMRDetailDTO;
 import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.vo.AnalyzeCodeVO;
 import com.diagbot.vo.AnalyzeVO;
@@ -22,6 +24,7 @@ import com.diagbot.vo.FilterOrderByDeptVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByDeptVO;
 import com.diagbot.vo.FilterPageVO;
+import com.diagbot.vo.FilterUnModifyMRVO;
 import com.diagbot.vo.FilterVO;
 import com.diagbot.vo.QcResultShortPageVO;
 import com.diagbot.vo.TaskVO;
@@ -254,4 +257,100 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      * @return
      */
     public List<EntryStatisticsDTO> entryStatistics(EntryStatisticsVO entryStatisticsVO);
+
+    /**
+     * 非医嘱离院病人记录
+     *
+     * @param filterVO
+     * @return
+     */
+    public int nonAdviceCount(FilterVO filterVO);
+
+    /**
+     * 31天内再入院记录
+     *
+     * @param filterVO
+     * @return
+     */
+    public int get31DaysBehospitalCount(FilterVO filterVO);
+
+    /**
+     * 病案首页质控病历数统计-全院(首页)
+     *
+     * @param filterVO
+     * @return
+     */
+    public HomePageNumDTO homePageQcPercent(FilterVO filterVO);
+
+    /**
+     * 病案首页完整率统计-全院(首页)
+     *
+     * @param filterVO
+     * @return
+     */
+    public HomePageNumDTO hmEmptyEntryPercent(FilterVO filterVO);
+
+    /**
+     * 离院病人质控评分详情页
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public IPage<QcResultShortDTO> leaveHosMRPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+
+    /**
+     * 改善率统计-全院(首页)
+     *
+     * @param filterVO
+     * @return
+     */
+    public HomePageImproveDTO homePageImproveCount(FilterVO filterVO);
+
+    /**
+     * 质控核查统计(内页)
+     *
+     * @param filterOrderVO
+     * @return
+     */
+    public List<HomePageImproveDTO> qcCheckStatistics(FilterOrderVO filterOrderVO);
+
+    /**
+     * 离院病人质控评分详情页导出到excel
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public List<ExportExcelDTO> leaveHosMRPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+
+    /**
+     * 条目缺陷质控评分详情页导出到excel
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public List<ExportExcelDTO> qcResultShortPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+
+    /**
+     * 未整改病历统计
+     *
+     * @param filterUnModifyMRVO
+     * @return
+     */
+    public List<UnModifyMRDetailDTO> unModifyMRStatistics(FilterUnModifyMRVO filterUnModifyMRVO);
+
+    /**
+     * 未整改病历质控评分页(内页)
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public IPage<QcResultShortDTO> unModifyMRPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+
+    /**
+     * 未整改病历缺陷评分详情页导出
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public List<ExportExcelDTO> unModifyMRPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
 }

+ 6 - 1
src/main/java/com/diagbot/mapper/DoctorAdviceMapper.java

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.DoctorAdvice;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.DoctorAdviceDTO;
+import com.diagbot.entity.DoctorAdvice;
+import com.diagbot.vo.DoctorAdviceVO;
 
 import java.util.List;
 
@@ -15,4 +18,6 @@ import java.util.List;
  */
 public interface DoctorAdviceMapper extends BaseMapper<DoctorAdvice> {
     public void updateBatchByKey(List<DoctorAdvice> list);
+
+    IPage<DoctorAdviceDTO> getPage(DoctorAdviceVO doctorAdviceVO);
 }

+ 16 - 0
src/main/java/com/diagbot/mapper/MedCheckInfoMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.MedCheckInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 核查表 Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-07-06
+ */
+public interface MedCheckInfoMapper extends BaseMapper<MedCheckInfo> {
+
+}

+ 16 - 0
src/main/java/com/diagbot/mapper/SysHospitalSetMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.SysHospitalSet;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 医院所有配置信息 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-07-06
+ */
+public interface SysHospitalSetMapper extends BaseMapper<SysHospitalSet> {
+
+}

+ 99 - 0
src/main/java/com/diagbot/service/BehospitalInfoService.java

@@ -6,12 +6,14 @@ import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.EntryStatisticsDTO;
 import com.diagbot.dto.ExportExcelDTO;
+import com.diagbot.dto.HomePageImproveDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.LevelStatisticsTZDTO;
 import com.diagbot.dto.MsgDTO;
 import com.diagbot.dto.NumDTO;
 import com.diagbot.dto.QcResultShortDTO;
+import com.diagbot.dto.UnModifyMRDetailDTO;
 import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.vo.AnalyzeCodeVO;
 import com.diagbot.vo.AnalyzeVO;
@@ -22,6 +24,7 @@ import com.diagbot.vo.FilterOrderByDeptVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByDeptVO;
 import com.diagbot.vo.FilterPageVO;
+import com.diagbot.vo.FilterUnModifyMRVO;
 import com.diagbot.vo.FilterVO;
 import com.diagbot.vo.QcResultShortPageVO;
 import com.diagbot.vo.TaskVO;
@@ -247,4 +250,100 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      * @return
      */
     public List<EntryStatisticsDTO> entryStatistics(EntryStatisticsVO entryStatisticsVO);
+
+    /**
+     * 非医嘱离院病人记录
+     *
+     * @param filterVO
+     * @return
+     */
+    public int nonAdviceCount(FilterVO filterVO);
+
+    /**
+     * 31天内再入院记录
+     *
+     * @param filterVO
+     * @return
+     */
+    public int get31DaysBehospitalCount(FilterVO filterVO);
+
+    /**
+     * 病案首页质控病历数统计-全院(首页)
+     *
+     * @param filterVO
+     * @return
+     */
+    public HomePageNumDTO homePageQcPercent(FilterVO filterVO);
+
+    /**
+     * 病案首页完整率统计-全院(首页)
+     *
+     * @param filterVO
+     * @return
+     */
+    public HomePageNumDTO hmEmptyEntryPercent(FilterVO filterVO);
+
+    /**
+     * 离院病人质控评分详情页
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public IPage<QcResultShortDTO> leaveHosMRPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+
+    /**
+     * 改善率统计-全院(首页)
+     *
+     * @param filterVO
+     * @return
+     */
+    public HomePageImproveDTO homePageImproveCount(FilterVO filterVO);
+
+    /**
+     * 质控核查统计(内页)
+     *
+     * @param filterOrderVO
+     * @return
+     */
+    public List<HomePageImproveDTO> qcCheckStatistics(FilterOrderVO filterOrderVO);
+
+    /**
+     * 离院病人质控评分详情页导出到excel
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public List<ExportExcelDTO> leaveHosMRPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+
+    /**
+     * 条目缺陷质控评分详情页导出到excel
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public List<ExportExcelDTO> qcResultShortPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+
+    /**
+     * 未整改病历统计
+     *
+     * @param filterUnModifyMRVO
+     * @return
+     */
+    public List<UnModifyMRDetailDTO> unModifyMRStatistics(FilterUnModifyMRVO filterUnModifyMRVO);
+
+    /**
+     * 未整改病历质控评分页(内页)
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public IPage<QcResultShortDTO> unModifyMRPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+
+    /**
+     * 未整改病历缺陷评分详情页导出
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public List<ExportExcelDTO> unModifyMRPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
 }

+ 4 - 0
src/main/java/com/diagbot/service/DoctorAdviceService.java

@@ -1,7 +1,10 @@
 package com.diagbot.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.DoctorAdviceDTO;
 import com.diagbot.entity.DoctorAdvice;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.DoctorAdviceVO;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface DoctorAdviceService extends IService<DoctorAdvice> {
 
+    IPage<DoctorAdviceDTO> getPage(DoctorAdviceVO doctorAdviceVO);
 }

+ 16 - 0
src/main/java/com/diagbot/service/MedCheckInfoService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.MedCheckInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 核查表 服务类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-07-06
+ */
+public interface MedCheckInfoService extends IService<MedCheckInfo> {
+
+}

+ 16 - 0
src/main/java/com/diagbot/service/SysHospitalSetService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.SysHospitalSet;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 医院所有配置信息 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-07-06
+ */
+public interface SysHospitalSetService extends IService<SysHospitalSet> {
+
+}

+ 135 - 0
src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java

@@ -6,12 +6,14 @@ import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.EntryStatisticsDTO;
 import com.diagbot.dto.ExportExcelDTO;
+import com.diagbot.dto.HomePageImproveDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.LevelStatisticsTZDTO;
 import com.diagbot.dto.MsgDTO;
 import com.diagbot.dto.NumDTO;
 import com.diagbot.dto.QcResultShortDTO;
+import com.diagbot.dto.UnModifyMRDetailDTO;
 import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.mapper.BehospitalInfoMapper;
 import com.diagbot.service.BehospitalInfoService;
@@ -24,6 +26,7 @@ import com.diagbot.vo.FilterOrderByDeptVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByDeptVO;
 import com.diagbot.vo.FilterPageVO;
+import com.diagbot.vo.FilterUnModifyMRVO;
 import com.diagbot.vo.FilterVO;
 import com.diagbot.vo.QcResultShortPageVO;
 import com.diagbot.vo.TaskVO;
@@ -336,4 +339,136 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
     public List<EntryStatisticsDTO> entryStatistics(EntryStatisticsVO entryStatisticsVO) {
         return baseMapper.entryStatistics(entryStatisticsVO);
     }
+
+    /**
+     * 非医嘱离院病人记录
+     *
+     * @param filterVO
+     * @return
+     */
+    @Override
+    public int nonAdviceCount(FilterVO filterVO) {
+        return baseMapper.nonAdviceCount(filterVO);
+    }
+
+    /**
+     * 31天内再入院记录
+     *
+     * @param filterVO
+     * @return
+     */
+    @Override
+    public int get31DaysBehospitalCount(FilterVO filterVO) {
+        return baseMapper.get31DaysBehospitalCount(filterVO);
+    }
+
+    /**
+     * 病案首页质控病历数统计-全院(首页)
+     *
+     * @param filterVO
+     * @return
+     */
+    @Override
+    public HomePageNumDTO homePageQcPercent(FilterVO filterVO) {
+        return baseMapper.homePageQcPercent(filterVO);
+    }
+
+    /**
+     * 病案首页完整率统计-全院(首页)
+     *
+     * @param filterVO
+     * @return
+     */
+    @Override
+    public HomePageNumDTO hmEmptyEntryPercent(FilterVO filterVO) {
+        return baseMapper.hmEmptyEntryPercent(filterVO);
+    }
+
+    /**
+     * 离院病人质控评分详情页
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    @Override
+    public IPage<QcResultShortDTO> leaveHosMRPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO) {
+        return baseMapper.leaveHosMRPage(qcResultShortPageVO);
+    }
+
+    /**
+     * 改善率统计-全院(首页)
+     *
+     * @param filterVO
+     * @return
+     */
+    @Override
+    public HomePageImproveDTO homePageImproveCount(FilterVO filterVO) {
+        return baseMapper.homePageImproveCount(filterVO);
+    }
+
+    /**
+     * 质控核查统计(内页)
+     *
+     * @param filterOrderVO
+     * @return
+     */
+    @Override
+    public List<HomePageImproveDTO> qcCheckStatistics(FilterOrderVO filterOrderVO) {
+        return baseMapper.qcCheckStatistics(filterOrderVO);
+    }
+
+    /**
+     * 离院病人质控评分详情页导出到excel
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    @Override
+    public List<ExportExcelDTO> leaveHosMRPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO) {
+        return baseMapper.leaveHosMRPageExport(qcResultShortPageVO);
+    }
+
+    /**
+     * 条目缺陷质控评分详情页导出到excel
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    @Override
+    public List<ExportExcelDTO> qcResultShortPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO) {
+        return baseMapper.qcResultShortPageExport(qcResultShortPageVO);
+    }
+
+    /**
+     * 未整改病历统计
+     *
+     * @param filterUnModifyMRVO
+     * @return
+     */
+    @Override
+    public List<UnModifyMRDetailDTO> unModifyMRStatistics(FilterUnModifyMRVO filterUnModifyMRVO) {
+        return baseMapper.unModifyMRStatistics(filterUnModifyMRVO);
+    }
+
+    /**
+     * 未整改病历质控评分页(内页)
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    @Override
+    public IPage<QcResultShortDTO> unModifyMRPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO) {
+        return baseMapper.unModifyMRPage(qcResultShortPageVO);
+    }
+
+    /**
+     * 未整改病历缺陷评分详情页导出
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    @Override
+    public List<ExportExcelDTO> unModifyMRPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO) {
+        return baseMapper.unModifyMRPageExport((qcResultShortPageVO));
+    }
 }

+ 7 - 0
src/main/java/com/diagbot/service/impl/DoctorAdviceServiceImpl.java

@@ -1,9 +1,12 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.DoctorAdviceDTO;
 import com.diagbot.entity.DoctorAdvice;
 import com.diagbot.mapper.DoctorAdviceMapper;
 import com.diagbot.service.DoctorAdviceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.DoctorAdviceVO;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -25,4 +28,8 @@ public class DoctorAdviceServiceImpl extends ServiceImpl<DoctorAdviceMapper, Doc
     public void updateBatchByKey(List<DoctorAdvice> list){
         this.baseMapper.updateBatchByKey(list);
     }
+
+    public IPage<DoctorAdviceDTO> getPage(DoctorAdviceVO doctorAdviceVO){
+        return this.baseMapper.getPage(doctorAdviceVO);
+    }
 }

+ 20 - 0
src/main/java/com/diagbot/service/impl/MedCheckInfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.MedCheckInfo;
+import com.diagbot.mapper.MedCheckInfoMapper;
+import com.diagbot.service.MedCheckInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 核查表 服务实现类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-07-06
+ */
+@Service
+public class MedCheckInfoServiceImpl extends ServiceImpl<MedCheckInfoMapper, MedCheckInfo> implements MedCheckInfoService {
+
+}

+ 20 - 0
src/main/java/com/diagbot/service/impl/SysHospitalSetServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.SysHospitalSet;
+import com.diagbot.mapper.SysHospitalSetMapper;
+import com.diagbot.service.SysHospitalSetService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 医院所有配置信息 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-07-06
+ */
+@Service
+public class SysHospitalSetServiceImpl extends ServiceImpl<SysHospitalSetMapper, SysHospitalSet> implements SysHospitalSetService {
+
+}

+ 57 - 0
src/main/java/com/diagbot/util/ClassUtil.java

@@ -0,0 +1,57 @@
+package com.diagbot.util;
+
+import java.beans.BeanInfo;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Set;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/13 16:56
+ */
+public class ClassUtil {
+    /**
+     * @param object    旧的对象带值
+     * @param addMap    动态需要添加的属性和属性类型
+     * @param addValMap 动态需要添加的属性和属性值
+     * @return 新的对象
+     * @throws Exception
+     */
+    public Object dynamicClass(Object object, HashMap addMap, HashMap addValMap) throws Exception {
+        HashMap returnMap = new HashMap();
+        HashMap typeMap = new HashMap();
+
+
+        Class<?> type = object.getClass();
+        BeanInfo beanInfo = Introspector.getBeanInfo(type);
+        PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+        for (int i = 0; i < propertyDescriptors.length; i++) {
+            PropertyDescriptor descriptor = propertyDescriptors[i];
+            String propertyName = descriptor.getName();
+            if (!propertyName.equals("class")) {
+                Method readMethod = descriptor.getReadMethod();
+                Object result = readMethod.invoke(object);
+                //可以判断为 NULL不赋值
+                returnMap.put(propertyName, result);
+                typeMap.put(propertyName, descriptor.getPropertyType());
+            }
+        }
+
+        returnMap.putAll(addValMap);
+        typeMap.putAll(addMap);
+        //map转换成实体对象
+        DynamicBean bean = new DynamicBean(typeMap);
+        //赋值
+        Set keys = typeMap.keySet();
+        for (Iterator it = keys.iterator(); it.hasNext(); ) {
+            String key = (String) it.next();
+            bean.setValue(key, returnMap.get(key));
+        }
+        Object obj = bean.getObject();
+        return obj;
+    }
+}

+ 70 - 0
src/main/java/com/diagbot/util/DynamicBean.java

@@ -0,0 +1,70 @@
+package com.diagbot.util;
+
+import org.springframework.cglib.beans.BeanMap;
+import org.springframework.cglib.beans.BeanGenerator;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/13 16:55
+ */
+public class DynamicBean {
+    private Object object = null; //动态生成的类
+    private BeanMap beanMap = null; //存放属性名称以及属性的类型
+
+    public DynamicBean() {
+        super();
+    }
+
+    public DynamicBean(Map propertyMap) {
+        this.object = generateBean(propertyMap);
+        this.beanMap = BeanMap.create(this.object);
+    }
+
+    /**
+     * @param propertyMap
+     * @return
+     */
+    private Object generateBean(Map propertyMap) {
+        BeanGenerator generator = new BeanGenerator();
+        Set keySet = propertyMap.keySet();
+        for (Iterator i = keySet.iterator(); i.hasNext(); ) {
+            String key = (String) i.next();
+            generator.addProperty(key, (Class) propertyMap.get(key));
+        }
+        return generator.create();
+    }
+
+    /**
+     * 给bean属性赋值
+     *
+     * @param property 属性名
+     * @param value    值
+     */
+    public void setValue(Object property, Object value) {
+        beanMap.put(property, value);
+    }
+
+    /**
+     * 通过属性名得到属性值
+     *
+     * @param property 属性名
+     * @return 值
+     */
+    public Object getValue(String property) {
+        return beanMap.get(property);
+    }
+
+    /**
+     * 得到该实体bean对象
+     *
+     * @return
+     */
+    public Object getObject() {
+        return this.object;
+    }
+}

+ 17 - 0
src/main/java/com/diagbot/util/ExcelUtils.java

@@ -6,6 +6,7 @@ import cn.afterturn.easypoi.excel.ExcelImportUtil;
 import cn.afterturn.easypoi.excel.entity.ExportParams;
 import cn.afterturn.easypoi.excel.entity.ImportParams;
 import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
+import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.ExcelExportStylerUserImpl;
@@ -19,6 +20,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
 import java.net.URLEncoder;
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
@@ -43,6 +45,12 @@ public class ExcelUtils {
         userExport(list, pojoClass, fileName, response, exportParams);
     }
 
+    public static void exportExcelDynamicCol(List<ExcelExportEntity> entityList, Collection<?> dataSet, String title, String sheetName, String fileName,
+                                    HttpServletResponse response) {
+        ExportParams exportParams = new ExportParams(title, sheetName);
+        dynamicColExport(entityList, dataSet, fileName, response, exportParams);
+    }
+
     public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName,
                                    HttpServletResponse response, float height) {
         Boolean havTitle = false;
@@ -70,6 +78,15 @@ public class ExcelUtils {
         downLoadExcel(fileName, response, workbook);
     }
 
+    private static void dynamicColExport(List<ExcelExportEntity> entityList, Collection<?> dataSet, String fileName, HttpServletResponse response,
+                                         ExportParams exportParams) {
+        Workbook workbook = ExcelExportUtil.exportExcel(exportParams,entityList,dataSet);
+        if (workbook != null) {
+            ;
+        }
+        downLoadExcel(fileName, response, workbook);
+    }
+
     private static void userExport(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response,
                                    ExportParams exportParams) {
         Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list);

+ 39 - 0
src/main/java/com/diagbot/util/ObjectUtil.java

@@ -0,0 +1,39 @@
+package com.diagbot.util;
+
+import java.lang.reflect.Field;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/14 11:25
+ */
+public class ObjectUtil {
+    /**
+     * 单个对象的某个键的值
+     *
+     * @param obj 对象
+     * @param key 键
+     * @return Object 键在对象中所对应得值 没有查到时返回空字符串
+     */
+    public static Object getValueByKey(Object obj, String key) {
+        // 得到类对象
+        Class userCla = (Class) obj.getClass();
+        // 得到类中的所有属性集合
+        Field[] fs = userCla.getDeclaredFields();
+        for (int i = 0; i < fs.length; i++) {
+            Field f = fs[i];
+            f.setAccessible(true); // 设置些属性是可以访问的
+            try {
+                if (f.getName().endsWith(key)) {
+                    return f.get(obj);
+                }
+            } catch (IllegalArgumentException e) {
+                e.printStackTrace();
+            } catch (IllegalAccessException e) {
+                e.printStackTrace();
+            }
+        }
+        // 没有查到时返回空字符串
+        return null;
+    }
+}

+ 47 - 0
src/main/java/com/diagbot/util/SpringContextUtil.java

@@ -0,0 +1,47 @@
+package com.diagbot.util;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+import java.util.Locale;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/7/8 11:45
+ */
+@Component
+public class SpringContextUtil implements ApplicationContextAware {
+
+    private static ApplicationContext context = null;
+
+    /* (non Javadoc)
+     * @Title: setApplicationContext
+     * @Description: spring获取bean工具类
+     * @param applicationContext
+     * @throws BeansException
+     * @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext)
+     */
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext)
+            throws BeansException {
+        this.context = applicationContext;
+    }
+
+    // 传入线程中
+    public static <T> T getBean(String beanName) {
+        return (T) context.getBean(beanName);
+    }
+
+    // 国际化使用
+    public static String getMessage(String key) {
+        return context.getMessage(key, null, Locale.getDefault());
+    }
+
+    /// 获取当前环境
+    public static String getActiveProfile() {
+        return context.getEnvironment().getActiveProfiles()[0];
+    }
+}

+ 3 - 0
src/main/java/com/diagbot/vo/AnalyzeVO.java

@@ -21,4 +21,7 @@ public class AnalyzeVO {
     // 是否使用CRF缓存(false: 不使用缓存,true:使用缓存)
     @ApiModelProperty(hidden = true)
     private boolean useCrfCache;
+    //是否有病案首页(0:无,1:有)
+    @ApiModelProperty(hidden = true)
+    private Integer haveHomePage;
 }

+ 2 - 0
src/main/java/com/diagbot/vo/BehospitalPageVO.java

@@ -94,4 +94,6 @@ public class BehospitalPageVO extends Page implements Serializable {
      */
     @ApiModelProperty(hidden = true)
     private String isPlacefile;
+
+    private Integer checkStatus;
 }

+ 51 - 0
src/main/java/com/diagbot/vo/DoctorAdviceVO.java

@@ -0,0 +1,51 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/7/13 14:59
+ */
+@Getter
+@Setter
+public class DoctorAdviceVO extends Page {
+    /**
+     * 医院id
+     */
+    @ApiModelProperty(hidden = true)
+    private Long hospitalId;
+
+    /**
+     * 病历号
+     */
+    @NotBlank(message = "请输入病历号")
+    private String behospitalCode;
+
+    /**
+     * 医嘱类型判别(嘱托长嘱、长期医嘱等)
+     */
+    private String doctorAdviceType;
+
+    /**
+     * 医嘱项目名称
+     */
+    private String daItemName;
+
+    /**
+     * 医嘱开始时间开始
+     */
+    private Date daStartDateStart;
+
+    /**
+     * 医嘱开始时间结束
+     */
+    private Date daStartDateEnd;
+
+}

+ 1 - 0
src/main/java/com/diagbot/vo/ExportQcresultVO.java

@@ -27,4 +27,5 @@ public class ExportQcresultVO {
     private String doctorCode;
     private String deptId;
     private String name;
+    private Integer checkStatus;
 }

+ 3 - 1
src/main/java/com/diagbot/vo/FilterPageVO.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 
 /**
@@ -18,15 +19,16 @@ public class FilterPageVO extends Page {
     /**
      * 统计维度 1-本月,2-本年
      */
-    @NotNull(message = "请输入本年或本月")
     private Integer type;
     /**
      * 起始时间
      */
+    @NotBlank(message = "请输入起始时间")
     private String startDate;
     /**
      * 结束时间
      */
+    @NotBlank(message = "请输入结束时间")
     private String endDate;
     /**
      * 医院id

+ 60 - 0
src/main/java/com/diagbot/vo/FilterUnModifyMRVO.java

@@ -0,0 +1,60 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/13 17:06
+ */
+@Getter
+@Setter
+public class FilterUnModifyMRVO {
+    /**
+     * 起始时间
+     */
+    @NotBlank(message = "请输入起始时间")
+    private String startDate;
+    /**
+     * 结束时间
+     */
+    @NotBlank(message = "请输入结束时间")
+    private String endDate;
+    /**
+     * 医院id
+     */
+    @ApiModelProperty(hidden = true)
+    private String hospitalId;
+    /**
+     * 医生id
+     */
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+    /**
+     * 关键条目id
+     */
+    @ApiModelProperty(hidden = true)
+    private List<Long> casesEntryIds;
+
+    /**
+     * 科室名称
+     */
+    private String name;
+
+    /**
+     * 排序(升序)
+     */
+    private String asc;
+
+    /**
+     * 排序(降序)
+     */
+    private String desc;
+}

+ 4 - 2
src/main/java/com/diagbot/vo/FilterVO.java

@@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
-import javax.validation.constraints.NotNull;
+import javax.validation.constraints.NotBlank;
 
 /**
  * @Description:
@@ -17,15 +17,17 @@ public class FilterVO {
     /**
      * 统计维度 1-本月,2-本年
      */
-    @NotNull(message = "请输入本年或本月")
+    //@NotNull(message = "请输入本年或本月")
     private Integer type;
     /**
      * 起始时间
      */
+    @NotBlank(message = "请输入起始时间")
     private String startDate;
     /**
      * 结束时间
      */
+    @NotBlank(message = "请输入结束时间")
     private String endDate;
     /**
      * 医院id

+ 19 - 0
src/main/java/com/diagbot/vo/MedCheckInfoAddVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-07-06 13:30
+ */
+@Getter
+@Setter
+public class MedCheckInfoAddVO {
+    private Long hospitalId;//医院id
+    private String behospitalCode; // 病历id
+    @ApiModelProperty(hidden = true)
+    private Integer checkStatus = 1;//核查状态(0未核查,1已核查)
+}

+ 10 - 0
src/main/java/com/diagbot/vo/QcResultShortPageVO.java

@@ -66,4 +66,14 @@ public class QcResultShortPageVO extends Page {
      * 规则类型(0:无,1:空项,2:错误)
      */
     private Integer ruleType;
+
+    /**
+     * 离院人员类型(0/null:总人数,1:死亡人数,2:新生儿,3:手术病人数,4:非医嘱离院病人,5:31日再入院病人)
+     */
+    private Integer leaveHosType;
+
+    /**
+     * 核查状态(1:已核查,0:未核查)
+     */
+    private Integer checkStatus;
 }

+ 3 - 0
src/main/java/com/diagbot/vo/TaskVO.java

@@ -3,6 +3,7 @@ package com.diagbot.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -32,4 +33,6 @@ public class TaskVO {
     private Date endLeaveDate;
     // 是否使用CRF缓存
     private boolean useCrfCache;
+    // 指定编码列表
+    private List<String> behospitalCodeList = new ArrayList<>();
 }

+ 2 - 1
src/main/java/com/diagbot/web/BehospitalInfoController.java

@@ -162,7 +162,8 @@ public class BehospitalInfoController {
                     "【个性化需求】——默认即可<br>" +
                     "filterFlag: 筛选病历数据:0:未评分的病历【推荐使用】;1:全部病历【谨慎使用】<br>" +
                     "individuation:【1:近3天不含当天的病历强制评分更新】<br>" +
-                    "type:【1:出院时间比当前时间早3天前的病历(例如:长兴病历)】)<br>")
+                    "type:【1:出院时间比当前时间早3天前的病历(例如:长兴病历)】)<br>" +
+                    "behospitalCodeList:指定病历号<br>")
     @PostMapping("/execule")
     @SysLogger("execule")
     public RespDTO<Boolean> execule(@RequestBody TaskVO taskVO) {

+ 101 - 2
src/main/java/com/diagbot/web/ConsoleController.java

@@ -8,17 +8,20 @@ import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.EntryNumDTO;
 import com.diagbot.dto.EntryNumGroupDTO;
 import com.diagbot.dto.EntryStatisticsDTO;
+import com.diagbot.dto.HomePageImproveDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.LevelStatisticsTZDTO;
 import com.diagbot.dto.NumDTO;
 import com.diagbot.dto.QcResultShortDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.UnModifyMRDTO;
 import com.diagbot.facade.ConsoleFacade;
 import com.diagbot.vo.EntryStatisticsVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByAverageVO;
 import com.diagbot.vo.FilterPageVO;
+import com.diagbot.vo.FilterUnModifyMRVO;
 import com.diagbot.vo.FilterVO;
 import com.diagbot.vo.QcResultShortPageVO;
 import io.swagger.annotations.Api;
@@ -301,7 +304,7 @@ public class ConsoleController {
                     "dateType: 时间类型 1-本月/本年,2-上月/去年,3-去年本月/去年<br>")
     @PostMapping("/getAverageDayNumPage")
     @SysLogger("getAverageDayNumPage")
-    public RespDTO<IPage<AverageStatisticsDTO>> getAverageDayNumPage(@RequestBody @Valid FilterPageByAverageVO filterPageByAverageVO) {
+    public RespDTO<IPage<AverageStatisticsDTO>> getAverageDayNumPage(@RequestBody FilterPageByAverageVO filterPageByAverageVO) {
         return RespDTO.onSuc(consoleFacade.getAverageDayNumPage(filterPageByAverageVO));
     }
 
@@ -316,7 +319,7 @@ public class ConsoleController {
                     "dateType: 时间类型 1-本月/本年,2-上月/去年,3-去年本月/去年<br>")
     @PostMapping("/getAverageFeePage")
     @SysLogger("getAverageFeePage")
-    public RespDTO<IPage<AverageStatisticsFeeDTO>> getAverageFeePage(@RequestBody @Valid FilterPageByAverageVO filterPageByAverageVO) {
+    public RespDTO<IPage<AverageStatisticsFeeDTO>> getAverageFeePage(@RequestBody FilterPageByAverageVO filterPageByAverageVO) {
         return RespDTO.onSuc(consoleFacade.getAverageFeePage(filterPageByAverageVO));
     }
 
@@ -492,4 +495,100 @@ public class ConsoleController {
     public RespDTO<List<EntryStatisticsDTO>> entryStatistics(@RequestBody @Valid EntryStatisticsVO entryStatisticsVO) {
         return RespDTO.onSuc(consoleFacade.entryStatistics(entryStatisticsVO));
     }
+
+    /**
+     * 病案首页病历统计
+     *
+     * @param filterVO
+     * @return
+     */
+    @ApiOperation(value = "病案首页病历统计[by:zhaops]",
+            notes = "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>")
+    @PostMapping("/homePageMRCount")
+    @SysLogger("homePageMRCount")
+    public RespDTO<Map<String, Object>> homePageMRCount(@RequestBody @Valid FilterVO filterVO) {
+        return RespDTO.onSuc(consoleFacade.homePageMRCount(filterVO));
+    }
+
+    /**
+     * 出院人数统计
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    @ApiOperation(value = "出院人数统计[by:zhaops]",
+            notes = "behospitalCode: 病历号<br>" +
+                    "patName: 病人姓名 <br>" +
+                    "behDeptName:科室名称 <br>" +
+                    "doctorId:医生工号 <br>" +
+                    "doctorName:医生姓名 <br>" +
+                    "level: 病历等级 <br>" +
+                    "leaveHosType: 离院人员类型(0/null:总人数,1:死亡人数,2:新生儿,3:手术病人数,4:非医嘱离院病人,5:31日再入院病人) <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>")
+    @PostMapping("/leaveHosMRPage")
+    @SysLogger("leaveHosMRPage")
+    public RespDTO<IPage<QcResultShortDTO>> leaveHosMRPage(@RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) {
+        return RespDTO.onSuc(consoleFacade.leaveHosMRPage(qcResultShortPageVO));
+    }
+
+    /**
+     * 质控核查统计
+     *
+     * @param filterOrderVO
+     * @return
+     */
+    @ApiOperation(value = "质控核查统计[by:zhaops]",
+            notes = "name: 科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc:排序(降序) <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>")
+    @PostMapping("/qcCheckStatistics")
+    @SysLogger("qcCheckStatistics")
+    public RespDTO<List<HomePageImproveDTO>> qcCheckStatistics(@RequestBody @Valid FilterOrderVO filterOrderVO) {
+        return RespDTO.onSuc(consoleFacade.qcCheckStatistics(filterOrderVO));
+    }
+
+    /**
+     * 未整改病历统计
+     *
+     * @param filterUnModifyMRVO
+     * @return
+     */
+    @ApiOperation(value = "未整改病历统计[by:zhaops]",
+            notes = "name: 科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc:排序(降序) <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>")
+    @PostMapping("/unModifyMRStatistics")
+    @SysLogger("unModifyMRStatistics")
+    public RespDTO<UnModifyMRDTO> unModifyMRStatistics(@RequestBody @Valid FilterUnModifyMRVO filterUnModifyMRVO) {
+        return RespDTO.onSuc(consoleFacade.unModifyMRStatistics(filterUnModifyMRVO));
+    }
+
+    /**
+     * 未整改病历质控评分页(内页)
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    @ApiOperation(value = "未整改病历质控评分页(内页)[by:zhaops]",
+            notes = "behospitalCode: 病历号<br>" +
+                    "patName: 病人姓名 <br>" +
+                    "casesEntryName: 条目名称 <br>" +
+                    "casesEntryId: 条目id <br>" +
+                    "behDeptName:科室名称 <br>" +
+                    "doctorId:医生工号 <br>" +
+                    "doctorName:医生姓名 <br>" +
+                    "level: 病历等级 <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>")
+    @PostMapping("/unModifyMRPage")
+    @SysLogger("unModifyMRPage")
+    public RespDTO<IPage<QcResultShortDTO>> unModifyMRPage(@RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) {
+        return RespDTO.onSuc(consoleFacade.unModifyMRPage(qcResultShortPageVO));
+    }
 }

+ 82 - 2
src/main/java/com/diagbot/web/ConsoleExportController.java

@@ -6,6 +6,7 @@ import com.diagbot.vo.EntryStatisticsVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByAverageVO;
 import com.diagbot.vo.FilterPageVO;
+import com.diagbot.vo.FilterUnModifyMRVO;
 import com.diagbot.vo.QcResultShortPageVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -112,7 +113,7 @@ public class ConsoleExportController {
                     "dateType: 时间类型 1-本月/本年,2-上月/去年,3-去年本月/去年<br>")
     @PostMapping("/getAverageDayNumExport")
     @SysLogger("getAverageDayNumExport")
-    public void getAverageDayNumExport(HttpServletResponse response, @RequestBody @Valid FilterPageByAverageVO filterPageByAverageVO) {
+    public void getAverageDayNumExport(HttpServletResponse response, @RequestBody FilterPageByAverageVO filterPageByAverageVO) {
         consoleExportFacade.getAverageDayNumExport(response, filterPageByAverageVO);
     }
 
@@ -127,7 +128,7 @@ public class ConsoleExportController {
                     "dateType: 时间类型 1-本月/本年,2-上月/去年,3-去年本月/去年<br>")
     @PostMapping("/getAverageFeeExport")
     @SysLogger("getAverageFeeExport")
-    public void getAverageFeeExport(HttpServletResponse response, @RequestBody @Valid FilterPageByAverageVO filterPageByAverageVO) {
+    public void getAverageFeeExport(HttpServletResponse response, @RequestBody FilterPageByAverageVO filterPageByAverageVO) {
         consoleExportFacade.getAverageFeeExport(response, filterPageByAverageVO);
     }
 
@@ -220,4 +221,83 @@ public class ConsoleExportController {
     public void qcResultShortPageExport(HttpServletResponse response, @RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) {
         consoleExportFacade.qcResultShortPageExport(response, qcResultShortPageVO);
     }
+
+    /**
+     * 出院人数统计导出
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    @ApiOperation(value = "出院人数统计导出[by:zhaops]",
+            notes = "behospitalCode: 病历号<br>" +
+                    "patName: 病人姓名 <br>" +
+                    "behDeptName:科室名称 <br>" +
+                    "doctorId:医生工号 <br>" +
+                    "doctorName:医生姓名 <br>" +
+                    "level: 病历等级 <br>" +
+                    "leaveHosType: 离院人员类型(0/null:总人数,1:死亡人数,2:新生儿,3:手术病人数,4:非医嘱离院病人,5:31日再入院病人) <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>")
+    @PostMapping("/leaveHosMrPageExport")
+    @SysLogger("leaveHosMrPageExport")
+    public void leaveHosMrPageExport(HttpServletResponse response, @RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) {
+        consoleExportFacade.leaveHosMrPageExport(response, qcResultShortPageVO);
+    }
+
+    /**
+     * 质控核查统计导出
+     *
+     * @param filterOrderVO
+     * @return
+     */
+    @ApiOperation(value = "质控核查统计导出[by:zhaops]",
+            notes = "name: 科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc:排序(降序) <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>")
+    @PostMapping("/qcCheckStatisticsExport")
+    @SysLogger("qcCheckStatisticsExport")
+    public void qcCheckStatisticsExport(HttpServletResponse response, @RequestBody @Valid FilterOrderVO filterOrderVO) {
+        consoleExportFacade.qcCheckStatisticsExport(response, filterOrderVO);
+    }
+
+    /**
+     * 未整改病历详情页导出
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    @ApiOperation(value = "未整改病历详情页导出[by:zhaops]",
+            notes = "behospitalCode: 病历号<br>" +
+                    "patName: 病人姓名 <br>" +
+                    "behDeptName:科室名称 <br>" +
+                    "doctorId:医生工号 <br>" +
+                    "doctorName:医生姓名 <br>" +
+                    "level: 病历等级 <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>")
+    @PostMapping("/unModifyMRPageExport")
+    @SysLogger("unModifyMRPageExport")
+    public void unModifyMRPageExport(HttpServletResponse response, @RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) {
+        consoleExportFacade.unModifyMRPageExport(response, qcResultShortPageVO);
+    }
+
+    /**
+     * 未整改病历统计导出
+     *
+     * @param filterUnModifyMRVO
+     * @return
+     */
+    @ApiOperation(value = "未整改病历统计导出[by:zhaops]",
+            notes = "name: 科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc:排序(降序) <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>")
+    @PostMapping("/unModifyMRStatisticsExport")
+    @SysLogger("unModifyMRStatisticsExport")
+    public void unModifyMRStatisticsExport(HttpServletResponse response, @RequestBody @Valid FilterUnModifyMRVO filterUnModifyMRVO) {
+        consoleExportFacade.unModifyMRStatisticsExport(response, filterUnModifyMRVO);
+    }
 }

+ 45 - 0
src/main/java/com/diagbot/web/DoctorAdviceController.java

@@ -0,0 +1,45 @@
+package com.diagbot.web;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.DoctorAdviceDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.DoctorAdviceFacade;
+import com.diagbot.vo.DoctorAdviceVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/7/13 14:56
+ */
+@RestController
+@RequestMapping("/qc/doctoradvice")
+@SuppressWarnings("unchecked")
+@Api(value = "医嘱信息API", tags = { "医嘱信息API" })
+public class DoctorAdviceController {
+
+    @Autowired
+    private DoctorAdviceFacade doctorAdviceFacade;
+
+
+    @ApiOperation(value = "获取医嘱信息[by:gaodm]",
+            notes = "behospitalCode:病人住院序号<br>" +
+                    "doctorAdviceType:医嘱类型(模糊搜索)<br>" +
+                    "daItemName:医嘱项目名称(模糊搜索)<br>" +
+                    "daStartDateStart:医嘱开始时间<br>" +
+                    "daStartDateEnd:医嘱时间结束时间<br>")
+    @PostMapping("/getPage")
+    @SysLogger("getPage")
+    public RespDTO<IPage<DoctorAdviceDTO>> getPage(@RequestBody @Valid DoctorAdviceVO doctorAdviceVO) {
+        return RespDTO.onSuc(doctorAdviceFacade.getPageFac(doctorAdviceVO));
+    }
+}

+ 42 - 0
src/main/java/com/diagbot/web/MedCheckInfoController.java

@@ -0,0 +1,42 @@
+package com.diagbot.web;
+
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.MedCheckInfoFacade;
+import com.diagbot.vo.MedCheckInfoAddVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 核查表 前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-07-06
+ */
+@RestController
+@RequestMapping("/qc/medCheckInfo")
+@Api(value = "核查病历数据模块相关接口API", tags = { "核查病历数据模块相关接口API" })
+@SuppressWarnings("unchecked")
+public class MedCheckInfoController {
+
+    @Autowired
+    MedCheckInfoFacade medCheckInfoFacade;
+
+    @ApiOperation(value = "核查数据接口[by:wangfeng]",
+            notes = "核查数据接口")
+    @PostMapping("/addMedCheckInfo")
+    @SysLogger("addMedCheckInfo")
+    public RespDTO<Boolean> addMedCheckInfo(@RequestBody MedCheckInfoAddVO medCheckInfoAddVO) {
+        Boolean res = medCheckInfoFacade.addMedCheckInfos(medCheckInfoAddVO);
+        return RespDTO.onSuc(res);
+    }
+
+}

+ 0 - 1
src/main/resources/application-dev.yml

@@ -161,7 +161,6 @@ io.github.lvyahui8.spring:
 
 myhost: localhost
 oath.self.address: http://${myhost}:${server.port}
-qc.address: http://192.168.2.232:6009
 
 # 加解密开关
 encrypt:

+ 6 - 6
src/main/resources/application-local.yml

@@ -1,5 +1,5 @@
 server:
-  port: 5656
+  port: 5858
   max-http-header-size: 10MB
 
 hystrix:
@@ -59,7 +59,7 @@ spring:
     druid:
       driver-class-name: com.mysql.cj.jdbc.Driver
       platform: mysql
-      url: jdbc:mysql://192.168.100.157:3306/qc-5656?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+      url: jdbc:mysql://192.168.2.236:3306/qc?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
       username: root
       password: lantone
       # 连接池的配置信息
@@ -111,8 +111,8 @@ spring:
     database:
       cache: 8 # cache索引
       token: 8 # Token索引
-    host: 192.168.100.157  #Redis服务器地址
-    port: 6379 # Redis服务器连接端口(本地环境端口6378,其他环境端口是6379)
+    host: 192.168.2.236  #Redis服务器地址
+    port: 6378 # Redis服务器连接端口(本地环境端口6378,其他环境端口是6379)
     password: lantone # Redis服务器连接密码(默认为空)
     lettuce:
       pool:
@@ -161,11 +161,11 @@ io.github.lvyahui8.spring:
 
 myhost: localhost
 oath.self.address: http://${myhost}:${server.port}
-qc.address: http://192.168.100.157:6009
+qc.address: http://192.168.2.232:6009
 
 # 加解密开关
 encrypt:
-  enable: false
+  enable: true
 
 swagger:
   enable: true

+ 0 - 1
src/main/resources/application-pre.yml

@@ -161,7 +161,6 @@ io.github.lvyahui8.spring:
 
 myhost: localhost
 oath.self.address: http://${myhost}:${server.port}
-qc.address: http://192.168.2.186:6009
 
 # 加解密开关
 encrypt:

+ 0 - 1
src/main/resources/application-pro.yml

@@ -161,7 +161,6 @@ io.github.lvyahui8.spring:
 
 myhost: localhost
 oath.self.address: http://${myhost}:${server.port}
-qc.address: http://192.168.2.123:6009
 
 # 加解密开关
 encrypt:

+ 0 - 1
src/main/resources/application-test.yml

@@ -161,7 +161,6 @@ io.github.lvyahui8.spring:
 
 myhost: localhost
 oath.self.address: http://${myhost}:${server.port}
-qc.address: http://192.168.2.241:6009
 
 # 加解密开关
 encrypt:

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 2318 - 99
src/main/resources/mapper/BehospitalInfoMapper.xml


+ 26 - 0
src/main/resources/mapper/DoctorAdviceMapper.xml

@@ -36,6 +36,32 @@
         <result column="modifier" property="modifier" />
     </resultMap>
 
+    <select id="getPage" parameterType="com.diagbot.vo.DoctorAdviceVO" resultType="com.diagbot.dto.DoctorAdviceDTO">
+        SELECT
+            t.*
+        FROM
+            `med_doctor_advice` t
+        WHERE
+            t.is_deleted = 'N'
+        <if test="hospitalId != null">
+            and t.hospital_id = #{hospitalId}
+        </if>
+        <if test="behospitalCode != null and behospitalCode != ''">
+            and t.behospital_code = #{behospitalCode}
+        </if>
+        <if test="doctorAdviceType != null and doctorAdviceType != ''">
+            and t.doctor_advice_type like CONCAT('%',#{doctorAdviceType},'%')
+        </if>
+        <if test="daItemName != null and daItemName != ''">
+            and t.da_item_name like CONCAT('%',#{daItemName},'%')
+        </if>
+        <if test="daStartDateStart != null">
+            <![CDATA[ and t.da_start_date >= #{daStartDateStart}]]>
+        </if>
+        <if test="daStartDateEnd != null">
+            <![CDATA[ and t.da_start_date < #{daStartDateEnd}]]>
+        </if>
+    </select>
 
     <update id="updateBatchByKey">
         <foreach collection="list" item="item"  separator=";">

+ 14 - 0
src/main/resources/mapper/HomePageMapper.xml

@@ -135,6 +135,20 @@
         <result column="gmt_modified" property="gmtModified" />
         <result column="creator" property="creator" />
         <result column="modifier" property="modifier" />
+        <result column="is_physical_restraint" property="isPhysicalRestraint" />
+        <result column="tbi_behospital_before_time" property="tbiBehospitalBeforeTime" />
+        <result column="tbi_behospital_after_time" property="tbiBehospitalAfterTime" />
+        <result column="is_fall_bed" property="isFallBed" />
+        <result column="is_nosocomial_infection" property="isNosocomialInfection" />
+        <result column="is_into_icu" property="isIntoIcu" />
+        <result column="is_complications" property="isComplications" />
+        <result column="is_pressure_sore" property="isPressureSore" />
+        <result column="is_behospital_pressure_sore" property="isBehospitalPressureSore" />
+        <result column="is_unplanned_reoperation" property="isUnplannedReoperation" />
+        <result column="treatment_results" property="treatmentResults" />
+        <result column="complications_results" property="complicationsResults" />
+        <result column="infection_site" property="infectionSite" />
+        <result column="is_be_in_danger" property="isBeInDanger" />
     </resultMap>
 
 

+ 21 - 0
src/main/resources/mapper/MedCheckInfoMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.MedCheckInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.MedCheckInfo">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="behospital_code" property="behospitalCode" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="check_id" property="checkId" />
+        <result column="check_name" property="checkName" />
+        <result column="check_time" property="checkTime" />
+        <result column="status" property="status" />
+    </resultMap>
+
+</mapper>

+ 1 - 0
src/main/resources/mapper/MedicalRecordMapper.xml

@@ -31,6 +31,7 @@
         and t1.rec_id = t3.rec_id
         and t1.hospital_id = #{hospitalId}
         and t1.behospital_code = #{behospitalCode}
+        and t3.xml_text != ''
     </select>
 
     <update id="updateBatchByKey">

+ 2 - 0
src/main/resources/mapper/QcCasesEntryMapper.xml

@@ -10,6 +10,8 @@
         <result column="mode_id" property="modeId" />
         <result column="code" property="code" />
         <result column="name" property="name" />
+        <result column="drgs" property="drgs" />
+        <result column="type" property="type" />
         <result column="rule_type" property="ruleType" />
         <result column="dev_type" property="devType" />
         <result column="accuracy_type" property="accuracyType" />

+ 61 - 60
src/main/resources/mapper/QcresultInfoMapper.xml

@@ -10,6 +10,7 @@
         <result column="level" property="level" />
         <result column="score_res" property="scoreRes" />
         <result column="grade_type" property="gradeType" />
+        <result column="have_home_page" property="haveHomePage" />
         <result column="is_deleted" property="isDeleted" />
         <result column="gmt_create" property="gmtCreate" />
         <result column="gmt_modified" property="gmtModified" />
@@ -35,10 +36,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         <if test="gradeType != null and gradeType != ''">
             AND c.grade_type = #{gradeType}
@@ -66,10 +67,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         <if test="gradeType != null and gradeType != ''">
             AND c.grade_type = #{gradeType}
@@ -105,10 +106,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         GROUP BY
         a.beh_dept_id,
@@ -140,10 +141,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         GROUP BY
         a.beh_dept_id,
@@ -193,10 +194,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         GROUP BY
         d.cases_id
@@ -223,10 +224,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         ) t2,
         (
@@ -293,10 +294,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         GROUP BY
         d.cases_entry_id
@@ -323,10 +324,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         ) t2
         ORDER BY
@@ -386,10 +387,10 @@
             AND a.hospital_id = #{filterPageVO.hospitalId}
         </if>
         <if test="filterPageVO.startDate != null and filterPageVO.startDate != ''">
-            <![CDATA[ AND a.leave_hospital_date >= DATE(#{filterPageVO.startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{filterPageVO.startDate}]]>
         </if>
         <if test="filterPageVO.endDate != null and filterPageVO.endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{filterPageVO.endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterPageVO.endDate}]]>
         </if>
         <if test="filterPageVO.isReject != null">
             AND d.is_reject = #{filterPageVO.isReject}
@@ -432,10 +433,10 @@
             AND a.hospital_id = #{filterPageVO.hospitalId}
         </if>
         <if test="filterPageVO.startDate != null and filterPageVO.startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{filterPageVO.startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{filterPageVO.startDate}]]>
         </if>
         <if test="filterPageVO.endDate != null and filterPageVO.endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{filterPageVO.endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterPageVO.endDate}]]>
         </if>
         ) t2
         ) t
@@ -491,10 +492,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         GROUP BY
         d.cases_entry_id,
@@ -527,10 +528,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         ) t2
         ORDER BY
@@ -559,10 +560,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         GROUP BY
         a.beh_dept_id,
@@ -600,10 +601,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ AND a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         <if test="deptClass != null and deptClass != ''">
             AND e.dept_name = #{deptClass}
@@ -640,10 +641,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         <if test="gradeType != null and gradeType != ''">
             AND c.grade_type = #{gradeType}
@@ -699,10 +700,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ AND a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         GROUP BY
         d.cases_id,
@@ -765,10 +766,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         GROUP BY
         d.cases_entry_id,
@@ -806,10 +807,10 @@
             AND a.hospital_id = #{hospitalId}
         </if>
         <if test="startDate != null and startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
         </if>
         <if test="endDate != null and endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
         </if>
         GROUP BY
         a.beh_dept_id,
@@ -889,10 +890,10 @@
             AND a.hospital_id = #{filterPageByDeptVO.hospitalId}
         </if>
         <if test="filterPageByDeptVO.startDate != null and filterPageByDeptVO.startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{filterPageByDeptVO.startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{filterPageByDeptVO.startDate}]]>
         </if>
         <if test="filterPageByDeptVO.endDate != null and filterPageByDeptVO.endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{filterPageByDeptVO.endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterPageByDeptVO.endDate}]]>
         </if>
         <if test="filterPageByDeptVO.deptName != null and filterPageByDeptVO.deptName != ''">
             AND a.beh_dept_name = #{filterPageByDeptVO.deptName}
@@ -949,10 +950,10 @@
             AND a.hospital_id = #{filterPageByDeptVO.hospitalId}
         </if>
         <if test="filterPageByDeptVO.startDate != null and filterPageByDeptVO.startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{filterPageByDeptVO.startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{filterPageByDeptVO.startDate}]]>
         </if>
         <if test="filterPageByDeptVO.endDate != null and filterPageByDeptVO.endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{filterPageByDeptVO.endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterPageByDeptVO.endDate}]]>
         </if>
         <if test="filterPageByDeptVO.deptName != null and filterPageByDeptVO.deptName != ''">
             AND a.beh_dept_name = #{filterPageByDeptVO.deptName}
@@ -1016,10 +1017,10 @@
             AND a.hospital_id = #{filterPageVO.hospitalId}
         </if>
         <if test="filterPageVO.startDate != null and filterPageVO.startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{filterPageVO.startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{filterPageVO.startDate}]]>
         </if>
         <if test="filterPageVO.endDate != null and filterPageVO.endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{filterPageVO.endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterPageVO.endDate}]]>
         </if>
         <if test="filterPageVO.deptName != null and filterPageVO.deptName != ''">
             AND a.beh_dept_name like CONCAT('%', #{filterPageVO.deptName},'%')
@@ -1052,10 +1053,10 @@
             AND a.hospital_id = #{filterPageVO.hospitalId}
         </if>
         <if test="filterPageVO.startDate != null and filterPageVO.startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{filterPageVO.startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{filterPageVO.startDate}]]>
         </if>
         <if test="filterPageVO.endDate != null and filterPageVO.endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{filterPageVO.endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterPageVO.endDate}]]>
         </if>
         <if test="filterPageVO.deptName != null and filterPageVO.deptName != ''">
             AND a.beh_dept_name like CONCAT('%', #{filterPageVO.deptName},'%')
@@ -1134,10 +1135,10 @@
             AND a.hospital_id = #{filterPageVO.hospitalId}
         </if>
         <if test="filterPageVO.startDate != null and filterPageVO.startDate != ''">
-            <![CDATA[ AND a.leave_hospital_date >= DATE(#{filterPageVO.startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{filterPageVO.startDate}]]>
         </if>
         <if test="filterPageVO.endDate != null and filterPageVO.endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{filterPageVO.endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterPageVO.endDate}]]>
         </if>
         <if test="filterPageVO.deptName != null and filterPageVO.deptName != ''">
             AND a.beh_dept_name = #{filterPageVO.deptName}
@@ -1187,10 +1188,10 @@
             AND a.hospital_id = #{filterPageVO.hospitalId}
         </if>
         <if test="filterPageVO.startDate != null and filterPageVO.startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{filterPageVO.startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{filterPageVO.startDate}]]>
         </if>
         <if test="filterPageVO.endDate != null and filterPageVO.endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{filterPageVO.endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterPageVO.endDate}]]>
         </if>
         <if test="filterPageVO.deptName != null and filterPageVO.deptName != ''">
             AND a.beh_dept_name  =  #{filterPageVO.deptName}
@@ -1235,10 +1236,10 @@
             AND a.hospital_id = #{filterPageVO.hospitalId}
         </if>
         <if test="filterPageVO.startDate != null and filterPageVO.startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{filterPageVO.startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{filterPageVO.startDate}]]>
         </if>
         <if test="filterPageVO.endDate != null and filterPageVO.endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{filterPageVO.endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterPageVO.endDate}]]>
         </if>
         <if test="filterPageVO.name != null and filterPageVO.name != ''">
             AND a.beh_dept_name like CONCAT('%', #{filterPageVO.name},'%')
@@ -1277,10 +1278,10 @@
             AND a.hospital_id = #{filterPageVO.hospitalId}
         </if>
         <if test="filterPageVO.startDate != null and filterPageVO.startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{filterPageVO.startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{filterPageVO.startDate}]]>
         </if>
         <if test="filterPageVO.endDate != null and filterPageVO.endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{filterPageVO.endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterPageVO.endDate}]]>
         </if>
         <if test="filterPageVO.name != null and filterPageVO.name != ''">
             AND a.beh_dept_name like CONCAT('%', #{filterPageVO.name},'%')
@@ -1357,10 +1358,10 @@
             AND a.hospital_id = #{filterPageByDeptVO.hospitalId}
         </if>
         <if test="filterPageByDeptVO.startDate != null and filterPageByDeptVO.startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{filterPageByDeptVO.startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{filterPageByDeptVO.startDate}]]>
         </if>
         <if test="filterPageByDeptVO.endDate != null and filterPageByDeptVO.endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{filterPageByDeptVO.endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterPageByDeptVO.endDate}]]>
         </if>
         <if test="filterPageByDeptVO.deptName != null and filterPageByDeptVO.deptName != ''">
             AND a.beh_dept_name = #{filterPageByDeptVO.deptName}
@@ -1404,10 +1405,10 @@
             AND a.hospital_id = #{filterPageByDeptVO.hospitalId}
         </if>
         <if test="filterPageByDeptVO.startDate != null and filterPageByDeptVO.startDate != ''">
-            <![CDATA[ and a.leave_hospital_date >= DATE(#{filterPageByDeptVO.startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{filterPageByDeptVO.startDate}]]>
         </if>
         <if test="filterPageByDeptVO.endDate != null and filterPageByDeptVO.endDate != ''">
-            <![CDATA[AND a.leave_hospital_date < DATE(#{filterPageByDeptVO.endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterPageByDeptVO.endDate}]]>
         </if>
         <if test="filterPageByDeptVO.deptName != null and filterPageByDeptVO.deptName != ''">
             AND a.beh_dept_name = #{filterPageByDeptVO.deptName}
@@ -1501,10 +1502,10 @@
             AND a.hospital_id = #{filterPageByDeptVO.hospitalId}
         </if>
         <if test="filterPageByDeptVO.startDate != null and filterPageByDeptVO.startDate != ''">
-            <![CDATA[ AND a.leave_hospital_date >= DATE(#{filterPageByDeptVO.startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{filterPageByDeptVO.startDate}]]>
         </if>
         <if test="filterPageByDeptVO.endDate != null and filterPageByDeptVO.endDate != ''">
-            <![CDATA[ AND a.leave_hospital_date < DATE(#{filterPageByDeptVO.endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterPageByDeptVO.endDate}]]>
         </if>
         <if test="filterPageByDeptVO.deptName != null and filterPageByDeptVO.deptName != ''">
             AND a.beh_dept_name =  #{filterPageByDeptVO.deptName}
@@ -1571,10 +1572,10 @@
             AND a.hospital_id = #{filterPageByDeptVO.hospitalId}
         </if>
         <if test="filterPageByDeptVO.startDate != null and filterPageByDeptVO.startDate != ''">
-            <![CDATA[ AND a.leave_hospital_date >= DATE(#{filterPageByDeptVO.startDate})]]>
+            <![CDATA[ AND a.leave_hospital_date >= #{filterPageByDeptVO.startDate}]]>
         </if>
         <if test="filterPageByDeptVO.endDate != null and filterPageByDeptVO.endDate != ''">
-            <![CDATA[ AND a.leave_hospital_date < DATE(#{filterPageByDeptVO.endDate})]]>
+            <![CDATA[ AND a.leave_hospital_date <= #{filterPageByDeptVO.endDate}]]>
         </if>
         <if test="filterPageByDeptVO.deptName != null and filterPageByDeptVO.deptName != ''">
             AND a.beh_dept_name =  #{filterPageByDeptVO.deptName}

+ 20 - 0
src/main/resources/mapper/SysHospitalSetMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.SysHospitalSetMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.SysHospitalSet">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="name" property="name" />
+        <result column="code" property="code" />
+        <result column="value" property="value" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

+ 1 - 1
src/test/java/com/diagbot/CodeGeneration.java

@@ -56,7 +56,7 @@ public class CodeGeneration {
         StrategyConfig strategy = new StrategyConfig();
 //        strategy.setTablePrefix(new String[] { "med_" });// 此处可以修改为您的表前缀
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
-        strategy.setInclude(new String[] { "med_lis_result", "med_pacs_result"}); // 需要生成的表
+        strategy.setInclude(new String[] { "sys_hospital_set"}); // 需要生成的表
 
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceImplClass(null);