From fe97e3191aaa5f5db104541946f6ac7937e46e15 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 30 四月 2026 16:10:17 +0800
Subject: [PATCH] 人员考勤统计调整&原材料下单导出检验项详情
---
performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java | 99 +++++++------------------------------------------
1 files changed, 15 insertions(+), 84 deletions(-)
diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java b/performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java
index 4b003f0..64228e2 100644
--- a/performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java
+++ b/performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java
@@ -47,6 +47,7 @@
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
+import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
@@ -66,9 +67,6 @@
@Slf4j
@Service
public class PerformanceShiftServiceImpl extends ServiceImpl<PerformanceShiftMapper, PerformanceShift> implements PerformanceShiftService {
-
- @Autowired
- private ISysDictTypeService dictTypeService;
@Autowired
private StaffAttendanceTrackingRecordService trackingRecordService;
@@ -103,11 +101,11 @@
public void performanceShiftAdd(PerformanceShiftAddDto performanceShiftAddDto) {
//1.鏌ヨ鎵�閫夊懆娆℃椂闂磋寖鍥村唴宸叉帓鐝殑鏁版嵁
List<PerformanceShift> shiftList = baseMapper.selectList(Wrappers.<PerformanceShift>lambdaQuery()
- .between(ObjectUtils.allNotNull(performanceShiftAddDto.getStartWeek(), performanceShiftAddDto.getEndWeek()),
- PerformanceShift::getWorkTime, performanceShiftAddDto.getStartWeek(), performanceShiftAddDto.getEndWeek())
+ .between(ObjectUtils.allNotNull(performanceShiftAddDto.getStartTime(), performanceShiftAddDto.getEndTime()),
+ PerformanceShift::getWorkTime, performanceShiftAddDto.getStartTime(), performanceShiftAddDto.getEndTime())
.in(!performanceShiftAddDto.getUserIdList().isEmpty(), PerformanceShift::getUserId, performanceShiftAddDto.getUserIdList())
);
- List<LocalDateTime> timeList = getLocalDateTimesBetween(performanceShiftAddDto.getStartWeek(), performanceShiftAddDto.getEndWeek());
+ List<LocalDateTime> timeList = getLocalDateTimesBetween(performanceShiftAddDto.getStartTime(), performanceShiftAddDto.getEndTime());
//澶勭悊閫変腑浜哄憳
List<PerformanceShift> newShiftList = new ArrayList<>();
performanceShiftAddDto.getUserIdList().forEach(userId->{
@@ -158,14 +156,24 @@
List<PerformanceShiftMapDto> mapIPage = baseMapper.performanceShift(firstDayOfMonth,lastDayOfMonth, userName, laboratory);
Map<Integer, List<PerformanceShiftMapDto>> groupByUserId = mapIPage.stream().collect(Collectors.groupingBy(PerformanceShiftMapDto::getUserId));
List<PerformanceShiftMapDto> newRecords = new ArrayList<>();
+ List<LocalDateTime> timeList = getLocalDateTimesBetween(LocalDateTime.of(firstDayOfMonth, LocalTime.MIN), LocalDateTime.of(lastDayOfMonth, LocalTime.MIN));
groupByUserId.keySet().forEach(key->{
PerformanceShiftMapDto shiftMapDto = new PerformanceShiftMapDto();
List<PerformanceShiftMapDto> shiftMapDtos = groupByUserId.get(key);
+ List<PerformanceShiftMapDto> newShiftMapDtos = new ArrayList<>();
+ timeList.forEach(t->{
+ PerformanceShiftMapDto mapDto = shiftMapDtos.stream().filter(s -> t.isEqual(s.getWorkTime())).findFirst().orElse(null);
+ if(ObjectUtils.isNotEmpty(mapDto)){
+ newShiftMapDtos.add(mapDto);
+ }else{
+ newShiftMapDtos.add(null);
+ }
+ });
//缁熻鍚勭彮娆″ぉ鏁�
Map<String, Long> countShift = countShift(shiftMapDtos);
shiftMapDto.setMonthlyAttendance(countShift);
shiftMapDto.setMonthlyAttendanceStr(formateMap(countShift));
- shiftMapDto.setList(shiftMapDtos);
+ shiftMapDto.setList(newShiftMapDtos);
shiftMapDto.setUserName(shiftMapDtos.isEmpty()?"":shiftMapDtos.get(0).getUserName());
shiftMapDto.setUserId(key);
@@ -602,82 +610,5 @@
default:
return "鏈煡";
}
- }
-
- /**
- * 杩斿洖琛ㄥご
- * <p>
- * 澶栧眰List浠h〃琛屽唴灞� List浠h〃鍒� 鐩稿悓鐨勫垪鏁版嵁浼氳涓诲姩鍚堝苟
- * 鏋勯�犲弻鍒楄〃澶�
- *
- * @return List<List < String>>
- */
- private static List<List<String>> getYearHeader(String year, List<SysDictData> enums) {
- List<List<String>> line = new ArrayList<>();
- line.add(Arrays.asList("鑰冨嫟姹囨��", "搴忓彿", "搴忓彿"));
- line.add(Arrays.asList("鑰冨嫟姹囨��", "宸ュ彿", "宸ュ彿"));
- line.add(Arrays.asList("鑰冨嫟姹囨��", "濮撳悕", "濮撳悕"));
- line.add(Arrays.asList("鍑哄嫟璇︽儏", year, "鍑哄嫟"));
- // 骞� header
- for (SysDictData anEnum : enums) {
- if (!anEnum.getDictValue().equals("5")) {
- line.add(Arrays.asList("鑰冨嫟姹囨��", year, anEnum.getDictLabel()));
- }
- }
- // 鏈坔eader
- for (int i = 1; i < 13; i++) {
- line.add(Arrays.asList("鍑哄嫟璇︽儏", i + " 鏈�", "鍑哄嫟"));
- for (SysDictData anEnum : enums) {
- if (!anEnum.getDictValue().equals("5")) {
- line.add(Arrays.asList("鍑哄嫟璇︽儏", i + " 鏈�", anEnum.getDictLabel()));
- }
- }
- }
- return line;
- }
-
- private static List<List<String>> getMonthHeader(LocalDateTime localDateTimeYear, List<SysDictData> enums) {
- String year = localDateTimeYear.getYear() + " 骞翠汉鍛樼彮娆�";
- List<List<String>> line = new ArrayList<>();
- line.add(Arrays.asList(year, "搴忓彿", "搴忓彿", "搴忓彿"));
- line.add(Arrays.asList(year, "濮撳悕", "濮撳悕", "濮撳悕"));
- line.add(Arrays.asList(year, "瀹為獙瀹�", "瀹為獙瀹�", "瀹為獙瀹�"));
- line.add(Arrays.asList(year, localDateTimeYear.getYear() + "", localDateTimeYear.getYear() + "", "鍑哄嫟"));
- line.add(Arrays.asList(year, localDateTimeYear.getYear() + "", localDateTimeYear.getYear() + "", enums.get(3).getDictLabel()));
- line.add(Arrays.asList(year, "骞�", "骞�", enums.get(4).getDictLabel()));
- line.add(Arrays.asList(year, localDateTimeYear.getMonthValue() + "", localDateTimeYear.getMonthValue() + "", enums.get(0).getDictLabel()));
- line.add(Arrays.asList(year, "鏈�", "鏈�", enums.get(1).getDictLabel()));
- line.add(Arrays.asList(year, "", "", enums.get(2).getDictLabel()));
- line.add(Arrays.asList(year, "鍛ㄦ", "鏄熸湡", "鍑哄樊"));
- LocalDate firstDayOfMonth = localDateTimeYear.toLocalDate().withDayOfMonth(1);
- LocalDate lastDayOfMonth = localDateTimeYear.toLocalDate().with(TemporalAdjusters.lastDayOfMonth());
- List<LocalDateTime> timeList = getLocalDateTimesBetween(firstDayOfMonth.atStartOfDay(), lastDayOfMonth.atStartOfDay());
- timeList.forEach(i -> {
- int dayOfYear = i.getDayOfMonth();
- Date from = Date.from(i.atZone(ZoneId.systemDefault()).toInstant());
- String weekDay = getWeekDay(i.getDayOfWeek().getValue());
- line.add(Arrays.asList(year, DateUtil.weekOfYear(DateUtil.offsetDay(from, 1)) + "", weekDay, dayOfYear + ""));
- });
- return line;
- }
-
- public List<List<Object>> dataRequiredForProcessingIntoExcelMonth(List<PerformanceShiftMapDto> list, List<SysDictData> enums) {
- List<List<Object>> data = new ArrayList<>();
- for (int i = 0; i < list.size(); i++) {
- List<Object> excelRowList = new ArrayList<>();
- excelRowList.add(i + 1);
- excelRowList.add(list.get(i).getUserName());
- excelRowList.add(list.get(i).getDepartment());
- excelRowList.add(list.get(i).getMonthlyAttendance().get("totalAttendance"));
- excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(3).getDictLabel())); // 浼�
- excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(4).getDictLabel())); // 鍋�
- excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(0).getDictLabel())); // 鏃�
- excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(1).getDictLabel())); // 涓�
- excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(2).getDictLabel())); // 澶�
- excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(6).getDictLabel())); // 宸�
-
- data.add(excelRowList);
- }
- return data;
}
}
--
Gitblit v1.9.3