From 929c6698f4d7598997fc233e09c39c3bdce9fcf8 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 14 八月 2025 10:23:15 +0800
Subject: [PATCH] 判断合格绝对值的问题
---
performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java | 153 +++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 131 insertions(+), 22 deletions(-)
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java
index 2230285..a0cf3ae 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java
@@ -4,21 +4,21 @@
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
-import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
-import com.yuanchu.mom.dto.*;
+import com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto;
+import com.yuanchu.mom.dto.AuxiliaryOriginalHoursDto;
+import com.yuanchu.mom.dto.AuxiliaryOriginalHoursLookDto;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.AuxiliaryCorrectionHours;
-import com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours;
import com.yuanchu.mom.pojo.Power;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.AuxiliaryOriginalHoursService;
-import com.yuanchu.mom.utils.QueryWrappers;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -26,10 +26,7 @@
import java.io.IOException;
import java.net.URLEncoder;
import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -110,30 +107,78 @@
originalHoursDtoIPage.setSize(page.getSize());
originalHoursDtoIPage.setCurrent(page.getCurrent());
List<AuxiliaryOriginalHoursDto> auxiliaryOriginalHoursDtos = new ArrayList<>();
+ Map<String, AuxiliaryOriginalHoursDto> data1 = new HashMap<>();
+ Map<String, AuxiliaryOriginalHoursDto> data2 = new HashMap<>();
+ Map<String, AuxiliaryOriginalHoursDto> data3 = new HashMap<>();
//浜ч噺宸ユ椂
- List<Map<String, Object>> maps = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids);
+ List<Map<String, Object>> maps = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids,"浜ч噺宸ユ椂");
if (ObjectUtils.isNotEmpty(maps)) {
- auxiliaryOriginalHoursDtos.addAll(getData(maps, "浜ч噺宸ユ椂").values());
+ data1 = getData(maps, "浜ч噺宸ユ椂");
+ auxiliaryOriginalHoursDtos.addAll(data1.values());
}
//杈呭姪宸ユ椂
List<Map<String, Object>> maps1 = auxiliaryWorkingHoursDayMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids);
if (ObjectUtils.isNotEmpty(maps1)) {
- auxiliaryOriginalHoursDtos.addAll(getData(maps1, "杈呭姪宸ユ椂").values());
+ data2 = getData(maps1, "杈呭姪宸ユ椂");
+ auxiliaryOriginalHoursDtos.addAll(data2.values());
}
//鍔犵彮宸ユ椂
- //鎬诲伐鏃�
- List<Map<String, Object>> maps2 = auxiliaryOriginalHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids);
+ List<Map<String, Object>> maps2 = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids,"鍔犵彮宸ユ椂");
if (ObjectUtils.isNotEmpty(maps2)) {
- //浜ч噺宸ユ椂+杈呭姪宸ユ椂閮戒笉涓虹┖
- auxiliaryOriginalHoursDtos.addAll(getData(maps2, "鎬诲伐鏃�").values());
+ data3 = getData(maps2, "鍔犵彮宸ユ椂");
+ auxiliaryOriginalHoursDtos.addAll(data3.values());
}
- //濡傛灉杈呭姪宸ユ椂涓嶄负绌�
- else if (ObjectUtils.isNotEmpty(maps1)) {
- auxiliaryOriginalHoursDtos.addAll(getData(maps1, "鎬诲伐鏃�").values());
- } else if (ObjectUtils.isNotEmpty(maps)) {
- auxiliaryOriginalHoursDtos.addAll(getData(maps, "鎬诲伐鏃�").values());
+ //鎬诲伐鏃�=浜ч噺宸ユ椂+杈呭姪宸ユ椂+鍔犵彮宸ユ椂
+ Map<String, AuxiliaryOriginalHoursDto> data4 = new HashMap<String, AuxiliaryOriginalHoursDto>();
+ if (data1.size()>0) {
+ Map<String, AuxiliaryOriginalHoursDto> data5 = data1;
+ if (data2.size() > 0) {
+ merge(data5,data4,data2);
+ }
+ if (data3.size()>0){
+ merge(data5,data4,data3);
+ }
+ if(data2.size()==0 && data3.size()==0) {
+ for (Map.Entry<String, AuxiliaryOriginalHoursDto> entry : data5.entrySet()) {
+ AuxiliaryOriginalHoursDto dto = entry.getValue();
+ AuxiliaryOriginalHoursDto originalHoursDto = new AuxiliaryOriginalHoursDto();
+ BeanUtils.copyProperties(dto, originalHoursDto);
+ originalHoursDto.setType("鎬诲伐鏃�");
+ data4.put(entry.getKey(), originalHoursDto);
+ }
+ }
+ auxiliaryOriginalHoursDtos.addAll(data4.values());
}
- originalHoursDtoIPage.setRecords(auxiliaryOriginalHoursDtos);
+
+ auxiliaryOriginalHoursDtos = auxiliaryOriginalHoursDtos.stream().sorted(Comparator.comparing(AuxiliaryOriginalHoursDto::getName)).collect(Collectors.toList());
+ // 妫�鏌ユ瘡涓汉鐨勫伐鏃剁被鍨嬶紝琛ュ叏缂哄皯鐨勫伐鏃�
+ Map<String, Set<String>> workHoursMap = new HashMap<>();
+ String[] requiredHours = {"浜ч噺宸ユ椂", "杈呭姪宸ユ椂", "鍔犵彮宸ユ椂", "鎬诲伐鏃�"};
+ for (AuxiliaryOriginalHoursDto dto : auxiliaryOriginalHoursDtos) {
+ workHoursMap.computeIfAbsent(dto.getName(), k -> new HashSet<>()).add(dto.getType());
+ }
+ List<AuxiliaryOriginalHoursDto> result = auxiliaryOriginalHoursDtos;
+ for (String name1 : workHoursMap.keySet()) {
+ Set<String> 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<String> order = Arrays.asList("浜ч噺宸ユ椂", "杈呭姪宸ユ椂", "鍔犵彮宸ユ椂", "鎬诲伐鏃�");
+ Comparator<AuxiliaryOriginalHoursDto> 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.setRecords(result);
+ originalHoursDtoIPage.setTotal(result.size());
map.put("body", originalHoursDtoIPage);
return map;
}
@@ -192,7 +237,6 @@
.eq(AuxiliaryCorrectionHours::getType, auxiliaryOriginalHoursDto.getType())
.eq(AuxiliaryCorrectionHours::getMonth, auxiliaryOriginalHoursDto.getMonth()));
auxiliaryOriginalHoursDto.setAuxiliaryCorrectionHours(auxiliaryCorrectionHours);
- dtoMap.put(name, auxiliaryOriginalHoursDto);
}
AuxiliaryCorrectionHours auxiliaryCorrectionHours = auxiliaryOriginalHoursDto.getAuxiliaryCorrectionHours();
switch (objectMap.get("month").toString().substring(8, 10)) {
@@ -479,7 +523,72 @@
);
DecimalFormat df = new DecimalFormat("#.####"); // 璁惧畾鍥涗綅灏忔暟
auxiliaryOriginalHoursDto.setTotal(Double.parseDouble(df.format(auxiliaryOriginalHoursDto.getTotal())));
+
+ dtoMap.put(name, auxiliaryOriginalHoursDto);
}
return dtoMap;
}
+
+ //鍚堝苟
+ private void merge(Map<String, AuxiliaryOriginalHoursDto> data5,Map<String, AuxiliaryOriginalHoursDto> data4,Map<String, AuxiliaryOriginalHoursDto> data2) {
+ for (Map.Entry<String, AuxiliaryOriginalHoursDto> entry : data2.entrySet()) {
+ String key = entry.getKey();
+ AuxiliaryOriginalHoursDto value = entry.getValue();
+ if (data5.containsKey(key)) {
+ for (Map.Entry<String, AuxiliaryOriginalHoursDto> 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 {
+ AuxiliaryOriginalHoursDto hoursDto = data5.get(dtoEntry.getKey());
+ AuxiliaryOriginalHoursDto dto = new AuxiliaryOriginalHoursDto();
+ BeanUtils.copyProperties(hoursDto, dto);
+ dto.setType("鎬诲伐鏃�");
+ data4.put(dtoEntry.getKey(), dto);
+ }*/
+ }
+ } else {
+ value.setType("鎬诲伐鏃�");
+ data4.put(key, value);
+ }
+ }
+ }
}
--
Gitblit v1.9.3