考勤导出新增社保扣款
This commit is contained in:
parent
56e6aa2bc8
commit
90478a4e1f
@ -74,7 +74,8 @@ public class KqUtils {
|
||||
//判断打卡时间, 添加夜班次数 打卡时间在晚上7点以后
|
||||
if(eqButton.getWorkHour() ==12 && hours >= 12 && attendance.getWorkStartTime().getHours() > 12){
|
||||
attendance.setNightNumber(1);
|
||||
}else if(eqButton.getWorkHour() == 8 && hours >= 8 && attendance.getWorkStartTime().getHours() > 18){
|
||||
//必须是8小时倒班制or单班制, 并且工作时长>=8小时, 并且 上班打开时间在12点至21点 算作中班 -- 2026-02-04 因1月份张克龙中班考勤问题, 刘杰面谈
|
||||
}else if(eqButton.getWorkHour() == 8 && hours >= 8 && attendance.getWorkStartTime().getHours() >= 12 && attendance.getWorkStartTime().getHours() < 21){
|
||||
attendance.setMiddleShiftNumber(1);
|
||||
}
|
||||
//获取工作时长
|
||||
|
||||
@ -185,6 +185,8 @@ public class RzSalaryDetail extends BaseEntity
|
||||
private BigDecimal taxPayable;
|
||||
|
||||
|
||||
@Excel(name = "社保扣款")
|
||||
private BigDecimal socialSecurityDeduction;
|
||||
/** 实发工资 */
|
||||
@Excel(name = "实发工资")
|
||||
private BigDecimal netPayroll;
|
||||
@ -628,6 +630,14 @@ public class RzSalaryDetail extends BaseEntity
|
||||
this.bjAmount = bjAmount;
|
||||
}
|
||||
|
||||
public BigDecimal getSocialSecurityDeduction() {
|
||||
return socialSecurityDeduction;
|
||||
}
|
||||
|
||||
public void setSocialSecurityDeduction(BigDecimal socialSecurityDeduction) {
|
||||
this.socialSecurityDeduction = socialSecurityDeduction;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "RzSalaryDetail{" +
|
||||
|
||||
@ -73,6 +73,8 @@ public class SalaryVo {
|
||||
/** 代缴保险 */
|
||||
@Excel(name = "代缴保险")
|
||||
private BigDecimal payInsurance;
|
||||
@Excel(name = "社保扣款")
|
||||
private BigDecimal socialSecurityDeduction;
|
||||
/** 税前工资 */
|
||||
@Excel(name = "税前工资")
|
||||
private BigDecimal salaryBeforeTax;
|
||||
@ -108,7 +110,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,BigDecimal middleSubsidies) {
|
||||
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, BigDecimal socialSecurityDeduction) {
|
||||
this.monthSalary = monthSalary;
|
||||
// this.basicSalary = basicSalary;
|
||||
// this.jobSalary = jobSalary;
|
||||
@ -136,6 +138,7 @@ public class SalaryVo {
|
||||
this.netPayroll = netPayroll;
|
||||
this.salesCommission = salesCommission;
|
||||
this.middleSubsidies = middleSubsidies;
|
||||
this.socialSecurityDeduction = socialSecurityDeduction;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -118,6 +118,8 @@ public interface SalaryCalculationStrategyExchangeProcessor {
|
||||
rzSalaryDetail.setMedicalInsurance(detail.getMedicalInsurance()); //医疗保险
|
||||
rzSalaryDetail.setEndowmentInsurance(detail.getEndowmentInsurance()); //养老保险
|
||||
rzSalaryDetail.setEmploymentInjuryInsurance(detail.getEmploymentInjuryInsurance()); //工伤保险
|
||||
//社保扣款
|
||||
rzSalaryDetail.setSocialSecurityDeduction(detail.getCountInsurance()); //社保扣款
|
||||
//代缴社保
|
||||
rzSalaryDetail.setPayInsurance(rzSalaryDetail.getAccumulationFund().add(rzSalaryDetail.getUnemploymentInsurance()).
|
||||
add(rzSalaryDetail.getMaternityInsurance()).add(rzSalaryDetail.getMedicalInsurance()).add(rzSalaryDetail.getEndowmentInsurance()).add(rzSalaryDetail.getEmploymentInjuryInsurance()));
|
||||
|
||||
@ -217,8 +217,8 @@ public class RzSalaryDetailServiceImpl extends ServiceImpl<RzSalaryDetailMapper,
|
||||
x.getAbsenteeismSalary().add(y.getAbsenteeismSalary()), x.getAbsenteeismSubsidies().add(y.getAbsenteeismSubsidies()),x.getMealFee().add(y.getMealFee()),x.getDeductions().add(y.getDeductions()),
|
||||
x.getSalary().add(y.getSalary()),x.getPayInsurance().add(y.getPayInsurance()),x.getSalaryBeforeTax().add(y.getSalaryBeforeTax()),x.getTotalWages().add(y.getTotalWages()),
|
||||
x.getAnnualExemptionAmount().add(y.getAnnualExemptionAmount()),x.getSpecialDeduction().add(y.getSpecialDeduction()),x.getSlowDownTheDeduction().add(y.getSlowDownTheDeduction()),x.getAggregatePersonalIncomeTax().add(y.getAggregatePersonalIncomeTax()),
|
||||
x.getTaxPayable().add(y.getTaxPayable()),x.getNetPayroll().add(y.getNetPayroll()), x.getSalesCommission().add(y.getSalesCommission()), x.getMiddleSubsidies().add(y.getMiddleSubsidies()))).orElse(new SalaryVo(BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO,
|
||||
BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO,BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO,BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO));
|
||||
x.getTaxPayable().add(y.getTaxPayable()),x.getNetPayroll().add(y.getNetPayroll()), x.getSalesCommission().add(y.getSalesCommission()), x.getMiddleSubsidies().add(y.getMiddleSubsidies()), x.getSocialSecurityDeduction().add(y.getSocialSecurityDeduction()))).orElse(new SalaryVo(BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO,
|
||||
BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO,BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO,BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO));
|
||||
//添加此处的原因是, 如果部门中, 有且只有1人的情况下, stream().reduce() 不会创建新的对象, 只是把唯一的对象返回了,, 会对后续的数据展示产生影响, 所以重新创new新对象
|
||||
if(Collections.isNotEmpty(list) || list.size() == 1){
|
||||
SalaryVo newResult = new SalaryVo();
|
||||
@ -344,6 +344,7 @@ public class RzSalaryDetailServiceImpl extends ServiceImpl<RzSalaryDetailMapper,
|
||||
|
||||
Map<Long, BigDecimal> realAttendanceMap = rzAttendanceStatisticalMapper.queryStatisticalByMonth(rzSalaryDetail.getMonth()).stream().collect(Collectors.toMap(RzAttendanceStatistical::getStaffId, RzAttendanceStatistical::getRealAttendance));
|
||||
|
||||
|
||||
List<SalaryVo> voResult = Collections.emptyList();
|
||||
List<RzSalaryDetail> res_list = selectRzSalaryDetaiList(rzSalaryDetail);
|
||||
for (RzSalaryDetail salaryDetail : res_list) {
|
||||
|
||||
@ -54,10 +54,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="socialSecurityDeduction" column="social_security_deduction" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectRzSalaryDetailVo">
|
||||
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
|
||||
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,
|
||||
social_security_deduction
|
||||
from rz_salary_detail
|
||||
</sql>
|
||||
|
||||
<select id="selectRzSalaryDetailList" parameterType="RzSalaryDetail" resultMap="RzSalaryDetailResult">
|
||||
@ -126,6 +135,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
<if test="socialSecurityDeduction != null">social_security_deduction,</if>
|
||||
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="staffId != null">#{staffId},</if>
|
||||
@ -176,6 +187,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
<if test="socialSecurityDeduction != null">#{socialSecurityDeduction},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
@ -230,6 +242,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
<if test="socialSecurityDeduction != null">social_security_deduction = #{socialSecurityDeduction},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user