From dc3e89bf905ce95598dd4650508e98e999953cc7 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 23 四月 2026 11:41:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.0' into 1.0

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCruiseCheckInRecordServiceImpl.java |   70 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 1 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 3e289ce..dd85b38 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
@@ -1,6 +1,8 @@
 package com.xiaopeng.maintenance.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xiaopeng.api.feignClient.account.XpOperationsUserClient;
+import com.xiaopeng.api.model.account.XpOperationsUser;
 import com.xiaopeng.api.model.maintenance.XpCruiseCheckInRecord;
 import com.xiaopeng.common.core.web.page.PageInfo;
 import com.xiaopeng.maintenance.mapper.XpCruiseCheckInRecordMapper;
@@ -11,7 +13,11 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Collections;
 import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 @Service
 public class XpCruiseCheckInRecordServiceImpl extends ServiceImpl<XpCruiseCheckInRecordMapper, XpCruiseCheckInRecord> implements IXpCruiseCheckInRecordService {
@@ -19,21 +25,83 @@
     @Resource
     private XpCruiseCheckInRecordMapper xpCruiseCheckInRecordMapper;
 
+    @Resource
+    private XpOperationsUserClient xpOperationsUserClient;
     @Override
     public PageInfo<XpCruiseCheckInRecordVO> pageList(XpCruiseCheckInRecordQuery query) {
+
         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());
+            }
+        });
+
         return pageInfo;
     }
 
     @Override
     public XpCruiseCheckInRecordVO detail(Long id) {
+        XpCruiseCheckInRecordVO vo = xpCruiseCheckInRecordMapper.detail(id);
+        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 xpCruiseCheckInRecordMapper.detail(id);
     }
 
     @Override
     public XpCruiseCheckInRecordVO statistics(XpCruiseCheckInStatisticsQuery query) {
-        return xpCruiseCheckInRecordMapper.selectCruiseCheckInStatistics(query);
+
+        XpCruiseCheckInRecordVO vo = 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
+    public List<XpCruiseCheckInRecordVO> all(XpCruiseCheckInRecordQuery query) {
+
+        List<XpCruiseCheckInRecordVO> list = xpCruiseCheckInRecordMapper.selectCruiseCheckInRecordList(query);
+
+        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());
+            }
+        });
+
+        return list;
+    }
+
+
 }

--
Gitblit v1.7.1