105 lines
6.5 KiB
SQL
105 lines
6.5 KiB
SQL
-- =============================================================
|
||
-- OA 薪酬管理模块表结构
|
||
--
|
||
-- 说明:代码里有模型定义(models/backend_oa_compensation.go),
|
||
-- 但此前缺少建表脚本,访问薪酬页面会因表不存在返回 500。
|
||
-- 本脚本补齐三张表,仅新建、不改动任何既有数据。
|
||
--
|
||
-- 注意:不显式指定 COLLATE,沿用数据库默认排序规则,避免与既有表
|
||
-- (utf8mb4_0900_ai_ci)在 JOIN 比较字符串时报 Illegal mix of collations。
|
||
-- =============================================================
|
||
|
||
SET NAMES utf8mb4;
|
||
|
||
-- ---------------- 1. 员工薪酬方案 ----------------
|
||
CREATE TABLE IF NOT EXISTS `yz_backend_oa_compensation_schemes` (
|
||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
`tid` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '租户ID',
|
||
`employee_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '员工ID',
|
||
`scheme_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '方案名称',
|
||
`effective_date` DATE NOT NULL COMMENT '生效日期',
|
||
`expiry_date` DATE DEFAULT NULL COMMENT '失效日期',
|
||
`base_salary` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '基本工资',
|
||
`post_allowance` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '岗位津贴',
|
||
`performance_salary` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '绩效工资',
|
||
`transport_allowance` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '交通补贴',
|
||
`meal_allowance` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '餐费补贴',
|
||
`communication_allowance` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '通讯补贴',
|
||
`social_insurance_base` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '社保基数',
|
||
`housing_fund_base` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '公积金基数',
|
||
`social_insurance_rate` DECIMAL(6,4) NOT NULL DEFAULT 0 COMMENT '社保个人费率',
|
||
`housing_fund_rate` DECIMAL(6,4) NOT NULL DEFAULT 0 COMMENT '公积金个人费率',
|
||
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '1生效 0失效',
|
||
`remark` TEXT,
|
||
`is_deleted` TINYINT NOT NULL DEFAULT 0,
|
||
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
||
`delete_time` DATETIME DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tid` (`tid`),
|
||
KEY `idx_employee` (`employee_id`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_effective` (`effective_date`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA-员工薪酬方案';
|
||
|
||
-- ---------------- 2. 月度薪资单主表 ----------------
|
||
CREATE TABLE IF NOT EXISTS `yz_backend_oa_compensation_payrolls` (
|
||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
`tid` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '租户ID',
|
||
`employee_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '员工ID',
|
||
`scheme_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '关联薪酬方案ID',
|
||
`payroll_month` VARCHAR(7) NOT NULL DEFAULT '' COMMENT '薪资月份,格式 YYYY-MM',
|
||
`employee_name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '员工姓名快照',
|
||
`department` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '部门快照',
|
||
`position` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '职位快照',
|
||
`base_salary` DECIMAL(12,2) NOT NULL DEFAULT 0,
|
||
`post_allowance` DECIMAL(12,2) NOT NULL DEFAULT 0,
|
||
`performance_salary` DECIMAL(12,2) NOT NULL DEFAULT 0,
|
||
`transport_allowance` DECIMAL(12,2) NOT NULL DEFAULT 0,
|
||
`meal_allowance` DECIMAL(12,2) NOT NULL DEFAULT 0,
|
||
`communication_allowance` DECIMAL(12,2) NOT NULL DEFAULT 0,
|
||
`overtime_pay` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '加班费',
|
||
`bonus` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '奖金',
|
||
`other_addition` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '其他加项',
|
||
`leave_deduction` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '请假扣款',
|
||
`late_deduction` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '迟到扣款',
|
||
`other_deduction` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '其他扣款',
|
||
`social_insurance` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '社保个人部分',
|
||
`housing_fund` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '公积金个人部分',
|
||
`personal_income_tax` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '个人所得税',
|
||
`gross_salary` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '应发合计',
|
||
`total_deduction` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '扣款合计',
|
||
`net_salary` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '实发工资',
|
||
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '0草稿 1已确认 2已发放',
|
||
`confirmed_at` DATETIME DEFAULT NULL,
|
||
`paid_at` DATETIME DEFAULT NULL,
|
||
`remark` TEXT,
|
||
`is_deleted` TINYINT NOT NULL DEFAULT 0,
|
||
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
||
`delete_time` DATETIME DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_tid_employee_month` (`tid`, `employee_id`, `payroll_month`),
|
||
KEY `idx_tid_month` (`tid`, `payroll_month`),
|
||
KEY `idx_status` (`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA-月度薪资单';
|
||
|
||
-- ---------------- 3. 薪资单自定义增减项 ----------------
|
||
CREATE TABLE IF NOT EXISTS `yz_backend_oa_compensation_payroll_items` (
|
||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||
`tid` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '租户ID',
|
||
`payroll_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '薪资单ID',
|
||
`item_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '项目名称',
|
||
`item_type` TINYINT NOT NULL DEFAULT 1 COMMENT '1加项 2扣项',
|
||
`amount` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '金额',
|
||
`remark` VARCHAR(500) DEFAULT NULL,
|
||
`sort_order` INT NOT NULL DEFAULT 0,
|
||
`is_deleted` TINYINT NOT NULL DEFAULT 0,
|
||
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
||
`delete_time` DATETIME DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_payroll` (`payroll_id`),
|
||
KEY `idx_tid` (`tid`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA-薪资单增减项';
|