Browse Source

Merge branch 'pt' of dd.tall.wiki:ccsens_wiki/ccsenscloud into pt

tiaosheng
zy_Java 5 years ago
parent
commit
fa3c92871f
  1. 2
      mt/src/main/java/com/ccsens/mt/api/CompeteController.java
  2. 43
      mt/src/main/java/com/ccsens/mt/api/ExcelController.java
  3. 41
      mt/src/main/java/com/ccsens/mt/bean/vo/TableVo.java
  4. 8
      mt/src/main/java/com/ccsens/mt/persist/dao/CompeteEnrollDao.java
  5. 10
      mt/src/main/java/com/ccsens/mt/service/CompeteService.java
  6. 257
      mt/src/main/java/com/ccsens/mt/service/ExcelService.java
  7. 2
      mt/src/main/java/com/ccsens/mt/service/ICompeteService.java
  8. 15
      mt/src/main/java/com/ccsens/mt/service/IExcelService.java
  9. 5
      mt/src/main/java/com/ccsens/mt/service/ProvinceService.java
  10. 4
      mt/src/main/resources/application.yml
  11. 7
      mt/src/main/resources/mapper_dao/CompeteEnrollDao.xml

2
mt/src/main/java/com/ccsens/mt/api/CompeteController.java

@ -221,4 +221,6 @@ public class CompeteController {
// return JsonResponse.newInstance().ok(playerList);
// }
}

43
mt/src/main/java/com/ccsens/mt/api/ExcelController.java

@ -0,0 +1,43 @@
package com.ccsens.mt.api;
import com.ccsens.cloudutil.annotation.MustLogin;
import com.ccsens.mt.bean.dto.CompeteDto;
import com.ccsens.mt.service.ICompeteService;
import com.ccsens.mt.service.IExcelService;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.bean.dto.QueryDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.io.IOException;
/**
* @author li
*/
@Slf4j
@Api(tags = "报名表格的下载", description = "")
@RestController
@RequestMapping("/down")
public class ExcelController {
@Resource
private IExcelService excelService;
@MustLogin
@ApiOperation(value = "大赛报名表", notes = "")
@RequestMapping(value = "/competeJoin", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse competeJoin(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteTime> params) throws IOException {
log.info("查询各种报名人员各种信息:{}",params);
String path = excelService.competeJoin(params);
return JsonResponse.newInstance().ok(path);
}
}

41
mt/src/main/java/com/ccsens/mt/bean/vo/TableVo.java

@ -0,0 +1,41 @@
package com.ccsens.mt.bean.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author li
*/
@Data
public class TableVo {
@Data
@ApiModel("XXXX大赛报名表")
public static class CompeteJoin{
@ApiModelProperty("参赛项目")
private String competeProject;
@ApiModelProperty("组别")
private String competeGroup;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("性别")
private int gender;
@ApiModelProperty("年龄")
private int age;
@ApiModelProperty("身份证号")
private String idCard;
@ApiModelProperty("身份证明")
private String idCardPromise;
@ApiModelProperty("一寸证件照")
private String picture;
@ApiModelProperty("学籍证明/俱乐部证明")
private String StudentPromise;
@ApiModelProperty("体检证明")
private String bodyTest;
@ApiModelProperty("人身意外伤害保险证明")
private String bodyProtect;
@ApiModelProperty("参赛队伍")
private String joinTeam;
}
}

8
mt/src/main/java/com/ccsens/mt/persist/dao/CompeteEnrollDao.java

@ -1,5 +1,6 @@
package com.ccsens.mt.persist.dao;
import com.ccsens.mt.bean.po.CompeteProjectPlayer;
import com.ccsens.mt.bean.vo.CompeteVo;
import com.ccsens.mt.persist.mapper.CompetePlayerMapper;
import org.apache.ibatis.annotations.Param;
@ -108,4 +109,11 @@ public interface CompeteEnrollDao extends CompetePlayerMapper {
*/
List<CompeteVo.Count> getGroupIdNameFromGroup(@Param("type")long type);
/**
* 查询项目信息
* @param projectId 团队id
* @return 单人项目选手信息
*/
CompeteProjectPlayer getPlayerInfoSingle(@Param("project_id")long projectId);
}

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

@ -13,6 +13,7 @@ import com.ccsens.mt.bean.dto.CompeteDto;
import com.ccsens.mt.bean.dto.LevelDto;
import com.ccsens.mt.bean.po.*;
import com.ccsens.mt.bean.vo.CompeteVo;
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;
@ -79,6 +80,8 @@ public class CompeteService implements ICompeteService {
private CompeteEnrollDao competeEnrollDao;
@Resource
private TallFeignClient tallFeignClient;
@Resource
private CommonFileMapper commonFileMapper;
/**
* 查看第几届
@ -892,6 +895,7 @@ public class CompeteService implements ICompeteService {
return failPlayerInfoList;
}
/**
* 验证数据的正确性存入数据库
*/
@ -1002,4 +1006,10 @@ public class CompeteService implements ICompeteService {
}
return true;
}
}

