薪资管理完整版

This commit is contained in:
2025-06-22 20:07:12 +08:00
parent 3c417c64cd
commit f7c9ab66e0

View File

@@ -1,3 +1,19 @@
-- 0. 员工基础信息表
CREATE TABLE `oa_employee`
(
`employee_id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '员工ID',
`employee_name` VARCHAR(100) NOT NULL COMMENT '姓名',
`company` VARCHAR(100) NOT NULL COMMENT '公司',
`del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志 0=未删,1=已删',
`remark` VARCHAR(255) COMMENT '备注',
`create_by` VARCHAR(50) COMMENT '创建人',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` VARCHAR(50) COMMENT '更新人',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE = InnoDB
CHARSET = utf8mb4 COMMENT ='员工基础信息';
-- 1. 社保/公积金模板主表 -- 1. 社保/公积金模板主表
CREATE TABLE `oa_insurance_template` CREATE TABLE `oa_insurance_template`
( (
@@ -5,9 +21,9 @@ CREATE TABLE `oa_insurance_template`
`template_name` VARCHAR(100) NOT NULL COMMENT '模板名称', `template_name` VARCHAR(100) NOT NULL COMMENT '模板名称',
`del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志 0=未删,1=已删', `del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志 0=未删,1=已删',
`remark` VARCHAR(255) COMMENT '备注', `remark` VARCHAR(255) COMMENT '备注',
`created_by` VARCHAR(50) COMMENT '创建人', `create_by` VARCHAR(50) COMMENT '创建人',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_by` VARCHAR(50) COMMENT '更新人', `update_by` VARCHAR(50) COMMENT '更新人',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE = InnoDB ) ENGINE = InnoDB
@@ -22,9 +38,9 @@ CREATE TABLE `oa_insurance_template_detail`
`amount` DECIMAL(12, 2) NOT NULL COMMENT '金额或比例', `amount` DECIMAL(12, 2) NOT NULL COMMENT '金额或比例',
`del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志', `del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志',
`remark` VARCHAR(255) COMMENT '备注', `remark` VARCHAR(255) COMMENT '备注',
`created_by` VARCHAR(50) COMMENT '创建人', `create_by` VARCHAR(50) COMMENT '创建人',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_by` VARCHAR(50) COMMENT '更新人', `update_by` VARCHAR(50) COMMENT '更新人',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
INDEX (`insurance_template_id`) INDEX (`insurance_template_id`)
@@ -38,9 +54,9 @@ CREATE TABLE `oa_salary_template`
`template_name` VARCHAR(100) NOT NULL COMMENT '模板名称', `template_name` VARCHAR(100) NOT NULL COMMENT '模板名称',
`del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志', `del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志',
`remark` VARCHAR(255) COMMENT '备注', `remark` VARCHAR(255) COMMENT '备注',
`created_by` VARCHAR(50) COMMENT '创建人', `create_by` VARCHAR(50) COMMENT '创建人',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_by` VARCHAR(50) COMMENT '更新人', `update_by` VARCHAR(50) COMMENT '更新人',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE = InnoDB ) ENGINE = InnoDB
@@ -56,9 +72,9 @@ CREATE TABLE `oa_salary_template_detail`
`rate` DECIMAL(12, 4) DEFAULT NULL COMMENT '费率,仅针对费率项', `rate` DECIMAL(12, 4) DEFAULT NULL COMMENT '费率,仅针对费率项',
`del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志', `del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志',
`remark` VARCHAR(255) COMMENT '备注', `remark` VARCHAR(255) COMMENT '备注',
`created_by` VARCHAR(50) COMMENT '创建人', `create_by` VARCHAR(50) COMMENT '创建人',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_by` VARCHAR(50) COMMENT '更新人', `update_by` VARCHAR(50) COMMENT '更新人',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
INDEX (`salary_template_id`) INDEX (`salary_template_id`)
@@ -79,9 +95,9 @@ CREATE TABLE `oa_employee_template_binding`
`status` VARCHAR(20) NOT NULL COMMENT '状态(已发/待发)', `status` VARCHAR(20) NOT NULL COMMENT '状态(已发/待发)',
`del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志', `del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志',
`remark` VARCHAR(255) COMMENT '备注', `remark` VARCHAR(255) COMMENT '备注',
`created_by` VARCHAR(50) COMMENT '创建人', `create_by` VARCHAR(50) COMMENT '创建人',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_by` VARCHAR(50) COMMENT '更新人', `update_by` VARCHAR(50) COMMENT '更新人',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
INDEX (`employee_id`), INDEX (`employee_id`),
@@ -100,12 +116,24 @@ CREATE TABLE `oa_binding_item_detail`
`paid_amount` DECIMAL(12, 2) NOT NULL COMMENT '实际缴纳/支付金额', `paid_amount` DECIMAL(12, 2) NOT NULL COMMENT '实际缴纳/支付金额',
`del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志', `del_flag` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志',
`remark` VARCHAR(255) COMMENT '备注', `remark` VARCHAR(255) COMMENT '备注',
`created_by` VARCHAR(50) COMMENT '创建人', `create_by` VARCHAR(50) COMMENT '创建人',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_by` VARCHAR(50) COMMENT '更新人', `update_by` VARCHAR(50) COMMENT '更新人',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
INDEX (`binding_id`), INDEX (`binding_id`),
INDEX (`template_type`) INDEX (`template_type`)
) ENGINE = InnoDB ) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='绑定记录明细表'; DEFAULT CHARSET = utf8mb4 COMMENT ='绑定记录明细表';
#
# 重新设计了一个员工id是因为有的工人不进入oa系统
#
# 首先是设计模板就是薪资模板和保险模板以及他们的细节项
# 接下来就是针对每一个员工计算他们的薪资了。
# 每个员工可以绑定一个薪资模板和一个保险模板
# 绑定之后就可以根据每一个模板中的细节添加记录明细
# 添加完了之后就可以计算总共的实际发放工资
#
# 因为每一个员工他可能对应的模板不同,因为公司的登记地点不同,例如江苏的险种金额和山东的金额不同
#
# 如果可以的话在首次配置好之后,第二个月用户点击计算薪资后可以直接先拷贝一下上一个月的。然后在此基础上更换模板或者修改金额