Browse Source

顺序表导出

tiaosheng
wang0018 5 years ago
parent
commit
db1743fdf6
  1. 42
      mt/src/main/java/com/ccsens/mt/api/ExcelController.java
  2. 10
      mt/src/main/java/com/ccsens/mt/api/ProvinceController.java
  3. 39
      mt/src/main/java/com/ccsens/mt/bean/dto/ProvinceCompeteDto.java
  4. 6
      mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java
  5. 58
      mt/src/main/java/com/ccsens/mt/bean/vo/TableVo.java
  6. 3
      mt/src/main/java/com/ccsens/mt/persist/dao/CompeteCompanyDao.java
  7. 19
      mt/src/main/java/com/ccsens/mt/persist/dao/CompeteProjectConfigDao.java
  8. 17
      mt/src/main/java/com/ccsens/mt/persist/dao/CompeteProjectDao.java
  9. 4
      mt/src/main/java/com/ccsens/mt/persist/mapper/CompeteProjectMapper.java
  10. 357
      mt/src/main/java/com/ccsens/mt/service/ExcelService.java
  11. 36
      mt/src/main/java/com/ccsens/mt/service/IExcelService.java
  12. 13
      mt/src/main/java/com/ccsens/mt/service/IProvinceService.java
  13. 46
      mt/src/main/java/com/ccsens/mt/service/ProvinceService.java
  14. 28
      mt/src/main/resources/mapper_dao/CompeteCompanyDao.xml
  15. 27
      mt/src/main/resources/mapper_dao/CompeteProjectConfigDao.xml
  16. 10
      mt/src/main/resources/mapper_dao/CompeteProjectDao.xml

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

