From df036edff1c901a4a4f52c41fae67d4a91976c2b Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 23 四月 2026 16:43:08 +0800
Subject: [PATCH] [feat] 巡游打卡统计
---
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCruiseCheckInRecordServiceImpl.java | 69 +++++++++++++++++++---------------
1 files changed, 38 insertions(+), 31 deletions(-)
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCruiseCheckInRecordServiceImpl.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCruiseCheckInRecordServiceImpl.java
index dd85b38..9782f16 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCruiseCheckInRecordServiceImpl.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCruiseCheckInRecordServiceImpl.java
@@ -10,12 +10,15 @@
import com.xiaopeng.maintenance.vo.XpCruiseCheckInRecordQuery;
import com.xiaopeng.maintenance.vo.XpCruiseCheckInRecordVO;
import com.xiaopeng.maintenance.vo.XpCruiseCheckInStatisticsQuery;
+import com.xiaopeng.maintenance.vo.XpCruiseCheckInStatisticsVO;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -32,19 +35,27 @@
PageInfo<XpCruiseCheckInRecordVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
List<XpCruiseCheckInRecordVO> list = xpCruiseCheckInRecordMapper.selectCruiseCheckInRecordList(pageInfo, query);
- pageInfo.setRecords(list);
List<Long> ids = list.stream().map(XpCruiseCheckInRecordVO::getOperationsUserId).collect(Collectors.toList());
List<XpOperationsUser> xpOperationsUsers = xpOperationsUserClient.listByIds(ids).getData();
Map<Long, XpOperationsUser> userMap = xpOperationsUsers.stream().collect(Collectors.toMap(XpOperationsUser::getId, Function.identity()));
- list.forEach(record -> {
- XpOperationsUser user = userMap.get(record.getOperationsUserId());
- if (user != null) {
- record.setOperationsUserId(user.getId());
- record.setOperationsUserName(user.getNickName());
- record.setPhoneNumber(user.getPhoneNumber());
- }
- });
+ list = list.stream().map(record -> {
+ XpOperationsUser user = userMap.get(record.getOperationsUserId());
+ if (user == null) return null;
+ record.setOperationsUserId(user.getId());
+ record.setOperationsUserName(user.getNickName());
+ record.setPhoneNumber(user.getPhoneNumber());
+ if (StringUtils.isNotBlank(query.getOperationsUserName()) && !record.getOperationsUserName().contains(query.getOperationsUserName())) {
+ return null;
+ }
+ if (StringUtils.isNotBlank(query.getPhoneNumber()) && !record.getPhoneNumber().contains(query.getPhoneNumber())) {
+ return null;
+ }
+ return record;
+ })
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
+ pageInfo.setRecords(list);
return pageInfo;
}
@@ -65,22 +76,10 @@
}
@Override
- public XpCruiseCheckInRecordVO statistics(XpCruiseCheckInStatisticsQuery query) {
+ public XpCruiseCheckInStatisticsVO statistics(XpCruiseCheckInStatisticsQuery query) {
- XpCruiseCheckInRecordVO vo = xpCruiseCheckInRecordMapper.selectCruiseCheckInStatistics(query);
+ return xpCruiseCheckInRecordMapper.selectCruiseCheckInStatistics(query);
- List<Long> ids = Collections.singletonList(vo.getOperationsUserId());
- List<XpOperationsUser> xpOperationsUsers = xpOperationsUserClient.listByIds(ids).getData();
- Map<Long, XpOperationsUser> userMap = xpOperationsUsers.stream().collect(Collectors.toMap(XpOperationsUser::getId, Function.identity()));
-
- XpOperationsUser user = userMap.get(vo.getOperationsUserId());
- if (user != null) {
- vo.setOperationsUserId(user.getId());
- vo.setOperationsUserName(user.getNickName());
- vo.setPhoneNumber(user.getPhoneNumber());
- }
-
- return vo;
}
@Override
@@ -91,14 +90,22 @@
List<Long> ids = list.stream().map(XpCruiseCheckInRecordVO::getOperationsUserId).collect(Collectors.toList());
List<XpOperationsUser> xpOperationsUsers = xpOperationsUserClient.listByIds(ids).getData();
Map<Long, XpOperationsUser> userMap = xpOperationsUsers.stream().collect(Collectors.toMap(XpOperationsUser::getId, Function.identity()));
- list.forEach(record -> {
- XpOperationsUser user = userMap.get(record.getOperationsUserId());
- if (user != null) {
- record.setOperationsUserId(user.getId());
- record.setOperationsUserName(user.getNickName());
- record.setPhoneNumber(user.getPhoneNumber());
- }
- });
+ list = list.stream().map(record -> {
+ XpOperationsUser user = userMap.get(record.getOperationsUserId());
+ if (user == null) return null;
+ record.setOperationsUserId(user.getId());
+ record.setOperationsUserName(user.getNickName());
+ record.setPhoneNumber(user.getPhoneNumber());
+ if (StringUtils.isNotBlank(query.getOperationsUserName()) && !record.getOperationsUserName().contains(query.getOperationsUserName())) {
+ return null;
+ }
+ if (StringUtils.isNotBlank(query.getPhoneNumber()) && !record.getPhoneNumber().contains(query.getPhoneNumber())) {
+ return null;
+ }
+ return record;
+ })
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
return list;
}
--
Gitblit v1.7.1