-- ---------------------------- -- 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='模板组件关系表';