This commit is contained in:
andy 2026-04-16 14:25:05 +08:00
parent 30df7934bb
commit 90622c0e0b
5 changed files with 36 additions and 14 deletions

View File

@ -15,6 +15,8 @@ public class RzSalaryVo {
@Excel(name = "姓名") @Excel(name = "姓名")
private String name; private String name;
@Excel(name = "身份证号")
private String idCard;
@Excel(name = "提成金额") @Excel(name = "提成金额")
private BigDecimal sale; private BigDecimal sale;
@Excel(name = "日期", width = 30, dateFormat = "yyyy-MM") @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM")

View File

@ -3,10 +3,11 @@ package com.evo.finance.domain.vo;
import com.evo.common.annotation.Excel; import com.evo.common.annotation.Excel;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
@Data @Data
public class SalaryVo { public class SalaryVo implements Serializable {
@Excel(name = "序号") @Excel(name = "序号")
private Integer seqNo; private Integer seqNo;

View File

@ -292,7 +292,13 @@ public class RzSalaryDetailServiceImpl extends ServiceImpl<RzSalaryDetailMapper,
hjResult.setPeopleNum(dataList.size()); hjResult.setPeopleNum(dataList.size());
List<SalaryVo> sortList = dataList.stream().sorted((x,y) -> {return x.getDeptName().compareTo(y.getDeptName()); }).collect(Collectors.toList()); List<SalaryVo> sortList = dataList.stream().sorted((x,y) -> {return x.getDeptName().compareTo(y.getDeptName()); }).collect(Collectors.toList());
sortList.add(hjResult); sortList.add(hjResult);
companyLists.add(sortList); List<SalaryVo> ewSalaryVoList = Collections.emptyList();
for (SalaryVo salaryVo : sortList){
SalaryVo allResult = new SalaryVo();
BeanUtils.copyProperties(salaryVo,allResult);
ewSalaryVoList.add(allResult);
}
companyLists.add(ewSalaryVoList);
}else{ }else{
SalaryVo result = sumSalaryVo(dataList); SalaryVo result = sumSalaryVo(dataList);
result.setDeptName(sheetCompanyName+"总计"); result.setDeptName(sheetCompanyName+"总计");
@ -320,13 +326,18 @@ public class RzSalaryDetailServiceImpl extends ServiceImpl<RzSalaryDetailMapper,
// allSheetNames.remove("河北伊特"); // allSheetNames.remove("河北伊特");
companyLists.addAll(deptLists); companyLists.addAll(deptLists);
companyLists.stream().forEach(dataList for (List<SalaryVo> dataList : companyLists){
->{
int x = 1; int x = 1;
for (SalaryVo salaryVo : dataList){ for (SalaryVo salaryVo : dataList){
salaryVo.setSeqNo(x++); salaryVo.setSeqNo(x++);
} }
}); }
// companyLists.stream().forEach(dataList ->{
// int x = 1;
// for (SalaryVo salaryVo : dataList){
// salaryVo.setSeqNo(x++);
// }
// });
return util.exportExcel(allList,companyLists,"总表", allSheetNames, new SimpleDateFormat("yyyy-MM").format(rzSalaryDetail.getMonth())+"月工资", "制表: "+"审核: "+"经理签字: "+"总经理签字:"); return util.exportExcel(allList,companyLists,"总表", allSheetNames, new SimpleDateFormat("yyyy-MM").format(rzSalaryDetail.getMonth())+"月工资", "制表: "+"审核: "+"经理签字: "+"总经理签字:");

View File

@ -335,6 +335,7 @@ public class RzLeaveDetailServiceImpl extends ServiceImpl<RzLeaveDetailMapper, R
beginDate = DateUtils.addDays(beginDate,-1); beginDate = DateUtils.addDays(beginDate,-1);
//记录最终需要增加多少天 //记录最终需要增加多少天
Integer endDays = 0; Integer endDays = 0;
Integer wordDays = holidayDates.size();
//请假类型及不包含法休, 也不包含公休 //请假类型及不包含法休, 也不包含公休
if(ParamUtils.getLeaveTypeNotIncludedFaXiuAndPublicHoliday().contains(flag)){ if(ParamUtils.getLeaveTypeNotIncludedFaXiuAndPublicHoliday().contains(flag)){
//获取结果当中的假期时间 //获取结果当中的假期时间
@ -344,6 +345,7 @@ public class RzLeaveDetailServiceImpl extends ServiceImpl<RzLeaveDetailMapper, R
rzLeaveDetail.setRemarks("不包含法定假日和周末"); rzLeaveDetail.setRemarks("不包含法定假日和周末");
} }
endDays = new BigDecimal(endDays).add(new BigDecimal(holidays.size())).intValue(); endDays = new BigDecimal(endDays).add(new BigDecimal(holidays.size())).intValue();
wordDays = endDays;
} }
}else }else
//请假类型不包含法休 //请假类型不包含法休
@ -355,10 +357,16 @@ public class RzLeaveDetailServiceImpl extends ServiceImpl<RzLeaveDetailMapper, R
rzLeaveDetail.setRemarks("不包含法定假日"); rzLeaveDetail.setRemarks("不包含法定假日");
} }
} }
//因为包含公休, 所以需要剔除公休时长
for (String year : yearList){
List<String> holidays = Collections.findDuplicatesList(ParamUtils.getHoliddayList(Integer.valueOf(year), 2), holidayDates);
//现有工作时长, 需要减去公休时长
wordDays = new BigDecimal(wordDays).subtract(new BigDecimal(holidays.size())).intValue();
}
} }
//计算结束时间和请假时长 此处使用beginDate 而不使用rzLeaveDetail.getLeaveStartTime() 的原因是, 上面获取全部请假日期的时候, 已经处理过时间, 只需要增加公休,法休时间就可以了 //计算结束时间和请假时长 此处使用beginDate 而不使用rzLeaveDetail.getLeaveStartTime() 的原因是, 上面获取全部请假日期的时候, 已经处理过时间, 只需要增加公休,法休时间就可以了
rzLeaveDetail.setLeaveEndTime(DateUtils.addDays(beginDate, endDays)); rzLeaveDetail.setLeaveEndTime(DateUtils.addDays(beginDate, endDays));
rzLeaveDetail.setLeaveHour(new BigDecimal(sysDictData.getDictValue()).multiply(Constants.DAY_WORK_HOUR).intValue()); rzLeaveDetail.setLeaveHour(new BigDecimal(wordDays).multiply(Constants.DAY_WORK_HOUR).intValue());
}else{ }else{
rzLeaveDetail = leaveHour(rzLeaveDetail); rzLeaveDetail = leaveHour(rzLeaveDetail);
// //不需要计算, 过滤节假日啥的, 只过滤周末就好了 // //不需要计算, 过滤节假日啥的, 只过滤周末就好了

View File

@ -758,13 +758,13 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
@Override @Override
public AjaxResult importSalesCommissions(List<RzSalaryVo> attendanceList) { public AjaxResult importSalesCommissions(List<RzSalaryVo> attendanceList) {
// 获取销售部门信息 // 获取销售部门信息
SysDept sysDept = deptMapper.selectOne(new LambdaQueryWrapper<SysDept>() // SysDept sysDept = deptMapper.selectOne(new LambdaQueryWrapper<SysDept>()
.eq(SysDept::getDelFlag, Constants.DELETE_FLAG_0) // .eq(SysDept::getDelFlag, Constants.DELETE_FLAG_0)
.eq(SysDept::getDeptName, "销售部")); // .eq(SysDept::getDeptName, "销售部"));
//
if (sysDept == null) { // if (sysDept == null) {
return AjaxResult.error("销售部门未找到,请确认部门是否存在且未被删除!"); // return AjaxResult.error("销售部门未找到,请确认部门是否存在且未被删除!");
} // }
sysStaffDetailMapper.resetSalesCommission(); sysStaffDetailMapper.resetSalesCommission();
@ -775,7 +775,7 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
// 直接根据姓名和部门ID查询员工信息 // 直接根据姓名和部门ID查询员工信息
SysStaff sysStaff = getBaseMapper().selectOne(new LambdaQueryWrapper<SysStaff>() SysStaff sysStaff = getBaseMapper().selectOne(new LambdaQueryWrapper<SysStaff>()
.eq(SysStaff::getName, rzSalaryVo.getName()) .eq(SysStaff::getName, rzSalaryVo.getName())
.eq(SysStaff::getDeptId, sysDept.getDeptId()) .eq(SysStaff::getIdCard, rzSalaryVo.getIdCard())
.eq(SysStaff::getDelFlag, Constants.DELETE_FLAG_0)); .eq(SysStaff::getDelFlag, Constants.DELETE_FLAG_0));
if (sysStaff != null) { if (sysStaff != null) {