feat(oa): 添加工资发放主和明细相关功能

- 新增工资发放主和明细的实体类、BO类、VO类
- 实现工资发放主和明细的增删查改功能
- 添加工资发放主和明细的导出功能
This commit is contained in:
2025-09-08 14:22:24 +08:00
parent b1bbbec067
commit fdd7489102
16 changed files with 1514 additions and 0 deletions

View File

@@ -0,0 +1,177 @@
package com.ruoyi.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 工资发放明细对象 oa_salary_detail
*
* @author Joshi
* @date 2025-09-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("oa_salary_detail")
public class OaSalaryDetail extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 主键,自增
*/
@TableId(value = "detail_id")
private Long detailId;
/**
* 关联主表ID
*/
private Long mainId;
/**
* 序号
*/
private Long serialNumber;
/**
* 部门
*/
private String dept;
/**
* 员工姓名
*/
private String name;
/**
* 基本工资
*/
private BigDecimal basicSalary;
/**
* 岗位工资
*/
private BigDecimal postSalary;
/**
* 餐补
*/
private BigDecimal mealAllowance;
/**
* 住房补贴
*/
private BigDecimal housingAllowance;
/**
* 公交补贴
*/
private BigDecimal busAllowance;
/**
* 出差天数
*/
private Long businessDaysOther;
/**
* 出差补助
*/
private BigDecimal businessAllowance;
/**
* 社保补助模板2字段
*/
private BigDecimal socialSecurityAllowance;
/**
* 加班时长模板2字段
*/
private BigDecimal overtimeHours;
/**
* 加班标准模板2字段
*/
private BigDecimal overtimeRate;
/**
* 加班工资总计模板2字段
*/
private BigDecimal overtimeTotal;
/**
* 出勤天数模板2字段
*/
private Long businessDays;
/**
* 请假扣款
*/
private BigDecimal leaveDeduction;
/**
* 其他扣款
*/
private BigDecimal otherDeduction;
/**
* 应发工资
*/
private BigDecimal grossSalary;
/**
* 个人缴纳养老保险
*/
private BigDecimal personalPension;
/**
* 个人缴纳医疗保险
*/
private BigDecimal personalMedical;
/**
* 个人缴纳失业保险
*/
private BigDecimal personalUnemployment;
/**
* 个人缴纳大病医疗
*/
private BigDecimal personalBigMedical;
/**
* 个人缴纳住房公积金
*/
private BigDecimal personalHousingFund;
/**
* 个人所得税
*/
private BigDecimal personalTax;
/**
* 实发工资
*/
private BigDecimal netSalary;
/**
* 企业缴纳养老保险
*/
private BigDecimal enterprisePension;
/**
* 企业缴纳医疗保险
*/
private BigDecimal enterpriseMedical;
/**
* 企业缴纳工伤保险模板2字段
*/
private BigDecimal enterpriseInjury;
/**
* 企业缴纳失业保险
*/
private BigDecimal enterpriseUnemployment;
/**
* 企业缴纳生育保险模板1字段
*/
private BigDecimal enterpriseMaternity;
/**
* 企业缴纳住房公积金
*/
private BigDecimal enterpriseHousingFund;
/**
* 企业缴纳大病医疗模板2字段
*/
private BigDecimal enterpriseBigMedical;
/**
* 单位总支出
*/
private BigDecimal unitTotalExpense;
/**
* 备注
*/
private String remark;
/**
* 删除标志0正常 1删除
*/
@TableLogic
private Long delFlag;
}

View File

@@ -0,0 +1,68 @@
package com.ruoyi.oa.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 工资发放主对象 oa_salary_master
*
* @author Joshi
* @date 2025-09-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("oa_salary_master")
public class OaSalaryMaster extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 主键,自增
*/
@TableId(value = "master_id")
private Long masterId;
/**
* 单位名称
*/
private String unitName;
/**
* 工资所属期间格式如2023-08
*/
private String salaryPeriod;
/**
* 总经理审批状态或姓名
*/
private String gmApproval;
/**
* 财务审核状态或姓名
*/
private String financeAudit;
/**
* 出纳姓名
*/
private String cashier;
/**
* 部门主管姓名
*/
private String deptManager;
/**
* 经办人姓名
*/
private String operator;
/**
* 备注
*/
private String remark;
/**
* 删除标志0正常 1删除
*/
@TableLogic
private Long delFlag;
}

View File

