From 0e9b248355e074ff21e26b5f2c30b9a1f235b103 Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Tue, 24 Nov 2020 17:12:49 +0800 Subject: [PATCH] 20201124v1.5 --- .../com/ccsens/mt/api/DebugController.java | 2 +- .../java/com/ccsens/mt/bean/vo/TableVo.java | 10 +- .../mt/persist/dao/CompetePlayerDao.java | 7 ++ .../ccsens/mt/service/CompeteTaskService.java | 73 ++++++++---- .../com/ccsens/mt/service/ExcelService.java | 104 ++++++++++-------- .../com/ccsens/mt/service/IExcelService.java | 2 +- .../mapper_dao/CompeteJudgmentDao.xml | 4 +- .../resources/mapper_dao/CompetePlayerDao.xml | 88 ++++++++++++++- tall/src/main/resources/application.yml | 4 +- .../test/java/com/ccsens/util/OtherTest.java | 7 ++ 10 files changed, 221 insertions(+), 80 deletions(-) diff --git a/mt/src/main/java/com/ccsens/mt/api/DebugController.java b/mt/src/main/java/com/ccsens/mt/api/DebugController.java index c0ee3f5c..6bd68d6e 100644 --- a/mt/src/main/java/com/ccsens/mt/api/DebugController.java +++ b/mt/src/main/java/com/ccsens/mt/api/DebugController.java @@ -44,7 +44,7 @@ public class DebugController { }) @RequestMapping(value="",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"}) public JsonResponse debug(HttpServletRequest request) throws Exception { - List competeAllCount1s = excelService.competeAllCountList1(0); + List competeAllCount1s = excelService.competeAllCountList1(1L); return JsonResponse.newInstance().ok(competeAllCount1s); } diff --git a/mt/src/main/java/com/ccsens/mt/bean/vo/TableVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/TableVo.java index 889d063e..1a7f20ff 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/vo/TableVo.java +++ b/mt/src/main/java/com/ccsens/mt/bean/vo/TableVo.java @@ -118,13 +118,17 @@ public class TableVo { @ApiModel("XXX比赛报名汇总表") public static class CompeteAllCount1{ @ApiModelProperty("参赛id") - private String projectId; + private long projectId; + @ApiModelProperty() + private int id = (int) projectId; @ApiModelProperty("参赛项目") private String projectName; @ApiModelProperty("通级 0限制 1不限制") private int certificate; @ApiModelProperty("是否限制组别 0否 1是") - private int joinRile; + private int joinRule; + @ApiModelProperty("是否是团队 0否 1是") + private int team; @ApiModelProperty("参赛人数 顺序:小学(男女混)→中学(男女混)→高职院校(男女混)→本科院校(男女混)→俱乐部(男女混)") private List nums; @ApiModelProperty("每个组别内的人数") @@ -205,7 +209,7 @@ public class TableVo { public int getGames(){ if(joinNum != 0 && siteNum != 0) { - return (int) Math.ceil(joinNum / siteNum); + return (int) Math.ceil((float)joinNum / (float)siteNum); } return 0; } diff --git a/mt/src/main/java/com/ccsens/mt/persist/dao/CompetePlayerDao.java b/mt/src/main/java/com/ccsens/mt/persist/dao/CompetePlayerDao.java index 14e39366..3805c69c 100644 --- a/mt/src/main/java/com/ccsens/mt/persist/dao/CompetePlayerDao.java +++ b/mt/src/main/java/com/ccsens/mt/persist/dao/CompetePlayerDao.java @@ -99,4 +99,11 @@ public interface CompetePlayerDao extends CompetePlayerMapper { * @return */ List getJoinTeamNumByType(@Param("type")byte type); + + /** + * 查询团队限制组别的项目的数量汇总(例:交互绳 一带一) + * @param type + * @return + */ + List getJoinRuleTeamNumByType(@Param("type")byte type); } diff --git a/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java b/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java index d63f37a0..9cc4d6f1 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java @@ -25,9 +25,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; /** @@ -137,12 +135,12 @@ public class CompeteTaskService implements ICompeteTaskService { log.info("本项目参加的人数:{}", playerIdOrTeamIdList); if (CollectionUtil.isNotEmpty(playerIdOrTeamIdList)) { //计算场次 - int order = (int) Math.ceil(playerIdOrTeamIdList.size() / projectConfig.getSiteNum()); + int order = (int) Math.ceil((float)playerIdOrTeamIdList.size() / (float)projectConfig.getSiteNum()); //计算每个场次时间 long projectStartTime = projectConfig.getStartTime(); long orderTime = 0; if (order != 0) { - orderTime = (long) Math.floor((projectConfig.getEndTime() - projectStartTime) / order); + orderTime = (long) Math.floor(((float)projectConfig.getEndTime() - (float)projectStartTime) / (float)order); } else { log.info("场次为0的比赛:{}------{}", project, projectConfig); } @@ -431,29 +429,61 @@ public class CompeteTaskService implements ICompeteTaskService { @Override public List queryJudgment(ProvinceCompeteDto.QueryJudgment param) { List queryJudgmentList = competeJudgmentDao.queryJudgment(param.getCompeteTimeId(), param.getProjectId()); -// if (CollectionUtil.isNotEmpty(queryJudgmentList)) { -// queryJudgmentList.forEach(projectJudgment -> { -//// for(ProvinceCompeteVo.QueryJudgment projectJudgment : queryJudgmentList){ -// //裁判数量 -// int count = projectJudgment.getProjectType() == 0 ? 3 : 7; + if (CollectionUtil.isNotEmpty(queryJudgmentList)) { + queryJudgmentList.forEach(projectJudgment -> { + //裁判数量 + int count = projectJudgment.getProjectType() == 0 ? 3 : 7; + Map siteMap = new HashMap<>(); + Map judgmentMap = new HashMap<>(); + projectJudgment.getSiteList().forEach(site-> { + siteMap.put(site.getSiteNum(),site.getSiteNum()); + if (CollectionUtil.isEmpty(site.getJudgmentList())) { + site.setJudgmentList(new ArrayList<>()); + }else { + site.getJudgmentList().forEach(judgment -> judgmentMap.put(judgment.getJudgmentNum(),judgment.getJudgmentNum())); + } + for (int j = 0; j < count; j++) { + if(judgmentMap.get(j) == null) { + ProvinceCompeteVo.SiteJudgment siteJudgment1 = new ProvinceCompeteVo.SiteJudgment(); + siteJudgment1.setJudgmentNum(j); + site.getJudgmentList().add(siteJudgment1); + } + } + CollectionUtil.sort(site.getJudgmentList(), Comparator.comparingInt(ProvinceCompeteVo.SiteJudgment::getJudgmentNum)); + }); + for (int j = 0; j < projectJudgment.getSiteNums(); j++) { + if(siteMap.get(j+1) == null) { + ProvinceCompeteVo.ProjectSite siteJudgment = new ProvinceCompeteVo.ProjectSite(); + siteJudgment.setSiteNum(j + 1); + projectJudgment.getSiteList().add(siteJudgment); + for (int x = 0; x < count; x++) { + ProvinceCompeteVo.SiteJudgment siteJudgment1 = new ProvinceCompeteVo.SiteJudgment(); + siteJudgment1.setJudgmentNum(x); + siteJudgment.getJudgmentList().add(siteJudgment1); + } + } + } +// +// projectJudgment.getSiteList().forEach(site-> judgmentMap.put(site.getSiteNum(),site.getSiteNum())); // for (int i = 0; i < projectJudgment.getSiteNums(); i++) { // if (i < projectJudgment.getSiteList().size()) { // ProvinceCompeteVo.ProjectSite siteJudgment = projectJudgment.getSiteList().get(i); // if (CollectionUtil.isEmpty(siteJudgment.getJudgmentList())) { // siteJudgment.setJudgmentList(new ArrayList<>()); +// }else { +// siteJudgment.getJudgmentList().forEach(judgment -> siteMap.put(judgment.getJudgmentNum(),judgment.getJudgmentNum())); // } -// int a = siteJudgment.getJudgmentList().size(); -// for (int j = 0; j < count - a; j++) { -// ProvinceCompeteVo.SiteJudgment siteJudgment1 = new ProvinceCompeteVo.SiteJudgment(); -// siteJudgment1.setJudgmentNum(a + j); -// siteJudgment.getJudgmentList().add(siteJudgment1); +// for (int j = 0; j < count; j++) { +// if(siteMap.get(j) == null) { +// ProvinceCompeteVo.SiteJudgment siteJudgment1 = new ProvinceCompeteVo.SiteJudgment(); +// siteJudgment1.setJudgmentNum(j); +// siteJudgment.getJudgmentList().add(siteJudgment1); +// } // } +// CollectionUtil.sort(siteJudgment.getJudgmentList(), Comparator.comparingInt(ProvinceCompeteVo.SiteJudgment::getJudgmentNum)); // } else { // int a = projectJudgment.getSiteList().size(); -//// System.out.println("==========="+ a); -//// System.out.println("==========="+ projectJudgment.getSiteNums()); -//// System.out.println("==========="+ (projectJudgment.getSiteNums()-a)); -// for (int j = 0; j < projectJudgment.getSiteNums() - a; j++) { +// for (int j = 0; j < projectJudgment.getSiteNums(); j++) { // ProvinceCompeteVo.ProjectSite siteJudgment = new ProvinceCompeteVo.ProjectSite(); // siteJudgment.setSiteNum(a + j + 1); // projectJudgment.getSiteList().add(siteJudgment); @@ -466,9 +496,8 @@ public class CompeteTaskService implements ICompeteTaskService { // } // } // } -//// } -// }); -// } + }); + } return queryJudgmentList; } 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 f95a5959..83f86189 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ExcelService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ExcelService.java @@ -7,10 +7,7 @@ import com.ccsens.mt.bean.dto.CompeteDto; import com.ccsens.mt.bean.dto.ProvinceCompeteDto; import com.ccsens.mt.bean.dto.ScoreDto; import com.ccsens.mt.bean.po.*; -import com.ccsens.mt.bean.vo.CompeteExcelVo; -import com.ccsens.mt.bean.vo.CompeteVo; -import com.ccsens.mt.bean.vo.ScoreVo; -import com.ccsens.mt.bean.vo.TableVo; +import com.ccsens.mt.bean.vo.*; import com.ccsens.mt.persist.dao.*; import com.ccsens.mt.persist.mapper.*; import com.ccsens.mt.util.Constant; @@ -40,6 +37,7 @@ import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Comparator; import java.util.Date; import java.util.List; @@ -725,7 +723,8 @@ public class ExcelService implements IExcelService { @Override public String competeAllCount(CompeteDto.CompeteTime params) throws IOException { - List competeAllCountList = competeAllCountList(params); +// List competeAllCountList = competeAllCountList(params); + List competeAllCountList = competeAllCountList1(params.getCompeteTimeId()); String path = getExcelFilePathForCompeteAllCount(competeAllCountList); return path; } @@ -952,24 +951,26 @@ public class ExcelService implements IExcelService { } @Override - public List competeAllCountList1(int type){ -// CompeteTime competeTime = competeTimeDao.selectByPrimaryKey(params.getCompeteTimeId()); + public List competeAllCountList1(Long competeTimeId){ + CompeteTime competeTime = competeTimeDao.selectByPrimaryKey(competeTimeId); List competeAllCountList = new ArrayList<>(); -// if(ObjectUtil.isNotNull(competeTime)) { + if(ObjectUtil.isNotNull(competeTime)){ //查询个人赛的数量统计 - competeAllCountList = competePlayerDao.getJoinNumByType((byte) type); - //查询团体赛的数量统计 -// List groupNum = competePlayerDao.getJoinTeamNumByType((byte) type); - - + List nums = competePlayerDao.getJoinNumByType(competeTime.getType()); + competeAllCountList.addAll(nums); //查询限制组别的团体赛的统计 - //查询不限组别团体赛的统计 -// } + List groupRuleNum = competePlayerDao.getJoinRuleTeamNumByType(competeTime.getType()); + competeAllCountList.addAll(groupRuleNum); + //查询团体赛的数量统计 + List groupNum = competePlayerDao.getJoinTeamNumByType(competeTime.getType()); + competeAllCountList.addAll(groupNum); + } + CollectionUtil.sort(competeAllCountList,(t1,t2)-> (int)(t1.getProjectId() - t2.getProjectId())); return competeAllCountList; } - private String getExcelFilePathForCompeteAllCount(List arrayList) throws IOException { + private String getExcelFilePathForCompeteAllCount(List arrayList) throws IOException { //创建excle表格对象 List> list = new ArrayList<>(); //创建行对象 @@ -997,43 +998,52 @@ public class ExcelService implements IExcelService { //创建整个excel表格对象 Workbook workbook = new XSSFWorkbook(); int i = 1; - for (TableVo.CompeteAllCount competeAllCount : arrayList) { + for (TableVo.CompeteAllCount1 competeAllCount : arrayList) { //行对象 List cells = new ArrayList<>(); cells.add(new PoiUtil.PoiUtilCell(i + "", 1, 1, 300, 18)); //单元格对象 PoiUtil.PoiUtilCell poiUtilCel15 = new PoiUtil.PoiUtilCell(competeAllCount.getProjectName()); cells.add(poiUtilCel15); - PoiUtil.PoiUtilCell poiUtilCel = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(0))); - cells.add(poiUtilCel); - PoiUtil.PoiUtilCell poiUtilCell = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(1))); - cells.add(poiUtilCell); - PoiUtil.PoiUtilCell poiUtilCel2 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(2))); - cells.add(poiUtilCel2); - PoiUtil.PoiUtilCell poiUtilCel3 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(3))); - cells.add(poiUtilCel3); - PoiUtil.PoiUtilCell poiUtilCel4 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(4))); - cells.add(poiUtilCel4); - PoiUtil.PoiUtilCell poiUtilCel5 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(5))); - cells.add(poiUtilCel5); - PoiUtil.PoiUtilCell poiUtilCel6 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(6))); - cells.add(poiUtilCel6); - PoiUtil.PoiUtilCell poiUtilCel7 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(7))); - cells.add(poiUtilCel7); - PoiUtil.PoiUtilCell poiUtilCel8 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(8))); - cells.add(poiUtilCel8); - PoiUtil.PoiUtilCell poiUtilCel9 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(9))); - cells.add(poiUtilCel9); - PoiUtil.PoiUtilCell poiUtilCel10 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(10))); - cells.add(poiUtilCel10); - PoiUtil.PoiUtilCell poiUtilCel11 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(11))); - cells.add(poiUtilCel11); - PoiUtil.PoiUtilCell poiUtilCel12 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(12))); - cells.add(poiUtilCel12); - PoiUtil.PoiUtilCell poiUtilCel13 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(13))); - cells.add(poiUtilCel13); - PoiUtil.PoiUtilCell poiUtilCel14 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(14))); - cells.add(poiUtilCel14); + for (int j = 0; j < competeAllCount.getNums().size(); j++) { + if((competeAllCount.getTeam() == 1 && competeAllCount.getJoinRule() == 1) || (competeAllCount.getCertificate() == 1)){ + PoiUtil.PoiUtilCell poiUtilCel = new PoiUtil.PoiUtilCell(competeAllCount.getNums().get(j),15,1); + cells.add(poiUtilCel); + }else { + PoiUtil.PoiUtilCell poiUtilCel = new PoiUtil.PoiUtilCell(competeAllCount.getNums().get(j)); + cells.add(poiUtilCel); + } + } +// PoiUtil.PoiUtilCell poiUtilCel = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(0))); +// cells.add(poiUtilCel); +// PoiUtil.PoiUtilCell poiUtilCell = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(1))); +// cells.add(poiUtilCell); +// PoiUtil.PoiUtilCell poiUtilCel2 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(2))); +// cells.add(poiUtilCel2); +// PoiUtil.PoiUtilCell poiUtilCel3 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(3))); +// cells.add(poiUtilCel3); +// PoiUtil.PoiUtilCell poiUtilCel4 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(4))); +// cells.add(poiUtilCel4); +// PoiUtil.PoiUtilCell poiUtilCel5 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(5))); +// cells.add(poiUtilCel5); +// PoiUtil.PoiUtilCell poiUtilCel6 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(6))); +// cells.add(poiUtilCel6); +// PoiUtil.PoiUtilCell poiUtilCel7 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(7))); +// cells.add(poiUtilCel7); +// PoiUtil.PoiUtilCell poiUtilCel8 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(8))); +// cells.add(poiUtilCel8); +// PoiUtil.PoiUtilCell poiUtilCel9 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(9))); +// cells.add(poiUtilCel9); +// PoiUtil.PoiUtilCell poiUtilCel10 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(10))); +// cells.add(poiUtilCel10); +// PoiUtil.PoiUtilCell poiUtilCel11 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(11))); +// cells.add(poiUtilCel11); +// PoiUtil.PoiUtilCell poiUtilCel12 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(12))); +// cells.add(poiUtilCel12); +// PoiUtil.PoiUtilCell poiUtilCel13 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(13))); +// cells.add(poiUtilCel13); +// PoiUtil.PoiUtilCell poiUtilCel14 = new PoiUtil.PoiUtilCell(String.valueOf(competeAllCount.getNums().get(14))); +// cells.add(poiUtilCel14); list.add(cells); i++; } 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 60acdb3a..f000aa2b 100644 --- a/mt/src/main/java/com/ccsens/mt/service/IExcelService.java +++ b/mt/src/main/java/com/ccsens/mt/service/IExcelService.java @@ -94,7 +94,7 @@ public interface IExcelService { // String patternExpTable(ScoreDto.ShowResult param); - List competeAllCountList1(int type); + List competeAllCountList1(Long competeTimeid); /** * 生成比赛前八名的表格 * @param params 第几届比赛 diff --git a/mt/src/main/resources/mapper_dao/CompeteJudgmentDao.xml b/mt/src/main/resources/mapper_dao/CompeteJudgmentDao.xml index 824582ab..ef643b97 100644 --- a/mt/src/main/resources/mapper_dao/CompeteJudgmentDao.xml +++ b/mt/src/main/resources/mapper_dao/CompeteJudgmentDao.xml @@ -36,9 +36,9 @@ FROM t_compete_project p LEFT JOIN t_compete_time ct on p.type = ct.type LEFT JOIN t_compete_project_config pc on p.id = pc.project_id - LEFT JOIN (SELECT 1 as nums union All SELECT 2 as nums union All SELECT 3 as nums) n on 1=1 + LEFT JOIN t_compete_judgment j on j.project_id = p.id and (j.rec_status = 0 or j.rec_status IS NULL) - and j.chief_judgment = n.nums + WHERE ct.id = #{competeTimeId} diff --git a/mt/src/main/resources/mapper_dao/CompetePlayerDao.xml b/mt/src/main/resources/mapper_dao/CompetePlayerDao.xml index dd48e6db..0a52901b 100644 --- a/mt/src/main/resources/mapper_dao/CompetePlayerDao.xml +++ b/mt/src/main/resources/mapper_dao/CompetePlayerDao.xml @@ -44,6 +44,8 @@ + + @@ -332,7 +334,9 @@ p.`name` as projectName, p.certificate as certificate, a.groupId as groupId, - a.aNum as aNum + a.aNum as aNum, + p.team as team, + p.join_rule as joinRule FROM t_compete_project p LEFT JOIN( @@ -379,6 +383,86 @@ ORDER BY p.id,a.sequence + \ No newline at end of file diff --git a/tall/src/main/resources/application.yml b/tall/src/main/resources/application.yml index ebc544af..b5408a3a 100644 --- a/tall/src/main/resources/application.yml +++ b/tall/src/main/resources/application.yml @@ -1,5 +1,5 @@ spring: profiles: - active: test - include: util-test,common + active: dev + include: util-dev,common diff --git a/util/src/test/java/com/ccsens/util/OtherTest.java b/util/src/test/java/com/ccsens/util/OtherTest.java index b3472d1a..94b6482a 100644 --- a/util/src/test/java/com/ccsens/util/OtherTest.java +++ b/util/src/test/java/com/ccsens/util/OtherTest.java @@ -45,4 +45,11 @@ public class OtherTest { System.out.println(sd2); } + @Test + public void test4() { + int a = 119; + int b = 6; + System.out.println(Math.ceil((float)a/(float)b)); + } + }