From ffef3ed67816136e2986634657e26736c8a06545 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期二, 27 十月 2026 18:06:52 +0800
Subject: [PATCH] feat(research): 课题申报成员新增成员类型并调整统计口径
---
yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/service/application/ResearchApplicationServiceImpl.java | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/service/application/ResearchApplicationServiceImpl.java b/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/service/application/ResearchApplicationServiceImpl.java
index 00b1de9..58c94a4 100644
--- a/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/service/application/ResearchApplicationServiceImpl.java
+++ b/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/service/application/ResearchApplicationServiceImpl.java
@@ -201,10 +201,11 @@
Map<Long, ResearchApplicationDO> applicationMap = applications.stream()
.collect(Collectors.toMap(ResearchApplicationDO::getId, application -> application, (a, b) -> a));
- // 2. 鎴愬憳瀛愯〃鑱氬悎锛氬鍚� + 鐢佃瘽 + 鍗曚綅 鐩稿悓瑙嗕负鍚屼竴鎴愬憳
+ // 2. 鎴愬憳瀛愯〃鑱氬悎锛氬鍚� + 鎵�灞為儴闂� 鐩稿悓瑙嗕负鍚屼竴鎴愬憳
String keyword = StrUtil.trimToNull(reqVO.getKeyword());
Map<String, ResearchApplicationMemberStatisticsRespVO> resultMap = new LinkedHashMap<>();
Map<String, Set<String>> roleMap = new HashMap<>();
+ Map<String, Set<String>> typeMap = new HashMap<>();
Map<String, Set<Long>> projectIdMap = new HashMap<>();
Map<String, Set<String>> projectTitleMap = new HashMap<>();
for (ResearchApplicationMemberDO member : memberMapper.selectList()) {
@@ -224,6 +225,9 @@
if (StrUtil.isBlank(vo.getJobTitle()) && StrUtil.isNotBlank(member.getJobTitle())) {
vo.setJobTitle(StrUtil.trim(member.getJobTitle()));
}
+ if (StrUtil.isNotBlank(member.getMemberType())) {
+ typeMap.computeIfAbsent(key, k -> new LinkedHashSet<>()).add(StrUtil.trim(member.getMemberType()));
+ }
if (StrUtil.isNotBlank(member.getMemberRole())) {
roleMap.computeIfAbsent(key, k -> new LinkedHashSet<>()).add(StrUtil.trim(member.getMemberRole()));
}
@@ -238,6 +242,7 @@
for (Map.Entry<String, ResearchApplicationMemberStatisticsRespVO> entry : resultMap.entrySet()) {
String key = entry.getKey();
ResearchApplicationMemberStatisticsRespVO vo = entry.getValue();
+ vo.setMemberTypes(String.join("銆�", typeMap.getOrDefault(key, Collections.emptySet())));
vo.setMemberRoles(String.join("銆�", roleMap.getOrDefault(key, Collections.emptySet())));
vo.setProjectCount(projectIdMap.getOrDefault(key, Collections.emptySet()).size());
vo.setProjectTitles(String.join("锛�", projectTitleMap.getOrDefault(key, Collections.emptySet())));
@@ -266,6 +271,7 @@
list.add(ResearchApplicationMemberDO.builder()
.applicationId(applicationId)
.name(StrUtil.trim(member.getName()))
+ .memberType(StrUtil.trim(member.getMemberType()))
.contactPhone(StrUtil.trim(member.getContactPhone()))
.workUnit(StrUtil.trim(member.getWorkUnit()))
.jobTitle(StrUtil.trim(member.getJobTitle()))
@@ -281,7 +287,6 @@
private String buildMemberKey(ResearchApplicationMemberDO member) {
return StrUtil.join("|", StrUtil.nullToEmpty(member.getName()).trim(),
- StrUtil.nullToEmpty(member.getContactPhone()).trim(),
StrUtil.nullToEmpty(member.getWorkUnit()).trim());
}
@@ -290,6 +295,7 @@
return true;
}
return StrUtil.containsIgnoreCase(member.getName(), keyword)
+ || StrUtil.containsIgnoreCase(member.getMemberType(), keyword)
|| StrUtil.containsIgnoreCase(member.getContactPhone(), keyword)
|| StrUtil.containsIgnoreCase(member.getWorkUnit(), keyword);
}
--
Gitblit v1.9.3