From d341f0b509ba534418d9970a1a3541334bee0eba Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 28 二月 2026 17:15:08 +0800
Subject: [PATCH] 修改排班统计查询bug
---
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpSchedulingDetailServiceImpl.java | 32 ++++++++++++++++++++------------
1 files changed, 20 insertions(+), 12 deletions(-)
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpSchedulingDetailServiceImpl.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpSchedulingDetailServiceImpl.java
index 46bcbc9..ccc3a2c 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpSchedulingDetailServiceImpl.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpSchedulingDetailServiceImpl.java
@@ -136,9 +136,11 @@
public PageInfo<SchedulingDetailDto> pageList(SchedulingDetailVo query) {
PageInfo<SchedulingDetailDto> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
List<SchedulingDetailDto> schedulingDetailDtos = this.baseMapper.pageList(pageInfo, query.getMonth());
- LocalDate parse1 = LocalDate.parse(query.getMonth(), DateTimeFormatter.ofPattern("yyyy-MM"));
+ LocalDate parse1 = LocalDate.parse(query.getMonth() + "-01", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
//找出月份的最大天
int dayOfMonth = parse1.with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
+ List<XpShift> xpShifts = xpShiftService.list(new QueryWrapper<XpShift>().eq("is_deleted", 0).orderByAsc("id"));
+
for (SchedulingDetailDto schedulingDetailDto : schedulingDetailDtos) {
String days = schedulingDetailDto.getDays();
if (StringUtils.isNotBlank(days)) {
@@ -157,14 +159,20 @@
}
setEnglishDay(i, schedulingDetailDto, map1);
}
- long allDay = list.stream().filter(s -> s.contains("全天")).count();
- long morning = list.stream().filter(s -> s.contains("早")).count();
- long midDay = list.stream().filter(s -> s.contains("中")).count();
- long evening = list.stream().filter(s -> s.contains("晚")).count();
- schedulingDetailDto.setAllDay(allDay);
- schedulingDetailDto.setMorning(morning);
- schedulingDetailDto.setMidDay(midDay);
- schedulingDetailDto.setEvening(evening);
+
+ List<Map<String, String>> maps = new ArrayList<>();
+ for (XpShift xpShift : xpShifts) {
+ String shiftName = xpShift.getShiftName();
+ long allDay = list.stream().filter(s -> s.contains(shiftName)).count();
+ Map<String, String> map = new HashMap<>();
+ map.put("shiftId", xpShift.getId().toString());
+ map.put("shiftName", shiftName);
+ map.put("shiftColor", xpShift.getShiftColor());
+ map.put("count", allDay + "");
+ maps.add(map);
+
+ }
+ schedulingDetailDto.setSubtotal(maps);
}
}
pageInfo.setRecords(schedulingDetailDtos);
@@ -401,7 +409,7 @@
xpScheduling.setCreateBy(userId.toString());
xpScheduling.setUpdateBy(userId.toString());
}
- xpScheduling.setSchedulingDate(LocalDate.parse(month, DateTimeFormatter.ofPattern("yyyy-MM")));
+ xpScheduling.setSchedulingDate(LocalDate.parse(month + "-01", DateTimeFormatter.ofPattern("yyyy-MM-dd")));
xpScheduling.setCommitUserId(userId);
xpSchedulingService.saveOrUpdate(xpScheduling);
@@ -550,13 +558,13 @@
List<SchedulingDetailDto> schedulingDetailDtos = this.baseMapper.pageList(pageInfo, month);
List<ExportSchedulingDetailDto> exportSchedulingDetailDtos = new ArrayList<>();
//获取月份的最大天数
- LocalDate parse1 = LocalDate.parse(month, DateTimeFormatter.ofPattern("yyyy-MM"));
+ LocalDate parse1 = LocalDate.parse(month + "-01", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
int dayOfMonth = parse1.with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
//构建表头第二行数据
ExportSchedulingDetailDto exportSchedulingDetailDto = new ExportSchedulingDetailDto();
exportSchedulingDetailDto.setFleetName("");
for (int i = 1; i <= dayOfMonth; i++) {
- LocalDate parse = LocalDate.parse(month + "-" + i, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+ LocalDate parse = LocalDate.parse(month + "-" + String.format("%02d", i), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String week = "";
switch (parse.getDayOfWeek()){
case MONDAY:
--
Gitblit v1.7.1