wuzhen招生功能开发完成

This commit is contained in:
wuzhen committed 2025-07-22 18:03:39 +08:00
commit 7593904a79
113 files changed
+11596 -497

No files matched your search

@@ -35,53 +35,29 @@
**表说明**:定义宿舍管理的各个维度,支持维度的灵活扩展
```sql
CREATE TABLE `dorm_management_dimension` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`dimension_code` varchar(50) NOT NULL COMMENT '维度编码',
`dimension_name` varchar(100) NOT NULL COMMENT '维度名称',
`dimension_level` int(11) NOT NULL COMMENT '维度层级(1-5)',
`parent_dimension_id` bigint(20) DEFAULT NULL COMMENT '父维度ID',
`description` varchar(500) DEFAULT NULL COMMENT '维度描述',
`sort_order` int(11) DEFAULT 0 COMMENT '排序号',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT 0 COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_dimension_code` (`dimension_code`),
KEY `idx_parent_dimension` (`parent_dimension_id`),
KEY `idx_dimension_level` (`dimension_level`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='宿舍管理维度定义表';
```
#### 1.2 校区信息表 (dorm_campus)
**表说明**:存储校区基本信息
```sql
CREATE TABLE `dorm_campus` (
DROP TABLE IF EXISTS `xg_dorm_campus`;
CREATE TABLE `xg_dorm_campus` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`campus_code` varchar(50) NOT NULL COMMENT '校区编码',
`campus_name` varchar(100) NOT NULL COMMENT '校区名称',
`campus_address` varchar(200) DEFAULT NULL COMMENT '校区地址',
`campus_phone` varchar(20) DEFAULT NULL COMMENT '校区联系电话',
`campus_manager` varchar(50) DEFAULT NULL COMMENT '校区负责人',
`campus_description` varchar(500) DEFAULT NULL COMMENT '校区描述',
`sort_order` int(11) DEFAULT 0 COMMENT '排序号',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`sort_order` int(11) DEFAULT '0' COMMENT '排序号',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT 0 COMMENT '租户编号',
`tenant_id` bigint(20) DEFAULT '0' COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_campus_code` (`campus_code`),
KEY `idx_campus_status` (`status`)
UNIQUE KEY `uk_campus_code` (`campus_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='校区信息表';
```
@@ -89,56 +65,18 @@ CREATE TABLE `dorm_campus` (
**表说明**:存储宿舍区基本信息,关联校区
```sql
CREATE TABLE `dorm_area` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`area_code` varchar(50) NOT NULL COMMENT '宿舍区编码',
`area_name` varchar(100) NOT NULL COMMENT '宿舍区名称',
`campus_id` bigint(20) NOT NULL COMMENT '所属校区ID',
`area_address` varchar(200) DEFAULT NULL COMMENT '宿舍区地址',
`area_phone` varchar(20) DEFAULT NULL COMMENT '宿舍区联系电话',
`area_manager` varchar(50) DEFAULT NULL COMMENT '宿舍区负责人',
`building_count` int(11) DEFAULT 0 COMMENT '宿舍楼数量',
`student_count` int(11) DEFAULT 0 COMMENT '学生数量',
`area_description` varchar(500) DEFAULT NULL COMMENT '宿舍区描述',
`sort_order` int(11) DEFAULT 0 COMMENT '排序号',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT 0 COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_area_code` (`area_code`),
KEY `idx_campus_id` (`campus_id`),
KEY `idx_area_status` (`status`),
CONSTRAINT `fk_area_campus` FOREIGN KEY (`campus_id`) REFERENCES `dorm_campus` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='宿舍区信息表';
```
#### 1.4 宿舍楼信息表 (dorm_building)
**表说明**:存储宿舍楼基本信息,关联宿舍区
```sql
CREATE TABLE `dorm_building` (
DROP TABLE IF EXISTS `xg_dorm_building`;
CREATE TABLE `xg_dorm_building` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`building_code` varchar(50) NOT NULL COMMENT '宿舍楼编码',
`building_name` varchar(100) NOT NULL COMMENT '宿舍楼名称',
`area_id` bigint(20) NOT NULL COMMENT '所属宿舍区ID',
`campus_id` bigint(20) NOT NULL COMMENT '所属校区ID',
`building_address` varchar(200) DEFAULT NULL COMMENT '宿舍楼地址',
`building_phone` varchar(20) DEFAULT NULL COMMENT '宿舍楼联系电话',
`building_manager` varchar(50) DEFAULT NULL COMMENT '宿舍楼负责人',
`floor_count` int(11) DEFAULT 0 COMMENT '楼层数',
`room_count` int(11) DEFAULT 0 COMMENT '房间数',
`student_count` int(11) DEFAULT 0 COMMENT '学生数量',
`building_type` char(1) DEFAULT '1' COMMENT '宿舍楼类型(1男生楼 2女生楼 3混合楼)',
`building_description` varchar(500) DEFAULT NULL COMMENT '宿舍楼描述',
`sort_order` int(11) DEFAULT 0 COMMENT '排序号',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`sort_order` int(11) DEFAULT '0' COMMENT '排序号',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT 0 COMMENT '租户编号',
`tenant_id` bigint(20) DEFAULT '0' COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
@@ -148,136 +86,158 @@ CREATE TABLE `dorm_building` (
UNIQUE KEY `uk_building_code` (`building_code`),
KEY `idx_area_id` (`area_id`),
KEY `idx_campus_id` (`campus_id`),
KEY `idx_building_status` (`status`),
CONSTRAINT `fk_building_area` FOREIGN KEY (`area_id`) REFERENCES `dorm_area` (`id`),
CONSTRAINT `fk_building_campus` FOREIGN KEY (`campus_id`) REFERENCES `dorm_campus` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='宿舍楼信息表';
```
#### 1.5 二级学院信息表 (dorm_college)
**表说明**:存储二级学院基本信息
#### 1.4 宿舍楼信息表 (dorm_building)
**表说明**:存储宿舍楼基本信息,关联宿舍区
```sql
CREATE TABLE `dorm_college` (
DROP TABLE IF EXISTS `xg_dorm_area`;
CREATE TABLE `xg_dorm_area` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`college_code` varchar(50) NOT NULL COMMENT '学院编码',
`college_name` varchar(100) NOT NULL COMMENT '学院名称',
`campus_id` bigint(20) DEFAULT NULL COMMENT '所属校区ID',
`college_address` varchar(200) DEFAULT NULL COMMENT '学院地址',
`college_phone` varchar(20) DEFAULT NULL COMMENT '学院联系电话',
`college_manager` varchar(50) DEFAULT NULL COMMENT '学院负责人',
`student_count` int(11) DEFAULT 0 COMMENT '学生数量',
`college_description` varchar(500) DEFAULT NULL COMMENT '学院描述',
`sort_order` int(11) DEFAULT 0 COMMENT '排序号',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`area_code` varchar(50) NOT NULL COMMENT '宿舍区编码',
`area_name` varchar(100) NOT NULL COMMENT '宿舍区名称',
`campus_id` bigint(20) NOT NULL COMMENT '所属校区ID',
`area_description` varchar(500) DEFAULT NULL COMMENT '宿舍区描述',
`sort_order` int(11) DEFAULT '0' COMMENT '排序号',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT 0 COMMENT '租户编号',
`tenant_id` bigint(20) DEFAULT '0' COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_college_code` (`college_code`),
UNIQUE KEY `uk_area_code` (`area_code`),
KEY `idx_campus_id` (`campus_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='宿舍区信息表';
```
#### 1.5 宿舍房间表 (dorm_room)
**表说明**:存储宿舍房间基本信息,关联宿舍楼,包含楼层属性
```sql
DROP TABLE IF EXISTS `xg_dorm_room`;
CREATE TABLE `xg_dorm_room` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`room_code` varchar(50) NOT NULL COMMENT '房间编号',
`room_name` varchar(100) NOT NULL COMMENT '房间名称',
`building_id` bigint(20) NOT NULL COMMENT '所属宿舍楼ID',
`floor_num` int(11) NOT NULL COMMENT '楼层',
`room_type` char(1) DEFAULT '1' COMMENT '房间类型(1学生宿舍 3教师宿舍)',
`actual_beds` int(11) DEFAULT 4 COMMENT '实际床位数',
`room_area` decimal(10,2) DEFAULT NULL COMMENT '房间面积(平方米)',
`room_status` char(1) DEFAULT '0' COMMENT '房间状态(0可用 1维修中 2已报废)',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT '0' COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_room_code` (`room_code`),
KEY `idx_building_id` (`building_id`),
KEY `idx_floor_num` (`floor_num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='宿舍房间信息表';
```
#### 1.6 宿舍床位表 (dorm_bed)
**表说明**:存储宿舍床位基本信息,关联宿舍房间
```sql
DROP TABLE IF EXISTS `xg_dorm_bed`;
CREATE TABLE `xg_dorm_bed` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`bed_code` varchar(50) NOT NULL COMMENT '床位编号',
`bed_name` varchar(100) NOT NULL COMMENT '床位名称',
`room_id` bigint(20) NOT NULL COMMENT '所属房间ID',
`bed_type` char(1) DEFAULT '1' COMMENT '床位类型(1下铺 2上铺 3中铺 4独立床)',
`bed_status` char(1) DEFAULT '0' COMMENT '床位状态(0空闲 1已分配 2维修中)',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT '0' COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_bed_code` (`bed_code`),
KEY `idx_room_id` (`room_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='宿舍床位信息表';
DROP TABLE IF EXISTS `xg_dorm_bed_student`;
CREATE TABLE `xg_dorm_bed_student` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`college_id` bigint(20) NOT NULL COMMENT '分配学院ID',
`student_id` bigint(20) NOT NULL COMMENT '分配学生ID',
`bed_id` bigint(20) NOT NULL COMMENT '床位ID',
`room_id` bigint(20) NOT NULL COMMENT '房间ID',
`building_id` bigint(20) NOT NULL COMMENT '宿舍楼ID',
`area_id` bigint(20) NOT NULL COMMENT '宿舍区ID',
`campus_id` bigint(20) NOT NULL COMMENT '校区ID',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1已退宿)',
`assign_time` datetime NOT NULL COMMENT '分配时间',
`checkout_time` datetime DEFAULT NULL COMMENT '退宿时间',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT '0' COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_student_bed` (`student_id`, `bed_id`),
KEY `idx_college_id` (`college_id`),
KEY `idx_student_id` (`student_id`),
KEY `idx_bed_id` (`bed_id`),
KEY `idx_room_id` (`room_id`),
KEY `idx_building_id` (`building_id`),
KEY `idx_area_id` (`area_id`),
KEY `idx_campus_id` (`campus_id`),
KEY `idx_college_status` (`status`),
CONSTRAINT `fk_college_campus` FOREIGN KEY (`campus_id`) REFERENCES `dorm_campus` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='二级学院信息表';
KEY `idx_assign_time` (`assign_time`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='床位学生分配关系表';
```
### 2. 管理人员表
### 2. 宿舍管理人员相关表
#### 2.1 宿舍管理人员基本信息表 (dorm_manager)
**表说明**:存储宿舍管理人员的基本信息
#### 2.1 宿舍管理员表 (dorm_manager)
**表说明**:存储全校、校区、宿舍区、宿舍楼管理员的基本信息
```sql
CREATE TABLE `dorm_manager` (
DROP TABLE IF EXISTS `xg_dorm_manager`;
CREATE TABLE `xg_dorm_manager` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`manager_code` varchar(50) NOT NULL COMMENT '管理人员编码',
`manager_name` varchar(50) NOT NULL COMMENT '管理人员姓名',
`gender` char(1) DEFAULT NULL COMMENT '性别(0男 1女 2未知)',
`birth_date` date DEFAULT NULL COMMENT '出生日期',
`id_card` varchar(18) DEFAULT NULL COMMENT '身份证号',
`phone` varchar(11) DEFAULT NULL COMMENT '手机号码',
`email` varchar(100) DEFAULT NULL COMMENT '邮箱地址',
`office_phone` varchar(20) DEFAULT NULL COMMENT '办公电话',
`department` varchar(100) DEFAULT NULL COMMENT '所属部门',
`position` varchar(100) DEFAULT NULL COMMENT '职位',
`hire_date` date DEFAULT NULL COMMENT '入职时间',
`work_status` char(1) DEFAULT '0' COMMENT '工作状态(0在职 1离职 2休假)',
`education` varchar(50) DEFAULT NULL COMMENT '学历',
`major` varchar(100) DEFAULT NULL COMMENT '专业',
`certificates` varchar(500) DEFAULT NULL COMMENT '相关证书',
`manager_description` varchar(500) DEFAULT NULL COMMENT '个人描述',
`sort_order` int(11) DEFAULT 0 COMMENT '排序号',
`manager_name` varchar(100) NOT NULL COMMENT '管理员姓名',
`manager_type` char(1) NOT NULL COMMENT '管理员类型(1全校管理员 2校区管理员 3宿舍区管理员 4宿舍楼管理员)',
`manager_level` int(11) DEFAULT 1 COMMENT '管理级别(1-5,1为最高)',
`user_id` bigint(20) DEFAULT NULL COMMENT '关联用户ID',
`phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
`gender` char(1) DEFAULT '0' COMMENT '性别(0男 1女 2未知)',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT 0 COMMENT '租户编号',
`tenant_id` bigint(20) DEFAULT '0' COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_manager_code` (`manager_code`),
UNIQUE KEY `uk_id_card` (`id_card`),
KEY `idx_manager_name` (`manager_name`),
KEY `idx_phone` (`phone`),
KEY `idx_manager_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='宿舍管理人员基本信息表';
```
KEY `idx_user_id` (`user_id`),
KEY `idx_manager_type` (`manager_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='宿舍管理员信息表';
#### 2.2 管理人员职位表 (dorm_manager_position)
**表说明**:存储管理人员的职位信息
```sql
CREATE TABLE `dorm_manager_position` (
DROP TABLE IF EXISTS `xg_dorm_manager_source`;
CREATE TABLE `xg_dorm_manager_source` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`position_code` varchar(50) NOT NULL COMMENT '职位编码',
`position_name` varchar(100) NOT NULL COMMENT '职位名称',
`position_level` int(11) NOT NULL COMMENT '职位层级(1-5)',
`parent_position_id` bigint(20) DEFAULT NULL COMMENT '上级职位ID',
`position_description` varchar(500) DEFAULT NULL COMMENT '职位描述',
`permission_level` int(11) DEFAULT NULL COMMENT '权限层级',
`sort_order` int(11) DEFAULT 0 COMMENT '排序号',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`manager_id` bigint(20) NOT NULL COMMENT '管理员ID',
`permission_type` char(1) DEFAULT '1' COMMENT '权限类型(1查看 2编辑 3完全管理)',
`auth_type` char(1) NOT NULL COMMENT '授权类型(1全校级 2校区级 3宿舍区级 4楼栋级)',
`auth_source` bigint(20) DEFAULT NULL COMMENT '授权来源ID(对应校区ID或宿舍区ID或楼栋ID)',
`status` char(1) DEFAULT '0' COMMENT '状态(0有效 1已撤销)',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT 0 COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_position_code` (`position_code`),
KEY `idx_position_level` (`position_level`),
KEY `idx_parent_position` (`parent_position_id`),
KEY `idx_position_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理人员职位表';
```
#### 2.3 管理人员分配表 (dorm_manager_assignment)
**表说明**:存储管理人员的分配信息,支持多维度分配
```sql
CREATE TABLE `dorm_manager_assignment` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`manager_id` bigint(20) NOT NULL COMMENT '管理人员ID',
`position_id` bigint(20) NOT NULL COMMENT '职位ID',
`dimension_type` varchar(50) NOT NULL COMMENT '维度类型(campus/area/building/college)',
`dimension_id` bigint(20) NOT NULL COMMENT '维度ID',
`assignment_type` char(1) DEFAULT '1' COMMENT '分配类型(1主要 2辅助 3临时)',
`start_date` date NOT NULL COMMENT '分配开始日期',
`end_date` date DEFAULT NULL COMMENT '分配结束日期',
`assignment_reason` varchar(500) DEFAULT NULL COMMENT '分配原因',
`approval_status` char(1) DEFAULT '0' COMMENT '审批状态(0待审批 1已通过 2已拒绝)',
`approval_by` bigint(20) DEFAULT NULL COMMENT '审批人',
`approval_time` datetime DEFAULT NULL COMMENT '审批时间',
`approval_remark` varchar(500) DEFAULT NULL COMMENT '审批备注',
`sort_order` int(11) DEFAULT 0 COMMENT '排序号',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT 0 COMMENT '租户编号',
`tenant_id` bigint(20) DEFAULT '0' COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
@@ -285,203 +245,94 @@ CREATE TABLE `dorm_manager_assignment` (
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
KEY `idx_manager_id` (`manager_id`),
KEY `idx_position_id` (`position_id`),
KEY `idx_dimension_type` (`dimension_type`),
KEY `idx_dimension_id` (`dimension_id`),
KEY `idx_assignment_status` (`status`),
KEY `idx_approval_status` (`approval_status`),
CONSTRAINT `fk_assignment_manager` FOREIGN KEY (`manager_id`) REFERENCES `dorm_manager` (`id`),
CONSTRAINT `fk_assignment_position` FOREIGN KEY (`position_id`) REFERENCES `dorm_manager_position` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理人员分配表';
KEY `idx_auth_source` (`auth_source`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理员授权关系表';
```
### 3. 权限管理表
#### 3.1 权限层级表 (dorm_permission_level)
**表说明**:定义权限层级信息
#### 2.2 管理员宿舍楼权限关系表 (dorm_manager_building)
**表说明**:存储管理员与宿舍楼的权限绑定关系
```sql
CREATE TABLE `dorm_permission_level` (
DROP TABLE IF EXISTS `xg_dorm_manager_building`;
CREATE TABLE `xg_dorm_manager_building` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`level_code` varchar(50) NOT NULL COMMENT '权限层级编码',
`level_name` varchar(100) NOT NULL COMMENT '权限层级名称',
`level_value` int(11) NOT NULL COMMENT '权限层级值(1-5)',
`parent_level_id` bigint(20) DEFAULT NULL COMMENT '上级权限层级ID',
`level_description` varchar(500) DEFAULT NULL COMMENT '权限层级描述',
`data_scope` varchar(200) DEFAULT NULL COMMENT '数据权限范围',
`function_permissions` varchar(500) DEFAULT NULL COMMENT '功能权限列表',
`sort_order` int(11) DEFAULT 0 COMMENT '排序号',
`manager_id` bigint(20) NOT NULL COMMENT '管理员ID',
`building_id` bigint(20) NOT NULL COMMENT '宿舍楼ID',
`status` char(1) DEFAULT '0' COMMENT '状态(0有效 1已撤销)',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT '0' COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_manager_building` (`manager_id`, `building_id`),
KEY `idx_manager_id` (`manager_id`),
KEY `idx_building_id` (`building_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理员宿舍楼权限关系表';
```
#### 2.3 二级学院宿舍管理员表 (dorm_college_manager)
**表说明**:存储二级学院宿舍管理员的基本信息
```sql
DROP TABLE IF EXISTS `xg_dorm_college_manager`;
CREATE TABLE `xg_dorm_college_manager` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`manager_name` varchar(100) NOT NULL COMMENT '管理员姓名',
`college_id` bigint(20) NOT NULL COMMENT '所属学院ID',
`user_id` bigint(20) DEFAULT NULL COMMENT '关联用户ID',
`phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
`gender` char(1) DEFAULT '0' COMMENT '性别(0男 1女 2未知)',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT 0 COMMENT '租户编号',
`tenant_id` bigint(20) DEFAULT '0' COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_level_code` (`level_code`),
UNIQUE KEY `uk_level_value` (`level_value`),
KEY `idx_parent_level` (`parent_level_id`),
KEY `idx_level_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='权限层级表';
KEY `idx_college_id` (`college_id`),
KEY `idx_user_id` (`user_id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='二级学院宿舍管理员信息表';
```
#### 3.2 管理人员权限表 (dorm_manager_permission)
**表说明**:存储管理人员的具体权限配置
#### 2.4 二级学院床位绑定关系表 (dorm_college_bed)
**表说明**:存储二级学院与床位的绑定关系
```sql
CREATE TABLE `dorm_manager_permission` (
DROP TABLE IF EXISTS `xg_dorm_college_bed`;
CREATE TABLE `xg_dorm_college_bed` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`manager_id` bigint(20) NOT NULL COMMENT '管理人员ID',
`permission_level_id` bigint(20) NOT NULL COMMENT '权限层级ID',
`dimension_type` varchar(50) NOT NULL COMMENT '维度类型',
`dimension_id` bigint(20) NOT NULL COMMENT '维度ID',
`data_permissions` varchar(500) DEFAULT NULL COMMENT '数据权限配置',
`function_permissions` varchar(500) DEFAULT NULL COMMENT '功能权限配置',
`permission_type` char(1) DEFAULT '1' COMMENT '权限类型(1继承 2授权 3临时)',
`grant_by` bigint(20) DEFAULT NULL COMMENT '授权人',
`grant_time` datetime DEFAULT NULL COMMENT '授权时间',
`expire_time` datetime DEFAULT NULL COMMENT '权限过期时间',
`permission_status` char(1) DEFAULT '0' COMMENT '权限状态(0有效 1过期 2停用)',
`sort_order` int(11) DEFAULT 0 COMMENT '排序号',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`college_id` bigint(20) NOT NULL COMMENT '学院ID',
`bed_id` bigint(20) NOT NULL COMMENT '床位ID',
`building_id` bigint(20) NOT NULL COMMENT '宿舍楼ID',
`room_id` bigint(20) NOT NULL COMMENT '房间ID',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1已解除)',
`assign_time` datetime DEFAULT NULL COMMENT '分配时间',
`release_time` datetime DEFAULT NULL COMMENT '到期解除时间',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT 0 COMMENT '租户编号',
`tenant_id` bigint(20) DEFAULT '0' COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
KEY `idx_manager_id` (`manager_id`),
KEY `idx_permission_level` (`permission_level_id`),
KEY `idx_dimension_type` (`dimension_type`),
KEY `idx_dimension_id` (`dimension_id`),
KEY `idx_permission_status` (`permission_status`),
KEY `idx_grant_by` (`grant_by`),
CONSTRAINT `fk_permission_manager` FOREIGN KEY (`manager_id`) REFERENCES `dorm_manager` (`id`),
CONSTRAINT `fk_permission_level` FOREIGN KEY (`permission_level_id`) REFERENCES `dorm_permission_level` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理人员权限表';
UNIQUE KEY `uk_college_bed` (`college_id`, `bed_id`),
KEY `idx_college_id` (`college_id`),
KEY `idx_bed_id` (`bed_id`),
KEY `idx_building_id` (`building_id`),
KEY `idx_room_id` (`room_id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='二级学院床位绑定关系表';
```
#### 3.3 权限变更日志表 (dorm_permission_log)
**表说明**:记录权限变更的详细日志
```sql
CREATE TABLE `dorm_permission_log` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`manager_id` bigint(20) NOT NULL COMMENT '管理人员ID',
`operation_type` varchar(50) NOT NULL COMMENT '操作类型(grant/revoke/modify)',
`permission_level_id` bigint(20) DEFAULT NULL COMMENT '权限层级ID',
`dimension_type` varchar(50) DEFAULT NULL COMMENT '维度类型',
`dimension_id` bigint(20) DEFAULT NULL COMMENT '维度ID',
`old_permissions` text DEFAULT NULL COMMENT '变更前权限配置',
`new_permissions` text DEFAULT NULL COMMENT '变更后权限配置',
`operation_reason` varchar(500) DEFAULT NULL COMMENT '操作原因',
`operator_id` bigint(20) NOT NULL COMMENT '操作人ID',
`operator_name` varchar(50) NOT NULL COMMENT '操作人姓名',
`operation_time` datetime NOT NULL COMMENT '操作时间',
`ip_address` varchar(50) DEFAULT NULL COMMENT '操作IP地址',
`user_agent` varchar(500) DEFAULT NULL COMMENT '用户代理',
`operation_result` char(1) DEFAULT '1' COMMENT '操作结果(0失败 1成功)',
`error_message` varchar(500) DEFAULT NULL COMMENT '错误信息',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT 0 COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
KEY `idx_manager_id` (`manager_id`),
KEY `idx_operation_type` (`operation_type`),
KEY `idx_operator_id` (`operator_id`),
KEY `idx_operation_time` (`operation_time`),
KEY `idx_operation_result` (`operation_result`),
CONSTRAINT `fk_log_manager` FOREIGN KEY (`manager_id`) REFERENCES `dorm_manager` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='权限变更日志表';
```
### 4. 管理效果评估表
#### 4.1 管理数据统计表 (dorm_management_stats)
**表说明**:存储管理效果的统计数据
```sql
CREATE TABLE `dorm_management_stats` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`manager_id` bigint(20) NOT NULL COMMENT '管理人员ID',
`dimension_type` varchar(50) NOT NULL COMMENT '维度类型',
`dimension_id` bigint(20) NOT NULL COMMENT '维度ID',
`stats_date` date NOT NULL COMMENT '统计日期',
`stats_type` varchar(50) NOT NULL COMMENT '统计类型(daily/weekly/monthly)',
`building_count` int(11) DEFAULT 0 COMMENT '管理宿舍楼数量',
`student_count` int(11) DEFAULT 0 COMMENT '管理学生数量',
`task_completed` int(11) DEFAULT 0 COMMENT '完成任务数量',
`task_total` int(11) DEFAULT 0 COMMENT '总任务数量',
`problem_resolved` int(11) DEFAULT 0 COMMENT '解决问题数量',
`problem_total` int(11) DEFAULT 0 COMMENT '总问题数量',
`satisfaction_score` decimal(3,2) DEFAULT 0.00 COMMENT '满意度评分',
`efficiency_score` decimal(3,2) DEFAULT 0.00 COMMENT '效率评分',
`quality_score` decimal(3,2) DEFAULT 0.00 COMMENT '质量评分',
`overall_score` decimal(3,2) DEFAULT 0.00 COMMENT '综合评分',
`stats_data` json DEFAULT NULL COMMENT '详细统计数据',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT 0 COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_stats_unique` (`manager_id`, `dimension_type`, `dimension_id`, `stats_date`, `stats_type`),
KEY `idx_manager_id` (`manager_id`),
KEY `idx_dimension_type` (`dimension_type`),
KEY `idx_dimension_id` (`dimension_id`),
KEY `idx_stats_date` (`stats_date`),
KEY `idx_stats_type` (`stats_type`),
CONSTRAINT `fk_stats_manager` FOREIGN KEY (`manager_id`) REFERENCES `dorm_manager` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理数据统计表';
```
#### 4.2 权限使用记录表 (dorm_permission_usage)
**表说明**:记录权限使用的详细情况
```sql
CREATE TABLE `dorm_permission_usage` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`manager_id` bigint(20) NOT NULL COMMENT '管理人员ID',
`permission_level_id` bigint(20) NOT NULL COMMENT '权限层级ID',
`dimension_type` varchar(50) NOT NULL COMMENT '维度类型',
`dimension_id` bigint(20) NOT NULL COMMENT '维度ID',
`function_name` varchar(100) NOT NULL COMMENT '功能名称',
`operation_type` varchar(50) NOT NULL COMMENT '操作类型(view/edit/delete/approve)',
`operation_time` datetime NOT NULL COMMENT '操作时间',
`operation_result` char(1) DEFAULT '1' COMMENT '操作结果(0失败 1成功)',
`response_time` int(11) DEFAULT NULL COMMENT '响应时间(毫秒)',
`ip_address` varchar(50) DEFAULT NULL COMMENT '操作IP地址',
`user_agent` varchar(500) DEFAULT NULL COMMENT '用户代理',
`session_id` varchar(100) DEFAULT NULL COMMENT '会话ID',
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) DEFAULT 0 COMMENT '租户编号',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
KEY `idx_manager_id` (`manager_id`),
KEY `idx_permission_level` (`permission_level_id`),
KEY `idx_dimension_type` (`dimension_type`),
KEY `idx_dimension_id` (`dimension_id`),
KEY `idx_function_name` (`function_name`),
KEY `idx_operation_time` (`operation_time`),
KEY `idx_operation_result` (`operation_result`),
CONSTRAINT `fk_usage_manager` FOREIGN KEY (`manager_id`) REFERENCES `dorm_manager` (`id`),
CONSTRAINT `fk_usage_permission_level` FOREIGN KEY (`permission_level_id`) REFERENCES `dorm_permission_level` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='权限使用记录表';
```
## 🔗 表关系设计
@@ -503,15 +354,6 @@ dorm_permission_level (权限层级)
└── Level 5: 二级学院宿舍管理负责人
```
### 3. 管理人员关系图
```
dorm_manager (管理人员)
├── dorm_manager_position (职位信息)
├── dorm_manager_assignment (分配信息)
├── dorm_manager_permission (权限信息)
├── dorm_management_stats (统计信息)
└── dorm_permission_usage (使用记录)
```
## 📊 索引设计
@@ -0,0 +1,83 @@
# 宿舍楼树形结构API开发变更记录
**日期**: 2025-07-03
**作者**: cursor
**模块**: 学生宿舍管理
## 变更内容
### 1. 新增实体类
- 创建 `DormBuildingTreeVo.java`: 实现宿舍楼树形结构VO类,包含id、label、type、disabled、buildingFloors、children等字段
- 创建 `DormBuildingInfoVo.java`: 实现宿舍楼信息VO类,用于数据库查询结果映射
- 创建 `DormBuildingTreeBo.java`: 实现查询参数业务对象类,包含campusId、areaId、buildingName、status等字段
### 2. 新增Mapper接口和XML
- 创建 `XgDormBuildingTreeMapper.java`: 包含获取校区、宿舍区、宿舍楼和检查用户权限等方法
- 创建 `XgDormBuildingTreeMapper.xml`: 实现各种SQL查询,包括权限过滤逻辑
### 3. 新增服务接口和实现
- 创建 `IXgDormBuildingTreeService.java`: 定义获取宿舍楼树形结构的服务接口
- 创建 `XgDormBuildingTreeServiceImpl.java`: 实现服务接口,包含按权限过滤和构建三级树形结构的逻辑
### 4. 新增控制器
- 创建 `XgDormBuildingTreeController.java`: 提供获取宿舍楼树形结构的REST接口
### 5. 新增API文档
- 创建 `宿舍房间管理API.md`: 记录API接口的使用方法和参数说明
### 6. 代码优化与修复 (2025-07-03 16:25:30)
- 修改 `XgDormBuildingTreeServiceImpl.java`: 优化宿舍楼查询逻辑,支持用户拥有多种角色权限的情况
- 解决问题: 之前代码只会按优先级执行一种角色的查询,现在改为合并多种权限查询的结果
- 实现思路:
- 保留全校管理员最高权限判断(可查看所有宿舍楼)
- 对于其他权限类型,分别查询并合并结果
- 使用HashSet确保宿舍楼不重复
- 修正了字段访问方法,使用getId()而不是getBuildingId()
### 7. API返回字段修复 (2025-07-23 10:30:15)
- 修改 `XgDormBuildingMapper.xml`: 修复宿舍楼信息列表接口floors字段返回为null的问题
- 解决问题: 宿舍楼信息查询接口未返回floors字段,导致前端显示为null
- 修复详情:
- 在selectPageWithAreaAndCampusName方法的SELECT查询语句中添加了b.floors字段
- 确保与数据库表设计和实体类定义保持一致
- 完整路径: `/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/sslxx/XgDormBuildingMapper.xml`
## 实现功能
1. **三级树形结构**:
- 第一级:校区(不可点击)
- 第二级:宿舍区(不可点击)
- 第三级:宿舍楼(可点击)
2. **多级数据权限**:
- 全校管理员(manager_type=1):可查看所有宿舍楼
- 校区管理员(manager_type=2):只能查看管理校区的宿舍楼
- 宿舍区管理员(manager_type=3):只能查看管理宿舍区的宿舍楼
- 宿舍楼管理员(manager_type=4):只能查看管理宿舍楼
- **新增:支持一个用户同时拥有多种管理员角色,数据权限取并集**
3. **权限数据关联**:
- 通过 xg_dorm_manager 表获取用户权限类型
- 通过 xg_dorm_manager_source 表获取具体权限范围
## API接口说明
- **接口URL**: `/xgss/dormBuildingTree/list`
- **请求方式**: GET
- **权限要求**: `xgss:dormBuildingTree:list`
- **可选参数**: campusId, areaId, buildingName, status
- **返回格式**: 嵌套的树形结构JSON
## 下一步计划
1. 前端页面改造:将模拟数据替换为真实API调用
2. 单元测试:编写测试用例验证API的功能和权限控制
3. 集成测试:验证API在真实环境中的表现
4. 完善文档:补充其他宿舍管理相关API的文档
@@ -0,0 +1,68 @@
# 宿舍楼管理API树形结构开发记录
**时间**: 2025-07-20 15:30:00
**开发人员**: zlwu
**变更模块**: 宿舍管理 - 宿舍楼树形结构API
## 变更内容
### 1. 新增类文件
1. 新增 `BuildingTreeSelectVo.java` 类用于宿舍楼树形结构展示
- 支持校区-宿舍区-宿舍楼三级结构
- 标识节点类型和可选状态
### 2. API接口开发
1. 在 `XgDormBuildingController` 中新增 `/buildingTree` 接口:
- 获取完整的宿舍楼树形结构
- 校区和宿舍区节点设置为不可选(disabled=true)
- 宿舍楼节点设置为可选(disabled=false)
2. 在 `IXgDormBuildingService` 接口中添加 `getBuildingTreeData()` 方法
3. 在 `XgDormBuildingServiceImpl` 中实现树形数据构建逻辑:
- 查询所有校区、宿舍区和宿舍楼数据
- 构建三级层次结构
- 确保树中校区和宿舍区节点被标记为不可选
- 只有宿舍楼节点可以被选择
### 3. 数据表关联关系
- `xg_dorm_building` 通过 `campus_id` 关联 `xg_dorm_campus`
- `xg_dorm_building` 通过 `area_id` 关联 `xg_dorm_area`
- `xg_dorm_area` 通过 `campus_id` 关联 `xg_dorm_campus`
### 4. 前端实现
1. 在`web/src/api/sslxx/dormBuilding/types.ts`中添加`BuildingTreeSelectVo`接口定义:
- 定义了树形节点的属性类型
- 包含id、label、nodeType、disabled等核心字段
- 支持children属性用于嵌套结构
2. 在`web/src/api/sslxx/dormBuilding/index.ts`中添加`getBuildingTree`方法:
- 调用后端API获取树形结构数据
- 方法返回类型为`AxiosPromise<BuildingTreeSelectVo[]>`
3. 修改`ScopeDialog.vue`组件:
- 为宿舍楼类型(type="building")添加独立的树形选择器
- 移除原有的模拟数据,改用API获取真实数据
- 添加宿舍楼数据回显和解析逻辑
- 保留对校区和宿舍区的原有支持
## 技术实现
树形结构数据构建采用三步查询 + 组装的方式:
1. 首先查询所有校区数据
2. 查询所有宿舍区数据
3. 查询所有宿舍楼数据
4. 通过Stream API过滤和关联数据,构建多层嵌套结构
## 使用说明
1. 校区管理员授权时,使用普通多选下拉框
2. 宿舍区管理员授权时,使用以校区为父节点的两级树形结构
3. 宿舍楼管理员授权时,使用新开发的三级树形结构(校区-宿舍区-宿舍楼)
- 校区和宿舍区节点自动禁用,不可选择
- 只有宿舍楼节点可以选择
- 支持多选和折叠标签
+58
View File
@@ -1,5 +1,6 @@
# API文档总览
<<<<<<< HEAD
本文档作为所有API文档的总入口,提供快速导航功能。
## 基础规范
@@ -28,3 +29,60 @@
## 开发工具
- [API文档模板](./API文档模板.md)
=======
本文件作为API文档的统一导航入口,提供项目中所有API文档的快速访问链接。
## 认证登录
- [用户认证登录API](./用户认证登录API.md) - 用户登录、获取用户信息等接口
## 学工管理模块
- [班干部管理API](班干部管理API.md)
- [宿舍管理员授权API](宿舍管理员授权API.md)
- [宿舍楼树形结构API](宿舍楼树形结构API.md) - 校区-宿舍区-宿舍楼三级树形结构数据 (旧版API,路径: `/sslxx/dormBuilding/buildingTree`)
## 宿舍管理相关API
| API文档名称 | 说明 | 路径 |
| ---------- | ---- | ---- |
| [宿舍房间管理API](./宿舍房间管理API.md) | 提供宿舍楼树形结构API | `/xgss/dormBuildingTree/list` |
| [宿舍房间管理API](./宿舍房间管理API.md) | 提供宿舍楼列表查询API | `/sslxx/dormBuilding/list` |
## 后勤管理
### 场地管理
- [场地预约管理API](./场地预约管理API.md) - 场地信息管理、预约申请管理接口
- [报告厅预约审核API](./报告厅预约审核API.md) - 报告厅信息管理、预约审核接口
### 物业管理
- [物业报修管理API](./物业报修管理API.md) - 报修工单管理、维修处理接口
### 满意度调查
- [后勤满意度调查API](./后勤满意度调查API.md) - 问卷设计、答题管理接口
## 工作流管理
- [请假流程API](./请假流程API.md) - 请假申请、审批管理接口
## 系统管理
- [菜单权限API](./菜单权限API.md) - 菜单配置、权限管理接口
- [用户管理API](./用户管理API.md) - 系统用户、角色、部门管理接口
## API基础规范
- [API文档基础规范](./API文档基础规范.md) - API接口设计规范、响应格式规范
## 更新记录
- 2025-07-23:修复宿舍楼列表接口floors字段为null的问题,更新宿舍房间管理API文档
- 2025-07-03:更新宿舍房间管理API,增强多角色权限支持
- 2025-07-20:新增宿舍楼树形结构API文档
- 2025-07-20:新增宿舍管理员授权API文档
- 2025-07-15:新增场地预约管理API文档
- 2025-07-10:新增物业报修管理API文档
- 2025-07-01:重组API文档结构,创建统一导航入口
>>>>>>> 8e84da4ed45dd1d711c4a797a4f26f637012f6a9
@@ -0,0 +1,263 @@
# 宿舍房间管理API文档
## 目录
- [1. 宿舍楼树形结构](#1-宿舍楼树形结构)
- [1.1 获取宿舍楼树形结构](#11-获取宿舍楼树形结构)
- [2. 宿舍楼信息管理](#2-宿舍楼信息管理)
- [2.1 获取宿舍楼列表](#21-获取宿舍楼列表)
## 1. 宿舍楼树形结构
### 1.1 获取宿舍楼树形结构
#### 接口说明
该接口用于获取宿舍楼的树形结构数据,按照校区-宿舍区-宿舍楼三级结构组织。校区和宿舍区节点不可点击,只有宿舍楼节点可以点击。
#### 请求方式
```
GET /xgss/dormBuildingTree/list
```
#### 权限要求
```
xgss:dormBuildingTree:list
```
#### 请求参数
| 参数名 | 类型 | 必须 | 描述 |
| ------------- | ------- | ---- | -------------------- |
| campusId | Long | 否 | 校区ID,用于筛选 |
| areaId | Long | 否 | 宿舍区ID,用于筛选 |
| buildingName | String | 否 | 宿舍楼名称,模糊查询 |
| status | String | 否 | 宿舍楼状态 |
#### 返回结果
```json
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 1,
"label": "主校区",
"type": "campus",
"disabled": true,
"children": [
{
"id": 101,
"label": "东区宿舍",
"type": "area",
"disabled": true,
"children": [
{
"id": 1001,
"label": "1号楼",
"type": "building",
"disabled": false,
"buildingFloors": 6
},
{
"id": 1002,
"label": "2号楼",
"type": "building",
"disabled": false,
"buildingFloors": 5
}
]
},
{
"id": 102,
"label": "西区宿舍",
"type": "area",
"disabled": true,
"children": [
{
"id": 1003,
"label": "3号楼",
"type": "building",
"disabled": false,
"buildingFloors": 7
}
]
}
]
}
]
}
```
#### 返回参数说明
| 参数名 | 类型 | 描述 |
| -------------- | ------- | ------------------------------------------------ |
| id | Long | 节点ID |
| label | String | 节点名称 |
| type | String | 节点类型(campus:校区,area:宿舍区,building:宿舍楼) |
| disabled | Boolean | 是否禁用点击(校区和宿舍区为true,宿舍楼为false) |
| buildingFloors | Integer | 宿舍楼层数(只有宿舍楼节点有此字段) |
| children | Array | 子节点列表 |
#### 数据权限说明
接口会根据当前登录用户的权限进行数据过滤:
1. 全校管理员(manager_type=1):可以查看所有校区、宿舍区和宿舍楼数据
2. 校区管理员(manager_type=2):只能查看其管理的校区下的宿舍区和宿舍楼数据
3. 宿舍区管理员(manager_type=3):只能查看其管理的宿舍区下的宿舍楼数据
4. 宿舍楼管理员(manager_type=4):只能查看其管理的宿舍楼数据
5. **多角色支持**:如果用户同时拥有多种管理员角色(如既是校区管理员又是宿舍楼管理员),将会合并所有权限范围内的数据。例如,一个用户同时是A校区管理员和B宿舍楼管理员,则可以看到A校区下的所有宿舍楼以及B宿舍楼。
权限判断逻辑:
- 通过 xg_dorm_manager 表的 user_id 与当前登录用户匹配,获取用户管理员类型
- 根据 manager_type 确定权限级别
- 通过 xg_dorm_manager_source 表的 auth_source 确定具体权限范围
- **多角色权限合并**:合并不同角色对应的宿舍楼数据,确保不重复
#### 错误码
| 错误码 | 描述 |
| ------ | -------------------- |
| 401 | 未授权,需要登录 |
| 403 | 无权限访问该接口 |
| 500 | 服务器内部错误 |
#### 使用示例
```javascript
// 前端代码示例(使用axios)
import axios from 'axios';
// 获取宿舍楼树形结构
async function getDormBuildingTree() {
try {
const response = await axios.get('/xgss/dormBuildingTree/list');
if (response.data.code === 200) {
return response.data.data;
}
} catch (error) {
console.error('获取宿舍楼树失败:', error);
}
return [];
}
```
## 2. 宿舍楼信息管理
### 2.1 获取宿舍楼列表
#### 接口说明
该接口用于获取宿舍楼信息的分页列表,包含宿舍楼基本信息以及关联的校区和宿舍区信息。
#### 请求方式
```
GET /sslxx/dormBuilding/list
```
#### 权限要求
```
sslxx:dormBuilding:list
```
#### 请求参数
| 参数名 | 类型 | 必须 | 描述 |
| --------------- | ------- | ---- | ---------------------- |
| pageNum | Integer | 是 | 当前页码,从1开始 |
| pageSize | Integer | 是 | 每页记录数 |
| buildingCode | String | 否 | 宿舍楼编码,模糊查询 |
| buildingName | String | 否 | 宿舍楼名称,模糊查询 |
| areaId | Long | 否 | 宿舍区ID,精确查询 |
| campusId | Long | 否 | 校区ID,精确查询 |
| buildingType | String | 否 | 宿舍楼类型(1男生楼 2女生楼 3混合楼) |
#### 返回结果
```json
{
"total": 1,
"rows": [
{
"id": "1947459199879495681",
"buildingCode": "xixi-ssq01-ssl01",
"buildingName": "西溪校区-宿舍区01-宿舍楼01",
"areaId": "1946829650430935041",
"areaName": "西溪校区-宿舍区01",
"campusId": "1946815553291304962",
"campusName": "西溪校区",
"buildingType": "1",
"buildingDescription": "12312",
"sortOrder": 1,
"floors": 6,
"createBy": 1,
"createTime": "2025-07-22 08:50:30",
"updateBy": 1,
"updateTime": "2025-07-22 08:51:06"
}
],
"code": 200,
"msg": "查询成功"
}
```
#### 返回参数说明
| 参数名 | 类型 | 描述 |
| ------------------ | ------- | ---------------------------------------- |
| id | Long | 宿舍楼主键ID |
| buildingCode | String | 宿舍楼编码 |
| buildingName | String | 宿舍楼名称 |
| areaId | Long | 所属宿舍区ID |
| areaName | String | 所属宿舍区名称 |
| campusId | Long | 所属校区ID |
| campusName | String | 所属校区名称 |
| buildingType | String | 宿舍楼类型(1男生楼 2女生楼 3混合楼) |
| buildingDescription | String | 宿舍楼描述 |
| sortOrder | Integer | 排序号 |
| floors | Integer | 总楼层数 |
| createBy | Long | 创建者ID |
| createTime | Date | 创建时间 |
| updateBy | Long | 更新者ID |
| updateTime | Date | 更新时间 |
#### 错误码
| 错误码 | 描述 |
| ------ | -------------------- |
| 401 | 未授权,需要登录 |
| 403 | 无权限访问该接口 |
| 500 | 服务器内部错误 |
#### 使用示例
```javascript
// 前端代码示例(使用axios)
import axios from 'axios';
// 获取宿舍楼列表
async function getDormBuildingList(params) {
try {
const response = await axios.get('/sslxx/dormBuilding/list', {
params: {
pageNum: 1,
pageSize: 10,
...params
}
});
if (response.data.code === 200) {
return response.data;
}
} catch (error) {
console.error('获取宿舍楼列表失败:', error);
}
return { total: 0, rows: [] };
}
```
@@ -0,0 +1,174 @@
# 宿舍楼树形结构API文档
## 接口说明
本文档描述了获取宿舍楼树形结构数据的API接口,该接口返回校区-宿舍区-宿舍楼的三级树形结构,其中校区和宿舍区节点不可选,只有宿舍楼节点可以选择。
## 接口定义
### 获取宿舍楼树形结构
**请求URL**:`/sslxx/dormBuilding/buildingTree`
**请求方式**:`GET`
**权限标识**:`sslxx:dormBuilding:list`
**请求参数**:无
**响应示例**:
```json
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 1,
"label": "东校区",
"nodeType": "campus",
"disabled": true,
"children": [
{
"id": 101,
"label": "东区宿舍区",
"nodeType": "area",
"disabled": true,
"children": [
{
"id": 1001,
"label": "1号楼",
"nodeType": "building",
"disabled": false
},
{
"id": 1002,
"label": "2号楼",
"nodeType": "building",
"disabled": false
}
]
}
]
},
{
"id": 2,
"label": "西校区",
"nodeType": "campus",
"disabled": true,
"children": [
{
"id": 201,
"label": "西区宿舍区",
"nodeType": "area",
"disabled": true,
"children": [
{
"id": 2001,
"label": "3号楼",
"nodeType": "building",
"disabled": false
},
{
"id": 2002,
"label": "4号楼",
"nodeType": "building",
"disabled": false
}
]
}
]
}
]
}
```
## 数据结构
### BuildingTreeSelectVo
树形结构节点对象:
| 字段名 | 类型 | 描述 |
|------------|-------------------|----------------------------------------|
| id | Long | 节点ID |
| label | String | 节点名称 |
| nodeType | String | 节点类型:campus(校区)、area(宿舍区)、building(宿舍楼) |
| disabled | Boolean | 是否禁用选择 |
| children | List<BuildingTreeSelectVo> | 子节点列表 |
| createBy | Long | 创建者 |
| createTime | Date | 创建时间 |
| updateBy | Long | 更新者 |
| updateTime | Date | 更新时间 |
## 使用方法
### 前端使用示例
在Vue组件中使用该接口获取树形数据:
```typescript
import { getBuildingTree } from '@/api/sslxx/dormBuilding';
import type { BuildingTreeSelectVo } from '@/api/sslxx/dormBuilding/types';
// 在组件的setup函数中
const treeData = ref<BuildingTreeSelectVo[]>([]);
// 加载宿舍楼树形数据
const loadBuildingTree = async () => {
try {
const res = await getBuildingTree();
if (res && res.data) {
treeData.value = res.data;
}
} catch (error) {
console.error('加载宿舍楼树形数据失败:', error);
}
};
// 调用加载方法
loadBuildingTree();
```
### 使用el-tree-select组件展示
```html
<el-tree-select
v-model="selectedBuildings"
placeholder="请选择宿舍楼"
style="width: 100%"
clearable
filterable
multiple
collapse-tags
collapse-tags-tooltip
:data="treeData"
:props="{
children: 'children',
label: 'label',
disabled: 'disabled',
value: 'id'
}"
check-strictly
/>
```
## 特殊说明
1. 接口返回的树形结构中,校区和宿舍区节点已设置 `disabled=true`,前端无需额外处理即可实现只能选择宿舍楼节点的效果
2. 使用 `check-strictly=true` 可以确保树形选择器的选中状态不会级联影响父子节点
3. 该接口已支持管理员分配宿舍楼管理范围的业务需求
## 相关API接口
- [宿舍管理员授权API](./宿舍管理员授权API.md)
## 数据库关系
- `xg_dorm_building` 表通过 `campus_id` 字段关联 `xg_dorm_campus` 表
- `xg_dorm_building` 表通过 `area_id` 字段关联 `xg_dorm_area` 表
- `xg_dorm_area` 表通过 `campus_id` 字段关联 `xg_dorm_campus` 表
## 最后更新时间
2025-07-20
@@ -0,0 +1,112 @@
# 宿舍管理员授权API文档
## 1. 接口总览
| 接口名称 | 请求方式 | 接口地址 | 接口描述 |
| ------- | ------- | ------- | ------- |
| 获取宿舍区树形结构 | GET | /ssqxx/dormArea/tree | 获取以校区为根节点、宿舍区为子节点的树形结构数据 |
## 2. 权限要求
- 查询宿舍区树形结构:`ssqxx:dormArea:query`
## 3. 接口详情
### 3.1 获取宿舍区树形结构
#### 接口说明
该接口用于获取宿舍区的树形结构数据,以校区为根节点,宿舍区为子节点。前端可以使用该接口实现树形下拉选择,实现宿舍管理员授权范围选择功能。
#### 请求URL
```
GET /ssqxx/dormArea/tree
```
#### 请求参数
无
#### 响应参数
| 参数名 | 类型 | 说明 |
| ------ | ---- | ---- |
| code | Integer | 状态码,200表示成功 |
| msg | String | 提示信息 |
| data | Array | 数据内容 |
| data[i].id | Long | 节点ID |
| data[i].label | String | 节点名称 |
| data[i].type | String | 节点类型(campus:校区,area:宿舍区) |
| data[i].disabled | Boolean | 是否禁用选择(校区节点为true,宿舍区节点为false) |
| data[i].children | Array | 子节点,结构同父节点 |
#### 响应示例
```json
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 1,
"label": "东校区",
"type": "campus",
"disabled": true,
"children": [
{
"id": 101,
"label": "1号宿舍区",
"type": "area",
"disabled": false,
"children": []
},
{
"id": 102,
"label": "2号宿舍区",
"type": "area",
"disabled": false,
"children": []
}
]
},
{
"id": 2,
"label": "西校区",
"type": "campus",
"disabled": true,
"children": [
{
"id": 201,
"label": "3号宿舍区",
"type": "area",
"disabled": false,
"children": []
}
]
}
]
}
```
## 4. 使用说明
### 前端使用方式
1. 调用树形结构接口获取宿舍区树形数据
2. 使用树形选择组件展示数据,设置不可选择校区节点(根据disabled属性)
3. 用户只能选择宿舍区节点,不能选择校区节点
4. 支持多选宿舍区节点
### 数据说明
- 树形结构中,校区为第一级节点,宿舍区为第二级节点
- 校区节点的disabled属性为true,表示不可选择
- 宿舍区节点的disabled属性为false,表示可以选择
- 通过type字段可以区分节点类型:campus为校区,area为宿舍区
## 5. 实现细节
- 宿舍区数据存放在xg_dorm_area表中,校区数据存放在xg_dorm_campus表中
- xg_dorm_area表中campus_id字段关联xg_dorm_campus表的id字段
- 树形数据的构建逻辑是:先查询所有校区,再查询所有宿舍区,然后根据关联关系构建树形结构
+97 -132
View File
@@ -2,29 +2,30 @@
## 📁 文件结构概览
基于业务域的数据库文件拆分,将原始的 `hzdyjs_xg.sql` 按业务模块进行分类,便于管理和维护。
基于业务域的数据库文件拆分,采用目录+文件的组织方式,将原始的 `hzdyjs_xg.sql` 按业务模块进行分类,便于管理和维护。
```
docs/设计文档/database/
├── hzdyjs_xg.sql # 完整数据库文件(保留)
├── 01-workflow-module.sql # 工作流模块
├── 02-code-generator-module.sql # 代码生成模块
├── 03-logistics-module.sql # 后勤管理模块
├── 04-job-scheduler-module.sql # 任务调度模块
├── 05-system-management-module.sql # 系统管理模块
├── 06-test-module.sql # 测试模块
├── 08-student-management-actual-rollback.sql # 学工管理模块实际删除脚本
├── README.md # 数据库设计说明
├── mysql-database-standard.md # MySQL数据库建设规范
├── database_msg.md # 数据库环境配置
└── SQL文件说明.md # 本文件
├── README.md # 数据库设计说明
├── mysql-database-standard.md # MySQL数据库建设规范
├── database_msg.md # 数据库环境配置
├── SQL文件说明.md # 本文件
├── 工作流/ # 工作流模块相关SQL
│ └── ... (工作流相关SQL文件)
├── 后勤管理/ # 后勤管理模块相关SQL
│ └── ... (后勤管理相关SQL文件)
├── 学工管理-学生信息管理/ # 学工管理-学生信息模块相关SQL
│ └── ... (学生信息相关SQL文件)
└── 学工管理-宿舍管理/ # 学工管理-宿舍管理模块相关SQL
└── ... (宿舍管理相关SQL文件)
```
---
## 📊 业务域拆分详情
### 01. 工作流模块 (01-workflow-module.sql)
### 工作流模块 (工作流/)
**业务域**: 工作流引擎相关功能
**包含表**: 8 张表
@@ -40,20 +41,10 @@ docs/设计文档/database/
**主要功能**: 支持业务流程的定义、执行、跟踪和管理
### 02. 代码生成模块 (02-code-generator-module.sql)
**业务域**: 代码生成器相关功能
**包含表**: 2 张表
- `gen_table` - 代码生成业务表
- `gen_table_column` - 代码生成业务字段表
**主要功能**: 支持基于数据库表结构自动生成代码
### 03. 后勤管理模块 (03-logistics-module.sql)
### 后勤管理模块 (后勤管理/)
**业务域**: 后勤服务管理相关功能
**包含表**: 10 张表
**包含表**: 10+ 张表
#### 报告厅预约管理子模块
@@ -73,93 +64,53 @@ docs/设计文档/database/
**主要功能**: 校园后勤服务管理,包括场地预约和满意度调查
### 04. 任务调度模块 (04-job-scheduler-module.sql)
### 学工管理-学生信息管理模块 (学工管理-学生信息管理/)
**业务域**: 学工管理-学生信息管理相关功能
**包含表**: 相关学生信息表
**主要功能**: 学生信息管理,包括学生基本信息、班级信息等
### 学工管理-宿舍管理模块 (学工管理-宿舍管理/)
**业务域**: 学工管理-宿舍管理相关功能
**包含表**: 宿舍相关表
**主要功能**: 宿舍管理,包括宿舍分配、宿舍管理等功能
### 其他模块 (仍保留在根目录)
#### 代码生成模块 (02-code-generator-module.sql)
**业务域**: 代码生成器相关功能
**包含表**: 2 张表
- `gen_table` - 代码生成业务表
- `gen_table_column` - 代码生成业务字段表
**主要功能**: 支持基于数据库表结构自动生成代码
#### 任务调度模块 (04-job-scheduler-module.sql)
**业务域**: SnailJob 任务调度相关功能
**包含表**: 12 张表
- `sj_distributed_lock` - 分布式锁表
- `sj_group_config` - 组配置表
- `sj_namespace_config` - 命名空间配置表
- `sj_notify_config` - 通知配置表
- `sj_retry_dead_letter` - 死信队列表
- `sj_retry_summary` - 任务重试汇总统计表
- `sj_retry_task` - 任务信息表
- `sj_retry_task_log` - 重试日志表
- `sj_server_node` - 服务器节点表
- `sj_system_user_permission` - 系统用户权限表
- `sj_workflow_node` - 工作流节点表
- `sj_workflow_task_batch` - 工作流任务批次表
**主要功能**: 分布式任务调度、重试机制、工作流编排
### 05. 系统管理模块 (05-system-management-module.sql)
#### 系统管理模块 (05-system-management-module.sql)
**业务域**: 系统核心管理功能
**包含表**: 21 张表
#### 用户与权限管理
- `sys_user` - 用户信息表
- `sys_role` - 角色信息表
- `sys_menu` - 菜单权限表
- `sys_dept` - 部门表
- `sys_post` - 岗位信息表
- `sys_user_role` - 用户角色关联表
- `sys_user_post` - 用户岗位关联表
- `sys_role_menu` - 角色菜单关联表
- `sys_role_dept` - 角色部门关联表
#### 系统配置与日志
- `sys_config` - 参数配置表
- `sys_dict_type` - 字典类型表
- `sys_dict_data` - 字典数据表
- `sys_notice` - 通知公告表
- `sys_oper_log` - 操作日志表
- `sys_logininfor` - 系统访问记录表
#### 文件与租户管理
- `sys_oss` - OSS 对象存储表
- `sys_oss_config` - 对象存储配置表
- `sys_client` - 系统授权表
- `sys_tenant` - 租户表
- `sys_tenant_package` - 租户套餐表
- `sys_social` - 社会化关系表
**主要功能**: 系统用户管理、权限控制、配置管理、日志记录等核心功能
### 06. 测试模块 (06-test-module.sql)
#### 测试模块 (06-test-module.sql)
**业务域**: 测试和演示相关功能
**包含表**: 1 张表
- `test_tree` - 测试树表
**主要功能**: 系统功能测试和演示,包含树形结构数据
### 08. 学生信息管理模块 (已删除)
**业务域**: 学工管理-学生信息管理相关功能
**状态**: 已于2025-01-09完全删除
#### 删除脚本
- `08-student-management-actual-rollback.sql` - 学工管理模块实际删除脚本(已执行)
**删除内容**:
- 6张数据库表(学生信息、银行卡、班级信息、审核记录等)
- 16个菜单权限项
- 7个字典类型
- 27个字典数据项
**删除状态**: ✅ 已完成并验证通过
**删除原因**: 用户要求删除已创建的学工学生信息相关功能
**恢复说明**: 相关文档和脚本已在git历史记录中保存,如需恢复可从历史记录中获取
---
## 🔧 使用指南
@@ -173,51 +124,48 @@ SOURCE docs/设计文档/database/hzdyjs_xg.sql;
### 按模块部署
现在可以按照目录组织更灵活地部署数据库:
```sql
-- 按需执行指定模块
SOURCE docs/设计文档/database/01-workflow-module.sql;
SOURCE docs/设计文档/database/02-code-generator-module.sql;
SOURCE docs/设计文档/database/03-logistics-module.sql;
SOURCE docs/设计文档/database/04-job-scheduler-module.sql;
-- 核心系统模块
SOURCE docs/设计文档/database/05-system-management-module.sql;
SOURCE docs/设计文档/database/06-test-module.sql;
-- 学工管理模块已删除
-- 删除脚本已执行完成:
-- SOURCE docs/设计文档/database/08-student-management-actual-rollback.sql;
-- 按业务目录部署
-- 工作流模块
SOURCE docs/设计文档/database/工作流/01-workflow-module.sql;
-- 后勤管理模块
SOURCE docs/设计文档/database/后勤管理/03-logistics-module.sql;
SOURCE docs/设计文档/database/后勤管理/hq_hall_info.sql;
SOURCE docs/设计文档/database/后勤管理/hq_satisfaction_survey.sql;
-- 更多后勤管理相关表...
-- 学工管理-学生信息模块
SOURCE docs/设计文档/database/学工管理-学生信息管理/xg_student_info.sql;
SOURCE docs/设计文档/database/学工管理-学生信息管理/xg_class_info.sql;
-- 更多学生信息相关表...
-- 学工管理-宿舍管理模块
SOURCE docs/设计文档/database/学工管理-宿舍管理/xg_dormitory_info.sql;
-- 更多宿舍管理相关表...
```
### 开发环境部署建议
1. **必须模块**: 01-工作流模块, 05-系统管理模块
2. **核心业务模块**: 03-后勤管理模块
3. **按需模块**: 其他模块根据具体业务需求选择性部署
1. **必须模块**: 系统管理模块, 工作流模块
2. **核心业务模块**: 后勤管理模块
3. **按需模块**: 学工管理相关模块和其他模块根据具体业务需求选择性部署
4. **测试模块**: 仅在开发和测试环境中部署
---
## 📈 统计信息
| 模块 | 表数量 | 主要功能 | 依赖关系 |
| ------------ | ------ | ------------ | ---------------- |
| 工作流模块 | 8 | 流程管理 | 依赖系统管理模块 |
| 代码生成模块 | 2 | 代码生成 | 无特殊依赖 |
| 后勤管理模块 | 10 | 后勤服务 | 依赖系统管理模块 |
| 任务调度模块 | 12 | 任务调度 | 独立模块 |
| 系统管理模块 | 21 | 核心系统 | 核心基础模块 |
| 测试模块 | 1 | 测试演示 | 依赖系统管理模块 |
| ~~学工管理模块~~ | ~~6~~ | ~~学工管理~~ | ~~已删除~~ |
| **总计** | **54** | **完整系统** | **完整依赖链** |
---
## ⚠️ 注意事项
### 1. 模块依赖关系
### 1. 目录组织原则
- **系统管理模块**是其他模块的基础依赖,必须优先部署
- **工作流模块**和**后勤管理模块**依赖系统管理模块的用户和部门数据
- **任务调度模块**相对独立,可单独部署
- **学工管理模块**已删除,不再部署
- **按业务域组织**: 文件按业务功能模块存放到对应目录
- **一表一文件**: 每个表结构单独存放为独立SQL文件,便于维护
- **统一命名**: 文件名应与表名保持一致,便于快速定位
### 2. 数据一致性
@@ -244,20 +192,21 @@ SOURCE docs/设计文档/database/06-test-module.sql;
### 更新流程
1. 修改 `hzdyjs_xg.sql` 主文件
2. 同步更新对应的模块 SQL 文件
1. 修改对应业务目录下的SQL文件
2. 如有必要,同步更新 `hzdyjs_xg.sql` 主文件
3. 更新本说明文档的变更记录
4. 在 `docs/变更管理/code-adjust-record.md` 中记录变更
4. 在 `docs/变更管理/code-adjust-record-YYYY-MM-DD-{username}.md` 中记录变更
### 文件命名规则
- 使用两位数字前缀进行排序
- 使用表名作为文件名,如 `xg_student_info.sql`
- 可选使用两位数字前缀进行排序
- 使用英文短横线分隔词语
- 以 `-module.sql` 结尾表示模块文件
- 以 `.sql` 结尾
### 拆分原则
- 按业务域进行逻辑分组
- 按业务域进行目录分组
- 保持模块的相对独立性
- 考虑实际部署和维护需求
- 遵循数据库设计规范
@@ -266,6 +215,22 @@ SOURCE docs/设计文档/database/06-test-module.sql;
## 📋 更新记录
### 2025-07-15 - 目录结构调整
**变更内容**:
- 将SQL文件按业务域进行目录拆分
- 新增学工管理-学生信息管理目录
- 新增工作流目录
- 新增后勤管理目录
- 新增学工管理-宿舍管理目录
- 更新SQL文件说明文档,反映新的目录结构
**变更原因**: 优化数据库文件管理,按业务模块分类存储,提高可维护性
**影响范围**: 仅影响文件组织方式,不影响SQL内容和功能
**执行状态**: ✅ 已完成并验证通过
### 2025-01-09 - 学工管理模块完全删除
**变更内容**:
@@ -0,0 +1,271 @@
-- 宿舍管理数据库建表脚本
-- 来源:docs/业务模块/学工管理-宿舍管理/数据库设计/宿舍管理数据库设计.md
-- 用途:统一存储宿舍管理模块所有相关表的建表SQL,便于维护和执行
-- 维护人:数据库设计团队
-- 日期:2025-01-14
-- 1. 校区信息表
drop table if exists `xg_dorm_campus`;
create table `xg_dorm_campus` (
`id` bigint(20) not null comment '主键ID',
`campus_code` varchar(50) not null comment '校区编码',
`campus_name` varchar(100) not null comment '校区名称',
`campus_description` varchar(500) default null comment '校区描述',
`sort_order` int(11) default '0' comment '排序号',
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) default '0' comment '租户编号',
`create_by` bigint(20) default null comment '创建者',
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
`create_time` datetime default null comment '创建时间',
`update_by` bigint(20) default null comment '更新者',
`update_time` datetime default null comment '更新时间',
`remark` varchar(500) default null comment '备注',
primary key (`id`),
unique key `uk_campus_code` (`campus_code`)
) engine=innodb default charset=utf8mb4 comment='校区信息表';
-- 2. 宿舍区信息表
drop table if exists `xg_dorm_area`;
create table `xg_dorm_area` (
`id` bigint(20) not null comment '主键ID',
`area_code` varchar(50) not null comment '宿舍区编码',
`area_name` varchar(100) not null comment '宿舍区名称',
`campus_id` bigint(20) not null comment '所属校区ID',
`area_description` varchar(500) default null comment '宿舍区描述',
`sort_order` int(11) default '0' comment '排序号',
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) default '0' comment '租户编号',
`create_by` bigint(20) default null comment '创建者',
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
`create_time` datetime default null comment '创建时间',
`update_by` bigint(20) default null comment '更新者',
`update_time` datetime default null comment '更新时间',
`remark` varchar(500) default null comment '备注',
primary key (`id`),
unique key `uk_area_code` (`area_code`),
key `idx_campus_id` (`campus_id`)
) engine=innodb default charset=utf8mb4 comment='宿舍区信息表';
-- 3. 宿舍楼信息表
drop table if exists `xg_dorm_building`;
create table `xg_dorm_building` (
`id` bigint(20) not null comment '主键ID',
`building_code` varchar(50) not null comment '宿舍楼编码',
`building_name` varchar(100) not null comment '宿舍楼名称',
`area_id` bigint(20) not null comment '所属宿舍区ID',
`campus_id` bigint(20) not null comment '所属校区ID',
`floors` int(11) not null default '6' comment '总楼层数',
`building_type` char(1) default '1' comment '宿舍楼类型(1男生楼 2女生楼 3混合楼)',
`building_description` varchar(500) default null comment '宿舍楼描述',
`sort_order` int(11) default '0' comment '排序号',
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) default '0' comment '租户编号',
`create_by` bigint(20) default null comment '创建者',
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
`create_time` datetime default null comment '创建时间',
`update_by` bigint(20) default null comment '更新者',
`update_time` datetime default null comment '更新时间',
`remark` varchar(500) default null comment '备注',
primary key (`id`),
unique key `uk_building_code` (`building_code`),
key `idx_area_id` (`area_id`),
key `idx_campus_id` (`campus_id`)
) engine=innodb default charset=utf8mb4 comment='宿舍楼信息表';
-- 4. 宿舍房间信息表
drop table if exists `xg_dorm_room`;
create table `xg_dorm_room` (
`id` bigint(20) not null comment '主键ID',
`room_code` varchar(50) not null comment '房间编号',
`room_name` varchar(100) not null comment '房间名称',
`building_id` bigint(20) not null comment '所属宿舍楼ID',
`floor_num` int(11) not null comment '楼层',
`room_type` char(1) default '1' comment '房间类型(1标准间 2 单人间 3 套间)',
`actual_beds` int(11) default 4 comment '实际床位数',
`room_area` decimal(10,2) default null comment '房间面积(平方米)',
`room_status` char(1) default '0' comment '房间状态(0可用 1维修中 2停用)',
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) default '0' comment '租户编号',
`create_by` bigint(20) default null comment '创建者',
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
`create_time` datetime default null comment '创建时间',
`update_by` bigint(20) default null comment '更新者',
`update_time` datetime default null comment '更新时间',
`remark` varchar(500) default null comment '备注',
primary key (`id`),
unique key `uk_room_code` (`room_code`),
key `idx_building_id` (`building_id`),
key `idx_floor_num` (`floor_num`)
) engine=innodb default charset=utf8mb4 comment='宿舍房间信息表';
-- 5. 宿舍床位信息表
drop table if exists `xg_dorm_bed`;
create table `xg_dorm_bed` (
`id` bigint(20) not null comment '主键ID',
`bed_code` varchar(50) not null comment '床位编号',
`bed_name` varchar(100) not null comment '床位名称',
`room_id` bigint(20) not null comment '所属房间ID',
`bed_type` char(1) default '1' comment '床位类型(1下铺 2上铺 3中铺 4独立床)',
`bed_status` char(1) default '0' comment '床位状态(0空闲 1已分配 2维修中)',
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) default '0' comment '租户编号',
`create_by` bigint(20) default null comment '创建者',
`create_time` datetime default null comment '创建时间',
`update_by` bigint(20) default null comment '更新者',
`update_time` datetime default null comment '更新时间',
`remark` varchar(500) default null comment '备注',
primary key (`id`),
unique key `uk_bed_code` (`bed_code`),
key `idx_room_id` (`room_id`)
) engine=innodb default charset=utf8mb4 comment='宿舍床位信息表';
-- 6. 床位学生分配关系表
drop table if exists `xg_dorm_bed_student`;
create table `xg_dorm_bed_student` (
`id` bigint(20) not null comment '主键ID',
`college_id` bigint(20) not null comment '分配学院ID',
`student_id` bigint(20) not null comment '分配学生ID',
`bed_id` bigint(20) not null comment '床位ID',
`room_id` bigint(20) not null comment '房间ID',
`building_id` bigint(20) not null comment '宿舍楼ID',
`area_id` bigint(20) not null comment '宿舍区ID',
`campus_id` bigint(20) not null comment '校区ID',
`status` char(1) default '0' comment '状态(0正常 1已退宿)',
`assign_time` datetime not null comment '分配时间',
`checkout_time` datetime default null comment '退宿时间',
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) default '0' comment '租户编号',
`create_by` bigint(20) default null comment '创建者',
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
`create_time` datetime default null comment '创建时间',
`update_by` bigint(20) default null comment '更新者',
`update_time` datetime default null comment '更新时间',
`remark` varchar(500) default null comment '备注',
primary key (`id`),
unique key `uk_student_bed` (`student_id`, `bed_id`),
key `idx_college_id` (`college_id`),
key `idx_student_id` (`student_id`),
key `idx_bed_id` (`bed_id`),
key `idx_room_id` (`room_id`),
key `idx_building_id` (`building_id`),
key `idx_area_id` (`area_id`),
key `idx_campus_id` (`campus_id`),
key `idx_assign_time` (`assign_time`)
) engine=innodb default charset=utf8mb4 comment='床位学生分配关系表';
-- 7. 宿舍管理员信息表
drop table if exists `xg_dorm_manager`;
create table `xg_dorm_manager` (
`id` bigint(20) not null comment '主键ID',
`manager_name` varchar(100) not null comment '管理员姓名',
`manager_type` char(1) not null comment '管理员类型(1全校管理员 2校区管理员 3宿舍区管理员 4宿舍楼管理员)',
`manager_level` int(11) default 1 comment '管理级别(1-5,1为最高)',
`user_id` bigint(20) default null comment '关联用户ID',
`phone` varchar(20) default null comment '联系电话',
`gender` char(1) default '0' comment '性别(0男 1女 2未知)',
`status` char(1) default '0' comment '状态(0正常 1停用)',
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) default '0' comment '租户编号',
`create_by` bigint(20) default null comment '创建者',
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
`create_time` datetime default null comment '创建时间',
`update_by` bigint(20) default null comment '更新者',
`update_time` datetime default null comment '更新时间',
`remark` varchar(500) default null comment '备注',
primary key (`id`),
key `idx_user_id` (`user_id`),
key `idx_manager_type` (`manager_type`)
) engine=innodb default charset=utf8mb4 comment='宿舍管理员信息表';
-- 8. 管理员授权关系表
drop table if exists `xg_dorm_manager_source`;
create table `xg_dorm_manager_source` (
`id` bigint(20) not null comment '主键ID',
`manager_id` bigint(20) not null comment '管理员ID',
`permission_type` char(1) default '1' comment '权限类型(1查看 2编辑 3完全管理)',
`auth_type` char(1) not null comment '授权类型(1全校级 2校区级 3宿舍区级 4楼栋级)',
`auth_source` bigint(20) default null comment '授权来源ID(对应校区ID或宿舍区ID或楼栋ID)',
`status` char(1) default '0' comment '状态(0有效 1已撤销)',
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) default '0' comment '租户编号',
`create_by` bigint(20) default null comment '创建者',
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
`create_time` datetime default null comment '创建时间',
`update_by` bigint(20) default null comment '更新者',
`update_time` datetime default null comment '更新时间',
`remark` varchar(500) default null comment '备注',
primary key (`id`),
key `idx_manager_id` (`manager_id`),
key `idx_auth_source` (`auth_source`)
) engine=innodb default charset=utf8mb4 comment='管理员授权关系表';
-- 9. 管理员宿舍楼权限关系表
drop table if exists `xg_dorm_manager_building`;
create table `xg_dorm_manager_building` (
`id` bigint(20) not null comment '主键ID',
`manager_id` bigint(20) not null comment '管理员ID',
`building_id` bigint(20) not null comment '宿舍楼ID',
`status` char(1) default '0' comment '状态(0有效 1已撤销)',
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) default '0' comment '租户编号',
`create_by` bigint(20) default null comment '创建者',
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
`create_time` datetime default null comment '创建时间',
`update_by` bigint(20) default null comment '更新者',
`update_time` datetime default null comment '更新时间',
`remark` varchar(500) default null comment '备注',
primary key (`id`),
unique key `uk_manager_building` (`manager_id`, `building_id`),
key `idx_manager_id` (`manager_id`),
key `idx_building_id` (`building_id`)
) engine=innodb default charset=utf8mb4 comment='管理员宿舍楼权限关系表';
-- 10. 二级学院宿舍管理员信息表
drop table if exists `xg_dorm_college_manager`;
create table `xg_dorm_college_manager` (
`id` bigint(20) not null comment '主键ID',
`manager_name` varchar(100) not null comment '管理员姓名',
`college_id` bigint(20) not null comment '所属学院ID',
`user_id` bigint(20) default null comment '关联用户ID',
`phone` varchar(20) default null comment '联系电话',
`gender` char(1) default '0' comment '性别(0男 1女 2未知)',
`status` char(1) default '0' comment '状态(0正常 1停用)',
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) default '0' comment '租户编号',
`create_by` bigint(20) default null comment '创建者',
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
`create_time` datetime default null comment '创建时间',
`update_by` bigint(20) default null comment '更新者',
`update_time` datetime default null comment '更新时间',
`remark` varchar(500) default null comment '备注',
primary key (`id`),
key `idx_college_id` (`college_id`),
key `idx_user_id` (`user_id`)
) engine=innodb default charset=utf8mb4 comment='二级学院宿舍管理员信息表';
-- 11. 二级学院床位绑定关系表
drop table if exists `xg_dorm_college_bed`;
create table `xg_dorm_college_bed` (
`id` bigint(20) not null comment '主键ID',
`college_id` bigint(20) not null comment '学院ID',
`bed_id` bigint(20) not null comment '床位ID',
`building_id` bigint(20) not null comment '宿舍楼ID',
`room_id` bigint(20) not null comment '房间ID',
`status` char(1) default '0' comment '状态(0正常 1已解除)',
`assign_time` datetime default null comment '分配时间',
`release_time` datetime default null comment '到期解除时间',
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
`tenant_id` bigint(20) default '0' comment '租户编号',
`create_by` bigint(20) default null comment '创建者',
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
`create_time` datetime default null comment '创建时间',
`update_by` bigint(20) default null comment '更新者',
`update_time` datetime default null comment '更新时间',
`remark` varchar(500) default null comment '备注',
primary key (`id`),
unique key `uk_college_bed` (`college_id`, `bed_id`),
key `idx_college_id` (`college_id`),
key `idx_bed_id` (`bed_id`),
key `idx_building_id` (`building_id`),
key `idx_room_id` (`room_id`)
) engine=innodb default charset=utf8mb4 comment='二级学院床位绑定关系表';
@@ -0,0 +1,60 @@
-- 菜单 SQL
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809733426065409, '宿舍区信息', '1946805729728077826', '1', 'dormArea', 'ssqxx/dormArea/index', 1, 0, 'C', '0', '0', 'ssqxx:dormArea:list', '#', 103, 1, sysdate(), null, null, '宿舍区信息菜单');
-- 按钮 SQL
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809733426065410, '宿舍区信息查询', 1946809733426065409, '1', '#', '', 1, 0, 'F', '0', '0', 'ssqxx:dormArea:query', '#', 103, 1, sysdate(), null, null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809733426065411, '宿舍区信息新增', 1946809733426065409, '2', '#', '', 1, 0, 'F', '0', '0', 'ssqxx:dormArea:add', '#', 103, 1, sysdate(), null, null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809733426065412, '宿舍区信息修改', 1946809733426065409, '3', '#', '', 1, 0, 'F', '0', '0', 'ssqxx:dormArea:edit', '#', 103, 1, sysdate(), null, null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809733426065413, '宿舍区信息删除', 1946809733426065409, '4', '#', '', 1, 0, 'F', '0', '0', 'ssqxx:dormArea:remove', '#', 103, 1, sysdate(), null, null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809733426065414, '宿舍区信息导出', 1946809733426065409, '5', '#', '', 1, 0, 'F', '0', '0', 'ssqxx:dormArea:export', '#', 103, 1, sysdate(), null, null, '');
-- 菜单 SQL
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809734004879362, '宿舍楼信息', '1946805729728077826', '1', 'dormBuilding', 'sslxx/dormBuilding/index', 1, 0, 'C', '0', '0', 'sslxx:dormBuilding:list', '#', 103, 1, sysdate(), null, null, '宿舍楼信息菜单');
-- 按钮 SQL
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809734004879363, '宿舍楼信息查询', 1946809734004879362, '1', '#', '', 1, 0, 'F', '0', '0', 'sslxx:dormBuilding:query', '#', 103, 1, sysdate(), null, null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809734004879364, '宿舍楼信息新增', 1946809734004879362, '2', '#', '', 1, 0, 'F', '0', '0', 'sslxx:dormBuilding:add', '#', 103, 1, sysdate(), null, null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809734004879365, '宿舍楼信息修改', 1946809734004879362, '3', '#', '', 1, 0, 'F', '0', '0', 'sslxx:dormBuilding:edit', '#', 103, 1, sysdate(), null, null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809734004879366, '宿舍楼信息删除', 1946809734004879362, '4', '#', '', 1, 0, 'F', '0', '0', 'sslxx:dormBuilding:remove', '#', 103, 1, sysdate(), null, null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809734004879367, '宿舍楼信息导出', 1946809734004879362, '5', '#', '', 1, 0, 'F', '0', '0', 'sslxx:dormBuilding:export', '#', 103, 1, sysdate(), null, null, '');
-- 菜单 SQL
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809733761609729, '校区信息', '1946805729728077826', '1', 'dormCampus', 'xqxx/dormCampus/index', 1, 0, 'C', '0', '0', 'xqxx:dormCampus:list', '#', 103, 1, sysdate(), null, null, '校区信息菜单');
-- 按钮 SQL
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809733761609730, '校区信息查询', 1946809733761609729, '1', '#', '', 1, 0, 'F', '0', '0', 'xqxx:dormCampus:query', '#', 103, 1, sysdate(), null, null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809733761609731, '校区信息新增', 1946809733761609729, '2', '#', '', 1, 0, 'F', '0', '0', 'xqxx:dormCampus:add', '#', 103, 1, sysdate(), null, null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809733761609732, '校区信息修改', 1946809733761609729, '3', '#', '', 1, 0, 'F', '0', '0', 'xqxx:dormCampus:edit', '#', 103, 1, sysdate(), null, null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809733761609733, '校区信息删除', 1946809733761609729, '4', '#', '', 1, 0, 'F', '0', '0', 'xqxx:dormCampus:remove', '#', 103, 1, sysdate(), null, null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark)
values(1946809733761609734, '校区信息导出', 1946809733761609729, '5', '#', '', 1, 0, 'F', '0', '0', 'xqxx:dormCampus:export', '#', 103, 1, sysdate(), null, null, '');