From 92cdc626573a2f33e29d67cdfb872ecba52de5a0 Mon Sep 17 00:00:00 2001 From: zhouhefeng Date: Wed, 14 May 2025 11:04:55 +0800 Subject: [PATCH] commit --- .../controller/ActScoreEnterController.java | 31 ++++++++++++++---- .../module/activity/models/ActivityItem.java | 4 +++ .../main/resources/templates/scoreEnter.xlsx | Bin 11322 -> 11163 bytes 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/backend/src/main/java/com/budwk/app/module/activity/controller/ActScoreEnterController.java b/backend/src/main/java/com/budwk/app/module/activity/controller/ActScoreEnterController.java index 838ad36..123be7d 100644 --- a/backend/src/main/java/com/budwk/app/module/activity/controller/ActScoreEnterController.java +++ b/backend/src/main/java/com/budwk/app/module/activity/controller/ActScoreEnterController.java @@ -166,14 +166,31 @@ public class ActScoreEnterController { """).setParam("activityId", activityId); List listMap = activityService.listMap(sql); List itemList = activityService.dao().query(ActivityItem.class, Cnd.where(ActivityItem::getActivityId, "=", activityId).asc(ActivityItem::getSort)); + itemList.forEach(item -> { + item.setScoreName("得分"); + item.setRankingName("名次"); + }); ActivityItem activityItem = new ActivityItem(); activityItem.setName("总分"); activityItem.setId(0L); itemList.add(activityItem); List scoreList = dao.query(ActItemGroupScore.class, Cnd.where(ActItemGroupScore::getActivityId, "=", activityId)); - listMap.stream().forEach(group -> { - itemList.forEach(item -> { + List> itemLists = new ArrayList<>(); + + Map itemListMap = new HashMap<>(); + itemList.forEach(item -> { + itemListMap.put("name",item.getName()); + itemListMap.put("scoreName","成绩"); + itemListMap.put("rankingName","名次"); + itemListMap.put("scoreVal","t." + item.getName() + ".score"); + itemListMap.put("rankingVal","t." + item.getName() + ".ranking"); + itemLists.add(itemListMap); + }); + for (int j = 0; j < listMap.size(); j++) { + NutMap group = listMap.get(j); + for (int i = 0; i < itemList.size(); i++) { + ActivityItem item = itemList.get(i); if (item.getId() == 0) { BigDecimal totalScore = scoreList.stream().filter(score -> score.getGroupId().equals(group.getLong("id")) && score.getScore() != null).map(ActItemGroupScore::getScore).reduce(BigDecimal::add).orElse(new BigDecimal(0)); group.put("totalScore", totalScore); @@ -181,14 +198,14 @@ public class ActScoreEnterController { ActItemGroupScore itemGroupScore = scoreList.stream().filter(score -> score.getGroupId().equals(group.getLong("id")) && score.getItemId().equals(item.getId())).findFirst().orElse(null); - group.put(item.getName() + "score", itemGroupScore.getScore()); - group.put(item.getName() + "ranking", itemGroupScore.getRanking()); + group.put("score", itemGroupScore.getScore()); + group.put("ranking", itemGroupScore.getRanking()); } - }); - }); + } + } Map map = new HashMap(); map.put("mapList", listMap); - map.put("title", activity.getTitle()); + map.put("activityName", activity.getTitle()); map.put("itemList", itemList); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=" + new String((activity.getTitle() + "评分表.xlsx").getBytes(StandardCharsets.UTF_8), "ISO8859-1")); diff --git a/backend/src/main/java/com/budwk/app/module/activity/models/ActivityItem.java b/backend/src/main/java/com/budwk/app/module/activity/models/ActivityItem.java index 572cc6a..8659baf 100644 --- a/backend/src/main/java/com/budwk/app/module/activity/models/ActivityItem.java +++ b/backend/src/main/java/com/budwk/app/module/activity/models/ActivityItem.java @@ -55,4 +55,8 @@ public class ActivityItem extends BaseModel { @Column @ColDefine(type = ColType.INT) private Integer sort; + private String scoreName; + private String rankingName; + private String scoreVal; + private String rankingVal; } diff --git a/backend/src/main/resources/templates/scoreEnter.xlsx b/backend/src/main/resources/templates/scoreEnter.xlsx index 7d16646557b503a3ca40d9c92e241c4a89905c73..6880a0e272c5daf9e0733da2eaa14f2bf2575aba 100644 GIT binary patch delta 5938 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 R(T)Q~ut7+%T{-?)@IOMXA;SOw delta 6080 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