fix:财务管理-工资详情导出修复
This commit is contained in:
parent
c067f5722f
commit
f5b1453b36
@ -360,6 +360,7 @@ public class ExcelUtilSs<T>{
|
|||||||
return AjaxResult.success(filename);
|
return AjaxResult.success(filename);
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
log.error("导出Excel异常{}", e.getMessage());
|
log.error("导出Excel异常{}", e.getMessage());
|
||||||
|
System.out.println("导出Excel异常"+e.getMessage());
|
||||||
throw new CustomException("导出Excel失败,请联系网站管理员!");
|
throw new CustomException("导出Excel失败,请联系网站管理员!");
|
||||||
}
|
}
|
||||||
finally{
|
finally{
|
||||||
@ -395,30 +396,35 @@ public class ExcelUtilSs<T>{
|
|||||||
* @param row 单元格行
|
* @param row 单元格行
|
||||||
*/
|
*/
|
||||||
public void fillExcelData(int index, Row row){
|
public void fillExcelData(int index, Row row){
|
||||||
int startNo = 0;
|
try {
|
||||||
int endNo = 0;
|
int startNo = 0;
|
||||||
if(index == 0){
|
int endNo = 0;
|
||||||
startNo = index * sheetSize;
|
if(index == 0){
|
||||||
endNo = Math.min(startNo + sheetSize, list.size());
|
startNo = index * sheetSize;
|
||||||
} else{
|
endNo = Math.min(startNo + sheetSize, list.size());
|
||||||
endNo = Math.min(startNo + sheetSize, lists.get(index-1).size());
|
} else{
|
||||||
}
|
endNo = Math.min(startNo + sheetSize, lists.get(index-1).size());
|
||||||
for (int i = startNo; i < endNo; i++){
|
|
||||||
row = sheet.createRow(i + 2 - startNo);
|
|
||||||
// 得到导出对象.
|
|
||||||
T vo = (T) list.get(i);
|
|
||||||
int column = 0;
|
|
||||||
//当index为0时,默认是第一个sheet,需要把list[1]姓名列删掉
|
|
||||||
List<Object[]> fields2 = new ArrayList<>();
|
|
||||||
fields2.addAll(fields);
|
|
||||||
for (Object[] os : fields2){
|
|
||||||
Field field = (Field) os[0];
|
|
||||||
Excel excel = (Excel) os[1];
|
|
||||||
// 设置实体类私有属性可访问
|
|
||||||
field.setAccessible(true);
|
|
||||||
this.addCell(excel, row, vo, field, column++,index);
|
|
||||||
}
|
}
|
||||||
|
for (int i = startNo; i < endNo; i++){
|
||||||
|
row = sheet.createRow(i + 2 - startNo);
|
||||||
|
// 得到导出对象.
|
||||||
|
T vo = (T) list.get(i);
|
||||||
|
int column = 0;
|
||||||
|
//当index为0时,默认是第一个sheet,需要把list[1]姓名列删掉
|
||||||
|
List<Object[]> fields2 = new ArrayList<>();
|
||||||
|
fields2.addAll(fields);
|
||||||
|
for (Object[] os : fields2){
|
||||||
|
Field field = (Field) os[0];
|
||||||
|
Excel excel = (Excel) os[1];
|
||||||
|
// 设置实体类私有属性可访问
|
||||||
|
field.setAccessible(true);
|
||||||
|
this.addCell(excel, row, vo, field, column++,index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import com.evo.common.core.domain.entity.SysDictData;
|
|||||||
import com.evo.common.utils.StringUtils;
|
import com.evo.common.utils.StringUtils;
|
||||||
import com.evo.common.utils.poi.ExcelUtilSs;
|
import com.evo.common.utils.poi.ExcelUtilSs;
|
||||||
import com.evo.finance.domain.vo.SalaryVo;
|
import com.evo.finance.domain.vo.SalaryVo;
|
||||||
|
import com.evo.restaurant.domain.RzRestaurantStatistics;
|
||||||
import com.evo.system.mapper.SysDictDataMapper;
|
import com.evo.system.mapper.SysDictDataMapper;
|
||||||
import com.evo.system.service.ISysDeptService;
|
import com.evo.system.service.ISysDeptService;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
@ -110,7 +111,7 @@ public class RzSalaryDetailController extends BaseController
|
|||||||
@PreAuthorize("@ss.hasPermi('finance:financeDetail:export')")
|
@PreAuthorize("@ss.hasPermi('finance:financeDetail:export')")
|
||||||
@Log(title = "工资详情", businessType = BusinessType.EXPORT)
|
@Log(title = "工资详情", businessType = BusinessType.EXPORT)
|
||||||
@PostMapping("/export")
|
@PostMapping("/export")
|
||||||
public AjaxResult export(RzSalaryDetail rzSalaryDetail)
|
public AjaxResult export(@RequestBody RzSalaryDetail rzSalaryDetail)
|
||||||
{
|
{
|
||||||
ExcelUtilSs<SalaryVo> util = new ExcelUtilSs<SalaryVo>(SalaryVo.class);
|
ExcelUtilSs<SalaryVo> util = new ExcelUtilSs<SalaryVo>(SalaryVo.class);
|
||||||
//创建总表
|
//创建总表
|
||||||
@ -128,7 +129,10 @@ public class RzSalaryDetailController extends BaseController
|
|||||||
//工资数据转化的保存
|
//工资数据转化的保存
|
||||||
List<SalaryVo> list0 =new ArrayList<SalaryVo>();
|
List<SalaryVo> list0 =new ArrayList<SalaryVo>();
|
||||||
for (SysDept sysDept : dept_list) {
|
for (SysDept sysDept : dept_list) {
|
||||||
sheetNameList.add(sysDept.getDeptName());
|
if(!sysDept.getDeptName().equals("晋辅") && !sysDept.getDeptName().equals("元氏鑫源达")){
|
||||||
|
sheetNameList.add(sysDept.getDeptName());
|
||||||
|
}
|
||||||
|
list0 = new ArrayList<SalaryVo>();
|
||||||
//部门小计
|
//部门小计
|
||||||
SalaryVo xj_salaryVo = new SalaryVo();
|
SalaryVo xj_salaryVo = new SalaryVo();
|
||||||
xj_salaryVo.setName("小计:");
|
xj_salaryVo.setName("小计:");
|
||||||
@ -228,17 +232,27 @@ public class RzSalaryDetailController extends BaseController
|
|||||||
xj_salaryVo.setTaxPayable(new BigDecimal("0.00"));
|
xj_salaryVo.setTaxPayable(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
xj_salaryVo.setTaxPayable(xj_salaryVo.getTaxPayable().add(salaryDetail.getTaxPayable()));
|
xj_salaryVo.setTaxPayable(xj_salaryVo.getTaxPayable().add(salaryDetail.getTaxPayable()));
|
||||||
|
|
||||||
|
//实发工资
|
||||||
if(StringUtils.isNull(xj_salaryVo.getNetPayroll())){
|
if(StringUtils.isNull(xj_salaryVo.getNetPayroll())){
|
||||||
xj_salaryVo.setNetPayroll(new BigDecimal("0.00"));
|
xj_salaryVo.setNetPayroll(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
xj_salaryVo.setNetPayroll(xj_salaryVo.getNetPayroll().add(salaryDetail.getNetPayroll()));
|
xj_salaryVo.setNetPayroll(xj_salaryVo.getNetPayroll().add(salaryDetail.getNetPayroll()));
|
||||||
BeanUtils.copyProperties(salaryDetail, salaryVo);
|
BeanUtils.copyProperties(salaryDetail, salaryVo);
|
||||||
salaryVo.setDeptName(sysDept.getDeptName());
|
salaryVo.setDeptName(sysDept.getDeptName());
|
||||||
list0.add(salaryVo);
|
list0.add(salaryVo);//1、汇总一个部门下所有人员工资明细
|
||||||
}
|
}
|
||||||
list0.add(xj_salaryVo);
|
|
||||||
|
|
||||||
|
if(StringUtils.isNull(xj_salaryVo.getBasicSalary())){
|
||||||
|
xj_salaryVo.setBasicSalary(new BigDecimal("0.00"));
|
||||||
|
}
|
||||||
|
if(StringUtils.isNull(xj_salaryVo.getOvertimeSalary())){
|
||||||
|
xj_salaryVo.setOvertimeSalary(new BigDecimal("0.00"));
|
||||||
|
}
|
||||||
|
list0.add(xj_salaryVo);//2、人员工资明细下面存放一条小计信息
|
||||||
lists.add(list0);
|
lists.add(list0);
|
||||||
list.add(xj_salaryVo);
|
list.add(xj_salaryVo);//3、存放所有部门小计信息
|
||||||
}
|
}
|
||||||
//计算伊特总计数据
|
//计算伊特总计数据
|
||||||
SalaryVo gj_salaryVo = new SalaryVo();
|
SalaryVo gj_salaryVo = new SalaryVo();
|
||||||
@ -254,91 +268,91 @@ public class RzSalaryDetailController extends BaseController
|
|||||||
if(StringUtils.isNull(gj_salaryVo.getLevelSubsidies())){
|
if(StringUtils.isNull(gj_salaryVo.getLevelSubsidies())){
|
||||||
gj_salaryVo.setLevelSubsidies(new BigDecimal("0.00"));
|
gj_salaryVo.setLevelSubsidies(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setLevelSubsidies(gj_salaryVo.getLevelSubsidies().add(salaryVoz.getLevelSubsidies()));
|
gj_salaryVo.setLevelSubsidies(gj_salaryVo.getLevelSubsidies().add(salaryVoz.getLevelSubsidies()==null?new BigDecimal("0.00"):salaryVoz.getLevelSubsidies()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getContractSubsidies())){
|
if(StringUtils.isNull(gj_salaryVo.getContractSubsidies())){
|
||||||
gj_salaryVo.setContractSubsidies(new BigDecimal("0.00"));
|
gj_salaryVo.setContractSubsidies(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setContractSubsidies(gj_salaryVo.getContractSubsidies().add(salaryVoz.getContractSubsidies()));
|
gj_salaryVo.setContractSubsidies(gj_salaryVo.getContractSubsidies().add(salaryVoz.getContractSubsidies()==null?new BigDecimal("0.00"):salaryVoz.getContractSubsidies()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getSenioritySalary())){
|
if(StringUtils.isNull(gj_salaryVo.getSenioritySalary())){
|
||||||
gj_salaryVo.setSenioritySalary(new BigDecimal("0.00"));
|
gj_salaryVo.setSenioritySalary(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setSenioritySalary(gj_salaryVo.getSenioritySalary().add(salaryVoz.getSenioritySalary()));
|
gj_salaryVo.setSenioritySalary(gj_salaryVo.getSenioritySalary().add(salaryVoz.getSenioritySalary()==null?new BigDecimal("0.00"):salaryVoz.getSenioritySalary()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getSocialSubsidies())){
|
if(StringUtils.isNull(gj_salaryVo.getSocialSubsidies())){
|
||||||
gj_salaryVo.setSocialSubsidies(new BigDecimal("0.00"));
|
gj_salaryVo.setSocialSubsidies(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setSocialSubsidies(gj_salaryVo.getSocialSubsidies().add(salaryVoz.getSocialSubsidies()));
|
gj_salaryVo.setSocialSubsidies(gj_salaryVo.getSocialSubsidies().add(salaryVoz.getSocialSubsidies()==null?new BigDecimal("0.00"):salaryVoz.getSocialSubsidies()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getFullSubsidies())){
|
if(StringUtils.isNull(gj_salaryVo.getFullSubsidies())){
|
||||||
gj_salaryVo.setFullSubsidies(new BigDecimal("0.00"));
|
gj_salaryVo.setFullSubsidies(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setFullSubsidies(gj_salaryVo.getFullSubsidies().add(salaryVoz.getFullSubsidies()));
|
gj_salaryVo.setFullSubsidies(gj_salaryVo.getFullSubsidies().add(salaryVoz.getFullSubsidies()==null?new BigDecimal("0.00"):salaryVoz.getFullSubsidies()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getNightSubsidies())){
|
if(StringUtils.isNull(gj_salaryVo.getNightSubsidies())){
|
||||||
gj_salaryVo.setNightSubsidies(new BigDecimal("0.00"));
|
gj_salaryVo.setNightSubsidies(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setNightSubsidies(gj_salaryVo.getNightSubsidies().add(salaryVoz.getNightSubsidies()));
|
gj_salaryVo.setNightSubsidies(gj_salaryVo.getNightSubsidies().add(salaryVoz.getNightSubsidies()==null?new BigDecimal("0.00"):salaryVoz.getNightSubsidies()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getDinnerSubsidies())){
|
if(StringUtils.isNull(gj_salaryVo.getDinnerSubsidies())){
|
||||||
gj_salaryVo.setDinnerSubsidies(new BigDecimal("0.00"));
|
gj_salaryVo.setDinnerSubsidies(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setDinnerSubsidies(gj_salaryVo.getDinnerSubsidies().add(salaryVoz.getDinnerSubsidies()));
|
gj_salaryVo.setDinnerSubsidies(gj_salaryVo.getDinnerSubsidies().add(salaryVoz.getDinnerSubsidies()==null?new BigDecimal("0.00"):salaryVoz.getNightSubsidies()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getSubsidyOrBonus())){
|
if(StringUtils.isNull(gj_salaryVo.getSubsidyOrBonus())){
|
||||||
gj_salaryVo.setSubsidyOrBonus(new BigDecimal("0.00"));
|
gj_salaryVo.setSubsidyOrBonus(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setSubsidyOrBonus(gj_salaryVo.getSubsidyOrBonus().add(salaryVoz.getSubsidyOrBonus()));
|
gj_salaryVo.setSubsidyOrBonus(gj_salaryVo.getSubsidyOrBonus().add(salaryVoz.getSubsidyOrBonus()==null?new BigDecimal("0.00"):salaryVoz.getSubsidyOrBonus()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getAbsenteeismSalary())){
|
if(StringUtils.isNull(gj_salaryVo.getAbsenteeismSalary())){
|
||||||
gj_salaryVo.setAbsenteeismSalary(new BigDecimal("0.00"));
|
gj_salaryVo.setAbsenteeismSalary(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setAbsenteeismSalary(gj_salaryVo.getAbsenteeismSalary().add(salaryVoz.getAbsenteeismSalary()));
|
gj_salaryVo.setAbsenteeismSalary(gj_salaryVo.getAbsenteeismSalary().add(salaryVoz.getAbsenteeismSalary()==null?new BigDecimal("0.00"):salaryVoz.getAbsenteeismSalary()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getAbsenteeismSubsidies())){
|
if(StringUtils.isNull(gj_salaryVo.getAbsenteeismSubsidies())){
|
||||||
gj_salaryVo.setAbsenteeismSubsidies(new BigDecimal("0.00"));
|
gj_salaryVo.setAbsenteeismSubsidies(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setAbsenteeismSubsidies(gj_salaryVo.getAbsenteeismSubsidies().add(salaryVoz.getAbsenteeismSubsidies()));
|
gj_salaryVo.setAbsenteeismSubsidies(gj_salaryVo.getAbsenteeismSubsidies().add(salaryVoz.getAbsenteeismSubsidies()==null?new BigDecimal("0.00"):salaryVoz.getAbsenteeismSubsidies()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getMealFee())){
|
if(StringUtils.isNull(gj_salaryVo.getMealFee())){
|
||||||
gj_salaryVo.setMealFee(new BigDecimal("0.00"));
|
gj_salaryVo.setMealFee(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setMealFee(gj_salaryVo.getMealFee().add(salaryVoz.getMealFee()));
|
gj_salaryVo.setMealFee(gj_salaryVo.getMealFee().add(salaryVoz.getMealFee()==null?new BigDecimal("0.00"):salaryVoz.getMealFee()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getDeductions())){
|
if(StringUtils.isNull(gj_salaryVo.getDeductions())){
|
||||||
gj_salaryVo.setDeductions(new BigDecimal("0.00"));
|
gj_salaryVo.setDeductions(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setDeductions(gj_salaryVo.getDeductions().add(salaryVoz.getDeductions()));
|
gj_salaryVo.setDeductions(gj_salaryVo.getDeductions().add(salaryVoz.getDeductions()==null?new BigDecimal("0.00"):salaryVoz.getDeductions()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getSalary())){
|
if(StringUtils.isNull(gj_salaryVo.getSalary())){
|
||||||
gj_salaryVo.setSalary(new BigDecimal("0.00"));
|
gj_salaryVo.setSalary(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setSalary(gj_salaryVo.getSalary().add(salaryVoz.getSalary()));
|
gj_salaryVo.setSalary(gj_salaryVo.getSalary().add(salaryVoz.getSalary()==null?new BigDecimal("0.00"):salaryVoz.getSalary()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getPayInsurance())){
|
if(StringUtils.isNull(gj_salaryVo.getPayInsurance())){
|
||||||
gj_salaryVo.setPayInsurance(new BigDecimal("0.00"));
|
gj_salaryVo.setPayInsurance(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setPayInsurance(gj_salaryVo.getPayInsurance().add(salaryVoz.getPayInsurance()));
|
gj_salaryVo.setPayInsurance(gj_salaryVo.getPayInsurance().add(salaryVoz.getPayInsurance()==null?new BigDecimal("0.00"):salaryVoz.getPayInsurance()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getSalaryBeforeTax())){
|
if(StringUtils.isNull(gj_salaryVo.getSalaryBeforeTax())){
|
||||||
gj_salaryVo.setSalaryBeforeTax(new BigDecimal("0.00"));
|
gj_salaryVo.setSalaryBeforeTax(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setSalaryBeforeTax(gj_salaryVo.getSalaryBeforeTax().add(salaryVoz.getSalaryBeforeTax()));
|
gj_salaryVo.setSalaryBeforeTax(gj_salaryVo.getSalaryBeforeTax().add(salaryVoz.getSalaryBeforeTax()==null?new BigDecimal("0.00"):salaryVoz.getSalaryBeforeTax()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getTotalWages())){
|
if(StringUtils.isNull(gj_salaryVo.getTotalWages())){
|
||||||
gj_salaryVo.setTotalWages(new BigDecimal("0.00"));
|
gj_salaryVo.setTotalWages(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setTotalWages(gj_salaryVo.getTotalWages().add(salaryVoz.getTotalWages()));
|
gj_salaryVo.setTotalWages(gj_salaryVo.getTotalWages().add(salaryVoz.getTotalWages()==null?new BigDecimal("0.00"):salaryVoz.getTotalWages()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getAnnualExemptionAmount())){
|
if(StringUtils.isNull(gj_salaryVo.getAnnualExemptionAmount())){
|
||||||
gj_salaryVo.setAnnualExemptionAmount(new BigDecimal("0.00"));
|
gj_salaryVo.setAnnualExemptionAmount(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setAnnualExemptionAmount(gj_salaryVo.getAnnualExemptionAmount().add(salaryVoz.getAnnualExemptionAmount()));
|
gj_salaryVo.setAnnualExemptionAmount(gj_salaryVo.getAnnualExemptionAmount().add(salaryVoz.getAnnualExemptionAmount()==null?new BigDecimal("0.00"):salaryVoz.getAnnualExemptionAmount()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getSpecialDeduction())){
|
if(StringUtils.isNull(gj_salaryVo.getSpecialDeduction())){
|
||||||
gj_salaryVo.setSpecialDeduction(new BigDecimal("0.00"));
|
gj_salaryVo.setSpecialDeduction(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setSpecialDeduction(gj_salaryVo.getSpecialDeduction().add(salaryVoz.getSpecialDeduction()));
|
gj_salaryVo.setSpecialDeduction(gj_salaryVo.getSpecialDeduction().add(salaryVoz.getSpecialDeduction()==null?new BigDecimal("0.00"):salaryVoz.getSpecialDeduction()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getSlowDownTheDeduction())){
|
if(StringUtils.isNull(gj_salaryVo.getSlowDownTheDeduction())){
|
||||||
gj_salaryVo.setSlowDownTheDeduction(new BigDecimal("0.00"));
|
gj_salaryVo.setSlowDownTheDeduction(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setSlowDownTheDeduction(gj_salaryVo.getSlowDownTheDeduction().add(salaryVoz.getSlowDownTheDeduction()));
|
gj_salaryVo.setSlowDownTheDeduction(gj_salaryVo.getSlowDownTheDeduction().add(salaryVoz.getSlowDownTheDeduction()==null?new BigDecimal("0.00"):salaryVoz.getSlowDownTheDeduction()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getAggregatePersonalIncomeTax())){
|
if(StringUtils.isNull(gj_salaryVo.getAggregatePersonalIncomeTax())){
|
||||||
gj_salaryVo.setAggregatePersonalIncomeTax(new BigDecimal("0.00"));
|
gj_salaryVo.setAggregatePersonalIncomeTax(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setAggregatePersonalIncomeTax(gj_salaryVo.getAggregatePersonalIncomeTax().add(salaryVoz.getAggregatePersonalIncomeTax()));
|
gj_salaryVo.setAggregatePersonalIncomeTax(gj_salaryVo.getAggregatePersonalIncomeTax().add(salaryVoz.getAggregatePersonalIncomeTax()==null?new BigDecimal("0.00"):salaryVoz.getAggregatePersonalIncomeTax()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getTaxPayable())){
|
if(StringUtils.isNull(gj_salaryVo.getTaxPayable())){
|
||||||
gj_salaryVo.setTaxPayable(new BigDecimal("0.00"));
|
gj_salaryVo.setTaxPayable(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setTaxPayable(gj_salaryVo.getTaxPayable().add(salaryVoz.getTaxPayable()));
|
gj_salaryVo.setTaxPayable(gj_salaryVo.getTaxPayable().add(salaryVoz.getTaxPayable()==null?new BigDecimal("0.00"):salaryVoz.getTaxPayable()));
|
||||||
if(StringUtils.isNull(gj_salaryVo.getNetPayroll())){
|
if(StringUtils.isNull(gj_salaryVo.getNetPayroll())){
|
||||||
gj_salaryVo.setNetPayroll(new BigDecimal("0.00"));
|
gj_salaryVo.setNetPayroll(new BigDecimal("0.00"));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setNetPayroll(gj_salaryVo.getNetPayroll().add(salaryVoz.getNetPayroll()));
|
gj_salaryVo.setNetPayroll(gj_salaryVo.getNetPayroll().add(salaryVoz.getNetPayroll()==null?new BigDecimal("0.00"):salaryVoz.getNetPayroll()));
|
||||||
}
|
}
|
||||||
gj_salaryVo.setName("伊特总计:");
|
gj_salaryVo.setName("伊特总计:");
|
||||||
list.add(gj_salaryVo);
|
list.add(gj_salaryVo);
|
||||||
@ -460,34 +474,34 @@ public class RzSalaryDetailController extends BaseController
|
|||||||
list0.add(salaryVo);
|
list0.add(salaryVo);
|
||||||
}
|
}
|
||||||
list.add(xj_salaryVo);
|
list.add(xj_salaryVo);
|
||||||
payRollZong.setBasicSalary(xj_salaryVo.getBasicSalary().add(payRollZong.getBasicSalary()));
|
payRollZong.setBasicSalary(xj_salaryVo.getBasicSalary()==null?new BigDecimal("0.00"):xj_salaryVo.getBasicSalary().add(payRollZong.getBasicSalary()));
|
||||||
payRollZong.setOvertimeSalary(xj_salaryVo.getOvertimeSalary().add(payRollZong.getOvertimeSalary()));
|
payRollZong.setOvertimeSalary(xj_salaryVo.getOvertimeSalary()==null?new BigDecimal("0.00"):xj_salaryVo.getOvertimeSalary().add(payRollZong.getOvertimeSalary()));
|
||||||
payRollZong.setLevelSubsidies(xj_salaryVo.getLevelSubsidies().add(payRollZong.getLevelSubsidies()));
|
payRollZong.setLevelSubsidies(xj_salaryVo.getLevelSubsidies()==null?new BigDecimal("0.00"):xj_salaryVo.getLevelSubsidies().add(payRollZong.getLevelSubsidies()));
|
||||||
payRollZong.setContractSubsidies(xj_salaryVo.getContractSubsidies().add(payRollZong.getContractSubsidies()));
|
payRollZong.setContractSubsidies(xj_salaryVo.getContractSubsidies()==null?new BigDecimal("0.00"):xj_salaryVo.getContractSubsidies().add(payRollZong.getContractSubsidies()));
|
||||||
payRollZong.setSenioritySalary(xj_salaryVo.getSenioritySalary().add(payRollZong.getSenioritySalary()));
|
payRollZong.setSenioritySalary(xj_salaryVo.getSenioritySalary()==null?new BigDecimal("0.00"):xj_salaryVo.getSenioritySalary().add(payRollZong.getSenioritySalary()));
|
||||||
payRollZong.setSocialSubsidies(xj_salaryVo.getSocialSubsidies().add(payRollZong.getSocialSubsidies()));
|
payRollZong.setSocialSubsidies(xj_salaryVo.getSocialSubsidies()==null?new BigDecimal("0.00"):xj_salaryVo.getSocialSubsidies().add(payRollZong.getSocialSubsidies()));
|
||||||
payRollZong.setFullSubsidies(xj_salaryVo.getFullSubsidies().add(payRollZong.getFullSubsidies()));
|
payRollZong.setFullSubsidies(xj_salaryVo.getFullSubsidies()==null?new BigDecimal("0.00"):xj_salaryVo.getFullSubsidies().add(payRollZong.getFullSubsidies()));
|
||||||
payRollZong.setNightSubsidies(xj_salaryVo.getNightSubsidies().add(payRollZong.getNightSubsidies()));
|
payRollZong.setNightSubsidies(xj_salaryVo.getNightSubsidies()==null?new BigDecimal("0.00"):xj_salaryVo.getNightSubsidies().add(payRollZong.getNightSubsidies()));
|
||||||
payRollZong.setDinnerSubsidies(xj_salaryVo.getDinnerSubsidies().add(payRollZong.getDinnerSubsidies()));
|
payRollZong.setDinnerSubsidies(xj_salaryVo.getDinnerSubsidies()==null?new BigDecimal("0.00"):xj_salaryVo.getDinnerSubsidies().add(payRollZong.getDinnerSubsidies()));
|
||||||
payRollZong.setSubsidyOrBonus(xj_salaryVo.getSubsidyOrBonus().add(payRollZong.getSubsidyOrBonus()));
|
payRollZong.setSubsidyOrBonus(xj_salaryVo.getSubsidyOrBonus()==null?new BigDecimal("0.00"):xj_salaryVo.getSubsidyOrBonus().add(payRollZong.getSubsidyOrBonus()));
|
||||||
payRollZong.setAbsenteeismSalary(xj_salaryVo.getAbsenteeismSalary().add(payRollZong.getAbsenteeismSalary()));
|
payRollZong.setAbsenteeismSalary(xj_salaryVo.getAbsenteeismSalary()==null?new BigDecimal("0.00"):xj_salaryVo.getAbsenteeismSalary().add(payRollZong.getAbsenteeismSalary()));
|
||||||
payRollZong.setAbsenteeismSubsidies(xj_salaryVo.getAbsenteeismSubsidies().add(payRollZong.getAbsenteeismSubsidies()));
|
payRollZong.setAbsenteeismSubsidies(xj_salaryVo.getAbsenteeismSubsidies()==null?new BigDecimal("0.00"):xj_salaryVo.getAbsenteeismSubsidies().add(payRollZong.getAbsenteeismSubsidies()));
|
||||||
payRollZong.setMealFee(xj_salaryVo.getMealFee().add(payRollZong.getMealFee()));
|
payRollZong.setMealFee(xj_salaryVo.getMealFee()==null?new BigDecimal("0.00"):xj_salaryVo.getMealFee().add(payRollZong.getMealFee()));
|
||||||
payRollZong.setDeductions(xj_salaryVo.getDeductions().add(payRollZong.getDeductions()));
|
payRollZong.setDeductions(xj_salaryVo.getDeductions()==null?new BigDecimal("0.00"):xj_salaryVo.getDeductions().add(payRollZong.getDeductions()));
|
||||||
payRollZong.setSalary(xj_salaryVo.getSalary().add(payRollZong.getSalary()));
|
payRollZong.setSalary(xj_salaryVo.getSalary()==null ?new BigDecimal("0.00"):xj_salaryVo.getSalary().add(payRollZong.getSalary()));
|
||||||
payRollZong.setPayInsurance(xj_salaryVo.getPayInsurance().add(payRollZong.getPayInsurance()));
|
payRollZong.setPayInsurance(xj_salaryVo.getPayInsurance()==null ?new BigDecimal("0.00"):xj_salaryVo.getPayInsurance().add(payRollZong.getPayInsurance()));
|
||||||
payRollZong.setSalaryBeforeTax(xj_salaryVo.getSalaryBeforeTax().add(payRollZong.getSalaryBeforeTax()));
|
payRollZong.setSalaryBeforeTax(xj_salaryVo.getSalaryBeforeTax()==null?new BigDecimal("0.00"):xj_salaryVo.getSalaryBeforeTax().add(payRollZong.getSalaryBeforeTax()));
|
||||||
payRollZong.setTotalWages(xj_salaryVo.getTotalWages().add(payRollZong.getTotalWages()));
|
payRollZong.setTotalWages(xj_salaryVo.getTotalWages()==null ?new BigDecimal("0.00"):xj_salaryVo.getTotalWages().add(payRollZong.getTotalWages()));
|
||||||
payRollZong.setAnnualExemptionAmount(xj_salaryVo.getAnnualExemptionAmount().add(payRollZong.getAnnualExemptionAmount()));
|
payRollZong.setAnnualExemptionAmount(xj_salaryVo.getAnnualExemptionAmount()==null ?new BigDecimal("0.00"):xj_salaryVo.getAnnualExemptionAmount().add(payRollZong.getAnnualExemptionAmount()));
|
||||||
payRollZong.setSpecialDeduction(xj_salaryVo.getSpecialDeduction().add(payRollZong.getSpecialDeduction()));
|
payRollZong.setSpecialDeduction(xj_salaryVo.getSpecialDeduction()==null ?new BigDecimal("0.00"):xj_salaryVo.getSpecialDeduction().add(payRollZong.getSpecialDeduction()));
|
||||||
payRollZong.setSlowDownTheDeduction(xj_salaryVo.getSlowDownTheDeduction().add(payRollZong.getSlowDownTheDeduction()));
|
payRollZong.setSlowDownTheDeduction(xj_salaryVo.getSlowDownTheDeduction()==null ?new BigDecimal("0.00"):xj_salaryVo.getSlowDownTheDeduction().add(payRollZong.getSlowDownTheDeduction()));
|
||||||
payRollZong.setAggregatePersonalIncomeTax(xj_salaryVo.getAggregatePersonalIncomeTax().add(payRollZong.getAggregatePersonalIncomeTax()));
|
payRollZong.setAggregatePersonalIncomeTax(xj_salaryVo.getAggregatePersonalIncomeTax()==null ?new BigDecimal("0.00"):xj_salaryVo.getAggregatePersonalIncomeTax().add(payRollZong.getAggregatePersonalIncomeTax()));
|
||||||
payRollZong.setTaxPayable(xj_salaryVo.getTaxPayable().add(payRollZong.getTaxPayable()));
|
payRollZong.setTaxPayable(xj_salaryVo.getTaxPayable()==null ?new BigDecimal("0.00"):xj_salaryVo.getTaxPayable().add(payRollZong.getTaxPayable()));
|
||||||
payRollZong.setNetPayroll(xj_salaryVo.getNetPayroll().add(payRollZong.getNetPayroll()));
|
payRollZong.setNetPayroll(xj_salaryVo.getNetPayroll()==null ?new BigDecimal("0.00"):xj_salaryVo.getNetPayroll().add(payRollZong.getNetPayroll()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
list.add(payRollZong);
|
list.add(payRollZong);//部门小计+总计
|
||||||
//表尾
|
//表尾 list=[部门小计,总计,部门小计+总计];lists=人员工资明细下面存放一条小计信息;sheetNameLis=所有sheet表名字
|
||||||
String footer = "制表: "+"审核: "+"经理签字: "+"总经理签字: ";
|
String footer = "制表: "+"审核: "+"经理签字: "+"总经理签字: ";
|
||||||
return util.exportExcel(list,lists,"总表",sheetNameList,title,footer);
|
return util.exportExcel(list,lists,"总表",sheetNameList,title,footer);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -151,7 +151,9 @@ public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService
|
|||||||
rzSalaryDetail.setWbFlag(sysStaff.getCompanyName()); //公司
|
rzSalaryDetail.setWbFlag(sysStaff.getCompanyName()); //公司
|
||||||
//计算获得的工资
|
//计算获得的工资
|
||||||
SysStaffDetail salaryDetail = calculateSalary(sysStaff,rzSalaryDetail.getMonth(),sbrq);
|
SysStaffDetail salaryDetail = calculateSalary(sysStaff,rzSalaryDetail.getMonth(),sbrq);
|
||||||
rzSalaryDetail.setMonthSalary(salaryDetail.getBasicSalary()); //基本工资
|
rzSalaryDetail.setBasicSalary(salaryDetail.getBasicSalary());//基本工资
|
||||||
|
rzSalaryDetail.setJobSalary(salaryDetail.getJobsSalary());//岗位工资
|
||||||
|
rzSalaryDetail.setMonthSalary(salaryDetail.getBasicSalary().add(salaryDetail.getJobsSalary())); //月工资
|
||||||
rzSalaryDetail.setAbsenteeismSalary(salaryDetail.getAbsenteeismSalary()); //请假扣除工资
|
rzSalaryDetail.setAbsenteeismSalary(salaryDetail.getAbsenteeismSalary()); //请假扣除工资
|
||||||
rzSalaryDetail.setOvertimeSalary(salaryDetail.getOverWages()); //加班工资
|
rzSalaryDetail.setOvertimeSalary(salaryDetail.getOverWages()); //加班工资
|
||||||
rzSalaryDetail.setNightSubsidies(salaryDetail.getNightShiftSubsidies()); //夜班补助
|
rzSalaryDetail.setNightSubsidies(salaryDetail.getNightShiftSubsidies()); //夜班补助
|
||||||
@ -164,7 +166,7 @@ public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService
|
|||||||
rzSalaryDetail.setContractSubsidies(sysStaffDetail.getContractSubsidies()); //合同
|
rzSalaryDetail.setContractSubsidies(sysStaffDetail.getContractSubsidies()); //合同
|
||||||
rzSalaryDetail.setSocialSubsidies(sysStaffDetail.getSocialSecuritySubsidies()); //社保
|
rzSalaryDetail.setSocialSubsidies(sysStaffDetail.getSocialSecuritySubsidies()); //社保
|
||||||
rzSalaryDetail.setSubsidyOrBonus(sysStaffDetail.getOtherSubsidies().add(sysStaffDetail.getFixedAllowance())); //其他补助
|
rzSalaryDetail.setSubsidyOrBonus(sysStaffDetail.getOtherSubsidies().add(sysStaffDetail.getFixedAllowance())); //其他补助
|
||||||
//补助扣除 TODO 福利扣除百分比
|
//补助扣除 TODO 福利扣除百分比:各种补助*扣除系数
|
||||||
rzSalaryDetail.setAbsenteeismSubsidies(sysStaffDetail.getLevelOfEducationSubsidies().add(sysStaffDetail.getContractSubsidies())
|
rzSalaryDetail.setAbsenteeismSubsidies(sysStaffDetail.getLevelOfEducationSubsidies().add(sysStaffDetail.getContractSubsidies())
|
||||||
.add(sysStaffDetail.getSenioritySubsidies()).add(sysStaffDetail.getSocialSecuritySubsidies()).multiply(salaryDetail.getAbsenteeismSubsidies()));
|
.add(sysStaffDetail.getSenioritySubsidies()).add(sysStaffDetail.getSocialSecuritySubsidies()).multiply(salaryDetail.getAbsenteeismSubsidies()));
|
||||||
rzSalaryDetail.setDeductions(sysStaffDetail.getDeductions()); //其他扣款
|
rzSalaryDetail.setDeductions(sysStaffDetail.getDeductions()); //其他扣款
|
||||||
@ -227,37 +229,37 @@ public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService
|
|||||||
.add(sysStaffDetail.getHousingRents()).add(sysStaffDetail.getAdultEducation()).add(sysStaffDetail.getTreatmentForSeriousDisease()));
|
.add(sysStaffDetail.getHousingRents()).add(sysStaffDetail.getAdultEducation()).add(sysStaffDetail.getTreatmentForSeriousDisease()));
|
||||||
|
|
||||||
// 判断应纳税所得额额度(额度不一样税率不一样)
|
// 判断应纳税所得额额度(额度不一样税率不一样)
|
||||||
if (rzSalaryDetail.getTaxableIncome().doubleValue() > 0 && rzSalaryDetail.getTaxableIncome().doubleValue() <= 36000l) {
|
if (null!=rzSalaryDetail.getTaxableIncome() && rzSalaryDetail.getTaxableIncome().doubleValue() > 0 && rzSalaryDetail.getTaxableIncome().doubleValue() <= 36000l) {
|
||||||
// 此阶税率为百分之3,速减数为0
|
// 此阶税率为百分之3,速减数为0
|
||||||
rzSalaryDetail.setTaxRate(new BigDecimal("0.03"));
|
rzSalaryDetail.setTaxRate(new BigDecimal("0.03"));
|
||||||
// 速算扣除数(速算扣除数跟税率同步)
|
// 速算扣除数(速算扣除数跟税率同步)
|
||||||
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("0"));
|
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("0"));
|
||||||
} else if (rzSalaryDetail.getTaxableIncome().doubleValue() > 36000l && rzSalaryDetail.getTaxableIncome().doubleValue() <= 144000L) {
|
} else if (null!=rzSalaryDetail.getTaxableIncome() &&rzSalaryDetail.getTaxableIncome().doubleValue() > 36000l && rzSalaryDetail.getTaxableIncome().doubleValue() <= 144000L) {
|
||||||
// 此阶税率为百分之3,速减数为0
|
// 此阶税率为百分之3,速减数为0
|
||||||
rzSalaryDetail.setTaxRate(new BigDecimal("0.10"));
|
rzSalaryDetail.setTaxRate(new BigDecimal("0.10"));
|
||||||
// 速算扣除数(速算扣除数跟税率同步)
|
// 速算扣除数(速算扣除数跟税率同步)
|
||||||
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("2520"));
|
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("2520"));
|
||||||
} else if (rzSalaryDetail.getTaxableIncome().doubleValue() > 144000L && rzSalaryDetail.getTaxableIncome().doubleValue() <= 300000l) {
|
} else if (null!=rzSalaryDetail.getTaxableIncome() &&rzSalaryDetail.getTaxableIncome().doubleValue() > 144000L && rzSalaryDetail.getTaxableIncome().doubleValue() <= 300000l) {
|
||||||
// 此阶税率为百分之3,速减数为0
|
// 此阶税率为百分之3,速减数为0
|
||||||
rzSalaryDetail.setTaxRate(new BigDecimal("0.20"));
|
rzSalaryDetail.setTaxRate(new BigDecimal("0.20"));
|
||||||
// 速算扣除数(速算扣除数跟税率同步)
|
// 速算扣除数(速算扣除数跟税率同步)
|
||||||
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("16920"));
|
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("16920"));
|
||||||
} else if (rzSalaryDetail.getTaxableIncome().doubleValue() > 300000l && rzSalaryDetail.getTaxableIncome().doubleValue() <= 420000l) {
|
} else if (null!=rzSalaryDetail.getTaxableIncome() &&rzSalaryDetail.getTaxableIncome().doubleValue() > 300000l && rzSalaryDetail.getTaxableIncome().doubleValue() <= 420000l) {
|
||||||
// 此阶税率为百分之3,速减数为0
|
// 此阶税率为百分之3,速减数为0
|
||||||
rzSalaryDetail.setTaxRate(new BigDecimal("0.25"));
|
rzSalaryDetail.setTaxRate(new BigDecimal("0.25"));
|
||||||
// 速算扣除数(速算扣除数跟税率同步)
|
// 速算扣除数(速算扣除数跟税率同步)
|
||||||
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("31920"));
|
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("31920"));
|
||||||
} else if (rzSalaryDetail.getTaxableIncome().doubleValue() > 420000l && rzSalaryDetail.getTaxableIncome().doubleValue() <= 660000l) {
|
} else if (null!=rzSalaryDetail.getTaxableIncome() &&rzSalaryDetail.getTaxableIncome().doubleValue() > 420000l && rzSalaryDetail.getTaxableIncome().doubleValue() <= 660000l) {
|
||||||
// 此阶税率为百分之3,速减数为0
|
// 此阶税率为百分之3,速减数为0
|
||||||
rzSalaryDetail.setTaxRate(new BigDecimal("0.30"));
|
rzSalaryDetail.setTaxRate(new BigDecimal("0.30"));
|
||||||
// 速算扣除数(速算扣除数跟税率同步)
|
// 速算扣除数(速算扣除数跟税率同步)
|
||||||
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("52920"));
|
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("52920"));
|
||||||
} else if (rzSalaryDetail.getTaxableIncome().doubleValue() > 660000l && rzSalaryDetail.getTaxableIncome().doubleValue() <= 960000l) {
|
} else if (null!=rzSalaryDetail.getTaxableIncome() &&rzSalaryDetail.getTaxableIncome().doubleValue() > 660000l && rzSalaryDetail.getTaxableIncome().doubleValue() <= 960000l) {
|
||||||
// 此阶税率为百分之3,速减数为0
|
// 此阶税率为百分之3,速减数为0
|
||||||
rzSalaryDetail.setTaxRate(new BigDecimal("0.35"));
|
rzSalaryDetail.setTaxRate(new BigDecimal("0.35"));
|
||||||
// 速算扣除数(速算扣除数跟税率同步)
|
// 速算扣除数(速算扣除数跟税率同步)
|
||||||
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("85920"));
|
rzSalaryDetail.setSlowDownTheDeduction(new BigDecimal("85920"));
|
||||||
} else if (rzSalaryDetail.getTaxableIncome().doubleValue() > 960000l) {
|
} else if (null!=rzSalaryDetail.getTaxableIncome() &&rzSalaryDetail.getTaxableIncome().doubleValue() > 960000l) {
|
||||||
// 此阶税率为百分之3,速减数为0
|
// 此阶税率为百分之3,速减数为0
|
||||||
rzSalaryDetail.setTaxRate(new BigDecimal("0.45"));
|
rzSalaryDetail.setTaxRate(new BigDecimal("0.45"));
|
||||||
// 速算扣除数(速算扣除数跟税率同步)
|
// 速算扣除数(速算扣除数跟税率同步)
|
||||||
@ -380,15 +382,24 @@ public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService
|
|||||||
BigDecimal bfb = new BigDecimal("0.00");
|
BigDecimal bfb = new BigDecimal("0.00");
|
||||||
//获取考勤统计
|
//获取考勤统计
|
||||||
RzAttendanceStatistical rzAttendanceStatistical = rzAttendanceStatisticalMapper.getRzAttendanceStatisticalByDateAndName(sysStaff.getUserId(),month);
|
RzAttendanceStatistical rzAttendanceStatistical = rzAttendanceStatisticalMapper.getRzAttendanceStatisticalByDateAndName(sysStaff.getUserId(),month);
|
||||||
//判断入职日期,社保缴纳日期以前入职,计算补助扣除比例
|
//判断入职日期,社保缴纳日期以前入职,计算补助扣除比例==请假4小时 扣补助的5% 请假十天 补助就扣没了
|
||||||
if(sysStaff.getEmploymentDate().before(date)){
|
/*if(sysStaff.getEmploymentDate().before(date)){
|
||||||
//计算请假百分比
|
//计算请假百分比
|
||||||
BigDecimal b = rzAttendanceStatistical.getAbsenteeism().divide(new BigDecimal("4"));
|
BigDecimal b = rzAttendanceStatistical.getAbsenteeism().divide(new BigDecimal("4"));//????
|
||||||
bfb = b.multiply(new BigDecimal(Constants.SUBSIDY_PROPORTION));
|
bfb = b.multiply(new BigDecimal(Constants.SUBSIDY_PROPORTION));
|
||||||
sysStaffDetail.setAbsenteeismSubsidies(bfb);
|
sysStaffDetail.setAbsenteeismSubsidies(bfb);
|
||||||
}else{
|
}else{
|
||||||
sysStaffDetail.setAbsenteeismSubsidies(new BigDecimal("1.00"));
|
sysStaffDetail.setAbsenteeismSubsidies(new BigDecimal("1.00"));
|
||||||
|
}*/
|
||||||
|
//计算步骤扣除比例:请假4小时 扣补助5% 8小时 10% 12小时 15% 以此类推;请假十天(80小时) 补助全扣
|
||||||
|
if(null!=rzAttendanceStatistical.getAbsenteeism() && rzAttendanceStatistical.getAbsenteeism().compareTo(new BigDecimal("80")) < 0){
|
||||||
|
BigDecimal b = rzAttendanceStatistical.getAbsenteeism().divide(new BigDecimal("4"));
|
||||||
|
bfb = b.multiply(new BigDecimal(Constants.SUBSIDY_PROPORTION));
|
||||||
|
sysStaffDetail.setAbsenteeismSubsidies(bfb);
|
||||||
|
}else if(null!=rzAttendanceStatistical.getAbsenteeism() && rzAttendanceStatistical.getAbsenteeism().compareTo(new BigDecimal("80")) >= 0){
|
||||||
|
sysStaffDetail.setAbsenteeismSubsidies(new BigDecimal("1.00"));
|
||||||
}
|
}
|
||||||
|
|
||||||
sysStaffDetail.setNightShiftSubsidies(sysStaffDetail.getNightShiftSubsidies().multiply(new BigDecimal(rzAttendanceStatistical.getNightNumber())));
|
sysStaffDetail.setNightShiftSubsidies(sysStaffDetail.getNightShiftSubsidies().multiply(new BigDecimal(rzAttendanceStatistical.getNightNumber())));
|
||||||
sysStaffDetail.setDinnerSubsidies(sysStaffDetail.getDinnerSubsidies().multiply(new BigDecimal(rzAttendanceStatistical.getNightNumber())));
|
sysStaffDetail.setDinnerSubsidies(sysStaffDetail.getDinnerSubsidies().multiply(new BigDecimal(rzAttendanceStatistical.getNightNumber())));
|
||||||
//是否打卡
|
//是否打卡
|
||||||
@ -403,10 +414,10 @@ public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService
|
|||||||
calendar.set(Calendar.MONTH,1);
|
calendar.set(Calendar.MONTH,1);
|
||||||
//全额薪资日期在工资月以前----null != sysStaff.getWagesRatioDate() &&
|
//全额薪资日期在工资月以前----null != sysStaff.getWagesRatioDate() &&
|
||||||
if(null != sysStaff.getWagesRatioDate() && sysStaff.getWagesRatioDate().before(month)) {
|
if(null != sysStaff.getWagesRatioDate() && sysStaff.getWagesRatioDate().before(month)) {
|
||||||
sysStaffDetail.setBasicSalary(sysStaffDetail.getDailyWage().divide(new BigDecimal("8.0"),2, RoundingMode.HALF_UP)
|
sysStaffDetail.setMonthSalary(sysStaffDetail.getDailyWage().divide(new BigDecimal("8.0"),2, RoundingMode.HALF_UP)
|
||||||
.multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())));
|
.multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())));
|
||||||
}else if(null != sysStaff.getWagesRatioDate() && sysStaff.getWagesRatioDate().after(calendar.getTime())) {
|
}else if(null != sysStaff.getWagesRatioDate() && sysStaff.getWagesRatioDate().after(calendar.getTime())) {
|
||||||
sysStaffDetail.setBasicSalary(sysStaffDetail.getDailyWage().divide(new BigDecimal("8.0"),2, RoundingMode.HALF_UP)
|
sysStaffDetail.setMonthSalary(sysStaffDetail.getDailyWage().divide(new BigDecimal("8.0"),2, RoundingMode.HALF_UP)
|
||||||
.multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD)));
|
.multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD)));
|
||||||
}else {
|
}else {
|
||||||
//根据转正日期,查询员工的打卡信息
|
//根据转正日期,查询员工的打卡信息
|
||||||
@ -418,7 +429,7 @@ public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService
|
|||||||
}
|
}
|
||||||
//未转正需要扣除的工资
|
//未转正需要扣除的工资
|
||||||
BigDecimal work = sysStaffDetail.getDailyWage().divide(new BigDecimal("8.0"),2, RoundingMode.HALF_UP).multiply(att_work).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD_1));
|
BigDecimal work = sysStaffDetail.getDailyWage().divide(new BigDecimal("8.0"),2, RoundingMode.HALF_UP).multiply(att_work).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD_1));
|
||||||
sysStaffDetail.setBasicSalary(sysStaffDetail.getDailyWage().divide(new BigDecimal("8.0"),2, RoundingMode.HALF_UP)
|
sysStaffDetail.setMonthSalary(sysStaffDetail.getDailyWage().divide(new BigDecimal("8.0"),2, RoundingMode.HALF_UP)
|
||||||
.multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())).subtract(work));
|
.multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())).subtract(work));
|
||||||
}
|
}
|
||||||
sysStaffDetail.setOverWages(sysStaffDetail.getDailyWage().divide(new BigDecimal("8.0"),2, RoundingMode.HALF_UP).multiply(rzAttendanceStatistical.getWorkOvertimeNumber()));
|
sysStaffDetail.setOverWages(sysStaffDetail.getDailyWage().divide(new BigDecimal("8.0"),2, RoundingMode.HALF_UP).multiply(rzAttendanceStatistical.getWorkOvertimeNumber()));
|
||||||
@ -431,9 +442,9 @@ public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService
|
|||||||
calendar.set(Calendar.MONTH,1);
|
calendar.set(Calendar.MONTH,1);
|
||||||
//全额薪资日期在工资月以前
|
//全额薪资日期在工资月以前
|
||||||
if(sysStaff.getWagesRatioDate().before(month)) {
|
if(sysStaff.getWagesRatioDate().before(month)) {
|
||||||
sysStaffDetail.setBasicSalary(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())));
|
sysStaffDetail.setMonthSalary(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())));
|
||||||
}else if(sysStaff.getWagesRatioDate().after(calendar.getTime())) {
|
}else if(sysStaff.getWagesRatioDate().after(calendar.getTime())) {
|
||||||
sysStaffDetail.setBasicSalary(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD)));
|
sysStaffDetail.setMonthSalary(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD)));
|
||||||
}else {
|
}else {
|
||||||
//根据转正日期,查询员工的打卡信息
|
//根据转正日期,查询员工的打卡信息
|
||||||
BigDecimal att_work = new BigDecimal("0.0");
|
BigDecimal att_work = new BigDecimal("0.0");
|
||||||
@ -444,7 +455,7 @@ public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService
|
|||||||
}
|
}
|
||||||
//未转正需要扣除的工资
|
//未转正需要扣除的工资
|
||||||
BigDecimal work = sysStaffDetail.getHoursSalary().multiply(att_work).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD_1));
|
BigDecimal work = sysStaffDetail.getHoursSalary().multiply(att_work).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD_1));
|
||||||
sysStaffDetail.setBasicSalary(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())).subtract(work));
|
sysStaffDetail.setMonthSalary(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getRealAttendance().add(rzAttendanceStatistical.getWorkOvertimeNumber())).subtract(work));
|
||||||
}
|
}
|
||||||
sysStaffDetail.setOverWages(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getWorkOvertimeNumber()));
|
sysStaffDetail.setOverWages(sysStaffDetail.getHoursSalary().multiply(rzAttendanceStatistical.getWorkOvertimeNumber()));
|
||||||
sysStaffDetail.setAbsenteeismSalary(new BigDecimal("0.00"));
|
sysStaffDetail.setAbsenteeismSalary(new BigDecimal("0.00"));
|
||||||
@ -456,10 +467,10 @@ public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService
|
|||||||
calendar.set(Calendar.MONTH,1);
|
calendar.set(Calendar.MONTH,1);
|
||||||
//全额薪资日期在工资月以前
|
//全额薪资日期在工资月以前
|
||||||
if(sysStaff.getWagesRatioDate().before(month)) {
|
if(sysStaff.getWagesRatioDate().before(month)) {
|
||||||
sysStaffDetail.setBasicSalary(sysStaffDetail.getBasicSalary().add(sysStaffDetail.getJobsSalary()));
|
sysStaffDetail.setMonthSalary(sysStaffDetail.getBasicSalary().add(sysStaffDetail.getJobsSalary()));
|
||||||
}else if(sysStaff.getWagesRatioDate().after(calendar.getTime())) {
|
}else if(sysStaff.getWagesRatioDate().after(calendar.getTime())) {
|
||||||
BigDecimal hours = sysStaffDetail.getBasicSalary().add(sysStaffDetail.getJobsSalary()).divide(rzAttendanceStatistical.getShouldAttendance(),2, RoundingMode.HALF_UP);
|
BigDecimal hours = sysStaffDetail.getBasicSalary().add(sysStaffDetail.getJobsSalary()).divide(rzAttendanceStatistical.getShouldAttendance(),2, RoundingMode.HALF_UP);
|
||||||
sysStaffDetail.setBasicSalary(hours.multiply(rzAttendanceStatistical.getRealAttendance()).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD)));
|
sysStaffDetail.setMonthSalary(hours.multiply(rzAttendanceStatistical.getRealAttendance()).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD)));
|
||||||
}else {
|
}else {
|
||||||
//根据转正日期,查询员工的打卡信息
|
//根据转正日期,查询员工的打卡信息
|
||||||
BigDecimal att_work = new BigDecimal("0.0");
|
BigDecimal att_work = new BigDecimal("0.0");
|
||||||
@ -471,20 +482,22 @@ public class RzSalaryDetailServiceImpl implements IRzSalaryDetailService
|
|||||||
//未转正需要扣除的工资
|
//未转正需要扣除的工资
|
||||||
BigDecimal work = sysStaffDetail.getBasicSalary().add(sysStaffDetail.getJobsSalary()).divide(rzAttendanceStatistical.getShouldAttendance(),2, RoundingMode.HALF_UP)
|
BigDecimal work = sysStaffDetail.getBasicSalary().add(sysStaffDetail.getJobsSalary()).divide(rzAttendanceStatistical.getShouldAttendance(),2, RoundingMode.HALF_UP)
|
||||||
.multiply(att_work).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD_1));
|
.multiply(att_work).multiply(new BigDecimal(Constants.SUBSIDY_PERIOD_1));
|
||||||
sysStaffDetail.setBasicSalary(sysStaffDetail.getBasicSalary().add(sysStaffDetail.getJobsSalary()).subtract(work));
|
sysStaffDetail.setMonthSalary(sysStaffDetail.getBasicSalary().add(sysStaffDetail.getJobsSalary()).subtract(work));
|
||||||
}
|
}
|
||||||
//计算月工资的每小时,工资
|
//计算月工资的每小时,工资
|
||||||
BigDecimal evrymoney = sysStaffDetail.getBasicSalary().multiply(new BigDecimal("11.00"))
|
/*BigDecimal evrymoney = sysStaffDetail.getBasicSalary().multiply(new BigDecimal("11.00"))
|
||||||
.add(sysStaffDetail.getBasicSalary().multiply(new BigDecimal(Constants.SUBSIDY_PERIOD)))
|
.add(sysStaffDetail.getBasicSalary().multiply(new BigDecimal(Constants.SUBSIDY_PERIOD)))
|
||||||
.divide(new BigDecimal(days).multiply(new BigDecimal("8.00")),2, RoundingMode.HALF_UP);
|
.divide(new BigDecimal(days).multiply(new BigDecimal("8.00")),2, RoundingMode.HALF_UP);*///????
|
||||||
sysStaffDetail.setAbsenteeismSalary(evrymoney.multiply(rzAttendanceStatistical.getShouldAttendance().subtract(rzAttendanceStatistical.getRealAttendance())));
|
BigDecimal divide = sysStaffDetail.getMonthSalary().divide(new BigDecimal(26), 2).divide(new BigDecimal("8"));
|
||||||
|
|
||||||
|
sysStaffDetail.setAbsenteeismSalary(divide.multiply(rzAttendanceStatistical.getShouldAttendance().subtract(rzAttendanceStatistical.getRealAttendance())));
|
||||||
sysStaffDetail.setMiddleSubsidies(new BigDecimal("0.00"));
|
sysStaffDetail.setMiddleSubsidies(new BigDecimal("0.00"));
|
||||||
//根据用户获取当前的加班情况
|
//根据用户获取当前的加班情况
|
||||||
RzSpecialOverTime rSpecialOverTime = rzSpecialOverTimeMapper.selectRzSpecialOverTimeByUserIdAndDate(sysStaff.getUserId(),month);
|
RzSpecialOverTime rSpecialOverTime = rzSpecialOverTimeMapper.selectRzSpecialOverTimeByUserIdAndDate(sysStaff.getUserId(),month);
|
||||||
if(StringUtils.isNull(rSpecialOverTime)){
|
if(StringUtils.isNull(rSpecialOverTime)){
|
||||||
sysStaffDetail.setOverWages(new BigDecimal("0.00"));
|
sysStaffDetail.setOverWages(new BigDecimal("0.00"));
|
||||||
}else{
|
}else{
|
||||||
sysStaffDetail.setOverWages(evrymoney.multiply(rSpecialOverTime.getSickHours()));
|
sysStaffDetail.setOverWages(divide.multiply(rSpecialOverTime.getSickHours()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//判断员工的上班时长,设置保险的补交
|
//判断员工的上班时长,设置保险的补交
|
||||||
|
|||||||
@ -58,6 +58,8 @@ public class SysStaffDetail extends BaseEntity
|
|||||||
/** 社保补助 */
|
/** 社保补助 */
|
||||||
@Excel(name = "社保补助")
|
@Excel(name = "社保补助")
|
||||||
private BigDecimal socialSecuritySubsidies;
|
private BigDecimal socialSecuritySubsidies;
|
||||||
|
|
||||||
|
/** 中班补助 */
|
||||||
@Excel(name = "中班补助")
|
@Excel(name = "中班补助")
|
||||||
private BigDecimal middleSubsidies;
|
private BigDecimal middleSubsidies;
|
||||||
|
|
||||||
@ -162,13 +164,24 @@ public class SysStaffDetail extends BaseEntity
|
|||||||
/** 备注 */
|
/** 备注 */
|
||||||
@Excel(name = "备注")
|
@Excel(name = "备注")
|
||||||
private String remarks;
|
private String remarks;
|
||||||
private BigDecimal OverWages; //加班工资
|
|
||||||
private BigDecimal absenteeismSalary; //请假扣款
|
/**加班工资*/
|
||||||
private BigDecimal absenteeismSubsidies; //补助扣除
|
private BigDecimal OverWages;
|
||||||
|
|
||||||
|
/**请假扣款 */
|
||||||
|
private BigDecimal absenteeismSalary;
|
||||||
|
|
||||||
|
/**补助扣除 */
|
||||||
|
private BigDecimal absenteeismSubsidies;
|
||||||
|
|
||||||
/** 删除标识 */
|
/** 删除标识 */
|
||||||
private String delFlag;
|
private String delFlag;
|
||||||
|
|
||||||
|
|
||||||
|
/** 月工资 */
|
||||||
|
private BigDecimal monthSalary;
|
||||||
|
|
||||||
|
|
||||||
public BigDecimal getMiddleSubsidies() {
|
public BigDecimal getMiddleSubsidies() {
|
||||||
return middleSubsidies;
|
return middleSubsidies;
|
||||||
}
|
}
|
||||||
@ -543,6 +556,14 @@ public class SysStaffDetail extends BaseEntity
|
|||||||
return delFlag;
|
return delFlag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BigDecimal getMonthSalary() {
|
||||||
|
return monthSalary;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMonthSalary(BigDecimal monthSalary) {
|
||||||
|
this.monthSalary = monthSalary;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user