diff --git a/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java b/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java index ae10a06..a0fb19c 100644 --- a/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java +++ b/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java @@ -2065,9 +2065,50 @@ public class CustomerFormServiceImpl implements CustomerFormService { } + public void processDataTitles(List> dataTitles) { + // 本地缓存:存储 creatorValue -> adminOrg 的映射 + Map adminOrgCache = new HashMap<>(); + + for (TreeMap map : dataTitles) { + // 统一处理 owner 字段 + Object ownerValue = map.get("owner"); + if (ownerValue == null || StringUtils.isBlank(ownerValue.toString())) { + map.put("owner", map.get("creater")); + } + // 统一处理 org 字段 + Object orgValue = map.get("org"); + if (orgValue == null || StringUtils.isBlank(orgValue.toString())) { + Object creatorValueObj = map.get("creater"); + if (creatorValueObj == null) { + // 处理 creatorValue 为 null 的情况(保持原逻辑) + map.put("org", null); + continue; + } - public void processDataTitles(List> dataTitles) { + String creatorValue = creatorValueObj.toString(); + if (StringUtils.isBlank(creatorValue)) { + // 处理 creatorValue 为空字符串的情况(保持原逻辑) + map.put("org", ""); + continue; + } + + // 检查本地缓存 + String adminOrg = adminOrgCache.get(creatorValue); + if (adminOrg == null) { + // 缓存未命中:查询数据库并缓存结果 + adminOrg = userService.getManContByKey(creatorValue).getAdminOrg().toString(); + adminOrgCache.put(creatorValue, adminOrg); + } + map.put("org", adminOrg); + } + } + } + + + + //优化前的processDataTitles,会出现大量重复查询 + public void processDataTitles1(List> dataTitles) { for (TreeMap map : dataTitles) { if (!map.containsKey("owner")) { Object creatorValue = map.get("creater");