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/controller/admin/application/vo/member/ResearchApplicationMemberStatisticsRespVO.java | 4 ++++
yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/service/application/ResearchApplicationServiceImpl.java | 10 ++++++++--
yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberStatisticsReqVO.java | 2 +-
yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberRespVO.java | 3 +++
yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberSaveReqVO.java | 4 ++++
yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/dal/dataobject/application/ResearchApplicationMemberDO.java | 9 ++++++---
6 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberRespVO.java b/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberRespVO.java
index 445317b..6ecc659 100644
--- a/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberRespVO.java
+++ b/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberRespVO.java
@@ -16,6 +16,9 @@
@Schema(description = "鎴愬憳濮撳悕", example = "鏉庡洓")
private String name;
+ @Schema(description = "鎴愬憳绫诲瀷锛氭暀甯� / 瀛︾敓 / 鏍″浜哄憳", example = "鏁欏笀")
+ private String memberType;
+
@Schema(description = "鑱旂郴鐢佃瘽", example = "13800138000")
private String contactPhone;
diff --git a/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberSaveReqVO.java b/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberSaveReqVO.java
index dc45858..b1eee1d 100644
--- a/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberSaveReqVO.java
+++ b/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberSaveReqVO.java
@@ -18,6 +18,10 @@
@Size(max = 64, message = "鎴愬憳濮撳悕闀垮害涓嶈兘瓒呰繃 64 涓瓧绗�")
private String name;
+ @Schema(description = "鎴愬憳绫诲瀷锛氭暀甯� / 瀛︾敓 / 鏍″浜哄憳", example = "鏁欏笀")
+ @Size(max = 32, message = "鎴愬憳绫诲瀷闀垮害涓嶈兘瓒呰繃 32 涓瓧绗�")
+ private String memberType;
+
@Schema(description = "鑱旂郴鐢佃瘽锛堥�夊~锛屽~鍐欐椂椤讳负 11 浣嶆墜鏈哄彿锛�", example = "13800138000")
@Size(max = 20, message = "鑱旂郴鐢佃瘽闀垮害涓嶈兘瓒呰繃 20 涓瓧绗�")
@Pattern(regexp = "^$|^1[3-9]\\d{9}$", message = "鎴愬憳鑱旂郴鐢佃瘽鏍煎紡涓嶆纭紝璇疯緭鍏ユ纭殑 11 浣嶆墜鏈哄彿")
diff --git a/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberStatisticsReqVO.java b/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberStatisticsReqVO.java
index 122fa22..f1d9392 100644
--- a/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberStatisticsReqVO.java
+++ b/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberStatisticsReqVO.java
@@ -8,7 +8,7 @@
@Data
public class ResearchApplicationMemberStatisticsReqVO {
- @Schema(description = "鍏抽敭瀛楋細鎴愬憳濮撳悕 / 鑱旂郴鐢佃瘽 / 鎵�灞炲崟浣�", example = "寮犱笁")
+ @Schema(description = "鍏抽敭瀛楋細鎴愬憳濮撳悕 / 鎴愬憳绫诲瀷 / 鑱旂郴鐢佃瘽 / 鎵�灞為儴闂�", example = "寮犱笁")
@Size(max = 64, message = "鍏抽敭瀛楅暱搴︿笉鑳借秴杩� 64 涓瓧绗�")
private String keyword;
diff --git a/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberStatisticsRespVO.java b/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberStatisticsRespVO.java
index 0f2e73f..d8b9b6e 100644
--- a/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberStatisticsRespVO.java
+++ b/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/vo/member/ResearchApplicationMemberStatisticsRespVO.java
@@ -12,6 +12,10 @@
@ExcelProperty("鎴愬憳濮撳悕")
private String name;
+ @Schema(description = "鎴愬憳绫诲瀷锛堝涓互椤垮彿鍒嗛殧锛�", example = "鏁欏笀")
+ @ExcelProperty("鎴愬憳绫诲瀷")
+ private String memberTypes;
+
@Schema(description = "鑱旂郴鐢佃瘽", example = "13800138000")
@ExcelProperty("鑱旂郴鐢佃瘽")
private String contactPhone;
diff --git a/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/dal/dataobject/application/ResearchApplicationMemberDO.java b/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/dal/dataobject/application/ResearchApplicationMemberDO.java
index b8564a2..cb5e1da 100644
--- a/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/dal/dataobject/application/ResearchApplicationMemberDO.java
+++ b/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/dal/dataobject/application/ResearchApplicationMemberDO.java
@@ -30,16 +30,19 @@
/** 鎴愬憳濮撳悕 */
private String name;
- /** 鑱旂郴鐢佃瘽 */
+ /** 鎴愬憳绫诲瀷锛氭暀甯� / 瀛︾敓 / 鏍″浜哄憳 */
+ private String memberType;
+
+ /** 鑱旂郴鐢佃瘽锛堝巻鍙插瓧娈碉紝涓嶅啀褰曞叆锛� */
private String contactPhone;
- /** 鎵�灞炲崟浣� */
+ /** 鎵�灞為儴闂� */
private String workUnit;
/** 鑱岀О/鑱屽姟 */
private String jobTitle;
- /** 鎴愬憳瑙掕壊锛氫富鎸佷汉 / 鏍稿績鎴愬憳 / 鍙備笌浜� */
+ /** 鎴愬憳瑙掕壊锛氫富鎸佷汉 / 鏍稿績鎴愬憳 / 鍙備笌浜猴紙鍘嗗彶瀛楁锛屼笉鍐嶅綍鍏ワ級 */
private String memberRole;
/** 鎺掑簭鍙� */
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