保存当前开发进度:PMS模块完整实现和编译优化配置

This commit is contained in:
Xuhf
2025-05-31 19:49:27 +08:00
parent 049934932d
commit 7af5871106
164 changed files with 30617 additions and 16125 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,578 @@
-- ========================================
-- PMS模块完整菜单配置SQL
-- ========================================
-- 删除已存在的菜单
DELETE FROM sys_menu
WHERE menu_id IN (
1925809154452340738,
-- PMS主菜单
1926240962230853634,
-- 客户联系人
1926240962230853635,
-- 客户联系人查询
1926240962230853636,
-- 客户联系人新增
1926240962230853637,
-- 客户联系人修改
1926240962230853638,
-- 客户联系人删除
1926240962230853639,
-- 客户联系人导出
1926240963610779650,
-- 联系人标签
1926240963610779651,
-- 联系人标签查询
1926240963610779652,
-- 联系人标签新增
1926240963610779653,
-- 联系人标签修改
1926240963610779654,
-- 联系人标签删除
1926240963610779655,
-- 联系人标签导出
1926240964416086017,
-- 联系人标签关联
1926240964416086018,
-- 联系人标签关联查询
1926240964416086019,
-- 联系人标签关联新增
1926240964416086020,
-- 联系人标签关联修改
1926240964416086021,
-- 联系人标签关联删除
1926240964416086022 -- 联系人标签关联导出
);
-- 1. PMS主菜单
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,
remark
)
VALUES (
1925809154452340738,
'PMS管理',
'0',
'5',
'pms',
null,
1,
0,
'M',
'0',
'0',
'',
'ep:office-building',
103,
1,
NOW(),
'PMS管理目录'
);
-- 2. 客户联系人菜单
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,
remark
)
VALUES (
1926240962230853634,
'客户联系人',
'1925809154452340738',
'1',
'contact',
'pms/contact/index',
1,
0,
'C',
'0',
'0',
'pms:contacts:list',
'#',
103,
1,
NOW(),
'客户联系人菜单'
);
-- 客户联系人按钮权限
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,
remark
)
VALUES (
1926240962230853635,
'客户联系人查询',
1926240962230853634,
'1',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:contacts:query',
'#',
103,
1,
NOW(),
''
),
(
1926240962230853636,
'客户联系人新增',
1926240962230853634,
'2',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:contacts:add',
'#',
103,
1,
NOW(),
''
),
(
1926240962230853637,
'客户联系人修改',
1926240962230853634,
'3',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:contacts:edit',
'#',
103,
1,
NOW(),
''
),
(
1926240962230853638,
'客户联系人删除',
1926240962230853634,
'4',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:contacts:remove',
'#',
103,
1,
NOW(),
''
),
(
1926240962230853639,
'客户联系人导出',
1926240962230853634,
'5',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:contacts:export',
'#',
103,
1,
NOW(),
''
);
-- 3. 联系人标签菜单
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,
remark
)
VALUES (
1926240963610779650,
'联系人标签',
'1925809154452340738',
'2',
'tag',
'pms/tag/index',
1,
0,
'C',
'0',
'0',
'pms:contactTags:list',
'#',
103,
1,
NOW(),
'联系人标签菜单'
);
-- 联系人标签按钮权限
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,
remark
)
VALUES (
1926240963610779651,
'联系人标签查询',
1926240963610779650,
'1',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:contactTags:query',
'#',
103,
1,
NOW(),
''
),
(
1926240963610779652,
'联系人标签新增',
1926240963610779650,
'2',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:contactTags:add',
'#',
103,
1,
NOW(),
''
),
(
1926240963610779653,
'联系人标签修改',
1926240963610779650,
'3',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:contactTags:edit',
'#',
103,
1,
NOW(),
''
),
(
1926240963610779654,
'联系人标签删除',
1926240963610779650,
'4',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:contactTags:remove',
'#',
103,
1,
NOW(),
''
),
(
1926240963610779655,
'联系人标签导出',
1926240963610779650,
'5',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:contactTags:export',
'#',
103,
1,
NOW(),
''
);
-- 4. 标签关联管理菜单
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,
remark
)
VALUES (
1926240964416086017,
'标签关联管理',
'1925809154452340738',
'3',
'tag-relation',
'pms/tag-relation/index',
1,
0,
'C',
'0',
'0',
'pms:contactTagRelations:list',
'#',
103,
1,
NOW(),
'联系人标签关联菜单'
);
-- 标签关联管理按钮权限
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,
remark
)
VALUES (
1926240964416086018,
'标签关联查询',
1926240964416086017,
'1',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:contactTagRelations:query',
'#',
103,
1,
NOW(),
''
),
(
1926240964416086019,
'标签关联新增',
1926240964416086017,
'2',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:contactTagRelations:add',
'#',
103,
1,
NOW(),
''
),
(
1926240964416086020,
'标签关联修改',
1926240964416086017,
'3',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:contactTagRelations:edit',
'#',
103,
1,
NOW(),
''
),
(
1926240964416086021,
'标签关联删除',
1926240964416086017,
'4',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:contactTagRelations:remove',
'#',
103,
1,
NOW(),
''
),
(
1926240964416086022,
'标签关联导出',
1926240964416086017,
'5',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:contactTagRelations:export',
'#',
103,
1,
NOW(),
''
);
-- 为超级管理员角色分配所有PMS权限
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT 1,
menu_id
FROM sys_menu
WHERE menu_id IN (
1925809154452340738,
1926240962230853634,
1926240962230853635,
1926240962230853636,
1926240962230853637,
1926240962230853638,
1926240962230853639,
1926240963610779650,
1926240963610779651,
1926240963610779652,
1926240963610779653,
1926240963610779654,
1926240963610779655,
1926240964416086017,
1926240964416086018,
1926240964416086019,
1926240964416086020,
1926240964416086021,
1926240964416086022
)
AND NOT EXISTS (
SELECT 1
FROM sys_role_menu
WHERE role_id = 1
AND sys_role_menu.menu_id = sys_menu.menu_id
);
COMMIT;

