Files
yunzhupass-database/MySQL/09_cm_db.sql
朱进 768abcfc12 feat(database): 添加项目结构与合同模板相关表及字典数据
- 新增 base_project_structure_t 表,存储项目结构信息
- 新增 cm_contract_template 和 template_component 表,支持合同模板管理
- 添加合同管理相关字典类型和数据,包含合同分类等
- 添加基础配置字典类型及项目阶段、预算阶段、成本维度等字典数据
- 调整字符集和索引提升数据库性能和数据完整性保障
2026-05-15 09:34:43 +08:00

67 lines
3.2 KiB
SQL

-- ----------------------------
-- Table structure for cm_contract_template
-- 合同模板表
-- ----------------------------
CREATE TABLE cm_contract_template (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '模板ID',
template_code VARCHAR(50) NOT NULL UNIQUE COMMENT '模板编码',
template_name VARCHAR(200) NOT NULL COMMENT '模板名称',
template_type VARCHAR(20) NOT NULL COMMENT '模板类型: SALE-销售, PURCHASE-采购, LEASE-租赁, SERVICE-服务, PROJECT-项目',
contract_category VARCHAR(20) NOT NULL COMMENT '合同分类: INCOME-收入, EXPENSE-支出',
business_domain VARCHAR(50) COMMENT '业务领域',
version VARCHAR(20) NOT NULL COMMENT '版本号',
status VARCHAR(20) NOT NULL DEFAULT 'DRAFT' COMMENT '状态: DRAFT-草稿, ACTIVE-生效, INACTIVE-失效',
-- 模板配置
description TEXT COMMENT '模板描述',
component_config JSON COMMENT '组件配置',
field_config JSON COMMENT '字段配置',
validation_rules JSON COMMENT '验证规则',
-- 版本控制
base_template_id BIGINT COMMENT '基于哪个模板创建',
effective_date DATE COMMENT '生效日期',
expiration_date DATE COMMENT '失效日期',
-- 系统字段
created_by BIGINT NOT NULL COMMENT '创建人',
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_by BIGINT COMMENT '更新人',
updated_at TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
is_deleted TINYINT(1) DEFAULT 0 COMMENT '删除标志',
INDEX idx_template_type (template_type),
INDEX idx_status (status),
INDEX idx_business_domain (business_domain)
) COMMENT='合同模板表';
CREATE TABLE template_component (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '关系ID',
template_id BIGINT NOT NULL COMMENT '模板ID',
component_code VARCHAR(50) NOT NULL COMMENT '组件编码',
component_type VARCHAR(50) NOT NULL COMMENT '组件类型: BASIC-基础信息, PARTY-合同主体, SUBJECT-标的物, BILLING-计费, TERMS-商务条款, RECEIVABLE-应收明细, DOCUMENT-文档',
display_order INT NOT NULL DEFAULT 0 COMMENT '显示顺序',
is_required TINYINT(1) DEFAULT 1 COMMENT '是否必填',
is_visible TINYINT(1) DEFAULT 1 COMMENT '是否可见',
is_editable TINYINT(1) DEFAULT 1 COMMENT '是否可编辑',
-- 组件配置
component_config JSON COMMENT '组件配置',
data_rules JSON COMMENT '数据规则',
ui_config JSON COMMENT 'UI配置',
-- 关联关系
parent_component_code VARCHAR(50) COMMENT '父组件编码',
dependency_rules JSON COMMENT '依赖规则',
-- 系统字段
created_by BIGINT NOT NULL COMMENT '创建人',
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_by BIGINT COMMENT '更新人',
updated_at TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
INDEX idx_template_id (template_id),
INDEX idx_component_code (component_code),
UNIQUE KEY uk_template_component (template_id, component_code),
FOREIGN KEY (template_id) REFERENCES contract_template(id) ON DELETE CASCADE
) COMMENT='模板组件关系表';