添加薪资管理
This commit is contained in:
188
script/sql/mysql/update/update_v0.8.2~v0.8.3.sql
Normal file
188
script/sql/mysql/update/update_v0.8.2~v0.8.3.sql
Normal file
@@ -0,0 +1,188 @@
|
||||
-- 报销模块表结构(仅CRUD,无审批流)
|
||||
DROP TABLE IF EXISTS gear_reimbursement;
|
||||
CREATE TABLE gear_reimbursement (
|
||||
reimbursement_id bigint(20) NOT NULL COMMENT '报销ID',
|
||||
applicant_id bigint(20) NOT NULL COMMENT '申请人用户ID',
|
||||
applicant_name varchar(64) NOT NULL COMMENT '申请人名称',
|
||||
attachment_url varchar(500) DEFAULT '' COMMENT '附件地址',
|
||||
upload_time datetime COMMENT '上传时间',
|
||||
amount decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '报销金额',
|
||||
reimburse_status char(1) NOT NULL DEFAULT '0' COMMENT '报销状态(0未报销 1已报销)',
|
||||
del_flag char(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0存在 2删除)',
|
||||
create_by varchar(64) DEFAULT '' COMMENT '创建者',
|
||||
create_time datetime COMMENT '创建时间',
|
||||
update_by varchar(64) DEFAULT '' COMMENT '更新者',
|
||||
update_time datetime COMMENT '更新时间',
|
||||
remark varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (reimbursement_id),
|
||||
KEY idx_applicant_id (applicant_id),
|
||||
KEY idx_reimburse_status (reimburse_status),
|
||||
KEY idx_upload_time (upload_time)
|
||||
) ENGINE=InnoDB COMMENT='报销表';
|
||||
|
||||
-- 菜单(挂载到“办公管理”下,parent_id=5)
|
||||
INSERT INTO sys_menu VALUES ('131', '报销管理', '5', '7', 'reimbursement', 'oms/reimbursement/index', '', 1, 0, 'C', '0', '0', 'oa:reimbursement:list', 'money', 'admin', sysdate(), '', null, '报销管理菜单');
|
||||
-- 按钮权限
|
||||
INSERT INTO sys_menu VALUES ('1311', '报销查询', '131', '1', '#', '', '', 1, 0, 'F', '0', '0', 'oa:reimbursement:query', '#', 'admin', sysdate(), '', null, '');
|
||||
INSERT INTO sys_menu VALUES ('1312', '报销新增', '131', '2', '#', '', '', 1, 0, 'F', '0', '0', 'oa:reimbursement:add', '#', 'admin', sysdate(), '', null, '');
|
||||
INSERT INTO sys_menu VALUES ('1313', '报销修改', '131', '3', '#', '', '', 1, 0, 'F', '0', '0', 'oa:reimbursement:edit', '#', 'admin', sysdate(), '', null, '');
|
||||
INSERT INTO sys_menu VALUES ('1314', '报销删除', '131', '4', '#', '', '', 1, 0, 'F', '0', '0', 'oa:reimbursement:remove', '#', 'admin', sysdate(), '', null, '');
|
||||
INSERT INTO sys_menu VALUES ('1315', '报销导出', '131', '5', '#', '', '', 1, 0, 'F', '0', '0', 'oa:reimbursement:export', '#', 'admin', sysdate(), '', null, '');
|
||||
|
||||
-- ================================
|
||||
-- 工资录入/补录模块(v0.8.3)
|
||||
-- ================================
|
||||
|
||||
-- 1) 计费基础配置(小时工/计件工/天工)
|
||||
DROP TABLE IF EXISTS gear_wage_rate_config;
|
||||
CREATE TABLE gear_wage_rate_config (
|
||||
rate_id bigint(20) NOT NULL COMMENT '费率配置ID',
|
||||
rate_code varchar(64) NOT NULL COMMENT '费率编码(唯一)',
|
||||
rate_name varchar(128) NOT NULL COMMENT '费率名称',
|
||||
billing_type char(1) NOT NULL COMMENT '计费类型(1小时工 2计件工 3天工)',
|
||||
work_type_name varchar(64) DEFAULT '' COMMENT '工种名称(小时工/天工使用)',
|
||||
item_name varchar(128) DEFAULT '' COMMENT '加工物品名称(计件工使用)',
|
||||
process_name varchar(128) DEFAULT '' COMMENT '工序名称(计件工使用)',
|
||||
workday_hours decimal(5,2) DEFAULT NULL COMMENT '日工时制度(如8/9,仅天工)',
|
||||
unit_price decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '单价(小时单价/件单价/日薪)',
|
||||
status char(1) NOT NULL DEFAULT '0' COMMENT '状态(0启用 1停用)',
|
||||
del_flag char(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0存在 2删除)',
|
||||
create_by varchar(64) DEFAULT '' COMMENT '创建者',
|
||||
create_time datetime COMMENT '创建时间',
|
||||
update_by varchar(64) DEFAULT '' COMMENT '更新者',
|
||||
update_time datetime COMMENT '更新时间',
|
||||
remark varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (rate_id),
|
||||
UNIQUE KEY uk_rate_code (rate_code),
|
||||
KEY idx_billing_type_status (billing_type, status),
|
||||
KEY idx_work_type_name (work_type_name),
|
||||
KEY idx_item_process (item_name, process_name)
|
||||
) ENGINE=InnoDB COMMENT='工资费率配置表';
|
||||
|
||||
-- 2) 每日录入批次(用于“自动带入全员员工”和录入进度统计)
|
||||
DROP TABLE IF EXISTS gear_wage_entry_batch;
|
||||
CREATE TABLE gear_wage_entry_batch (
|
||||
batch_id bigint(20) NOT NULL COMMENT '批次ID',
|
||||
entry_date date NOT NULL COMMENT '录入日期',
|
||||
total_emp_count int(11) NOT NULL DEFAULT 0 COMMENT '应录入员工总数',
|
||||
entered_emp_count int(11) NOT NULL DEFAULT 0 COMMENT '已录入员工数',
|
||||
unentered_emp_count int(11) NOT NULL DEFAULT 0 COMMENT '未录入员工数',
|
||||
status char(1) NOT NULL DEFAULT '0' COMMENT '状态(0进行中 1已完成)',
|
||||
del_flag char(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0存在 2删除)',
|
||||
create_by varchar(64) DEFAULT '' COMMENT '创建者',
|
||||
create_time datetime COMMENT '创建时间',
|
||||
update_by varchar(64) DEFAULT '' COMMENT '更新者',
|
||||
update_time datetime COMMENT '更新时间',
|
||||
remark varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (batch_id),
|
||||
UNIQUE KEY uk_entry_date (entry_date),
|
||||
KEY idx_status (status)
|
||||
) ENGINE=InnoDB COMMENT='工资每日录入批次表';
|
||||
|
||||
-- 3) 每日员工录入状态(用于“已录入/未录入”检索)
|
||||
DROP TABLE IF EXISTS gear_wage_entry_emp_status;
|
||||
CREATE TABLE gear_wage_entry_emp_status (
|
||||
status_id bigint(20) NOT NULL COMMENT '状态ID',
|
||||
batch_id bigint(20) NOT NULL COMMENT '批次ID',
|
||||
entry_date date NOT NULL COMMENT '录入日期',
|
||||
emp_id bigint(20) NOT NULL COMMENT '员工ID',
|
||||
emp_name varchar(64) NOT NULL COMMENT '员工姓名',
|
||||
entered_flag char(1) NOT NULL DEFAULT '0' COMMENT '是否已录入(0否 1是)',
|
||||
first_entry_time datetime COMMENT '首次录入时间',
|
||||
del_flag char(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0存在 2删除)',
|
||||
create_by varchar(64) DEFAULT '' COMMENT '创建者',
|
||||
create_time datetime COMMENT '创建时间',
|
||||
update_by varchar(64) DEFAULT '' COMMENT '更新者',
|
||||
update_time datetime COMMENT '更新时间',
|
||||
remark varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (status_id),
|
||||
UNIQUE KEY uk_entry_date_emp (entry_date, emp_id),
|
||||
KEY idx_batch_id (batch_id),
|
||||
KEY idx_entered_flag (entered_flag)
|
||||
) ENGINE=InnoDB COMMENT='工资录入员工状态表';
|
||||
|
||||
-- 4) 工资录入明细(原始录入 + 补录)
|
||||
DROP TABLE IF EXISTS gear_wage_entry_detail;
|
||||
CREATE TABLE gear_wage_entry_detail (
|
||||
detail_id bigint(20) NOT NULL COMMENT '明细ID',
|
||||
entry_date date NOT NULL COMMENT '业务日期',
|
||||
emp_id bigint(20) NOT NULL COMMENT '员工ID',
|
||||
emp_name varchar(64) NOT NULL COMMENT '员工姓名',
|
||||
billing_type char(1) NOT NULL COMMENT '计费类型(1小时工 2计件工 3天工)',
|
||||
rate_id bigint(20) NOT NULL COMMENT '费率配置ID',
|
||||
work_type_name varchar(64) DEFAULT '' COMMENT '工种名称(快照)',
|
||||
item_name varchar(128) DEFAULT '' COMMENT '加工物品(快照)',
|
||||
process_name varchar(128) DEFAULT '' COMMENT '工序(快照)',
|
||||
order_no varchar(64) DEFAULT '' COMMENT '订单号(订单维度去重)',
|
||||
workload decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '工作量(小时/件数/天数)',
|
||||
unit_price decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '单价快照',
|
||||
base_amount decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '基础金额(工作量*单价)',
|
||||
extra_amount decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '额外金额(高温/交通等)',
|
||||
extra_reason varchar(255) DEFAULT '' COMMENT '额外金额原因',
|
||||
total_amount decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '总金额(基础+额外)',
|
||||
is_makeup char(1) NOT NULL DEFAULT '0' COMMENT '是否补录(0否 1是)',
|
||||
source_detail_id bigint(20) DEFAULT NULL COMMENT '被补录/被修改的原始明细ID',
|
||||
makeup_responsible_id bigint(20) DEFAULT NULL COMMENT '补录责任人ID',
|
||||
makeup_responsible varchar(64) DEFAULT '' COMMENT '补录责任人姓名',
|
||||
makeup_reason varchar(500) DEFAULT '' COMMENT '补录原因',
|
||||
del_flag char(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0存在 2删除)',
|
||||
create_by varchar(64) DEFAULT '' COMMENT '创建者',
|
||||
create_time datetime COMMENT '创建时间',
|
||||
update_by varchar(64) DEFAULT '' COMMENT '更新者',
|
||||
update_time datetime COMMENT '更新时间',
|
||||
remark varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (detail_id),
|
||||
UNIQUE KEY uk_entry_unique (entry_date, emp_id, billing_type, rate_id, order_no, del_flag),
|
||||
KEY idx_entry_date_emp (entry_date, emp_id),
|
||||
KEY idx_is_makeup (is_makeup),
|
||||
KEY idx_makeup_resp (makeup_responsible_id),
|
||||
KEY idx_source_detail_id (source_detail_id),
|
||||
KEY idx_order_no (order_no)
|
||||
) ENGINE=InnoDB COMMENT='工资录入明细表';
|
||||
|
||||
-- 5) 补录操作日志(确保责任链可追溯)
|
||||
DROP TABLE IF EXISTS gear_wage_makeup_log;
|
||||
CREATE TABLE gear_wage_makeup_log (
|
||||
log_id bigint(20) NOT NULL COMMENT '日志ID',
|
||||
detail_id bigint(20) NOT NULL COMMENT '补录后明细ID',
|
||||
source_detail_id bigint(20) DEFAULT NULL COMMENT '补录前明细ID',
|
||||
operation_type char(1) NOT NULL DEFAULT '1' COMMENT '操作类型(1新增补录 2修改补录 3撤销补录)',
|
||||
operation_date date NOT NULL COMMENT '补录目标日期',
|
||||
emp_id bigint(20) NOT NULL COMMENT '员工ID',
|
||||
makeup_responsible_id bigint(20) NOT NULL COMMENT '补录责任人ID',
|
||||
makeup_responsible varchar(64) NOT NULL COMMENT '补录责任人姓名',
|
||||
makeup_reason varchar(500) NOT NULL COMMENT '补录原因',
|
||||
del_flag char(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0存在 2删除)',
|
||||
create_by varchar(64) DEFAULT '' COMMENT '创建者',
|
||||
create_time datetime COMMENT '创建时间',
|
||||
update_by varchar(64) DEFAULT '' COMMENT '更新者',
|
||||
update_time datetime COMMENT '更新时间',
|
||||
remark varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (log_id),
|
||||
KEY idx_operation_date (operation_date),
|
||||
KEY idx_resp_id (makeup_responsible_id),
|
||||
KEY idx_emp_id (emp_id),
|
||||
KEY idx_detail_id (detail_id)
|
||||
) ENGINE=InnoDB COMMENT='工资补录日志表';
|
||||
|
||||
-- 6) 工人主数据(支持模板导入,长期复用)
|
||||
DROP TABLE IF EXISTS gear_worker;
|
||||
CREATE TABLE gear_worker (
|
||||
worker_id bigint(20) NOT NULL COMMENT '工人ID',
|
||||
worker_no varchar(64) NOT NULL COMMENT '工号',
|
||||
worker_name varchar(64) NOT NULL COMMENT '姓名',
|
||||
phone varchar(20) DEFAULT '' COMMENT '手机号',
|
||||
default_billing_type char(1) DEFAULT '1' COMMENT '默认计费类型(1小时工 2计件工 3天工)',
|
||||
default_work_type_name varchar(64) DEFAULT '' COMMENT '默认工种',
|
||||
status char(1) NOT NULL DEFAULT '0' COMMENT '状态(0在职 1离职)',
|
||||
del_flag char(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0存在 2删除)',
|
||||
create_by varchar(64) DEFAULT '' COMMENT '创建者',
|
||||
create_time datetime COMMENT '创建时间',
|
||||
update_by varchar(64) DEFAULT '' COMMENT '更新者',
|
||||
update_time datetime COMMENT '更新时间',
|
||||
remark varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (worker_id),
|
||||
UNIQUE KEY uk_worker_no (worker_no),
|
||||
KEY idx_worker_name (worker_name),
|
||||
KEY idx_status (status)
|
||||
) ENGINE=InnoDB COMMENT='工人主数据表';
|
||||
Reference in New Issue
Block a user