Browse Source

20201124v1.5

tiaosheng
zy_Java 5 years ago
parent
commit
0e9b248355
  1. 2
      mt/src/main/java/com/ccsens/mt/api/DebugController.java
  2. 10
      mt/src/main/java/com/ccsens/mt/bean/vo/TableVo.java
  3. 7
      mt/src/main/java/com/ccsens/mt/persist/dao/CompetePlayerDao.java
  4. 73
      mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java
  5. 104
      mt/src/main/java/com/ccsens/mt/service/ExcelService.java
  6. 2
      mt/src/main/java/com/ccsens/mt/service/IExcelService.java
  7. 4
      mt/src/main/resources/mapper_dao/CompeteJudgmentDao.xml
  8. 88
      mt/src/main/resources/mapper_dao/CompetePlayerDao.xml
  9. 4
      tall/src/main/resources/application.yml
  10. 7
      util/src/test/java/com/ccsens/util/OtherTest.java

2
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<TableVo.CompeteAllCount1> competeAllCount1s = excelService.competeAllCountList1(0);
List<TableVo.CompeteAllCount1> competeAllCount1s = excelService.competeAllCountList1(1L);
return JsonResponse.newInstance().ok(competeAllCount1s);
}

10
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<String> 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;
}

7
mt/src/main/java/com/ccsens/mt/persist/dao/CompetePlayerDao.java

@ -99,4 +99,11 @@ public interface CompetePlayerDao extends CompetePlayerMapper {
* @return
*/
List<TableVo.CompeteAllCount1> getJoinTeamNumByType(@Param("type")byte type);
/**
* 查询团队限制组别的项目的数量汇总交互绳 一带一
* @param type
* @return
*/
List<TableVo.CompeteAllCount1> getJoinRuleTeamNumByType(@Param("type")byte type);
}

73
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<ProvinceCompeteVo.QueryJudgment> queryJudgment(ProvinceCompeteDto.QueryJudgment param) {
List<ProvinceCompeteVo.QueryJudgment> 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<Integer,Integer> siteMap = new HashMap<>();
Map<Integer,Integer> 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;
}

