月报数据到薪资模块实体类转换

本代码片段演示了如何将来自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进行后续操作
    }
}

代码说明:

  1. 遍历MonthFinalPaperToSalaryVo对象集合 data
  2. 获取monthId作为SalaryMonthFinalPaper实体类的主键。
  3. 使用salaryMonthFinalPaperService.get(monthId)方法查询SalaryMonthFinalPaper实体类是否存在,如果存在则跳过该循环,否则进行数据映射。
  4. MonthFinalPaperToSalaryVo对象中各个属性的值映射到SalaryMonthFinalPaper实体类的对应属性。
  5. 使用salaryMonthFinalPaper1进行后续操作,例如保存到数据库。

优化建议:

  • 可以使用BeanUtil工具类简化属性映射过程,避免手动获取和设置每个属性。
  • 可以根据实际需求选择合适的数据库操作方式,例如使用mybatis-plus进行数据库操作。
  • 可以对代码进行错误处理,例如在数据映射过程中捕获异常。

其他:

  • MonthFinalPaperToSalaryVoSalaryMonthFinalPaper实体类的属性名应该保持一致,方便映射。
  • 为了提高代码可读性,建议使用更具描述性的变量名。
  • 建议对代码进行单元测试,确保代码逻辑的正确性。

通过以上代码和建议,您可以有效地将月报数据转换到薪资模块实体类,并完成后续操作。

月报数据到薪资模块实体类转换

原文地址: https://www.cveoy.top/t/topic/qvHc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录