From bde16279599743cc5cd079442896d71c3fc4c7d5 Mon Sep 17 00:00:00 2001 From: "Lihong@123456" <1090591095@qq.com> Date: Thu, 15 Oct 2020 18:07:13 +0800 Subject: [PATCH] 10-15 --- .../com/ccsens/mt/api/CompeteController.java | 10 +- .../java/com/ccsens/mt/bean/vo/CompeteVo.java | 28 ++++++ .../mt/persist/dao/CompeteEnrollDao.java | 55 +++++++++++ .../com/ccsens/mt/service/CompeteService.java | 87 +++++++++++++++++- .../ccsens/mt/service/ICompeteService.java | 10 ++ mt/src/main/resources/application.yml | 4 +- .../resources/mapper_dao/CompeteEnrollDao.xml | 69 +++++++++++++- .../main/resources/template/competeCount.xlsx | Bin 0 -> 10524 bytes tall/src/main/resources/application.yml | 4 +- .../main/java/com/ccsens/util/PoiUtil.java | 5 +- 10 files changed, 262 insertions(+), 10 deletions(-) create mode 100644 mt/src/main/resources/template/competeCount.xlsx diff --git a/mt/src/main/java/com/ccsens/mt/api/CompeteController.java b/mt/src/main/java/com/ccsens/mt/api/CompeteController.java index 5559ee0c..3cd305a7 100644 --- a/mt/src/main/java/com/ccsens/mt/api/CompeteController.java +++ b/mt/src/main/java/com/ccsens/mt/api/CompeteController.java @@ -162,7 +162,7 @@ public class CompeteController { @MustLogin - @ApiOperation(value = "报名表", notes = "") + @ApiOperation(value = "报名表详情表", notes = "") @RequestMapping(value = "/enroll", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse enrollPlayInfo(@ApiParam @Validated @RequestBody QueryDto params) throws IOException { log.info("查询各个项目报名人员信息:{}",params); @@ -170,7 +170,13 @@ public class CompeteController { return JsonResponse.newInstance().ok(enrollPlayInfoList); } - + @ApiOperation(value = "报名表人数表下载", notes = "") + @RequestMapping(value = "/enrollCount", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) + public JsonResponse enrollPlayCount(@ApiParam @Validated @RequestBody QueryDto params) throws IOException { + log.info("查询各个项目报名人员信息:{}",params); + String path = competeService.enrollPlayCount(params); + return JsonResponse.newInstance().ok(path); + } // @MustLogin diff --git a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java index b6a06df8..df9d06bf 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java +++ b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java @@ -397,4 +397,32 @@ public class CompeteVo { @ApiModelProperty("团队下的参与者id") private long player_id; } + @Data + @ApiModel("参赛各组别数信息") + public static class Count{ + @ApiModelProperty("组别名") + private String group_name; + @ApiModelProperty("某组别人数") + private int count; + @ApiModelProperty("组别id") + private Long compete_group_id; + @ApiModelProperty("团队id") + private long team_id; + } + @Data + @ApiModel("参赛项目中组别人数信息") + public static class GroupNum{ + @ApiModelProperty("项目名") + private String name; + @ApiModelProperty("参赛各组别数信息") + private List countList; + } + @Data + @ApiModel("group中的组别id") + public static class GroupIdAndName{ + @ApiModelProperty("项目id") + private int id; + @ApiModelProperty("组别名") + private String group_name; + } } diff --git a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteEnrollDao.java b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteEnrollDao.java index 7a1f276f..ef9dc8d3 100644 --- a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteEnrollDao.java +++ b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteEnrollDao.java @@ -52,5 +52,60 @@ public interface CompeteEnrollDao extends CompetePlayerMapper { */ List getTeamPlayerId(@Param("teamId")long teamId); + /** + * 查询个人项目的每个组别id和组别名 + * @param projectId 项目id + * @return 组别id + */ + List getGroupCount(@Param("projectId")long projectId); + + /** + * 查询个人项目的每个组别人数 + * @param competeGroupId 组别id + * @return 团队成员id + */ + int getGroupPlayCount(@Param("competeGroupId")long competeGroupId); + + /** + * 查询个人项目的每个组别id和组别名 + * @param projectId xiangmu id + * @return 团队成员id + */ + List getGroupIdFroPlayer(@Param("projectId")long projectId); + + /** + * 查询团队项目的每个组别id和组别名 + * @param projectId xiangmu id + * @return 团队成员id + */ + List getGroupIdFroTeam(@Param("projectId")long projectId); + + /** + * 查询团队项目的每个组别id和组别名 + * @param competeGroupId 组别id + * @return 团队id + */ + List getTeamIdByCompeteGroupId(@Param("competeGroupId")long competeGroupId); + + /** + * 查询团队项目组别下的人数 + * @param teamId 组别id + * @return renshu + */ + int getCountByTeamId(@Param("teamId")long teamId); + + /** + * 查询团队项目的每个组别参赛队伍数 + * @param competeGroupId 组别id + * @return 团队成员id + */ + int getTeamCount(@Param("competeGroupId")long competeGroupId); + + /** + * 查询团队项目的每个组别参赛队伍数 + * @param type 组别id + * @return 团队成员id + */ + List getGroupIdNameFromGroup(@Param("type")long type); } diff --git a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java index 433051ff..8c171e08 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java @@ -24,6 +24,8 @@ import com.ccsens.util.exception.BaseException; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.core.io.DefaultResourceLoader; +import org.springframework.core.io.ResourceLoader; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -613,6 +615,7 @@ public class CompeteService implements ICompeteService{ //查询报名信息 int typeId = competeType.getType(); ArrayList arrayList = new ArrayList(); + List string = null; //1:查询该类型下所有项目的id,name,team信息,排除level为1的 List projectInfoList = competeEnrollDao.getProject(typeId); //2:根据team字段判断是否为团队项目 @@ -681,7 +684,6 @@ public class CompeteService implements ICompeteService{ //8:关联金山在线文档 String name = "跳绳比赛报名表" + ".xlsx"; String filepath = "mt/" + DateUtil.today() + "/" + System.currentTimeMillis() + ".xlsx"; - String path = PropUtil.path + filepath; File tmpFile = new File(path); if (!tmpFile.getParentFile().exists()) { @@ -715,7 +717,88 @@ public class CompeteService implements ICompeteService{ e.printStackTrace(); } return filePath.get(0); - } + } + @Override + public String enrollPlayCount(QueryDto params) throws IOException { + //查询该类型下所有项目的id,name,team信息,排除level为1的的集合 + int typeId = 2; + //放总数据集合 + List list1 = new ArrayList<>(); + //根据type 查项目 + List projectInfoList = competeEnrollDao.getProject(typeId); + //根据type 查组别id,组别名 + List groupIdAndNameList = competeEnrollDao.getGroupIdNameFromGroup(typeId); + for (CompeteVo.ProjectInfo projectInfo : projectInfoList) { + CompeteVo.GroupNum groupNum = new CompeteVo.GroupNum(); + groupNum.setName(projectInfo.getName()); + //查询所有组别 + List countList = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(groupIdAndNameList)) { + for (CompeteVo.Count groupIdAndName : groupIdAndNameList) { + CompeteVo.Count count1 = new CompeteVo.Count(); + count1.setGroup_name(groupIdAndName.getGroup_name()); +// groupIdAndNameList.forEach(groupIdAndName -> { + if (projectInfo.getTeam() == 0) { + CompeteProjectPlayerExample projectPlayerExample = new CompeteProjectPlayerExample(); + projectPlayerExample.createCriteria().andProjectIdEqualTo(projectInfo.getId()).andCompeteGroupIdEqualTo(groupIdAndName.getCompete_group_id()); + long count = competeProjectPlayerMapper.countByExample(projectPlayerExample); + count1.setCount((int) count); + } else { + CompeteTeamExample teamExample = new CompeteTeamExample(); + teamExample.createCriteria().andProjectIdEqualTo(projectInfo.getId()).andCompeteGroupIdEqualTo(groupIdAndName.getCompete_group_id()); + long count = competeTeamDao.countByExample(teamExample); + count1.setCount((int) count); + } +// }); + countList.add(count1); + } + } + groupNum.setCountList(countList); + list1.add(groupNum); + } + //7:将数据放入excel表格 + ResourceLoader resourceLoader = new DefaultResourceLoader(); + InputStream is = resourceLoader.getResource("classpath:template/competeCount.xlsx").getInputStream(); + Workbook workbook = new XSSFWorkbook(is); + //生成excel表格对象,并将数据放入 + //生成表对象 + List> list = new ArrayList<>(); + //生成行对象 + List poiUtilCellList1 = new ArrayList<>(); + List poiUtilCellList2 = new ArrayList<>(); + List poiUtilCellList3 = new ArrayList<>(); + list.add(poiUtilCellList1); + list.add(poiUtilCellList2); + list.add(poiUtilCellList3); + + list1.forEach(excelist ->{ + List title = new ArrayList<>(); + title.add(new PoiUtil.PoiUtilCell()); + title.add(new PoiUtil.PoiUtilCell()); + title.add(new PoiUtil.PoiUtilCell()); + excelist.getCountList().forEach(count -> { + title.add(new PoiUtil.PoiUtilCell(String.valueOf(count.getCount()))); + }); + list.add(title); + }); + Workbook wbs = PoiUtil.exportWB("统计表", list, workbook); + String name = "跳绳比赛报名人数统计表" + ".xlsx"; + String filepath = "mt/" + DateUtil.today() + "/" + System.currentTimeMillis() + ".xlsx"; + String path = PropUtil.path + filepath; + File tmpFile = new File(path); + if (!tmpFile.getParentFile().exists()) { + tmpFile.getParentFile().mkdirs(); + } + File file = new File(path); + try { + OutputStream outputStream = new FileOutputStream(file); + wbs.write(outputStream); + outputStream.close(); + }catch (IOException e) { + e.printStackTrace(); + } + return PropUtil.imgDomain + filepath; + } } diff --git a/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java b/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java index 87c616c4..791e1949 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java @@ -121,4 +121,14 @@ public interface ICompeteService { * @return 返回参赛者的详细信息 */ String enrollPlayInfo(QueryDto params) throws IOException; + + /** + * 根据项目类型查询参赛者信息 + * @param params 无 + * @return 返回参赛者数量 + */ + String enrollPlayCount(QueryDto params) throws IOException; + } + + diff --git a/mt/src/main/resources/application.yml b/mt/src/main/resources/application.yml index d082c0ea..5c2cd5c4 100644 --- a/mt/src/main/resources/application.yml +++ b/mt/src/main/resources/application.yml @@ -1,4 +1,4 @@ spring: profiles: - active: prod - include: common, util-prod \ No newline at end of file + active: dev + include: common, util-dev \ No newline at end of file diff --git a/mt/src/main/resources/mapper_dao/CompeteEnrollDao.xml b/mt/src/main/resources/mapper_dao/CompeteEnrollDao.xml index 2572f53d..2260dcaa 100644 --- a/mt/src/main/resources/mapper_dao/CompeteEnrollDao.xml +++ b/mt/src/main/resources/mapper_dao/CompeteEnrollDao.xml @@ -20,6 +20,13 @@ + + + + + + + - \ No newline at end of file + + + + + + + + + diff --git a/mt/src/main/resources/template/competeCount.xlsx b/mt/src/main/resources/template/competeCount.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a3ee6592985314dcb51cbb2877bfc30c2ff29e18 GIT binary patch literal 10524 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 mNB%pL=vnvIs=54!?w`COd1 cells = rows.get(i); for (int j = 0; j < cells.size(); j++) { CellStyle style = wb.createCellStyle(); - + //将内容按顺序赋给对应的列对象 PoiUtilCell cell = cells.get(j); + if (StrUtil.isEmpty(cell.value)){ + continue; + } Cell newCell = row.createCell(j); //设置行高 if (ObjectUtil.isNotNull(cell.height)) {