@ -3,7 +3,8 @@ 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.bean.dto.ProvinceCompeteDto;
import com.ccsens.mt.bean.vo.TableVo;
import com.ccsens.mt.service.IExcelService;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.bean.dto.QueryDto;
@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.List;
/**
* @author li
@ -32,7 +34,7 @@ public class ExcelController {
private IExcelService excelService;
@MustLogin
@ApiOperation(value = "xxx大赛报名表", notes = "")
@ApiOperation(value = "xxx大赛报名表(导出)", 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("xxx大赛报名表:{}",params);
@ -42,7 +44,7 @@ public class ExcelController {
@MustLogin
@ApiOperation(value = "参赛人数统计表", notes = "")
@ApiOperation(value = "参赛人数统计表(导出)", notes = "")
@RequestMapping(value = "/competeJoinCount", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse competeJoinCount(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteTime> params) throws IOException {
log.info("参赛人数统计表:{}",params);
@ -52,7 +54,7 @@ public class ExcelController {
@MustLogin
@ApiOperation(value = "XXX比赛报名汇总表", notes = "")
@ApiOperation(value = "XXX比赛报名汇总表(导出)", notes = "")
@RequestMapping(value = "/competeAllCount", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse competeAllCount(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteTime> params) throws IOException {
log.info("XXX比赛报名汇总表:{}",params);
@ -86,6 +88,38 @@ public class ExcelController {
String path = excelService.iCompetitionOrderService(params);
return JsonResponse.newInstance().ok(path);
}
@ApiOperation(value = "日程安排中间表(查询)", notes = "")
@RequestMapping(value = "/dailyScheduleProcess", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<TableVo.DailyScheduleProcess> dailyScheduleProcess(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteTime> params) {
log.info("日程安排中间表:{}",params);
List<TableVo.DailyScheduleProcess> dailyScheduleProcessList = excelService.dailyScheduleProcess(params.getParam());
return JsonResponse.newInstance().ok(dailyScheduleProcessList);
}
@MustLogin
@ApiOperation(value = "日程安排更新(查询)", notes = "")
@RequestMapping(value = "/updateAndSearchSchedule", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<TableVo.DailyScheduleProcess> updateAndSearch(@ApiParam @Validated @RequestBody QueryDto<ProvinceCompeteDto.UpdateAndSearchList> params) {
log.info("日程安排更新:{}",params);
List<TableVo.DailyScheduleProcess> dailyScheduleProcessList = excelService.updateAndSearch(params.getParam());
return JsonResponse.newInstance().ok(dailyScheduleProcessList);
}
@MustLogin
@ApiOperation(value = "xxx大赛报名表(查询)", notes = "")
@RequestMapping(value = "/enterInfo", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<TableVo.CompeteJoin> getEnterInfo(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteTime> params) {
log.info("日程安排更新:{}",params);
List<TableVo.CompeteJoin> competeJoinList = excelService.getCompeteJoinDetail(params.getParam());
return JsonResponse.newInstance().ok(competeJoinList);
}
@MustLogin
@ApiOperation(value = "日程安排(导出)", notes = "")
@RequestMapping(value = "/schedulePlanning", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<TableVo.SchedulePlanDetailAllIn> schedulePlanning(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteTime> params) {
log.info("日程安排更新:{}",params);
TableVo.SchedulePlan schedulePlanDetailAllInList = excelService.schedulePlanning(params.getParam());
return JsonResponse.newInstance().ok(schedulePlanDetailAllInList);
}
}

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

@ -201,4 +201,14 @@ public class ProvinceController {
log.info("团体报名查询可以参加和已经参加的选手:{}",groupAndPlayer);
return JsonResponse.newInstance().ok(groupAndPlayer);
}
@MustLogin
@ApiOperation(value = "删除报名的队伍", notes = "")
@RequestMapping(value = "/del/team", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse delJoinTeam(@ApiParam @Validated @RequestBody QueryDto<ProvinceCompeteDto.DelTeam> params) {
log.info("删除报名的队伍:{}",params);
provinceService.delJoinTeam(params.getParam());
log.info("删除报名的队伍");
return JsonResponse.newInstance().ok();
}
}

39
mt/src/main/java/com/ccsens/mt/bean/dto/ProvinceCompeteDto.java

@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
/**
@ -134,6 +135,35 @@ public class ProvinceCompeteDto {
private Long coachCertificate; //教练证(只有教练需要,文件类型)
}
@Data
@ApiModel("修改日程安排")
public static class UpdateAndSearch{
@ApiModelProperty("项目id")
private Long projectId;
@ApiModelProperty("参赛项目")
private String projectName;
@ApiModelProperty("参赛人/队伍")
private int joinNum;
@ApiModelProperty("单项时间")
private Long singleTime;
@ApiModelProperty("场地")
private int siteNum;
@ApiModelProperty("场次")
private Long games;
@ApiModelProperty("总时间")
private Long timeSum;
@ApiModelProperty("项目开始时间")
private Long startTime;
@ApiModelProperty("项目结束时间")
private Long endTime;
}
@Data
@ApiModel("修改日程安排集合")
public static class UpdateAndSearchList {
private List<UpdateAndSearch> updateAndSearchList;
}
@Data
@ApiModel("查找团队项目下已参加的选手信息")
public static class GetPlayerByTeamProject{
@ -143,6 +173,7 @@ public class ProvinceCompeteDto {
@NotNull(message = "请选择项目")
@ApiModelProperty("项目id")
private Long projectId;
}
@Data
@ -159,4 +190,12 @@ public class ProvinceCompeteDto {
@ApiModelProperty("组别信息")
private int groupRemark;
}
@Data
@ApiModel("删除参赛队伍")
public static class DelTeam{
@NotNull(message = "队伍id")
@ApiModelProperty("队伍id")
private Long teamId;
}
}

6
mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java

@ -48,6 +48,12 @@ public class ProvinceCompeteVo {
private Long groupId;
@ApiModelProperty("组别名字")
private String groupName;
@ApiModelProperty("性别组")
private int gender;
@ApiModelProperty("组别信息")
private int groupRemark;
@ApiModelProperty("团队id")
private Long teamId;
@ApiModelProperty("选手信息")
private List<PlayerInfoByGroup> playerList;
}

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

@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -17,6 +18,8 @@ public class TableVo {
@Data
@ApiModel("XXXX大赛报名表")
public static class CompeteJoin{
@ApiModelProperty("参赛id")
private Long projectId;
@ApiModelProperty("参赛项目")
private String competeProject;
@ApiModelProperty("组别")
@ -110,4 +113,59 @@ public class TableVo {
private List<Integer> nums = new ArrayList<>();
}
@Data
@ApiModel("日程安排")
public static class DailyScheduleProcess{
@ApiModelProperty("参赛id")
private Long projectId;
@ApiModelProperty("参赛项目")
private String projectName;
@ApiModelProperty("参赛人/队伍")
private int joinNum;
@ApiModelProperty("单项时间")
private long singleTime;
@ApiModelProperty("场地")
private int siteNum;
@ApiModelProperty("场次")
private double games;
@ApiModelProperty("总时间")
private double timeSum;
@ApiModelProperty("项目开始时间")
private Long startTime;
@ApiModelProperty("项目结束时间")
private Long endTime;
}
@Data
@ApiModel("日程安排上下午")
public static class SchedulePlan{
@ApiModelProperty("安排详情上午")
private List<SchedulePlanDetailAllIn> schedulePlanDetailListUp;
@ApiModelProperty("安排详情下午")
private List<SchedulePlanDetailAllIn> schedulePlanDetailListDown;
}
@Data
@ApiModel("日程安排")
public static class SchedulePlanDetail{
@ApiModelProperty("参赛项目")
private String projectName;
@ApiModelProperty("项目开始时间")
private Long startTime;
@ApiModelProperty("项目结束时间")
private Long endTime;
@ApiModelProperty("项目所属日期")
private Long data;
}
@Data
@ApiModel("日程安排组合")
public static class SchedulePlanDetailAllIn{
@ApiModelProperty("字符拼接")
private String string;
@ApiModelProperty("项目所属日期")
private String data;
}
}

3
mt/src/main/java/com/ccsens/mt/persist/dao/CompeteCompanyDao.java

@ -103,7 +103,7 @@ public interface CompeteCompanyDao extends CompeteCompanyMapper {
* @param type
* @return
*/
List<ProvinceCompeteVo.GroupAndPlayer> getPlayerByTeamProject(@Param("projectId")Long projectId, @Param("type")Byte type);
List<ProvinceCompeteVo.GroupAndPlayer> getPlayerByTeamProject(@Param("companyId")Long companyId, @Param("projectId")Long projectId, @Param("type")Byte type);
/**
* 根据大赛id查看当前大赛所有队伍信息,以及联系人的信息
* @param CompeteTimeId 大赛CompeteTimeId
@ -143,4 +143,5 @@ public interface CompeteCompanyDao extends CompeteCompanyMapper {
@Param("companyId")Long companyId, @Param("gender")int gender, @Param("groupRemark")int groupRemark);
List<CompeteExcelVo.AllProject> selectProjectByType(Long id);
List<ProvinceCompeteVo.PlayerInfoByGroup> queryPlayersByTeamProject(@Param("companyId")Long companyId, @Param("projectId")Long projectId);
}

19
mt/src/main/java/com/ccsens/mt/persist/dao/CompeteProjectConfigDao.java

@ -0,0 +1,19 @@
package com.ccsens.mt.persist.dao;
import com.ccsens.mt.bean.po.CompeteProjectConfig;
import com.ccsens.mt.bean.po.CompeteProjectConfigExample;
import com.ccsens.mt.bean.vo.TableVo;
import com.ccsens.mt.persist.mapper.CompeteProjectConfigMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
*
* @author: li
*
*/
public interface CompeteProjectConfigDao extends CompeteProjectConfigMapper {
CompeteProjectConfig selectByProjectId(@Param("projectId") Long projectId);
List<TableVo.SchedulePlanDetail> selectDetail ();
}

