From b28a3a81c939cf27e3ddf7abe95a26d8673434bc Mon Sep 17 00:00:00 2001 From: = <=> Date: Tue, 9 Dec 2025 13:56:33 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A6=8F=E5=88=A9=E6=94=B6=E8=B4=A7=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WelfareListController.java | 10 +- .../welfare/param/WelfareListPageForm.java | 5 + .../welfare/service/WelfareListService.java | 7 + .../service/impl/WelfareListServiceImpl.java | 130 +++++++++++++++--- .../zhgh/welfare/welfareUser/index.html | 80 +++++++++-- 5 files changed, 202 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareListController.java b/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareListController.java index a6d1c14..7ece19a 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareListController.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareListController.java @@ -107,11 +107,19 @@ public class WelfareListController { return Result.success(); } + @At + @SaCheckPermission("welfare.list.mange") + @ApiOperation("导出收货地址") + @Ok("void") + public void exportAddress(WelfareListPageForm pageForm, HttpServletResponse response) { + welfareListService.exportAddress(pageForm, response); + } + @At @SaCheckPermission("welfare.list.mange") @ApiOperation("导出") @Ok("void") - public void exportXlsx(@Param("pageForm") WelfareListPageForm pageForm, HttpServletResponse response) { + public void exportXlsx(WelfareListPageForm pageForm, HttpServletResponse response) { welfareListService.exportXlsx(pageForm, response); } diff --git a/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareListPageForm.java b/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareListPageForm.java index f16777e..dc00d58 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareListPageForm.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareListPageForm.java @@ -7,6 +7,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.util.Date; +import java.util.Map; +import java.util.List; @EqualsAndHashCode(callSuper = true) @Data @@ -55,4 +57,7 @@ public class WelfareListPageForm extends PageForm { @ApiModelProperty("在职状态") private String[] userStates; + @ApiModelProperty("导出的数据") + private List> columns; + } diff --git a/src/main/java/com/budwk/app/zhgh/welfare/service/WelfareListService.java b/src/main/java/com/budwk/app/zhgh/welfare/service/WelfareListService.java index 6b231b3..efa8c9e 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/service/WelfareListService.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/service/WelfareListService.java @@ -46,6 +46,13 @@ public interface WelfareListService extends BaseService { */ void addWelfareUser(WelfareFilterUserPageForm pageForm); + /** + * 导出收货地址 + * @param pageForm + * @param response + */ + void exportAddress(WelfareListPageForm pageForm, HttpServletResponse response); + /** * 导出 * @param pageForm diff --git a/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareListServiceImpl.java b/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareListServiceImpl.java index 4296672..b6ad1d7 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareListServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareListServiceImpl.java @@ -553,6 +553,82 @@ public class WelfareListServiceImpl extends BaseServiceImpl impleme dao().insert(welfareList); } + @Override + public void exportAddress(WelfareListPageForm pageForm, HttpServletResponse response) { + Sql sql = Sqls.create(""" + SELECT + t1.*, + t2.loginname, + t2.username, + t2.sex, + DATE_FORMAT(t2.birthday, '%Y-%m-%d') AS birthday, + CONCAT('收货人:',t3.userName,' 电话:',t3.tel,' 详细地址:',t3.province, t3.city, t3.county, t3.addressDetail) AS address + FROM + `welfare_list` t1 + LEFT JOIN sys_user t2 ON t2.id = t1.userId + LEFT JOIN ( + SELECT + userId, + userName, + tel, + province, + city, + county, + addressDetail, + ROW_NUMBER() OVER (PARTITION BY userId ORDER BY isDefault DESC, id) as rn + FROM welfare_member_address + ) t3 ON t3.userId = t1.userId AND t3.rn = 1 + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("t1.projectId", "=", pageForm.getProjectId()); + if (StrUtil.isNotBlank(pageForm.getUserName())) { + cnd.where().andLike("t2.username", pageForm.getUserName()); + } + if (StrUtil.isNotBlank(pageForm.getLoginName())) { + cnd.where().andLike("t2.loginname", pageForm.getLoginName()); + } + cnd.andEX("t2.sex", "=", pageForm.getSex()); + cnd.andEX("t2.birthday", "=", pageForm.getBirthday()); + if (pageForm.getBirthMonths() != null && pageForm.getBirthMonths().length > 0) { + cnd.andEX("MONTH(t2.birthday)", "in", pageForm.getBirthMonths()); + } + cnd.andEX("t1.welfareUnitId", "in", pageForm.getUnitIds()); + cnd.andEX("t1.welfareUnionId", "=", pageForm.getUnionId()); + cnd.andEX("t1.personType", "in", pageForm.getPersonTypes()); + cnd.andEX("t1.preparedBy", "in", pageForm.getPreparedBys()); + cnd.andEX("t1.userState", "in", pageForm.getUserStates()); + + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.asc("t1.welfareUnionName"); + cnd.asc("t1.welfareUnitName"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + + sql.setCondition(cnd); + List list = listMap(sql); + + try { + Workbook workbook = null; + List exportEntities = new ArrayList<>(); + exportEntities.add(new ExcelExportEntity("工号", "loginname", 20)); + exportEntities.add(new ExcelExportEntity("姓名", "username", 20)); + exportEntities.add(new ExcelExportEntity("收货地址", "address", 70)); + exportEntities.add(new ExcelExportEntity("所属工会", "welfareUnionName", 20)); + exportEntities.add(new ExcelExportEntity("所属单位", "welfareUnitName", 30)); + + ExportParams exportParams = new ExportParams(); + exportParams.setType(ExcelType.XSSF); + workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list); + + + CommonDownloadUtil.download("收货地址汇总.xlsx", workbook, response); + } catch (Exception e) { + e.printStackTrace(); + } + } + @Override public void exportXlsx(WelfareListPageForm pageForm, HttpServletResponse response) { Sql sql = Sqls.create(""" @@ -596,26 +672,46 @@ public class WelfareListServiceImpl extends BaseServiceImpl impleme sql.setCondition(cnd); List list = listMap(sql); - List entities = new ArrayList<>(); - entities.add(new ExcelExportEntity("工号", "loginname", 20)); - entities.add(new ExcelExportEntity("姓名", "username", 20)); - entities.add(new ExcelExportEntity("性别", "sex", 20)); - entities.add(new ExcelExportEntity("出生日期", "birthday", 20)); - entities.add(new ExcelExportEntity("人员类型", "personType", 20)); - entities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20)); - entities.add(new ExcelExportEntity("在职状态", "userState", 20)); - entities.add(new ExcelExportEntity("所属工会", "welfareUnionName", 20)); - entities.add(new ExcelExportEntity("所属单位", "welfareUnitName", 20)); - entities.add(new ExcelExportEntity("备注", "remark", 20)); + try { + Workbook workbook = null; + if (Lang.isNotEmpty(pageForm.getColumns())) { + List exportEntities = new ArrayList<>(); + + pageForm.getColumns().forEach(column -> { + exportEntities.add(new ExcelExportEntity(column.get("label"), column.get("prop"), 20)); + }); + ExportParams exportParams = new ExportParams(); + exportParams.setType(ExcelType.XSSF); + + workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list); + } else { + workbook = setHistoryExcelData(list); + } - // 设置导出参数 - ExportParams exportParams = new ExportParams(); - exportParams.setType(ExcelType.XSSF); - // 导出Excel并下载 - try (Workbook workbook = ExcelExportUtil.exportExcel(exportParams, entities, list)) { CommonDownloadUtil.download("福利名单.xlsx", workbook, response); } catch (Exception e) { - log.error("导出Excel失败", e); + e.printStackTrace(); } } + + public Workbook setHistoryExcelData(List list) { + List exportEntities = new ArrayList<>(); + exportEntities.add(new ExcelExportEntity("工号", "loginname", 20)); + exportEntities.add(new ExcelExportEntity("姓名", "username", 20)); + exportEntities.add(new ExcelExportEntity("性别", "sex", 20)); + exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20)); + exportEntities.add(new ExcelExportEntity("身份证号", "idCard", 30)); + exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20)); + exportEntities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20)); + exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20)); + exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20)); + exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30)); +// exportEntities.add(new ExcelExportEntity("来校年月", "comeSchoolDate", 30)); +// exportEntities.add(new ExcelExportEntity("所在科室", "threeUnitName", 20)); +// exportEntities.add(new ExcelExportEntity("工会小组", "unionGroupName", 30)); + + ExportParams exportParams = new ExportParams(); + exportParams.setType(ExcelType.XSSF); + return ExcelExportUtil.exportExcel(exportParams, exportEntities, list); + } } diff --git a/src/main/resources/views/platform/zhgh/welfare/welfareUser/index.html b/src/main/resources/views/platform/zhgh/welfare/welfareUser/index.html index 1ab589e..1e5993f 100644 --- a/src/main/resources/views/platform/zhgh/welfare/welfareUser/index.html +++ b/src/main/resources/views/platform/zhgh/welfare/welfareUser/index.html @@ -130,6 +130,9 @@ layout("/layouts/platform.html"){ + + 导出收货地址 + 导出名单 @@ -145,6 +148,38 @@ layout("/layouts/platform.html"){ > 添加人员 + + + +
+ 全选 + 反选 +
+ +
+ + + {{ f.label }} + + +
+ + + 列设置 + +