人员更新字段调整

This commit is contained in:
2026-09-29 17:07:48 +08:00
parent 1475b3bef7
commit 387e223e3e
5 changed files with 89 additions and 2 deletions
@@ -184,7 +184,6 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
* 全量更新已有用户时置空,避免 updateIgnoreNull 把已迁移的基金会员标识覆盖为非会员。
*/
u.setAidFundMember(null);
u.setPersonType(null);
needDoUpdateList.add(u);
}
@@ -15,6 +15,8 @@ import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import javax.servlet.http.HttpServletResponse;
/**
* 待确认人员记录页面及查询接口。
*/
@@ -49,6 +51,21 @@ public class PendingConfirmUserController {
return Result.success(pendingConfirmUserService.pageData(pageForm));
}
/**
* 按当前列表查询条件导出待确认或已确认人员。
*
* @param pageForm 列表查询条件,包括姓名/工号、工会、单位、人员类型、在职状态、确认状态及排序
* @param response HTTP 文件下载响应,返回内容为 XSSF 格式的 Excel 文件
*/
@At
@Ok("void")
@SLog(tag = "待确认人员记录", msg = "按条件导出待确认人员记录")
@ApiOperation("按条件导出待确认人员记录")
@SaCheckPermission("staff.sourcechange.pending")
public void exportExcel(PendingConfirmUserPageForm pageForm, HttpServletResponse response) {
pendingConfirmUserService.exportExcel(pageForm, response);
}
/**
* 直接提交待确认人员变更,不创建会员变更申请及审批流程。
*
@@ -7,6 +7,8 @@ import com.budwk.app.zhgh.staffmanage.member.models.MemberChangeRecord;
import com.budwk.app.zhgh.staffmanage.sourcechange.param.PendingConfirmUserBatchChangeParam;
import com.budwk.app.zhgh.staffmanage.sourcechange.param.PendingConfirmUserPageForm;
import javax.servlet.http.HttpServletResponse;
/**
* 待确认人员记录业务服务。
*/
@@ -20,6 +22,14 @@ public interface PendingConfirmUserService extends BaseService<Sys_user> {
*/
Pagination pageData(PendingConfirmUserPageForm pageForm);
/**
* 按列表查询条件导出全部匹配人员,不受当前分页大小限制。
*
* @param pageForm 列表查询条件及排序条件
* @param response HTTP 文件下载响应,返回 XSSF 格式的 Excel 文件
*/
void exportExcel(PendingConfirmUserPageForm pageForm, HttpServletResponse response);
/**
* 直接提交待确认人员变更,不生成会员变更申请及流程数据。
*
@@ -1,5 +1,9 @@
package com.budwk.app.zhgh.staffmanage.sourcechange.service.impl;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.date.DateUtil;
@@ -7,6 +11,7 @@ import cn.hutool.json.JSONUtil;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.exception.BaseException;
import com.budwk.app.base.service.impl.BaseServiceImpl;
import com.budwk.app.base.utils.CommonDownloadUtil;
import com.budwk.app.base.utils.PageUtil;
import com.budwk.app.sys.models.Sys_dict;
import com.budwk.app.sys.models.Sys_user;
@@ -18,6 +23,7 @@ import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService;
import com.budwk.app.zhgh.staffmanage.sourcechange.param.PendingConfirmUserBatchChangeParam;
import com.budwk.app.zhgh.staffmanage.sourcechange.param.PendingConfirmUserPageForm;
import com.budwk.app.zhgh.staffmanage.sourcechange.service.PendingConfirmUserService;
import org.apache.poi.ss.usermodel.Workbook;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
@@ -27,6 +33,9 @@ import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.ioc.aop.Aop;
import org.nutz.lang.util.NutMap;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.LinkedHashSet;
@@ -63,6 +72,51 @@ public class PendingConfirmUserServiceImpl extends BaseServiceImpl<Sys_user> imp
*/
@Override
public Pagination pageData(PendingConfirmUserPageForm pageForm) {
Sql sql = buildQuerySql(pageForm);
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
}
/**
* 按列表全部查询条件导出人员,查询范围不受 pageNumber、pageSize 限制。
*
* @param pageForm 列表查询条件及排序条件
* @param response HTTP 文件下载响应,返回字段与列表展示字段保持一致
*/
@Override
public void exportExcel(PendingConfirmUserPageForm pageForm, HttpServletResponse response) {
List<NutMap> list = listMap(buildQuerySql(pageForm));
for (int index = 0; index < list.size(); index++) {
NutMap row = list.get(index);
row.put("index", index + 1);
row.put("pendingConfirmStatusName",
Integer.valueOf(STATUS_CONFIRMED).equals(row.getInt("pendingConfirmStatus")) ? "已确认" : "待确认");
}
List<ExcelExportEntity> exportEntities = new ArrayList<>();
exportEntities.add(new ExcelExportEntity("序号", "index", 10));
exportEntities.add(new ExcelExportEntity("工号", "loginname", 20));
exportEntities.add(new ExcelExportEntity("姓名", "username", 20));
exportEntities.add(new ExcelExportEntity("性别", "sex", 10));
exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 25));
exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30));
exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20));
exportEntities.add(new ExcelExportEntity("人员属性", "userAttribute", 20));
exportEntities.add(new ExcelExportEntity("在职状态", "userState", 15));
exportEntities.add(new ExcelExportEntity("确认状态", "pendingConfirmStatusName", 15));
ExportParams exportParams = new ExportParams();
exportParams.setType(ExcelType.XSSF);
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list);
CommonDownloadUtil.download("待确认人员记录.xlsx", workbook, response);
}
/**
* 构建分页查询和导出共用的人员 SQL,确保筛选条件、确认状态及排序口径一致。
*
* @param pageForm 查询条件,包括姓名/工号、工会、单位、人员类型、在职状态、确认状态及排序
* @return 已绑定查询条件和安全排序字段的 SQL 对象
*/
private Sql buildQuerySql(PendingConfirmUserPageForm pageForm) {
Sql sql = Sqls.create("""
SELECT
userInfo.id,
@@ -105,7 +159,7 @@ public class PendingConfirmUserServiceImpl extends BaseServiceImpl<Sys_user> imp
cnd.asc("userInfo.loginname");
}
sql.setCondition(cnd);
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return sql;
}
/**
@@ -121,6 +121,9 @@ layout("/layouts/platform.html"){
<span class="pending-confirm-tip">温馨提示:以下人员不存在信息中心数据中台端,而智慧工会端还继续存在的,这类人员可能离职、退休、去世。</span>
</template>
<div class="pending-list-toolbar-actions">
<el-button class="pending-batch-change-button" type="primary"
icon="el-icon-download" size="small"
@click="exportExcel">导出</el-button>
<el-button class="pending-batch-change-button" type="primary"
icon="el-icon-edit" size="small"
v-if="pageForm.pendingConfirmStatus === 1"
@@ -339,6 +342,10 @@ layout("/layouts/platform.html"){
this.selectedPendingUsers = []
this.doSearch()
},
/** 按当前列表筛选条件和排序导出全部匹配人员,不受当前分页大小限制。 */
exportExcel() {
this.$downLoad("/platform/sourcechange/pending/exportExcel", this.pageForm)
},
/** 保存当前页勾选的待确认人员,供批量变更使用。 */
handleSelectionChange(selection) {
this.selectedPendingUsers = (selection || []).filter((item) => item.pendingConfirmStatus === 1)