feat(oa): 新增工资数据看板功能
- 添加新工资看板相关的 VO 类 - 实现新工资看板的数据获取接口和业务逻辑 - 优化原有工资看板的代码结构 - 新增月度支出、工资构成、趋势分析等图表数据查询- 增加社保公积金统计和单位、部门统计功能
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package com.ruoyi.oa.domain.vo.dashboard;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 部门工资统计VO
|
||||
*/
|
||||
@Data
|
||||
public class DeptSalaryStatVo {
|
||||
/**
|
||||
* 部门名称
|
||||
*/
|
||||
private String deptName;
|
||||
|
||||
/**
|
||||
* 员工数量
|
||||
*/
|
||||
private Integer employeeCount;
|
||||
|
||||
/**
|
||||
* 总实发工资
|
||||
*/
|
||||
private BigDecimal totalNetSalary;
|
||||
|
||||
/**
|
||||
* 总应发工资
|
||||
*/
|
||||
private BigDecimal totalGrossSalary;
|
||||
|
||||
/**
|
||||
* 人均实发工资
|
||||
*/
|
||||
private BigDecimal avgNetSalary;
|
||||
|
||||
/**
|
||||
* 人均应发工资
|
||||
*/
|
||||
private BigDecimal avgGrossSalary;
|
||||
|
||||
/**
|
||||
* 同比增长率
|
||||
*/
|
||||
private BigDecimal yearOnYearGrowthRate;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.ruoyi.oa.domain.vo.dashboard;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 社保公积金统计VO
|
||||
*/
|
||||
@Data
|
||||
public class InsuranceStatVo {
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
private String itemName;
|
||||
|
||||
/**
|
||||
* 个人缴纳总额
|
||||
*/
|
||||
private BigDecimal personalTotal;
|
||||
|
||||
/**
|
||||
* 企业缴纳总额
|
||||
*/
|
||||
private BigDecimal enterpriseTotal;
|
||||
|
||||
/**
|
||||
* 合计
|
||||
*/
|
||||
private BigDecimal total;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.ruoyi.oa.domain.vo.dashboard;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 月度支出VO
|
||||
*/
|
||||
@Data
|
||||
public class MonthlyExpenseVo {
|
||||
/**
|
||||
* 月份
|
||||
*/
|
||||
private Integer month;
|
||||
|
||||
/**
|
||||
* 实发工资总额
|
||||
*/
|
||||
private BigDecimal totalNetSalary;
|
||||
|
||||
/**
|
||||
* 应发工资总额
|
||||
*/
|
||||
private BigDecimal totalGrossSalary;
|
||||
|
||||
/**
|
||||
* 单位总支出
|
||||
*/
|
||||
private BigDecimal totalUnitExpense;
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.ruoyi.oa.domain.vo.dashboard;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 新工资看板卡片数据VO
|
||||
*/
|
||||
@Data
|
||||
public class NewCardDataVo {
|
||||
/**
|
||||
* 总实发工资
|
||||
*/
|
||||
private BigDecimal totalNetSalary;
|
||||
|
||||
/**
|
||||
* 较上月总实发工资增长率
|
||||
*/
|
||||
private BigDecimal lastMonthNetSalaryRate;
|
||||
|
||||
/**
|
||||
* 总应发工资
|
||||
*/
|
||||
private BigDecimal totalGrossSalary;
|
||||
|
||||
/**
|
||||
* 较上月总应发工资增长率
|
||||
*/
|
||||
private BigDecimal lastMonthGrossSalaryRate;
|
||||
|
||||
/**
|
||||
* 单位总支出
|
||||
*/
|
||||
private BigDecimal totalUnitExpense;
|
||||
|
||||
/**
|
||||
* 较上月单位总支出增长率
|
||||
*/
|
||||
private BigDecimal lastMonthUnitExpenseRate;
|
||||
|
||||
/**
|
||||
* 人均实发工资
|
||||
*/
|
||||
private BigDecimal avgNetSalary;
|
||||
|
||||
/**
|
||||
* 较上月人均实发工资增长率
|
||||
*/
|
||||
private BigDecimal lastMonthAvgNetSalaryRate;
|
||||
|
||||
/**
|
||||
* 同比增长率(与去年同期相比)
|
||||
*/
|
||||
private BigDecimal yearOnYearGrowthRate;
|
||||
|
||||
/**
|
||||
* 员工总数
|
||||
*/
|
||||
private Integer totalEmployeeCount;
|
||||
|
||||
/**
|
||||
* 单位数量
|
||||
*/
|
||||
private Integer unitCount;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.ruoyi.oa.domain.vo.dashboard;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 新工资看板卡片指标VO
|
||||
*/
|
||||
@Data
|
||||
public class NewCardMetricsVo {
|
||||
/**
|
||||
* 总实发工资
|
||||
*/
|
||||
private BigDecimal totalNetSalary;
|
||||
|
||||
/**
|
||||
* 总应发工资
|
||||
*/
|
||||
private BigDecimal totalGrossSalary;
|
||||
|
||||
/**
|
||||
* 单位总支出
|
||||
*/
|
||||
private BigDecimal totalUnitExpense;
|
||||
|
||||
/**
|
||||
* 员工数量
|
||||
*/
|
||||
private Integer employeeCount;
|
||||
|
||||
/**
|
||||
* 单位数量
|
||||
*/
|
||||
private Integer unitCount;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.ruoyi.oa.domain.vo.dashboard;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 新工资看板图表数据VO
|
||||
*/
|
||||
@Data
|
||||
public class NewChartDataVo {
|
||||
/**
|
||||
* 月度支出数据(柱状图)
|
||||
*/
|
||||
private List<MonthlyExpenseVo> monthlyExpenses;
|
||||
|
||||
/**
|
||||
* 工资构成分析(饼图)
|
||||
*/
|
||||
private List<SalaryStructureVo> salaryStructures;
|
||||
|
||||
/**
|
||||
* 趋势分析(折线图)
|
||||
*/
|
||||
private SalaryTrendVo trendData;
|
||||
|
||||
/**
|
||||
* 社保公积金统计(柱状图)
|
||||
*/
|
||||
private List<InsuranceStatVo> insuranceStats;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.ruoyi.oa.domain.vo.dashboard;
|
||||
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 新工资数据看板VO
|
||||
*/
|
||||
@Data
|
||||
public class NewSalaryDashboardVo {
|
||||
/**
|
||||
* 卡片数据
|
||||
*/
|
||||
private NewCardDataVo cardData;
|
||||
|
||||
/**
|
||||
* 图表数据
|
||||
*/
|
||||
private NewChartDataVo chartData;
|
||||
|
||||
/**
|
||||
* 单位统计表格数据
|
||||
*/
|
||||
private TableDataInfo<UnitStatVo> unitStats;
|
||||
|
||||
/**
|
||||
* 部门统计表格数据
|
||||
*/
|
||||
private TableDataInfo<DeptSalaryStatVo> deptStats;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.ruoyi.oa.domain.vo.dashboard;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 工资构成VO
|
||||
*/
|
||||
@Data
|
||||
public class SalaryStructureVo {
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
private String itemName;
|
||||
|
||||
/**
|
||||
* 总金额
|
||||
*/
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
/**
|
||||
* 占比
|
||||
*/
|
||||
private BigDecimal percentage;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.ruoyi.oa.domain.vo.dashboard;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 工资趋势点VO
|
||||
*/
|
||||
@Data
|
||||
public class SalaryTrendPointVo {
|
||||
/**
|
||||
* 月份
|
||||
*/
|
||||
private Integer month;
|
||||
|
||||
/**
|
||||
* 总实发工资
|
||||
*/
|
||||
private BigDecimal totalNetSalary;
|
||||
|
||||
/**
|
||||
* 总应发工资
|
||||
*/
|
||||
private BigDecimal totalGrossSalary;
|
||||
|
||||
/**
|
||||
* 人均实发工资
|
||||
*/
|
||||
private BigDecimal avgNetSalary;
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.ruoyi.oa.domain.vo.dashboard;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 工资趋势VO
|
||||
*/
|
||||
@Data
|
||||
public class SalaryTrendVo {
|
||||
/**
|
||||
* 月份列表
|
||||
*/
|
||||
private List<Integer> months;
|
||||
|
||||
/**
|
||||
* 实发工资趋势
|
||||
*/
|
||||
private List<BigDecimal> netSalaryTrend;
|
||||
|
||||
/**
|
||||
* 应发工资趋势
|
||||
*/
|
||||
private List<BigDecimal> grossSalaryTrend;
|
||||
|
||||
/**
|
||||
* 人均实发工资趋势
|
||||
*/
|
||||
private List<BigDecimal> avgNetSalaryTrend;
|
||||
|
||||
public SalaryTrendVo(List<SalaryTrendPointVo> points) {
|
||||
this.months = new ArrayList<>();
|
||||
this.netSalaryTrend = new ArrayList<>();
|
||||
this.grossSalaryTrend = new ArrayList<>();
|
||||
this.avgNetSalaryTrend = new ArrayList<>();
|
||||
|
||||
for (SalaryTrendPointVo point : points) {
|
||||
this.months.add(point.getMonth());
|
||||
this.netSalaryTrend.add(point.getTotalNetSalary());
|
||||
this.grossSalaryTrend.add(point.getTotalGrossSalary());
|
||||
this.avgNetSalaryTrend.add(point.getAvgNetSalary());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.ruoyi.oa.domain.vo.dashboard;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 单位统计VO
|
||||
*/
|
||||
@Data
|
||||
public class UnitStatVo {
|
||||
/**
|
||||
* 单位名称
|
||||
*/
|
||||
private String unitName;
|
||||
|
||||
/**
|
||||
* 员工数量
|
||||
*/
|
||||
private Integer employeeCount;
|
||||
|
||||
/**
|
||||
* 总实发工资
|
||||
*/
|
||||
private BigDecimal totalNetSalary;
|
||||
|
||||
/**
|
||||
* 总应发工资
|
||||
*/
|
||||
private BigDecimal totalGrossSalary;
|
||||
|
||||
/**
|
||||
* 单位总支出
|
||||
*/
|
||||
private BigDecimal totalUnitExpense;
|
||||
|
||||
/**
|
||||
* 人均实发工资
|
||||
*/
|
||||
private BigDecimal avgNetSalary;
|
||||
|
||||
/**
|
||||
* 同比增长率
|
||||
*/
|
||||
private BigDecimal yearOnYearGrowthRate;
|
||||
|
||||
/**
|
||||
* 工资期间
|
||||
*/
|
||||
private String salaryPeriod;
|
||||
}
|
||||
Reference in New Issue
Block a user