From 7d1ddcb9a4545c02b85ba703b8444b7dff4758ba Mon Sep 17 00:00:00 2001 From: andy <1042025947@qq.com> Date: Wed, 18 Jun 2025 14:39:46 +0800 Subject: [PATCH] 1 --- .../java/com/evo/finance/domain/vo/SalaryVo.java | 6 +++++- ...SalaryCalculationStrategyExchangeProcessor.java | 14 +++++++------- .../service/impl/RzSalaryDetailServiceImpl.java | 4 ++-- .../impl/RzSalaryStatisticsServiceImpl.java | 2 +- .../mapper/finance/RzSalaryDetailMapper.xml | 2 +- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/evo-admin/src/main/java/com/evo/finance/domain/vo/SalaryVo.java b/evo-admin/src/main/java/com/evo/finance/domain/vo/SalaryVo.java index 502563a..5141628 100644 --- a/evo-admin/src/main/java/com/evo/finance/domain/vo/SalaryVo.java +++ b/evo-admin/src/main/java/com/evo/finance/domain/vo/SalaryVo.java @@ -2,6 +2,7 @@ package com.evo.finance.domain.vo; import com.evo.common.annotation.Excel; import lombok.Data; + import java.math.BigDecimal; @Data @@ -56,6 +57,8 @@ public class SalaryVo { /** 夜餐补助 */ @Excel(name = "夜餐补助") private BigDecimal dinnerSubsidies; + @Excel(name = "中班补助") + private BigDecimal middleSubsidies; @Excel(name = "销售提成") private BigDecimal salesCommission; /** 其他补助 */ @@ -108,7 +111,7 @@ public class SalaryVo { public SalaryVo() { } // public SalaryVo(BigDecimal monthSalary, BigDecimal basicSalary, BigDecimal jobSalary, BigDecimal overtimeSalary, BigDecimal levelSubsidies, BigDecimal contractSubsidies, BigDecimal senioritySalary, BigDecimal socialSubsidies, BigDecimal fullSubsidies, BigDecimal nightSubsidies, BigDecimal dinnerSubsidies, BigDecimal subsidyOrBonus, BigDecimal absenteeismSalary, BigDecimal absenteeismSubsidies, BigDecimal mealFee, BigDecimal deductions, BigDecimal salary, BigDecimal payInsurance, BigDecimal salaryBeforeTax, BigDecimal totalWages, BigDecimal annualExemptionAmount, BigDecimal specialDeduction, BigDecimal slowDownTheDeduction, BigDecimal aggregatePersonalIncomeTax, BigDecimal taxPayable, BigDecimal netPayroll) { - public SalaryVo(BigDecimal monthSalary, BigDecimal levelSubsidies, BigDecimal contractSubsidies, BigDecimal senioritySalary, BigDecimal socialSubsidies, BigDecimal nightSubsidies, BigDecimal dinnerSubsidies, BigDecimal subsidyOrBonus, BigDecimal absenteeismSalary, BigDecimal absenteeismSubsidies, BigDecimal mealFee, BigDecimal deductions, BigDecimal salary, BigDecimal payInsurance, BigDecimal salaryBeforeTax, BigDecimal totalWages, BigDecimal annualExemptionAmount, BigDecimal specialDeduction, BigDecimal slowDownTheDeduction, BigDecimal aggregatePersonalIncomeTax, BigDecimal taxPayable, BigDecimal netPayroll, BigDecimal salesCommission) { + public SalaryVo(BigDecimal monthSalary, BigDecimal levelSubsidies, BigDecimal contractSubsidies, BigDecimal senioritySalary, BigDecimal socialSubsidies, BigDecimal nightSubsidies, BigDecimal dinnerSubsidies, BigDecimal subsidyOrBonus, BigDecimal absenteeismSalary, BigDecimal absenteeismSubsidies, BigDecimal mealFee, BigDecimal deductions, BigDecimal salary, BigDecimal payInsurance, BigDecimal salaryBeforeTax, BigDecimal totalWages, BigDecimal annualExemptionAmount, BigDecimal specialDeduction, BigDecimal slowDownTheDeduction, BigDecimal aggregatePersonalIncomeTax, BigDecimal taxPayable, BigDecimal netPayroll, BigDecimal salesCommission,BigDecimal middleSubsidies) { this.monthSalary = monthSalary; // this.basicSalary = basicSalary; // this.jobSalary = jobSalary; @@ -135,6 +138,7 @@ public class SalaryVo { this.taxPayable = taxPayable; this.netPayroll = netPayroll; this.salesCommission = salesCommission; + this.middleSubsidies = middleSubsidies; } } diff --git a/evo-admin/src/main/java/com/evo/finance/processor/SalaryCalculationStrategyExchangeProcessor.java b/evo-admin/src/main/java/com/evo/finance/processor/SalaryCalculationStrategyExchangeProcessor.java index b0bf4b7..b819d70 100644 --- a/evo-admin/src/main/java/com/evo/finance/processor/SalaryCalculationStrategyExchangeProcessor.java +++ b/evo-admin/src/main/java/com/evo/finance/processor/SalaryCalculationStrategyExchangeProcessor.java @@ -103,9 +103,9 @@ public interface SalaryCalculationStrategyExchangeProcessor { //计算基础数据 monthSalary(limitMonth, month,limitDate,sysStaff,detail,rzSalaryDetail, attendanceStatistical); - ////计算应发工资 合算月工资+加班工资+学历补助+合同补助+社保补助+工龄工资+全勤奖+加班工资+夜班补助+夜餐补助+其他补助+销售提成-餐费扣款-补助扣款-其他扣款 (无需再-缺勤扣款 因为计算工资的时候, 是按照实际出勤计算的) - //计算应发工资 合算月工资+加班工资+学历补助+合同补助+社保补助+工龄工资+全勤奖+加班工资+夜班补助+夜餐补助+其他补助+销售提成-餐费扣款-补助扣款-其他扣款 - rzSalaryDetail.setSalary(rzSalaryDetail.getMonthSalary().add(isMonth ? rzSalaryDetail.getOvertimeSalary() : DataUtils.DEFAULT_VALUE).add(rzSalaryDetail.getNightSubsidies()).add(rzSalaryDetail.getDinnerSubsidies()) + ////计算应发工资 合算月工资+加班工资+学历补助+合同补助+社保补助+工龄工资+全勤奖+加班工资+夜班补助+中班补助+夜餐补助+其他补助+销售提成-餐费扣款-补助扣款-其他扣款 (无需再-缺勤扣款 因为计算工资的时候, 是按照实际出勤计算的) + //计算应发工资 合算月工资+加班工资+学历补助+合同补助+社保补助+工龄工资+全勤奖+加班工资+夜班补助+中班补助+夜餐补助+其他补助+销售提成-餐费扣款-补助扣款-其他扣款 + rzSalaryDetail.setSalary(rzSalaryDetail.getMonthSalary().add(isMonth ? rzSalaryDetail.getOvertimeSalary() : DataUtils.DEFAULT_VALUE).add(rzSalaryDetail.getNightSubsidies()).add(rzSalaryDetail.getMiddleSubsidies()).add(rzSalaryDetail.getDinnerSubsidies()) .add(DataUtils.findDefaultValue(rzSalaryDetail.getFullSubsidies(), DataUtils.DEFAULT_VALUE)).add(rzSalaryDetail.getLevelSubsidies()).add(rzSalaryDetail.getContractSubsidies()).add(rzSalaryDetail.getSocialSubsidies()) .add(rzSalaryDetail.getSenioritySalary()).add(rzSalaryDetail.getSubsidyOrBonus()).add(rzSalaryDetail.getSalesCommission()) .subtract(rzSalaryDetail.getMealFee()).subtract(rzSalaryDetail.getAbsenteeismSubsidies()).subtract(rzSalaryDetail.getDeductions()).subtract(rzSalaryDetail.getAbsenteeismSalary())); @@ -187,13 +187,13 @@ public interface SalaryCalculationStrategyExchangeProcessor { RzRestaurantStatistics rzRestaurantStatistics = SpringUtils.getBean(RzRestaurantStatisticsMapper.class).selectRzRestaurantStatisticsByUserIdAndDate(detail.getStaffId(),rzSalaryDetail.getMonth()); rzSalaryDetail.setMealFee(rzRestaurantStatistics.getPersonalSumConsumption()); //首先需要打卡 超过1个工作日时长 - if(isDk && ycHours.compareTo(cqHours) != 0 && ycHours.subtract(cqHours).intValue() > 8){ + if(isDk && ycHours.compareTo(cqHours) != 0 && ycHours.subtract(cqHours).intValue() >= 8){ Long ycDays = ycHours.divide(Constants.DAY_WORK_HOUR).longValue(); - //补助总钱数 - BigDecimal bzAmount = rzSalaryDetail.getLevelSubsidies().add(rzSalaryDetail.getContractSubsidies()).add(rzSalaryDetail.getSenioritySalary()).add(rzSalaryDetail.getSocialSubsidies()); + //补助总钱数 ( 补助钱数. 不包含社保补助, 2025-06-18 崔朋 口述, 只有 学历, 工龄, 合同 三种) + BigDecimal bzAmount = rzSalaryDetail.getLevelSubsidies().add(rzSalaryDetail.getContractSubsidies()).add(rzSalaryDetail.getSenioritySalary()); //一天的补助 BigDecimal bzDayAmount = bzAmount.divide(new BigDecimal(ycDays),2,BigDecimal.ROUND_HALF_UP); - //计算补助扣款, 总补助-出勤补助=补助扣款, 出勤补助= 天补助*出勤天数 + rzSalaryDetail.setAbsenteeismSubsidies(bzAmount.subtract(bzDayAmount.multiply(new BigDecimal(cqHours.divide(Constants.DAY_WORK_HOUR, 0,RoundingMode.UP).intValue())))); }else{ //计算补助扣款, 总补助-出勤补助=补助扣款, 出勤补助= 天补助*出勤天数 diff --git a/evo-admin/src/main/java/com/evo/finance/service/impl/RzSalaryDetailServiceImpl.java b/evo-admin/src/main/java/com/evo/finance/service/impl/RzSalaryDetailServiceImpl.java index 3745463..5c55561 100644 --- a/evo-admin/src/main/java/com/evo/finance/service/impl/RzSalaryDetailServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/finance/service/impl/RzSalaryDetailServiceImpl.java @@ -623,8 +623,8 @@ public class RzSalaryDetailServiceImpl extends ServiceImpl - select id, staff_id, name, month, wb_flag, dept_id,month_salary, basic_salary, job_salary, daily_wage, hours_salary, overtime_salary, level_subsidies, contract_subsidies, seniority_salary, social_subsidies, full_subsidies, night_subsidies, dinner_subsidies, subsidy_or_bonus, absenteeism_salary, absenteeism_subsidies, meal_fee, deductions, salary, pay_insurance, endowment_insurance, medical_insurance, employment_injury_insurance, maternity_insurance, unemployment_insurance, accumulation_fund, salary_before_tax, total_wages, annual_exemption_amount, special_deduction, taxable_income, tax_rate, slow_down_the_deduction, aggregate_personal_income_tax, aggregate_tax, tax_payable, net_payroll, remarks, del_flag, create_by, create_time, update_by, update_time, sales_commission from rz_salary_detail + select id, staff_id, name, month, wb_flag, dept_id,month_salary, basic_salary, job_salary, daily_wage, hours_salary, overtime_salary, level_subsidies, contract_subsidies, seniority_salary, social_subsidies, full_subsidies, night_subsidies, dinner_subsidies, subsidy_or_bonus, absenteeism_salary, absenteeism_subsidies, meal_fee, deductions, salary, pay_insurance, endowment_insurance, medical_insurance, employment_injury_insurance, maternity_insurance, unemployment_insurance, accumulation_fund, salary_before_tax, total_wages, annual_exemption_amount, special_deduction, taxable_income, tax_rate, slow_down_the_deduction, aggregate_personal_income_tax, aggregate_tax, tax_payable, net_payroll, remarks, del_flag, create_by, create_time, update_by, update_time, sales_commission, middle_subsidies from rz_salary_detail