@@ -0,0 +1,206 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 工资发放明细业务对象 oa_salary_detail
*
* @author Joshi
* @date 2025-09-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class OaSalaryDetailBo extends BaseEntity {
/**
* 主键,自增
*/
private Long detailId;
/**
* 关联主表ID
*/
private Long mainId;
/**
* 序号
*/
private Long serialNumber;
/**
* 部门
*/
private String dept;
/**
* 员工姓名
*/
private String name;
/**
* 基本工资
*/
private BigDecimal basicSalary;
/**
* 岗位工资
*/
private BigDecimal postSalary;
/**
* 餐补
*/
private BigDecimal mealAllowance;
/**
* 住房补贴
*/
private BigDecimal housingAllowance;
/**
* 公交补贴
*/
private BigDecimal busAllowance;
/**
* 出差天数
*/
private Long businessDaysOther;
/**
* 出差补助
*/
private BigDecimal businessAllowance;
/**
* 社保补助模板2字段
*/
private BigDecimal socialSecurityAllowance;
/**
* 加班时长模板2字段
*/
private BigDecimal overtimeHours;
/**
* 加班标准模板2字段
*/
private BigDecimal overtimeRate;
/**
* 加班工资总计模板2字段
*/
private BigDecimal overtimeTotal;
/**
* 出勤天数模板2字段
*/
private Long businessDays;
/**
* 请假扣款
*/
private BigDecimal leaveDeduction;
/**
* 其他扣款
*/
private BigDecimal otherDeduction;
/**
* 应发工资
*/
private BigDecimal grossSalary;
/**
* 个人缴纳养老保险
*/
private BigDecimal personalPension;
/**
* 个人缴纳医疗保险
*/
private BigDecimal personalMedical;
/**
* 个人缴纳失业保险
*/
private BigDecimal personalUnemployment;
/**
* 个人缴纳大病医疗
*/
private BigDecimal personalBigMedical;
/**
* 个人缴纳住房公积金
*/
private BigDecimal personalHousingFund;
/**
* 个人所得税
*/
private BigDecimal personalTax;
/**
* 实发工资
*/
private BigDecimal netSalary;
/**
* 企业缴纳养老保险
*/
private BigDecimal enterprisePension;
/**
* 企业缴纳医疗保险
*/
private BigDecimal enterpriseMedical;
/**
* 企业缴纳工伤保险模板2字段
*/
private BigDecimal enterpriseInjury;
/**
* 企业缴纳失业保险
*/
private BigDecimal enterpriseUnemployment;
/**
* 企业缴纳生育保险模板1字段
*/
private BigDecimal enterpriseMaternity;
/**
* 企业缴纳住房公积金
*/
private BigDecimal enterpriseHousingFund;
/**
* 企业缴纳大病医疗模板2字段
*/
private BigDecimal enterpriseBigMedical;
/**
* 单位总支出
*/
private BigDecimal unitTotalExpense;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,70 @@
package com.ruoyi.oa.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 工资发放主业务对象 oa_salary_master
*
* @author Joshi
* @date 2025-09-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class OaSalaryMasterBo extends BaseEntity {
/**
* 主键,自增
*/
private Long masterId;
/**
* 单位名称
*/
private String unitName;
/**
* 工资所属期间格式如2023-08
*/
private String salaryPeriod;
/**
* 总经理审批状态或姓名
*/
private String gmApproval;
/**
* 财务审核状态或姓名
*/
private String financeAudit;
/**
* 出纳姓名
*/
private String cashier;
/**
* 部门主管姓名
*/
private String deptManager;
/**
* 经办人姓名
*/
private String operator;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,250 @@
package com.ruoyi.oa.domain.vo;
import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
/**
* 工资发放明细视图对象 oa_salary_detail
*
* @author Joshi
* @date 2025-09-08
*/
@Data
@ExcelIgnoreUnannotated
public class OaSalaryDetailVo {
private static final long serialVersionUID = 1L;
/**
* 主键,自增
*/
@ExcelProperty(value = "主键,自增")
private Long detailId;
/**
* 关联主表ID
*/
@ExcelProperty(value = "关联主表ID")
private Long mainId;
/**
* 序号
*/
@ExcelProperty(value = "序号")
private Long serialNumber;
/**
* 部门
*/
@ExcelProperty(value = "部门")
private String dept;
/**
* 员工姓名
*/
@ExcelProperty(value = "员工姓名")
private String name;
/**
* 基本工资
*/
@ExcelProperty(value = "基本工资")
private BigDecimal basicSalary;
/**
* 岗位工资
*/
@ExcelProperty(value = "岗位工资")
private BigDecimal postSalary;
/**
* 餐补
*/
@ExcelProperty(value = "餐补")
private BigDecimal mealAllowance;
/**
* 住房补贴
*/
@ExcelProperty(value = "住房补贴")
private BigDecimal housingAllowance;
/**
* 公交补贴
*/
@ExcelProperty(value = "公交补贴")
private BigDecimal busAllowance;
/**
* 出差天数
*/
@ExcelProperty(value = "出差天数")
private Long businessDaysOther;
/**
* 出差补助
*/
@ExcelProperty(value = "出差补助")
private BigDecimal businessAllowance;
/**
* 社保补助模板2字段
*/
@ExcelProperty(value = "社保补助", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "模=板2字段")
private BigDecimal socialSecurityAllowance;
/**
* 加班时长模板2字段
*/
@ExcelProperty(value = "加班时长", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "模=板2字段")
private BigDecimal overtimeHours;
/**
* 加班标准模板2字段
*/
@ExcelProperty(value = "加班标准", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "模=板2字段")
private BigDecimal overtimeRate;
/**
* 加班工资总计模板2字段
*/
@ExcelProperty(value = "加班工资总计", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "模=板2字段")
private BigDecimal overtimeTotal;
/**
* 出勤天数模板2字段
*/
@ExcelProperty(value = "出勤天数", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "模=板2字段")
private Long businessDays;
/**
* 请假扣款
*/
@ExcelProperty(value = "请假扣款")
private BigDecimal leaveDeduction;
/**
* 其他扣款
*/
@ExcelProperty(value = "其他扣款")
private BigDecimal otherDeduction;
/**
* 应发工资
*/
@ExcelProperty(value = "应发工资")
private BigDecimal grossSalary;
/**
* 个人缴纳养老保险
*/
@ExcelProperty(value = "个人缴纳养老保险")
private BigDecimal personalPension;
/**
* 个人缴纳医疗保险
*/
@ExcelProperty(value = "个人缴纳医疗保险")
private BigDecimal personalMedical;
/**
* 个人缴纳失业保险
*/
@ExcelProperty(value = "个人缴纳失业保险")
private BigDecimal personalUnemployment;
/**
* 个人缴纳大病医疗
*/
@ExcelProperty(value = "个人缴纳大病医疗")
private BigDecimal personalBigMedical;
/**
* 个人缴纳住房公积金
*/
@ExcelProperty(value = "个人缴纳住房公积金")
private BigDecimal personalHousingFund;
/**
* 个人所得税
*/
@ExcelProperty(value = "个人所得税")
private BigDecimal personalTax;
/**
* 实发工资
*/
@ExcelProperty(value = "实发工资")
private BigDecimal netSalary;
/**
* 企业缴纳养老保险
*/
@ExcelProperty(value = "企业缴纳养老保险")
private BigDecimal enterprisePension;
/**
* 企业缴纳医疗保险
*/
@ExcelProperty(value = "企业缴纳医疗保险")
private BigDecimal enterpriseMedical;
/**
* 企业缴纳工伤保险模板2字段
*/
@ExcelProperty(value = "企业缴纳工伤保险", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "模=板2字段")
private BigDecimal enterpriseInjury;
/**
* 企业缴纳失业保险
*/
@ExcelProperty(value = "企业缴纳失业保险")
private BigDecimal enterpriseUnemployment;
/**
* 企业缴纳生育保险模板1字段
*/
@ExcelProperty(value = "企业缴纳生育保险", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "模=板1字段")
private BigDecimal enterpriseMaternity;
/**
* 企业缴纳住房公积金
*/
@ExcelProperty(value = "企业缴纳住房公积金")
private BigDecimal enterpriseHousingFund;
/**
* 企业缴纳大病医疗模板2字段
*/
@ExcelProperty(value = "企业缴纳大病医疗", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "模=板2字段")
private BigDecimal enterpriseBigMedical;
/**
* 单位总支出
*/
@ExcelProperty(value = "单位总支出")
private BigDecimal unitTotalExpense;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,79 @@
package com.ruoyi.oa.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
/**
* 工资发放主视图对象 oa_salary_master
*
* @author Joshi
* @date 2025-09-08
*/
@Data
@ExcelIgnoreUnannotated
public class OaSalaryMasterVo {
private static final long serialVersionUID = 1L;
/**
* 主键,自增
*/
@ExcelProperty(value = "主键,自增")
private Long masterId;
/**
* 单位名称
*/
@ExcelProperty(value = "单位名称")
private String unitName;
/**
* 工资所属期间格式如2023-08
*/
@ExcelProperty(value = "工资所属期间格式如2023-08")
private String salaryPeriod;
/**
* 总经理审批状态或姓名
*/
@ExcelProperty(value = "总经理审批状态或姓名")
private String gmApproval;
/**
* 财务审核状态或姓名
*/
@ExcelProperty(value = "财务审核状态或姓名")
private String financeAudit;
/**
* 出纳姓名
*/
@ExcelProperty(value = "出纳姓名")
private String cashier;
/**
* 部门主管姓名
*/
@ExcelProperty(value = "部门主管姓名")
private String deptManager;
/**
* 经办人姓名
*/
@ExcelProperty(value = "经办人姓名")
private String operator;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}