257
mt/src/main/java/com/ccsens/mt/service/ExcelService.java

@ -0,0 +1,257 @@
package com.ccsens.mt.service;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdcardUtil;
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.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.mapper.*;
import com.ccsens.util.PoiUtil;
import com.ccsens.util.PropUtil;
import com.ccsens.util.RedisUtil;
import com.ccsens.util.bean.dto.QueryDto;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import javax.annotation.Resource;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
public class ExcelService implements IExcelService {
@Resource
private CompeteTimeDao competeTimeDao;
@Resource
private RedisUtil redisUtil;
@Resource
private CompeteCompanyMapper competeCompanyMapper;
@Resource
private Snowflake snowflake;
@Resource
private CompeteTeamDao competeTeamDao;
@Resource
private CompetePlayerDao competePlayerDao;
@Resource
private CompeteTeamMemberMapper competeTeamMemberMapper;
@Resource
private CompeteProjectMapper competeProjectMapper;
@Resource
private CompeteProjectPlayerMapper competeProjectPlayerMapper;
@Resource
private CompeteGroupMapper competeGroupMapper;
@Resource
private ILevelUpService levelUpService;
@Resource
private CompetePlayerFamilyMapper competePlayerFamilyMapper;
@Resource
private CompeteProjectGroupMapper competeProjectGroupMapper;
@Resource
private CompeteEnrollDao competeEnrollDao;
@Resource
private TallFeignClient tallFeignClient;
@Resource
private CommonFileMapper commonFileMapper;
@Override
public String competeJoin(QueryDto<CompeteDto.CompeteTime> params) throws IOException {
CompeteDto.CompeteTime competeTime =params.getParam();
List<TableVo.CompeteJoin> competeJoinList = getCompeteJoin(competeTime);
String path = getExcelFilePathForCompeteJoin(competeJoinList);
return null;
}
private List<TableVo.CompeteJoin> getCompeteJoin(CompeteDto.CompeteTime params){
List<TableVo.CompeteJoin> competeJoinList = new ArrayList<>();
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<CompeteProject> competeProjectList = competeProjectMapper.selectByExample(competeProjectExample);
for (CompeteProject competeProject : competeProjectList){
String projectName = competeProject.getName();
if (competeProject.getTeam() == 0){
//如果不是团队项目,查询该项目下报名人数集合
CompeteProjectPlayerExample competeProjectPlayerExample = new CompeteProjectPlayerExample();
competeProjectPlayerExample.createCriteria().andProjectIdEqualTo(competeProject.getId());
List<CompeteProjectPlayer> competeProjectPlayerList = competeProjectPlayerMapper.selectByExample(competeProjectPlayerExample);
for (CompeteProjectPlayer competeProjectPlayer : competeProjectPlayerList){
//查询每个报名人的详细信息下
CompetePlayer competePlayer = competePlayerDao.selectByPrimaryKey(competeProjectPlayer.getPlayerId());
TableVo.CompeteJoin competeJoin = new TableVo.CompeteJoin();
//姓名
competeJoin.setName(competePlayer.getName());
//身份证号
competeJoin.setIdCard(competePlayer.getIdCard());
//根据身份证获取选手年龄并赋值
String idCard = competeJoin.getIdCard();
int ageByIdCard = IdcardUtil.getAgeByIdCard(idCard);
competeJoin.setAge(ageByIdCard);
//性别
competeJoin.setGender(competePlayer.getGender());
//查询单位,并赋值
CompeteCompany competeCompany = competeCompanyMapper.selectByPrimaryKey(competePlayer.getCompanyId());
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());
//参赛项目名赋值
competeJoin.setCompeteProject(projectName);
competeJoinList.add(competeJoin);
}
}else { //团队项目
//获取参赛队伍集合
CompeteTeamExample competeTeamExample = new CompeteTeamExample();
competeTeamExample.createCriteria().andProjectIdEqualTo(competeProject.getId());
List<CompeteTeam> competeTeamList = competeTeamDao.selectByExample(competeTeamExample);
for (CompeteTeam competeTeam : competeTeamList){
//获取队伍下的成员集合
CompeteTeamMemberExample competeTeamMemberExample = new CompeteTeamMemberExample();
competeTeamMemberExample.createCriteria().andCompeteTeamIdEqualTo(competeTeam.getId());
List<CompeteTeamMember> competeTeamMemberList = competeTeamMemberMapper.selectByExample(competeTeamMemberExample);
for (CompeteTeamMember competeTeamMember : competeTeamMemberList){
//查询成员详细信息
CompetePlayer competePlayer = competePlayerDao.selectByPrimaryKey(competeTeamMember.getPlayerId());
TableVo.CompeteJoin competeJoin = new TableVo.CompeteJoin();
//姓名
competeJoin.setName(competePlayer.getName());
//身份证号
competeJoin.setIdCard(competePlayer.getIdCard());
//根据身份证获取选手年龄并赋值
String idCard = competeJoin.getIdCard();
int ageByIdCard = IdcardUtil.getAgeByIdCard(idCard);
competeJoin.setAge(ageByIdCard);
//性别
competeJoin.setGender(competePlayer.getGender());
//查询单位,并赋值
CompeteCompany competeCompany = competeCompanyMapper.selectByPrimaryKey(competePlayer.getCompanyId());
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());
//参赛项目名赋值
competeJoin.setCompeteProject(projectName);
competeJoinList.add(competeJoin);
}
}
}
}
return competeJoinList;
}
private String getExcelFilePathForCompeteJoin(List<TableVo.CompeteJoin> arrayList) throws IOException {
//创建excle表格对象
List<List<PoiUtil.PoiUtilCell>> list = new ArrayList<>();
//创建行对象
List<PoiUtil.PoiUtilCell> 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("年龄"));
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.CompeteJoin competeJoin : arrayList) {
//行对象
List<PoiUtil.PoiUtilCell> cells = new ArrayList<>();
cells.add(new PoiUtil.PoiUtilCell(i + "", 1, 1, 300, 18));
//单元格对象
PoiUtil.PoiUtilCell poiUtilCel = new PoiUtil.PoiUtilCell(competeJoin.getCompeteProject());
cells.add(poiUtilCel);
PoiUtil.PoiUtilCell poiUtilCell = new PoiUtil.PoiUtilCell(competeJoin.getCompeteGroup());
cells.add(poiUtilCell);
PoiUtil.PoiUtilCell poiUtilCel2 = new PoiUtil.PoiUtilCell(competeJoin.getJoinTeam());
cells.add(poiUtilCel2);
PoiUtil.PoiUtilCell poiUtilCel3 = new PoiUtil.PoiUtilCell(competeJoin.getName());
cells.add(poiUtilCel3);
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);
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);
list.add(cells);
i++;
}
//生成excel表格对象,并将数据放入
Workbook wbs = PoiUtil.exportWB("报名表", list, workbook);
//8:关联金山在线文档
String name = "XXXX大赛报名表" + ".xlsx";
String filepath = "mt/" + DateUtil.today() + "/" + System.currentTimeMillis() + ".xlsx";
String path = PropUtil.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;
}
}

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

