diff --git a/mt/src/main/java/com/ccsens/mt/api/ExcelController.java b/mt/src/main/java/com/ccsens/mt/api/ExcelController.java index 2a82986e..33c66238 100644 --- a/mt/src/main/java/com/ccsens/mt/api/ExcelController.java +++ b/mt/src/main/java/com/ccsens/mt/api/ExcelController.java @@ -31,13 +31,31 @@ public class ExcelController { @Resource private IExcelService excelService; - @MustLogin - @ApiOperation(value = "大赛报名表", notes = "") + @ApiOperation(value = "xxx大赛报名表", notes = "") @RequestMapping(value = "/competeJoin", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse competeJoin(@ApiParam @Validated @RequestBody QueryDto params) throws IOException { - log.info("查询各种报名人员各种信息:{}",params); + log.info("xxx大赛报名表:{}",params); String path = excelService.competeJoin(params); return JsonResponse.newInstance().ok(path); } + + @MustLogin + @ApiOperation(value = "参赛人数统计表", notes = "") + @RequestMapping(value = "/competeJoinCount", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse competeJoinCount(@ApiParam @Validated @RequestBody QueryDto params) throws IOException { + log.info("参赛人数统计表:{}",params); + String path = excelService.competeJoinCount(params.getParam()); + return JsonResponse.newInstance().ok(path); + } + + + @MustLogin + @ApiOperation(value = "XXX比赛报名汇总表", notes = "") + @RequestMapping(value = "/competeAllCount", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse competeAllCount(@ApiParam @Validated @RequestBody QueryDto params) throws IOException { + log.info("XXX比赛报名汇总表:{}",params); + String path = excelService.competeAllCount(params.getParam()); + return JsonResponse.newInstance().ok(path); + } } diff --git a/mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java index 62be8623..0c1c422a 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java +++ b/mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java @@ -29,6 +29,7 @@ public class ProvinceCompeteVo { private int projectNum; } + @Data @ApiModel("查找单位内的参赛选手列表") public static class PlayerByCompanyId{ 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 b06e70ef..9d921137 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 @@ -20,7 +20,7 @@ public class TableVo { @ApiModelProperty("姓名") private String name; @ApiModelProperty("性别") - private int gender; + private String gender; @ApiModelProperty("年龄") private int age; @ApiModelProperty("身份证号") @@ -38,4 +38,58 @@ public class TableVo { @ApiModelProperty("参赛队伍") private String joinTeam; } + + + @Data + @ApiModel("参赛人数统计表") + public static class CompeteOverview{ + @ApiModelProperty("参赛队伍名称") + private String companyName; + @ApiModelProperty("当前添加的教练的人数") + private int coachNum; + @ApiModelProperty("当前添加的领队的人数") + private int guideNum; + @ApiModelProperty("当前添加的参赛人员的人数") + private int playerNum; + @ApiModelProperty("队伍总人数") + private int sum; + } + + + @Data + @ApiModel("XXX比赛报名汇总表") + public static class CompeteAllCount{ + @ApiModelProperty("参赛项目") + private String projectName; + @ApiModelProperty("小学男子组") + private int primaryMale; + @ApiModelProperty("小学女子组") + private int primaryFemale; + @ApiModelProperty("小学混合组") + private int primary; + @ApiModelProperty("中学男子组") + private int middleMale; + @ApiModelProperty("中学女子组") + private int middleFemale; + @ApiModelProperty("中学混合组") + private int middle; + @ApiModelProperty("高职院校男子组") + private int highMale; + @ApiModelProperty("高职院校女子组") + private int highFemale; + @ApiModelProperty("高职院校混合组") + private int high; + @ApiModelProperty("本科院校男子组") + private int collegeMale; + @ApiModelProperty("本科院校女子组") + private int collegeFemale; + @ApiModelProperty("本科院校混合组") + private int college; + @ApiModelProperty("俱乐部男子组(14岁及以下)") + private int clubMale; + @ApiModelProperty("俱乐部女子组(14岁及以下)") + private int clubFemale; + @ApiModelProperty("俱乐部混合组(14岁及以下)") + private int club; + } } 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 48133b77..c6f2ca97 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java @@ -112,7 +112,7 @@ public class CompeteService implements ICompeteService { // competeGroups.forEach(competeGroup -> { // CompeteProjectGroupExample competeProjectGroupExample = new CompeteProjectGroupExample(); // competeProjectGroupExample.createCriteria().andGroupIdEqualTo(competeGroup.getGroupId()).andProjectIdEqualTo(competeType.getProjectId()); -// if(competeProjectGroupMapper.countByExample(competeProjectGroupExample) == 0){ +// if(competeProjectGroupMapper.1ByExample(competeProjectGroupExample) == 0){ // competeGroups.remove(competeGroup); // } // }); 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 f1205e4d..d8f16049 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ExcelService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ExcelService.java @@ -3,21 +3,24 @@ package com.ccsens.mt.service; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.IdcardUtil; +import cn.hutool.core.util.ObjectUtil; import com.ccsens.cloudutil.feign.TallFeignClient; import com.ccsens.mt.bean.dto.CompeteDto; import com.ccsens.mt.bean.po.*; +import com.ccsens.mt.bean.vo.ProvinceCompeteVo; import com.ccsens.mt.bean.vo.TableVo; -import com.ccsens.mt.persist.dao.CompeteEnrollDao; -import com.ccsens.mt.persist.dao.CompetePlayerDao; -import com.ccsens.mt.persist.dao.CompeteTeamDao; -import com.ccsens.mt.persist.dao.CompeteTimeDao; +import com.ccsens.mt.persist.dao.*; import com.ccsens.mt.persist.mapper.*; import com.ccsens.util.PoiUtil; import com.ccsens.util.PropUtil; import com.ccsens.util.RedisUtil; import com.ccsens.util.bean.dto.QueryDto; +import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.File; @@ -27,7 +30,13 @@ import java.io.OutputStream; import java.util.ArrayList; import java.util.List; -public class ExcelService implements IExcelService { +/** + * @author 逗 + */ +@Slf4j +@Service +@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) +public class ExcelService implements IExcelService { @Resource private CompeteTimeDao competeTimeDao; @Resource @@ -60,17 +69,23 @@ public class ExcelService implements IExcelService { private TallFeignClient tallFeignClient; @Resource private CommonFileMapper commonFileMapper; + @Resource + private IProvinceService provinceService; + @Resource + private CompeteCompanyDao competeCompanyDao; + @Resource + CompeteCoachMapper competeCoachMapper; @Override public String competeJoin(QueryDto params) throws IOException { - CompeteDto.CompeteTime competeTime =params.getParam(); + CompeteDto.CompeteTime competeTime = params.getParam(); List competeJoinList = getCompeteJoin(competeTime); String path = getExcelFilePathForCompeteJoin(competeJoinList); - return null; + return path; } - private List getCompeteJoin(CompeteDto.CompeteTime params){ + private List getCompeteJoin(CompeteDto.CompeteTime params) { List competeJoinList = new ArrayList<>(); Long competeTimeId = params.getCompeteTimeId(); CompeteTime competeTime = competeTimeDao.selectByPrimaryKey(competeTimeId); @@ -80,14 +95,14 @@ public class ExcelService implements IExcelService { competeProjectExample.createCriteria().andTypeEqualTo((byte) type).andLevelEqualTo(level); //获取参赛项目集合 List competeProjectList = competeProjectMapper.selectByExample(competeProjectExample); - for (CompeteProject competeProject : competeProjectList){ + for (CompeteProject competeProject : competeProjectList) { String projectName = competeProject.getName(); - if (competeProject.getTeam() == 0){ + if (competeProject.getTeam() == 0) { //如果不是团队项目,查询该项目下报名人数集合 CompeteProjectPlayerExample competeProjectPlayerExample = new CompeteProjectPlayerExample(); competeProjectPlayerExample.createCriteria().andProjectIdEqualTo(competeProject.getId()); List competeProjectPlayerList = competeProjectPlayerMapper.selectByExample(competeProjectPlayerExample); - for (CompeteProjectPlayer competeProjectPlayer : competeProjectPlayerList){ + for (CompeteProjectPlayer competeProjectPlayer : competeProjectPlayerList) { //查询每个报名人的详细信息下 CompetePlayer competePlayer = competePlayerDao.selectByPrimaryKey(competeProjectPlayer.getPlayerId()); TableVo.CompeteJoin competeJoin = new TableVo.CompeteJoin(); @@ -99,45 +114,63 @@ public class ExcelService implements IExcelService { String idCard = competeJoin.getIdCard(); int ageByIdCard = IdcardUtil.getAgeByIdCard(idCard); competeJoin.setAge(ageByIdCard); - //性别 - competeJoin.setGender(competePlayer.getGender()); + Byte gender = competePlayer.getGender(); + if (gender == 0) { + competeJoin.setGender("女"); + } else { + competeJoin.setGender("男"); + } //查询单位,并赋值 CompeteCompany competeCompany = competeCompanyMapper.selectByPrimaryKey(competePlayer.getCompanyId()); - competeJoin.setJoinTeam(competeCompany.getName()); + if (ObjectUtil.isNotNull(competeCompany)) { + competeJoin.setJoinTeam(competeCompany.getName()); + } //查询组别,并赋值 CompeteGroup competeGroup = competeGroupMapper.selectByPrimaryKey(competePlayer.getCompeteGroupId()); - competeJoin.setCompeteGroup(competePlayer.getName()); - //身份证明查询,并赋值 - CommonFile commonFile = commonFileMapper.selectByPrimaryKey(competePlayer.getIdCardFrontFile()); - competeJoin.setIdCardPromise(commonFile.getVisitLocation()); - //一寸证件照查询赋值 - CommonFile commonFile1 = commonFileMapper.selectByPrimaryKey(competePlayer.getIdPhotoFile()); - competeJoin.setPicture(commonFile1.getVisitLocation()); - //学籍证明/俱乐部证明 - CommonFile commonFile2 = commonFileMapper.selectByPrimaryKey(competePlayer.getStudentRecordFile()); - competeJoin.setStudentPromise(commonFile2.getVisitLocation()); - //体检证明 - CommonFile commonFile3 = commonFileMapper.selectByPrimaryKey(competePlayer.getHealthRecordFile()); - competeJoin.setBodyTest(commonFile3.getVisitLocation()); - //人身意外伤害保险证明 - CommonFile commonFile4 = commonFileMapper.selectByPrimaryKey(competePlayer.getInsuranceRecordFile()); - competeJoin.setBodyProtect(commonFile4.getVisitLocation()); + if (ObjectUtil.isNotNull(competeGroup)) { + competeJoin.setCompeteGroup(competePlayer.getName()); + } +// //身份证明查询,并赋值 +// CommonFile commonFile = commonFileMapper.selectByPrimaryKey(competePlayer.getIdCardFrontFile()); +// if (ObjectUtil.isNotNull(commonFile)) { +// competeJoin.setIdCardPromise(commonFile.getVisitLocation()); +// } +// //一寸证件照查询赋值 +// CommonFile commonFile1 = commonFileMapper.selectByPrimaryKey(competePlayer.getIdPhotoFile()); +// if (ObjectUtil.isNotNull(commonFile1)) { +// competeJoin.setPicture(commonFile1.getVisitLocation()); +// } +// //学籍证明/俱乐部证明 +// CommonFile commonFile2 = commonFileMapper.selectByPrimaryKey(competePlayer.getStudentRecordFile()); +// if (ObjectUtil.isNotNull(commonFile2)) { +// competeJoin.setStudentPromise(commonFile2.getVisitLocation()); +// } +// //体检证明 +// CommonFile commonFile3 = commonFileMapper.selectByPrimaryKey(competePlayer.getHealthRecordFile()); +// if (ObjectUtil.isNotNull(commonFile3)) { +// competeJoin.setBodyTest(commonFile3.getVisitLocation()); +// } +// //人身意外伤害保险证明 +// CommonFile commonFile4 = commonFileMapper.selectByPrimaryKey(competePlayer.getInsuranceRecordFile()); +// if (ObjectUtil.isNotNull(commonFile4)) { +// competeJoin.setBodyProtect(commonFile4.getVisitLocation()); +// } //参赛项目名赋值 competeJoin.setCompeteProject(projectName); competeJoinList.add(competeJoin); } - }else { //团队项目 + } else { //团队项目 //获取参赛队伍集合 CompeteTeamExample competeTeamExample = new CompeteTeamExample(); competeTeamExample.createCriteria().andProjectIdEqualTo(competeProject.getId()); List competeTeamList = competeTeamDao.selectByExample(competeTeamExample); - for (CompeteTeam competeTeam : competeTeamList){ + for (CompeteTeam competeTeam : competeTeamList) { //获取队伍下的成员集合 CompeteTeamMemberExample competeTeamMemberExample = new CompeteTeamMemberExample(); competeTeamMemberExample.createCriteria().andCompeteTeamIdEqualTo(competeTeam.getId()); List competeTeamMemberList = competeTeamMemberMapper.selectByExample(competeTeamMemberExample); - for (CompeteTeamMember competeTeamMember : competeTeamMemberList){ + for (CompeteTeamMember competeTeamMember : competeTeamMemberList) { //查询成员详细信息 CompetePlayer competePlayer = competePlayerDao.selectByPrimaryKey(competeTeamMember.getPlayerId()); TableVo.CompeteJoin competeJoin = new TableVo.CompeteJoin(); @@ -150,28 +183,48 @@ public class ExcelService implements IExcelService { int ageByIdCard = IdcardUtil.getAgeByIdCard(idCard); competeJoin.setAge(ageByIdCard); //性别 - competeJoin.setGender(competePlayer.getGender()); + Byte gender = competePlayer.getGender(); + if (gender == 0) { + competeJoin.setGender("女"); + } else { + competeJoin.setGender("男"); + } + //查询单位,并赋值 CompeteCompany competeCompany = competeCompanyMapper.selectByPrimaryKey(competePlayer.getCompanyId()); - competeJoin.setJoinTeam(competeCompany.getName()); + if (ObjectUtil.isNotNull(competeCompany)) { + competeJoin.setJoinTeam(competeCompany.getName()); + } //查询组别,并赋值 CompeteGroup competeGroup = competeGroupMapper.selectByPrimaryKey(competePlayer.getCompeteGroupId()); - competeJoin.setCompeteGroup(competePlayer.getName()); - //身份证明查询,并赋值 - CommonFile commonFile = commonFileMapper.selectByPrimaryKey(competePlayer.getIdCardFrontFile()); - competeJoin.setIdCardPromise(commonFile.getVisitLocation()); - //一寸证件照查询赋值 - CommonFile commonFile1 = commonFileMapper.selectByPrimaryKey(competePlayer.getIdPhotoFile()); - competeJoin.setPicture(commonFile1.getVisitLocation()); - //学籍证明/俱乐部证明 - CommonFile commonFile2 = commonFileMapper.selectByPrimaryKey(competePlayer.getStudentRecordFile()); - competeJoin.setStudentPromise(commonFile2.getVisitLocation()); - //体检证明 - CommonFile commonFile3 = commonFileMapper.selectByPrimaryKey(competePlayer.getHealthRecordFile()); - competeJoin.setBodyTest(commonFile3.getVisitLocation()); - //人身意外伤害保险证明 - CommonFile commonFile4 = commonFileMapper.selectByPrimaryKey(competePlayer.getInsuranceRecordFile()); - competeJoin.setBodyProtect(commonFile4.getVisitLocation()); + if (ObjectUtil.isNotNull(competeGroup)) { + competeJoin.setCompeteGroup(competePlayer.getName()); + } +// //身份证明查询,并赋值 +// CommonFile commonFile = commonFileMapper.selectByPrimaryKey(competePlayer.getIdCardFrontFile()); +// if (ObjectUtil.isNotNull(commonFile)){ +// competeJoin.setIdCardPromise(commonFile.getVisitLocation()); +// } +// //一寸证件照查询赋值 +// CommonFile commonFile1 = commonFileMapper.selectByPrimaryKey(competePlayer.getIdPhotoFile()); +// if (ObjectUtil.isNotNull(commonFile1)){ +// competeJoin.setPicture(commonFile1.getVisitLocation()); +// } +// //学籍证明/俱乐部证明 +// CommonFile commonFile2 = commonFileMapper.selectByPrimaryKey(competePlayer.getStudentRecordFile()); +// if (ObjectUtil.isNotNull(commonFile2)){ +// competeJoin.setStudentPromise(commonFile2.getVisitLocation()); +// } +// //体检证明 +// CommonFile commonFile3 = commonFileMapper.selectByPrimaryKey(competePlayer.getHealthRecordFile()); +// if (ObjectUtil.isNotNull(commonFile3)){ +// competeJoin.setBodyTest(commonFile3.getVisitLocation()); +// } +// //人身意外伤害保险证明 +// CommonFile commonFile4 = commonFileMapper.selectByPrimaryKey(competePlayer.getInsuranceRecordFile()); +// if (ObjectUtil.isNotNull(commonFile4)){ +// competeJoin.setBodyProtect(commonFile4.getVisitLocation()); +// } //参赛项目名赋值 competeJoin.setCompeteProject(projectName); competeJoinList.add(competeJoin); @@ -179,7 +232,7 @@ public class ExcelService implements IExcelService { } } } - return competeJoinList; + return competeJoinList; } private String getExcelFilePathForCompeteJoin(List arrayList) throws IOException { @@ -188,6 +241,7 @@ public class ExcelService implements IExcelService { //创建行对象 List title = new ArrayList<>(); //给首行单元格赋值 + title.add(new PoiUtil.PoiUtilCell("序号")); title.add(new PoiUtil.PoiUtilCell("参赛项目")); title.add(new PoiUtil.PoiUtilCell("组别")); title.add(new PoiUtil.PoiUtilCell("参赛队伍")); @@ -195,11 +249,12 @@ public class ExcelService implements IExcelService { title.add(new PoiUtil.PoiUtilCell("性别")); title.add(new PoiUtil.PoiUtilCell("年龄")); title.add(new PoiUtil.PoiUtilCell("身份证号")); - title.add(new PoiUtil.PoiUtilCell("身份证明")); - title.add(new PoiUtil.PoiUtilCell("一寸证件照")); - title.add(new PoiUtil.PoiUtilCell("学籍证明/俱乐部证明")); - title.add(new PoiUtil.PoiUtilCell("体检证明")); - title.add(new PoiUtil.PoiUtilCell("人身意外伤害保险证明")); +// title.add(new PoiUtil.PoiUtilCell("身份证明")); +// title.add(new PoiUtil.PoiUtilCell("一寸证件照")); +// title.add(new PoiUtil.PoiUtilCell("学籍证明/俱乐部证明")); +// title.add(new PoiUtil.PoiUtilCell("体检证明")); +// title.add(new PoiUtil.PoiUtilCell("人身意外伤害保险证明")); + title.add(new PoiUtil.PoiUtilCell("备注")); list.add(title); //创建整个excel表格对象 Workbook workbook = new XSSFWorkbook(); @@ -220,19 +275,19 @@ public class ExcelService implements IExcelService { PoiUtil.PoiUtilCell poiUtilCel4 = new PoiUtil.PoiUtilCell(String.valueOf(competeJoin.getGender())); cells.add(poiUtilCel4); PoiUtil.PoiUtilCell poiUtilCel5 = new PoiUtil.PoiUtilCell(String.valueOf(competeJoin.getAge())); - cells.add(poiUtilCel4); + cells.add(poiUtilCel5); PoiUtil.PoiUtilCell poiUtilCel6 = new PoiUtil.PoiUtilCell(competeJoin.getIdCard()); - cells.add(poiUtilCel4); - PoiUtil.PoiUtilCell poiUtilCel7 = new PoiUtil.PoiUtilCell(competeJoin.getIdCardPromise()); - cells.add(poiUtilCel4); - PoiUtil.PoiUtilCell poiUtilCel8 = new PoiUtil.PoiUtilCell(competeJoin.getPicture()); - cells.add(poiUtilCel4); - PoiUtil.PoiUtilCell poiUtilCel9 = new PoiUtil.PoiUtilCell(competeJoin.getStudentPromise()); - cells.add(poiUtilCel4); - PoiUtil.PoiUtilCell poiUtilCel10 = new PoiUtil.PoiUtilCell(competeJoin.getBodyTest()); - cells.add(poiUtilCel4); - PoiUtil.PoiUtilCell poiUtilCel11= new PoiUtil.PoiUtilCell(competeJoin.getBodyProtect()); - cells.add(poiUtilCel4); + cells.add(poiUtilCel6); +// PoiUtil.PoiUtilCell poiUtilCel7 = new PoiUtil.PoiUtilCell(competeJoin.getIdCardPromise()); +// cells.add(poiUtilCel7); +// PoiUtil.PoiUtilCell poiUtilCel8 = new PoiUtil.PoiUtilCell(competeJoin.getPicture()); +// cells.add(poiUtilCel8); +// PoiUtil.PoiUtilCell poiUtilCel9 = new PoiUtil.PoiUtilCell(competeJoin.getStudentPromise()); +// cells.add(poiUtilCel9); +// PoiUtil.PoiUtilCell poiUtilCel10 = new PoiUtil.PoiUtilCell(competeJoin.getBodyTest()); +// cells.add(poiUtilCel10); +// PoiUtil.PoiUtilCell poiUtilCel11 = new PoiUtil.PoiUtilCell(competeJoin.getBodyProtect()); +// cells.add(poiUtilCel11); list.add(cells); i++; } @@ -242,6 +297,104 @@ public class ExcelService implements IExcelService { String name = "XXXX大赛报名表" + ".xlsx"; String filepath = "mt/" + DateUtil.today() + "/" + System.currentTimeMillis() + ".xlsx"; String path = PropUtil.path + filepath; +// String path = filepath; + File tmpFile = new File(path); + if (!tmpFile.getParentFile().exists()) { + tmpFile.getParentFile().mkdirs(); + } + //PropUtil.path获取配置文件中的path属性,拼接生成写入信息的文件名, + File file = new File(path); + OutputStream stream = new FileOutputStream(file); + wbs.write(stream); + stream.close(); + return path; + } + + + @Override + public String competeJoinCount(CompeteDto.CompeteTime params) throws IOException { + List competeOverviewList = competeJoinCountList(params); + String path = getExcelFilePathForCompeteJoinCount(competeOverviewList); + return path; + } + + private List competeJoinCountList(CompeteDto.CompeteTime params) { + CompeteCompanyExample competeCompanyExample = new CompeteCompanyExample(); + competeCompanyExample.createCriteria().andCompeteTimeIdEqualTo(params.getCompeteTimeId()); + //根据大赛id查公司集合 + List competeCompanyList = competeCompanyMapper.selectByExample(competeCompanyExample); + List competeOverview2List = new ArrayList<>(); + for (CompeteCompany competeCompany : competeCompanyList) { + //每个公司的教练数量 + int leader = 1; + int coach = 0; + CompeteCoachExample competeCoachExample = new CompeteCoachExample(); + competeCoachExample.createCriteria().andCompanyIdEqualTo(competeCompany.getId()).andIdentityEqualTo((byte) coach); + long count = competeCoachMapper.countByExample(competeCoachExample); + //每个公司的领队数量 + CompeteCoachExample competeCoachExample1 = new CompeteCoachExample(); + competeCoachExample1.createCriteria().andCompanyIdEqualTo(competeCompany.getId()).andIdentityEqualTo((byte) leader); + long count1 = competeCoachMapper.countByExample(competeCoachExample1); + //每个公司运动员人数 + CompetePlayerExample competePlayerExample2 = new CompetePlayerExample(); + competePlayerExample2.createCriteria().andCompanyIdEqualTo(competeCompany.getId()); + long count2 = competePlayerDao.countByExample(competePlayerExample2); + //总人数 + long sum = count + count1 + count2; + TableVo.CompeteOverview CompeteOverview2 = new TableVo.CompeteOverview(); + CompeteOverview2.setCompanyName(competeCompany.getName()); + CompeteOverview2.setCoachNum((int) count); + CompeteOverview2.setGuideNum((int) count1); + CompeteOverview2.setPlayerNum((int) count2); + CompeteOverview2.setSum((int) sum); + competeOverview2List.add(CompeteOverview2); + } + return competeOverview2List; + } + + + + private String getExcelFilePathForCompeteJoinCount(List arrayList) throws IOException { + //创建excle表格对象 + List> list = new ArrayList<>(); + //创建行对象 + List title = new ArrayList<>(); + //给首行单元格赋值 + title.add(new PoiUtil.PoiUtilCell("序号")); + title.add(new PoiUtil.PoiUtilCell("单位")); + title.add(new PoiUtil.PoiUtilCell("领队")); + title.add(new PoiUtil.PoiUtilCell("教练")); + title.add(new PoiUtil.PoiUtilCell("运动员")); + title.add(new PoiUtil.PoiUtilCell("总人数")); + list.add(title); + //创建整个excel表格对象 + Workbook workbook = new XSSFWorkbook(); + int i = 1; + for (TableVo.CompeteOverview competeOverview : arrayList) { + //行对象 + List cells = new ArrayList<>(); + cells.add(new PoiUtil.PoiUtilCell(i + "", 1, 1, 300, 18)); + //单元格对象 + PoiUtil.PoiUtilCell poiUtilCel = new PoiUtil.PoiUtilCell(competeOverview.getCompanyName()); + cells.add(poiUtilCel); + PoiUtil.PoiUtilCell poiUtilCell = new PoiUtil.PoiUtilCell(String.valueOf(competeOverview.getGuideNum())); + cells.add(poiUtilCell); + PoiUtil.PoiUtilCell poiUtilCel2 = new PoiUtil.PoiUtilCell(String.valueOf(competeOverview.getCoachNum())); + cells.add(poiUtilCel2); + PoiUtil.PoiUtilCell poiUtilCel3 = new PoiUtil.PoiUtilCell(String.valueOf(competeOverview.getPlayerNum())); + cells.add(poiUtilCel3); + PoiUtil.PoiUtilCell poiUtilCel4 = new PoiUtil.PoiUtilCell(String.valueOf(competeOverview.getSum())); + cells.add(poiUtilCel4); + list.add(cells); + i++; + } + //生成excel表格对象,并将数据放入 + Workbook wbs = PoiUtil.exportWB("参赛人数统计表", list, workbook); + //8:关联金山在线文档 + String name = "参赛人数统计表" + ".xlsx"; + String filepath = "mt/" + DateUtil.today() + "/" + System.currentTimeMillis() + ".xlsx"; + String path = PropUtil.path + filepath; +// String path = filepath; File tmpFile = new File(path); if (!tmpFile.getParentFile().exists()) { tmpFile.getParentFile().mkdirs(); @@ -254,4 +407,66 @@ public class ExcelService implements IExcelService { return path; } + @Override + public String competeAllCount(CompeteDto.CompeteTime params) throws IOException { + return null; + } + + private List competeAllCountList(CompeteDto.CompeteTime params){ + //根据大赛查类型 + Long competeTimeId = params.getCompeteTimeId(); + CompeteTime competeTime = competeTimeDao.selectByPrimaryKey(competeTimeId); + int type = competeTime.getType(); + Byte level = 2; + CompeteProjectExample competeProjectExample = new CompeteProjectExample(); + competeProjectExample.createCriteria().andTypeEqualTo((byte) type).andLevelEqualTo(level); + //获取参赛项目集合 + List competeProjectList = competeProjectMapper.selectByExample(competeProjectExample); + CompeteGroupExample competeGroupExample = new CompeteGroupExample(); + competeGroupExample.createCriteria().andTypeEqualTo((byte) type); + //获取组别集合 + List competeGroupList = competeGroupMapper.selectByExample(competeGroupExample); + for (CompeteProject competeProject : competeProjectList){ + //若不是团队项目 + if (competeProject.getTeam() == 0){ + TableVo.CompeteAllCount competeAllCount = new TableVo.CompeteAllCount(); + //项目名赋值 + competeAllCount.setProjectName(competeProject.getName()); + //遍历组别集合 + int i = 0; + for(CompeteGroup competeGroup : competeGroupList){ + CompetePlayerExample competePlayerExample = new CompetePlayerExample(); + competePlayerExample.createCriteria().andCompeteGroupIdEqualTo(competeGroup.getId()); + //计算每个组别人数 + long count = competePlayerDao.countByExample(competePlayerExample); + } + } + } + return null; + } + + + + } + + + + + + + + + + + + + + + + + + + + + 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 b2d0679c..053f40c1 100644 --- a/mt/src/main/java/com/ccsens/mt/service/IExcelService.java +++ b/mt/src/main/java/com/ccsens/mt/service/IExcelService.java @@ -4,7 +4,9 @@ import com.ccsens.mt.bean.dto.CompeteDto; import com.ccsens.util.bean.dto.QueryDto; import java.io.IOException; - +/** + * @author li + */ public interface IExcelService { /** * XXXX大赛报名表 @@ -12,4 +14,21 @@ public interface IExcelService { * @return 返回失败的信息 */ String competeJoin(QueryDto params) throws IOException; + + + + /** + * XXXX大赛报名表 + * @param params 大赛id + * @return 返回失败的信息 + */ + String competeJoinCount(CompeteDto.CompeteTime params) throws IOException; + + + /** + * XXX比赛报名汇总表 + * @param params 大赛id + * @return 返回失败的信息 + */ + String competeAllCount(CompeteDto.CompeteTime params) throws IOException; } diff --git a/util/src/main/java/com/ccsens/util/PoiUtil.java b/util/src/main/java/com/ccsens/util/PoiUtil.java index d7c0cd44..3bbcb1c2 100644 --- a/util/src/main/java/com/ccsens/util/PoiUtil.java +++ b/util/src/main/java/com/ccsens/util/PoiUtil.java @@ -162,6 +162,9 @@ public class PoiUtil { List cells = rows.get(i); for (int j = 0; j < cells.size(); j++) { PoiUtilCell cell = cells.get(j); + if(ObjectUtil.isNull(cell)){ + continue; + } //查找当前单元格 Cell newCell = row.getCell(j); if(ObjectUtil.isNull(newCell)){