View File

@@ -0,0 +1,875 @@
-- 房型管理、房间管理、房间锁定管理菜单配置
-- 基于PMS模块菜单结构
-- 注意菜单ID使用雪花算法生成确保全局唯一性
-- 房型管理菜单ID范围1926240964416086060-1926240964416086069
-- 房间管理菜单ID范围1926240964416086070-1926240964416086079
-- 房间锁定管理菜单ID范围1926240964416086080-1926240964416086089
-- 房型管理菜单
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(
1926240964416086060,
'房型管理',
1926240964416086001,
'2',
'roomType',
'pms/roomType/index',
1,
0,
'C',
'0',
'0',
'pms:roomType:list',
'hotel',
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(
1926240964416086061,
'房型管理查询',
1926240964416086060,
'1',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:roomType: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(
1926240964416086062,
'房型管理新增',
1926240964416086060,
'2',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:roomType: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(
1926240964416086063,
'房型管理修改',
1926240964416086060,
'3',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:roomType: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(
1926240964416086064,
'房型管理删除',
1926240964416086060,
'4',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:roomType: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(
1926240964416086065,
'房型管理导出',
1926240964416086060,
'5',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:roomType:export',
'#',
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(
1926240964416086070,
'房间管理',
1926240964416086001,
'3',
'room',
'pms/room/index',
1,
0,
'C',
'0',
'0',
'pms:room:list',
'room',
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(
1926240964416086071,
'房间管理查询',
1926240964416086070,
'1',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:room: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(
1926240964416086072,
'房间管理新增',
1926240964416086070,
'2',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:room: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(
1926240964416086073,
'房间管理修改',
1926240964416086070,
'3',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:room: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(
1926240964416086074,
'房间管理删除',
1926240964416086070,
'4',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:room: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(
1926240964416086075,
'房间管理导出',
1926240964416086070,
'5',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:room:export',
'#',
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(
1926240964416086076,
'房间状态更新',
1926240964416086070,
'6',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:room:updateStatus',
'#',
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(
1926240964416086080,
'房间锁定管理',
1926240964416086001,
'4',
'roomLock',
'pms/roomLock/index',
1,
0,
'C',
'0',
'0',
'pms:roomLock:list',
'lock',
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(
1926240964416086081,
'房间锁定查询',
1926240964416086080,
'1',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:roomLock: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(
1926240964416086082,
'房间锁定新增',
1926240964416086080,
'2',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:roomLock: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(
1926240964416086083,
'房间锁定修改',
1926240964416086080,
'3',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:roomLock: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(
1926240964416086084,
'房间锁定删除',
1926240964416086080,
'4',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:roomLock: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(
1926240964416086085,
'房间锁定导出',
1926240964416086080,
'5',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:roomLock:export',
'#',
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(
1926240964416086086,
'房间解锁',
1926240964416086080,
'6',
'#',
'',
1,
0,
'F',
'0',
'0',
'pms:roomLock:unlock',
'#',
103,
1,
sysdate(),
null,
null,
''
);
-- 给超级管理员分配权限
INSERT INTO sys_role_menu (role_id, menu_id)
VALUES (1, 1926240964416086060),
(1, 1926240964416086061),
(1, 1926240964416086062),
(1, 1926240964416086063),
(1, 1926240964416086064),
(1, 1926240964416086065),
(1, 1926240964416086070),
(1, 1926240964416086071),
(1, 1926240964416086072),
(1, 1926240964416086073),
(1, 1926240964416086074),
(1, 1926240964416086075),
(1, 1926240964416086076),
(1, 1926240964416086080),
(1, 1926240964416086081),
(1, 1926240964416086082),
(1, 1926240964416086083),
(1, 1926240964416086084),
(1, 1926240964416086085),
(1, 1926240964416086086);
SELECT '房型管理、房间管理、房间锁定管理菜单配置完成' as message;

View File

@@ -0,0 +1,733 @@
-- 房型管理、房间管理、房间锁定管理数据库表结构
-- 基于PMS数据模型v5.4
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for pms_room_types
-- ----------------------------
DROP TABLE IF EXISTS `pms_room_types`;
CREATE TABLE `pms_room_types` (
`room_type_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '房型唯一ID',
`tenant_id` varchar(20) NOT NULL COMMENT '租户ID',
`dept_id` bigint(20) DEFAULT NULL COMMENT '部门ID (门店)',
`type_name` varchar(100) NOT NULL COMMENT '房型名称',
`type_code` varchar(50) NOT NULL COMMENT '房型代码',
`description` varchar(500) DEFAULT NULL COMMENT '房型描述',
`standard_occupancy` int(11) NOT NULL DEFAULT '2' COMMENT '标准入住人数',
`max_occupancy` int(11) NOT NULL DEFAULT '2' COMMENT '最大入住人数',
`room_area` decimal(8, 2) DEFAULT NULL COMMENT '房间面积(平方米)',
`bed_configuration` varchar(200) DEFAULT NULL COMMENT '床型配置',
`amenities` varchar(1000) DEFAULT NULL COMMENT '房间设施',
`default_price` decimal(10, 2) NOT NULL COMMENT '默认价格',
`status` varchar(50) NOT NULL DEFAULT 'active' COMMENT '房型状态',
`sort_order` int(11) DEFAULT '0' COMMENT '排序值',
`images` varchar(2000) DEFAULT NULL 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 '更新时间',
`del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '删除标志0代表存在 1代表删除',
PRIMARY KEY (`room_type_id`),
UNIQUE KEY `uk_room_type_code_dept` (`type_code`, `dept_id`, `del_flag`),
KEY `idx_room_type_dept` (`dept_id`),
KEY `idx_room_type_status` (`status`),
KEY `idx_room_type_tenant` (`tenant_id`),
KEY `idx_room_type_dept_status` (`dept_id`, `status`, `del_flag`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '房型管理表';
-- ----------------------------
-- Table structure for pms_room_rooms
-- ----------------------------
DROP TABLE IF EXISTS `pms_room_rooms`;
CREATE TABLE `pms_room_rooms` (
`room_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '房间唯一ID',
`tenant_id` varchar(20) NOT NULL COMMENT '租户ID',
`dept_id` bigint(20) NOT NULL COMMENT '部门ID (门店)',
`room_type_id` bigint(20) NOT NULL COMMENT '房型ID',
`room_number` varchar(50) NOT NULL COMMENT '房间号',
`floor` varchar(20) DEFAULT NULL COMMENT '楼层',
`room_status` varchar(50) NOT NULL DEFAULT 'available' COMMENT '房间物理状态',
`cleaning_status` varchar(50) NOT NULL DEFAULT 'clean' COMMENT '清洁状态',
`description` varchar(500) DEFAULT NULL COMMENT '房间描述',
`special_amenities` varchar(1000) DEFAULT NULL COMMENT '房间特殊设施',
`last_cleaning_time` datetime DEFAULT NULL COMMENT '最后清洁时间',
`last_maintenance_time` datetime DEFAULT NULL COMMENT '最后维护时间',
`status_remarks` varchar(500) DEFAULT NULL COMMENT '房间状态备注',
`sort_order` int(11) DEFAULT '0' 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 '更新时间',
`del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '删除标志0代表存在 1代表删除',
PRIMARY KEY (`room_id`),
UNIQUE KEY `uk_room_number_dept` (`room_number`, `dept_id`, `del_flag`),
KEY `idx_room_type` (`room_type_id`),
KEY `idx_room_dept` (`dept_id`),
KEY `idx_room_status` (`room_status`),
KEY `idx_room_cleaning` (`cleaning_status`),
KEY `idx_room_tenant` (`tenant_id`),
CONSTRAINT `fk_room_room_type` FOREIGN KEY (`room_type_id`) REFERENCES `pms_room_types` (`room_type_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '房间管理表';
-- ----------------------------
-- Table structure for pms_room_locks
-- ----------------------------
DROP TABLE IF EXISTS `pms_room_locks`;
CREATE TABLE `pms_room_locks` (
`lock_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '锁定记录唯一ID',
`tenant_id` varchar(20) NOT NULL COMMENT '租户ID',
`dept_id` bigint(20) NOT NULL COMMENT '部门ID (门店)',
`room_id` bigint(20) NOT NULL COMMENT '房间ID',
`lock_type` varchar(50) NOT NULL COMMENT '锁定类型',
`lock_start_time` datetime NOT NULL COMMENT '锁定开始时间',
`lock_end_time` datetime DEFAULT NULL COMMENT '锁定结束时间',
`lock_reason` varchar(500) NOT NULL COMMENT '锁定原因',
`lock_status` varchar(50) NOT NULL DEFAULT 'active' COMMENT '锁定状态',
`unlock_time` datetime DEFAULT NULL COMMENT '解锁时间',
`unlock_by` bigint(20) DEFAULT NULL COMMENT '解锁操作人',
`unlock_reason` varchar(500) DEFAULT NULL 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 '更新时间',
`del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '删除标志0代表存在 1代表删除',
PRIMARY KEY (`lock_id`),
KEY `idx_room_lock_tenant` (`tenant_id`),
KEY `idx_room_lock_dept` (`dept_id`),
KEY `idx_room_lock_room` (`room_id`),
KEY `idx_room_lock_status` (`lock_status`),
KEY `idx_room_lock_time` (`lock_start_time`, `lock_end_time`),
CONSTRAINT `fk_room_lock_room` FOREIGN KEY (`room_id`) REFERENCES `pms_room_rooms` (`room_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '房间锁定管理表';
-- ----------------------------
-- 插入基础字典数据
-- ----------------------------
-- 房型状态字典
INSERT INTO sys_dict_type (
dict_id,
tenant_id,
dict_name,
dict_type,
create_dept,
create_by,
create_time,
remark
)
VALUES (
1926240964416086030,
'000000',
'房型状态',
'pms_room_type_status',
103,
1,
sysdate(),
'房型状态列表'
);
INSERT INTO sys_dict_data (
dict_code,
tenant_id,
dict_sort,
dict_label,
dict_value,
dict_type,
css_class,
list_class,
is_default,
create_dept,
create_by,
create_time,
remark
)
VALUES (
1926240964416086031,
'000000',
1,
'启用',
'active',
'pms_room_type_status',
'',
'success',
'Y',
103,
1,
sysdate(),
'房型启用状态'
),
(
1926240964416086032,
'000000',
2,
'禁用',
'inactive',
'pms_room_type_status',
'',
'danger',
'N',
103,
1,
sysdate(),
'房型禁用状态'
),
(
1926240964416086033,
'000000',
3,
'维护中',
'maintenance',
'pms_room_type_status',
'',
'warning',
'N',
103,
1,
sysdate(),
'房型维护状态'
);
-- 房间物理状态字典
INSERT INTO sys_dict_type (
dict_id,
tenant_id,
dict_name,
dict_type,
create_dept,
create_by,
create_time,
remark
)
VALUES (
1926240964416086034,
'000000',
'房间物理状态',
'pms_room_status',
103,
1,
sysdate(),
'房间物理状态列表'
);
INSERT INTO sys_dict_data (
dict_code,
tenant_id,
dict_sort,
dict_label,
dict_value,
dict_type,
css_class,
list_class,
is_default,
create_dept,
create_by,
create_time,
remark
)
VALUES (
1926240964416086035,
'000000',
1,
'可用',
'available',
'pms_room_status',
'',
'success',
'Y',
103,
1,
sysdate(),
'房间可用状态'
),
(
1926240964416086036,
'000000',
2,
'占用',
'occupied',
'pms_room_status',
'',
'primary',
'N',
103,
1,
sysdate(),
'房间占用状态'
),
(
1926240964416086037,
'000000',
3,
'维护中',
'maintenance',
'pms_room_status',
'',
'warning',
'N',
103,
1,
sysdate(),
'房间维护状态'
),
(
1926240964416086038,
'000000',
4,
'停用',
'out_of_order',
'pms_room_status',
'',
'danger',
'N',
103,
1,
sysdate(),
'房间停用状态'
);
-- 清洁状态字典
INSERT INTO sys_dict_type (
dict_id,
tenant_id,
dict_name,
dict_type,
create_dept,
create_by,
create_time,
remark
)
VALUES (
1926240964416086039,
'000000',
'清洁状态',
'pms_cleaning_status',
103,
1,
sysdate(),
'房间清洁状态列表'
);
INSERT INTO sys_dict_data (
dict_code,
tenant_id,
dict_sort,
dict_label,
dict_value,
dict_type,
css_class,
list_class,
is_default,
create_dept,
create_by,
create_time,
remark
)
VALUES (
1926240964416086040,
'000000',
1,
'已清洁',
'clean',
'pms_cleaning_status',
'',
'success',
'Y',
103,
1,
sysdate(),
'房间已清洁'
),
(
1926240964416086041,
'000000',
2,
'待清洁',
'dirty',
'pms_cleaning_status',
'',
'warning',
'N',
103,
1,
sysdate(),
'房间待清洁'
),
(
1926240964416086042,
'000000',
3,
'清洁中',
'cleaning',
'pms_cleaning_status',
'',
'primary',
'N',
103,
1,
sysdate(),
'房间清洁中'
),
(
1926240964416086043,
'000000',
4,
'检查中',
'inspecting',
'pms_cleaning_status',
'',
'info',
'N',
103,
1,
sysdate(),
'房间检查中'
);
-- 锁定类型字典
INSERT INTO sys_dict_type (
dict_id,
tenant_id,
dict_name,
dict_type,
create_dept,
create_by,
create_time,
remark
)
VALUES (
1926240964416086044,
'000000',
'房间锁定类型',
'pms_lock_type',
103,
1,
sysdate(),
'房间锁定类型列表'
);
INSERT INTO sys_dict_data (
dict_code,
tenant_id,
dict_sort,
dict_label,
dict_value,
dict_type,
css_class,
list_class,
is_default,
create_dept,
create_by,
create_time,
remark
)
VALUES (
1926240964416086045,
'000000',
1,
'维护锁定',
'maintenance',
'pms_lock_type',
'',
'warning',
'N',
103,
1,
sysdate(),
'房间维护锁定'
),
(
1926240964416086046,
'000000',
2,
'清洁锁定',
'cleaning',
'pms_lock_type',
'',
'primary',
'N',
103,
1,
sysdate(),
'房间清洁锁定'
),
(
1926240964416086047,
'000000',
3,
'管理锁定',
'management',
'pms_lock_type',
'',
'info',
'N',
103,
1,
sysdate(),
'房间管理锁定'
),
(
1926240964416086048,
'000000',
4,
'故障锁定',
'malfunction',
'pms_lock_type',
'',
'danger',
'N',
103,
1,
sysdate(),
'房间故障锁定'
);
-- 锁定状态字典
INSERT INTO sys_dict_type (
dict_id,
tenant_id,
dict_name,
dict_type,
create_dept,
create_by,
create_time,
remark
)
VALUES (
1926240964416086049,
'000000',
'锁定状态',
'pms_lock_status',
103,
1,
sysdate(),
'房间锁定状态列表'
);
INSERT INTO sys_dict_data (
dict_code,
tenant_id,
dict_sort,
dict_label,
dict_value,
dict_type,
css_class,
list_class,
is_default,
create_dept,
create_by,
create_time,
remark
)
VALUES (
1926240964416086050,
'000000',
1,
'锁定中',
'active',
'pms_lock_status',
'',
'warning',
'Y',
103,
1,
sysdate(),
'房间锁定中'
),
(
1926240964416086051,
'000000',
2,
'已解锁',
'unlocked',
'pms_lock_status',
'',
'success',
'N',
103,
1,
sysdate(),
'房间已解锁'
),
(
1926240964416086052,
'000000',
3,
'已过期',
'expired',
'pms_lock_status',
'',
'info',
'N',
103,
1,
sysdate(),
'锁定已过期'
);
-- ----------------------------
-- 插入测试数据
-- ----------------------------
-- 插入房型测试数据
INSERT INTO pms_room_types (
room_type_id,
tenant_id,
dept_id,
type_name,
type_code,
description,
standard_occupancy,
max_occupancy,
room_area,
bed_configuration,
amenities,
default_price,
status,
sort_order,
create_dept,
create_by,
create_time
)
VALUES (
1,
'000000',
103,
'标准单人间',
'STD_SINGLE',
'舒适的标准单人间,适合商务出行',
1,
1,
20.00,
'单人床 1.2m',
'WiFi,空调,电视,独立卫浴',
188.00,
'active',
1,
103,
1,
sysdate()
),
(
2,
'000000',
103,
'标准双人间',
'STD_DOUBLE',
'温馨的标准双人间,适合情侣或夫妻',
2,
2,
25.00,
'双人床 1.8m',
'WiFi,空调,电视,独立卫浴,迷你吧',
268.00,
'active',
2,
103,
1,
sysdate()
),
(
3,
'000000',
103,
'豪华套房',
'DELUXE_SUITE',
'豪华套房,享受尊贵体验',
2,
4,
50.00,
'大床 2.0m + 沙发床',
'WiFi,空调,电视,独立卫浴,迷你吧,客厅,阳台',
588.00,
'active',
3,
103,
1,
sysdate()
);
-- 插入房间测试数据
INSERT INTO pms_room_rooms (
room_id,
tenant_id,
dept_id,
room_type_id,
room_number,
floor,
room_status,
cleaning_status,
description,
last_cleaning_time,
sort_order,
create_dept,
create_by,
create_time
)
VALUES (
1,
'000000',
103,
1,
'101',
'1F',
'available',
'clean',
'一楼标准单人间',
sysdate(),
101,
103,
1,
sysdate()
),
(
2,
'000000',
103,
1,
'102',
'1F',
'available',
'clean',
'一楼标准单人间',
sysdate(),
102,
103,
1,
sysdate()
),
(
3,
'000000',
103,
2,
'201',
'2F',
'available',
'clean',
'二楼标准双人间',
sysdate(),
201,
103,
1,
sysdate()
),
(
4,
'000000',
103,
2,
'202',
'2F',
'occupied',
'dirty',
'二楼标准双人间',
DATE_SUB(sysdate(), INTERVAL 1 DAY),
202,
103,
1,
sysdate()
),
(
5,
'000000',
103,
3,
'301',
'3F',
'available',
'clean',
'三楼豪华套房',
sysdate(),
301,
103,
1,
sysdate()
);
SET FOREIGN_KEY_CHECKS = 1;
SELECT '房型管理、房间管理、房间锁定管理表创建完成' as message;

View File

@@ -0,0 +1,331 @@
-- PMS 模块测试数据
-- 插入客户联系人测试数据
INSERT INTO pms_customer_contacts (
contact_id,
tenant_id,
contact_type,
full_name,
phone_number,
email,
gender,
date_of_birth,
id_type,
id_number_encrypted,
nationality_country_code,
address_province,
address_city,
address_district,
address_detail,
postal_code,
contact_status,
member_level,
total_stays,
total_amount,
last_stay_date,
remarks,
create_dept,
create_by,
create_time,
update_by,
update_time,
del_flag
)
VALUES (
1,
'000000',
'guest_individual',
'张三',
'13800138000',
'zhangsan@example.com',
'male',
'1990-01-01',
'ID_CARD',
'encrypted_id_123',
'CHN',
'北京市',
'北京市',
'朝阳区',
'建国路123号',
'100000',
'active',
'gold',
5,
2500.00,
'2023-10-01',
'重要客户',
103,
1,
NOW(),
1,
NOW(),
'0'
),
(
2,
'000000',
'guest_individual',
'李四',
'13900139000',
'lisi@example.com',
'female',
'1995-05-15',
'ID_CARD',
'encrypted_id_456',
'CHN',
'上海市',
'上海市',
'浦东新区',
'陆家嘴金融区',
'200000',
'active',
'silver',
3,
1500.00,
'2023-09-15',
'普通客户',
103,
1,
NOW(),
1,
NOW(),
'0'
),
(
3,
'000000',
'corporate_contact',
'王五',
'13700137000',
'wangwu@company.com',
'male',
'1985-12-20',
'ID_CARD',
'encrypted_id_789',
'CHN',
'广东省',
'深圳市',
'南山区',
'科技园南区',
'518000',
'active',
'platinum',
10,
5000.00,
'2023-11-01',
'企业客户',
103,
1,
NOW(),
1,
NOW(),
'0'
),
(
4,
'000000',
'guest_individual',
'赵六',
'13600136000',
'zhaoliu@example.com',
'female',
'1992-08-10',
'PASSPORT',
'encrypted_passport_abc',
'USA',
'加利福尼亚州',
'洛杉矶',
'好莱坞',
'日落大道456号',
'90028',
'active',
'bronze',
2,
800.00,
'2023-08-20',
'外国客户',
103,
1,
NOW(),
1,
NOW(),
'0'
),
(
5,
'000000',
'guest_individual',
'孙七',
'13500135000',
'sunqi@example.com',
'male',
'1988-03-25',
'ID_CARD',
'encrypted_id_def',
'CHN',
'江苏省',
'南京市',
'鼓楼区',
'中山路789号',
'210000',
'prospect',
'bronze',
1,
300.00,
'2023-07-10',
'潜在客户',
103,
1,
NOW(),
1,
NOW(),
'0'
),
(
6,
'000000',
'other',
'钱八',
'13400134000',
'qianba@example.com',
'female',
'1993-11-30',
'ID_CARD',
'encrypted_id_ghi',
'CHN',
'浙江省',
'杭州市',
'西湖区',
'文三路888号',
'310000',
'active',
'silver',
2,
600.00,
'2023-06-05',
'其他类型联系人',
103,
1,
NOW(),
1,
NOW(),
'0'
);
-- 插入联系人标签测试数据
INSERT INTO pms_contact_tags (
tag_id,
tenant_id,
dept_id,
name,
color,
category,
description,
is_system,
sort_order,
create_dept,
create_by,
create_time,
update_by,
update_time,
del_flag
)
VALUES (
1,
'000000',
103,
'常客',
'#FF0000',
'contact_level',
'经常入住的客户',
0,
1,
103,
1,
NOW(),
1,
NOW(),
'0'
),
(
2,
'000000',
103,
'喜欢安静房间',
'#00FF00',
'contact_preference',
'偏好安静环境的客户',
0,
2,
103,
1,
NOW(),
1,
NOW(),
'0'
),
(
3,
'000000',
103,
'VIP客户',
'#FFD700',
'contact_level',
'重要客户',
0,
3,
103,
1,
NOW(),
1,
NOW(),
'0'
),
(
4,
'000000',
103,
'商务客户',
'#0000FF',
'contact_type',
'商务出行客户',
0,
4,
103,
1,
NOW(),
1,
NOW(),
'0'
),
(
5,
'000000',
103,
'度假客户',
'#FF69B4',
'contact_type',
'度假休闲客户',
0,
5,
103,
1,
NOW(),
1,
NOW(),
'0'
);
-- 插入联系人标签关联测试数据
INSERT INTO pms_contact_tag_relations (
contact_id,
tag_id,
tenant_id,
create_dept,
create_by,
create_time
)
VALUES (1, 1, '000000', 103, 1, NOW()),
(1, 3, '000000', 103, 1, NOW()),
(2, 2, '000000', 103, 1, NOW()),
(3, 3, '000000', 103, 1, NOW()),
(3, 4, '000000', 103, 1, NOW()),
(4, 5, '000000', 103, 1, NOW()),
(5, 2, '000000', 103, 1, NOW());