package models import "time" // BackendOaCompensationScheme 员工薪酬方案表 yz_backend_oa_compensation_schemes。 // 一个员工可保留多份历史方案,生效中的方案由 effective_date 与 status 共同决定。 type BackendOaCompensationScheme struct { ID uint64 `orm:"column(id);pk;auto" json:"id"` Tid uint64 `orm:"column(tid)" json:"tid"` EmployeeID uint64 `orm:"column(employee_id)" json:"employee_id"` SchemeName string `orm:"column(scheme_name);size(100)" json:"scheme_name"` EffectiveDate time.Time `orm:"column(effective_date);type(date)" json:"effective_date"` ExpiryDate *time.Time `orm:"column(expiry_date);null;type(date)" json:"expiry_date"` BaseSalary float64 `orm:"column(base_salary);type(decimal);digits(12);decimals(2);default(0)" json:"base_salary"` PostAllowance float64 `orm:"column(post_allowance);type(decimal);digits(12);decimals(2);default(0)" json:"post_allowance"` PerformanceSalary float64 `orm:"column(performance_salary);type(decimal);digits(12);decimals(2);default(0)" json:"performance_salary"` TransportAllowance float64 `orm:"column(transport_allowance);type(decimal);digits(12);decimals(2);default(0)" json:"transport_allowance"` MealAllowance float64 `orm:"column(meal_allowance);type(decimal);digits(12);decimals(2);default(0)" json:"meal_allowance"` CommunicationAllowance float64 `orm:"column(communication_allowance);type(decimal);digits(12);decimals(2);default(0)" json:"communication_allowance"` SocialInsuranceBase float64 `orm:"column(social_insurance_base);type(decimal);digits(12);decimals(2);default(0)" json:"social_insurance_base"` HousingFundBase float64 `orm:"column(housing_fund_base);type(decimal);digits(12);decimals(2);default(0)" json:"housing_fund_base"` SocialInsuranceRate float64 `orm:"column(social_insurance_rate);type(decimal);digits(6);decimals(4);default(0)" json:"social_insurance_rate"` HousingFundRate float64 `orm:"column(housing_fund_rate);type(decimal);digits(6);decimals(4);default(0)" json:"housing_fund_rate"` Status int8 `orm:"column(status);default(1)" json:"status"` Remark string `orm:"column(remark);type(text);null" json:"remark"` IsDeleted int8 `orm:"column(is_deleted);default(0)" json:"is_deleted"` CreateTime time.Time `orm:"column(create_time);auto_now_add;type(datetime)" json:"create_time"` UpdateTime *time.Time `orm:"column(update_time);null;type(datetime)" json:"update_time"` DeleteTime *time.Time `orm:"column(delete_time);null;type(datetime)" json:"delete_time"` } func (m *BackendOaCompensationScheme) TableName() string { return "yz_backend_oa_compensation_schemes" } // BackendOaPayroll 月度薪资单主表 yz_backend_oa_compensation_payrolls。 // EmployeeName / Department / Position 为生成时的快照,避免组织架构变更影响历史工资单。 type BackendOaPayroll struct { ID uint64 `orm:"column(id);pk;auto" json:"id"` Tid uint64 `orm:"column(tid)" json:"tid"` EmployeeID uint64 `orm:"column(employee_id)" json:"employee_id"` SchemeID *uint64 `orm:"column(scheme_id);null" json:"scheme_id"` PayrollMonth string `orm:"column(payroll_month);size(7)" json:"payroll_month"` EmployeeName string `orm:"column(employee_name);size(50)" json:"employee_name"` Department string `orm:"column(department);size(100)" json:"department"` Position string `orm:"column(position);size(100)" json:"position"` BaseSalary float64 `orm:"column(base_salary);type(decimal);digits(12);decimals(2);default(0)" json:"base_salary"` PostAllowance float64 `orm:"column(post_allowance);type(decimal);digits(12);decimals(2);default(0)" json:"post_allowance"` PerformanceSalary float64 `orm:"column(performance_salary);type(decimal);digits(12);decimals(2);default(0)" json:"performance_salary"` TransportAllowance float64 `orm:"column(transport_allowance);type(decimal);digits(12);decimals(2);default(0)" json:"transport_allowance"` MealAllowance float64 `orm:"column(meal_allowance);type(decimal);digits(12);decimals(2);default(0)" json:"meal_allowance"` CommunicationAllowance float64 `orm:"column(communication_allowance);type(decimal);digits(12);decimals(2);default(0)" json:"communication_allowance"` OvertimePay float64 `orm:"column(overtime_pay);type(decimal);digits(12);decimals(2);default(0)" json:"overtime_pay"` Bonus float64 `orm:"column(bonus);type(decimal);digits(12);decimals(2);default(0)" json:"bonus"` OtherAddition float64 `orm:"column(other_addition);type(decimal);digits(12);decimals(2);default(0)" json:"other_addition"` LeaveDeduction float64 `orm:"column(leave_deduction);type(decimal);digits(12);decimals(2);default(0)" json:"leave_deduction"` LateDeduction float64 `orm:"column(late_deduction);type(decimal);digits(12);decimals(2);default(0)" json:"late_deduction"` OtherDeduction float64 `orm:"column(other_deduction);type(decimal);digits(12);decimals(2);default(0)" json:"other_deduction"` SocialInsurance float64 `orm:"column(social_insurance);type(decimal);digits(12);decimals(2);default(0)" json:"social_insurance"` HousingFund float64 `orm:"column(housing_fund);type(decimal);digits(12);decimals(2);default(0)" json:"housing_fund"` PersonalIncomeTax float64 `orm:"column(personal_income_tax);type(decimal);digits(12);decimals(2);default(0)" json:"personal_income_tax"` GrossSalary float64 `orm:"column(gross_salary);type(decimal);digits(12);decimals(2);default(0)" json:"gross_salary"` TotalDeduction float64 `orm:"column(total_deduction);type(decimal);digits(12);decimals(2);default(0)" json:"total_deduction"` NetSalary float64 `orm:"column(net_salary);type(decimal);digits(12);decimals(2);default(0)" json:"net_salary"` Status int8 `orm:"column(status);default(0)" json:"status"` ConfirmedAt *time.Time `orm:"column(confirmed_at);null;type(datetime)" json:"confirmed_at"` PaidAt *time.Time `orm:"column(paid_at);null;type(datetime)" json:"paid_at"` Remark string `orm:"column(remark);type(text);null" json:"remark"` IsDeleted int8 `orm:"column(is_deleted);default(0)" json:"is_deleted"` CreateTime time.Time `orm:"column(create_time);auto_now_add;type(datetime)" json:"create_time"` UpdateTime *time.Time `orm:"column(update_time);null;type(datetime)" json:"update_time"` DeleteTime *time.Time `orm:"column(delete_time);null;type(datetime)" json:"delete_time"` } func (m *BackendOaPayroll) TableName() string { return "yz_backend_oa_compensation_payrolls" } // BackendOaPayrollItem 薪资单自定义增减项 yz_backend_oa_compensation_payroll_items。 type BackendOaPayrollItem struct { ID uint64 `orm:"column(id);pk;auto" json:"id"` Tid uint64 `orm:"column(tid)" json:"tid"` PayrollID uint64 `orm:"column(payroll_id)" json:"payroll_id"` ItemName string `orm:"column(item_name);size(100)" json:"item_name"` ItemType int8 `orm:"column(item_type);default(1)" json:"item_type"` Amount float64 `orm:"column(amount);type(decimal);digits(12);decimals(2);default(0)" json:"amount"` Remark string `orm:"column(remark);size(500);null" json:"remark"` SortOrder int `orm:"column(sort_order);default(0)" json:"sort_order"` IsDeleted int8 `orm:"column(is_deleted);default(0)" json:"is_deleted"` CreateTime time.Time `orm:"column(create_time);auto_now_add;type(datetime)" json:"create_time"` UpdateTime *time.Time `orm:"column(update_time);null;type(datetime)" json:"update_time"` DeleteTime *time.Time `orm:"column(delete_time);null;type(datetime)" json:"delete_time"` } func (m *BackendOaPayrollItem) TableName() string { return "yz_backend_oa_compensation_payroll_items" }