From 08ef63eb44102f05c21e5370fd096a7f0cfee20c Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 27 二月 2026 10:05:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java | 89 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 89 insertions(+), 0 deletions(-)
diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java
index bc46af0..63fbf3c 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java
+++ b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java
@@ -26,6 +26,7 @@
import com.xiaopeng.api.vo.account.*;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.exception.ServiceException;
+import com.xiaopeng.common.core.utils.poi.ExcelUtil;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.security.utils.SecurityUtils;
import lombok.extern.slf4j.Slf4j;
@@ -35,7 +36,12 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -312,4 +318,87 @@
}
return xpOperationsUserVO;
}
+
+
+ /**
+ * 导出运维人员列表
+ * @param query
+ */
+ @Override
+ public void exportOperationsUser(XpOperationsUserQuery query, HttpServletResponse response) {
+ List<ExportOperationsUserVo> list = this.baseMapper.exportOperationsUser(query);
+
+ // 查询角色名称
+ List<Long> operationsUserIds = list.stream().map(ExportOperationsUserVo::getId).collect(Collectors.toList());
+
+ // 查询用户信息
+ List<XpOperationsRole> xpOperationsRoles = xpOperationsRoleMapper.selectList(Wrappers.lambdaQuery(XpOperationsRole.class)
+ .in(XpOperationsRole::getOperationsUserId, operationsUserIds));
+
+ if(!CollectionUtils.isEmpty(xpOperationsRoles)){
+ List<Long> roleIds = xpOperationsRoles.stream().map(XpOperationsRole::getRoleId).collect(Collectors.toList());
+ // 查询列表关联的所有角色
+ List<SysRole> sysRoles = sysRoleMapper.selectList(Wrappers.lambdaQuery(SysRole.class)
+ .in(SysRole::getId, roleIds));
+ if(!CollectionUtils.isEmpty(sysRoles)){
+
+ // 角色匹配账号id
+ Map<Long, List<SysRole>> map = new HashMap<>();
+ for (XpOperationsRole xpOperationsRole : xpOperationsRoles) {
+ List<SysRole> sysRoleList = sysRoles.stream().filter(sysRole -> sysRole.getId().equals(xpOperationsRole.getRoleId())).collect(Collectors.toList());
+ map.put(xpOperationsRole.getOperationsUserId(), sysRoleList);
+ }
+ // 角色名称匹配
+ for (ExportOperationsUserVo xpOperationsUserVO : list) {
+ xpOperationsUserVO.setRoleName(map.get(xpOperationsUserVO.getId()).stream().map(SysRole::getRoleName).collect(Collectors.joining(";")));
+ }
+ }
+ }
+ ExcelUtil<ExportOperationsUserVo> util = new ExcelUtil<ExportOperationsUserVo>(ExportOperationsUserVo.class);
+ util.exportExcel(response, list, "运维人员管理列表");
+ }
+
+
+ /**
+ * 导入运维人员数据
+ * @param file
+ */
+ @Override
+ public void importOperationsUser(MultipartFile file) {
+ ExcelUtil<ExportOperationsUserVo> util = new ExcelUtil<ExportOperationsUserVo>(ExportOperationsUserVo.class);
+ try {
+ List<ExportOperationsUserVo> list = util.importExcel(file.getInputStream());
+ for (ExportOperationsUserVo exportOperationsUserVo : list) {
+ XpOperationsUser xpOperationsUser = new XpOperationsUser();
+ xpOperationsUser.setNickName(exportOperationsUserVo.getNickName());
+ xpOperationsUser.setUniqueNumber(exportOperationsUserVo.getUniqueNumber());
+ xpOperationsUser.setAvatar(exportOperationsUserVo.getAvatar());
+ xpOperationsUser.setPhoneNumber(exportOperationsUserVo.getPhoneNumber());
+ xpOperationsUser.setRemarks(exportOperationsUserVo.getRemarks());
+ xpOperationsUser.setStatus(true);
+ xpOperationsUser.setIdCardFront(exportOperationsUserVo.getIdCardFront());
+ xpOperationsUser.setIdCardBack(exportOperationsUserVo.getIdCardBack());
+ xpOperationsUser.setDriverLicense(exportOperationsUserVo.getDriverLicense());
+ xpOperationsUser.setCertificateOfNoCriminalRecord(exportOperationsUserVo.getCertificateOfNoCriminalRecord());
+ xpOperationsUser.setTrainingGraduationCertificate(exportOperationsUserVo.getTrainingGraduationCertificate());
+ xpOperationsUser.setDeleted(false);
+ xpOperationsUser.setCreateTime(LocalDateTime.now());
+ xpOperationsUser.setUpdateTime(LocalDateTime.now());
+ this.save(xpOperationsUser);
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+
+ /**
+ * 导出模板
+ * @param response
+ */
+ @Override
+ public void exportTemplate(HttpServletResponse response) {
+ ExcelUtil<ExportOperationsUserVo> util = new ExcelUtil<ExportOperationsUserVo>(ExportOperationsUserVo.class);
+ util.exportExcel(response);
+ }
}
--
Gitblit v1.7.1