Browse Source

10-15

tiaosheng
Lihong@123456 5 years ago
parent
commit
bde1627959
  1. 10
      mt/src/main/java/com/ccsens/mt/api/CompeteController.java
  2. 28
      mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java
  3. 55
      mt/src/main/java/com/ccsens/mt/persist/dao/CompeteEnrollDao.java
  4. 87
      mt/src/main/java/com/ccsens/mt/service/CompeteService.java
  5. 10
      mt/src/main/java/com/ccsens/mt/service/ICompeteService.java
  6. 4
      mt/src/main/resources/application.yml
  7. 69
      mt/src/main/resources/mapper_dao/CompeteEnrollDao.xml
  8. BIN
      mt/src/main/resources/template/competeCount.xlsx
  9. 4
      tall/src/main/resources/application.yml
  10. 5
      util/src/main/java/com/ccsens/util/PoiUtil.java

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

@ -162,7 +162,7 @@ public class CompeteController {
@MustLogin
@ApiOperation(value = "报名表", notes = "")
@ApiOperation(value = "报名表详情表", notes = "")
@RequestMapping(value = "/enroll", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse enrollPlayInfo(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteType> params) throws IOException {
log.info("查询各个项目报名人员信息:{}",params);
@ -170,7 +170,13 @@ public class CompeteController {
return JsonResponse.newInstance().ok(enrollPlayInfoList);
}
@ApiOperation(value = "报名表人数表下载", notes = "")
@RequestMapping(value = "/enrollCount", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public JsonResponse enrollPlayCount(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteType> params) throws IOException {
log.info("查询各个项目报名人员信息:{}",params);
String path = competeService.enrollPlayCount(params);
return JsonResponse.newInstance().ok(path);
}
// @MustLogin

28
mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java

@ -397,4 +397,32 @@ public class CompeteVo {
@ApiModelProperty("团队下的参与者id")
private long player_id;
}
@Data
@ApiModel("参赛各组别数信息")
public static class Count{
@ApiModelProperty("组别名")
private String group_name;
@ApiModelProperty("某组别人数")
private int count;
@ApiModelProperty("组别id")
private Long compete_group_id;
@ApiModelProperty("团队id")
private long team_id;
}
@Data
@ApiModel("参赛项目中组别人数信息")
public static class GroupNum{
@ApiModelProperty("项目名")
private String name;
@ApiModelProperty("参赛各组别数信息")
private List<CompeteVo.Count> countList;
}
@Data
@ApiModel("group中的组别id")
public static class GroupIdAndName{
@ApiModelProperty("项目id")
private int id;
@ApiModelProperty("组别名")
private String group_name;
}
}

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

@ -52,5 +52,60 @@ public interface CompeteEnrollDao extends CompetePlayerMapper {
*/
List<CompeteVo.Team> getTeamPlayerId(@Param("teamId")long teamId);
/**
* 查询个人项目的每个组别id和组别名
* @param projectId 项目id
* @return 组别id
*/
List<CompeteVo.Count> getGroupCount(@Param("projectId")long projectId);
/**
* 查询个人项目的每个组别人数
* @param competeGroupId 组别id
* @return 团队成员id
*/
int getGroupPlayCount(@Param("competeGroupId")long competeGroupId);
/**
* 查询个人项目的每个组别id和组别名
* @param projectId xiangmu id
* @return 团队成员id
*/
List<CompeteVo.Count> getGroupIdFroPlayer(@Param("projectId")long projectId);
/**
* 查询团队项目的每个组别id和组别名
* @param projectId xiangmu id
* @return 团队成员id
*/
List<CompeteVo.Count> getGroupIdFroTeam(@Param("projectId")long projectId);
/**
* 查询团队项目的每个组别id和组别名
* @param competeGroupId 组别id
* @return 团队id
*/
List<CompeteVo.Count> getTeamIdByCompeteGroupId(@Param("competeGroupId")long competeGroupId);
/**
* 查询团队项目组别下的人数
* @param teamId 组别id
* @return renshu
*/
int getCountByTeamId(@Param("teamId")long teamId);
/**
* 查询团队项目的每个组别参赛队伍数
* @param competeGroupId 组别id
* @return 团队成员id
*/
int getTeamCount(@Param("competeGroupId")long competeGroupId);
/**
* 查询团队项目的每个组别参赛队伍数
* @param type 组别id
* @return 团队成员id
*/
List<CompeteVo.Count> getGroupIdNameFromGroup(@Param("type")long type);
}

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

@ -24,6 +24,8 @@ import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@ -613,6 +615,7 @@ public class CompeteService implements ICompeteService{
//查询报名信息
int typeId = competeType.getType();
ArrayList<CompeteVo.EnrollPlayInfo> arrayList = new ArrayList();
List<String> string = null;
//1:查询该类型下所有项目的id,name,team信息,排除level为1的
List<CompeteVo.ProjectInfo> projectInfoList = competeEnrollDao.getProject(typeId);
//2:根据team字段判断是否为团队项目
@ -681,7 +684,6 @@ public class CompeteService implements ICompeteService{
//8:关联金山在线文档
String name = "跳绳比赛报名表" + ".xlsx";
String filepath = "mt/" + DateUtil.today() + "/" + System.currentTimeMillis() + ".xlsx";
String path = PropUtil.path + filepath;
File tmpFile = new File(path);
if (!tmpFile.getParentFile().exists()) {
@ -715,7 +717,88 @@ public class CompeteService implements ICompeteService{
e.printStackTrace();
}
return filePath.get(0);
}
}
@Override
public String enrollPlayCount(QueryDto<CompeteDto.CompeteType> params) throws IOException {
//查询该类型下所有项目的id,name,team信息,排除level为1的的集合
int typeId = 2;
//放总数据集合
List<CompeteVo.GroupNum> list1 = new ArrayList<>();
//根据type 查项目
List<CompeteVo.ProjectInfo> projectInfoList = competeEnrollDao.getProject(typeId);
//根据type 查组别id,组别名
List<CompeteVo.Count> groupIdAndNameList = competeEnrollDao.getGroupIdNameFromGroup(typeId);
for (CompeteVo.ProjectInfo projectInfo : projectInfoList) {
CompeteVo.GroupNum groupNum = new CompeteVo.GroupNum();
groupNum.setName(projectInfo.getName());
//查询所有组别
List<CompeteVo.Count> countList = new ArrayList<>();
if (CollectionUtil.isNotEmpty(groupIdAndNameList)) {
for (CompeteVo.Count groupIdAndName : groupIdAndNameList) {
CompeteVo.Count count1 = new CompeteVo.Count();
count1.setGroup_name(groupIdAndName.getGroup_name());
// groupIdAndNameList.forEach(groupIdAndName -> {
if (projectInfo.getTeam() == 0) {
CompeteProjectPlayerExample projectPlayerExample = new CompeteProjectPlayerExample();
projectPlayerExample.createCriteria().andProjectIdEqualTo(projectInfo.getId()).andCompeteGroupIdEqualTo(groupIdAndName.getCompete_group_id());
long count = competeProjectPlayerMapper.countByExample(projectPlayerExample);
count1.setCount((int) count);
} else {
CompeteTeamExample teamExample = new CompeteTeamExample();
teamExample.createCriteria().andProjectIdEqualTo(projectInfo.getId()).andCompeteGroupIdEqualTo(groupIdAndName.getCompete_group_id());
long count = competeTeamDao.countByExample(teamExample);
count1.setCount((int) count);
}
// });
countList.add(count1);
}
}
groupNum.setCountList(countList);
list1.add(groupNum);
}
//7:将数据放入excel表格
ResourceLoader resourceLoader = new DefaultResourceLoader();
InputStream is = resourceLoader.getResource("classpath:template/competeCount.xlsx").getInputStream();
Workbook workbook = new XSSFWorkbook(is);
//生成excel表格对象,并将数据放入
//生成表对象
List<List<PoiUtil.PoiUtilCell>> list = new ArrayList<>();
//生成行对象
List<PoiUtil.PoiUtilCell> poiUtilCellList1 = new ArrayList<>();
List<PoiUtil.PoiUtilCell> poiUtilCellList2 = new ArrayList<>();
List<PoiUtil.PoiUtilCell> poiUtilCellList3 = new ArrayList<>();
list.add(poiUtilCellList1);
list.add(poiUtilCellList2);
list.add(poiUtilCellList3);
list1.forEach(excelist ->{
List<PoiUtil.PoiUtilCell> title = new ArrayList<>();
title.add(new PoiUtil.PoiUtilCell());
title.add(new PoiUtil.PoiUtilCell());
title.add(new PoiUtil.PoiUtilCell());
excelist.getCountList().forEach(count -> {
title.add(new PoiUtil.PoiUtilCell(String.valueOf(count.getCount())));
});
list.add(title);
});
Workbook wbs = PoiUtil.exportWB("统计表", list, workbook);
String name = "跳绳比赛报名人数统计表" + ".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();
}
File file = new File(path);
try {
OutputStream outputStream = new FileOutputStream(file);
wbs.write(outputStream);
outputStream.close();
}catch (IOException e) {
e.printStackTrace();
}
return PropUtil.imgDomain + filepath;
}
}

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

@ -121,4 +121,14 @@ public interface ICompeteService {
* @return 返回参赛者的详细信息
*/
String enrollPlayInfo(QueryDto<CompeteDto.CompeteType> params) throws IOException;
/**
* 根据项目类型查询参赛者信息
* @param params
* @return 返回参赛者数量
*/
String enrollPlayCount(QueryDto<CompeteDto.CompeteType> params) throws IOException;
}

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

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

@ -20,6 +20,13 @@
<result column="id" property="id"/>
<result column="player_id" property="player_id"/>
</resultMap>
<resultMap id="getGroupCount" type="com.ccsens.mt.bean.vo.CompeteVo$Count">
<result column="group_name" property="group_name"/>
<result column="compete_group_id" property="compete_group_id"/>
<result column="team_id" property="team_id"/>
</resultMap>
<resultMap id="getGroupIdFromGroup" type="com.ccsens.mt.bean.vo.CompeteVo$Count">
</resultMap>
<select id="getProject" parameterType="java.util.Map" resultMap="getProject">
SELECT
a.id,
@ -31,6 +38,7 @@
a.type = #{type}
AND level != 1
AND rec_status = 0
ORDER BY id
</select>
<select id="getProjectPlayer" parameterType="java.util.Map" resultMap="getProjectPlayer">
SELECT
@ -102,4 +110,63 @@
a.compete_team_id = #{teamId}
AND rec_status = 0
</select>
</mapper>
<select id="getGroupPlayCount" parameterType="java.util.Map" resultType="int">
SELECT COUNT(player_id) as count,
b.group_name
FROM
t_compete_project_player a LEFT JOIN t_compete_group b ON a.compete_group_id = b.id
WHERE a.compete_group_id = #{competeGroupId}
</select>
<select id="getGroupCount" parameterType="java.util.Map" resultMap="getGroupCount">
SELECT compete_group_id
FROM t_compete_project_player a
WHERE a.project_id = #{projectId}
</select>
<select id="getGroupIdFroPlayer" parameterType="java.util.Map" resultMap="getGroupCount">
select
DISTINCT(a.compete_group_id),
b.group_name
from
t_compete_project_player a LEFT JOIN t_compete_group b ON a.compete_group_id = b.id
where project_id = #{projectId}
ORDER BY a.compete_group_id
</select>
<select id="getGroupIdFroTeam" parameterType="java.util.Map" resultMap="getGroupCount">
select
DISTINCT(a.compete_group_id),
b.group_name
from
t_compete_team a LEFT JOIN t_compete_group b ON a.compete_group_id = b.id
where project_id = #{projectId}
ORDER BY a.compete_group_id
</select>
<select id="getTeamIdByCompeteGroupId" parameterType="java.util.Map" resultMap="getGroupCount">
select
id as team_id
from
t_compete_team
where compete_group_id = #{competeGroupId}
</select>
<select id="getCountByTeamId" parameterType="java.util.Map" resultType="int">
select
count(player_id)
from t_compete_team_member
WHERE compete_team_id = #{teamId}
</select>
<select id="getTeamCount" parameterType="java.util.Map" resultType="int">
SELECT COUNT(creator) as count,
b.group_name
FROM
t_compete_team a LEFT JOIN t_compete_group b ON a.compete_group_id = b.id
WHERE a.compete_group_id = #{competeGroupId}
</select>
<select id="getGroupIdNameFromGroup" parameterType="java.util.Map" resultMap="getGroupCount">
SELECT
id as compete_group_id,
group_name
FROM
t_compete_group
WHERE type = #{type}
ORDER BY id
</select>
</mapper>

BIN
mt/src/main/resources/template/competeCount.xlsx

Binary file not shown.

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

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

5
util/src/main/java/com/ccsens/util/PoiUtil.java

@ -157,9 +157,12 @@ public class PoiUtil {
List<PoiUtilCell> cells = rows.get(i);
for (int j = 0; j < cells.size(); j++) {
CellStyle style = wb.createCellStyle();
//将内容按顺序赋给对应的列对象
PoiUtilCell cell = cells.get(j);
if (StrUtil.isEmpty(cell.value)){
continue;
}
Cell newCell = row.createCell(j);
//设置行高
if (ObjectUtil.isNotNull(cell.height)) {

Loading…
Cancel
Save