From d8dcefcc986c0d9f737b160ae68df86baa360441 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 23 四月 2026 19:58:50 +0800
Subject: [PATCH] [feat] stage

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCruiseCheckInRecordServiceImpl.java |   36 ++++++++++++++++++++++++++++++++----
 1 files changed, 32 insertions(+), 4 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 9782f16..48128ed 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
@@ -3,9 +3,12 @@
 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.XpCheckLocation;
 import com.xiaopeng.api.model.maintenance.XpCruiseCheckInRecord;
+import com.xiaopeng.api.vo.account.XpOperationsUserProfileVO;
 import com.xiaopeng.common.core.web.page.PageInfo;
 import com.xiaopeng.maintenance.mapper.XpCruiseCheckInRecordMapper;
+import com.xiaopeng.maintenance.service.IXpCheckLocationService;
 import com.xiaopeng.maintenance.service.IXpCruiseCheckInRecordService;
 import com.xiaopeng.maintenance.vo.XpCruiseCheckInRecordQuery;
 import com.xiaopeng.maintenance.vo.XpCruiseCheckInRecordVO;
@@ -13,8 +16,10 @@
 import com.xiaopeng.maintenance.vo.XpCruiseCheckInStatisticsVO;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import java.time.LocalDate;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -60,25 +65,48 @@
         return pageInfo;
     }
 
+    IXpCheckLocationService checkLocationService;
+
     @Override
     public XpCruiseCheckInRecordVO detail(Long id) {
         XpCruiseCheckInRecordVO vo = xpCruiseCheckInRecordMapper.detail(id);
+
+//        Xp
+
+        XpCheckLocation location = checkLocationService.getById(vo.getCheckLocationId());
+        vo.setLocationRange(location.getLocationRange());
+        vo.setDetailAddr(location.getLocationAddress());
         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) {
+            XpOperationsUserProfileVO profile = xpOperationsUserClient.getProfile(user.getId()).getData();
             vo.setOperationsUserId(user.getId());
             vo.setOperationsUserName(user.getNickName());
             vo.setPhoneNumber(user.getPhoneNumber());
+            vo.setFleetName(profile.getFleet().getFleetName());
+            vo.setRole(profile.getRoles().stream().map(XpOperationsUserProfileVO.RoleInfoVO::getRoleName).collect(Collectors.joining(",")));
         }
-        return xpCruiseCheckInRecordMapper.detail(id);
+
+        return vo;
     }
 
     @Override
-    public XpCruiseCheckInStatisticsVO statistics(XpCruiseCheckInStatisticsQuery query) {
-
-        return xpCruiseCheckInRecordMapper.selectCruiseCheckInStatistics(query);
+    public List<XpCruiseCheckInStatisticsVO> statistics(XpCruiseCheckInStatisticsQuery query) {
+        List<XpCruiseCheckInStatisticsVO> vos = xpCruiseCheckInRecordMapper.selectCruiseCheckInStatistics(query);
+        if (CollectionUtils.isEmpty(vos) || vos.size() < 7) {
+            String date = vos.get(vos.size() - 1).getDate();
+            LocalDate endDate = LocalDate.parse(date);
+            LocalDate startDate = endDate.minusDays(6);
+            for (int i = 7 - vos.size(); i > 0; i--) {
+                XpCruiseCheckInStatisticsVO v = new XpCruiseCheckInStatisticsVO();
+                v.setDate(startDate.toString());
+                startDate = startDate.plusDays(1);
+                vos.add(0, v);
+            }
+        }
+        return vos;
 
     }
 

--
Gitblit v1.7.1