Browse Source

220201122v1.2合并冲突

tiaosheng
zy_Java 5 years ago
parent
commit
ca1bb8d995
  1. 22
      mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java
  2. 2
      mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java
  3. 25
      mt/src/main/java/com/ccsens/mt/bean/vo/ScoreVo.java
  4. 42
      mt/src/main/java/com/ccsens/mt/persist/dao/CompeteScoreDao.java
  5. 260
      mt/src/main/java/com/ccsens/mt/service/CompeteService.java
  6. 129
      mt/src/main/java/com/ccsens/mt/service/ExcelService.java
  7. 12
      mt/src/main/java/com/ccsens/mt/service/ICompeteService.java
  8. 2
      mt/src/main/java/com/ccsens/mt/service/IExcelService.java
  9. 424
      mt/src/main/resources/mapper_dao/CompeteScoreDao.xml

22
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<List<CompeteVo.TotalScoreDisplay>> showResult (@ApiParam @Validated @RequestBody QueryDto<ScoreDto.ShowResultW> params){
public JsonResponse<PageInfo<CompeteVo.TotalScoreDisplay>> showResult (@ApiParam @Validated @RequestBody QueryDto<ScoreDto.ShowResultW> params){
log.info("花样赛详细分数查看:{}",params);
List<CompeteVo.TotalScoreDisplay> totalScoreDisplaysList= competeService.showResult(params.getParam());
PageInfo<CompeteVo.TotalScoreDisplay> 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<ScoreVo.CountScoreCurrentSite> queryCountScoreAll(@ApiParam @Validated @RequestBody QueryDto<ScoreDto.ShowResult> params) {
// log.info("查看计数赛成绩公示表:{}",params);
// PageInfo<ScoreVo.CountScoreCurrentSite> 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<ScoreVo.CountScoreCurrentSite> queryCountScoreAll(@ApiParam @Validated @RequestBody QueryDto<ScoreDto.ShowResult> params) {
log.info("查看计数赛成绩公示表:{}",params);
PageInfo<ScoreVo.CountScoreCurrentSite> countScoreCurrentSites = competeService.queryCountScoreAll(params.getParam());
public JsonResponse<ScoreVo.CountScorePublicity> queryCountScoreAll(@ApiParam @Validated @RequestBody QueryDto<ScoreDto.ShowResult> params) {
log.info("查看计数赛成绩公示表:{}",params);
return JsonResponse.newInstance().ok(countScoreCurrentSites);
PageInfo<ScoreVo.CountScorePublicity> pageInfo = competeService.queryCountScore(params.getParam());
log.info("查看计数赛成绩公示表:{}",pageInfo);
return JsonResponse.newInstance().ok(pageInfo);
}
@MustLogin

2
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("备注")

25
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;
}
}

42
mt/src/main/java/com/ccsens/mt/persist/dao/CompeteScoreDao.java

@ -52,10 +52,48 @@ public interface CompeteScoreDao {
List<CompeteExcelVo.BeforeEight> queryEight(@Param("projectId") Long projectId, @Param("competeTimeId") Long competeTimeId);
/**
* 花样赛前八名
* 计数赛限组别前八名
* @param projectId 项目ID
* @param competeTimeId 大赛ID
* @return 前八名
*/
List<CompeteExcelVo.BeforeEight> queryEightFancyRope(@Param("projectId") Long projectId, @Param("competeTimeId") Long competeTimeId);
List<CompeteExcelVo.BeforeEight> queryEightGroupLimit(@Param("projectId") Long projectId, @Param("competeTimeId") Long competeTimeId);
/**
* 花样赛不限组别前八名
* @param projectId 项目ID
* @param competeTimeId 大赛ID
* @return 前八名
*/
List<CompeteExcelVo.BeforeEight> queryEightGroupNotLimit(@Param("projectId") Long projectId, @Param("competeTimeId") Long competeTimeId);
/**
* 花样赛限组别前八名
* @param projectId 项目ID
* @param competeTimeId 大赛ID
* @return 前八名
*/
List<CompeteExcelVo.BeforeEight> queryEightVarietyGroupLimit(@Param("projectId") Long projectId, @Param("competeTimeId") Long competeTimeId);
/**
* 查询计数赛中团体赛成绩
* @param projectId 项目ID
* @return 成绩
*/
List<ScoreVo.CountScorePublicity> queryCountScoreTeam(@Param("projectId") Long projectId);
/**
* 查询计数赛中个人赛成绩
* @param projectId 项目ID
* @return 成绩
*/
List<ScoreVo.CountScorePublicity> queryCountScorePerson(@Param("projectId") Long projectId);
/**
* 统计花样赛成绩
* @param projectId 项目ID
* @return 成绩
*/
List<CompeteVo.TotalScoreDisplay> queryVarietyScore(@Param("projectId") Long projectId);
}

260
mt/src/main/java/com/ccsens/mt/service/CompeteService.java

@ -212,126 +212,131 @@ public class CompeteService implements ICompeteService {
* @param param
*/
@Override
public List<CompeteVo.TotalScoreDisplay> showResult(ScoreDto.ShowResultW param) {
List<CompeteVo.TotalScoreDisplay> totalScoreDisplaysList=new ArrayList<>();
CompeteStartOrderExample competeStartOrderExample =new CompeteStartOrderExample();
competeStartOrderExample.createCriteria().andProjectIdEqualTo(param.getProjectId());
competeStartOrderExample.setOrderByClause("player_id DESC");
List<CompeteStartOrder> 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<CompeteTeamMember> 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<CompeteTeamMember> competeTeamMembersList = competeTeamMemberMapper.selectByExample(competeTeamMemberExample);
public PageInfo<CompeteVo.TotalScoreDisplay> showResult(ScoreDto.ShowResultW param) {
PageHelper.startPage(param.getPageNum(), param.getPageSize());
List<CompeteVo.TotalScoreDisplay> list = competeScoreDao.queryVarietyScore(param.getProjectId());
return new PageInfo<>(list);
}
// public List<CompeteVo.TotalScoreDisplay> showResult(ScoreDto.ShowResultW param) {
// List<CompeteVo.TotalScoreDisplay> totalScoreDisplaysList=new ArrayList<>();
// CompeteStartOrderExample competeStartOrderExample =new CompeteStartOrderExample();
// competeStartOrderExample.createCriteria().andProjectIdEqualTo(param.getProjectId());
// competeStartOrderExample.setOrderByClause("player_id DESC");
// List<CompeteStartOrder> 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<CompeteTeamMember> 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<CompeteVo.Result> 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<CompeteVo.TotalScoreDisplay>() {
// @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<CompeteTeamMember> 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<CompeteVo.Result> 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<totalScoreDisplaysList.size();i++){
CompeteVo.TotalScoreDisplay totalScoreDisplay = totalScoreDisplaysList.get(i);
totalScoreDisplay.setOrder(i+1);
}
return totalScoreDisplaysList;
}
//// Collections.sort(totalScoreDisplaysList, new Comparator<CompeteVo.TotalScoreDisplay>() {
//// @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<totalScoreDisplaysList.size();i++){
// CompeteVo.TotalScoreDisplay totalScoreDisplay = totalScoreDisplaysList.get(i);
// totalScoreDisplay.setOrder(i+1);
// }
//
// return totalScoreDisplaysList;
// }
/**
@ -1809,6 +1814,29 @@ public class CompeteService implements ICompeteService {
return null;
}
@Override
public PageInfo<ScoreVo.CountScorePublicity> 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<ScoreVo.CountScorePublicity> 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 {

129
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<TableVo.SchedulePlan> arrayList) throws IOException {
//创建excle表格对象
List<List<PoiUtil.PoiUtilCell>> list = new ArrayList<>();
@ -1331,7 +1312,7 @@ public class ExcelService implements IExcelService {
@Override
public String patternExpTable(ScoreDto.ShowResultW param) {
List<CompeteVo.TotalScoreDisplay> totalScoreDisplays = competeService.showResult(param);
List<CompeteVo.TotalScoreDisplay> totalScoreDisplays = competeService.showResult(param).getList();
List<List<PoiUtil.PoiUtilCell>> list = new ArrayList<>();
List<PoiUtil.PoiUtilCell> 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<CompeteDto.CompeteTime> params) {
log.info("到处{}大赛各项的前八名", params);
log.info("导出{}大赛各项的前八名", params);
// 查询项目
Long competeTimeId = params.getParam().getCompeteTimeId();
List<CompeteProject> list = competeProjectDao.queryProject(competeTimeId);
Workbook workbook = new XSSFWorkbook();
list.forEach(project -> {
List<CompeteExcelVo.BeforeEight> eights;
// 个人赛
if (project.getTeam().byteValue() == Constant.Compete.TEAM_NO) {
eights = competeScoreDao.queryEight(project.getId(), competeTimeId);
} else {
// 团体赛
eights = competeScoreDao.queryEightFancyRope(project.getId(), competeTimeId);
}
List<List<PoiUtil.PoiUtilCell>> raws = new ArrayList<>();
initTitle(project, raws);
eights.forEach(eight -> {
if (StrUtil.isEmpty(eight.getEightNames())) {
return;
}
List<PoiUtil.PoiUtilCell> 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<CompeteExcelVo.BeforeEight> 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<List<PoiUtil.PoiUtilCell>> 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<CompeteExcelVo.BeforeEight> eights, List<List<PoiUtil.PoiUtilCell>> raws) {
if (project.getJoinRule() == Constant.Compete.PROJECT_JOIN_RULE_GROUP_LIMIT) {
eights.forEach(eight -> {
if (StrUtil.isEmpty(eight.getEightNames())) {
return;
}
List<PoiUtil.PoiUtilCell> 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<PoiUtil.PoiUtilCell> 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<List<PoiUtil.PoiUtilCell>> raws) {
List<PoiUtil.PoiUtilCell> title = new ArrayList<>();
title.add(new PoiUtil.PoiUtilCell( "2020年山西省学生跳绳比赛", 9 , 1));
@ -1646,17 +1648,20 @@ public class ExcelService implements IExcelService {
List<PoiUtil.PoiUtilCell> title2 = new ArrayList<>();
title2.add(new PoiUtil.PoiUtilCell(project.getName() , 9 , 1));
raws.add(title2);
List<PoiUtil.PoiUtilCell> 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<PoiUtil.PoiUtilCell> 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);
}
}
}

12
mt/src/main/java/com/ccsens/mt/service/ICompeteService.java

@ -157,7 +157,7 @@ public interface ICompeteService {
PageInfo<CompeteVo.TotalScoreDisplay> showResultPage(ScoreDto.ShowResultW param);
List<CompeteVo.TotalScoreDisplay> showResult(ScoreDto.ShowResultW param);
PageInfo<CompeteVo.TotalScoreDisplay> 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<ScoreVo.CountScorePublicity> queryCountScore(ScoreDto.ShowResult param);
}

2
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);
/**
* 生成比赛前八名的表格

424
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>
<select id="queryEightFancyRope" resultType="com.ccsens.mt.bean.vo.CompeteExcelVo$BeforeEight">
select t1.group_name as groupName, GROUP_CONCAT(t1.name) as eightNames from
<select id="queryEightGroupLimit" resultType="com.ccsens.mt.bean.vo.CompeteExcelVo$BeforeEight">
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 &lt;= t2.final_score
GROUP BY t1.group_name, t1.name
HAVING count( * ) &lt;= 8) t
group by t.group_name
</select>
<select id="queryEightGroupNotLimit" resultType="com.ccsens.mt.bean.vo.CompeteExcelVo$BeforeEight">
SELECT
team.group_name as groupName,
team.members as eightNames
FROM
(
SELECT
id,
site_order_id,
sum(
CASE CODE
WHEN 'setUp' THEN score / 3
WHEN 'show' THEN score / 3
WHEN 'spaceUse' THEN score / 3
WHEN 'accuracy' THEN score / 3
WHEN 'step' THEN score / 3
WHEN 'perfor' THEN score / 3
WHEN 'skilled' THEN score / 3
WHEN 'agree' THEN score / 3
WHEN 'notEnoughTime' THEN -score
WHEN 'footfault' THEN -score
WHEN 'ceremony' THEN -score
ELSE -score END
) AS final_score
FROM
t_compete_variety_score
WHERE
compete_time_id = #{competeTimeId}
AND project_id = #{projectId}
AND rec_status = 0
GROUP BY
site_order_id
) t,
t_compete_start_order o,
(SELECT
t.id,
CONCAT(
CASE t.group_remark WHEN 1 THEN '小学' WHEN 2 THEN '中学' WHEN 3 THEN '高职院校' WHEN 4 THEN '本科院校' ELSE '俱乐部'END,
CASE t.gender_group WHEN 0 THEN '女子组' WHEN 1 THEN '男子组' ELSE '混合组' END
) AS group_name,
GROUP_CONCAT( p.NAME separator '、' ) as members
FROM
t_compete_team t,
t_compete_team_member m,
t_compete_player p
WHERE
t.id = m.compete_team_id
AND m.player_id = p.id
AND m.rec_status = 0
AND t.rec_status = 0
AND p.rec_status = 0
GROUP BY
t.id,
t.group_remark,
t.gender_group) team
WHERE
t.site_order_id = o.id
AND o.player_id = team.id
AND o.rec_status = 0
order by t. final_score desc
limit 8
</select>
<select id="queryEightVarietyGroupLimit" resultType="com.ccsens.mt.bean.vo.CompeteExcelVo$BeforeEight">
select t1.groupName, GROUP_CONCAT(t1.eightNames order by t1.final_score desc) from
(SELECT
team.group_name as groupName,
team.members as eightNames,
t.final_score
FROM
(
SELECT
id,
site_order_id,
sum(
CASE CODE
WHEN 'setUp' THEN score / 3
WHEN 'show' THEN score / 3
WHEN 'spaceUse' THEN score / 3
WHEN 'accuracy' THEN score / 3
WHEN 'step' THEN score / 3
WHEN 'perfor' THEN score / 3
WHEN 'skilled' THEN score / 3
WHEN 'agree' THEN score / 3
WHEN 'notEnoughTime' THEN -score
WHEN 'footfault' THEN -score
WHEN 'ceremony' THEN -score
ELSE -score END
) AS final_score
FROM
t_compete_variety_score
WHERE
compete_time_id = #{competeTimeId}
AND project_id = #{projectId}
AND rec_status = 0
GROUP BY
site_order_id
) t,
t_compete_start_order o,
(SELECT
t.id,
CONCAT(
CASE t.group_remark WHEN 1 THEN '小学' WHEN 2 THEN '中学' WHEN 3 THEN '高职院校' WHEN 4 THEN '本科院校' ELSE '俱乐部'END,
CASE t.gender_group WHEN 0 THEN '女子组' WHEN 1 THEN '男子组' ELSE '混合组' END
) AS group_name,
GROUP_CONCAT( p.NAME separator '、' ) as members
FROM
t_compete_team t,
t_compete_team_member m,
t_compete_player p
WHERE
t.id = m.compete_team_id
AND m.player_id = p.id
AND m.rec_status = 0
AND t.rec_status = 0
AND p.rec_status = 0
GROUP BY
t.id,
t.group_remark,
t.gender_group) team
WHERE
t.site_order_id = o.id
AND o.player_id = team.id
AND o.rec_status = 0
) t1,
(SELECT
team.group_name as groupName,
team.members as eightNames,
t.final_score
FROM
(
SELECT
id,
site_order_id,
sum(
CASE CODE
WHEN 'setUp' THEN score / 3
WHEN 'show' THEN score / 3
WHEN 'spaceUse' THEN score / 3
WHEN 'accuracy' THEN score / 3
WHEN 'step' THEN score / 3
WHEN 'perfor' THEN score / 3
WHEN 'skilled' THEN score / 3
WHEN 'agree' THEN score / 3
WHEN 'notEnoughTime' THEN -score
WHEN 'footfault' THEN -score
WHEN 'ceremony' THEN -score
ELSE -score END
) AS final_score
FROM
t_compete_variety_score
WHERE
compete_time_id = #{competeTimeId}
AND project_id = #{projectId}
AND rec_status = 0
GROUP BY
site_order_id
) t,
t_compete_start_order o,
(SELECT
t.id,
CONCAT(
CASE t.group_remark WHEN 1 THEN '小学' WHEN 2 THEN '中学' WHEN 3 THEN '高职院校' WHEN 4 THEN '本科院校' ELSE '俱乐部'END,
CASE t.gender_group WHEN 0 THEN '女子组' WHEN 1 THEN '男子组' ELSE '混合组' END
) AS group_name,
GROUP_CONCAT( p.NAME separator '、' ) as members
FROM
t_compete_team t,
t_compete_team_member m,
t_compete_player p
WHERE
t.id = m.compete_team_id
AND m.player_id = p.id
AND m.rec_status = 0
AND t.rec_status = 0
AND p.rec_status = 0
GROUP BY
t.id,
t.group_remark,
t.gender_group) team
WHERE
t.site_order_id = o.id
AND o.player_id = team.id
AND o.rec_status = 0
) t2
where t1.groupName = t2.groupName and t1.final_score &lt;= t2.final_score
group by t1.groupName
having count(t2.groupName) &lt;= 8
</select>
<select id="queryCountScoreTeam" resultType="com.ccsens.mt.bean.vo.ScoreVo$CountScorePublicity">
select t1.*, count(*) as rangee 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 groupName,
GROUP_CONCAT(player.name SEPARATOR '、') as name,
company.name as companyName,
score.judgment_a_score as mainOneScore,
score.judgment_b_score2 as mainTwoScore,
score.should_times as shouldScore,
score.deduct_times as deductTime,
score.final_score as finalScore
FROM
t_compete_count_score score,
t_compete_start_order startOrder,
t_compete_team team,
t_compete_team_member tm,
t_compete_player player,
t_compete_company company
WHERE
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 player.company_id = company.id
AND company.rec_status = 0
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 groupName,
GROUP_CONCAT(player.name SEPARATOR '、') as name,
company.name as companyName,
score.judgment_a_score as mainOneScore,
score.judgment_b_score2 as mainTwoScore,
score.should_times as shouldScore,
score.deduct_times as deductTime,
score.final_score as finalScore
FROM
t_compete_count_score score,
t_compete_start_order startOrder,
t_compete_team team,
t_compete_team_member tm,
t_compete_player player,
t_compete_company company
WHERE
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 player.company_id = company.id
AND company.rec_status = 0
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.groupName = t2.groupName
AND t1.finalScore &lt;= t2.finalScore
GROUP BY t1.groupName, t1.name
order by rangee desc
</select>
<select id="queryCountScorePerson" resultType="com.ccsens.mt.bean.vo.ScoreVo$CountScorePublicity">
select t1.*, count(t2.id) as rangee from
(SELECT
competeGroup.group_name as groupName,
player.NAME as name,
score.final_score as finalScore,
p.NAME as companyName,
score.id,
score.judgment_a_score as mainOneScore,
score.judgment_b_score2 as mainTwoScore,
score.should_times as shouldScore,
score.deduct_times as deductTime
FROM
t_compete_count_score score,
t_compete_start_order startOrder,
t_compete_project_player pp,
t_compete_player player,
t_compete_group competeGroup,
t_compete_company p
WHERE
score.project_id = #{projectId}
AND score.site_order_id = startOrder.id
AND startOrder.player_id = pp.id
AND pp.player_id = player.id
AND player.compete_group_id = competeGroup.id
and player.company_id = p.id
AND score.rec_status = 0
AND player.rec_status = 0
AND startOrder.rec_status = 0
AND competeGroup.rec_status = 0)t1,
(SELECT
competeGroup.group_name as groupName,
player.NAME as name,
score.final_score as finalScore,
p.NAME as companyName,
score.id,
score.judgment_a_score as mainOneScore,
score.judgment_b_score2 as mainTwoScore,
score.should_times as shouldScore,
score.deduct_times as deductTime
FROM
t_compete_count_score score,
t_compete_start_order startOrder,
t_compete_project_player pp,
t_compete_player player,
t_compete_group competeGroup,
t_compete_company p
WHERE
score.project_id = #{projectId}
AND score.site_order_id = startOrder.id
AND startOrder.player_id = pp.id
AND pp.player_id = player.id
AND player.compete_group_id = competeGroup.id
and player.company_id = p.id
AND score.rec_status = 0
AND player.rec_status = 0
AND startOrder.rec_status = 0
AND competeGroup.rec_status = 0)t2
where t1.groupName = t2.groupName and t1.finalScore &lt;= t2.finalScore
group by t1.id
order by t1.groupName, rangee
</select>
<select id="queryVarietyScore" resultType="com.ccsens.mt.bean.vo.CompeteVo$TotalScoreDisplay">
select s.*, c.name as companyName, GROUP_CONCAT(p.name) as peopleName, (ifnull(s.referee1,0)+ifnull(s.referee2,0)+ifnull(s.referee3,0))/3 as avg1To3,
(ifnull(s.referee4,0)+ifnull(s.referee5,0)+ifnull(s.referee6,0))/3 as avg4To6,
(ifnull(s.referee1,0)+ifnull(s.referee2,0)+ifnull(s.referee3,0))/3 + (ifnull(s.referee4,0)+ifnull(s.referee5,0)+ifnull(s.referee6,0))/3 - s.referee0 as result,
@rownum := @rownum + 1 AS rownum
from
(select site_order_id, max(if(chief_judgment = 0, score, null)) as referee0, max(if(chief_judgment = 1, score, null)) as referee1,
max(if(chief_judgment = 2, score, null)) as referee2, max(if(chief_judgment = 3, score, null)) as referee3,
max(if(chief_judgment = 4, score, null)) as referee4, max(if(chief_judgment = 5, score, null)) as referee5,
max(if(chief_judgment = 6, score, null)) as referee6, max(if(chief_judgment = 7, score, null)) as referee7
from
(select s.site_order_id, j.chief_judgment, sum(s.score) as score from t_compete_variety_score s, t_compete_judgment j where s.judgment_id = j.id and s.project_id = #{projectId} and s.rec_status = 0 and j.rec_status = 0 group by s.site_order_id,j.chief_judgment) t
group by t.site_order_id) s,
t_compete_start_order o,
t_compete_team t,
t_compete_team_member m,
t_compete_player p,
t_compete_company c,
( SELECT @rownum := 0 ) r
where s.site_order_id = o.id and o.player_id = t.id and t.id = m.compete_team_id and m.player_id = p.id and p.company_id = c.id
and o.rec_status = 0 and t.rec_status = 0 and m.rec_status = 0 and p.rec_status = 0 and c.rec_status = 0
group by s.site_order_id
order by result desc
</select>
<!--<select id="queryEightGroupLimit" resultType="com.ccsens.mt.bean.vo.CompeteExcelVo$BeforeEight">
select t1.group_name as groupName, GROUP_CONCAT(t1.name) as eightNames from
(SELECT
t.id,
CONCAT( team.group_remark, CASE team.gender_group WHEN 0 THEN '女子组' WHEN 1 THEN '男子组' ELSE '混合组' END ) AS group_name,
@ -457,11 +870,10 @@
AND c.rec_status = 0
order by t. final_score
) t2
where t1.final_score &lt;= t2.final_score
where t1.group_name = t2.group_name and t1.final_score &lt;= t2.final_score
GROUP BY t1.group_name
HAVING count(t2.id) &lt;= 8
</select>
</select>-->
</mapper>
Loading…
Cancel
Save