修改工资详情导出功能
This commit is contained in:
parent
4571d299fd
commit
e3cf13dffb
@ -116,8 +116,8 @@ 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("/export1")
|
||||||
public AjaxResult export(RzSalaryDetail rzSalaryDetail)
|
public AjaxResult export1(RzSalaryDetail rzSalaryDetail)
|
||||||
{
|
{
|
||||||
ExcelUtilSs<SalaryVo> util = new ExcelUtilSs<SalaryVo>(SalaryVo.class);
|
ExcelUtilSs<SalaryVo> util = new ExcelUtilSs<SalaryVo>(SalaryVo.class);
|
||||||
//创建总表
|
//创建总表
|
||||||
@ -508,5 +508,15 @@ public class RzSalaryDetailController extends BaseController
|
|||||||
List<RzSalaryVo> attendanceList = util.importExcel(file.getInputStream());
|
List<RzSalaryVo> attendanceList = util.importExcel(file.getInputStream());
|
||||||
return success(rzSalaryDetailService.importSalesCommissions(attendanceList));
|
return success(rzSalaryDetailService.importSalesCommissions(attendanceList));
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
* 导出工资详情列表
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('finance:financeDetail:export')")
|
||||||
|
@Log(title = "工资详情", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public AjaxResult export(RzSalaryDetail rzSalaryDetail){
|
||||||
|
|
||||||
|
return rzSalaryDetailService.export(rzSalaryDetail);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,10 @@
|
|||||||
package com.evo.finance.domain.vo;
|
package com.evo.finance.domain.vo;
|
||||||
|
|
||||||
import com.evo.common.annotation.Excel;
|
import com.evo.common.annotation.Excel;
|
||||||
|
import lombok.Data;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
public class SalaryVo {
|
public class SalaryVo {
|
||||||
|
|
||||||
@Excel(name = "部门名称")
|
@Excel(name = "部门名称")
|
||||||
@ -10,6 +12,8 @@ public class SalaryVo {
|
|||||||
/** 员工姓名 */
|
/** 员工姓名 */
|
||||||
@Excel(name = "员工姓名")
|
@Excel(name = "员工姓名")
|
||||||
private String name;
|
private String name;
|
||||||
|
@Excel(name = "工资月份")
|
||||||
|
private String month;
|
||||||
/** 基本工资 */
|
/** 基本工资 */
|
||||||
@Excel(name = "月工资")
|
@Excel(name = "月工资")
|
||||||
private BigDecimal basicSalary;
|
private BigDecimal basicSalary;
|
||||||
@ -83,211 +87,4 @@ public class SalaryVo {
|
|||||||
@Excel(name = "实发工资")
|
@Excel(name = "实发工资")
|
||||||
private BigDecimal netPayroll;
|
private BigDecimal netPayroll;
|
||||||
|
|
||||||
public String getDeptName() {
|
|
||||||
return deptName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDeptName(String deptName) {
|
|
||||||
this.deptName = deptName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getBasicSalary() {
|
|
||||||
return basicSalary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBasicSalary(BigDecimal basicSalary) {
|
|
||||||
this.basicSalary = basicSalary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getOvertimeSalary() {
|
|
||||||
return overtimeSalary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOvertimeSalary(BigDecimal overtimeSalary) {
|
|
||||||
this.overtimeSalary = overtimeSalary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getLevelSubsidies() {
|
|
||||||
return levelSubsidies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLevelSubsidies(BigDecimal levelSubsidies) {
|
|
||||||
this.levelSubsidies = levelSubsidies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getContractSubsidies() {
|
|
||||||
return contractSubsidies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContractSubsidies(BigDecimal contractSubsidies) {
|
|
||||||
this.contractSubsidies = contractSubsidies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getSenioritySalary() {
|
|
||||||
return senioritySalary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSenioritySalary(BigDecimal senioritySalary) {
|
|
||||||
this.senioritySalary = senioritySalary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getSocialSubsidies() {
|
|
||||||
return socialSubsidies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSocialSubsidies(BigDecimal socialSubsidies) {
|
|
||||||
this.socialSubsidies = socialSubsidies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getFullSubsidies() {
|
|
||||||
return fullSubsidies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFullSubsidies(BigDecimal fullSubsidies) {
|
|
||||||
this.fullSubsidies = fullSubsidies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getNightSubsidies() {
|
|
||||||
return nightSubsidies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNightSubsidies(BigDecimal nightSubsidies) {
|
|
||||||
this.nightSubsidies = nightSubsidies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getDinnerSubsidies() {
|
|
||||||
return dinnerSubsidies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDinnerSubsidies(BigDecimal dinnerSubsidies) {
|
|
||||||
this.dinnerSubsidies = dinnerSubsidies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getSubsidyOrBonus() {
|
|
||||||
return subsidyOrBonus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSubsidyOrBonus(BigDecimal subsidyOrBonus) {
|
|
||||||
this.subsidyOrBonus = subsidyOrBonus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getAbsenteeismSalary() {
|
|
||||||
return absenteeismSalary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAbsenteeismSalary(BigDecimal absenteeismSalary) {
|
|
||||||
this.absenteeismSalary = absenteeismSalary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getAbsenteeismSubsidies() {
|
|
||||||
return absenteeismSubsidies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAbsenteeismSubsidies(BigDecimal absenteeismSubsidies) {
|
|
||||||
this.absenteeismSubsidies = absenteeismSubsidies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getMealFee() {
|
|
||||||
return mealFee;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMealFee(BigDecimal mealFee) {
|
|
||||||
this.mealFee = mealFee;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getDeductions() {
|
|
||||||
return deductions;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDeductions(BigDecimal deductions) {
|
|
||||||
this.deductions = deductions;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getSalary() {
|
|
||||||
return salary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSalary(BigDecimal salary) {
|
|
||||||
this.salary = salary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getPayInsurance() {
|
|
||||||
return payInsurance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPayInsurance(BigDecimal payInsurance) {
|
|
||||||
this.payInsurance = payInsurance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getSalaryBeforeTax() {
|
|
||||||
return salaryBeforeTax;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSalaryBeforeTax(BigDecimal salaryBeforeTax) {
|
|
||||||
this.salaryBeforeTax = salaryBeforeTax;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getTotalWages() {
|
|
||||||
return totalWages;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTotalWages(BigDecimal totalWages) {
|
|
||||||
this.totalWages = totalWages;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getAnnualExemptionAmount() {
|
|
||||||
return annualExemptionAmount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAnnualExemptionAmount(BigDecimal annualExemptionAmount) {
|
|
||||||
this.annualExemptionAmount = annualExemptionAmount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getSpecialDeduction() {
|
|
||||||
return specialDeduction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSpecialDeduction(BigDecimal specialDeduction) {
|
|
||||||
this.specialDeduction = specialDeduction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getSlowDownTheDeduction() {
|
|
||||||
return slowDownTheDeduction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSlowDownTheDeduction(BigDecimal slowDownTheDeduction) {
|
|
||||||
this.slowDownTheDeduction = slowDownTheDeduction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getAggregatePersonalIncomeTax() {
|
|
||||||
return aggregatePersonalIncomeTax;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAggregatePersonalIncomeTax(BigDecimal aggregatePersonalIncomeTax) {
|
|
||||||
this.aggregatePersonalIncomeTax = aggregatePersonalIncomeTax;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getTaxPayable() {
|
|
||||||
return taxPayable;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTaxPayable(BigDecimal taxPayable) {
|
|
||||||
this.taxPayable = taxPayable;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getNetPayroll() {
|
|
||||||
return netPayroll;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNetPayroll(BigDecimal netPayroll) {
|
|
||||||
this.netPayroll = netPayroll;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -69,4 +69,6 @@ public interface IRzSalaryDetailService
|
|||||||
public List<RzSalaryDetail> selectSalaryDetailByWbFlag(String wbFlag,Date date);
|
public List<RzSalaryDetail> selectSalaryDetailByWbFlag(String wbFlag,Date date);
|
||||||
|
|
||||||
AjaxResult importSalesCommissions(List<RzSalaryVo> attendanceList);
|
AjaxResult importSalesCommissions(List<RzSalaryVo> attendanceList);
|
||||||
|
|
||||||
|
AjaxResult export(RzSalaryDetail rzSalaryDetail);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,12 +13,11 @@ import com.evo.attendance.processor.PunchTheClockStrategyExchangeProcessor;
|
|||||||
import com.evo.common.constant.Constants;
|
import com.evo.common.constant.Constants;
|
||||||
import com.evo.common.core.domain.AjaxResult;
|
import com.evo.common.core.domain.AjaxResult;
|
||||||
import com.evo.common.core.domain.entity.SysDept;
|
import com.evo.common.core.domain.entity.SysDept;
|
||||||
import com.evo.common.utils.DateUtils;
|
import com.evo.common.utils.*;
|
||||||
import com.evo.common.utils.ParamUtils;
|
import com.evo.common.utils.Collections;
|
||||||
import com.evo.common.utils.SecurityUtils;
|
|
||||||
import com.evo.common.utils.StringUtils;
|
|
||||||
import com.evo.finance.domain.RzSalaryDetail;
|
import com.evo.finance.domain.RzSalaryDetail;
|
||||||
import com.evo.finance.domain.RzSalaryStatistics;
|
import com.evo.finance.domain.RzSalaryStatistics;
|
||||||
|
import com.evo.finance.domain.vo.SalaryVo;
|
||||||
import com.evo.finance.mapper.RzSalaryDetailMapper;
|
import com.evo.finance.mapper.RzSalaryDetailMapper;
|
||||||
import com.evo.finance.mapper.RzSalaryStatisticsMapper;
|
import com.evo.finance.mapper.RzSalaryStatisticsMapper;
|
||||||
import com.evo.finance.processor.SalaryCalculationStrategyExchangeProcessor;
|
import com.evo.finance.processor.SalaryCalculationStrategyExchangeProcessor;
|
||||||
@ -26,7 +25,9 @@ import com.evo.finance.service.IRzSalaryDetailService;
|
|||||||
import com.evo.personnelMatters.domain.RzHoliday;
|
import com.evo.personnelMatters.domain.RzHoliday;
|
||||||
import com.evo.personnelMatters.mapper.RzHolidayMapper;
|
import com.evo.personnelMatters.mapper.RzHolidayMapper;
|
||||||
import com.evo.restaurant.domain.RzRestaurantStatistics;
|
import com.evo.restaurant.domain.RzRestaurantStatistics;
|
||||||
|
import com.evo.restaurant.domain.vo.RzRestaurantStatisticsExportVo;
|
||||||
import com.evo.restaurant.mapper.RzRestaurantStatisticsMapper;
|
import com.evo.restaurant.mapper.RzRestaurantStatisticsMapper;
|
||||||
|
import com.evo.restaurant.utils.ExcelUtilCy;
|
||||||
import com.evo.system.domain.SysStaff;
|
import com.evo.system.domain.SysStaff;
|
||||||
import com.evo.system.domain.SysStaffDetail;
|
import com.evo.system.domain.SysStaffDetail;
|
||||||
import com.evo.system.mapper.SysDeptMapper;
|
import com.evo.system.mapper.SysDeptMapper;
|
||||||
@ -44,10 +45,7 @@ import javax.annotation.Resource;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Calendar;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -659,4 +657,61 @@ public class RzSalaryDetailServiceImpl extends ServiceImpl<RzSalaryDetailMapper,
|
|||||||
}
|
}
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AjaxResult export(RzSalaryDetail rzSalaryDetail) {
|
||||||
|
ExcelUtilCy<SalaryVo> util = new ExcelUtilCy<SalaryVo>(SalaryVo.class);
|
||||||
|
Map<String,List<SalaryVo>> dataList = buildExportData(rzSalaryDetail).stream().collect(Collectors.groupingBy(SalaryVo::getDeptName));
|
||||||
|
List<SalaryVo> allList = new ArrayList<>();
|
||||||
|
//创建各个部门工资数据集合的集合
|
||||||
|
List<List<SalaryVo>> lists = new ArrayList<>();
|
||||||
|
for (String key : dataList.keySet()){
|
||||||
|
allList.addAll(dataList.get(key));
|
||||||
|
lists.add(dataList.get(key));
|
||||||
|
}
|
||||||
|
|
||||||
|
return util.exportExcel(allList,lists,"总表", new ArrayList<>(dataList.keySet()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<SalaryVo> buildExportData(RzSalaryDetail rzSalaryDetail) {
|
||||||
|
// 获取所有部门列表
|
||||||
|
List<SysDept> deptList = deptMapper.selectList(new LambdaQueryWrapper<SysDept>());
|
||||||
|
|
||||||
|
Map<Long, String> deptNameMap = deptList.stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getDeptName));
|
||||||
|
Map<String, String> nameAndDeptIdMap = deptList.stream().filter(d -> d.getParentId().equals(0l)).collect(Collectors.toMap(d->String.valueOf(d.getDeptId()), SysDept::getDeptName));
|
||||||
|
Map<Long, String> companyNameMap = Collections.emptyMap();
|
||||||
|
deptList.stream().filter(d -> !d.getParentId().equals(0l)).forEach(d ->{
|
||||||
|
List<String> parentIdList = Collections.asList(d.getAncestors().split(","));
|
||||||
|
Iterator<String> it = nameAndDeptIdMap.keySet().iterator();
|
||||||
|
while (it.hasNext()){
|
||||||
|
String pid = it.next();
|
||||||
|
if(parentIdList.contains(pid)){
|
||||||
|
companyNameMap.put(d.getDeptId(), nameAndDeptIdMap.get(pid));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
nameAndDeptIdMap.entrySet().stream().forEach(d->{
|
||||||
|
companyNameMap.put(Long.valueOf(d.getKey()), d.getValue());
|
||||||
|
});
|
||||||
|
|
||||||
|
List<SalaryVo> voResult = Collections.emptyList();
|
||||||
|
String month = new SimpleDateFormat("yyyy-MM").format(rzSalaryDetail.getMonth());
|
||||||
|
List<RzSalaryDetail> res_list = selectRzSalaryDetaiList(rzSalaryDetail);
|
||||||
|
for (RzSalaryDetail salaryDetail : res_list) {
|
||||||
|
SalaryVo vo = new SalaryVo();
|
||||||
|
com.evo.common.utils.bean.BeanUtils.copyProperties(salaryDetail, vo);
|
||||||
|
vo.setDeptName(DataUtils.findDefaultValue(companyNameMap.get(salaryDetail.getDeptId()), "实习生"));
|
||||||
|
vo.setDeptName(DataUtils.findDefaultValue(deptNameMap.get(salaryDetail.getDeptId()), "实习生"));
|
||||||
|
vo.setMonth(month);
|
||||||
|
voResult.add(vo);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return voResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<RzSalaryDetail> selectRzSalaryDetaiList(RzSalaryDetail rzSalaryDetail) {
|
||||||
|
return getBaseMapper().selectRzSalaryDetailList(rzSalaryDetail);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user