From f5560820431163db68ccea4c850fb90a0eebf467 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 20 四月 2026 21:42:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.0' into 1.0
---
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointSituationReportServiceImpl.java | 126 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 126 insertions(+), 0 deletions(-)
diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointSituationReportServiceImpl.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointSituationReportServiceImpl.java
index 09a8083..b8915b2 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointSituationReportServiceImpl.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointSituationReportServiceImpl.java
@@ -1,12 +1,138 @@
package com.xiaopeng.operation.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xiaopeng.api.feignClient.account.XpOperationUserClient;
+import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetOperationsClient;
+import com.xiaopeng.api.model.account.XpOperationsUser;
import com.xiaopeng.api.model.operation.XpPointSituationReport;
+import com.xiaopeng.api.model.vehicleConvoy.XpFleet;
+import com.xiaopeng.api.query.operation.XpPointSituationReportQuery;
+import com.xiaopeng.api.vo.operation.XpPointSituationReportVo;
+import com.xiaopeng.common.core.domain.R;
+import com.xiaopeng.common.core.exception.ServiceException;
+import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.operation.mapper.XpPointSituationReportMapper;
import com.xiaopeng.operation.service.IXpPointSituationReportService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
@Service
public class XpPointSituationReportServiceImpl extends ServiceImpl<XpPointSituationReportMapper, XpPointSituationReport> implements IXpPointSituationReportService {
+
+
+
+ @Autowired
+ private XpOperationUserClient xpOperationUserClient;
+ @Resource
+ private XpFleetOperationsClient xpFleetOperationsClient;
+
+ @Override
+ public PageInfo<XpPointSituationReportVo> pageList(XpPointSituationReportQuery query) {
+ // 创建分页对象
+ PageInfo<XpPointSituationReportVo> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+ // 调用Mapper查询
+ List<XpPointSituationReportVo> list = this.baseMapper.pageList(pageInfo, query);
+ extracted(list);
+ // 设置结果
+ pageInfo.setRecords(list);
+ return pageInfo;
+ }
+
+ private void extracted(List<XpPointSituationReportVo> list) {
+ if(!list.isEmpty()){
+ // 收集所有运维人员ID
+ Set<Long> operationsUserIds = list.stream()
+ .map(XpPointSituationReportVo::getOperationsUserId)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toSet());
+ // 批量查询操作人信息
+ Map<Long, String> userNameMap = new HashMap<>();
+ if (!CollectionUtils.isEmpty(operationsUserIds)) {
+ R<List<XpOperationsUser>> userResult = xpOperationUserClient.listByIds(operationsUserIds);
+ List<XpOperationsUser> users = userResult.getData();
+ if (!CollectionUtils.isEmpty(users)) {
+ userNameMap = users.stream()
+ .collect(Collectors.toMap(XpOperationsUser::getId, XpOperationsUser::getNickName));
+ }
+ }
+
+ for (XpPointSituationReportVo bean : list) {
+ if (userNameMap.containsKey(bean.getOperationsUserId())){
+ bean.setOperationsUserName(userNameMap.get(bean.getOperationsUserId()));
+ }
+ if(bean.getOperationStatus() != null){//运营状态 1=待启用 2=启用中 3=已停用 4=已失效
+ if(bean.getOperationStatus() == 1){
+ bean.setPointStatusName("待启用");
+ }else if(bean.getOperationStatus() == 2){
+ bean.setPointStatusName("启用中");
+ }else if(bean.getOperationStatus() == 3){
+ bean.setPointStatusName("已停用");
+ }else if(bean.getOperationStatus() == 4){
+ bean.setPointStatusName("已失效");
+ }
+ }
+ }
+ }
+ }
+
+
+ @Override
+ public XpPointSituationReportVo getdetail(Long id) {
+ XpPointSituationReportQuery query = new XpPointSituationReportQuery();
+ query.setId(id);
+ List<XpPointSituationReportVo> list = this.baseMapper.pageList(query);
+ if(list.isEmpty()){
+ throw new ServiceException("未查询该数据");
+ }
+ XpPointSituationReportVo bean = list.get(0);
+
+ // 批量查询操作人信息
+ R<List<XpOperationsUser>> userResult = xpOperationUserClient.listByIds(new ArrayList<Long>(){{
+ add(bean.getOperationsUserId());
+ }} );
+ List<XpOperationsUser> users = userResult.getData();
+ if (CollectionUtils.isEmpty(users)) {
+ throw new ServiceException("未查询该运维人员");
+ }
+ Map<Long, String> userNameMap = users.stream()
+ .collect(Collectors.toMap(XpOperationsUser::getId, XpOperationsUser::getNickName));
+
+ bean.setOperationsUserName(userNameMap.get(bean.getOperationsUserId()));
+
+ R<List<XpFleet>> fleetByUserId = xpFleetOperationsClient.getFleetByUserId(bean.getOperationsUserId());
+ if(fleetByUserId.getCode() != R.SUCCESS || fleetByUserId.getData().isEmpty()){
+ throw new ServiceException("未查询该车队");
+ }
+
+ bean.setOperationsUserFleetName(fleetByUserId.getData().get(0).getFleetName());
+
+ return bean;
+ }
+
+
+ @Override
+ public List<XpPointSituationReportVo> exportList(XpPointSituationReportQuery query) {
+ List<XpPointSituationReportVo> list = this.baseMapper.pageList(query);
+ extracted(list);
+ return list;
+ }
+
+
+ @Override
+ public void deleteById(Long id) {
+ // 1. 检查记录是否存在
+ XpPointSituationReport bean = this.getById(id);
+ if (bean == null) {
+ throw new ServiceException("密支付策略配置不存在");
+ }
+ // 2. 逻辑删除(MyBatis-Plus自动处理)
+ this.removeById(id);
+ }
+
}
--
Gitblit v1.7.1