Browse Source

Merge remote-tracking branch 'origin/dev/20200619_1.3.6.1' into debug

zhaops 5 năm trước cách đây
mục cha
commit
50cf58d504

+ 280 - 0
doc/010.20200618v1.3.6/qc_initv1.3.6.sql

@@ -1 +1,281 @@
 use `qc`;
+
+-- ----------------------------
+-- 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=34 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', '2', '用户-质控科-各模块缺陷占比_详情');
+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', '3', '用户-质控科-条目缺陷占比_详情');
+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', '1', '用户-质控科-病案首页合格率占比_详情');
+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', '用户-病历质控-质控评分(医疗组)');
+
+-- ----------------------------
+-- 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=72 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', '用户-医疗组-修改质控条目');
+
+-- ----------------------------
+-- 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=100 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_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', '33', 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', '96', 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', '97', 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', '98', 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', '99', NULL);

+ 8 - 0
doc/011.20200619v1.3.6.1/qc_initv1.3.6.1.sql

@@ -0,0 +1,8 @@
+use `qc`;
+
+-- 新增权限
+INSERT INTO `sys_permission`(`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `permissionUrl`, `method`, `descritpion`, `remark`) 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_role_permission`(`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES (1655, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 100, '数据报表明细-关键条目缺陷占比');
+INSERT INTO `sys_menu_permission`(`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `menu_id`, `permission_id`, `remark`) VALUES (72, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', 34, 100, '数据报表明细-关键条目缺陷占比');
+INSERT INTO `sys_menu`(`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `parent_id`, `code`, `show_status`, `maintain_status`, `order_no`, `remark`) VALUES (34, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '关键条目缺陷占比', 17, 'YH-ZKK-GJTMQXZB', 1, 1, 10, '用户-质控科-关键条目缺陷占比');
+INSERT INTO `sys_role_menu`(`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`) VALUES (826, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', -1, 34, '用户-质控科-关键条目缺陷占比');

+ 1 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -117,6 +117,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/console/export/homePageLevelExport").permitAll()
                 .antMatchers("/console/export/entryGroupByEntryExport").permitAll()
                 .antMatchers("/console/export/levelExport").permitAll()
+                .antMatchers("/console/entryStatistics").permitAll()
                 .antMatchers("/**").authenticated();
         //                .antMatchers("/**").permitAll();
     }

+ 1 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -161,6 +161,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/console/export/homePageLevelExport", request)
                 || matchers("/console/export/entryGroupByEntryExport", request)
                 || matchers("/console/export/levelExport", request)
+                || matchers("/console/entryStatistics", request)
                 || matchers("/", request)) {
             return true;
         }

+ 1 - 1
src/main/java/com/diagbot/dto/EntryNumDTO.java

@@ -5,7 +5,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 /**
- * @Description:
+ * @Description:条目缺陷占比返回结构
  * @Author:zhaops
  * @time: 2020/6/5 13:20
  */

+ 134 - 0
src/main/java/com/diagbot/dto/EntryStatisticsDTO.java

@@ -0,0 +1,134 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/6/18 20:17
+ */
+@Getter
+@Setter
+public class EntryStatisticsDTO {
+    /**
+     * 科室id(科室编码)
+     */
+    private String deptId;
+    /**
+     * 科室名称
+     */
+    private String deptName;
+    /**
+     * 未在24小时内完成会诊数
+     */
+    private Integer consultationNum = 0;
+    /**
+     * 未在24小时内完成会诊条目id
+     */
+    private Long consultationEntryId;
+    /**
+     * 未在24小时内完成会诊率
+     */
+    private Double consultationPercent = 0.00d;
+    /**
+     * 未在24小时内完成会诊率(百分比)
+     */
+    private String consultationPercentStr = "0.00%";
+    /**
+     * 会诊病历数
+     */
+    private Integer consultationMRNum = 0;
+    /**
+     * 手术记录名称不匹配条目id
+     */
+    private Long operationNameEntryId;
+    /**
+     * 手术记录名称不匹配数
+     */
+    private Integer operationNameNum = 0;
+    /**
+     * 手术记录名称不匹配率
+     */
+    private Double operationNamePercent = 0.00d;
+    /**
+     * 手术记录名称不匹配率(百分比)
+     */
+    private String operationNamePercentStr = "0.00%";
+    /**
+     * 术后首程未在15分钟内完成条目id
+     */
+    private Long operation15MinuteEntryId;
+    /**
+     * 术后首程未在15分钟内完成数
+     */
+    private Integer operation15MinuteNum = 0;
+    /**
+     * 术后首程未在15分钟内完成率
+     */
+    private Double operation15MinutePercent = 0.00d;
+    /**
+     * 术后首程未在15分钟内完成率(百分比)
+     */
+    private String operation15MinutePercentStr = "0.00%";
+    /**
+     * 病案首页手术时间不匹配条目id
+     */
+    private Long operationTimeEntryId;
+    /**
+     * 病案首页手术时间不匹配数
+     */
+    private Integer operationTimeNum = 0;
+    /**
+     * 病案首页手术时间不匹配率
+     */
+    private Double operationTimePercent = 0.00;
+    /**
+     * 病案首页手术时间不匹配率(百分比)
+     */
+    private String operationTimePercentStr = "0.00%";
+    /**
+     * 手术记录病历数
+     */
+    private Integer operationMRNum = 0;
+    /**
+     * 未在6小时内书写危急值条目id
+     */
+    private Long crisisEntryId;
+    /**
+     * 未在6小时内书写危急值记录数
+     */
+    private Integer crisisNum = 0;
+    /**
+     * 未在6小时内书写危急值记录率
+     */
+    private Double crisisPercent = 0.00d;
+    /**
+     * 未在6小时内书写危急值记录率(百分比)
+     */
+    private String crisisPercentStr = "0.00%";
+    /**
+     * 危急值记录病历数
+     */
+    private Integer crisisMRNum = 0;
+    /**
+     * 阶段小节未书写条目id
+     */
+    private Long stageSummaryEntryId;
+    /**
+     * 阶段小节未书写数
+     */
+    private Integer stageSummaryNum = 0;
+    /**
+     * 阶段小节未书写率
+     */
+    private Double stageSummaryPercent = 0.00d;
+    /**
+     * 阶段小节未书写率(百分比)
+     */
+    private String stageSummaryPercentStr = "0.00%";
+    /**
+     * 病人住院超过30天的病历数
+     */
+    private Integer stageSummaryMRNum = 0;
+}

+ 1 - 1
src/main/java/com/diagbot/dto/HomePageNumDTO.java

@@ -5,7 +5,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 /**
- * @Description:
+ * @Description:病案首页合格率占比返回结构
  * @Author:zhaops
  * @time: 2020/6/5 17:32
  */

+ 1 - 1
src/main/java/com/diagbot/dto/LevelStatisticsDTO.java

@@ -5,7 +5,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 /**
- * @Description:
+ * @Description:各科室缺陷占比返回结构
  * @Author:zhaops
  * @time: 2020/5/19 16:04
  */

+ 157 - 0
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -7,6 +7,7 @@ import com.diagbot.aggregate.ResultStatisticsAggregate;
 import com.diagbot.dto.AverageStatisticsDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.EntryNumDTO;
+import com.diagbot.dto.EntryStatisticsDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.NumDTO;
@@ -16,6 +17,7 @@ import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.util.ListUtil;
 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;
@@ -617,4 +619,159 @@ public class ConsoleFacade {
         IPage<QcResultShortDTO> page = behospitalInfoFacade.qcResultShortPage(qcResultShortPageVO);
         return page;
     }
+
+    /**
+     * 关键条目缺陷占比统计
+     *
+     * @param entryStatisticsVO
+     * @return
+     */
+    public List<EntryStatisticsDTO> entryStatistics(EntryStatisticsVO entryStatisticsVO) {
+        filterFacade.entryStatisticsVOSet(entryStatisticsVO);
+        if (entryStatisticsVO.getDeptName().equals("全院")) {
+            entryStatisticsVO.setDeptName("");
+        }
+        List<EntryStatisticsDTO> records = behospitalInfoFacade.entryStatistics(entryStatisticsVO);
+        //增加全院数据
+        if (entryStatisticsVO.getDeptName().equals("")) {
+            EntryStatisticsDTO record = getEntryGlobleRecord(records);
+            if (record != null) {
+                records.add(0, record);
+            }
+        }
+        return records;
+    }
+
+    /**
+     * 关键条目缺陷占比统计增加全院记录
+     *
+     * @param records
+     * @return
+     */
+    private EntryStatisticsDTO getEntryGlobleRecord(List<EntryStatisticsDTO> records) {
+        DecimalFormat df = new DecimalFormat("#0.00");
+        if (ListUtil.isEmpty(records)) {
+            return null;
+        }
+
+        EntryStatisticsDTO record = new EntryStatisticsDTO();
+        record.setDeptName("全院");
+        //未在24小时内完成会诊
+        Integer consultationNum = records
+                .stream()
+                .map(EntryStatisticsDTO::getConsultationNum)
+                .reduce(0, Integer::sum);
+        record.setConsultationNum(consultationNum);
+        record.setConsultationEntryId(records.get(0).getConsultationEntryId());
+        Integer consultationMRNum = records
+                .stream()
+                .map(EntryStatisticsDTO::getConsultationMRNum)
+                .reduce(0, Integer::sum);
+        record.setConsultationMRNum(consultationMRNum);
+        if (consultationMRNum != null && !consultationMRNum.equals(0)) {
+            Double consultationPercent = BigDecimal.valueOf(consultationNum)
+                    .divide(BigDecimal.valueOf(consultationMRNum), 4, RoundingMode.HALF_UP)
+                    .doubleValue();
+            String consultationPercentStr
+                    = df.format(BigDecimal.valueOf(consultationPercent).multiply(BigDecimal.valueOf(100))) + "%";
+            record.setConsultationPercent(consultationPercent);
+            record.setConsultationPercentStr(consultationPercentStr);
+        }
+        //手术记录名称不匹配
+        Integer operationNameNum = records
+                .stream()
+                .map(EntryStatisticsDTO::getOperationNameNum)
+                .reduce(0, Integer::sum);
+        record.setOperationNameNum(operationNameNum);
+        record.setOperationNameEntryId(records.get(0).getOperationNameEntryId());
+        Integer operationMRNum = records
+                .stream()
+                .map(EntryStatisticsDTO::getOperationMRNum)
+                .reduce(0, Integer::sum);
+        record.setOperationMRNum(operationMRNum);
+        if (operationMRNum != null && !operationMRNum.equals(0)) {
+            Double operationNamePercent = BigDecimal.valueOf(operationNameNum)
+                    .divide(BigDecimal.valueOf(operationMRNum), 4, RoundingMode.HALF_UP)
+                    .doubleValue();
+            String operationNamePercentStr
+                    = df.format(BigDecimal.valueOf(operationNamePercent).multiply(BigDecimal.valueOf(100))) + "%";
+            record.setOperationNamePercent(operationNamePercent);
+            record.setOperationNamePercentStr(operationNamePercentStr);
+        }
+        //术后首程未在15分钟内完成
+        Integer operation15MinuteNum = records
+                .stream()
+                .map(EntryStatisticsDTO::getOperation15MinuteNum)
+                .reduce(0, Integer::sum);
+        record.setOperation15MinuteNum(operation15MinuteNum);
+        record.setOperation15MinuteEntryId(records.get(0).getOperation15MinuteEntryId());
+        if (operationMRNum != null && !operationMRNum.equals(0)) {
+            Double operation15MinutePercent = BigDecimal.valueOf(operation15MinuteNum)
+                    .divide(BigDecimal.valueOf(operationMRNum), 4, RoundingMode.HALF_UP)
+                    .doubleValue();
+            String operation15MinutePercentStr
+                    = df.format(BigDecimal.valueOf(operation15MinutePercent).multiply(BigDecimal.valueOf(100))) + "%";
+            record.setOperation15MinutePercent(operation15MinutePercent);
+            record.setOperation15MinutePercentStr(operation15MinutePercentStr);
+        }
+        //病案首页手术时间不匹配
+        Integer operationTimeNum = records
+                .stream()
+                .map(EntryStatisticsDTO::getOperationTimeNum)
+                .reduce(0, Integer::sum);
+        record.setOperationTimeNum(operationTimeNum);
+        record.setOperationTimeEntryId(records.get(0).getOperationTimeEntryId());
+        if (operationMRNum != null && !operationMRNum.equals(0)) {
+            Double operationTimePercent = BigDecimal.valueOf(operationTimeNum)
+                    .divide(BigDecimal.valueOf(operationMRNum), 4, RoundingMode.HALF_UP)
+                    .doubleValue();
+            String operationTimePercentStr
+                    = df.format(BigDecimal.valueOf(operationTimePercent).multiply(BigDecimal.valueOf(100))) + "%";
+            record.setOperationTimePercent(operationTimePercent);
+            record.setOperationTimePercentStr(operationTimePercentStr);
+        }
+        //未在6小时内书写危机值记录
+        Integer crisisNum = records
+                .stream()
+                .map(EntryStatisticsDTO::getCrisisNum)
+                .reduce(0, Integer::sum);
+        record.setCrisisNum(crisisNum);
+        record.setCrisisEntryId(records.get(0).getCrisisEntryId());
+        Integer crisisMRNum = records
+                .stream()
+                .map(EntryStatisticsDTO::getCrisisMRNum)
+                .reduce(0, Integer::sum);
+        record.setCrisisMRNum(crisisMRNum);
+        if (crisisMRNum != null && !crisisMRNum.equals(0)) {
+            Double crisisPercent = BigDecimal.valueOf(crisisNum)
+                    .divide(BigDecimal.valueOf(crisisMRNum), 4, RoundingMode.HALF_UP)
+                    .doubleValue();
+            String crisisPercentStr
+                    = df.format(BigDecimal.valueOf(crisisPercent).multiply(BigDecimal.valueOf(100))) + "%";
+            record.setCrisisPercent(crisisPercent);
+            record.setCrisisPercentStr(crisisPercentStr);
+        }
+        //病人住院超过30天,阶段小节书写
+        Integer stageSummaryNum = records
+                .stream()
+                .map(EntryStatisticsDTO::getStageSummaryNum)
+                .reduce(0, Integer::sum);
+        record.setStageSummaryNum(stageSummaryNum);
+        record.setStageSummaryEntryId(records.get(0).getStageSummaryEntryId());
+        Integer stageSummaryMRNum = records
+                .stream()
+                .map(EntryStatisticsDTO::getStageSummaryMRNum)
+                .reduce(0, Integer::sum);
+        record.setStageSummaryMRNum(stageSummaryMRNum);
+        if (stageSummaryMRNum != null && !stageSummaryMRNum.equals(0)) {
+            Double stageSummaryPercent = BigDecimal.valueOf(stageSummaryNum)
+                    .divide(BigDecimal.valueOf(stageSummaryMRNum), 4, RoundingMode.HALF_UP)
+                    .doubleValue();
+            String stageSummaryPercentStr
+                    = df.format(BigDecimal.valueOf(stageSummaryPercent).multiply(BigDecimal.valueOf(100))) + "%";
+            record.setStageSummaryPercent(stageSummaryPercent);
+            record.setStageSummaryPercentStr(stageSummaryPercentStr);
+        }
+        return record;
+    }
 }

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

@@ -4,6 +4,7 @@ import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.SysUserUtils;
+import com.diagbot.vo.EntryStatisticsVO;
 import com.diagbot.vo.FilterOrderByDeptVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByAverageVO;
@@ -255,4 +256,18 @@ public class FilterFacade {
         long interval = qcResultShortPageVO.getEndDate().getTime() + 1000;
         qcResultShortPageVO.setEndDate(new Date(Long.valueOf(interval)));
     }
+
+    /**
+     * 关键条目缺陷占比入参拼接
+     *
+     * @param entryStatisticsVO
+     */
+    public void entryStatisticsVOSet(EntryStatisticsVO entryStatisticsVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        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)));
+    }
 }

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
+import com.diagbot.dto.EntryStatisticsDTO;
 import com.diagbot.dto.ExportExcelDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
@@ -14,6 +15,7 @@ import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.vo.AnalyzeCodeVO;
 import com.diagbot.vo.AnalyzeVO;
 import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.EntryStatisticsVO;
 import com.diagbot.vo.ExportQcresultVO;
 import com.diagbot.vo.FilterOrderByDeptVO;
 import com.diagbot.vo.FilterOrderVO;
@@ -239,7 +241,16 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
 
     /**
      * 根据两个主键-批量修改
+     *
      * @param list
      */
     public void updateBatchByKey(List<BehospitalInfo> list);
+
+    /**
+     * 关键条目缺陷占比统计
+     *
+     * @param entryStatisticsVO
+     * @return
+     */
+    public List<EntryStatisticsDTO> entryStatistics(EntryStatisticsVO entryStatisticsVO);
 }

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
+import com.diagbot.dto.EntryStatisticsDTO;
 import com.diagbot.dto.ExportExcelDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
@@ -14,6 +15,7 @@ import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.vo.AnalyzeCodeVO;
 import com.diagbot.vo.AnalyzeVO;
 import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.EntryStatisticsVO;
 import com.diagbot.vo.ExportQcresultVO;
 import com.diagbot.vo.FilterOrderByDeptVO;
 import com.diagbot.vo.FilterOrderVO;
@@ -236,4 +238,12 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      * @return
      */
     public IPage<QcResultShortDTO> qcResultShortByDeptPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+
+    /**
+     * 关键条目缺陷占比统计
+     *
+     * @param entryStatisticsVO
+     * @return
+     */
+    public List<EntryStatisticsDTO> entryStatistics(EntryStatisticsVO entryStatisticsVO);
 }

+ 15 - 1
src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
+import com.diagbot.dto.EntryStatisticsDTO;
 import com.diagbot.dto.ExportExcelDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
@@ -16,6 +17,7 @@ import com.diagbot.service.BehospitalInfoService;
 import com.diagbot.vo.AnalyzeCodeVO;
 import com.diagbot.vo.AnalyzeVO;
 import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.EntryStatisticsVO;
 import com.diagbot.vo.ExportQcresultVO;
 import com.diagbot.vo.FilterOrderByDeptVO;
 import com.diagbot.vo.FilterOrderVO;
@@ -316,9 +318,21 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
 
     /**
      * 根据编码、医院编码批量更新
+     *
      * @param list
      */
-    public void updateBatchByKey(List<BehospitalInfo> list){
+    public void updateBatchByKey(List<BehospitalInfo> list) {
         this.baseMapper.updateBatchByKey(list);
     }
+
+    /**
+     * 关键条目缺陷占比统计
+     *
+     * @param entryStatisticsVO
+     * @return
+     */
+    @Override
+    public List<EntryStatisticsDTO> entryStatistics(EntryStatisticsVO entryStatisticsVO) {
+        return baseMapper.entryStatistics(entryStatisticsVO);
+    }
 }

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

@@ -0,0 +1,51 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/6/18 20:25
+ */
+@Getter
+@Setter
+public class EntryStatisticsVO {
+    /**
+     * 起始时间
+     */
+    @NotNull(message = "请输入起始时间")
+    private Date startDate;
+    /**
+     * 结束时间
+     */
+    @NotNull(message = "请输入截止时间")
+    private Date endDate;
+    /**
+     * 医院id
+     */
+    @ApiModelProperty(hidden = true)
+    private String hospitalId;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+    /**
+     * 排序(升序)
+     */
+    private String asc;
+
+    /**
+     * 排序(降序)
+     */
+    private String desc;
+    /**
+     * 科室名称
+     */
+    private String deptName;
+}

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

@@ -242,7 +242,7 @@ public class BehospitalInfoController {
         behospitalInfoFacade.exportQcresultByDept(response, exportQcresultVO);
     }
 
-    @ApiOperation(value = "【医疗组】质控结果导出[by:zhaops]",
+    @ApiOperation(value = "【医疗组】质控结果导出[by:zhoutg]",
             notes = "")
     @PostMapping("/exportQcresultByGroup")
     @SysLogger("exportQcresultByGroup")

+ 21 - 1
src/main/java/com/diagbot/web/ConsoleController.java

@@ -5,12 +5,14 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.AverageStatisticsDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.EntryNumDTO;
+import com.diagbot.dto.EntryStatisticsDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.NumDTO;
 import com.diagbot.dto.QcResultShortDTO;
 import com.diagbot.dto.RespDTO;
 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;
@@ -452,7 +454,7 @@ public class ConsoleController {
      * @return
      */
     @ApiOperation(value = "条目缺陷质控评分页(内页)[by:zhaops]",
-            notes = "behospitalCode: 病历号)<br>" +
+            notes = "behospitalCode: 病历号<br>" +
                     "patName: 病人姓名 <br>" +
                     "casesEntryName: 条目名称 <br>" +
                     "behDeptName:科室名称 <br>" +
@@ -464,4 +466,22 @@ public class ConsoleController {
     public RespDTO<IPage<QcResultShortDTO>> qcResultShortPage(@RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) {
         return RespDTO.onSuc(consoleFacade.qcResultShortPage(qcResultShortPageVO));
     }
+
+    /**
+     * 关键条目缺陷占比统计
+     *
+     * @param entryStatisticsVO
+     * @return
+     */
+    @ApiOperation(value = "关键条目缺陷占比统计[by:zhaops]",
+            notes = "deptName:科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc:排序(降序) <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>")
+    @PostMapping("/entryStatistics")
+    @SysLogger("entryStatistics")
+    public RespDTO<List<EntryStatisticsDTO>> entryStatistics(@RequestBody @Valid EntryStatisticsVO entryStatisticsVO) {
+        return RespDTO.onSuc(consoleFacade.entryStatistics(entryStatisticsVO));
+    }
 }

+ 288 - 0
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -2978,4 +2978,292 @@
             where behospital_code = #{item.behospitalCode} and hospital_id = #{item.hospitalId}
         </foreach>
     </update>
+
+    <!-- 关键条目缺陷统计报表-->
+    <select id="entryStatistics" parameterType="com.diagbot.vo.EntryStatisticsVO" resultType="com.diagbot.dto.EntryStatisticsDTO">
+        SELECT
+        deptId,
+        deptName,
+        consultationNum,
+        2511 AS consultationEntryId,
+        ROUND( consultationNum / consultationMRNum, 4 ) AS consultationPercent,
+        CONCAT( ROUND( consultationNum / consultationMRNum * 100, 2 ), '%' ) AS consultationPercentStr,
+        consultationMRNum,
+        2594 AS operationNameEntryId,
+        operationNameNum,
+        ROUND( operationNameNum / operationMRNum, 4 ) AS operationNamePercent,
+        CONCAT( ROUND( operationNameNum / operationMRNum * 100, 2 ), '%' ) AS operationNamePercentStr,
+        2594 AS operationTimeEntryId,
+        operationTimeNum,
+        ROUND( operationTimeNum / operationMRNum, 4 ) AS operationTimePercent,
+        CONCAT( ROUND( operationTimeNum / operationMRNum * 100, 2 ), '%' ) AS operationTimePercentStr,
+        2166 AS operation15MinuteEntryId,
+        operation15MinuteNum,
+        ROUND( operation15MinuteNum / operationMRNum, 4 ) AS operation15MinutePercent,
+        CONCAT( ROUND( operation15MinuteNum / operationMRNum * 100, 2 ), '%' ) AS operation15MinutePercentStr,
+        operationMRNum,
+        2419 AS crisisEntryId,
+        crisisNum,
+        ROUND( crisisNum / crisisMRNum, 4 ) AS crisisPercent,
+        CONCAT( ROUND( crisisNum / crisisMRNum * 100, 2 ), '%' ) AS crisisPercentStr,
+        crisisMRNum,
+        2495 AS stageSummaryEntryId,
+        stageSummaryNum,
+        ROUND( stageSummaryNum / stageSummaryMRNum, 4 ) AS stageSummaryPercent,
+        CONCAT( ROUND( stageSummaryNum / stageSummaryMRNum * 100, 2 ), '%' ) AS stageSummaryPercentStr,
+        stageSummaryMRNum
+        FROM
+        (
+        SELECT
+        tt.deptId,
+        tt.deptName,
+        sum( tt.consultationMRNum )- sum( tt.consultationNum ) AS consultationNum,
+        sum( tt.consultationMRNum ) AS consultationMRNum,
+        sum( tt.operationMRNum )- sum( tt.operationNameNum ) AS operationNameNum,
+        sum( tt.operationMRNum )- sum( tt.operationTimeNum ) AS operationTimeNum,
+        sum( tt.operationMRNum )- sum( tt.operation15MinuteNum ) AS operation15MinuteNum,
+        sum( tt.operationMRNum ) AS operationMRNum,
+        sum( tt.crisisMRNum )- sum( tt.crisisNum ) AS crisisNum,
+        sum( tt.crisisMRNum ) AS crisisMRNum,
+        sum( tt.stageSummaryMRNum )- sum( tt.stageSummaryNum ) AS stageSummaryNum,
+        sum( tt.stageSummaryMRNum ) AS stageSummaryMRNum
+        FROM
+        (
+        (
+        SELECT
+        a.beh_dept_id AS deptId,
+        a.beh_dept_name AS deptName,
+        sum( c.cases_entry_id = 2511 ) AS consultationNum,
+        count( DISTINCT a.behospital_code ) AS consultationMRNum,
+        0 AS operationNameNum,
+        0 AS operationTimeNum,
+        0 AS operation15MinuteNum,
+        0 AS operationMRNum,
+        0 AS crisisNum,
+        0 AS crisisMRNum,
+        0 AS stageSummaryNum,
+        0 AS stageSummaryMRNum
+        FROM
+        med_behospital_info a,
+        med_medical_record b,
+        med_qcresult_detail c
+        WHERE
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        AND a.hospital_id = b.hospital_id
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = b.behospital_code
+        AND a.behospital_code = c.behospital_code
+        AND b.mode_id = 30
+        AND a.is_placefile = '1'
+        AND a.qc_type_id !=0
+        <if test="hospitalId != null and hospitalId != ''">
+            AND a.hospital_id = #{hospitalId}
+        </if>
+        <if test="startDate != null">
+            <![CDATA[ AND a.leave_hospital_date >= DATE(#{startDate})]]>
+        </if>
+        <if test="endDate != null">
+            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+        </if>
+        <if test="deptName != null and deptName != ''">
+            AND a.beh_dept_name = #{deptName}
+        </if>
+        GROUP BY
+        a.beh_dept_id,
+        a.beh_dept_name
+        ) UNION
+        (
+        SELECT
+        a.beh_dept_id AS deptId,
+        a.beh_dept_name AS deptName,
+        0 AS consultationNum,
+        0 AS consultationMRNum,
+        sum( c.cases_entry_id = 2594 ) AS operationNameNum,
+        sum( c.cases_entry_id = 2594 ) AS operationTimeNum,
+        sum( c.cases_entry_id = 2166 ) AS operation15MinuteNum,
+        count( DISTINCT a.behospital_code ) AS operationMRNum,
+        0 AS crisisNum,
+        0 AS crisisMRNum,
+        0 AS stageSummaryNum,
+        0 AS stageSummaryMRNum
+        FROM
+        med_behospital_info a,
+        med_home_page b,
+        med_qcresult_detail c
+        WHERE
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        AND a.hospital_id = b.hospital_id
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = b.behospital_code
+        AND a.behospital_code = c.behospital_code
+        AND a.is_placefile = '1'
+        AND a.qc_type_id !=0
+        <if test="hospitalId != null and hospitalId != ''">
+            AND a.hospital_id = #{hospitalId}
+        </if>
+        <if test="startDate != null">
+            <![CDATA[ AND a.leave_hospital_date >= DATE(#{startDate})]]>
+        </if>
+        <if test="endDate != null">
+            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+        </if>
+        <if test="deptName != null and deptName != ''">
+            AND a.beh_dept_name = #{deptName}
+        </if>
+        GROUP BY
+        a.beh_dept_id,
+        a.beh_dept_name
+        ) UNION
+        (
+        SELECT
+        a.beh_dept_id AS deptId,
+        a.beh_dept_name AS deptName,
+        sum( c.cases_entry_id = 2419 ) AS crisisNum,
+        count( DISTINCT a.behospital_code ) AS crisisMRNum,
+        0 AS consultationNum,
+        0 AS consultationMRNum,
+        0 AS operationNameNum,
+        0 AS operationTimeNum,
+        0 AS operation15MinuteNum,
+        0 AS operationMRNum,
+        0 AS stageSummaryNum,
+        0 AS stageSummaryMRNum
+        FROM
+        med_behospital_info a,
+        med_crisis_info b,
+        med_qcresult_detail c
+        WHERE
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        AND a.hospital_id = b.hospital_id
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = b.behospital_code
+        and a.behospital_code=c.behospital_code
+        AND a.is_placefile = '1'
+        AND a.qc_type_id !=0
+        <if test="hospitalId != null and hospitalId != ''">
+            AND a.hospital_id = #{hospitalId}
+        </if>
+        <if test="startDate != null">
+            <![CDATA[ AND a.leave_hospital_date >= DATE(#{startDate})]]>
+        </if>
+        <if test="endDate != null">
+            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+        </if>
+        <if test="deptName != null and deptName != ''">
+            AND a.beh_dept_name = #{deptName}
+        </if>
+        GROUP BY
+        a.beh_dept_id,
+        a.beh_dept_name
+        ) UNION
+        (
+        SELECT
+        a.beh_dept_id AS deptId,
+        a.beh_dept_name AS deptName,
+        sum( b.cases_entry_id = 2495 ) AS stageSummaryNum,
+        count( DISTINCT a.behospital_code ) AS stageSummaryMRNum,
+        0 AS consultationNum,
+        0 AS consultationMRNum,
+        0 AS operationNameNum,
+        0 AS operationTimeNum,
+        0 AS operation15MinuteNum,
+        0 AS operationMRNum,
+        0 AS crisisNum,
+        0 AS crisisMRNum
+        FROM
+        med_behospital_info a,
+        med_qcresult_detail b
+        WHERE
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND a.hospital_id = b.hospital_id
+        AND a.behospital_code = b.behospital_code
+        AND TIMESTAMPDIFF(
+        DAY,
+        DATE( behospital_date ),
+        DATE( leave_hospital_date ))> 30
+        AND a.is_placefile = '1'
+        AND a.qc_type_id !=0
+        <if test="hospitalId != null and hospitalId != ''">
+            AND a.hospital_id = #{hospitalId}
+        </if>
+        <if test="startDate != null">
+            <![CDATA[ AND a.leave_hospital_date >= DATE(#{startDate})]]>
+        </if>
+        <if test="endDate != null">
+            <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
+        </if>
+        <if test="deptName != null and deptName != ''">
+            AND a.beh_dept_name = #{deptName}
+        </if>
+        GROUP BY
+        a.beh_dept_id,
+        a.beh_dept_name
+        )
+        ) tt
+        GROUP BY
+        tt.deptId,
+        tt.deptName
+        ) t
+        <if test="asc != null and asc !=''">
+            order by
+            <choose>
+                <when test='asc=="deptId"'>deptId asc</when>
+                <when test='asc=="deptName"'>deptName asc</when>
+                <when test='asc=="consultationNum"'>consultationNum asc</when>
+                <when test='asc=="consultationPercent"'>consultationPercent asc</when>
+                <when test='asc=="consultationPercentStr"'>consultationPercent asc</when>
+                <when test='asc=="consultationMRNum"'>consultationMRNum asc</when>
+                <when test='asc=="operationNameNum"'>operationNameNum asc</when>
+                <when test='asc=="operationNamePercent"'>operationNamePercent asc</when>
+                <when test='asc=="operationNamePercentStr"'>operationNamePercent asc</when>
+                <when test='asc=="operationTimeNum"'>operationTimeNum asc</when>
+                <when test='asc=="operationTimePercent"'>operationTimePercent asc</when>
+                <when test='asc=="operationTimePercentStr"'>operationTimePercent asc</when>
+                <when test='asc=="operationMRNum"'>operationMRNum asc</when>
+                <when test='asc=="crisisNum"'>crisisNum asc</when>
+                <when test='asc=="crisisPercent"'>crisisPercent asc</when>
+                <when test='asc=="crisisPercentStr"'>crisisPercent asc</when>
+                <when test='asc=="crisisMRNum"'>crisisMRNum asc</when>
+                <when test='asc=="stageSummaryNum"'>stageSummaryNum asc</when>
+                <when test='asc=="stageSummaryPercent"'>stageSummaryPercent asc</when>
+                <when test='asc=="stageSummaryPercentStr"'>stageSummaryPercent asc</when>
+                <when test='asc=="stageSummaryMRNum"'>stageSummaryMRNum asc</when>
+                <otherwise>deptName asc</otherwise>
+            </choose>
+        </if>
+        <if test="desc != null and desc!=''">
+            order by
+            <choose>
+                <when test='desc=="deptId"'>deptId desc</when>
+                <when test='desc=="deptName"'>deptName desc</when>
+                <when test='desc=="consultationNum"'>consultationNum desc</when>
+                <when test='desc=="consultationPercent"'>consultationPercent desc</when>
+                <when test='desc=="consultationPercentStr"'>consultationPercent desc</when>
+                <when test='desc=="consultationMRNum"'>consultationMRNum desc</when>
+                <when test='desc=="operationNameNum"'>operationNameNum desc</when>
+                <when test='desc=="operationNamePercent"'>operationNamePercent desc</when>
+                <when test='desc=="operationNamePercentStr"'>operationNamePercent desc</when>
+                <when test='desc=="operationTimeNum"'>operationTimeNum desc</when>
+                <when test='desc=="operationTimePercent"'>operationTimePercent desc</when>
+                <when test='desc=="operationTimePercentStr"'>operationTimePercent desc</when>
+                <when test='desc=="operationMRNum"'>operationMRNum desc</when>
+                <when test='desc=="crisisNum"'>crisisNum desc</when>
+                <when test='desc=="crisisPercent"'>crisisPercent desc</when>
+                <when test='desc=="crisisPercentStr"'>crisisPercent desc</when>
+                <when test='desc=="crisisMRNum"'>crisisMRNum desc</when>
+                <when test='desc=="stageSummaryNum"'>stageSummaryNum desc</when>
+                <when test='desc=="stageSummaryPercent"'>stageSummaryPercent desc</when>
+                <when test='desc=="stageSummaryPercentStr"'>stageSummaryPercent desc</when>
+                <when test='desc=="stageSummaryMRNum"'>stageSummaryMRNum desc</when>
+                <otherwise>deptName desc</otherwise>
+            </choose>
+        </if>
+    </select>
 </mapper>