From b6eacbb6fc7658cabb51533692a9b9f5cb1e316b Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 23 四月 2026 19:59:03 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0
---
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCruiseCheckInRuleServiceImpl.java | 77 ++++++++++++++++++++++++++++++++++++--
1 files changed, 73 insertions(+), 4 deletions(-)
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCruiseCheckInRuleServiceImpl.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCruiseCheckInRuleServiceImpl.java
index 4821fda..59e347e 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCruiseCheckInRuleServiceImpl.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCruiseCheckInRuleServiceImpl.java
@@ -1,17 +1,24 @@
package com.xiaopeng.maintenance.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xiaopeng.api.model.maintenance.XpCheckLocation;
-import com.xiaopeng.api.model.maintenance.XpCruiseCheckInRecord;
-import com.xiaopeng.api.model.maintenance.XpCruiseCheckInRule;
-import com.xiaopeng.api.model.maintenance.XpCruiseCheckInRuleLocation;
+import com.xiaopeng.api.feignClient.account.XpOperationUserClient;
+import com.xiaopeng.api.feignClient.account.XpOperationsUserClient;
+import com.xiaopeng.api.model.account.XpOperationsUser;
+import com.xiaopeng.api.model.maintenance.*;
import com.xiaopeng.common.core.exception.ServiceException;
import com.xiaopeng.common.core.utils.GeodesyUtil;
+import com.xiaopeng.common.core.utils.StringUtils;
import com.xiaopeng.common.redis.service.RedisService;
import com.xiaopeng.maintenance.constant.I18nKeyConstant;
+import com.xiaopeng.maintenance.dto.XpCruiseCheckInRuleDto;
+import com.xiaopeng.maintenance.dto.XpCruiseCheckInRuleListPageDto;
import com.xiaopeng.maintenance.mapper.XpCruiseCheckInRuleMapper;
+import com.xiaopeng.maintenance.mapper.XpCruiseCheckInRuleOperationsUserMapper;
import com.xiaopeng.maintenance.model.vo.AppXpCruiseCheckInLocationVo;
import com.xiaopeng.maintenance.model.vo.AppXpCruiseCheckInRuleVo;
import com.xiaopeng.maintenance.model.vo.CheckInMessageVo;
@@ -20,6 +27,8 @@
import com.xiaopeng.maintenance.service.IXpCruiseCheckInRecordService;
import com.xiaopeng.maintenance.service.IXpCruiseCheckInRuleLocationService;
import com.xiaopeng.maintenance.service.IXpCruiseCheckInRuleService;
+import com.xiaopeng.maintenance.vo.XpCruiseCheckInRuleListPage;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -49,6 +58,12 @@
private IXpCheckLocationService xpCheckLocationService;
@Autowired
private RedisService redisService;
+
+ @Resource
+ private XpOperationUserClient xpOperationsUserClient;
+
+ @Resource
+ private XpCruiseCheckInRuleOperationsUserMapper xpCruiseCheckInRuleOperationsUserMapper;
@Override
@@ -245,4 +260,58 @@
.eq(XpCruiseCheckInRecord::getOperationsUserId, uid)
.last(" and DATE(check_in_time) = DATE(NOW())"));
}
+
+
+ /**
+ * 获取巡游打卡规则列表
+ * @param pageInfo
+ * @param dto
+ * @return
+ */
+ @Override
+ public List<XpCruiseCheckInRuleListPage> getXpCruiseCheckInRuleListPage(Page<XpCruiseCheckInRuleListPage> pageInfo, XpCruiseCheckInRuleListPageDto dto) {
+ List<Long> ids = new ArrayList<>();
+ if(StringUtils.isNotEmpty(dto.getUserName())){
+ List<XpOperationsUser> data = xpOperationsUserClient.listByName(dto.getUserName()).getData();
+ ids.addAll(data.stream().map(XpOperationsUser::getId).collect(Collectors.toList()));
+ }
+ if(StringUtils.isNotEmpty(dto.getPhoneNumber())){
+ List<XpOperationsUser> data = xpOperationsUserClient.getByPhoneNumber(dto.getPhoneNumber()).getData();
+ ids.addAll(data.stream().map(XpOperationsUser::getId).collect(Collectors.toList()));
+ }
+ if(!list().isEmpty()){
+ List<XpCruiseCheckInRuleOperationsUser> operationsUserId = xpCruiseCheckInRuleOperationsUserMapper.selectList(new QueryWrapper<XpCruiseCheckInRuleOperationsUser>().in("operations_user_id", ids));
+ List<Integer> ruleIds = operationsUserId.stream().map(XpCruiseCheckInRuleOperationsUser::getCruiseCheckInRuleId).collect(Collectors.toList());
+ dto.setIds(ruleIds);
+ }
+ List<XpCruiseCheckInRuleListPage> xpCruiseCheckInRuleListPage = this.baseMapper.getXpCruiseCheckInRuleListPage(pageInfo, dto);
+ return xpCruiseCheckInRuleListPage;
+ }
+
+
+ /**
+ * 新增巡游打卡规则
+ * @param dto
+ */
+ @Override
+ public void addXpCruiseCheckInRule(XpCruiseCheckInRuleDto dto) {
+ XpCruiseCheckInRule one = this.getOne(new QueryWrapper<XpCruiseCheckInRule>().like("name", dto.getName()).eq("is_deleted", 0));
+ if(null != one){
+ throw new ServiceException("巡游打卡规则名称已存在");
+ }
+ XpCruiseCheckInRule xpCruiseCheckInRule = new XpCruiseCheckInRule();
+ BeanUtils.copyProperties(dto, xpCruiseCheckInRule);
+ xpCruiseCheckInRule.setDeleted(false);
+ this.save(xpCruiseCheckInRule);
+ dto.getPoints().forEach(s->{
+ s.setCruiseCheckInRuleId(xpCruiseCheckInRule.getId());
+ });
+ xpCruiseCheckInRuleLocationService.saveBatch(dto.getPoints());
+ Long relationId = dto.getRelationId();
+
+ XpCruiseCheckInRuleOperationsUser xpCruiseCheckInRuleOperationsUser = new XpCruiseCheckInRuleOperationsUser();
+ xpCruiseCheckInRuleOperationsUser.setCruiseCheckInRuleId(xpCruiseCheckInRule.getId());
+ xpCruiseCheckInRuleOperationsUser.setOperationsUserId(relationId);
+ xpCruiseCheckInRuleOperationsUserMapper.insert(xpCruiseCheckInRuleOperationsUser);
+ }
}
--
Gitblit v1.7.1