CREATE TABLE `t_businessunit` ( `id` CHAR ( 36 ) NOT NULL DEFAULT (uuid()), `BuName` VARCHAR ( 128 ) NOT NULL COMMENT '公司名称', `BUGUID` CHAR ( 36 ) NOT NULL COMMENT '公司GUID', `HierarchicalCode` VARCHAR ( 128 ) NOT NULL COMMENT '层级编码', `ParentGUID` CHAR ( 36 ) DEFAULT NULL COMMENT '父级GUID', `IfEnd` INT DEFAULT NULL COMMENT '是否末级', `tenant_id` VARCHAR ( 20 ) DEFAULT '000000' COMMENT '租户编号', `create_dept` BIGINT DEFAULT NULL COMMENT '创建部门ID', `create_by` BIGINT DEFAULT NULL COMMENT '创建者', `create_time` DATETIME DEFAULT NULL COMMENT '创建时间', `update_by` BIGINT DEFAULT NULL COMMENT '更新者', `update_time` DATETIME DEFAULT NULL COMMENT '更新时间', `del_flag` TINYINT ( 1 ) DEFAULT 0 COMMENT '删除标志(0存在 1删除)', PRIMARY KEY (`id`) ) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '公司表'; CREATE TABLE `t_project` ( `id` CHAR ( 36 ) NOT NULL DEFAULT (uuid()), `ProjName` VARCHAR ( 128 ) NOT NULL COMMENT '项目名称', `ProjGUID` CHAR ( 36 ) NOT NULL COMMENT '项目GUID', `BUGUID` CHAR ( 36 ) NOT NULL COMMENT '公司GUID', `HierarchicalCode` VARCHAR ( 128 ) NOT NULL COMMENT '层级编码', `ParentGUID` CHAR ( 36 ) DEFAULT NULL COMMENT '父级GUID', `IfEnd` INT DEFAULT NULL COMMENT '是否末级', `tenant_id` VARCHAR ( 20 ) DEFAULT '000000' COMMENT '租户编号', `create_dept` BIGINT DEFAULT NULL COMMENT '创建部门ID', `create_by` BIGINT DEFAULT NULL COMMENT '创建者', `create_time` DATETIME DEFAULT NULL COMMENT '创建时间', `update_by` BIGINT DEFAULT NULL COMMENT '更新者', `update_time` DATETIME DEFAULT NULL COMMENT '更新时间', `del_flag` TINYINT ( 1 ) DEFAULT 0 COMMENT '删除标志(0存在 1删除)', PRIMARY KEY (`id`) ) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '项目表'; CREATE TABLE `t_room` ( `id` CHAR ( 36 ) NOT NULL DEFAULT (uuid()), `Name` VARCHAR ( 128 ) NOT NULL COMMENT '房间名称', `RoomGUID` CHAR ( 36 ) NOT NULL COMMENT '房间GUID', `ProjGUID` CHAR ( 36 ) NOT NULL COMMENT '项目GUID', `tenant_id` VARCHAR ( 20 ) DEFAULT '000000' COMMENT '租户编号', `create_dept` BIGINT DEFAULT NULL COMMENT '创建部门ID', `create_by` BIGINT DEFAULT NULL COMMENT '创建者', `create_time` DATETIME DEFAULT NULL COMMENT '创建时间', `update_by` BIGINT DEFAULT NULL COMMENT '更新者', `update_time` DATETIME DEFAULT NULL COMMENT '更新时间', `del_flag` TINYINT ( 1 ) DEFAULT 0 COMMENT '删除标志(0存在 1删除)', PRIMARY KEY (`id`) ) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '房间表'; CREATE TABLE `t_periodicpolicy` ( `id` CHAR ( 36 ) NOT NULL DEFAULT (uuid()), `scheme_name` VARCHAR ( 128 ) DEFAULT NULL COMMENT '方案名称', `filling_instruction` TEXT COMMENT '填报说明', `effective_date` DATE DEFAULT NULL COMMENT '生效日期', `invalid_date` DATE DEFAULT NULL COMMENT '失效日期', `creator` VARCHAR ( 128 ) DEFAULT NULL COMMENT '创建人', `create_date` DATE DEFAULT NULL COMMENT '创建日期', `ProjGUIDs` TEXT COMMENT '分期GUID', `ProjNames` TEXT COMMENT '分期名称', `approveStatus` VARCHAR ( 128 ) DEFAULT NULL COMMENT '审批状态', `scheme_type` VARCHAR ( 128 ) DEFAULT NULL COMMENT '分期方案类型', `tenant_id` VARCHAR ( 20 ) DEFAULT '000000' COMMENT '租户编号', `create_dept` BIGINT DEFAULT NULL COMMENT '创建部门ID', `create_by` BIGINT DEFAULT NULL COMMENT '创建者', `create_time` DATETIME DEFAULT NULL COMMENT '创建时间', `update_by` BIGINT DEFAULT NULL COMMENT '更新者', `update_time` DATETIME DEFAULT NULL COMMENT '更新时间', `del_flag` TINYINT ( 1 ) DEFAULT 0 COMMENT '删除标志(0存在 1删除)', PRIMARY KEY (`id`) ) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '分期方案表'; CREATE TABLE t_policy ( `id` CHAR ( 36 ) NOT NULL DEFAULT (uuid()), `periodicPolicyId` INT DEFAULT NULL COMMENT '分期方案主键ID', `policy_name` VARCHAR ( 128 ) DEFAULT NULL COMMENT '政策名称', `building_names` TEXT COMMENT '楼栋名称', `building_ids` TEXT COMMENT '楼栋Id', `effective_date` DATE DEFAULT NULL COMMENT '生效日期', `expiration_date` DATE DEFAULT NULL COMMENT '失效日期', `usable_houses_count` INT DEFAULT NULL COMMENT '可使用房源(套数)', `creator` VARCHAR ( 128 ) DEFAULT NULL COMMENT '创建人', `create_date` DATE DEFAULT NULL COMMENT '创建日期', `remarks` TEXT COMMENT '备注', `description` TEXT COMMENT '说明', `category` VARCHAR ( 128 ) NOT NULL COMMENT '类别', `payment_type` VARCHAR ( 128 ) NOT NULL COMMENT '付款方式类型', `down_payment_ratio` DECIMAL (5,2) DEFAULT NULL COMMENT '首付比例(%)', `payment_method` VARCHAR ( 50 ) DEFAULT NULL COMMENT '付款方式', `policy_type` VARCHAR ( 50 ) DEFAULT NULL COMMENT '政策类型', `tenant_id` VARCHAR ( 20 ) DEFAULT '000000' COMMENT '租户编号', `create_dept` BIGINT DEFAULT NULL COMMENT '创建部门ID', `create_by` BIGINT DEFAULT NULL COMMENT '创建者', `create_time` DATETIME DEFAULT NULL COMMENT '创建时间', `update_by` BIGINT DEFAULT NULL COMMENT '更新者', `update_time` DATETIME DEFAULT NULL COMMENT '更新时间', `del_flag` TINYINT ( 1 ) DEFAULT 0 COMMENT '删除标志(0存在 1删除)', PRIMARY KEY (`id`) ) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '分期政策表'; CREATE TABLE `t_payment_details` ( `id` CHAR ( 36 ) NOT NULL DEFAULT (uuid()), `policy_id` VARCHAR ( 36 ) DEFAULT NULL COMMENT '政策主键ID', `policy_name` VARCHAR ( 128 ) DEFAULT NULL COMMENT '政策名称', `building_name` VARCHAR ( 128 ) DEFAULT NULL COMMENT '楼栋名称', `effective_date` DATE DEFAULT NULL COMMENT '生效日期', `available_units` INT DEFAULT NULL COMMENT '可使用房源(套数)', `creatorId` VARCHAR ( 36 ) DEFAULT NULL COMMENT '创建人Id', `creator` VARCHAR ( 128 ) DEFAULT NULL COMMENT '创建人', `remark` TEXT COMMENT '备注', `category` VARCHAR ( 128 ) DEFAULT NULL COMMENT '类别', `payment_time` VARCHAR ( 100 ) DEFAULT NULL COMMENT '付款时间(如"小订/认购签署日期")', `days_within` INT DEFAULT NULL COMMENT '几天内', `months_within` INT DEFAULT NULL COMMENT '几个月内', `payment_type` VARCHAR ( 50 ) DEFAULT NULL COMMENT '款项类型(如"非贷款类房款")', `item_name` VARCHAR ( 50 ) DEFAULT NULL COMMENT '款项名称(如"定金")', `ratio` DECIMAL ( 10, 4 ) DEFAULT NULL COMMENT '比例(保留4位小数)', `currency` VARCHAR ( 50 ) DEFAULT NULL COMMENT '币种(如"合同币种")', `installment` INT DEFAULT NULL COMMENT '分期', `amount` DECIMAL ( 10, 2 ) DEFAULT NULL COMMENT '金额(保留2位小数)', `deduct_deposit` TINYINT ( 1 ) DEFAULT NULL COMMENT '是否扣除定金(1为是,0为否)', `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `tenant_id` VARCHAR ( 20 ) DEFAULT '000000' COMMENT '租户编号', `create_dept` BIGINT DEFAULT NULL COMMENT '创建部门ID', `create_by` BIGINT DEFAULT NULL COMMENT '创建者', `create_time` DATETIME DEFAULT NULL COMMENT '创建时间', `update_by` BIGINT DEFAULT NULL COMMENT '更新者', `update_time` DATETIME DEFAULT NULL COMMENT '更新时间', `del_flag` TINYINT ( 1 ) DEFAULT 0 COMMENT '删除标志(0存在 1删除)', PRIMARY KEY (`id`) ) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '付款明细表'; -- 添加索引优化查询性能 -- 分期方案表索引 CREATE INDEX idx_periodicpolicy_scheme_name ON t_periodicpolicy(scheme_name); CREATE INDEX idx_periodicpolicy_effective_date ON t_periodicpolicy(effective_date); CREATE INDEX idx_periodicpolicy_invalid_date ON t_periodicpolicy(invalid_date); CREATE INDEX idx_periodicpolicy_scheme_type ON t_periodicpolicy(scheme_type); CREATE INDEX idx_periodicpolicy_tenant_id ON t_periodicpolicy(tenant_id); CREATE INDEX idx_periodicpolicy_del_flag ON t_periodicpolicy(del_flag); -- 分期政策表索引 CREATE INDEX idx_policy_periodicPolicyId ON t_policy(periodicPolicyId); CREATE INDEX idx_policy_effective_date ON t_policy(effective_date); CREATE INDEX idx_policy_expiration_date ON t_policy(expiration_date); CREATE INDEX idx_policy_category ON t_policy(category); CREATE INDEX idx_policy_payment_type ON t_policy(payment_type); CREATE INDEX idx_policy_down_payment_ratio ON t_policy(down_payment_ratio); CREATE INDEX idx_policy_tenant_id ON t_policy(tenant_id); CREATE INDEX idx_policy_del_flag ON t_policy(del_flag); -- 付款明细表索引 CREATE INDEX idx_payment_details_policy_id ON t_payment_details(policy_id); CREATE INDEX idx_payment_details_payment_type ON t_payment_details(payment_type); CREATE INDEX idx_payment_details_item_name ON t_payment_details(item_name); CREATE INDEX idx_payment_details_days_within ON t_payment_details(days_within); CREATE INDEX idx_payment_details_months_within ON t_payment_details(months_within); CREATE INDEX idx_payment_details_tenant_id ON t_payment_details(tenant_id); CREATE INDEX idx_payment_details_del_flag ON t_payment_details(del_flag); -- 项目表索引 CREATE INDEX idx_project_projguid ON t_project(ProjGUID); CREATE INDEX idx_project_buguid ON t_project(BUGUID); CREATE INDEX idx_project_tenant_id ON t_project(tenant_id); CREATE INDEX idx_project_del_flag ON t_project(del_flag); -- 房间表索引 CREATE INDEX idx_room_roomguid ON t_room(RoomGUID); CREATE INDEX idx_room_projguid ON t_room(ProjGUID); CREATE INDEX idx_room_tenant_id ON t_room(tenant_id); CREATE INDEX idx_room_del_flag ON t_room(del_flag); -- 业务单元表索引 CREATE INDEX idx_businessunit_buguid ON t_businessunit(BUGUID); CREATE INDEX idx_businessunit_tenant_id ON t_businessunit(tenant_id); CREATE INDEX idx_businessunit_del_flag ON t_businessunit(del_flag);