package com.ruoyi.performance.service.impl; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.entity.User; import com.ruoyi.common.utils.EasyExcelUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.performance.dto.AuxiliaryCorrectionHoursDto; import com.ruoyi.performance.dto.AuxiliaryOriginalHoursDto; import com.ruoyi.performance.dto.AuxiliaryOriginalHoursLookDto; import com.ruoyi.performance.mapper.AuxiliaryCorrectionHoursMapper; import com.ruoyi.performance.mapper.AuxiliaryOriginalHoursMapper; import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper; import com.ruoyi.performance.mapper.AuxiliaryWorkingHoursDayMapper; import com.ruoyi.performance.pojo.AuxiliaryCorrectionHours; import com.ruoyi.performance.service.AuxiliaryOriginalHoursService; import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.mapper.UserMapper; import org.apache.commons.math3.analysis.function.Power; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.text.DecimalFormat; import java.util.*; import java.util.stream.Collectors; @Service public class AuxiliaryOriginalHoursServiceImpl implements AuxiliaryOriginalHoursService { @Resource UserMapper userMapper; @Resource SysUserRoleMapper userRoleMapper; @Resource SysRoleMapper roleMapper; @Resource AuxiliaryOriginalHoursMapper auxiliaryOriginalHoursMapper; @Resource AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper; @Resource AuxiliaryWorkingHoursDayMapper auxiliaryWorkingHoursDayMapper; @Resource AuxiliaryCorrectionHoursMapper auxiliaryCorrectionHoursMapper; @Override public IPage selectAuxiliaryOriginalHours(Page page, AuxiliaryOriginalHoursLookDto auxiliaryOriginalHoursLookDto) { List ids = new ArrayList<>(); String departLims = auxiliaryOriginalHoursLookDto.getDepartLims(); auxiliaryOriginalHoursLookDto.setDepartLims(null); String name = auxiliaryOriginalHoursLookDto.getName(); auxiliaryOriginalHoursLookDto.setName(null); if (ObjectUtils.isNotEmpty(departLims)) { //先模糊查询出来id List ides = auxiliaryCorrectionHoursMapper.selDepartLimsByName(departLims); for (Integer ide : ides) { List users = userMapper.selectList(Wrappers.lambdaQuery() .like(User::getDepartLimsId, ide) .eq(User::getStatus, 0)); if (ObjectUtils.isNotEmpty(users)) { ids.addAll(users.stream().map(User::getId).distinct().collect(Collectors.toList())); break; } } } if (ObjectUtils.isNotEmpty(name)) { List users = userMapper.selectList(new LambdaQueryWrapper().like(User::getName, name)); if(!users.isEmpty()) { // 不为空 进行过滤 if(CollectionUtils.isNotEmpty(ids)) { List collect = users.stream().map(User::getId).distinct().collect(Collectors.toList()); ids = ids.stream().filter(item -> collect.contains(item)).collect(Collectors.toList()); // ids 为空就赋值 -1 if(CollectionUtils.isEmpty(ids)) { ids.add(-1); } }else { // 为空 进行新增 ids.addAll(users.stream().map(User::getId).distinct().collect(Collectors.toList())); } } } if (ids.isEmpty()) { ids = null; } IPage originalHoursDtoIPage = new Page<>(); originalHoursDtoIPage.setSize(page.getSize()); originalHoursDtoIPage.setCurrent(page.getCurrent()); List auxiliaryOriginalHoursDtos = new ArrayList<>(); Map data1 = new HashMap<>(); Map data2 = new HashMap<>(); Map data3 = new HashMap<>(); //产量工时 List> maps = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids,"产量工时"); if (ObjectUtils.isNotEmpty(maps)) { data1 = getData(maps, "产量工时"); auxiliaryOriginalHoursDtos.addAll(data1.values()); } //辅助工时 List> maps1 = auxiliaryWorkingHoursDayMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids); if (ObjectUtils.isNotEmpty(maps1)) { data2 = getData(maps1, "辅助工时"); auxiliaryOriginalHoursDtos.addAll(data2.values()); } //加班工时 List> maps2 = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids,"加班工时"); if (ObjectUtils.isNotEmpty(maps2)) { data3 = getData(maps2, "加班工时"); auxiliaryOriginalHoursDtos.addAll(data3.values()); } //总工时=产量工时+辅助工时+加班工时 Map data4 = new HashMap(); if (!data1.isEmpty()) { Map data5 = data1; data4 = mergeTotal(data5,data2,data3); auxiliaryOriginalHoursDtos.addAll(data4.values()); } auxiliaryOriginalHoursDtos = auxiliaryOriginalHoursDtos.stream().sorted(Comparator.comparing(AuxiliaryOriginalHoursDto::getName)).collect(Collectors.toList()); // 检查每个人的工时类型,补全缺少的工时 Map> workHoursMap = new HashMap<>(); String[] requiredHours = {"产量工时", "辅助工时", "加班工时", "总工时"}; for (AuxiliaryOriginalHoursDto dto : auxiliaryOriginalHoursDtos) { workHoursMap.computeIfAbsent(dto.getName(), k -> new HashSet<>()).add(dto.getType()); } List result = auxiliaryOriginalHoursDtos; for (String name1 : workHoursMap.keySet()) { Set workTypes = workHoursMap.get(name1); for (String requiredHour : requiredHours) { if (!workTypes.contains(requiredHour)) { AuxiliaryOriginalHoursDto auxiliaryOriginalHoursDto = new AuxiliaryOriginalHoursDto(); auxiliaryOriginalHoursDto.setName(name1); auxiliaryOriginalHoursDto.setAuxiliaryCorrectionHours(null); auxiliaryOriginalHoursDto.setType(requiredHour); auxiliaryOriginalHoursDto.setMonth(auxiliaryOriginalHoursLookDto.getMonth()); result.add(auxiliaryOriginalHoursDto); } } } List order = Arrays.asList("产量工时", "辅助工时", "加班工时", "总工时"); Comparator comparator = Comparator.comparingInt(dto -> { String type = dto.getType(); return order.indexOf(type) == -1 ? order.size() : order.indexOf(type); }); result = result.stream().sorted(Comparator.comparing(AuxiliaryOriginalHoursDto::getName).thenComparing(comparator)).collect(Collectors.toList()); originalHoursDtoIPage.setTotal(result.size()); if(page.getSize()>0){ int i = (int) page.getSize() * ((int) page.getCurrent() - 1); if(result.size() - i < page.getSize()) { result = result.subList(i, result.size()); } else { result = result.subList(i, (int) page.getSize() + i); } } originalHoursDtoIPage.setRecords(result); return originalHoursDtoIPage; } //导出原始工时 @Override public void exportWorkingHours(Page page,String month, String name, String departLims, HttpServletResponse response) throws IOException { List auxiliaryOriginalHoursDtos = new ArrayList(); //查询原始工时(使用分页查询) AuxiliaryOriginalHoursLookDto auxiliaryOriginalHoursLookDto = new AuxiliaryOriginalHoursLookDto(); if (ObjectUtils.isNotEmpty(month)) { auxiliaryOriginalHoursLookDto.setMonth(month); } if (ObjectUtils.isNotEmpty(name)) { auxiliaryOriginalHoursLookDto.setName(name); } if (ObjectUtils.isNotEmpty(departLims)) { auxiliaryOriginalHoursLookDto.setDepartLims(departLims); } IPage body = (IPage) selectAuxiliaryOriginalHours(new Page(-1, -1), auxiliaryOriginalHoursLookDto); auxiliaryOriginalHoursDtos = body.getRecords(); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("UTF-8"); // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 String fileName = URLEncoder.encode("工时统计导出", "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); try { // 新建ExcelWriter ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()) .registerWriteHandler(EasyExcelUtils.getStyleStrategy()) .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); WriteSheet mainSheet = EasyExcel.writerSheet(0, "原始工时导出").head(AuxiliaryOriginalHoursDto.class).build(); excelWriter.write(auxiliaryOriginalHoursDtos, mainSheet); // 关闭流 excelWriter.finish(); } catch (IOException e) { throw new RuntimeException("导出失败"); } } private Map getData(List> objectMaps, String type) { Map dtoMap = new HashMap<>(); for (Map objectMap : objectMaps) { String name = objectMap.get("name").toString(); String month = objectMap.get("month").toString().substring(0, 7); AuxiliaryOriginalHoursDto auxiliaryOriginalHoursDto = dtoMap.get(name); if (auxiliaryOriginalHoursDto == null) { auxiliaryOriginalHoursDto = new AuxiliaryOriginalHoursDto(); auxiliaryOriginalHoursDto.setName(name); auxiliaryOriginalHoursDto.setType(type); auxiliaryOriginalHoursDto.setMonth(month); // 查询这个人这个月是否有修正的产量工时 AuxiliaryCorrectionHours auxiliaryCorrectionHours = auxiliaryCorrectionHoursMapper.selectOne(Wrappers.lambdaQuery() .eq(AuxiliaryCorrectionHours::getNameUser, userMapper.selectOne(Wrappers.lambdaQuery().eq(User::getName, auxiliaryOriginalHoursDto.getName())).getId()) .eq(AuxiliaryCorrectionHours::getType, auxiliaryOriginalHoursDto.getType()) .eq(AuxiliaryCorrectionHours::getMonth, auxiliaryOriginalHoursDto.getMonth())); auxiliaryOriginalHoursDto.setAuxiliaryCorrectionHours(auxiliaryCorrectionHours); } AuxiliaryCorrectionHours auxiliaryCorrectionHours = auxiliaryOriginalHoursDto.getAuxiliaryCorrectionHours(); switch (objectMap.get("month").toString().substring(8, 10)) { case "01": auxiliaryOriginalHoursDto.setOneHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getOneHours().compareTo(auxiliaryOriginalHoursDto.getOneHours()) != 0) { auxiliaryOriginalHoursDto.setOne(1); } } break; case "02": auxiliaryOriginalHoursDto.setTwoHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwoHours().compareTo(auxiliaryOriginalHoursDto.getTwoHours()) != 0) { auxiliaryOriginalHoursDto.setTwo(1); } } break; case "03": auxiliaryOriginalHoursDto.setThreeHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getThreeHours().compareTo(auxiliaryOriginalHoursDto.getThreeHours()) != 0) { auxiliaryOriginalHoursDto.setThree(1); } } break; case "04": auxiliaryOriginalHoursDto.setFourHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getFourHours().compareTo(auxiliaryOriginalHoursDto.getFourHours()) != 0) { auxiliaryOriginalHoursDto.setFour(1); } } break; case "05": auxiliaryOriginalHoursDto.setFiveHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getFiveHours().compareTo(auxiliaryOriginalHoursDto.getFiveHours()) != 0) { auxiliaryOriginalHoursDto.setFive(1); } } break; case "06": auxiliaryOriginalHoursDto.setSixHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getSixHours().compareTo(auxiliaryOriginalHoursDto.getSixHours()) != 0) { auxiliaryOriginalHoursDto.setSix(1); } } break; case "07": auxiliaryOriginalHoursDto.setSevenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getSevenHours().compareTo(auxiliaryOriginalHoursDto.getSevenHours()) != 0) { auxiliaryOriginalHoursDto.setSeven(1); } } break; case "08": auxiliaryOriginalHoursDto.setEightHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getEightHours().compareTo(auxiliaryOriginalHoursDto.getEightHours()) != 0) { auxiliaryOriginalHoursDto.setEight(1); } } break; case "09": auxiliaryOriginalHoursDto.setNineHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getNineHours().compareTo(auxiliaryOriginalHoursDto.getNineHours()) != 0) { auxiliaryOriginalHoursDto.setNine(1); } } break; case "10": auxiliaryOriginalHoursDto.setTenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTenHours().compareTo(auxiliaryOriginalHoursDto.getTenHours()) != 0) { auxiliaryOriginalHoursDto.setTen(1); } } break; case "11": auxiliaryOriginalHoursDto.setElevenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getElevenHours().compareTo(auxiliaryOriginalHoursDto.getElevenHours()) != 0) { auxiliaryOriginalHoursDto.setEleven(1); } } break; case "12": auxiliaryOriginalHoursDto.setTwelveHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwelveHours().compareTo(auxiliaryOriginalHoursDto.getTwelveHours()) != 0) { auxiliaryOriginalHoursDto.setTwelve(1); } } break; case "13": auxiliaryOriginalHoursDto.setThirteenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getThirteenHours().compareTo(auxiliaryOriginalHoursDto.getThirteenHours()) != 0) { auxiliaryOriginalHoursDto.setThirteen(1); } } break; case "14": auxiliaryOriginalHoursDto.setFourteenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getFourteenHours().compareTo(auxiliaryOriginalHoursDto.getFourteenHours()) != 0) { auxiliaryOriginalHoursDto.setFourteen(1); } } break; case "15": auxiliaryOriginalHoursDto.setFifteenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getFifteenHours().compareTo(auxiliaryOriginalHoursDto.getFifteenHours()) != 0) { auxiliaryOriginalHoursDto.setFifteen(1); } } break; case "16": auxiliaryOriginalHoursDto.setSixteenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getSixteenHours().compareTo(auxiliaryOriginalHoursDto.getSixteenHours()) != 0) { auxiliaryOriginalHoursDto.setSixteen(1); } } break; case "17": auxiliaryOriginalHoursDto.setSeventeenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getSeventeenHours().compareTo(auxiliaryOriginalHoursDto.getSeventeenHours()) != 0) { auxiliaryOriginalHoursDto.setSeventeen(1); } } break; case "18": auxiliaryOriginalHoursDto.setEighteenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getEighteenHours().compareTo(auxiliaryOriginalHoursDto.getEighteenHours()) != 0) { auxiliaryOriginalHoursDto.setEighteen(1); } } break; case "19": auxiliaryOriginalHoursDto.setNineteenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getNineteenHours().compareTo(auxiliaryOriginalHoursDto.getNineteenHours()) != 0) { auxiliaryOriginalHoursDto.setNineteen(1); } } break; case "20": auxiliaryOriginalHoursDto.setTwentyHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyHours().compareTo(auxiliaryOriginalHoursDto.getTwentyHours()) != 0) { auxiliaryOriginalHoursDto.setTwenty(1); } } break; case "21": auxiliaryOriginalHoursDto.setTwentyOneHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyOneHours().compareTo(auxiliaryOriginalHoursDto.getTwentyOneHours()) != 0) { auxiliaryOriginalHoursDto.setTwentyOne(1); } } break; case "22": auxiliaryOriginalHoursDto.setTwentyTwoHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyTwoHours().compareTo(auxiliaryOriginalHoursDto.getTwentyTwoHours()) != 0) { auxiliaryOriginalHoursDto.setTwentyTwo(1); } } break; case "23": auxiliaryOriginalHoursDto.setTwentyThreeHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyThreeHours().compareTo(auxiliaryOriginalHoursDto.getTwentyThreeHours()) != 0) { auxiliaryOriginalHoursDto.setTwentyThree(1); } } break; case "24": auxiliaryOriginalHoursDto.setTwentyFourHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyFourHours().compareTo(auxiliaryOriginalHoursDto.getTwentyFourHours()) != 0) { auxiliaryOriginalHoursDto.setTwentyFour(1); } } break; case "25": auxiliaryOriginalHoursDto.setTwentyFiveHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyFiveHours().compareTo(auxiliaryOriginalHoursDto.getTwentyFiveHours()) != 0) { auxiliaryOriginalHoursDto.setTwentyFive(1); } } break; case "26": auxiliaryOriginalHoursDto.setTwentySixHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentySixHours().compareTo(auxiliaryOriginalHoursDto.getTwentySixHours()) != 0) { auxiliaryOriginalHoursDto.setTwentySix(1); } } break; case "27": auxiliaryOriginalHoursDto.setTwentySevenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentySevenHours().compareTo(auxiliaryOriginalHoursDto.getTwentySevenHours()) != 0) { auxiliaryOriginalHoursDto.setTwentySeven(1); } } break; case "28": auxiliaryOriginalHoursDto.setTwentyEightHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyEightHours().compareTo(auxiliaryOriginalHoursDto.getTwentyEightHours()) != 0) { auxiliaryOriginalHoursDto.setTwentyEight(1); } } break; case "29": auxiliaryOriginalHoursDto.setTwentyNineHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyNineHours().compareTo(auxiliaryOriginalHoursDto.getTwentyNineHours()) != 0) { auxiliaryOriginalHoursDto.setTwentyNine(1); } } break; case "30": auxiliaryOriginalHoursDto.setThirtyHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getThirtyHours().compareTo(auxiliaryOriginalHoursDto.getThirtyHours()) != 0) { auxiliaryOriginalHoursDto.setThirty(1); } } break; case "31": auxiliaryOriginalHoursDto.setThirtyOneHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getThirtyOneHours().compareTo(auxiliaryOriginalHoursDto.getThirtyOneHours()) != 0) { auxiliaryOriginalHoursDto.setThirtyOne(1); } } break; } auxiliaryOriginalHoursDto.setTotal((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getOneHours()) ? auxiliaryOriginalHoursDto.getOneHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwoHours()) ? auxiliaryOriginalHoursDto.getTwoHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThreeHours()) ? auxiliaryOriginalHoursDto.getThreeHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourHours()) ? auxiliaryOriginalHoursDto.getFourHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFiveHours()) ? auxiliaryOriginalHoursDto.getFiveHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixHours()) ? auxiliaryOriginalHoursDto.getSixHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSevenHours()) ? auxiliaryOriginalHoursDto.getSevenHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEightHours()) ? auxiliaryOriginalHoursDto.getEightHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineHours()) ? auxiliaryOriginalHoursDto.getNineHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTenHours()) ? auxiliaryOriginalHoursDto.getTenHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getElevenHours()) ? auxiliaryOriginalHoursDto.getElevenHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirteenHours()) ? auxiliaryOriginalHoursDto.getThirteenHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourteenHours()) ? auxiliaryOriginalHoursDto.getFourteenHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFifteenHours()) ? auxiliaryOriginalHoursDto.getFifteenHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixteenHours()) ? auxiliaryOriginalHoursDto.getSixteenHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSeventeenHours()) ? auxiliaryOriginalHoursDto.getSeventeenHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEighteenHours()) ? auxiliaryOriginalHoursDto.getEighteenHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineteenHours()) ? auxiliaryOriginalHoursDto.getNineteenHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyHours()) ? auxiliaryOriginalHoursDto.getTwentyHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyOneHours()) ? auxiliaryOriginalHoursDto.getTwentyOneHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyTwoHours()) ? auxiliaryOriginalHoursDto.getTwentyTwoHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyThreeHours()) ? auxiliaryOriginalHoursDto.getTwentyThreeHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFourHours()) ? auxiliaryOriginalHoursDto.getTwentyFourHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFiveHours()) ? auxiliaryOriginalHoursDto.getTwentyFiveHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySixHours()) ? auxiliaryOriginalHoursDto.getTwentySixHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySevenHours()) ? auxiliaryOriginalHoursDto.getTwentySevenHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyEightHours()) ? auxiliaryOriginalHoursDto.getTwentyEightHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyNineHours()) ? auxiliaryOriginalHoursDto.getTwentyNineHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyHours()) ? auxiliaryOriginalHoursDto.getThirtyHours() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyOneHours()) ? auxiliaryOriginalHoursDto.getThirtyOneHours() : 0) ); DecimalFormat df = new DecimalFormat("#.####"); // 设定四位小数 auxiliaryOriginalHoursDto.setTotal(Double.parseDouble(df.format(auxiliaryOriginalHoursDto.getTotal()))); dtoMap.put(name, auxiliaryOriginalHoursDto); } return dtoMap; } /** * 合并总工时 * @param outputWorkHourMap 产量工时 * @param auxiliaryWorkHourMap 辅助工时 * @param overtimeWorkHourMap 加班工时 */ private Map mergeTotal(Map outputWorkHourMap, Map auxiliaryWorkHourMap, Map overtimeWorkHourMap){ Map totalMap = new HashMap<>(); for (String userNameKey : outputWorkHourMap.keySet()) { //产出工时记录 AuxiliaryOriginalHoursDto outputWorkHourDTO = outputWorkHourMap.get(userNameKey); //总工时记录 AuxiliaryOriginalHoursDto totalDTO = new AuxiliaryOriginalHoursDto(); BeanUtils.copyProperties(outputWorkHourDTO, totalDTO); totalDTO.setType("总工时"); //当前人员的辅助工时记录 AuxiliaryOriginalHoursDto auxiliaryHoursDTO = new AuxiliaryOriginalHoursDto(); if(!Objects.isNull(auxiliaryWorkHourMap.get(userNameKey))){ auxiliaryHoursDTO = auxiliaryWorkHourMap.get(userNameKey); } //当前人员的加班工时记录 AuxiliaryOriginalHoursDto overtimeHoursDTO = new AuxiliaryOriginalHoursDto(); if(!Objects.isNull(overtimeWorkHourMap.get(userNameKey))){ overtimeHoursDTO = overtimeWorkHourMap.get(userNameKey); } totalDTO.setOneHours(calcWorkHourTotal(outputWorkHourDTO.getOneHours(),auxiliaryHoursDTO.getOneHours(),overtimeHoursDTO.getOneHours())); totalDTO.setTwoHours(calcWorkHourTotal(outputWorkHourDTO.getTwoHours(),auxiliaryHoursDTO.getTwoHours(),overtimeHoursDTO.getTwoHours())); totalDTO.setThreeHours(calcWorkHourTotal(outputWorkHourDTO.getThreeHours(),auxiliaryHoursDTO.getThreeHours(),overtimeHoursDTO.getThreeHours())); totalDTO.setFourHours(calcWorkHourTotal(outputWorkHourDTO.getFourHours(),auxiliaryHoursDTO.getFourHours(),overtimeHoursDTO.getFourHours())); totalDTO.setFiveHours(calcWorkHourTotal(outputWorkHourDTO.getFiveHours(),auxiliaryHoursDTO.getFiveHours(),overtimeHoursDTO.getFiveHours())); totalDTO.setSixHours(calcWorkHourTotal(outputWorkHourDTO.getSixHours(),auxiliaryHoursDTO.getSixHours(),overtimeHoursDTO.getSixHours())); totalDTO.setSevenHours(calcWorkHourTotal(outputWorkHourDTO.getSevenHours(),auxiliaryHoursDTO.getSevenHours(),overtimeHoursDTO.getSevenHours())); totalDTO.setEightHours(calcWorkHourTotal(outputWorkHourDTO.getEightHours(),auxiliaryHoursDTO.getEightHours(),overtimeHoursDTO.getEightHours())); totalDTO.setNineHours(calcWorkHourTotal(outputWorkHourDTO.getNineHours(),auxiliaryHoursDTO.getNineHours(),overtimeHoursDTO.getNineHours())); totalDTO.setTenHours(calcWorkHourTotal(outputWorkHourDTO.getTenHours(),auxiliaryHoursDTO.getTenHours(),overtimeHoursDTO.getTenHours())); totalDTO.setElevenHours(calcWorkHourTotal(outputWorkHourDTO.getElevenHours(),auxiliaryHoursDTO.getElevenHours(),overtimeHoursDTO.getElevenHours())); totalDTO.setTwelveHours(calcWorkHourTotal(outputWorkHourDTO.getTwelveHours(),auxiliaryHoursDTO.getTwelveHours(),overtimeHoursDTO.getTwelveHours())); totalDTO.setThirteenHours(calcWorkHourTotal(outputWorkHourDTO.getThirteenHours(),auxiliaryHoursDTO.getThirteenHours(),overtimeHoursDTO.getThirteenHours())); totalDTO.setFourteenHours(calcWorkHourTotal(outputWorkHourDTO.getFourteenHours(),auxiliaryHoursDTO.getFourteenHours(),overtimeHoursDTO.getFourteenHours())); totalDTO.setFifteenHours(calcWorkHourTotal(outputWorkHourDTO.getFifteenHours(),auxiliaryHoursDTO.getFifteenHours(),overtimeHoursDTO.getFifteenHours())); totalDTO.setSixteenHours(calcWorkHourTotal(outputWorkHourDTO.getSixteenHours(),auxiliaryHoursDTO.getSixteenHours(),overtimeHoursDTO.getSixteenHours())); totalDTO.setSeventeenHours(calcWorkHourTotal(outputWorkHourDTO.getSeventeenHours(),auxiliaryHoursDTO.getSeventeenHours(),overtimeHoursDTO.getSeventeenHours())); totalDTO.setEighteenHours(calcWorkHourTotal(outputWorkHourDTO.getEighteenHours(),auxiliaryHoursDTO.getEighteenHours(),overtimeHoursDTO.getEighteenHours())); totalDTO.setNineteenHours(calcWorkHourTotal(outputWorkHourDTO.getNineteenHours(),auxiliaryHoursDTO.getNineteenHours(),overtimeHoursDTO.getNineteenHours())); totalDTO.setTwentyHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyHours(),auxiliaryHoursDTO.getTwentyHours(),overtimeHoursDTO.getTwentyHours())); totalDTO.setTwentyOneHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyOneHours(),auxiliaryHoursDTO.getTwentyOneHours(),overtimeHoursDTO.getTwentyOneHours())); totalDTO.setTwentyTwoHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyTwoHours(),auxiliaryHoursDTO.getTwentyTwoHours(),overtimeHoursDTO.getTwentyTwoHours())); totalDTO.setTwentyThreeHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyThreeHours(),auxiliaryHoursDTO.getTwentyThreeHours(),overtimeHoursDTO.getTwentyThreeHours())); totalDTO.setTwentyFourHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyFourHours(),auxiliaryHoursDTO.getTwentyFourHours(),overtimeHoursDTO.getTwentyFourHours())); totalDTO.setTwentyFiveHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyFiveHours(),auxiliaryHoursDTO.getTwentyFiveHours(),overtimeHoursDTO.getTwentyFiveHours())); totalDTO.setTwentySixHours(calcWorkHourTotal(outputWorkHourDTO.getTwentySixHours(),auxiliaryHoursDTO.getTwentySixHours(),overtimeHoursDTO.getTwentySixHours())); totalDTO.setTwentySevenHours(calcWorkHourTotal(outputWorkHourDTO.getTwentySevenHours(),auxiliaryHoursDTO.getTwentySevenHours(),overtimeHoursDTO.getTwentySevenHours())); totalDTO.setTwentyEightHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyEightHours(),auxiliaryHoursDTO.getTwentyEightHours(),overtimeHoursDTO.getTwentyEightHours())); totalDTO.setTwentyNineHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyNineHours(),auxiliaryHoursDTO.getTwentyNineHours(),overtimeHoursDTO.getTwentyNineHours())); totalDTO.setThirtyHours(calcWorkHourTotal(outputWorkHourDTO.getThirtyHours(),auxiliaryHoursDTO.getThirtyHours(),overtimeHoursDTO.getThirtyHours())); totalDTO.setThirtyOneHours(calcWorkHourTotal(outputWorkHourDTO.getThirtyOneHours(),auxiliaryHoursDTO.getThirtyOneHours(),overtimeHoursDTO.getThirtyOneHours())); totalDTO.setTotal(calcWorkHourTotal(outputWorkHourDTO.getTotal(),auxiliaryHoursDTO.getTotal(),overtimeHoursDTO.getTotal())); totalMap.put(userNameKey,totalDTO); } return totalMap; } /** * 计算总工时 * @param outputWorkHour 产出工时 * @param auxiliaryWorkHour 辅助工时 * @param overtimeWorkHour 加班工时 * @return */ private double calcWorkHourTotal(Double outputWorkHour,Double auxiliaryWorkHour,Double overtimeWorkHour){ if(Objects.isNull(outputWorkHour)){ outputWorkHour = 0.0; } if(Objects.isNull(auxiliaryWorkHour)){ auxiliaryWorkHour = 0.0; } if(Objects.isNull(overtimeWorkHour)){ overtimeWorkHour = 0.0; } return outputWorkHour + auxiliaryWorkHour + overtimeWorkHour; } //合并 private void merge(Map data5,Map data4,Map data2) { for (Map.Entry entry : data2.entrySet()) { String key = entry.getKey(); AuxiliaryOriginalHoursDto value = entry.getValue(); if (data5.containsKey(key)) { for (Map.Entry dtoEntry : data5.entrySet()) { if (dtoEntry.getKey().equals(key)) { AuxiliaryOriginalHoursDto auxiliaryOriginalHoursDto = new AuxiliaryOriginalHoursDto(); AuxiliaryOriginalHoursDto hoursDto = data5.get(key); BeanUtils.copyProperties(hoursDto, auxiliaryOriginalHoursDto); auxiliaryOriginalHoursDto.setType("总工时"); auxiliaryOriginalHoursDto.setOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getOneHours()) ? auxiliaryOriginalHoursDto.getOneHours() : 0) + (ObjectUtils.isNotEmpty(value.getOneHours()) ? value.getOneHours() : 0)); auxiliaryOriginalHoursDto.setTwoHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwoHours()) ? auxiliaryOriginalHoursDto.getTwoHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwoHours()) ? value.getTwoHours() : 0)); auxiliaryOriginalHoursDto.setThreeHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThreeHours()) ? auxiliaryOriginalHoursDto.getThreeHours() : 0) + (ObjectUtils.isNotEmpty(value.getThreeHours()) ? value.getThreeHours() : 0)); auxiliaryOriginalHoursDto.setFourHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourHours()) ? auxiliaryOriginalHoursDto.getFourHours() : 0) + (ObjectUtils.isNotEmpty(value.getFourHours()) ? value.getFourHours() : 0)); auxiliaryOriginalHoursDto.setFiveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFiveHours()) ? auxiliaryOriginalHoursDto.getFiveHours() : 0) + (ObjectUtils.isNotEmpty(value.getFiveHours()) ? value.getFiveHours() : 0)); auxiliaryOriginalHoursDto.setSixHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixHours()) ? auxiliaryOriginalHoursDto.getSixHours() : 0) + (ObjectUtils.isNotEmpty(value.getSixHours()) ? value.getSixHours() : 0)); auxiliaryOriginalHoursDto.setSevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSevenHours()) ? auxiliaryOriginalHoursDto.getSevenHours() : 0) + (ObjectUtils.isNotEmpty(value.getSevenHours()) ? value.getSevenHours() : 0)); auxiliaryOriginalHoursDto.setEightHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEightHours()) ? auxiliaryOriginalHoursDto.getEightHours() : 0) + (ObjectUtils.isNotEmpty(value.getEightHours()) ? value.getEightHours() : 0)); auxiliaryOriginalHoursDto.setNineHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineHours()) ? auxiliaryOriginalHoursDto.getNineHours() : 0) + (ObjectUtils.isNotEmpty(value.getNineHours()) ? value.getNineHours() : 0)); auxiliaryOriginalHoursDto.setTenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTenHours()) ? auxiliaryOriginalHoursDto.getTenHours() : 0) + (ObjectUtils.isNotEmpty(value.getTenHours()) ? value.getTenHours() : 0)); auxiliaryOriginalHoursDto.setElevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getElevenHours()) ? auxiliaryOriginalHoursDto.getElevenHours() : 0) + (ObjectUtils.isNotEmpty(value.getElevenHours()) ? value.getElevenHours() : 0)); auxiliaryOriginalHoursDto.setTwelveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwelveHours()) ? value.getTwelveHours() : 0)); auxiliaryOriginalHoursDto.setThirteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirteenHours()) ? auxiliaryOriginalHoursDto.getThirteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getThirteenHours()) ? value.getThirteenHours() : 0)); auxiliaryOriginalHoursDto.setFourteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourteenHours()) ? auxiliaryOriginalHoursDto.getFourteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getFourteenHours()) ? value.getFourteenHours() : 0)); auxiliaryOriginalHoursDto.setFifteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFifteenHours()) ? auxiliaryOriginalHoursDto.getFifteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getFifteenHours()) ? value.getFifteenHours() : 0)); auxiliaryOriginalHoursDto.setSixteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixteenHours()) ? auxiliaryOriginalHoursDto.getSixteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getSixteenHours()) ? value.getSixteenHours() : 0)); auxiliaryOriginalHoursDto.setSeventeenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSeventeenHours()) ? auxiliaryOriginalHoursDto.getSeventeenHours() : 0) + (ObjectUtils.isNotEmpty(value.getSeventeenHours()) ? value.getSeventeenHours() : 0)); auxiliaryOriginalHoursDto.setEighteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEighteenHours()) ? auxiliaryOriginalHoursDto.getEighteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getEighteenHours()) ? value.getEighteenHours() : 0)); auxiliaryOriginalHoursDto.setNineteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineteenHours()) ? auxiliaryOriginalHoursDto.getNineteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getNineteenHours()) ? value.getNineteenHours() : 0)); auxiliaryOriginalHoursDto.setTwelveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwelveHours()) ? value.getTwelveHours() : 0)); auxiliaryOriginalHoursDto.setTwentyOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyOneHours()) ? auxiliaryOriginalHoursDto.getTwentyOneHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyOneHours()) ? value.getTwentyOneHours() : 0)); auxiliaryOriginalHoursDto.setTwentyTwoHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyTwoHours()) ? auxiliaryOriginalHoursDto.getTwentyTwoHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyTwoHours()) ? value.getTwentyTwoHours() : 0)); auxiliaryOriginalHoursDto.setTwentyThreeHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyThreeHours()) ? auxiliaryOriginalHoursDto.getTwentyThreeHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyThreeHours()) ? value.getTwentyThreeHours() : 0)); double v = ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFourHours()) ? auxiliaryOriginalHoursDto.getTwentyFourHours() : 0; double v1 = ObjectUtils.isNotEmpty(value.getTwentyFourHours()) ? value.getTwentyFourHours() : 0; double v2 = v + v1; auxiliaryOriginalHoursDto.setTwentyFourHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFourHours()) ? auxiliaryOriginalHoursDto.getTwentyFourHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyFourHours()) ? value.getTwentyFourHours() : 0)); auxiliaryOriginalHoursDto.setTwentyFiveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFiveHours()) ? auxiliaryOriginalHoursDto.getTwentyFiveHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyFiveHours()) ? value.getTwentyFiveHours() : 0)); auxiliaryOriginalHoursDto.setTwentySixHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySixHours()) ? auxiliaryOriginalHoursDto.getTwentySixHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentySixHours()) ? value.getTwentySixHours() : 0)); auxiliaryOriginalHoursDto.setTwentySevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySevenHours()) ? auxiliaryOriginalHoursDto.getTwentySevenHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentySevenHours()) ? value.getTwentySevenHours() : 0)); auxiliaryOriginalHoursDto.setTwentyEightHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyEightHours()) ? auxiliaryOriginalHoursDto.getTwentyEightHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyEightHours()) ? value.getTwentyEightHours() : 0)); auxiliaryOriginalHoursDto.setTwentyNineHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyNineHours()) ? auxiliaryOriginalHoursDto.getTwentyNineHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyNineHours()) ? value.getTwentyNineHours() : 0)); auxiliaryOriginalHoursDto.setThirtyHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyHours()) ? auxiliaryOriginalHoursDto.getThirtyHours() : 0) + (ObjectUtils.isNotEmpty(value.getThirtyHours()) ? value.getThirtyHours() : 0)); auxiliaryOriginalHoursDto.setThirtyOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyOneHours()) ? auxiliaryOriginalHoursDto.getThirtyOneHours() : 0) + (ObjectUtils.isNotEmpty(value.getThirtyOneHours()) ? value.getThirtyOneHours() : 0)); auxiliaryOriginalHoursDto.setTotal((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTotal()) ? auxiliaryOriginalHoursDto.getTotal() : 0) + (ObjectUtils.isNotEmpty(value.getTotal()) ? value.getTotal() : 0)); data4.put(key, auxiliaryOriginalHoursDto); } } } else { value.setType("总工时"); data4.put(key, value); } } } }