95 lines
4.6 KiB
SQL
95 lines
4.6 KiB
SQL
-- ============================================================
|
|
-- hr-org 组织管理模块 DDL (F01 + 合同公司)
|
|
-- 说明: 与 models/hr_org/*.json 契约一致; 应用启动时由 sqlor
|
|
-- 根据 json 模型自动建表, 本文件为基线 SQL(可独立执行)。
|
|
-- ============================================================
|
|
|
|
-- 1. 组织 org_unit
|
|
CREATE TABLE IF NOT EXISTS org_unit (
|
|
id VARCHAR(32) NOT NULL COMMENT '主键',
|
|
org_code VARCHAR(32) NOT NULL COMMENT '组织编码',
|
|
org_name VARCHAR(128) NOT NULL COMMENT '组织名称',
|
|
parent_id VARCHAR(32) NULL COMMENT '上级组织(自引用)',
|
|
org_type VARCHAR(16) NULL COMMENT '组织类型(字典ORG_TYPE)',
|
|
leader_id VARCHAR(32) NULL COMMENT '负责人',
|
|
effective_date DATE NULL COMMENT '生效日期',
|
|
expire_date DATE NULL COMMENT '失效日期(空=长期)',
|
|
status VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态 active/inactive',
|
|
sort_no INT NULL DEFAULT 0 COMMENT '排序号',
|
|
remark TEXT NULL COMMENT '备注',
|
|
created_by VARCHAR(32) NULL COMMENT '创建人',
|
|
updated_by VARCHAR(32) NULL COMMENT '更新人',
|
|
created_at TIMESTAMP NULL COMMENT '创建时间',
|
|
updated_at TIMESTAMP NULL COMMENT '更新时间',
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_org_code (org_code),
|
|
KEY idx_parent_id (parent_id),
|
|
KEY idx_status (status)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='组织';
|
|
|
|
-- 2. 组织自定义字段定义 org_field_def
|
|
CREATE TABLE IF NOT EXISTS org_field_def (
|
|
id VARCHAR(32) NOT NULL COMMENT '主键',
|
|
field_code VARCHAR(64) NOT NULL COMMENT '字段编码',
|
|
field_name VARCHAR(128) NOT NULL COMMENT '字段名称',
|
|
field_type VARCHAR(16) NULL COMMENT '字段类型 text/number/date/select',
|
|
entity_type VARCHAR(32) NULL DEFAULT 'org_unit' COMMENT '实体类型',
|
|
options TEXT NULL COMMENT '选项(JSON, select 用)',
|
|
required TINYINT NULL DEFAULT 0 COMMENT '是否必填',
|
|
sort_no INT NULL DEFAULT 0 COMMENT '排序号',
|
|
status VARCHAR(16) NULL DEFAULT 'active' COMMENT '状态',
|
|
created_by VARCHAR(32) NULL,
|
|
updated_by VARCHAR(32) NULL,
|
|
created_at TIMESTAMP NULL,
|
|
updated_at TIMESTAMP NULL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_field_code (field_code)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='组织自定义字段定义';
|
|
|
|
-- 3. 组织自定义字段值 org_field_value (EAV)
|
|
CREATE TABLE IF NOT EXISTS org_field_value (
|
|
id VARCHAR(32) NOT NULL COMMENT '主键',
|
|
org_id VARCHAR(32) NOT NULL COMMENT '组织ID',
|
|
field_def_id VARCHAR(32) NOT NULL COMMENT '字段定义ID',
|
|
field_value TEXT NULL COMMENT '字段值',
|
|
created_by VARCHAR(32) NULL,
|
|
updated_by VARCHAR(32) NULL,
|
|
created_at TIMESTAMP NULL,
|
|
updated_at TIMESTAMP NULL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_org_field (org_id, field_def_id),
|
|
KEY idx_field_def (field_def_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='组织自定义字段值';
|
|
|
|
-- 4. 组织变更时间轴 org_unit_change
|
|
CREATE TABLE IF NOT EXISTS org_unit_change (
|
|
id VARCHAR(32) NOT NULL COMMENT '主键',
|
|
org_id VARCHAR(32) NOT NULL COMMENT '组织ID',
|
|
change_type VARCHAR(16) NOT NULL COMMENT 'create/delete/split/merge/modify',
|
|
change_date DATE NULL COMMENT '变更日期',
|
|
before_data TEXT NULL COMMENT '变更前(JSON)',
|
|
after_data TEXT NULL COMMENT '变更后(JSON)',
|
|
operator VARCHAR(32) NULL COMMENT '操作人',
|
|
created_at TIMESTAMP NULL COMMENT '记录时间',
|
|
PRIMARY KEY (id),
|
|
KEY idx_org (org_id),
|
|
KEY idx_change_date (change_date)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='组织变更时间轴';
|
|
|
|
-- 5. 合同公司 org_contract_company
|
|
CREATE TABLE IF NOT EXISTS org_contract_company (
|
|
id VARCHAR(32) NOT NULL COMMENT '主键',
|
|
company_code VARCHAR(32) NOT NULL COMMENT '公司编码',
|
|
company_name VARCHAR(128) NOT NULL COMMENT '公司名称',
|
|
credit_code VARCHAR(32) NULL COMMENT '统一社会信用代码',
|
|
legal_person VARCHAR(64) NULL COMMENT '法人',
|
|
contact_info VARCHAR(128) NULL COMMENT '联系方式',
|
|
status VARCHAR(16) NOT NULL DEFAULT 'active' COMMENT '状态',
|
|
created_by VARCHAR(32) NULL,
|
|
updated_by VARCHAR(32) NULL,
|
|
created_at TIMESTAMP NULL,
|
|
updated_at TIMESTAMP NULL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_company_code (company_code)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同公司';
|