diff --git a/src/main/java/com/spring/modules/rohs/entity/RohsEntity.java b/src/main/java/com/spring/modules/rohs/entity/RohsEntity.java index 6945d10d..e501775f 100644 --- a/src/main/java/com/spring/modules/rohs/entity/RohsEntity.java +++ b/src/main/java/com/spring/modules/rohs/entity/RohsEntity.java @@ -218,11 +218,23 @@ public class RohsEntity implements Serializable { */ private String hsfApprover; + /** + * HSF审批人名称(;分隔,前端展示) + */ + @TableField(exist = false) + private String hsfApproverName; + /** * Inform Related people */ private String relatedPeople; + /** + * Inform Related people名称(前端展示) + */ + @TableField(exist = false) + private String relatedPeopleName; + /** * 有效期数值 */ diff --git a/src/main/java/com/spring/modules/rohs/service/impl/RohsServiceImpl.java b/src/main/java/com/spring/modules/rohs/service/impl/RohsServiceImpl.java index f6b50b82..5b0e1021 100644 --- a/src/main/java/com/spring/modules/rohs/service/impl/RohsServiceImpl.java +++ b/src/main/java/com/spring/modules/rohs/service/impl/RohsServiceImpl.java @@ -77,6 +77,13 @@ public class RohsServiceImpl extends ServiceImpl impleme new Query().getPage(params), params ); + List records = page.getRecords(); + if (records != null && !records.isEmpty()) { + Map userDisplayCache = new HashMap<>(); + for (RohsEntity rohs : records) { + fillUserDisplayFields(rohs, userDisplayCache); + } + } return new PageUtils(page); } @@ -85,6 +92,7 @@ public class RohsServiceImpl extends ServiceImpl impleme public RohsEntity getDetail(String site, String referenceNo) { RohsEntity rohs = this.baseMapper.getDetailWithNames(site, referenceNo); if (rohs != null) { + fillUserDisplayFields(rohs, new HashMap<>()); rohs.setMaterialList(this.getMaterialList(site, referenceNo)); } return rohs; @@ -529,6 +537,47 @@ public class RohsServiceImpl extends ServiceImpl impleme return String.valueOf(valueObj); } + private void fillUserDisplayFields(RohsEntity rohs, Map userDisplayCache) { + if (rohs == null) { + return; + } + rohs.setHsfApproverName(convertUserCodeListToDisplay(rohs.getHsfApprover(), userDisplayCache)); + rohs.setRelatedPeopleName(convertUserCodeListToDisplay(rohs.getRelatedPeople(), userDisplayCache)); + } + + private String convertUserCodeListToDisplay(String userCodeList, Map userDisplayCache) { + if (StringUtils.isBlank(userCodeList)) { + return ""; + } + String[] users = userCodeList.replace(";", ",").split(","); + List userDisplayList = new ArrayList<>(); + for (String userCode : users) { + String normalizedCode = StringUtils.trim(userCode); + if (StringUtils.isBlank(normalizedCode)) { + continue; + } + userDisplayList.add(resolveUserDisplay(normalizedCode, userDisplayCache)); + } + return String.join(";", userDisplayList); + } + + private String resolveUserDisplay(String userCode, Map userDisplayCache) { + if (StringUtils.isBlank(userCode)) { + return ""; + } + String normalizedCode = userCode.trim(); + if (userDisplayCache.containsKey(normalizedCode)) { + return userDisplayCache.get(normalizedCode); + } + String userDisplay = normalizedCode; + SysUserEntity sysUser = sysUserDao.queryByUserName(normalizedCode); + if (sysUser != null && StringUtils.isNotBlank(sysUser.getUserDisplay())) { + userDisplay = sysUser.getUserDisplay().trim(); + } + userDisplayCache.put(normalizedCode, userDisplay); + return userDisplay; + } + private void sanitizeHsfStandard(RohsEntity rohs) { if (rohs == null) { return;