薪资分析

This commit is contained in:
2025-06-24 17:20:19 +08:00
parent 9995425f28
commit 3ed61a8a00
17 changed files with 495 additions and 0 deletions

View File

@@ -31,6 +31,10 @@ public class OaEmployee extends BaseEntity {
* 姓名
*/
private String employeeName;
/**
* 部门ID
*/
private Long deptId;
/**
* 公司
*/

View File

@@ -0,0 +1,16 @@
package com.ruoyi.oa.domain.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class CardDataVo {
private BigDecimal totalSalaryExpenditure;
private BigDecimal lastMonthTotalSalaryExpenditureRate;
private BigDecimal avgDepartmentExpenditure;
private BigDecimal lastMonthAvgDepartmentExpenditureRate;
private BigDecimal avgPersonSalary;
private BigDecimal lastMonthAvgPersonSalaryRate;
private BigDecimal yearOnYearGrowthRate;
}

View File

@@ -0,0 +1,13 @@
package com.ruoyi.oa.domain.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class CardMetricsVo {
private BigDecimal totalSalaryExpenditure;
private BigDecimal totalCompanyExpenditure;
private Integer employeeCount;
private Integer departmentCount;
}

View File

@@ -0,0 +1,12 @@
package com.ruoyi.oa.domain.vo;
import lombok.Data;
import java.util.List;
@Data
public class ChartDataVo {
private List<MonthlyExpenditureVo> monthlyExpenditures;
private List<SalaryComponentVo> salaryComponents;
private LineChartVo lineChartData;
}

View File

@@ -0,0 +1,15 @@
package com.ruoyi.oa.domain.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class DepartmentStatVo {
private Long deptId;
private String deptName;
private BigDecimal totalExpenditure;
private BigDecimal avgSalary;
private Integer employeeCount;
private BigDecimal yearOnYearGrowthRate;
}

View File

@@ -0,0 +1,12 @@
package com.ruoyi.oa.domain.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class LineChartPointVo {
private Integer month;
private BigDecimal totalExpenditure;
private BigDecimal avgSalary;
}

View File

@@ -0,0 +1,26 @@
package com.ruoyi.oa.domain.vo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@Data
public class LineChartVo {
private List<Integer> months;
private List<BigDecimal> totalExpenditures;
private List<BigDecimal> avgSalaries;
public LineChartVo(List<LineChartPointVo> points) {
this.months = new ArrayList<>();
this.totalExpenditures = new ArrayList<>();
this.avgSalaries = new ArrayList<>();
for (LineChartPointVo point : points) {
this.months.add(point.getMonth());
this.totalExpenditures.add(point.getTotalExpenditure());
this.avgSalaries.add(point.getAvgSalary());
}
}
}

View File

@@ -0,0 +1,11 @@
package com.ruoyi.oa.domain.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class MonthlyExpenditureVo {
private Integer month;
private BigDecimal totalExpenditure;
}

View File

@@ -44,6 +44,16 @@ public class OaEmployeeVo {
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 部门ID
*/
@ExcelProperty(value = "部门ID")
private Long deptId;
/**
* 部门名称
*/
@ExcelProperty(value = "部门名称")
private String deptName;
}

View File

@@ -0,0 +1,11 @@
package com.ruoyi.oa.domain.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class SalaryComponentVo {
private String itemName;
private BigDecimal totalAmount;
}

View File

@@ -0,0 +1,11 @@
package com.ruoyi.oa.domain.vo;
import com.ruoyi.common.core.page.TableDataInfo;
import lombok.Data;
@Data
public class SalaryDashboardVo {
private CardDataVo cardData;
private ChartDataVo chartData;
private TableDataInfo<DepartmentStatVo> departmentStats;
}