From 8b6154a2012f01b150d6fa026cf98ce705bf6c74 Mon Sep 17 00:00:00 2001 From: "@jyuhsin" <729757837@qq.com> Date: Fri, 24 May 2024 16:11:20 +0800 Subject: [PATCH] commit --- ...ainSignUpActivityStatisticsController.java | 107 ++++++------------ .../views/mobile/train/trainInfo.html | 2 +- .../trainSingUp/manage/activity_add.html | 2 +- .../manage/include_activity_edit.html | 2 +- .../trainSingUp/manage/user_black_list.html | 8 ++ 5 files changed, 47 insertions(+), 74 deletions(-) diff --git a/src/main/java/io/v/nutz/trainSignUp/controller/statistics/TrainSignUpActivityStatisticsController.java b/src/main/java/io/v/nutz/trainSignUp/controller/statistics/TrainSignUpActivityStatisticsController.java index 456b70a..d3fa770 100644 --- a/src/main/java/io/v/nutz/trainSignUp/controller/statistics/TrainSignUpActivityStatisticsController.java +++ b/src/main/java/io/v/nutz/trainSignUp/controller/statistics/TrainSignUpActivityStatisticsController.java @@ -1,5 +1,6 @@ package io.v.nutz.trainSignUp.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; @@ -148,89 +149,53 @@ public class TrainSignUpActivityStatisticsController { List courseList = dao.query(TrainSignUpCourse.class, Cnd.where("activityId", "=", activityId)); Map courseMap = courseList.stream().collect(Collectors.toMap(o -> o.getId(), o -> o)); - //按校区分组 - Map> campus = userList.stream().collect(Collectors.groupingBy(o -> o.getString("campus"))); + //按课程分组 + Map> userListMap = userList.stream().collect(Collectors.groupingBy(v -> v.getString("courseId"))); + Workbook workbook = new XSSFWorkbook(); + userListMap.forEach((k, v) -> { - String fileName = "报名人员"; - /** - * 创建临时文件夹 - */ - String tmpPath = "tmp/" + R.UU32(); - File tmpDir = new File(tmpPath + "/" + fileName); - tmpDir.mkdirs(); + //查询课程 + TrainSignUpCourse course = courseMap.get(k); + //查询课程类型 + TrainSignUpType trainSignUpType = dao.fetch(TrainSignUpType.class, Cnd.where("id", "=", course.getCourseType())); + dao.fetchLinks(trainSignUpType, "^trainMobileSignColumnList$"); - campus.forEach((key, value) -> { - Map> userListMap = value.stream().collect(Collectors.groupingBy(v -> v.getString("courseId"))); - Workbook workbook = new XSSFWorkbook(); - userListMap.forEach((k, v) -> { + ExcelExportService service = new ExcelExportService(); + ExportParams userExportParams = new ExportParams(); + userExportParams.setTitle(course.getCourseName()); + userExportParams.setSheetName(course.getCourseName()); + userExportParams.setType(ExcelType.XSSF); - //查询课程 - TrainSignUpCourse course = courseMap.get(k); - //查询课程类型 - TrainSignUpType trainSignUpType = dao.fetch(TrainSignUpType.class, Cnd.where("id", "=", course.getCourseType())); - dao.fetchLinks(trainSignUpType, "^trainMobileSignColumnList$"); + List currentEntities = new ArrayList<>(); + currentEntities.addAll(excelCommonExportEntity); + //将课程类型配置的移动端动态字段添加到excel列中 + List trainMobileSignColumnList = trainSignUpType.getTrainMobileSignColumnList(); + if(trainMobileSignColumnList != null && trainMobileSignColumnList.size() > 0) { + trainMobileSignColumnList.forEach(item -> { + currentEntities.add(new ExcelExportEntity(item.getColumnName(), item.getColumnCode(), 20)); + }); + } - ExcelExportService service = new ExcelExportService(); - ExportParams userExportParams = new ExportParams(); - userExportParams.setTitle(course.getCourseName()); - userExportParams.setSheetName(course.getCourseName()); - userExportParams.setType(ExcelType.XSSF); - - List currentEntities = new ArrayList<>(); - currentEntities.addAll(excelCommonExportEntity); - //将课程类型配置的移动端动态字段添加到excel列中 - List trainMobileSignColumnList = trainSignUpType.getTrainMobileSignColumnList(); - if(trainMobileSignColumnList != null && trainMobileSignColumnList.size() > 0) { - trainMobileSignColumnList.forEach(item -> { - currentEntities.add(new ExcelExportEntity(item.getColumnName(), item.getColumnCode(), 20)); - }); - } - - for (NutMap userSignData : v) { - String mobileColumnsValueStr = userSignData.getString("mobileColumnsValue"); - if(StrUtil.isNotBlank(mobileColumnsValueStr)){ - List mobileColumnsValue = Json.fromJsonAsList(NutMap.class,mobileColumnsValueStr); - for (NutMap cv : mobileColumnsValue) { - if(cv.getString("columnFormType") != null && !cv.getString("columnFormType").equals("FILE")){ - userSignData.addv(cv.getString("columnCode"), cv.getString("columnValue")); - } + for (NutMap userSignData : v) { + String mobileColumnsValueStr = userSignData.getString("mobileColumnsValue"); + if(StrUtil.isNotBlank(mobileColumnsValueStr)){ + List mobileColumnsValue = Json.fromJsonAsList(NutMap.class,mobileColumnsValueStr); + for (NutMap cv : mobileColumnsValue) { + if(cv.getString("columnFormType") != null && !cv.getString("columnFormType").equals("FILE")){ + userSignData.addv(cv.getString("columnCode"), cv.getString("columnValue")); } } } - - service.createSheetForMap(workbook, userExportParams, currentEntities, v); - }); - FileOutputStream outputStream = null; - try { - outputStream = new FileOutputStream(tmpDir.getPath() + "/" + key + "报名人员.xlsx"); - workbook.write(outputStream); - outputStream.close(); - } catch (Exception e) { - e.printStackTrace(); } + + service.createSheetForMap(workbook, userExportParams, currentEntities, v); }); try { - - String aimsDir = "zipTmp/" + R.UU32(); - String aimsName = fileName + ".zip"; - String aimsPath = aimsDir + "/" + aimsName; - FileUtil.compressToZip(tmpDir.getPath(), aimsDir, aimsName); - - response.setHeader("content-disposition", "attachment;filename=" - + URLEncoder.encode(aimsName, "UTF-8")); - - File aimsFile = new File(aimsPath); - FileInputStream inputStream = new FileInputStream(aimsFile); - IOUtils.copy(inputStream, response.getOutputStream()); - inputStream.close(); - aimsFile.delete(); - - FileUtil.deleteDir(new File(tmpPath)); - FileUtil.deleteDir(new File(aimsDir)); + response.setContentType("application/octet-stream"); + response.setHeader("Content-Disposition", "attachment;filename=" + new String((activity.getActivityName() + "报名人员名单.xlsx").getBytes("utf-8"), "ISO8859-1")); + workbook.write(response.getOutputStream()); } catch (Exception e) { e.printStackTrace(); } } - - } diff --git a/src/main/resources/views/mobile/train/trainInfo.html b/src/main/resources/views/mobile/train/trainInfo.html index af7dd1c..6b8e7a9 100644 --- a/src/main/resources/views/mobile/train/trainInfo.html +++ b/src/main/resources/views/mobile/train/trainInfo.html @@ -188,7 +188,7 @@ layout("/mobile/platform.html"){ -
+
校  区: {{o.campus}}
diff --git a/src/main/resources/views/platform/trainSingUp/manage/activity_add.html b/src/main/resources/views/platform/trainSingUp/manage/activity_add.html index 3e2d415..51fe012 100644 --- a/src/main/resources/views/platform/trainSingUp/manage/activity_add.html +++ b/src/main/resources/views/platform/trainSingUp/manage/activity_add.html @@ -370,7 +370,7 @@ layout("/layouts/platform.html"){ const valid = await this.$refs['form'].validate() if (valid) { const courseValid = this.formData.courseList.some((v, i) => { - const basicValid = v.courseName && v.coursePeopleNumber && v.campus + const basicValid = v.courseName && v.coursePeopleNumber && v.courseLocation && v.courseInstructor && v.courseType const timeValid = v.courseTimeList.length > 0 && v.courseTimeList.every(x => { return x.courseStartTime && x.courseEndTime && (x.courseStartTime < x.courseEndTime) diff --git a/src/main/resources/views/platform/trainSingUp/manage/include_activity_edit.html b/src/main/resources/views/platform/trainSingUp/manage/include_activity_edit.html index 80a2ca5..210e75d 100644 --- a/src/main/resources/views/platform/trainSingUp/manage/include_activity_edit.html +++ b/src/main/resources/views/platform/trainSingUp/manage/include_activity_edit.html @@ -108,7 +108,7 @@ - +