From 387e223e3e1ef9958ca971962510bdc7818579ab Mon Sep 17 00:00:00 2001 From: zhangrui Date: Tue, 29 Sep 2026 17:07:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E6=9B=B4=E6=96=B0=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SysDataUserAllUpdateServiceImpl.java | 1 - .../PendingConfirmUserController.java | 17 ++++++ .../service/PendingConfirmUserService.java | 10 ++++ .../impl/PendingConfirmUserServiceImpl.java | 56 ++++++++++++++++++- .../sourcechange/pending/index.html | 7 +++ 5 files changed, 89 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java index f7e0fd90..41d323a5 100644 --- a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java +++ b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java @@ -184,7 +184,6 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService * 全量更新已有用户时置空,避免 updateIgnoreNull 把已迁移的基金会员标识覆盖为非会员。 */ u.setAidFundMember(null); - u.setPersonType(null); needDoUpdateList.add(u); } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/controller/PendingConfirmUserController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/controller/PendingConfirmUserController.java index 7629df7f..9cd8aa03 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/controller/PendingConfirmUserController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/controller/PendingConfirmUserController.java @@ -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); + } + /** * 直接提交待确认人员变更,不创建会员变更申请及审批流程。 * diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/service/PendingConfirmUserService.java b/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/service/PendingConfirmUserService.java index e4c1d0ba..7874217d 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/service/PendingConfirmUserService.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/service/PendingConfirmUserService.java @@ -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 { */ Pagination pageData(PendingConfirmUserPageForm pageForm); + /** + * 按列表查询条件导出全部匹配人员,不受当前分页大小限制。 + * + * @param pageForm 列表查询条件及排序条件 + * @param response HTTP 文件下载响应,返回 XSSF 格式的 Excel 文件 + */ + void exportExcel(PendingConfirmUserPageForm pageForm, HttpServletResponse response); + /** * 直接提交待确认人员变更,不生成会员变更申请及流程数据。 * diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/service/impl/PendingConfirmUserServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/service/impl/PendingConfirmUserServiceImpl.java index 298796e8..ebf1ea80 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/service/impl/PendingConfirmUserServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/service/impl/PendingConfirmUserServiceImpl.java @@ -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 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 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 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 imp cnd.asc("userInfo.loginname"); } sql.setCondition(cnd); - return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return sql; } /** diff --git a/src/main/resources/views/platform/zhgh/staffmanage/sourcechange/pending/index.html b/src/main/resources/views/platform/zhgh/staffmanage/sourcechange/pending/index.html index fb70ff5d..a57c42ad 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/sourcechange/pending/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/sourcechange/pending/index.html @@ -121,6 +121,9 @@ layout("/layouts/platform.html"){ 温馨提示:以下人员不存在信息中心数据中台端,而智慧工会端还继续存在的,这类人员可能离职、退休、去世。
+ 导出 item.pendingConfirmStatus === 1)