diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberSummaryController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberSummaryController.java index 78a579b..225cfab 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberSummaryController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberSummaryController.java @@ -1,8 +1,16 @@ package com.budwk.app.zhgh.staffmanage.member.controller.statistics; +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.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.date.DateUtil; import com.budwk.app.base.result.Result; +import com.budwk.app.base.utils.CommonDownloadUtil; import com.budwk.app.zhgh.staffmanage.member.service.MemberStatisticsService; +import com.budwk.app.zhgh.user.singleTeacher.param.SingleTeacherPageForm; +import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Workbook; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; @@ -80,4 +88,44 @@ public class MemberSummaryController { e.printStackTrace(); } } + @At + @Ok("void") + @SaCheckPermission("member.statistics.summary") + @ApiOperation("导出Excel") + public void exportExcel(@Param("queryId") String queryId, @Param("queryType") String queryType, + @Param("currentYear") Integer currentYear, HttpServletResponse response) { + if (currentYear == null) { + currentYear = DateUtil.thisYear(); + } + List list = new ArrayList<>(); + if ("fgh".equals(queryType)) { + list = memberStatisticsService.getUnionStatisticsData(queryId, currentYear); + } else { + list = memberStatisticsService.getUnitStatisticsData(queryId, currentYear); + } + + NutMap totalMap = NutMap.NEW(); + totalMap.put("单位名称", "合计"); + totalMap.put("总人数", list.stream().mapToInt(v -> v.getInt("totalNumber", 0)).sum()); + list.add(totalMap); + + List entities = new ArrayList<>(); + if ("fgh".equals(queryType)) { + entities.add(new ExcelExportEntity("分工会", "unionName", 20)); + } else { + entities.add(new ExcelExportEntity("单位", "unitName", 20)); + entities.add(new ExcelExportEntity("分工会", "unionName", 20)); + } + entities.add(new ExcelExportEntity("总人数", "totalNumber", 15)); + + try { + ExportParams exportParams = new ExportParams(); + exportParams.setType(ExcelType.XSSF); + Workbook workbook = ExcelExportUtil.exportExcel(exportParams, entities, list); + CommonDownloadUtil.download("会员人数统计.xlsx", workbook, response); + } catch (Exception e) { + e.printStackTrace(); + } + } + } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java index 0dcdb78..33fbd5a 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java @@ -362,6 +362,7 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl imple un.id, un.unitcode AS unitCode, un.`name` AS unitName, + uni.`name`AS unionName, SUM(CASE WHEN TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) <= 40 $personCnd $yearCnd THEN 1 ELSE 0 END) AS smallForty, SUM(CASE WHEN TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) >= 41 AND TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) <= 50 $personCnd $yearCnd THEN 1 ELSE 0 END) AS smallFifty, SUM(CASE WHEN TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) >= 51 AND TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) <= 55 $personCnd $yearCnd THEN 1 ELSE 0 END) AS smallFiftyFive, @@ -371,6 +372,7 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl imple SUM(CASE WHEN sex = '女' $personCnd $yearCnd THEN 1 ELSE 0 END) AS femaleMember FROM sys_unit un + LEFT JOIN sys_union uni ON uni.id = un.unionId JOIN $table u ON u.unitId = un.id AND u.member = 1 $condition """); diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/summary/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/summary/index.html index 559772c..3d7a748 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/summary/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/summary/index.html @@ -42,7 +42,9 @@ layout("/layouts/platform.html"){ - + + 导出 +