月报数据到薪资模块实体类转换
月报数据到薪资模块实体类转换
本代码片段演示了如何将来自MonthFinalPaperToSalaryVo对象的属性值映射到SalaryMonthFinalPaper实体类,实现月报数据到薪资模块实体类的转换。
for (MonthFinalPaperToSalaryVo item : data) {
// 迭代遍历集合中的元素
String monthId = item.getMonthId();
SalaryMonthFinalPaper salaryMonthFinalPaper = salaryMonthFinalPaperService.get(monthId);
if (BeanUtil.isNotEmpty(salaryMonthFinalPaper)){
continue;
}else {
// 获取对象的值
String monthDate = item.getMonthDate();
String empNum = item.getEmpNum();
String empName = item.getEmpName();
String compName = item.getCompName();
String deptName = item.getDeptName();
String attGroupName = item.getAttGroupName();
Double overtimeWorkDayTotalNum = item.getOvertimeWorkDayTotalNum();
Double overtimeRestDayTotalNum = item.getOvertimeRestDayTotalNum();
Double overtimeHolidayDayTotalNum = item.getOvertimeHolidayDayTotalNum();
Double overtimeWorkAllowanceNum = item.getOvertimeWorkAllowanceNum();
Double overtimeRestAllowanceNum = item.getOvertimeRestAllowanceNum();
Double overtimeHolidayAllowsanceNum = item.getOvertimeHolidayAllowsanceNum();
Double overtimeWorkSubsidyNum = item.getOvertimeWorkSubsidyNum();
Double overtimeRestSubsidyNum = item.getOvertimeRestSubsidyNum();
Double overtimeHolidaySubsidyNum = item.getOvertimeHolidaySubsidyNum();
Map<String, String> holidayDetails = item.getHolidayDetails();
Short mustAttAllDay = item.getMustAttAllDay();
Short actualAttAllDay = item.getActualAttAllDay();
Double mustAttendanceNum = item.getMustAttendanceNum();
Double actualAttendanceNum = item.getActualAttendanceNum();
Double outAtteNum = item.getOutAtteNum();
Short restDay = item.getRestDay();
Integer lateTime = item.getLateTime();
Integer lateMinutes = item.getLateMinutes();
Integer earlyTime = item.getEarlyTime();
Integer earlyMinutes = item.getEarlyMinutes();
Integer onWorkTime = item.getOnWorkTime();
Integer offWorkCardTime = item.getOffWorkCardTime();
Double minerMinutes = item.getMinerMinutes();
Double evectionDay = item.getEvectionDay();
Short dayToHour = item.getDayToHour();
// 将获取的值插入SalaryMonthFinalPaper
SalaryMonthFinalPaper salaryMonthFinalPaper1 = new SalaryMonthFinalPaper()
.setMonthFinalId(monthId)
.setMonthDate(monthDate)
.setEmpNum(empNum)
.setEmpName(empName)
.setCompName(compName)
.setDeptName(deptName)
.setAtteGroupCode(attGroupName)
.setOvertimeWorkDayTotalNum(overtimeWorkDayTotalNum)
.setOvertimeRestDayTotalNum(overtimeRestDayTotalNum)
.setOvertimeHolidayDayTotalNum(overtimeHolidayDayTotalNum)
.setOvertimeWorkAllowanceNum(overtimeWorkAllowanceNum)
.setOvertimeRestAllowanceNum(overtimeRestAllowanceNum)
.setOvertimeHolidayAllowsanceNum(overtimeHolidayAllowsanceNum)
.setOvertimeWorkSubsidyNum(overtimeWorkSubsidyNum)
.setOvertimeRestSubsidyNum(overtimeRestSubsidyNum)
.setOvertimeHolidaySubsidyNum(overtimeHolidaySubsidyNum)
.setHolidayDetails(holidayDetails)
.setMustAttAllDay(mustAttAllDay)
.setActualAttAllDay(actualAttAllDay)
.setMustAttendanceNum(mustAttendanceNum)
.setActualAttendanceNum(actualAttendanceNum)
.setOutAtteNum(outAtteNum)
.setRestDay(restDay)
.setLateTime(lateTime)
.setLateMinutes(lateMinutes)
.setEarlyTime(earlyTime)
.setEarlyMinutes(earlyMinutes)
.setOnWorkTime(onWorkTime)
.setOffWorkCardTime(offWorkCardTime)
.setMinerMinutes(minerMinutes)
.setEvectionDay(evectionDay)
.setDayToHour(dayToHour);
// 使用salaryMonthFinalPaper1进行后续操作
}
}
代码说明:
- 遍历
MonthFinalPaperToSalaryVo对象集合data。 - 获取
monthId作为SalaryMonthFinalPaper实体类的主键。 - 使用
salaryMonthFinalPaperService.get(monthId)方法查询SalaryMonthFinalPaper实体类是否存在,如果存在则跳过该循环,否则进行数据映射。 - 将
MonthFinalPaperToSalaryVo对象中各个属性的值映射到SalaryMonthFinalPaper实体类的对应属性。 - 使用
salaryMonthFinalPaper1进行后续操作,例如保存到数据库。
优化建议:
- 可以使用
BeanUtil工具类简化属性映射过程,避免手动获取和设置每个属性。 - 可以根据实际需求选择合适的数据库操作方式,例如使用
mybatis-plus进行数据库操作。 - 可以对代码进行错误处理,例如在数据映射过程中捕获异常。
其他:
MonthFinalPaperToSalaryVo和SalaryMonthFinalPaper实体类的属性名应该保持一致,方便映射。- 为了提高代码可读性,建议使用更具描述性的变量名。
- 建议对代码进行单元测试,确保代码逻辑的正确性。
通过以上代码和建议,您可以有效地将月报数据转换到薪资模块实体类,并完成后续操作。
原文地址: https://www.cveoy.top/t/topic/qvHc 著作权归作者所有。请勿转载和采集!