17
mt/src/main/java/com/ccsens/mt/persist/dao/CompeteProjectDao.java

@ -0,0 +1,17 @@
package com.ccsens.mt.persist.dao;
import com.ccsens.mt.bean.po.CompeteProject;
import com.ccsens.mt.bean.po.CompeteProjectConfig;
import com.ccsens.mt.persist.mapper.CompeteProjectConfigMapper;
import com.ccsens.mt.persist.mapper.CompeteProjectMapper;
import org.apache.ibatis.annotations.Param;
/**
*
* @author: li
*
*/
public interface CompeteProjectDao extends CompeteProjectMapper {
CompeteProject getProjectByProjectName(@Param("projectName") String projectId);
}

4
mt/src/main/java/com/ccsens/mt/persist/mapper/CompeteProjectMapper.java

@ -3,6 +3,8 @@ package com.ccsens.mt.persist.mapper;
import com.ccsens.mt.bean.po.CompeteProject;
import com.ccsens.mt.bean.po.CompeteProjectExample;
import java.util.List;
import com.ccsens.mt.bean.vo.TableVo;
import org.apache.ibatis.annotations.Param;
public interface CompeteProjectMapper {
@ -27,4 +29,6 @@ public interface CompeteProjectMapper {
int updateByPrimaryKeySelective(CompeteProject record);
int updateByPrimaryKey(CompeteProject record);
}

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

@ -3,6 +3,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdcardUtil;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.mt.bean.dto.CompeteDto;
import com.ccsens.mt.bean.dto.ProvinceCompeteDto;
import com.ccsens.mt.bean.po.*;
import com.ccsens.mt.bean.vo.CompeteExcelVo;
import com.ccsens.mt.bean.vo.TableVo;
@ -16,8 +17,11 @@ import com.ccsens.util.WebConstant;
import com.ccsens.util.bean.dto.QueryDto;
import com.ccsens.util.exception.BaseException;
import com.ctc.wstx.util.DataUtil;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang.time.DateUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.stereotype.Service;
@ -33,6 +37,11 @@ import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@ -66,6 +75,10 @@ public class ExcelService implements IExcelService {
@Resource
private CompetePlayerMapper competePlayerMapper;
@Resource
private CompeteProjectConfigDao competeProjectConfigDao;
@Resource
private CompeteProjectDao competeProjectDao;
@Override
public String dasaiduiwuxinxiWPS(QueryDto<CompeteDto.CompeteTime> params) {
@ -309,6 +322,9 @@ public class ExcelService implements IExcelService {
return path;
}
private List<TableVo.CompeteJoin> getCompeteJoin(CompeteDto.CompeteTime params) {
List<TableVo.CompeteJoin> competeJoinList = new ArrayList<>();
Long competeTimeId = params.getCompeteTimeId();
@ -381,6 +397,8 @@ public class ExcelService implements IExcelService {
// }
//参赛项目名赋值
competeJoin.setCompeteProject(projectName);
//项目id
competeJoin.setProjectId(competeProject.getId());
competeJoinList.add(competeJoin);
}
@ -451,6 +469,8 @@ public class ExcelService implements IExcelService {
// }
//参赛项目名赋值
competeJoin.setCompeteProject(projectName);
//项目id
competeJoin.setProjectId(competeProject.getId());
competeJoinList.add(competeJoin);
}
}
@ -536,7 +556,8 @@ public class ExcelService implements IExcelService {
@Override
public String competeJoinCount(CompeteDto.CompeteTime params) throws IOException {
public String
competeJoinCount(CompeteDto.CompeteTime params) throws IOException {
List<TableVo.CompeteOverview> competeOverviewList = competeJoinCountList(params);
String path = getExcelFilePathForCompeteJoinCount(competeOverviewList);
return path;
@ -816,6 +837,7 @@ public class ExcelService implements IExcelService {
}
// private List<TableVo.CompeteAllCount> competeAllCountList(CompeteDto.CompeteTime params){
// //根据大赛查类型
// Long competeTimeId = params.getCompeteTimeId();
@ -943,5 +965,338 @@ public class ExcelService implements IExcelService {
return path;
}
@Override
public List<TableVo.DailyScheduleProcess> dailyScheduleProcess(CompeteDto.CompeteTime params) {
List<TableVo.DailyScheduleProcess> dailyScheduleProcessList = new ArrayList<>();
//查询项目
CompeteTime competeTime = competeTimeDao.selectByPrimaryKey(params.getCompeteTimeId());
CompeteProjectExample competeProjectExample = new CompeteProjectExample();
int level = 2;
competeProjectExample.createCriteria().andTypeEqualTo(competeTime.getType()).andLevelEqualTo((byte) level);
//项目集合
List<CompeteProject> competeProjectList = competeProjectMapper.selectByExample(competeProjectExample);
for (CompeteProject competeProject : competeProjectList) {
//判断是否团队
if (competeProject.getTeam() == 0) {
//不是团队
CompeteProjectPlayerExample competeProjectPlayerExample = new CompeteProjectPlayerExample();
competeProjectPlayerExample.createCriteria().andProjectIdEqualTo(competeProject.getId());
long count = competeProjectPlayerMapper.countByExample(competeProjectPlayerExample);
TableVo.DailyScheduleProcess dailyScheduleProcess = new TableVo.DailyScheduleProcess();
//队伍/人数
dailyScheduleProcess.setJoinNum((int) count);
//项目名
dailyScheduleProcess.setProjectName(competeProject.getName());
//项目id
dailyScheduleProcess.setProjectId(competeProject.getId());
CompeteProjectConfig competeProjectConfig = competeProjectConfigDao.selectByProjectId(competeProject.getId());
if (ObjectUtil.isNotNull(competeProjectConfig)) {
//单项时间
dailyScheduleProcess.setSingleTime(competeProjectConfig.getProjectDuration());
//场地
dailyScheduleProcess.setSiteNum(competeProjectConfig.getSiteNum());
//场次
double a = (double)count / (double)competeProjectConfig.getSiteNum();
double times = Math.ceil(a);
dailyScheduleProcess.setGames(times);
//总时间
double second = competeProjectConfig.getProjectDuration() * times;
dailyScheduleProcess.setTimeSum(second);
//项目开始时间
dailyScheduleProcess.setStartTime(competeProjectConfig.getStartTime());
//项目结束时间
dailyScheduleProcess.setEndTime(competeProjectConfig.getEndTime());
}
dailyScheduleProcessList.add(dailyScheduleProcess);
} else {
//是团队
CompeteTeamExample competeTeamExample = new CompeteTeamExample();
competeTeamExample.createCriteria().andProjectIdEqualTo(competeProject.getId());
int count = (int) competeTeamDao.countByExample(competeTeamExample);
TableVo.DailyScheduleProcess dailyScheduleProcess = new TableVo.DailyScheduleProcess();
//队伍/人数
dailyScheduleProcess.setJoinNum((int) count);
//项目名
dailyScheduleProcess.setProjectName(competeProject.getName());
//项目id
dailyScheduleProcess.setProjectId(competeProject.getId());
CompeteProjectConfig competeProjectConfig = competeProjectConfigDao.selectByProjectId(competeProject.getId());
if (ObjectUtil.isNotNull(competeProjectConfig)) {
//单项时间
dailyScheduleProcess.setSingleTime(competeProjectConfig.getProjectDuration());
//场地
dailyScheduleProcess.setSiteNum(competeProjectConfig.getSiteNum());
//场次
double a = (double)count / (double)competeProjectConfig.getSiteNum();
double times = Math.ceil(a);
dailyScheduleProcess.setGames(times);
//总时间
double second = competeProjectConfig.getProjectDuration() * times;
dailyScheduleProcess.setTimeSum(second);
dailyScheduleProcess.setTimeSum(second);
//项目开始时间
dailyScheduleProcess.setStartTime(competeProjectConfig.getStartTime());
//项目结束时间
dailyScheduleProcess.setEndTime(competeProjectConfig.getEndTime());
}
dailyScheduleProcessList.add(dailyScheduleProcess);
}
}
return dailyScheduleProcessList;
}
@Override
public List<TableVo.DailyScheduleProcess> updateAndSearch(ProvinceCompeteDto.UpdateAndSearchList params) {
List<TableVo.DailyScheduleProcess> dailyScheduleProcessList = new ArrayList<>();
List<ProvinceCompeteDto.UpdateAndSearch> updateAndSearchList = params.getUpdateAndSearchList();
for (ProvinceCompeteDto.UpdateAndSearch updateAndSearch : updateAndSearchList){
//查询数据库中现有数据对象
CompeteProjectConfig competeProjectConfig = competeProjectConfigDao.selectByProjectId(updateAndSearch.getProjectId());
//修改单项时间,场地和开始结束时间
if (ObjectUtil.isNotNull(competeProjectConfig)){
competeProjectConfig.setProjectDuration(updateAndSearch.getSingleTime());
competeProjectConfig.setSiteNum(updateAndSearch.getSiteNum());
competeProjectConfig.setStartTime(updateAndSearch.getStartTime());
competeProjectConfig.setEndTime(updateAndSearch.getEndTime());
CompeteProjectConfigExample competeProjectConfigExample = new CompeteProjectConfigExample();
competeProjectConfigExample.createCriteria().andProjectIdEqualTo(updateAndSearch.getProjectId());
int num = competeProjectConfigDao.updateByExampleSelective(competeProjectConfig,competeProjectConfigExample);
System.out.println(num);
}
//返回前台的对象赋值
TableVo.DailyScheduleProcess dailyScheduleProcess = new TableVo.DailyScheduleProcess();
//项目名
dailyScheduleProcess.setProjectName(updateAndSearch.getProjectName());
//项目id
dailyScheduleProcess.setProjectId(updateAndSearch.getProjectId());
//参赛人或者队伍
dailyScheduleProcess.setJoinNum(updateAndSearch.getJoinNum());
//单项时间
CompeteProjectConfig competeProjectConfig1 = competeProjectConfigDao.selectByProjectId(updateAndSearch.getProjectId());
if (ObjectUtil.isNotNull(competeProjectConfig1)) {
dailyScheduleProcess.setSingleTime(competeProjectConfig1.getProjectDuration());
//场地
dailyScheduleProcess.setSiteNum(competeProjectConfig1.getSiteNum());
//场次
double a = (double) updateAndSearch.getJoinNum() /(double) competeProjectConfig1.getSiteNum();
double games = Math.ceil(a);
dailyScheduleProcess.setGames(games);
//总时间
double second = competeProjectConfig1.getProjectDuration() * games;
dailyScheduleProcess.setTimeSum(second);
//开始时间
dailyScheduleProcess.setStartTime(competeProjectConfig1.getStartTime());
//项目结束时间
dailyScheduleProcess.setEndTime(competeProjectConfig1.getEndTime());
}
dailyScheduleProcessList.add(dailyScheduleProcess);
}
return dailyScheduleProcessList;
}
@Override
public List<TableVo.CompeteJoin> getCompeteJoinDetail(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();
//项目id
competeJoin.setProjectId(competeProject.getId());
//姓名
competeJoin.setName(competePlayer.getName());
//身份证号
competeJoin.setIdCard(competePlayer.getIdCard());
//根据身份证获取选手年龄并赋值
String idCard = competeJoin.getIdCard();
int ageByIdCard = IdcardUtil.getAgeByIdCard(idCard);
competeJoin.setAge(ageByIdCard);
Byte gender = competePlayer.getGender();
if (gender == 0) {
competeJoin.setGender("女");
} else {
competeJoin.setGender("男");
}
//查询单位,并赋值
CompeteCompany competeCompany = competeCompanyMapper.selectByPrimaryKey(competePlayer.getCompanyId());
if (ObjectUtil.isNotNull(competeCompany)) {
competeJoin.setJoinTeam(competeCompany.getName());
}
//查询组别,并赋值
CompeteGroup competeGroup = competeGroupMapper.selectByPrimaryKey(competePlayer.getCompeteGroupId());
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 { //团队项目
//获取参赛队伍集合
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();
//项目id
competeJoin.setProjectId(competeProject.getId());
//姓名
competeJoin.setName(competePlayer.getName());
//身份证号
competeJoin.setIdCard(competePlayer.getIdCard());
//根据身份证获取选手年龄并赋值
String idCard = competeJoin.getIdCard();
int ageByIdCard = IdcardUtil.getAgeByIdCard(idCard);
competeJoin.setAge(ageByIdCard);
//性别
Byte gender = competePlayer.getGender();
if (gender == 0) {
competeJoin.setGender("女");
} else {
competeJoin.setGender("男");
}
//查询单位,并赋值
CompeteCompany competeCompany = competeCompanyMapper.selectByPrimaryKey(competePlayer.getCompanyId());
if (ObjectUtil.isNotNull(competeCompany)) {
competeJoin.setJoinTeam(competeCompany.getName());
}
//查询组别,并赋值
CompeteGroup competeGroup = competeGroupMapper.selectByPrimaryKey(competePlayer.getCompeteGroupId());
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);
}
}
}
}
return competeJoinList;
}
@Override
public TableVo.SchedulePlan schedulePlanning(CompeteDto.CompeteTime params) {
List<TableVo.SchedulePlanDetailAllIn> schedulePlanDetailListUp = new ArrayList<>();
List<TableVo.SchedulePlanDetailAllIn> schedulePlanDetailListDown = new ArrayList<>();
//关联查询项目名,该项目在config和project中都存在
List <TableVo.SchedulePlanDetail> schedulePlanDetailList = competeProjectConfigDao.selectDetail();
for (TableVo.SchedulePlanDetail schedulePlanDetail : schedulePlanDetailList){
//项目名
String projectName = schedulePlanDetail.getProjectName();
//开始时间yyyy-MM-dd HH:mm:ss
long startTime = schedulePlanDetail.getStartTime();
Date date = new Date(startTime);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm");
String sm = simpleDateFormat.format(date);
//结束时间
long endTime = schedulePlanDetail.getEndTime();
Date date1 = new Date(endTime);
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("HH:mm");
String em = simpleDateFormat1.format(date1);
//拼接
String string = projectName + "("+ sm +"-"+ em + ")";
//项目开始日期
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("MM-dd");
String md = simpleDateFormat2.format(date);
//上午项目
if (Integer.parseInt(sm.substring(0,2)) >= 6 && Integer.parseInt(sm.substring(0,2)) <= 12){
TableVo.SchedulePlanDetailAllIn schedulePlanDetailAllIn = new TableVo.SchedulePlanDetailAllIn();
schedulePlanDetailAllIn.setData(md);
schedulePlanDetailAllIn.setString(string);
schedulePlanDetailListUp.add(schedulePlanDetailAllIn);
}//下午项目
else if (Integer.parseInt(sm.substring(0,2)) > 12 && Integer.parseInt(sm.substring(0,2)) <= 18){
TableVo.SchedulePlanDetailAllIn schedulePlanDetailAllIn1 = new TableVo.SchedulePlanDetailAllIn();
schedulePlanDetailAllIn1.setData(md);
schedulePlanDetailAllIn1.setString(string);
schedulePlanDetailListDown.add(schedulePlanDetailAllIn1);
}
}
TableVo.SchedulePlan schedulePlan = new TableVo.SchedulePlan();
schedulePlan.setSchedulePlanDetailListDown(schedulePlanDetailListDown);
schedulePlan.setSchedulePlanDetailListUp(schedulePlanDetailListUp);
return schedulePlan;
}
}

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

@ -1,12 +1,19 @@
package com.ccsens.mt.service;
import com.ccsens.mt.bean.dto.CompeteDto;
import com.ccsens.mt.bean.dto.ProvinceCompeteDto;
import com.ccsens.mt.bean.vo.TableVo;
import com.ccsens.util.bean.dto.QueryDto;
import com.ccsens.mt.bean.dto.CompeteDto;
import com.ccsens.util.bean.dto.QueryDto;
import java.io.IOException;
import java.util.List;
/**
* 文件操作
* @author li
*/
public interface IExcelService {
/**
* 导出大赛队伍信息表
@ -30,6 +37,12 @@ public interface IExcelService {
*/
String competeJoin(QueryDto<CompeteDto.CompeteTime> params) throws IOException;
/**
* XXXX大赛报名表
* @param params 大赛id
* @return 返回失败的信息
*/
List<TableVo.CompeteJoin> getCompeteJoinDetail(CompeteDto.CompeteTime params);
/**
@ -47,5 +60,28 @@ public interface IExcelService {
*/
String competeAllCount(CompeteDto.CompeteTime params) throws IOException;
String iCompetitionOrderService(QueryDto<CompeteDto.CompeteTime> params);
/**
* 日程安排中间表
* @param params 大赛id
* @return 返回失败的信息
*/
List<TableVo.DailyScheduleProcess> dailyScheduleProcess(CompeteDto.CompeteTime params);
/**
* 更新并查询
* @param params 大赛id
* @return 返回失败的信息
*/
List<TableVo.DailyScheduleProcess> updateAndSearch(ProvinceCompeteDto.UpdateAndSearchList params);
/**
* 更新并查询
* @param params 大赛id
* @return 返回失败的信息
*/
TableVo.SchedulePlan schedulePlanning(CompeteDto.CompeteTime params);
}

13
mt/src/main/java/com/ccsens/mt/service/IProvinceService.java

@ -88,13 +88,6 @@ public interface IProvinceService {
*/
ProvinceCompeteVo.CompeteCompanyHeadList queryCoach(ProvinceCompeteDto.CompanyIdVo param);
// /**
// * 添加领队和教练信息
// * @param
// * @param
// * @return
// */
// void saveCoach(CompeteDto.AddCoach param);
/**
* 删除领队和教练信息
@ -145,4 +138,10 @@ public interface IProvinceService {
* @return 返回所有可参赛的选手和已经参赛的选手
*/
List<ProvinceCompeteVo.GroupAndPlayer> getPlayerByTeamProjectWithRule(ProvinceCompeteDto.GetPlayerByTeamProjectWithRule param);
/**
* 删除参赛的队伍
* @param param ok
*/
void delJoinTeam(ProvinceCompeteDto.DelTeam param);
}

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

@ -635,8 +635,8 @@ public class ProvinceService implements IProvinceService {
competeTeam.setCompeteTimeId(param.getCompeteTimeId());
competeTeam.setProjectId(param.getProjectId());
competeTeam.setCompanyId(param.getCompanyId());
competeTeam.setCompanyId((long) param.getGender());
competeTeam.setCompanyId((long) param.getGroupRemark());
competeTeam.setGenderGroup((byte) param.getGender());
competeTeam.setGroupRemark((byte) param.getGroupRemark());
//添加团队表
competeTeamDao.insertSelective(competeTeam);
}
@ -754,11 +754,28 @@ public class ProvinceService implements IProvinceService {
//查找项目
CompeteProject competeProject = competeProjectMapper.selectByPrimaryKey(param.getProjectId());
if(ObjectUtil.isNotNull(competeProject)){
groupAndPlayerList = competeCompanyDao.getPlayerByTeamProject(param.getProjectId(),competeProject.getType());
if(competeProject.getJoinRule() == 0) {
groupAndPlayerList = competeCompanyDao.getPlayerByTeamProject(param.getCompanyId(), param.getProjectId(), competeProject.getType());
}else {
List<ProvinceCompeteVo.PlayerInfoByGroup> playerInfoByGroupList = competeCompanyDao.queryPlayersByTeamProject(param.getCompanyId(),param.getProjectId());
// groupAndPlayerList = competeCompanyDao.queryPlayersByTeamProject(param.getCompanyId(),param.getProjectId());
ProvinceCompeteVo.GroupAndPlayer groupAndPlayer = new ProvinceCompeteVo.GroupAndPlayer();
CompeteTeamExample teamExample = new CompeteTeamExample();
teamExample.createCriteria().andProjectIdEqualTo(param.getProjectId()).andCompanyIdEqualTo(param.getCompanyId());
List<CompeteTeam> teamList = competeTeamDao.selectByExample(teamExample);
if(CollectionUtil.isNotEmpty(teamList)){
groupAndPlayer.setTeamId(teamList.get(0).getId());
}
groupAndPlayer.setGroupName("不限制组别");
groupAndPlayer.setPlayerList(playerInfoByGroupList);
groupAndPlayerList.add(groupAndPlayer);
}
}
return groupAndPlayerList;
}
/**
* 查找符合参赛规则的选手信息
*/
@ -771,6 +788,10 @@ public class ProvinceService implements IProvinceService {
//如果同单位不限组别
if(competeProject.getJoinRule() == 1){
groupAndPlayerList = competeCompanyDao.queryPlayerByGroupId(competeProject.getType(),param.getCompanyId(),null,param.getProjectId());
// List<ProvinceCompeteVo.PlayerInfoByGroup> playerInfoByGroupList = competeCompanyDao.queryPlayersByTeamProject(param.getCompanyId(),param.getProjectId());
// ProvinceCompeteVo.GroupAndPlayer groupAndPlayer = new ProvinceCompeteVo.GroupAndPlayer();
// groupAndPlayer.setGroupName("不限制组别");
// groupAndPlayer.setPlayerList(playerInfoByGroupList);
}
//如果同单位限制组别
if(competeProject.getJoinRule() == 0){
@ -784,5 +805,24 @@ public class ProvinceService implements IProvinceService {
}
return groupAndPlayerList;
}
@Override
public void delJoinTeam(ProvinceCompeteDto.DelTeam param) {
CompeteTeam competeTeam = competeTeamDao.selectByPrimaryKey(param.getTeamId());
if(ObjectUtil.isNotNull(competeTeam)){
competeTeam.setRecStatus((byte) 2);
competeTeamDao.updateByPrimaryKeySelective(competeTeam);
CompeteTeamMemberExample teamMemberExample = new CompeteTeamMemberExample();
teamMemberExample.createCriteria().andCompeteTeamIdEqualTo(param.getTeamId());
List<CompeteTeamMember> teamMemberList = teamMemberMapper.selectByExample(teamMemberExample);
if(CollectionUtil.isNotEmpty(teamMemberList)){
teamMemberList.forEach(teamMember -> {
teamMember.setRecStatus((byte) 2);
teamMemberMapper.updateByPrimaryKeySelective(teamMember);
});
}
}
}
}

28
mt/src/main/resources/mapper_dao/CompeteCompanyDao.xml

@ -26,6 +26,9 @@
<resultMap id="group_player" type="com.ccsens.mt.bean.vo.ProvinceCompeteVo$GroupAndPlayer">
<id column="groupId" property="groupId"/>
<result column="groupName" property="groupName"/>
<result column="gender" property="gender"/>
<result column="groupRemark" property="groupRemark"/>
<result column="teamId" property="teamId"/>
<collection property="playerList" ofType="com.ccsens.mt.bean.vo.ProvinceCompeteVo$PlayerInfoByGroup">
<id column="playerId" property="playerId"/>
<result column="playerName" property="playerName"/>
@ -244,7 +247,10 @@
g.id as groupId,
g.group_name as groupName,
p.id as playerId,
p.`name` as playerName
p.`name` as playerName,
t.gender_group as gender,
t.group_remark as groupRemark,
t.id as teamId
FROM
t_compete_group g
LEFT JOIN t_compete_team t on g.sex = t.gender_group and g.group_remark = t.group_remark
@ -252,8 +258,8 @@
LEFT JOIN t_compete_player p on m.player_id = p.id
WHERE
t.project_id = #{projectId}
and
g.type = #{type}
and t.company_id = #{companyId}
and g.type = #{type}
and g.rec_status = 0
and t.rec_status = 0
and m.rec_status = 0
@ -296,6 +302,8 @@
g.group_name as groupName,
p.id as playerId,
p.`name` as playerName,
a.mRemark as groupRemark,
a.mGender as gender,
if(a.tId is null,0,1) as joinProject
FROM
t_compete_group g
@ -364,4 +372,18 @@
tct.rec_status=0
ORDER BY tcpc.start_time
</select>
<select id="queryPlayersByTeamProject" resultType="com.ccsens.mt.bean.vo.ProvinceCompeteVo$PlayerInfoByGroup">
SELECT
p.id as playerId,
p.`name` as playerName
FROM
t_compete_team t LEFT JOIN t_compete_team_member m on t.id = m.compete_team_id
LEFT JOIN t_compete_player p on m.player_id = p.id
WHERE
t.project_id = #{projectId}
and t.company_id = #{companyId}
and t.rec_status = 0
and m.rec_status = 0
and p.rec_status = 0
</select>
</mapper>

27
mt/src/main/resources/mapper_dao/CompeteProjectConfigDao.xml

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.mt.persist.dao.CompeteProjectConfigDao">
<resultMap id="BaseResultMap" type="com.ccsens.mt.bean.po.CompeteProjectConfig">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="project_id" jdbcType="BIGINT" property="projectId" />
<result column="site_num" jdbcType="INTEGER" property="siteNum" />
<result column="start_time" jdbcType="BIGINT" property="startTime" />
<result column="end_time" jdbcType="BIGINT" property="endTime" />
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" />
<result column="project_duration" jdbcType="BIGINT" property="projectDuration" />
</resultMap>
<select id="selectByProjectId" resultMap="BaseResultMap" parameterType="java.util.Map">
select * from t_compete_project_config
where project_id = #{projectId}
and rec_status = 0
</select>
<select id="selectDetail" resultType="com.ccsens.mt.bean.vo.TableVo$SchedulePlanDetail" parameterType="java.util.Map">
SELECT a.start_time as startTime,
a.end_time as endTime,
b.name as projectName
FROM t_compete_project_config a , t_compete_project b
where a.project_id = b.id
</select>
</mapper>

10
mt/src/main/resources/mapper_dao/CompeteProjectDao.xml

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.mt.persist.dao.CompeteProjectDao">
<select id="getProjectByProjectName" resultType="com.ccsens.mt.bean.po.CompeteProject" parameterType="java.util.Map">
select * from t_compete_project
where name = #{projectName}
and rec_status = 0
</select>
</mapper>
Loading…
Cancel
Save