104
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<TableVo.CompeteAllCount> competeAllCountList = competeAllCountList(params);
// List<TableVo.CompeteAllCount> competeAllCountList = competeAllCountList(params);
List<TableVo.CompeteAllCount1> competeAllCountList = competeAllCountList1(params.getCompeteTimeId());
String path = getExcelFilePathForCompeteAllCount(competeAllCountList);
return path;
}
@ -952,24 +951,26 @@ public class ExcelService implements IExcelService {
}
@Override
public List<TableVo.CompeteAllCount1> competeAllCountList1(int type){
// CompeteTime competeTime = competeTimeDao.selectByPrimaryKey(params.getCompeteTimeId());
public List<TableVo.CompeteAllCount1> competeAllCountList1(Long competeTimeId){
CompeteTime competeTime = competeTimeDao.selectByPrimaryKey(competeTimeId);
List<TableVo.CompeteAllCount1> competeAllCountList = new ArrayList<>();
// if(ObjectUtil.isNotNull(competeTime)) {
if(ObjectUtil.isNotNull(competeTime)){
//查询个人赛的数量统计
competeAllCountList = competePlayerDao.getJoinNumByType((byte) type);
//查询团体赛的数量统计
// List<TableVo.CompeteAllCount1> groupNum = competePlayerDao.getJoinTeamNumByType((byte) type);
List<TableVo.CompeteAllCount1> nums = competePlayerDao.getJoinNumByType(competeTime.getType());
competeAllCountList.addAll(nums);
//查询限制组别的团体赛的统计
//查询不限组别团体赛的统计
// }
List<TableVo.CompeteAllCount1> groupRuleNum = competePlayerDao.getJoinRuleTeamNumByType(competeTime.getType());
competeAllCountList.addAll(groupRuleNum);
//查询团体赛的数量统计
List<TableVo.CompeteAllCount1> groupNum = competePlayerDao.getJoinTeamNumByType(competeTime.getType());
competeAllCountList.addAll(groupNum);
}
CollectionUtil.sort(competeAllCountList,(t1,t2)-> (int)(t1.getProjectId() - t2.getProjectId()));
return competeAllCountList;
}
private String getExcelFilePathForCompeteAllCount(List<TableVo.CompeteAllCount> arrayList) throws IOException {
private String getExcelFilePathForCompeteAllCount(List<TableVo.CompeteAllCount1> arrayList) throws IOException {
//创建excle表格对象
List<List<PoiUtil.PoiUtilCell>> 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<PoiUtil.PoiUtilCell> 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++;
}

2
mt/src/main/java/com/ccsens/mt/service/IExcelService.java

@ -94,7 +94,7 @@ public interface IExcelService {
// String patternExpTable(ScoreDto.ShowResult param);
List<TableVo.CompeteAllCount1> competeAllCountList1(int type);
List<TableVo.CompeteAllCount1> competeAllCountList1(Long competeTimeid);
/**
* 生成比赛前八名的表格
* @param params 第几届比赛

4
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}
<if test="projectId != null">

88
mt/src/main/resources/mapper_dao/CompetePlayerDao.xml

@ -44,6 +44,8 @@
<id column="projectId" property="projectId"/>
<result column="projectName" property="projectName"/>
<result column="certificate" property="certificate"/>
<result column="team" property="team"/>
<result column="joinRule" property="joinRule"/>
<collection property="joinNum" ofType="com.ccsens.mt.bean.vo.TableVo$JoinGroupNum">
<id column="groupId" property="groupId"/>
<result column="aNum" property="num"/>
@ -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
</select>
<select id="getJoinTeamNumByType" resultMap="teamNum1">
SELECT
p.id as projectId,
p.`name` as projectName,
count(t.id) as aNum,
p.team as team,
p.join_rule as joinRule
FROM
t_compete_project p
LEFT JOIN t_compete_team t on p.id = t.project_id
LEFT JOIN t_compete_company c on t.company_id = c.id
WHERE
p.type = #{type}
and p.`level` = 2
and p.team = 1
and p.join_rule = 1
and p.rec_status = 0
and t.rec_status = 0
and c.rec_status = 0
GROUP BY p.id
</select>
<select id="getJoinRuleTeamNumByType" resultMap="teamNum1">
SELECT
p.id as projectId,
p.`name` as projectName,
p.certificate as certificate,
a.groupId as groupId,
a.aNum as aNum,
p.team as team,
p.join_rule as joinRule
FROM
t_compete_project p
LEFT JOIN(
SELECT
g.id as groupId,
g.group_name as groupName,
g.sequence as sequence,
t.projectId,
if(t.num is null,'/',t.num) as aNum
FROM
t_compete_group g
LEFT JOIN
(
SELECT
g.id as gid,
g.group_name,
count(t.teamId) as num,
t.projectId as projectId
FROM
t_compete_group g
LEFT JOIN
(
SELECT
t.id as teamId,
t.project_id as projectId,
t.gender_group,
t.group_remark
FROM
t_compete_team t
LEFT JOIN t_compete_company c on t.company_id = c.id
WHERE
(t.rec_status = 0 or t.rec_status is null)
and (c.rec_status = 0 or c.rec_status is null)
)t on ((t.gender_group = g.sex and t.group_remark = g.group_remark) or t.teamId is null)
WHERE
g.type = 0
and g.rec_status = 0
GROUP BY g.id,t.projectId
ORDER BY g.sequence
)t
on (t.gid = g.id or t.gid is null)
WHERE
g.type = 0
and g.rec_status = 0
)a on (p.id = a.projectId or a.projectId is null)
WHERE
p.type = #{type}
and p.team = 1
and p.`level` = 2
and p.join_rule = 0
and p.rec_status = 0
ORDER BY p.id,a.sequence
</select>
</mapper>

4
tall/src/main/resources/application.yml

@ -1,5 +1,5 @@
spring:
profiles:
active: test
include: util-test,common
active: dev
include: util-dev,common

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

Loading…
Cancel
Save