xuhy
2026-03-12 421e9a62b6bf91394f6bff5ce7642e995bf06077
运维人员导入异常处理
5个文件已修改
89 ■■■■■ 已修改文件
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/constant/I18nKeyConstant.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/resources/i18n/messages.properties 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/resources/i18n/messages_en_US.properties 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/resources/i18n/messages_zh_CN.properties 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/constant/I18nKeyConstant.java
@@ -31,6 +31,7 @@
    String ACCOUNT_NOT_ALLOWED_OPERATE_ADMIN = "account.not.allowed.operate.admin";
    //手机号格式错误
    String ACCOUNT_FORMAT_ERROR = "account.format.error";
    String ACCOUNT_IMPORT_ERROR = "account.import.error";
    //========== 角色相关 ==========
    String ROLE_NAME_EXISTS = "role.name.exists";
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java
@@ -347,51 +347,52 @@
    @Override
    public void importOperationsUser(MultipartFile file) {
        ExcelUtil<ExportOperationsUserVo> util = new ExcelUtil<ExportOperationsUserVo>(ExportOperationsUserVo.class);
        List<ExportOperationsUserVo> list = null;
        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());
                boolean isPhone = PhoneUtil.isPhone(exportOperationsUserVo.getPhoneNumber());
                if (!isPhone) {
                    throw new ServiceException("以下帐号格式不正确:", I18nKeyConstant.ACCOUNT_FORMAT_ERROR, new Object[]{exportOperationsUserVo.getPhoneNumber()});
                }
                xpOperationsUser.setPhoneNumber(exportOperationsUserVo.getPhoneNumber());
                xpOperationsUser.setPassword(SecurityUtils.encryptPassword("a123456"));
                xpOperationsUser.setRemarks(exportOperationsUserVo.getRemarks());
                xpOperationsUser.setStatus(true);
                xpOperationsUser.setIdCardFront(StringUtils.isBlank(exportOperationsUserVo.getIdCardFront()) ? null : exportOperationsUserVo.getIdCardFront());
                xpOperationsUser.setIdCardBack(StringUtils.isBlank(exportOperationsUserVo.getIdCardBack()) ? null : exportOperationsUserVo.getIdCardBack());
                xpOperationsUser.setDriverLicense(StringUtils.isBlank(exportOperationsUserVo.getDriverLicense()) ? null : exportOperationsUserVo.getDriverLicense());
                xpOperationsUser.setCertificateOfNoCriminalRecord(StringUtils.isBlank(exportOperationsUserVo.getCertificateOfNoCriminalRecord()) ? null : exportOperationsUserVo.getCertificateOfNoCriminalRecord());
                xpOperationsUser.setTrainingGraduationCertificate(StringUtils.isBlank(exportOperationsUserVo.getTrainingGraduationCertificate()) ? null : exportOperationsUserVo.getTrainingGraduationCertificate());
                xpOperationsUser.setDeleted(false);
                xpOperationsUser.setCreateTime(LocalDateTime.now());
                xpOperationsUser.setUpdateTime(LocalDateTime.now());
                this.save(xpOperationsUser);
                // 通过角色名称查询角色
                String roleName = exportOperationsUserVo.getRoleName();
                if(StringUtils.isNotBlank(roleName)){
                    List<SysRole> sysRoles = iSysRoleService.list(Wrappers.lambdaQuery(SysRole.class)
                            .in(SysRole::getRoleName, Arrays.asList(roleName.split(","))));
                    if(!CollectionUtils.isEmpty(sysRoles)){
                        List<XpOperationsRole> xpOperationsRoles = new ArrayList<>();
                        for (SysRole sysRole : sysRoles) {
                            XpOperationsRole xpOperationsRole = new XpOperationsRole();
                            xpOperationsRole.setOperationsUserId(xpOperationsUser.getId());
                            xpOperationsRole.setRoleId(sysRole.getId());
                            xpOperationsRoles.add(xpOperationsRole);
                        }
                        xpOperationsRoleService.saveBatch(xpOperationsRoles);
                    }else {
                        throw new ServiceException("角色["+roleName+"]不存在",I18nKeyConstant.ROlE_NOT_EXISTS);
            list = util.importExcel(file.getInputStream());
        } catch (Exception e) {
            throw new ServiceException("导入运维人员数据异常", I18nKeyConstant.ACCOUNT_IMPORT_ERROR);
        }
        for (ExportOperationsUserVo exportOperationsUserVo : list) {
            XpOperationsUser xpOperationsUser = new XpOperationsUser();
            xpOperationsUser.setNickName(exportOperationsUserVo.getNickName());
            xpOperationsUser.setUniqueNumber(exportOperationsUserVo.getUniqueNumber());
            xpOperationsUser.setAvatar(exportOperationsUserVo.getAvatar());
            boolean isPhone = PhoneUtil.isPhone(exportOperationsUserVo.getPhoneNumber());
            if (!isPhone) {
                throw new ServiceException("以下帐号格式不正确:"+exportOperationsUserVo.getPhoneNumber(), I18nKeyConstant.ACCOUNT_FORMAT_ERROR);
            }
            xpOperationsUser.setPhoneNumber(exportOperationsUserVo.getPhoneNumber());
            xpOperationsUser.setPassword(SecurityUtils.encryptPassword("a123456"));
            xpOperationsUser.setRemarks(exportOperationsUserVo.getRemarks());
            xpOperationsUser.setStatus(true);
            xpOperationsUser.setIdCardFront(StringUtils.isBlank(exportOperationsUserVo.getIdCardFront()) ? null : exportOperationsUserVo.getIdCardFront());
            xpOperationsUser.setIdCardBack(StringUtils.isBlank(exportOperationsUserVo.getIdCardBack()) ? null : exportOperationsUserVo.getIdCardBack());
            xpOperationsUser.setDriverLicense(StringUtils.isBlank(exportOperationsUserVo.getDriverLicense()) ? null : exportOperationsUserVo.getDriverLicense());
            xpOperationsUser.setCertificateOfNoCriminalRecord(StringUtils.isBlank(exportOperationsUserVo.getCertificateOfNoCriminalRecord()) ? null : exportOperationsUserVo.getCertificateOfNoCriminalRecord());
            xpOperationsUser.setTrainingGraduationCertificate(StringUtils.isBlank(exportOperationsUserVo.getTrainingGraduationCertificate()) ? null : exportOperationsUserVo.getTrainingGraduationCertificate());
            xpOperationsUser.setDeleted(false);
            xpOperationsUser.setCreateTime(LocalDateTime.now());
            xpOperationsUser.setUpdateTime(LocalDateTime.now());
            this.save(xpOperationsUser);
            // 通过角色名称查询角色
            String roleName = exportOperationsUserVo.getRoleName();
            if(StringUtils.isNotBlank(roleName)){
                List<SysRole> sysRoles = iSysRoleService.list(Wrappers.lambdaQuery(SysRole.class)
                        .in(SysRole::getRoleName, Arrays.asList(roleName.split(","))));
                if(!CollectionUtils.isEmpty(sysRoles)){
                    List<XpOperationsRole> xpOperationsRoles = new ArrayList<>();
                    for (SysRole sysRole : sysRoles) {
                        XpOperationsRole xpOperationsRole = new XpOperationsRole();
                        xpOperationsRole.setOperationsUserId(xpOperationsUser.getId());
                        xpOperationsRole.setRoleId(sysRole.getId());
                        xpOperationsRoles.add(xpOperationsRole);
                    }
                    xpOperationsRoleService.saveBatch(xpOperationsRoles);
                }else {
                    throw new ServiceException("角色["+roleName+"]不存在",I18nKeyConstant.ROlE_NOT_EXISTS);
                }
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
xp-robotaxi-account-boot/src/main/resources/i18n/messages.properties
@@ -34,3 +34,4 @@
sms.push.failed=短信发送失败,请稍后重试!
sys.group.delete.fail=删除失败,该权限组已关联角色
account.format.error=以下帐号格式不正确:{0}
account.import.error=导入运维人员数据异常
xp-robotaxi-account-boot/src/main/resources/i18n/messages_en_US.properties
@@ -33,4 +33,5 @@
request.failed=Request failed. Please try again later!
sms.push.failed=SMS sending failed. Please try again later!
sys.group.delete.fail=Deletion failed. This permission group has been associated with a role
account.format.error=The following account format is incorrect: {0}
account.format.error=The following account format is incorrect: {0}
account.import.error=Importing operation and maintenance personnel data anomaly
xp-robotaxi-account-boot/src/main/resources/i18n/messages_zh_CN.properties
@@ -34,3 +34,4 @@
sms.push.failed=短信发送失败,请稍后重试!
sys.group.delete.fail=删除失败,该权限组已关联角色
account.format.error=以下帐号格式不正确:{0}
account.import.error=导入运维人员数据异常