@ -147,6 +147,8 @@ public interface ICompeteService {
* @return 返回失败的信息
*/
List<CompeteVo.FailPlayerInfo> signupImport(String path) throws FileNotFoundException, Exception;
}

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

@ -0,0 +1,15 @@
package com.ccsens.mt.service;
import com.ccsens.mt.bean.dto.CompeteDto;
import com.ccsens.util.bean.dto.QueryDto;
import java.io.IOException;
public interface IExcelService {
/**
* XXXX大赛报名表
* @param params 大赛id
* @return 返回失败的信息
*/
String competeJoin(QueryDto<CompeteDto.CompeteTime> params) throws IOException;
}

5
mt/src/main/java/com/ccsens/mt/service/ProvinceService.java

@ -419,6 +419,10 @@ public class ProvinceService implements IProvinceService {
CompeteCoachExample competeCoachExample = new CompeteCoachExample();
competeCoachExample.createCriteria().andIdEqualTo(id);
competeCoachMapper.updateByExample(competeCoach,competeCoachExample);
}else {
throw new BaseException(CodeEnum.PARAM_ERROR);
}
// else {
// throw new BaseException(CodeEnum.PARAM_ERROR);
@ -634,6 +638,7 @@ public class ProvinceService implements IProvinceService {
teamMember.setCompeteTeamId(competeTeam.getId());
teamMember.setPlayerId(player.getId());
teamMemberMapper.insertSelective(teamMember);
}
}

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

@ -1,4 +1,4 @@
spring:
profiles:
active: prod
include: common, util-prod
active: dev
include: common, util-dev

7
mt/src/main/resources/mapper_dao/CompeteEnrollDao.xml

@ -170,4 +170,11 @@
WHERE type = #{type}
ORDER BY id
</select>
<select id="getPlayerInfoSingle" parameterType="java.util.Map" resultType="com.ccsens.mt.bean.po.CompeteProjectPlayer">
SELECT
*
FROM
t_compete_project_player
WHERE project_id = #{projectId}
</select>
</mapper>

Loading…
Cancel
Save