From 084281d670907d2c832c3794d3a58c57163310ad Mon Sep 17 00:00:00 2001 From: dd3s_206 Date: Thu, 5 Mar 2026 10:08:55 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=8C=E5=B7=A5=E7=A6=8F=E5=88=A9-=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E7=A6=8F=E5=88=A9=E7=BB=9F=E8=AE=A1-=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=EF=BC=9A=20=E5=AF=BC=E5=87=BA=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=E7=BB=9F=E8=AE=A1=E8=A1=A8=EF=BC=88=E8=A1=A5?= =?UTF-8?q?=E5=85=85=E6=9C=80=E5=90=8E=E4=B8=80=E8=A1=8C=E7=9A=84=E5=90=88?= =?UTF-8?q?=E8=AE=A1=E6=95=B0=E6=8D=AE=EF=BC=89=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../statistics/WelfareSingleController.java | 52 ++++++++++++++++--- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/v/nutz/zhgh/welfare/controller/statistics/WelfareSingleController.java b/src/main/java/io/v/nutz/zhgh/welfare/controller/statistics/WelfareSingleController.java index 7e25136..73d6479 100644 --- a/src/main/java/io/v/nutz/zhgh/welfare/controller/statistics/WelfareSingleController.java +++ b/src/main/java/io/v/nutz/zhgh/welfare/controller/statistics/WelfareSingleController.java @@ -7,6 +7,7 @@ import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.afterturn.easypoi.excel.export.ExcelExportService; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.utils.MsgApi; @@ -863,26 +864,61 @@ public class WelfareSingleController { NutMap nutMap = welfareSingleService.pageData(projectId, "", "", "", ""); List tableList = nutMap.getAsList("tableList", NutMap.class); - // Json.fromJsonAsList() + List labelList = nutMap.getAsList("tableColumn", NutMap.class); + + int xh = 0; + int isAuditCount = 0; + ArrayList countList = new ArrayList<>(); for (NutMap map : tableList) { - boolean isAudit = (boolean) map.get("isAudit"); + map.setv("xh", ++xh); + boolean isAudit = map.getBoolean("isAudit"); map.setv("isAudit", isAudit ? "已核对" : "未核对"); + if (isAudit) { + isAuditCount++; + } + /*if (CollectionUtil.isNotEmpty(labelList)) { + for (int i = 0; i < labelList.size(); i++) { + String prop = labelList.get(i).getString("prop"); + if (countList.size() < labelList.size()) { + countList.add(0); + } + Integer integer = countList.get(i) == null ? 0 : countList.get(i); + countList.set(i, integer += map.getInt(prop)); + } + }*/ + } + + //放入静态列的统计数据 + NutMap countMap = NutMap.NEW(); + if (CollectionUtil.isNotEmpty(tableList)) { + tableList.add( + countMap.addv("xh", "合计") + .addv("isAudit", isAuditCount) + ); + } + + //放入动态列的统计数据 + if (CollectionUtil.isNotEmpty(labelList)) { + for (int i = 0; i < labelList.size(); i++) { + String prop = labelList.get(i).getString("prop"); +// Integer sum = countList.get(i); + int sum = tableList.stream() + .filter(t -> t.get(prop) != null) + .mapToInt(t -> t.getInt(prop)) + .sum(); + countMap.addv(prop, sum); + } } List exportEntities = new ArrayList<>(); + exportEntities.add(new ExcelExportEntity("", "xh", 20)); exportEntities.add(new ExcelExportEntity("所属工会", "welfareUnitName", 50)); - exportEntities.add(new ExcelExportEntity("本次福利会员人数", "teacherSum", 20)); //传入动态列 tableColumn - List labelList = nutMap.getAsList("tableColumn", NutMap.class); for (NutMap labeMap : labelList) { exportEntities.add(new ExcelExportEntity(labeMap.getString("label"), labeMap.get("prop"), 20)); } - exportEntities.add(new ExcelExportEntity("参加人数", "totalCount", 20)); - exportEntities.add(new ExcelExportEntity("未选人数", "unselectedTeacherSum", 20)); exportEntities.add(new ExcelExportEntity("是否核对", "isAudit", 20)); - - Workbook workbook = new XSSFWorkbook(); ExcelExportService service = new ExcelExportService(); ExportParams exportParams = new ExportParams();