This commit is contained in:
=
2026-07-08 17:26:03 +08:00
parent 4d9f22096b
commit 541d76e377
5 changed files with 38 additions and 12 deletions
@@ -50,6 +50,7 @@ public class SysDataUserPullController {
cnd.andEX(Sys_user_source::getUnitName, "=", pageForm.getUnitName());
cnd.andEX(Sys_user_source::getUserState, "=", pageForm.getUserState());
cnd.andEX(Sys_user_source::getPreparedBy, "=", pageForm.getPreparedBy());
cnd.andEX(Sys_user_source::getEmploymentType, "=", pageForm.getEmploymentType());
cnd.andEX(Sys_user_source::getPersonType, "=", pageForm.getPersonType());
if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
@@ -79,7 +80,7 @@ public class SysDataUserPullController {
@At
@SaCheckPermission("sys.data.user.pull")
@ApiModelProperty("获取下拉框数据(单位、在职状态、教职工类别)")
@ApiModelProperty("获取下拉框数据(单位、在职状态、编制类别、用人方式、教职工类别)")
public Result searchOptions() {
return Result.success(sysUserPullService.searchOptions());
}
@@ -86,7 +86,7 @@ public class SysDataUserUpdateController {
cnd.and(Cnd.likeEX("u.loginname", pageForm.getLoginName()));
cnd.andEX("u.unitId", "=", pageForm.getUnitId());
cnd.andEX("u.userState", "=", pageForm.getUserState());
cnd.andEX("u.;preparedBy", "=", pageForm.getPreparedBy());
cnd.andEX("u.preparedBy", "=", pageForm.getPreparedBy());
cnd.andEX("u.personType", "=", pageForm.getPersonType());
if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
@@ -29,7 +29,10 @@ public class SysDataUserPullPageForm extends PageForm {
@ApiModelProperty("教职工类别")
private String personType;
@ApiModelProperty("用人方式")
@ApiModelProperty("编制类别")
private String preparedBy;
@ApiModelProperty("用人方式")
private String employmentType;
}
@@ -272,6 +272,7 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
unitName,
userState,
preparedBy,
employmentType,
personType
FROM
sys_user_source
@@ -279,21 +280,35 @@ public class SysDataUserPullServiceImpl extends BaseServiceImpl<Sys_user_source>
unitName,
userState,
preparedBy,
employmentType,
personType
""");
List<NutMap> list = listMap(sql);
List<String> unitNames = list.stream().map(user -> user.getString("unitName")).distinct().toList();
List<String> userStates = list.stream().map(user -> user.getString("userState")).distinct().toList();
List<String> preparedBys = list.stream().map(user -> user.getString("preparedBy")).distinct().toList();
List<String> personTypes = list.stream().map(user -> user.getString("personType")).distinct().toList();
List<String> unitNames = cleanSearchOptions(list, "unitName");
List<String> userStates = cleanSearchOptions(list, "userState");
List<String> preparedBys = cleanSearchOptions(list, "preparedBy");
List<String> employmentTypes = cleanSearchOptions(list, "employmentType");
List<String> personTypes = cleanSearchOptions(list, "personType");
return NutMap.NEW()
.addv("unitNames", unitNames)
.addv("userStates", userStates)
.addv("preparedBys", preparedBys)
.addv("employmentTypes", employmentTypes)
.addv("personTypes", personTypes);
}
/**
* 清理数据拉取页下拉选项,避免源表中的空值或前后空格生成无效筛选项。
*/
private List<String> cleanSearchOptions(List<NutMap> list, String fieldName) {
return list.stream()
.map(user -> StrUtil.trim(user.getString(fieldName)))
.filter(StrUtil::isNotBlank)
.distinct()
.toList();
}
@Override
public List<NutMap> pullTimeOptions() {
Sql sql = Sqls.create("""
@@ -47,11 +47,16 @@ layout("/layouts/platform.html"){
<el-option v-for="item in userStateOptions" :label="item" :value="item"></el-option>
</el-select>
</search-item>
<search-item label="用人方式">
<search-item label="编制类别">
<el-select v-model="pageForm.preparedBy" clearable filterable>
<el-option v-for="item in preparedByOptions" :label="item" :value="item"></el-option>
</el-select>
</search-item>
<search-item label="用人方式">
<el-select v-model="pageForm.employmentType" clearable filterable>
<el-option v-for="item in employmentTypeOptions" :label="item" :value="item"></el-option>
</el-select>
</search-item>
<search-item label="教职工类别">
<el-select v-model="pageForm.personType" clearable filterable>
<el-option v-for="item in personTypeOptions" :label="item" :value="item"></el-option>
@@ -117,6 +122,7 @@ layout("/layouts/platform.html"){
unitNameOptions: [],
userStateOptions: [],
preparedByOptions: [],
employmentTypeOptions: [],
personTypeOptions: [],
pullTimeOptions: false,
sourceTime: [],
@@ -152,10 +158,11 @@ layout("/layouts/platform.html"){
getSearchOptions() {
this.$axios.post("/platform/sys/data/user/pull/searchOptions").then((resp) => {
if (resp.code === 0) {
this.unitNameOptions = resp.data.unitNames
this.userStateOptions = resp.data.userStates
this.personTypeOptions = resp.data.personTypes
this.preparedByOptions = resp.data.preparedBys
this.$set(this, "unitNameOptions", resp.data.unitNames)
this.$set(this, "userStateOptions", resp.data.userStates)
this.$set(this, "personTypeOptions", resp.data.personTypes)
this.$set(this, "preparedByOptions", resp.data.preparedBys)
this.$set(this, "employmentTypeOptions", resp.data.employmentTypes)
}
})
},