diff --git a/mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java b/mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java index b181298c..e2671074 100644 --- a/mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java +++ b/mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java @@ -69,9 +69,9 @@ public class CompeteScoreController { @ApiOperation(value = "花样赛成绩查看", notes = "Mr.王 -----从花样赛成绩表里面查看出这个人得成绩") @RequestMapping(value = "/showResult", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> showResult (@ApiParam @Validated @RequestBody QueryDto params){ + public JsonResponse> showResult (@ApiParam @Validated @RequestBody QueryDto params){ log.info("花样赛详细分数查看:{}",params); - List totalScoreDisplaysList= competeService.showResult(params.getParam()); + PageInfo totalScoreDisplaysList= competeService.showResult(params.getParam()); return JsonResponse.newInstance().ok(totalScoreDisplaysList); } @@ -104,14 +104,24 @@ public class CompeteScoreController { } +// @MustLogin +// @ApiOperation(value = "查看计数赛成绩公示表", notes = "多表关联之后,查询当前你场次得分数信息") +// @RequestMapping(value = "/query/countScoreAll", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) +// public JsonResponse queryCountScoreAll(@ApiParam @Validated @RequestBody QueryDto params) { +// log.info("查看计数赛成绩公示表:{}",params); +// PageInfo countScoreCurrentSites = competeService.queryCountScoreAll(params.getParam()); +// log.info("查看计数赛成绩公示表:{}",params); +// return JsonResponse.newInstance().ok(countScoreCurrentSites); +// } + @MustLogin @ApiOperation(value = "查看计数赛成绩公示表", notes = "多表关联之后,查询当前你场次得分数信息") @RequestMapping(value = "/query/countScoreAll", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse queryCountScoreAll(@ApiParam @Validated @RequestBody QueryDto params) { - log.info("查看计数赛成绩公示表:{}",params); - PageInfo countScoreCurrentSites = competeService.queryCountScoreAll(params.getParam()); + public JsonResponse queryCountScoreAll(@ApiParam @Validated @RequestBody QueryDto params) { log.info("查看计数赛成绩公示表:{}",params); - return JsonResponse.newInstance().ok(countScoreCurrentSites); + PageInfo pageInfo = competeService.queryCountScore(params.getParam()); + log.info("查看计数赛成绩公示表:{}",pageInfo); + return JsonResponse.newInstance().ok(pageInfo); } @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 7408638b..14cae18d 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 @@ -492,6 +492,8 @@ public class CompeteVo { public BigDecimal referee0 = new BigDecimal(0); @ApiModelProperty("最后得分") public BigDecimal result = new BigDecimal(0); +// @ApiModelProperty("排名") +// public int rownum; @ApiModelProperty("排名") public int order; @ApiModelProperty("备注") diff --git a/mt/src/main/java/com/ccsens/mt/bean/vo/ScoreVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/ScoreVo.java index c9fe1a48..49f97b48 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/vo/ScoreVo.java +++ b/mt/src/main/java/com/ccsens/mt/bean/vo/ScoreVo.java @@ -229,4 +229,29 @@ public class ScoreVo { private int rangee; } + @Data + @ApiModel("计数赛成绩公示-返回") + public static class CountScorePublicity{ + @ApiModelProperty("组别") + private String groupName; + @ApiModelProperty("团队名") + private String companyName; + @ApiModelProperty("姓名") + private String name; + @ApiModelProperty("主裁1打分") + private BigDecimal mainOneScore; + @ApiModelProperty("主裁2打分") + private BigDecimal mainTwoScore; + @ApiModelProperty("应得分") + private Integer shouldScore; + @ApiModelProperty("扣除次数") + private Integer deductTime; + @ApiModelProperty("最终成绩") + private BigDecimal finalScore; + @ApiModelProperty("备注") + private String remark; + @ApiModelProperty("名次") + private int rangee; + } + } diff --git a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteScoreDao.java b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteScoreDao.java index e365e50e..246c37b5 100644 --- a/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteScoreDao.java +++ b/mt/src/main/java/com/ccsens/mt/persist/dao/CompeteScoreDao.java @@ -52,10 +52,48 @@ public interface CompeteScoreDao { List queryEight(@Param("projectId") Long projectId, @Param("competeTimeId") Long competeTimeId); /** - * 花样赛前八名 + * 计数赛限组别前八名 * @param projectId 项目ID * @param competeTimeId 大赛ID * @return 前八名 */ - List queryEightFancyRope(@Param("projectId") Long projectId, @Param("competeTimeId") Long competeTimeId); + List queryEightGroupLimit(@Param("projectId") Long projectId, @Param("competeTimeId") Long competeTimeId); + + /** + * 花样赛不限组别前八名 + * @param projectId 项目ID + * @param competeTimeId 大赛ID + * @return 前八名 + */ + List queryEightGroupNotLimit(@Param("projectId") Long projectId, @Param("competeTimeId") Long competeTimeId); + + /** + * 花样赛限组别前八名 + * @param projectId 项目ID + * @param competeTimeId 大赛ID + * @return 前八名 + */ + List queryEightVarietyGroupLimit(@Param("projectId") Long projectId, @Param("competeTimeId") Long competeTimeId); + + + /** + * 查询计数赛中团体赛成绩 + * @param projectId 项目ID + * @return 成绩 + */ + List queryCountScoreTeam(@Param("projectId") Long projectId); + + /** + * 查询计数赛中个人赛成绩 + * @param projectId 项目ID + * @return 成绩 + */ + List queryCountScorePerson(@Param("projectId") Long projectId); + + /** + * 统计花样赛成绩 + * @param projectId 项目ID + * @return 成绩 + */ + List queryVarietyScore(@Param("projectId") Long projectId); } 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 4b15592b..a57c181b 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java @@ -212,126 +212,131 @@ public class CompeteService implements ICompeteService { * @param param */ @Override - public List showResult(ScoreDto.ShowResultW param) { - List totalScoreDisplaysList=new ArrayList<>(); - CompeteStartOrderExample competeStartOrderExample =new CompeteStartOrderExample(); - competeStartOrderExample.createCriteria().andProjectIdEqualTo(param.getProjectId()); - competeStartOrderExample.setOrderByClause("player_id DESC"); - List competeStartOrdersList = competeStartOrderMapper.selectByExample(competeStartOrderExample); -// if(competeStartOrdersList.size()<1){ -// throw new BaseException(CodeEnum.PARAM_ERROR); -// } - competeStartOrdersList.forEach(competeStartOrder -> { - //一个人或者一个团队得数据 - CompeteVo.TotalScoreDisplay totalScoreDisplay = new CompeteVo.TotalScoreDisplay(); - totalScoreDisplay.setRemark(totalScoreDisplay.getRemark()); - //项目名 -// CompeteProject project = competeProjectMapper.selectByPrimaryKey(competeStartOrder.getProjectId()); -// if(ObjectUtil.isNotNull(project)) { -// totalScoreDisplay.setCompanyName(project.getName()); -// } - //名字 - if(competeStartOrder.getTeam().equals((byte) 0)){ - //个人人名 - CompetePlayer player = competePlayerDao.selectByPrimaryKey(competeStartOrder.getPlayerId()); - if(ObjectUtil.isNotNull(player)) { - totalScoreDisplay.setPeopleName(player.getName()); - //个人所属团队名 - CompeteCompany competeCompany = competeCompanyMapper.selectByPrimaryKey(player.getCompanyId()); - if (ObjectUtil.isNotNull(competeCompany)){ - totalScoreDisplay.setCompanyName(competeCompany.getName()); - } - } - }else { - //团体名 - CompeteTeam competeTeam = competeTeamDao.selectByPrimaryKey(competeStartOrder.getPlayerId()); - CompeteCompany competeCompany =competeCompanyMapper.selectByPrimaryKey(competeTeam.getCompanyId()); - totalScoreDisplay.setCompanyName(competeCompany.getName()); - //团队人名 - CompeteTeamMemberExample competeTeamMemberExample = new CompeteTeamMemberExample(); - competeTeamMemberExample.createCriteria().andCompeteTeamIdEqualTo(competeTeam.getId()); - List competeTeamMemberList = competeTeamMemberMapper.selectByExample(competeTeamMemberExample); - StringBuilder stringBuilder=new StringBuilder(""); - competeTeamMemberList.forEach(mes->{ - CompetePlayer competePlayer = competePlayerDao.selectByPrimaryKey(mes.getPlayerId()); - stringBuilder.append(competePlayer.getName()+"、"); - }); - //totalScoreDisplay.setPeopleName(stringBuilder.toString()); -// CompeteTeamMemberExample competeTeamMemberExample =new CompeteTeamMemberExample(); -// competeTeamMemberExample.createCriteria().andCompeteTeamIdEqualTo(competeStartOrder.getPlayerId()); -// List competeTeamMembersList = competeTeamMemberMapper.selectByExample(competeTeamMemberExample); + public PageInfo showResult(ScoreDto.ShowResultW param) { + PageHelper.startPage(param.getPageNum(), param.getPageSize()); + List list = competeScoreDao.queryVarietyScore(param.getProjectId()); + return new PageInfo<>(list); + } +// public List showResult(ScoreDto.ShowResultW param) { +// List totalScoreDisplaysList=new ArrayList<>(); +// CompeteStartOrderExample competeStartOrderExample =new CompeteStartOrderExample(); +// competeStartOrderExample.createCriteria().andProjectIdEqualTo(param.getProjectId()); +// competeStartOrderExample.setOrderByClause("player_id DESC"); +// List competeStartOrdersList = competeStartOrderMapper.selectByExample(competeStartOrderExample); +//// if(competeStartOrdersList.size()<1){ +//// throw new BaseException(CodeEnum.PARAM_ERROR); +//// } +// competeStartOrdersList.forEach(competeStartOrder -> { +// //一个人或者一个团队得数据 +// CompeteVo.TotalScoreDisplay totalScoreDisplay = new CompeteVo.TotalScoreDisplay(); +// totalScoreDisplay.setRemark(totalScoreDisplay.getRemark()); +// //项目名 +//// CompeteProject project = competeProjectMapper.selectByPrimaryKey(competeStartOrder.getProjectId()); +//// if(ObjectUtil.isNotNull(project)) { +//// totalScoreDisplay.setCompanyName(project.getName()); +//// } +// //名字 +// if(competeStartOrder.getTeam().equals((byte) 0)){ +// //个人人名 +// CompetePlayer player = competePlayerDao.selectByPrimaryKey(competeStartOrder.getPlayerId()); +// if(ObjectUtil.isNotNull(player)) { +// totalScoreDisplay.setPeopleName(player.getName()); +// //个人所属团队名 +// CompeteCompany competeCompany = competeCompanyMapper.selectByPrimaryKey(player.getCompanyId()); +// if (ObjectUtil.isNotNull(competeCompany)){ +// totalScoreDisplay.setCompanyName(competeCompany.getName()); +// } +// } +// }else { +// //团体名 +// CompeteTeam competeTeam = competeTeamDao.selectByPrimaryKey(competeStartOrder.getPlayerId()); +// CompeteCompany competeCompany =competeCompanyMapper.selectByPrimaryKey(competeTeam.getCompanyId()); +// totalScoreDisplay.setCompanyName(competeCompany.getName()); +// //团队人名 +// CompeteTeamMemberExample competeTeamMemberExample = new CompeteTeamMemberExample(); +// competeTeamMemberExample.createCriteria().andCompeteTeamIdEqualTo(competeTeam.getId()); +// List competeTeamMemberList = competeTeamMemberMapper.selectByExample(competeTeamMemberExample); // StringBuilder stringBuilder=new StringBuilder(""); -// competeTeamMembersList.forEach(competeTeamMember -> { -// stringBuilder.append(competePlayerDao.selectByPrimaryKey(competeTeamMember.getPlayerId()).getName()+'、'); +// competeTeamMemberList.forEach(mes->{ +// CompetePlayer competePlayer = competePlayerDao.selectByPrimaryKey(mes.getPlayerId()); +// stringBuilder.append(competePlayer.getName()+"、"); // }); - String namess=stringBuilder.toString().substring(0,stringBuilder.length()-1); - totalScoreDisplay.setPeopleName(namess); - } - List results = competeTimeDao.selectJudgmentS(competeStartOrder.getId()); - //7个教练成绩也上去了 - for (CompeteVo.Result r :results){ - if(r.getChief()==0){ - totalScoreDisplay.setReferee0(r.getScore()); - }else if(r.getChief()==1){ - totalScoreDisplay.setReferee1(r.getScore()); - }else if(r.getChief()==2){ - totalScoreDisplay.setReferee2(r.getScore()); - }else if(r.getChief()==3){ - totalScoreDisplay.setReferee3(r.getScore()); - }else if(r.getChief()==4){ - totalScoreDisplay.setReferee4(r.getScore()); - }else if(r.getChief()==5){ - totalScoreDisplay.setReferee5(r.getScore()); - }else if(r.getChief()==6){ - totalScoreDisplay.setReferee6(r.getScore()); - } - } - BigDecimal bigDecimal1to3=new BigDecimal(0); - bigDecimal1to3.add(totalScoreDisplay.getReferee1()).add(totalScoreDisplay.getReferee2()).add(totalScoreDisplay.getReferee3()); - BigDecimal bigDecimalavg1to3=new BigDecimal(0); - BigDecimal bignum=new BigDecimal(3); - totalScoreDisplay.setAvg1To3(bigDecimalavg1to3.divide(bignum,2,BigDecimal.ROUND_HALF_UP)); - - BigDecimal bigDecimal4to6=new BigDecimal(0); - bigDecimal4to6.add(totalScoreDisplay.getReferee4()).add(totalScoreDisplay.getReferee5()).add(totalScoreDisplay.getReferee6()); - BigDecimal bigDecimalavg4to6=new BigDecimal(0); - BigDecimal bignum1=new BigDecimal(3); - totalScoreDisplay.setAvg4To6(bigDecimalavg4to6.divide(bignum1,2,BigDecimal.ROUND_HALF_UP)); - //总成绩也出来了 - BigDecimal re=new BigDecimal(0); - re.add(totalScoreDisplay.getAvg1To3()).add(totalScoreDisplay.getAvg4To6()).subtract(totalScoreDisplay.getReferee0()); - totalScoreDisplay.setResult(re); - totalScoreDisplaysList.add(totalScoreDisplay); - }); -// Collections.sort(totalScoreDisplaysList, new Comparator() { -// @Override -// public BigDecimal compare(CompeteVo.TotalScoreDisplay o1, CompeteVo.TotalScoreDisplay o2) { -// o1.getResult().subtract(o2.getResult()); -// return o1.getResult(); +// //totalScoreDisplay.setPeopleName(stringBuilder.toString()); +//// CompeteTeamMemberExample competeTeamMemberExample =new CompeteTeamMemberExample(); +//// competeTeamMemberExample.createCriteria().andCompeteTeamIdEqualTo(competeStartOrder.getPlayerId()); +//// List competeTeamMembersList = competeTeamMemberMapper.selectByExample(competeTeamMemberExample); +//// StringBuilder stringBuilder=new StringBuilder(""); +//// competeTeamMembersList.forEach(competeTeamMember -> { +//// stringBuilder.append(competePlayerDao.selectByPrimaryKey(competeTeamMember.getPlayerId()).getName()+'、'); +//// }); +// String namess=stringBuilder.toString().substring(0,stringBuilder.length()-1); +// totalScoreDisplay.setPeopleName(namess); +// } +// List results = competeTimeDao.selectJudgmentS(competeStartOrder.getId()); +// //7个教练成绩也上去了 +// for (CompeteVo.Result r :results){ +// if(r.getChief()==0){ +// totalScoreDisplay.setReferee0(r.getScore()); +// }else if(r.getChief()==1){ +// totalScoreDisplay.setReferee1(r.getScore()); +// }else if(r.getChief()==2){ +// totalScoreDisplay.setReferee2(r.getScore()); +// }else if(r.getChief()==3){ +// totalScoreDisplay.setReferee3(r.getScore()); +// }else if(r.getChief()==4){ +// totalScoreDisplay.setReferee4(r.getScore()); +// }else if(r.getChief()==5){ +// totalScoreDisplay.setReferee5(r.getScore()); +// }else if(r.getChief()==6){ +// totalScoreDisplay.setReferee6(r.getScore()); +// } // } +// BigDecimal bigDecimal1to3=new BigDecimal(0); +// bigDecimal1to3.add(totalScoreDisplay.getReferee1()).add(totalScoreDisplay.getReferee2()).add(totalScoreDisplay.getReferee3()); +// BigDecimal bigDecimalavg1to3=new BigDecimal(0); +// BigDecimal bignum=new BigDecimal(3); +// totalScoreDisplay.setAvg1To3(bigDecimalavg1to3.divide(bignum,2,BigDecimal.ROUND_HALF_UP)); +// +// BigDecimal bigDecimal4to6=new BigDecimal(0); +// bigDecimal4to6.add(totalScoreDisplay.getReferee4()).add(totalScoreDisplay.getReferee5()).add(totalScoreDisplay.getReferee6()); +// BigDecimal bigDecimalavg4to6=new BigDecimal(0); +// BigDecimal bignum1=new BigDecimal(3); +// totalScoreDisplay.setAvg4To6(bigDecimalavg4to6.divide(bignum1,2,BigDecimal.ROUND_HALF_UP)); +// //总成绩也出来了 +// BigDecimal re=new BigDecimal(0); +// re.add(totalScoreDisplay.getAvg1To3()).add(totalScoreDisplay.getAvg4To6()).subtract(totalScoreDisplay.getReferee0()); +// totalScoreDisplay.setResult(re); +// totalScoreDisplaysList.add(totalScoreDisplay); // }); - - for (int i = 0; i < totalScoreDisplaysList.size() - 1; i++) { - for (int j = 1; j < totalScoreDisplaysList.size() - i; j++) { - BigDecimal b1 = totalScoreDisplaysList.get(j - 1).getResult(); - BigDecimal b2 = totalScoreDisplaysList.get(j).getResult(); - - CompeteVo.TotalScoreDisplay a; - if (b1.compareTo(b2) < 0) { - a = totalScoreDisplaysList.get(j - 1); - totalScoreDisplaysList.set((j - 1), totalScoreDisplaysList.get(j)); - totalScoreDisplaysList.set(j, a); - } - } - } - - for (int i=0; i() { +//// @Override +//// public BigDecimal compare(CompeteVo.TotalScoreDisplay o1, CompeteVo.TotalScoreDisplay o2) { +//// o1.getResult().subtract(o2.getResult()); +//// return o1.getResult(); +//// } +//// }); +// +// for (int i = 0; i < totalScoreDisplaysList.size() - 1; i++) { +// for (int j = 1; j < totalScoreDisplaysList.size() - i; j++) { +// BigDecimal b1 = totalScoreDisplaysList.get(j - 1).getResult(); +// BigDecimal b2 = totalScoreDisplaysList.get(j).getResult(); +// +// CompeteVo.TotalScoreDisplay a; +// if (b1.compareTo(b2) < 0) { +// a = totalScoreDisplaysList.get(j - 1); +// totalScoreDisplaysList.set((j - 1), totalScoreDisplaysList.get(j)); +// totalScoreDisplaysList.set(j, a); +// } +// } +// } +// +// for (int i=0; i queryCountScore(ScoreDto.ShowResult param) { + log.info("计数赛成绩公示:{}", param); + CompeteProject project = competeProjectMapper.selectByPrimaryKey(param.getProjectId()); + log.info("查询{}项目的成绩:", project); + if (project == null) { + throw new BaseException(CodeEnum.PARAM_ERROR); + } + + PageHelper.startPage(param.getPage(), param.getSize()); + List list; + if (project.getTeam() == Constant.Compete.TEAM_YES) { + // 团体赛 + list = competeScoreDao.queryCountScoreTeam(param.getProjectId()); + } else { + // 个人赛 + list = competeScoreDao.queryCountScorePerson(param.getProjectId()); + } + + + return new PageInfo<>(list); + } + @Override public String speedPassOut(CompeteDto.CompeteTimeAndProjectId params) throws IOException { diff --git a/mt/src/main/java/com/ccsens/mt/service/ExcelService.java b/mt/src/main/java/com/ccsens/mt/service/ExcelService.java index e8cfc250..f0310525 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ExcelService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ExcelService.java @@ -1,7 +1,6 @@ package com.ccsens.mt.service; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdcardUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.ccsens.mt.bean.dto.CompeteDto; @@ -15,24 +14,14 @@ import com.ccsens.mt.bean.vo.TableVo; import com.ccsens.mt.persist.dao.*; import com.ccsens.mt.persist.mapper.*; import com.ccsens.mt.util.Constant; -import com.ccsens.util.CodeEnum; import com.ccsens.util.PoiUtil; import com.ccsens.util.PropUtil; -import com.ccsens.util.RedisUtil; import com.ccsens.util.WebConstant; import com.ccsens.util.bean.dto.QueryDto; -import com.ccsens.util.exception.BaseException; -import com.ctc.wstx.util.DataUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import lombok.Data; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections.map.HashedMap; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.time.DateUtils; -import org.apache.poi.POIDocument; -import org.apache.poi.ss.usermodel.Table; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; @@ -40,24 +29,17 @@ import org.eclipse.jetty.util.StringUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.unit.DataUnit; import javax.annotation.Resource; -import javax.validation.constraints.NotNull; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.text.SimpleDateFormat; -import java.util.*; import java.util.ArrayList; import java.util.Date; -import java.util.GregorianCalendar; import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; @Slf4j @Service @@ -1233,7 +1215,6 @@ public class ExcelService implements IExcelService { - private String getExcelFilePathForSchedulePlanning(List arrayList) throws IOException { //创建excle表格对象 List> list = new ArrayList<>(); @@ -1331,7 +1312,7 @@ public class ExcelService implements IExcelService { @Override public String patternExpTable(ScoreDto.ShowResultW param) { - List totalScoreDisplays = competeService.showResult(param); + List totalScoreDisplays = competeService.showResult(param).getList(); List> list = new ArrayList<>(); List zero=new ArrayList<>(); PoiUtil.PoiUtilCell zeroOne=new PoiUtil.PoiUtilCell("比赛成绩公示(花样赛)", 14, 1); @@ -1585,51 +1566,37 @@ public class ExcelService implements IExcelService { @Override public String beforeEight(QueryDto params) { - log.info("到处{}大赛各项的前八名", params); + log.info("导出{}大赛各项的前八名", params); // 查询项目 Long competeTimeId = params.getParam().getCompeteTimeId(); List list = competeProjectDao.queryProject(competeTimeId); Workbook workbook = new XSSFWorkbook(); - list.forEach(project -> { - List eights; - // 个人赛 - if (project.getTeam().byteValue() == Constant.Compete.TEAM_NO) { - eights = competeScoreDao.queryEight(project.getId(), competeTimeId); - } else { - // 团体赛 - eights = competeScoreDao.queryEightFancyRope(project.getId(), competeTimeId); - } - List> raws = new ArrayList<>(); - initTitle(project, raws); - eights.forEach(eight -> { - - if (StrUtil.isEmpty(eight.getEightNames())) { - return; - } - - List cells = new ArrayList<>(); - cells.add(new PoiUtil.PoiUtilCell(eight.getGroupName())); - String[] split = eight.getEightNames().split(","); - for (String name: split) { - cells.add(new PoiUtil.PoiUtilCell(name)); + list.forEach(project -> { + List eights; + // 个人赛 + if (project.getTeam() == Constant.Compete.TEAM_NO) { + eights = competeScoreDao.queryEight(project.getId(), competeTimeId); + } else if (project.getJoinRule() == Constant.Compete.PROJECT_JOIN_RULE_GROUP_NOT_LIMIT) { + // 团体赛不限组别 整体排名 + eights = competeScoreDao.queryEightGroupNotLimit(project.getId(), competeTimeId); + } else { + // 团体赛限组别 组别内排名 + eights = competeScoreDao.queryEightGroupLimit(project.getId(), competeTimeId); } - raws.add(cells); + List> raws = new ArrayList<>(); + initTitle(project, raws); + fillBody(project, eights, raws); + PoiUtil.exportWB(project.getName(), raws, workbook); }); - PoiUtil.exportWB(project.getName(), raws, workbook); - }); + String filepath = "mt/" + DateUtil.today() + "/" + System.currentTimeMillis() + ".xlsx"; String path = PropUtil.path + filepath; File file = new File(path); - - try { if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } -// if (!file.exists()) { -// file.createNewFile(); -// } OutputStream outputStream = new FileOutputStream(file); workbook.write(outputStream); outputStream.close(); @@ -1639,6 +1606,41 @@ public class ExcelService implements IExcelService { return PropUtil.domain + "file/download/know?path="+path; } + /** + * 添加导出前八名内容部分 + * @param project 项目 + * @param eights 前八名信息 + * @param raws 表格行对象 + */ + private void fillBody(CompeteProject project, List eights, List> raws) { + if (project.getJoinRule() == Constant.Compete.PROJECT_JOIN_RULE_GROUP_LIMIT) { + eights.forEach(eight -> { + if (StrUtil.isEmpty(eight.getEightNames())) { + return; + } + List cells = new ArrayList<>(); + cells.add(new PoiUtil.PoiUtilCell(eight.getGroupName())); + String[] split = eight.getEightNames().split(","); + for (String name : split) { + cells.add(new PoiUtil.PoiUtilCell(name)); + } + raws.add(cells); + }); + } else { + for (int i = 0; i < eights.size(); i++) { + List cells = new ArrayList<>(); + cells.add(new PoiUtil.PoiUtilCell("第" + i + "名")); + cells.add(new PoiUtil.PoiUtilCell(eights.get(i).getEightNames(), 8, 1)); + raws.add(cells); + } + } + } + + /** + * 初始化导出前八名表格头 + * @param project 项目 + * @param raws 行 + */ private void initTitle(CompeteProject project, List> raws) { List title = new ArrayList<>(); title.add(new PoiUtil.PoiUtilCell( "2020年山西省学生跳绳比赛", 9 , 1)); @@ -1646,17 +1648,20 @@ public class ExcelService implements IExcelService { List title2 = new ArrayList<>(); title2.add(new PoiUtil.PoiUtilCell(project.getName() , 9 , 1)); raws.add(title2); - List head = new ArrayList<>(); - head.add(new PoiUtil.PoiUtilCell("")); - head.add(new PoiUtil.PoiUtilCell("第一名")); - head.add(new PoiUtil.PoiUtilCell("第二名")); - head.add(new PoiUtil.PoiUtilCell("第三名")); - head.add(new PoiUtil.PoiUtilCell("第四名")); - head.add(new PoiUtil.PoiUtilCell("第五名")); - head.add(new PoiUtil.PoiUtilCell("第六名")); - head.add(new PoiUtil.PoiUtilCell("第七名")); - head.add(new PoiUtil.PoiUtilCell("第八名")); - raws.add(head); + if (project.getJoinRule() == Constant.Compete.PROJECT_JOIN_RULE_GROUP_LIMIT) { + List head = new ArrayList<>(); + head.add(new PoiUtil.PoiUtilCell("")); + head.add(new PoiUtil.PoiUtilCell("第一名")); + head.add(new PoiUtil.PoiUtilCell("第二名")); + head.add(new PoiUtil.PoiUtilCell("第三名")); + head.add(new PoiUtil.PoiUtilCell("第四名")); + head.add(new PoiUtil.PoiUtilCell("第五名")); + head.add(new PoiUtil.PoiUtilCell("第六名")); + head.add(new PoiUtil.PoiUtilCell("第七名")); + head.add(new PoiUtil.PoiUtilCell("第八名")); + raws.add(head); + } + } } 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 699688e3..56ab4697 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ICompeteService.java @@ -157,7 +157,7 @@ public interface ICompeteService { PageInfo showResultPage(ScoreDto.ShowResultW param); - List showResult(ScoreDto.ShowResultW param); + PageInfo showResult(ScoreDto.ShowResultW param); /** @@ -190,7 +190,6 @@ public interface ICompeteService { /** -<<<<<<< HEAD * 速度通级赛 * @param params 项目id和场次id * @return 返回项目,开始时间和比赛状态 @@ -199,7 +198,6 @@ public interface ICompeteService { /** - <<<<<<< HEAD * 速度通级赛(导出) * @param params 项目id和场次id * @return 返回项目,开始时间和比赛状态 @@ -217,8 +215,12 @@ public interface ICompeteService { Long getUserCompanyId(Long userId, Byte type); - - + /** + * 分页查询计数赛成绩 + * @param param 项目ID + * @return 成绩 + */ + PageInfo queryCountScore(ScoreDto.ShowResult param); } diff --git a/mt/src/main/java/com/ccsens/mt/service/IExcelService.java b/mt/src/main/java/com/ccsens/mt/service/IExcelService.java index 91639717..291380ca 100644 --- a/mt/src/main/java/com/ccsens/mt/service/IExcelService.java +++ b/mt/src/main/java/com/ccsens/mt/service/IExcelService.java @@ -92,7 +92,7 @@ public interface IExcelService { String schedulePlanningOut(CompeteDto.CompeteTime params) throws IOException; - +// String patternExpTable(ScoreDto.ShowResult param); /** * 生成比赛前八名的表格 diff --git a/mt/src/main/resources/mapper_dao/CompeteScoreDao.xml b/mt/src/main/resources/mapper_dao/CompeteScoreDao.xml index 5054590a..f1eb223f 100644 --- a/mt/src/main/resources/mapper_dao/CompeteScoreDao.xml +++ b/mt/src/main/resources/mapper_dao/CompeteScoreDao.xml @@ -245,7 +245,6 @@ t1.group_name AS groupName, t1.name, count( t2.id ) as count - -- GROUP_CONCAT( t1.NAME ) AS eightNames FROM ( SELECT @@ -311,8 +310,422 @@ ) t GROUP BY groupName - + select t.group_name as groupName, GROUP_CONCAT(t.name order by t.final_score desc) as eightNames from + (select t1.* from + (SELECT + CONCAT( + CASE team.group_remark WHEN 1 THEN '小学' WHEN 2 THEN '中学' WHEN 3 THEN '高职院校' WHEN 4 THEN '本科院校' ELSE '俱乐部'END, + CASE team.gender_group WHEN 0 THEN '女子组' WHEN 1 THEN '男子组' ELSE '混合组' END + ) AS group_name, + GROUP_CONCAT(player.name SEPARATOR '、') as name, + score.final_score + FROM + t_compete_count_score score, + t_compete_start_order startOrder, + t_compete_team team, + t_compete_team_member tm, + t_compete_player player + WHERE + score.compete_time_id = #{competeTimeId} + AND score.project_id = #{projectId} + AND score.site_order_id = startOrder.id + AND startOrder.player_id = team.id + AND team.id = tm.compete_team_id + AND tm.player_id = player.id + AND score.rec_status = 0 + AND player.rec_status = 0 + AND startOrder.rec_status = 0 + AND team.rec_status = 0 + AND tm.rec_status = 0 + group by score.id) t1, + + (SELECT + CONCAT( + CASE team.group_remark WHEN 1 THEN '小学' WHEN 2 THEN '中学' WHEN 3 THEN '高职院校' WHEN 4 THEN '本科院校' ELSE '俱乐部'END, + CASE team.gender_group WHEN 0 THEN '女子组' WHEN 1 THEN '男子组' ELSE '混合组' END + ) AS group_name, + GROUP_CONCAT(player.name) as name, + score.final_score + FROM + t_compete_count_score score, + t_compete_start_order startOrder, + t_compete_team team, + t_compete_team_member tm, + t_compete_player player + WHERE + score.compete_time_id = #{competeTimeId} + AND score.project_id = #{projectId} + AND score.site_order_id = startOrder.id + AND startOrder.player_id = team.id + AND team.id = tm.compete_team_id + AND tm.player_id = player.id + AND score.rec_status = 0 + AND player.rec_status = 0 + AND startOrder.rec_status = 0 + AND team.rec_status = 0 + AND tm.rec_status = 0 + group by score.id) t2 + WHERE + t1.group_name = t2.group_name + AND t1.final_score <= t2.final_score + GROUP BY t1.group_name, t1.name + HAVING count( * ) <= 8) t + group by t.group_name + + + + + + + + + \ No newline at end of file