|
|
|
@ -184,7 +184,8 @@ public class PaySalaryReportServiceImpl implements IPaySalaryReportService {
|
|
|
|
PaySalaryReportBo bo = BeanUtil.toBean(entity, PaySalaryReportBo.class);
|
|
|
|
PaySalaryReportBo bo = BeanUtil.toBean(entity, PaySalaryReportBo.class);
|
|
|
|
UpdateWrapper<PaySalaryReport> upw =new UpdateWrapper<>();
|
|
|
|
UpdateWrapper<PaySalaryReport> upw =new UpdateWrapper<>();
|
|
|
|
upw.set(bo.getEmpQuery() != null,"emp_query",bo.getEmpQuery())
|
|
|
|
upw.set(bo.getEmpQuery() != null,"emp_query",bo.getEmpQuery())
|
|
|
|
.eq("year",entity.getYear()).eq("month",entity.getMonth());
|
|
|
|
.eq("year",entity.getYear()).eq("month",entity.getMonth())
|
|
|
|
|
|
|
|
.eq("tenant_id",entity.getTenantId());
|
|
|
|
return baseMapper.update(entity,upw) > 0;
|
|
|
|
return baseMapper.update(entity,upw) > 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -412,7 +413,7 @@ public class PaySalaryReportServiceImpl implements IPaySalaryReportService {
|
|
|
|
sgrSalaryReport.setActuallyHours(attendanceReport.getAttendanceHours());
|
|
|
|
sgrSalaryReport.setActuallyHours(attendanceReport.getAttendanceHours());
|
|
|
|
sgrSalaryReport.setOvertimeWorkHours(attendanceReport.getOvertimeHours());
|
|
|
|
sgrSalaryReport.setOvertimeWorkHours(attendanceReport.getOvertimeHours());
|
|
|
|
sgrSalaryReport.setNote(attendanceReport.getRemark());
|
|
|
|
sgrSalaryReport.setNote(attendanceReport.getRemark());
|
|
|
|
} else if (!employeeInfo.getPayCalcType().equals(PayCalcType.TYPE5.getValue())) {
|
|
|
|
} else if (!employeeInfo.getPayCalcType().equals(PayCalcType.TYPE5.getValue())) {//包月计算类型不需要应出勤
|
|
|
|
failedNums++;
|
|
|
|
failedNums++;
|
|
|
|
failedMsg.append("<br/>未找到:" + employeeInfo.getName() + "的应出勤信息");
|
|
|
|
failedMsg.append("<br/>未找到:" + employeeInfo.getName() + "的应出勤信息");
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
@ -482,7 +483,7 @@ public class PaySalaryReportServiceImpl implements IPaySalaryReportService {
|
|
|
|
bhEmployee.setTenantId(tenantId);
|
|
|
|
bhEmployee.setTenantId(tenantId);
|
|
|
|
bhEmployee.setEmpName(empName);
|
|
|
|
bhEmployee.setEmpName(empName);
|
|
|
|
bhEmployee.setIntime(yearMonth);
|
|
|
|
bhEmployee.setIntime(yearMonth);
|
|
|
|
List<PayBaohuoEmployee> bhEmployees = sgrBaohuoEmployeeMapper.selectSgrBaohuoEmployeeList1(bhEmployee);
|
|
|
|
List<PayBaohuoEmployee> bhEmployees = sgrBaohuoEmployeeMapper.selectPayBaohuoEmployeeList1(bhEmployee);
|
|
|
|
for (PayBaohuoEmployee bhe : bhEmployees) {
|
|
|
|
for (PayBaohuoEmployee bhe : bhEmployees) {
|
|
|
|
if (bhe.getHelper() == 0) {
|
|
|
|
if (bhe.getHelper() == 0) {
|
|
|
|
baohuogongzi = baohuogongzi.add(bhe.getAmount());
|
|
|
|
baohuogongzi = baohuogongzi.add(bhe.getAmount());
|
|
|
|
@ -497,7 +498,7 @@ public class PaySalaryReportServiceImpl implements IPaySalaryReportService {
|
|
|
|
List<ButieMoneyAndTypes> butieMoneyAndTypesList = new ArrayList<>();
|
|
|
|
List<ButieMoneyAndTypes> butieMoneyAndTypesList = new ArrayList<>();
|
|
|
|
for (PayButieVo butie : sgrButies) {
|
|
|
|
for (PayButieVo butie : sgrButies) {
|
|
|
|
ButieMoneyAndTypes butieMoneyAndType = new ButieMoneyAndTypes();
|
|
|
|
ButieMoneyAndTypes butieMoneyAndType = new ButieMoneyAndTypes();
|
|
|
|
BigDecimal money = sgrButieEmplyeeMapper.getMoneyByInfo(employeeInfo.getId(), butie.getId(), date);
|
|
|
|
BigDecimal money = sgrButieEmplyeeMapper.getMoneyByInfo(butie.getId(),employeeInfo.getId(), date);
|
|
|
|
butieMoneyAndType.setBuTieName(butie.getName());
|
|
|
|
butieMoneyAndType.setBuTieName(butie.getName());
|
|
|
|
//补贴扣减全勤和津贴需要按比例发放
|
|
|
|
//补贴扣减全勤和津贴需要按比例发放
|
|
|
|
/* if(money.compareTo(BigDecimal.ZERO)!=0){
|
|
|
|
/* if(money.compareTo(BigDecimal.ZERO)!=0){
|
|
|
|
@ -535,7 +536,12 @@ public class PaySalaryReportServiceImpl implements IPaySalaryReportService {
|
|
|
|
BigDecimal payPerHour;
|
|
|
|
BigDecimal payPerHour;
|
|
|
|
if (!payCalcType.equals(PayCalcType.TYPE5.getValue())) {
|
|
|
|
if (!payCalcType.equals(PayCalcType.TYPE5.getValue())) {
|
|
|
|
//出勤工时=实际出勤天数*每日小时数+实际出勤小时数
|
|
|
|
//出勤工时=实际出勤天数*每日小时数+实际出勤小时数
|
|
|
|
|
|
|
|
if(sgrSalaryReport.getActuallyHours()!=null){
|
|
|
|
chuqingongshi = new BigDecimal(sgrSalaryReport.getActuallyDays()).multiply(employeeInfo.getHoursPerDay()).add(sgrSalaryReport.getActuallyHours());
|
|
|
|
chuqingongshi = new BigDecimal(sgrSalaryReport.getActuallyDays()).multiply(employeeInfo.getHoursPerDay()).add(sgrSalaryReport.getActuallyHours());
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
chuqingongshi = new BigDecimal(sgrSalaryReport.getActuallyDays()).multiply(employeeInfo.getHoursPerDay());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
sgrSalaryReport.setDayWorkHours(chuqingongshi);
|
|
|
|
sgrSalaryReport.setDayWorkHours(chuqingongshi);
|
|
|
|
BigDecimal rigonggongzi = BigDecimal.ZERO;
|
|
|
|
BigDecimal rigonggongzi = BigDecimal.ZERO;
|
|
|
|
@ -551,7 +557,9 @@ public class PaySalaryReportServiceImpl implements IPaySalaryReportService {
|
|
|
|
//日工工资=基本工资/每日应出勤工时*日工工时
|
|
|
|
//日工工资=基本工资/每日应出勤工时*日工工时
|
|
|
|
payPerHour = sgrSalaryReport.getBasicSalary().divide(employeeInfo.getHoursPerDay(), 4, BigDecimal.ROUND_HALF_UP);
|
|
|
|
payPerHour = sgrSalaryReport.getBasicSalary().divide(employeeInfo.getHoursPerDay(), 4, BigDecimal.ROUND_HALF_UP);
|
|
|
|
rigonggongzi = payPerHour.multiply(rigonghours);
|
|
|
|
rigonggongzi = payPerHour.multiply(rigonghours);
|
|
|
|
|
|
|
|
if(sgrSalaryReport.getOvertimeWorkHours()!=null){
|
|
|
|
jiabangongzi = payPerHour.multiply(new BigDecimal("1.3")).multiply(sgrSalaryReport.getOvertimeWorkHours());
|
|
|
|
jiabangongzi = payPerHour.multiply(new BigDecimal("1.3")).multiply(sgrSalaryReport.getOvertimeWorkHours());
|
|
|
|
|
|
|
|
}
|
|
|
|
rigongbanggongGZ = payPerHour.multiply(rigongbanggong);
|
|
|
|
rigongbanggongGZ = payPerHour.multiply(rigongbanggong);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case "1": //工资计算类型:月薪(日工工资+包活工资)
|
|
|
|
case "1": //工资计算类型:月薪(日工工资+包活工资)
|
|
|
|
@ -621,11 +629,10 @@ public class PaySalaryReportServiceImpl implements IPaySalaryReportService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (failedNums > 0) {
|
|
|
|
if (failedNums > 0) {
|
|
|
|
failedMsg.insert(0, "生成成功:" + successNums + "条,生成失败:" + failedNums + "条,错误如下:");
|
|
|
|
failedMsg.insert(0, "生成成功:" + successNums + "条,生成失败:" + failedNums + "条,错误如下:");
|
|
|
|
return R.fail(failedMsg.toString());
|
|
|
|
return R.ok(failedMsg.toString());
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
successMsg.insert(0, "恭喜您,数据已全部生成成功!共 " + successNums + " 条,数据如下:");
|
|
|
|
successMsg.insert(0, "恭喜您,数据已全部生成成功!共 " + successNums + " 条,数据如下:");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return R.ok(successMsg.toString());
|
|
|
|
return R.ok(successMsg.toString());
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|