From f0ebc579ab4e9e93ced8c819db7b497e59eff159 Mon Sep 17 00:00:00 2001 From: luotaiqian <1147642922@qq.com> Date: Tue, 4 Aug 2026 09:42:12 +0800 Subject: [PATCH] import --- .../support/OrgPersonnelExcelImporter.java | 57 +++++++++++++++---- .../src/main/resources/sdk-prod.yml | 1 + safety-eval-start/src/main/resources/sdk.yml | 1 + 3 files changed, 49 insertions(+), 10 deletions(-) diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/support/OrgPersonnelExcelImporter.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/support/OrgPersonnelExcelImporter.java index 3c5410a..38524c8 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/support/OrgPersonnelExcelImporter.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/support/OrgPersonnelExcelImporter.java @@ -1,15 +1,20 @@ package org.qinan.safetyeval.app.support; import com.alibaba.excel.EasyExcel; +import com.jjb.saas.framework.auth.utils.AuthContext; +import com.jjb.saas.system.client.user.request.RoleDeptAddCmd; +import com.jjb.saas.system.client.user.request.UserAddCmd; +import com.zcloud.gbscommon.utils.MD5; +import com.zcloud.gbscommon.utils.Sm2Util; import org.qinan.safetyeval.client.co.OrgPersonnelImportErrorCO; import org.qinan.safetyeval.client.co.OrgPersonnelImportResultCO; +import org.qinan.safetyeval.domain.constant.QualificationLevelEnum; import org.qinan.safetyeval.domain.entity.OrgDepartmentEntity; import org.qinan.safetyeval.domain.entity.OrgPersonnelEntity; import org.qinan.safetyeval.domain.entity.OrgPositionEntity; import org.qinan.safetyeval.domain.entity.TitleCodeCo; import org.qinan.safetyeval.domain.exception.BizException; import org.qinan.safetyeval.domain.exception.ErrorCode; -import org.qinan.safetyeval.domain.constant.QualificationLevelEnum; import org.qinan.safetyeval.domain.gateway.OrgDepartmentGateway; import org.qinan.safetyeval.domain.gateway.OrgPersonnelGateway; import org.qinan.safetyeval.domain.gateway.OrgPositionGateway; @@ -17,8 +22,10 @@ import org.qinan.safetyeval.domain.major.gateway.BasicDisciplineMajorGateway; import org.qinan.safetyeval.domain.major.model.BasicDisciplineMajorE; import org.qinan.safetyeval.domain.service.OrgPersonnelDomainService; import org.qinan.safetyeval.infrastructure.adapter.ThreadLocalUserInfoAdapter; +import org.qinan.safetyeval.infrastructure.remote.SystemRemote; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; @@ -27,15 +34,7 @@ import javax.annotation.Resource; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -70,6 +69,19 @@ public class OrgPersonnelExcelImporter { @Resource private OrgPersonnelDomainService orgPersonnelDomainService; + @Resource + private SystemRemote systemRemote; + + @Value("${def.password:a123456}") + private String defPassword; + @Value("${def.publicKey:0402df2195296d4062ac85ad766994d73e871b887e18efb9a9a06b4cebc72372869b7da6c347c129dee2b46a0f279ff066b01c76208c2a052af75977c722a2ccee}") + private String publicKey; + + @Value("${auth.deptId.org}") + private Long orgDeptId; + @Value("${auth.roleCode.org}") + private String orgRoleCode; + public OrgPersonnelImportResultCO importPersonnel(MultipartFile file) { if (file == null || file.isEmpty()) { throw new BizException(ErrorCode.FILE_UPLOAD_EMPTY); @@ -118,6 +130,8 @@ public class OrgPersonnelExcelImporter { // 行内枚举/数据校验未通过,已记录异常 continue; } + Long userId = addUserIfAbsentAndAppendRole(entity); + entity.setId(userId); orgPersonnelDomainService.add(entity); successCount++; } catch (Exception ex) { @@ -133,6 +147,29 @@ public class OrgPersonnelExcelImporter { return result; } + /** + * addUserIfAbsentAndAppendRole + * + * @return Long + */ + public Long addUserIfAbsentAndAppendRole(OrgPersonnelEntity personnelEntity) { + // 添加底座用户 + UserAddCmd userAddCmd = new UserAddCmd(); + userAddCmd.setAccount(personnelEntity.getAccount()); + userAddCmd.setTenantId(AuthContext.getTenantId()); + userAddCmd.setName(personnelEntity.getUserName()); + String encrypt = Sm2Util.encryptHex(MD5.md5(defPassword), publicKey); + userAddCmd.setPassword(encrypt); + + RoleDeptAddCmd roleDept = new RoleDeptAddCmd(); + roleDept.setRoleCode(orgRoleCode); + roleDept.setDeptId(orgDeptId); + userAddCmd.setRoleDepts(Collections.singletonList(roleDept)); + + return systemRemote.addUserIfAbsentAndAppendRole(userAddCmd + , Collections.singletonList(orgRoleCode)); + } + /** * 解析 Excel,过滤空行,并回填物理行号(从1开始,含表头,首条数据为第2行)。 *
diff --git a/safety-eval-start/src/main/resources/sdk-prod.yml b/safety-eval-start/src/main/resources/sdk-prod.yml index b09e140..b4d9dc9 100644 --- a/safety-eval-start/src/main/resources/sdk-prod.yml +++ b/safety-eval-start/src/main/resources/sdk-prod.yml @@ -77,6 +77,7 @@ auth: org: 2074857068268802050 roleCode: expert: expert001 + org: org001 template: personnel: diff --git a/safety-eval-start/src/main/resources/sdk.yml b/safety-eval-start/src/main/resources/sdk.yml index 4e42de5..6a3ace6 100644 --- a/safety-eval-start/src/main/resources/sdk.yml +++ b/safety-eval-start/src/main/resources/sdk.yml @@ -78,6 +78,7 @@ auth: org: 2069671307598893058 roleCode: expert: expert001 + org: org001 template: personnel: