为满足校园各类活动和教学需求,需要建设一套完整的场地预约管理系统。该系统将为用户提供便捷的场地预约服务,为管理员提供高效的场地管理和预约审批功能。
场地信息录入 → 设置场地管理员 → 场地状态管理 → 场地使用统计
用户查看场地 → 选择预约时间 → 填写预约信息 → 提交申请 → 时间冲突检测 → 提示确认 → 生成预约单
场地管理员接收申请 → 审核预约信息 → 时间冲突检测 → 提示确认 → 审批决定 → 更新预约状态 → 通知申请人
申请人查看预约 → 修改/取消预约 → 预约状态跟踪 → 预约完成确认
功能描述: 管理场地基本信息和状态
字段规格:
核心功能:
功能描述: 管理场地分类字典
类型清单:
功能描述: 用户发起场地预约申请
字段规格:
核心功能:
功能描述: 场地管理员审批预约申请
审批字段:
核心功能:
功能描述: 预约信息的查看和管理
核心功能:
页面路径: /hq/venue/list
功能组件:
页面路径: /hq/venue/detail/:id
功能组件:
页面路径: /hq/venue/myReservations
功能组件:
页面路径: /hq/venue/approval
功能组件:
页面路径: /hq/venue/statistics
功能组件:
CREATE TABLE `hq_venue_info` (
`id` bigint(20) NOT NULL COMMENT '场地ID',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
`venue_name` varchar(100) NOT NULL COMMENT '场地名称',
`venue_code` varchar(50) NOT NULL COMMENT '场地编码',
`venue_location` varchar(200) NOT NULL COMMENT '场地位置',
`venue_capacity` int(11) NOT NULL COMMENT '场地容量',
`venue_type` varchar(20) NOT NULL COMMENT '场地类型',
`venue_status` char(1) NOT NULL DEFAULT '1' COMMENT '场地状态(0-维修中 1-可用)',
`venue_description` text COMMENT '场地描述',
`venue_images` varchar(500) COMMENT '场地图片',
`venue_manager_id` bigint(20) COMMENT '场地管理员ID',
`venue_manager_name` varchar(30) COMMENT '场地管理员姓名',
`create_dept` bigint(20) DEFAULT NULL 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 '更新时间',
`deleted` tinyint(4) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_venue_code` (`venue_code`),
KEY `idx_venue_type` (`venue_type`),
KEY `idx_venue_status` (`venue_status`),
KEY `idx_venue_manager` (`venue_manager_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='场地信息表';
CREATE TABLE `hq_venue_reservation` (
`id` bigint(20) NOT NULL COMMENT '预约ID',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
`venue_id` bigint(20) NOT NULL COMMENT '场地ID',
`venue_name` varchar(100) NOT NULL COMMENT '场地名称',
`applicant_id` bigint(20) NOT NULL COMMENT '申请人ID',
`applicant_name` varchar(30) NOT NULL COMMENT '申请人姓名',
`applicant_phone` varchar(20) NOT NULL COMMENT '联系方式',
`reservation_date` date NOT NULL COMMENT '预约日期',
`start_time` datetime NOT NULL COMMENT '开始时间',
`end_time` datetime NOT NULL COMMENT '结束时间',
`reservation_purpose` varchar(200) NOT NULL COMMENT '预约用途',
`participant_count` int(11) NOT NULL COMMENT '参与人数',
`special_requirements` text COMMENT '特殊需求',
`reservation_status` char(1) NOT NULL DEFAULT '0' COMMENT '预约状态(0-待审批 1-已批准 2-已拒绝)',
`approver_id` bigint(20) COMMENT '审批人ID',
`approver_name` varchar(30) COMMENT '审批人姓名',
`approve_time` datetime COMMENT '审批时间',
`approve_remark` varchar(500) COMMENT '审批意见',
`create_dept` bigint(20) DEFAULT NULL 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 '更新时间',
`deleted` tinyint(4) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
PRIMARY KEY (`id`),
KEY `idx_venue_id` (`venue_id`),
KEY `idx_applicant_id` (`applicant_id`),
KEY `idx_reservation_date` (`reservation_date`),
KEY `idx_reservation_status` (`reservation_status`),
KEY `idx_time_range` (`start_time`, `end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='场地预约表';
INSERT INTO sys_dict_data VALUES (NULL, 1, '会议室', 'meeting_room', 'hq_venue_type', '', '', 'Y', '0', 'admin', sysdate(), '', NULL, '会议室');
INSERT INTO sys_dict_data VALUES (NULL, 2, '教室', 'classroom', 'hq_venue_type', '', '', 'Y', '0', 'admin', sysdate(), '', NULL, '教室');
INSERT INTO sys_dict_data VALUES (NULL, 3, '运动场', 'sports_field', 'hq_venue_type', '', '', 'Y', '0', 'admin', sysdate(), '', NULL, '运动场');
INSERT INTO sys_dict_data VALUES (NULL, 4, '礼堂', 'auditorium', 'hq_venue_type', '', '', 'Y', '0', 'admin', sysdate(), '', NULL, '礼堂');
INSERT INTO sys_dict_data VALUES (NULL, 5, '实验室', 'laboratory', 'hq_venue_type', '', '', 'Y', '0', 'admin', sysdate(), '', NULL, '实验室');
INSERT INTO sys_dict_data VALUES (NULL, 6, '其他', 'other', 'hq_venue_type', '', '', 'Y', '0', 'admin', sysdate(), '', NULL, '其他');
INSERT INTO sys_dict_data VALUES (NULL, 1, '待审批', '0', 'hq_reservation_status', '', 'warning', 'Y', '0', 'admin', sysdate(), '', NULL, '待审批');
INSERT INTO sys_dict_data VALUES (NULL, 2, '已批准', '1', 'hq_reservation_status', '', 'success', 'Y', '0', 'admin', sysdate(), '', NULL, '已批准');
INSERT INTO sys_dict_data VALUES (NULL, 3, '已拒绝', '2', 'hq_reservation_status', '', 'danger', 'Y', '0', 'admin', sysdate(), '', NULL, '已拒绝');
hq:venue:list - 查看场地列表hq:venue:detail - 查看场地详情hq:venue:reservation:add - 新增预约hq:venue:reservation:edit - 编辑自己的预约(审批前)hq:venue:reservation:cancel - 取消自己的预约(审批前)hq:venue:reservation:view - 查看自己的预约hq:venue:reservation:approve - 审批预约hq:venue:reservation:viewAll - 查看负责场地的所有预约hq:venue:statistics:view - 查看场地使用统计hq:venue:add - 新增场地hq:venue:edit - 编辑场地hq:venue:delete - 删除场地hq:venue:manager:set - 设置场地管理员-- 后勤管理菜单
INSERT INTO sys_menu VALUES(2100, '后勤管理', 0, 5, 'hq', NULL, '', 1, 0, 'M', '0', '0', '', 'logistics', 'admin', sysdate(), '', NULL, '后勤管理目录');
-- 场地管理菜单
INSERT INTO sys_menu VALUES(2110, '场地管理', 2100, 1, 'venue', 'hq/venue/index', '', 1, 0, 'C', '0', '0', 'hq:venue:list', 'venue', 'admin', sysdate(), '', NULL, '场地管理菜单');
-- 场地管理按钮权限
INSERT INTO sys_menu VALUES(2111, '场地查询', 2110, 1, '', '', '', 1, 0, 'F', '0', '0', 'hq:venue:query', '#', 'admin', sysdate(), '', NULL, '');
INSERT INTO sys_menu VALUES(2112, '场地新增', 2110, 2, '', '', '', 1, 0, 'F', '0', '0', 'hq:venue:add', '#', 'admin', sysdate(), '', NULL, '');
INSERT INTO sys_menu VALUES(2113, '场地修改', 2110, 3, '', '', '', 1, 0, 'F', '0', '0', 'hq:venue:edit', '#', 'admin', sysdate(), '', NULL, '');
INSERT INTO sys_menu VALUES(2114, '场地删除', 2110, 4, '', '', '', 1, 0, 'F', '0', '0', 'hq:venue:remove', '#', 'admin', sysdate(), '', NULL, '');
-- 场地预约菜单
INSERT INTO sys_menu VALUES(2120, '场地预约', 2100, 2, 'reservation', 'hq/venue/reservation', '', 1, 0, 'C', '0', '0', 'hq:venue:reservation:list', 'calendar', 'admin', sysdate(), '', NULL, '场地预约菜单');
-- 预约按钮权限
INSERT INTO sys_menu VALUES(2121, '预约查询', 2120, 1, '', '', '', 1, 0, 'F', '0', '0', 'hq:venue:reservation:query', '#', 'admin', sysdate(), '', NULL, '');
INSERT INTO sys_menu VALUES(2122, '预约新增', 2120, 2, '', '', '', 1, 0, 'F', '0', '0', 'hq:venue:reservation:add', '#', 'admin', sysdate(), '', NULL, '');
INSERT INTO sys_menu VALUES(2123, '预约修改', 2120, 3, '', '', '', 1, 0, 'F', '0', '0', 'hq:venue:reservation:edit', '#', 'admin', sysdate(), '', NULL, '');
INSERT INTO sys_menu VALUES(2124, '预约审批', 2120, 4, '', '', '', 1, 0, 'F', '0', '0', 'hq:venue:reservation:approve', '#', 'admin', sysdate(), '', NULL, '');
-- 场地统计菜单
INSERT INTO sys_menu VALUES(2130, '使用统计', 2100, 3, 'statistics', 'hq/venue/statistics', '', 1, 0, 'C', '0', '0', 'hq:venue:statistics:view', 'chart', 'admin', sysdate(), '', NULL, '场地使用统计');
统计维度:
统计指标:
统计维度:
统计指标:
| 版本 | 变更时间 | 变更人 | 变更内容 |
|---|---|---|---|
| v1.0 | 2025-07-01 | system | 初始版本创建 |
文档结束