feat: 更新分期方案初始化脚本,匹配最新表结构和业务需求

- 更新表名和字段名为小写格式,匹配实际数据库结构
- 修正字段类型和默认值,确保与实体类定义一致
- 新增缺失字段:scheme_type, down_payment_ratio, payment_method, policy_type
- 添加索引优化查询性能,提升系统响应速度
- 完善表和字段注释,增强代码可读性
- 优化SQL格式,提高脚本可维护性
This commit is contained in:
Admin
2025-09-11 18:54:21 +08:00
parent aca5fb0a44
commit adb75b01dd

View File

@ -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);