From adb75b01dd776f312512e0dfb5c8d0775c21c44f Mon Sep 17 00:00:00 2001 From: Admin Date: Thu, 11 Sep 2025 18:54:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E5=88=86=E6=9C=9F?= =?UTF-8?q?=E6=96=B9=E6=A1=88=E5=88=9D=E5=A7=8B=E5=8C=96=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=EF=BC=8C=E5=8C=B9=E9=85=8D=E6=9C=80=E6=96=B0=E8=A1=A8=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E5=92=8C=E4=B8=9A=E5=8A=A1=E9=9C=80=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新表名和字段名为小写格式,匹配实际数据库结构 - 修正字段类型和默认值,确保与实体类定义一致 - 新增缺失字段:scheme_type, down_payment_ratio, payment_method, policy_type - 添加索引优化查询性能,提升系统响应速度 - 完善表和字段注释,增强代码可读性 - 优化SQL格式,提高脚本可维护性 --- script/sql/分期方案初始化脚本.sql | 260 ++++++++++++++++++------------ 1 file changed, 154 insertions(+), 106 deletions(-) diff --git a/script/sql/分期方案初始化脚本.sql b/script/sql/分期方案初始化脚本.sql index 763cca8..405d8e6 100644 --- a/script/sql/分期方案初始化脚本.sql +++ b/script/sql/分期方案初始化脚本.sql @@ -1,124 +1,172 @@ -CREATE TABLE `t_BusinessUnit` ( - `id` CHAR ( 36 ) PRIMARY KEY DEFAULT ( - UUID()), +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 ) COMMENT '父级GUID', - `IfEnd` INT COMMENT '是否末级', - tenant_id VARCHAR ( 20 ) DEFAULT '000000' COMMENT '租户编号', - create_dept BIGINT COMMENT '创建部门ID', - create_by BIGINT COMMENT '创建者', - create_time DATETIME COMMENT '创建时间', - update_by BIGINT COMMENT '更新者', - update_time DATETIME COMMENT '更新时间', - del_flag TINYINT ( 1 ) DEFAULT 0 COMMENT '删除标志(0存在 1删除)' -) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COMMENT = '公司表'; -CREATE TABLE `t_Project` ( - `id` CHAR ( 36 ) PRIMARY KEY DEFAULT ( - UUID()), + `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 ) COMMENT '父级GUID', - `IfEnd` INT COMMENT '是否末级', - tenant_id VARCHAR ( 20 ) DEFAULT '000000' COMMENT '租户编号', - create_dept BIGINT COMMENT '创建部门ID', - create_by BIGINT COMMENT '创建者', - create_time DATETIME COMMENT '创建时间', - update_by BIGINT COMMENT '更新者', - update_time DATETIME COMMENT '更新时间', - del_flag TINYINT ( 1 ) DEFAULT 0 COMMENT '删除标志(0存在 1删除)' -) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COMMENT = '项目表'; -CREATE TABLE `t_Room` ( - `id` CHAR ( 36 ) PRIMARY KEY DEFAULT ( - UUID()), + `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 COMMENT '创建部门ID', - create_by BIGINT COMMENT '创建者', - create_time DATETIME COMMENT '创建时间', - update_by BIGINT COMMENT '更新者', - update_time DATETIME COMMENT '更新时间', - del_flag TINYINT ( 1 ) DEFAULT 0 COMMENT '删除标志(0存在 1删除)' -) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COMMENT = '房间表'; -CREATE TABLE `t_periodicPolicy` ( - `id` CHAR ( 36 ) PRIMARY KEY DEFAULT ( - UUID()), - `scheme_name` VARCHAR ( 128 ) 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_periodicpolicy` ( + `id` CHAR ( 36 ) NOT NULL DEFAULT (uuid()), + `scheme_name` VARCHAR ( 128 ) DEFAULT NULL COMMENT '方案名称', `filling_instruction` TEXT COMMENT '填报说明', - `effective_date` DATE COMMENT '生效日期', - `invalid_date` DATE COMMENT '失效日期', - `creator` VARCHAR ( 128 ) COMMENT '创建人', - create_date DATE 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 ) COMMENT '审批状态', - `scheme_type` VARCHAR ( 128 ) COMMENT '分期方案类型', - tenant_id VARCHAR ( 20 ) DEFAULT '000000' COMMENT '租户编号', - create_dept BIGINT COMMENT '创建部门ID', - create_by BIGINT COMMENT '创建者', - create_time DATETIME COMMENT '创建时间', - update_by BIGINT COMMENT '更新者', - update_time DATETIME COMMENT '更新时间', - del_flag TINYINT ( 1 ) DEFAULT 0 COMMENT '删除标志(0存在 1删除)' -) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 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 ) PRIMARY KEY DEFAULT ( - UUID()), - periodicPolicyId INT COMMENT '分期方案主键ID', - policy_name VARCHAR ( 128 ) COMMENT '政策名称', - building_names TEXT COMMENT '楼栋名称', - building_ids TEXT COMMENT '楼栋Id', - effective_date DATE COMMENT '生效日期', - expiration_date DATE COMMENT '失效日期', - usable_houses_count INT COMMENT '可使用房源(套数)', - creator VARCHAR ( 128 ) COMMENT '创建人', - create_date DATE COMMENT '创建日期', - remarks TEXT COMMENT '备注', - description TEXT COMMENT '说明', - category VARCHAR ( 128 ) NOT NULL COMMENT '类别', - payment_type VARCHAR ( 128 ) NOT NULL COMMENT '付款方式类型', - tenant_id VARCHAR ( 20 ) DEFAULT '000000' COMMENT '租户编号', - create_dept BIGINT COMMENT '创建部门ID', - create_by BIGINT COMMENT '创建者', - create_time DATETIME COMMENT '创建时间', - update_by BIGINT COMMENT '更新者', - update_time DATETIME COMMENT '更新时间', - del_flag TINYINT ( 1 ) DEFAULT 0 COMMENT '删除标志(0存在 1删除)' -) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COMMENT = '分期政策表'; + `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 ) PRIMARY KEY DEFAULT ( - UUID()), - `policyId` INT COMMENT '政策主键ID', - `policy_name` VARCHAR ( 128 ) COMMENT '政策名称', - `building_name` VARCHAR ( 128 ) COMMENT '楼栋名称', - `effective_date` DATE COMMENT '生效日期', - `available_units` INT COMMENT '可使用房源(套数)', - `creatorId` VARCHAR ( 36 ) COMMENT '创建人Id', - `creator` VARCHAR ( 128 ) COMMENT '创建人', + `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 ) COMMENT '类别', - `payment_time` VARCHAR ( 100 ) COMMENT '付款时间(如“小订/认购签署日期”)', - `days_within` INT COMMENT '几天内', - `months_within` INT COMMENT '几个月内', - `payment_type` VARCHAR ( 50 ) COMMENT '款项类型(如“非贷款类房款”)', - `item_name` VARCHAR ( 50 ) COMMENT '款项名称(如“定金”)', - `ratio` DECIMAL ( 10, 4 ) COMMENT '比例(保留4位小数)', - `currency` VARCHAR ( 50 ) COMMENT '币种(如“合同币种”)', - `installment` INT COMMENT '分期', - `amount` DECIMAL ( 10, 2 ) COMMENT '金额(保留2位小数)', - `deduct_deposit` TINYINT ( 1 ) COMMENT '是否扣除定金(1为是,0为否)', + `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 COMMENT '创建部门ID', - create_by BIGINT COMMENT '创建者', - create_time DATETIME COMMENT '创建时间', - update_by BIGINT COMMENT '更新者', - update_time DATETIME COMMENT '更新时间', -del_flag TINYINT ( 1 ) DEFAULT 0 COMMENT '删除标志(0存在 1删除)' -) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 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);