feat: 信息查询加姓名查询

This commit is contained in:
2026-11-12 10:23:43 +08:00
parent 902ad7e0e9
commit 63fc01cbb3
8 changed files with 35 additions and 16 deletions
@@ -25,8 +25,8 @@ public class SysDataUserQueryController {
@At
@SaCheckPermission("sys.data.user.query")
public Result queryData(@Param("zgh") String zgh, @Param("pageNumber") int pageNumber,
@Param("pageSize") int pageSize) {
return Result.success(sysUserPullService.queryUsers(zgh, pageNumber, pageSize));
public Result queryData(@Param("zgh") String zgh, @Param("xm") String xm,
@Param("pageNumber") int pageNumber, @Param("pageSize") int pageSize) {
return Result.success(sysUserPullService.queryUsers(zgh, xm, pageNumber, pageSize));
}
}
@@ -15,7 +15,11 @@ public interface SysDataUserPullService extends BaseService<Sys_user_source> {
*/
Date pull();
NutMap queryUsers(String zgh, int pageNumber, int pageSize);
default NutMap queryUsers(String zgh, int pageNumber, int pageSize) {
return queryUsers(zgh, null, pageNumber, pageSize);
}
NutMap queryUsers(String zgh, String xm, int pageNumber, int pageSize);
/**
* 拉取人员博士后的信息
@@ -335,12 +335,15 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
}
@Override
public NutMap queryUsers(String zgh, int pageNumber, int pageSize) {
public NutMap queryUsers(String zgh, String xm, int pageNumber, int pageSize) {
if (pageNumber < 1 || pageSize < 1 || pageSize > 200) {
throw new BaseException("分页参数不合法");
}
if (!dataCenterProperties.isTokenEnabled()) {
JSONObject response = DataCenterUtil.queryPage(getDmpUrl(DMP_TEACHER_KEY), zgh, pageNumber, pageSize);
String jobNumber = StrUtil.trim(zgh);
String name = StrUtil.trim(xm);
boolean tokenEnabled = dataCenterProperties.isTokenEnabled();
if (!tokenEnabled && StrUtil.isBlank(name)) {
JSONObject response = DataCenterUtil.queryPage(getDmpUrl(DMP_TEACHER_KEY), jobNumber, pageNumber, pageSize);
JSONObject pageInfo = response.getJSONObject("pageInfo");
JSONArray data = response.getJSONArray("dataSet");
if (pageInfo == null || pageInfo.getLong("total") == null || data == null) {
@@ -348,10 +351,18 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
}
return NutMap.NEW().addv("list", data).addv("totalCount", pageInfo.getLong("total"));
}
String accessToken = getDmpAccessToken();
List<JSONObject> records = new ArrayList<>();
records.addAll(pullDmpUsers(getDmpUrl(DMP_TEACHER_KEY), accessToken, "在岗教职工", StrUtil.trim(zgh)));
records.addAll(pullDmpUsers(getDmpUrl(DMP_DISPATCH_KEY), accessToken, "在岗劳务派遣", StrUtil.trim(zgh)));
if (tokenEnabled) {
String accessToken = getDmpAccessToken();
records.addAll(pullDmpUsers(getDmpUrl(DMP_TEACHER_KEY), accessToken, "在岗教职工", jobNumber));
records.addAll(pullDmpUsers(getDmpUrl(DMP_DISPATCH_KEY), accessToken, "在岗劳务派遣", jobNumber));
} else {
Map<String, String> params = StrUtil.isBlank(jobNumber) ? Map.of() : Map.of("zgh", jobNumber);
records = DataCenterUtil.pullData(getDmpUrl(DMP_TEACHER_KEY), params);
}
if (StrUtil.isNotBlank(name)) {
records.removeIf(record -> !StringUtils.contains(record.getStr("XM"), name));
}
int from = (int) Math.min((long) (pageNumber - 1) * pageSize, records.size());
return NutMap.NEW().addv("list", records.subList(from, Math.min(from + pageSize, records.size())))
.addv("totalCount", records.size());
@@ -57,7 +57,7 @@ public class ClubRegisterImportController {
append(notes, "必填", "协会名称、协会类型编码、成立日期、会长工号、秘书长工号、至少3名不同发起人工号。");
append(notes, "协会编码", "选填,留空按单个注册的年度编号规则生成;已有名称或编码直接跳过,不覆盖草稿、审批中或已解散记录。");
append(notes, "成立日期", "按yyyy-MM-dd填写,如2026-10-23;支持Excel日期单元格。");
append(notes, "人员", "使用系统内已有工号。会长和秘书长各1人;副职可选多人,用逗号分隔,理事机构人员不得重复。");
append(notes, "人员", "使用系统内已有工号。会长和秘书长各至少填1人,副会长和副秘书长选填。同一职务的多个工号用英文逗号(,)分隔,理事机构人员不得重复。");
append(notes, "发起人", "至少3名不同人员,用逗号分隔;可与理事机构人员重合。");
append(notes, "联系人", "选填工号,电话及邮箱默认取人员资料;单独填写电话、邮箱时使用填写值。");
append(notes, "协会类型", "参照协会类型工作表填写编码,不填写名称。");
@@ -146,7 +146,7 @@ public class ClubRegisterImportService {
private void addManagers(List<NutMap> managers, Set<String> ids, String text, String roleCode, boolean required) {
List<String> names = split(text);
if (required && names.size() != 1) throw new IllegalArgumentException("会长、秘书长各需填写1名人员工号");
if (required && names.isEmpty()) throw new IllegalArgumentException("会长、秘书长各需至少填写1名人员工号");
if (!names.isEmpty() && sysRoleService.getByCode(roleCode) == null) {
throw new IllegalArgumentException("系统未配置协会角色:" + roleCode);
}
@@ -8,6 +8,9 @@ layout("/layouts/platform.html"){
<search-item label="工号">
<el-input placeholder="请输入工号" clearable v-model="pageForm.zgh" @keyup.enter.native="doSearch"></el-input>
</search-item>
<search-item label="姓名">
<el-input placeholder="请输入姓名" clearable v-model="pageForm.xm" @keyup.enter.native="doSearch"></el-input>
</search-item>
<el-button slot="actions" icon="el-icon-refresh-left" :disabled="tableLoading" @click="resetSearch">重置</el-button>
</search>
</el-card>
@@ -30,7 +33,7 @@ layout("/layouts/platform.html"){
data() {
return {
pageDataUrl: "/platform/sys/data/user/query/queryData",
pageForm: { zgh: "" },
pageForm: { zgh: "", xm: "" },
columns: [
{ key: "ZGH", label: "工号", alias: "ID" },
{ key: "XM", label: "姓名", alias: "" },
@@ -64,6 +67,7 @@ layout("/layouts/platform.html"){
methods: {
resetSearch() {
this.pageForm.zgh = ""
this.pageForm.xm = ""
this.doSearch()
},
formatValue(value) {
@@ -10,7 +10,7 @@ const CLUB_REGISTER_IMPORT_TEMPLATE = {
<h4>1. 下载并填写模板</h4>
<el-button type="primary" plain size="small" icon="el-icon-download" @click="download" :disabled="loading">下载模板及参数说明</el-button>
<p><strong>必填:</strong>名称、类型编码、成立日期、会长和秘书长工号、至少3名发起人工号。</p>
<p><strong>人员:</strong>会长和秘书长各1人,副职选填。多人工号用逗号分隔,理事人员不能重复。</p>
<p><strong>人员:</strong>会长和秘书长各至少填1人,副会长和副秘书长选填。同一职务的多个工号用英文逗号(,)分隔,理事人员不能重复。</p>
<p><strong>选填:</strong>协会编码留空自动生成;联系人、会费、介绍、缩略图及附件等详见模板。</p>
<p class="club-register-import-muted">协会类型来自系统字典,模板内附当前类型对照表。</p>
</section>
@@ -22,14 +22,14 @@ const SCHOOL_CLUB_MANAGE_TEMPLATE = {
<el-card shadow="never" class="mt10 club-manage-list-card">
<table-tool label="协会列表">
<template slot="content">
<el-button v-if="$auth.hasRole('SYSADMIN')" type="primary" size="small" icon="el-icon-upload2"
@click="openImport">批量导入协会</el-button>
<!-- 一级节点展示协会总览时,引导用户从左侧树选择协会查看详细信息。 -->
<span v-if="parentNode.currentTreeNode && parentNode.currentTreeNode.level === 1"
style="display: block; text-align: center; color: #f56c6c;">
温馨提醒:选择左侧树中的某个协会,可查询该协会的详细信息。
</span>
</template>
<el-button v-if="$auth.hasRole('SYSADMIN')" type="primary" size="small" icon="el-icon-upload2"
@click="openImport">批量导入协会</el-button>
</table-tool>
<el-table v-loading="tableLoading" :data="tableData" :height="tableHeight"
row-key="id" ref="tableRef">