Browse Source

提交修改

tiaosheng
wang0018 5 years ago
parent
commit
191913aa71
  1. 131
      cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/TallTaskDto.java
  2. 110
      cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/TaskVo.java
  3. 55
      cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java
  4. 39
      mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java
  5. 34
      mt/src/main/java/com/ccsens/mt/api/CompeteTaskController.java
  6. 43
      mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java
  7. 30
      mt/src/main/java/com/ccsens/mt/bean/dto/ProvinceCompeteDto.java
  8. 116
      mt/src/main/java/com/ccsens/mt/bean/po/CompeteCountScoreKey.java
  9. 33
      mt/src/main/java/com/ccsens/mt/bean/po/CompeteStartOrder.java
  10. 180
      mt/src/main/java/com/ccsens/mt/bean/po/CompeteStartOrderExample.java
  11. 2
      mt/src/main/java/com/ccsens/mt/bean/vo/CompeteExcelVo.java
  12. 24
      mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java
  13. 79
      mt/src/main/java/com/ccsens/mt/bean/vo/ProvinceCompeteVo.java
  14. 46
      mt/src/main/java/com/ccsens/mt/bean/vo/ScoreVo.java
  15. 6
      mt/src/main/java/com/ccsens/mt/bean/vo/TableVo.java
  16. 18
      mt/src/main/java/com/ccsens/mt/persist/dao/CompeteJudgmentDao.java
  17. 8
      mt/src/main/java/com/ccsens/mt/persist/dao/CompetePlayerDao.java
  18. 11
      mt/src/main/java/com/ccsens/mt/persist/dao/CompeteProjectConfigDao.java
  19. 27
      mt/src/main/java/com/ccsens/mt/persist/dao/CompeteScoreDao.java
  20. 126
      mt/src/main/java/com/ccsens/mt/service/CompeteService.java
  21. 225
      mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java
  22. 33
      mt/src/main/java/com/ccsens/mt/service/ICompeteService.java
  23. 25
      mt/src/main/java/com/ccsens/mt/service/ICompeteTaskService.java
  24. 33
      mt/src/main/java/com/ccsens/mt/service/ProvinceService.java
  25. 5
      mt/src/main/java/com/ccsens/mt/util/Constant.java
  26. 44
      mt/src/main/resources/mapper_dao/CompeteJudgmentDao.xml
  27. 10
      mt/src/main/resources/mapper_dao/CompetePlayerDao.xml
  28. 63
      mt/src/main/resources/mapper_dao/CompeteProjectConfigDao.xml
  29. 109
      mt/src/main/resources/mapper_dao/CompeteScoreDao.xml
  30. 58
      mt/src/main/resources/mapper_raw/CompeteStartOrderMapper.xml
  31. 4
      tall/src/main/java/com/ccsens/tall/web/TaskController.java
  32. 2
      tall/src/main/resources/application-dev.yml
  33. 4
      tall/src/main/resources/application.yml

131
cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/dto/TallTaskDto.java

@ -0,0 +1,131 @@
package com.ccsens.cloudutil.bean.tall.dto;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.util.exception.BaseException;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NonNull;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ApiModel
public class TallTaskDto {
@ApiModel
@Data
public static class AddTask {
@ApiModelProperty("关联项目Id")
private Long projectId;
@ApiModelProperty("关联的任务id(detailId)")
private Long parentTaskId;
@ApiModelProperty("任务名称")
@NotEmpty(message = "任务名不能为空")
private String taskName;
@ApiModelProperty("任务描述")
private String description;
@ApiModelProperty("负责人id")
@NotNull(message = "请选择负责人")
private Long executorId;
@ApiModelProperty("开始时间")
private Long beginTime;
@ApiModelProperty("结束时间")
private Long endTime;
@ApiModelProperty("重复周期")
private String cycle;
@ApiModelProperty("交付物")
private String taskDeliver;
@ApiModelProperty("插件")
private List<Long> pluginList;
@ApiModelProperty("优先级 3,紧急重要 2,紧急不重要 1,重要不紧急 0,不重要不紧急 默认0")
private Byte priority;
@ApiModelProperty("任务提醒消息")
private TaskRemindByAdd taskRemind;
}
@Data
@ApiModel("添加时设置任务提醒")
public static class TaskRemindByAdd{
@ApiModelProperty("提醒时机 0不提醒 1开始前,2开始时,3开始后,4结束前,5结束时,6结束后,7自定义时间")
private Byte remindTiming;
@ApiModelProperty("时长 提醒时机是“开始时”或“结束时”可以为空")
private Long duration = 0L;
@ApiModelProperty("时间单位 0分钟 1小时 2天")
private Byte unit;
public Long getDuration(){
if(ObjectUtil.isNull(unit)) {
throw new BaseException("时间单位不能为空");
}
if(remindTiming == 7){
return duration;
}
switch (unit) {
case 0:
return duration * 60 * 1000L;
case 1:
return duration * 60 * 60 * 1000L;
case 2:
return duration * 24 * 60 * 60 * 1000L;
default:
return duration;
}
}
}
@Data
@ApiModel("修改任务详细信息")
public static class UpdateTaskInfo{
@ApiModelProperty("任务id")
private Long id;
@ApiModelProperty("任务名")
private String name;
@ApiModelProperty("任务详情")
private String description;
@ApiModelProperty("负责人")
private Long executorRole;
@ApiModelProperty("任务开始时间")
private Long beginTime;
@ApiModelProperty("任务结束时间")
private Long endTime;
@ApiModelProperty("重复频率")
private String cycle;
@ApiModelProperty("任务奖惩")
private Long money;
@ApiModelProperty("任务切换模式,0时间到立刻切换 1延迟delay_time切换 2手动切换")
private int delay;
@ApiModelProperty("延迟切换时间")
private Long delayTime;
@ApiModelProperty("优先级 3,紧急重要 2,紧急不重要 1,重要不紧急 0,不重要不紧急 默认0")
private Byte priority;
@ApiModelProperty("是否是里程碑 0否 1是")
private Byte milestone;
@ApiModelProperty("需要修改的插件Id")
private List<Long> plugins;
}
@Data
@ApiModel("修改插件配置")
public static class UpdatePluginConfig {
@NonNull
@ApiModelProperty("任务id")
private Long taskId;
@ApiModelProperty("任务插件id")
private Long taskPluginId;
@ApiModelProperty("页面接口路径")
private String webPath;
@ApiModelProperty("入参")
private String importParam;
@ApiModelProperty("放置位置 默认0 ,0任务名 1详情页 2任务下")
private Byte placeLocation;
@ApiModelProperty("程序位置 0:tall内部,1外部")
private Byte routineLocation;
public UpdatePluginConfig() {
}
}
}

110
cloudutil/src/main/java/com/ccsens/cloudutil/bean/tall/vo/TaskVo.java

@ -1,7 +1,14 @@
package com.ccsens.cloudutil.bean.tall.vo;
import cn.hutool.core.util.ObjectUtil;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class TaskVo {
@Data
@ -11,4 +18,107 @@ public class TaskVo {
private Long projectId;
private String projectName;
}
@ApiModel
@Data
public static class NormalTask{
@ApiModelProperty("任务详细信息id")
private Long detailId;
@ApiModelProperty("当前任务的时间段id")
private Long id;
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("详细描述")
private String description;
@ApiModelProperty("父任务名称")
private String parentName;
@ApiModelProperty("所属项目id")
private Long projectId;
@ApiModelProperty("所属项目名称")
private String projectName;
@ApiModelProperty("负责人Id")
private Long executorRole;
@ApiModelProperty("负责人名称")
private String executorRoleName;
@ApiModelProperty("开始时间")
private Long beginTime;
@ApiModelProperty("结束时间")
private Long endTime;
@ApiModelProperty("时长")
private Long duration;
@ApiModelProperty("循环周期")
private String cycle;
@ApiModelProperty("跳转模式 0自动,1延迟,2手动")
private int delay;
@ApiModelProperty("实际开始时间")
private Long realBeginTime;
@ApiModelProperty("实际结束时间")
private Long realEndTime;
@ApiModelProperty("跳转结束时间")
private Long loopEndTime;
@ApiModelProperty("跳转的任务id")
private Long loopTo;
@ApiModelProperty("执行时间")
private Long execTimes;
@ApiModelProperty("奖惩")
private BigDecimal money;
@ApiModelProperty("状态:0-未开始,1-进行中,2-已完成")
private int process;
@ApiModelProperty("子项目id")
private Long subProjectId;
@ApiModelProperty("子项目名字")
private String subProjectName;
@ApiModelProperty("服务器时间")
private Long serverTime;
@ApiModelProperty("任务类型 0普通任务 1虚拟任务")
private int virtual;
@ApiModelProperty("有无分组")
private int hasGroup;
@ApiModelProperty("分数")
private BigDecimal score;
@ApiModelProperty("插件")
private List<PluginVo> plugins;
@ApiModelProperty("二级任务")
private List<NormalTask> secondTasks;
@ApiModelProperty("时间状态 0:正常 1:任务开始 2:任务结束")
private Byte timeStatus = 0;
@ApiModelProperty("当前周期内任务的序号")
private int sequence;
@ApiModelProperty("页面/接口路径")
private String webPath;
@ApiModelProperty("程序位置 0:tall内部,1外部")
private Byte routineLocation;
@ApiModelProperty("入参")
private String importParam;
public Long getDuration(){
if(ObjectUtil.isNotNull(beginTime) && ObjectUtil.isNotNull(endTime)) {
return endTime - beginTime;
}
return null;
}
public Long getServerTime(){
return System.currentTimeMillis();
}
}
@ApiModel
@Data
public static class PluginVo{
@ApiModelProperty("插件id")
private String id;
@ApiModelProperty("插件名")
private String name;
@ApiModelProperty("插件描述")
private String description;
@ApiModelProperty("显示分类")
private String showType;
@ApiModelProperty("页面/接口路径")
private String webPath;
@ApiModelProperty("程序位置 0:tall内部,1外部")
private Byte routineLocation;
@ApiModelProperty("入参")
private String importParam;
}
}

55
cloudutil/src/main/java/com/ccsens/cloudutil/feign/TallFeignClient.java

@ -1,10 +1,7 @@
package com.ccsens.cloudutil.feign;
import com.ccsens.cloudutil.bean.QueryParam;
import com.ccsens.cloudutil.bean.tall.dto.LogDto;
import com.ccsens.cloudutil.bean.tall.dto.MemberRoleDto;
import com.ccsens.cloudutil.bean.tall.dto.UserDto;
import com.ccsens.cloudutil.bean.tall.dto.WpsDto;
import com.ccsens.cloudutil.bean.tall.dto.*;
import com.ccsens.cloudutil.bean.tall.vo.*;
import com.ccsens.util.JsonResponse;
import feign.hystrix.FallbackFactory;
@ -12,10 +9,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -177,12 +171,35 @@ public interface TallFeignClient {
@GetMapping("/v1/3rd/getFilePath")
String getWpsFilePath(@RequestParam(name = "businessId") Long businessId,@RequestParam(name = "businessType") byte businessType);
/**
/**
* 通过userId呵taskId查找用户信息
*/
@GetMapping("/users/memberByTask")
JsonResponse<MemberVo.MemberInfo> getMemberInfoByUserIdAndTaskId(@RequestParam(name = "userId") Long userId,@RequestParam(name = "taskId") Long taskId);
/**
* 添加任务
*/
@RequestMapping("/tasks")
JsonResponse<TaskVo.NormalTask> saveTask(TallTaskDto.AddTask addTask);
/**
* 修改任务
*/
@RequestMapping("/tasks/change")
JsonResponse<TaskVo.NormalTask> updataTask(TallTaskDto.UpdateTaskInfo updateTaskInfo);
/**
* 删除任务
*/
@DeleteMapping("/tasks")
JsonResponse deleteTask(@RequestParam(name = "taskId") Long taskId);
/**
* 修改任务插件配置
*/
@DeleteMapping("/plugins/config")
JsonResponse<TaskVo.PluginVo> updatePluginConfig(TallTaskDto.UpdatePluginConfig updatePluginConfig);
}
@Slf4j
@ -295,6 +312,26 @@ class TallFeignClientFallBack implements FallbackFactory<TallFeignClient> {
public JsonResponse<MemberVo.MemberInfo> getMemberInfoByUserIdAndTaskId(Long userId, Long taskId) {
return JsonResponse.newInstance().fail();
}
@Override
public JsonResponse<TaskVo.NormalTask> saveTask(TallTaskDto.AddTask addTask) {
return JsonResponse.newInstance().fail();
}
@Override
public JsonResponse<TaskVo.NormalTask> updataTask(TallTaskDto.UpdateTaskInfo updateTaskInfo) {
return JsonResponse.newInstance().fail();
}
@Override
public JsonResponse deleteTask(Long taskId) {
return JsonResponse.newInstance().fail();
}
@Override
public JsonResponse<TaskVo.PluginVo> updatePluginConfig(TallTaskDto.UpdatePluginConfig updatePluginConfig) {
return JsonResponse.newInstance().fail();
}
};
}

39
mt/src/main/java/com/ccsens/mt/api/CompeteScoreController.java

@ -4,6 +4,7 @@ import com.ccsens.cloudutil.annotation.MustLogin;
import com.ccsens.mt.bean.dto.CompeteDto;
import com.ccsens.mt.bean.dto.ScoreDto;
import com.ccsens.mt.bean.vo.CompeteVo;
import com.ccsens.mt.bean.vo.ScoreVo;
import com.ccsens.mt.service.ICompeteService;
import com.ccsens.util.JsonResponse;
import com.ccsens.util.bean.dto.QueryDto;
@ -42,6 +43,7 @@ public class CompeteScoreController {
}
@MustLogin
@ApiOperation(value = "花样赛提交分数", notes = "Mr.王----提交成绩到那个花样赛得表里面就行了,单表操作")
@RequestMapping(value = "/submitOrderList", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse submitOrder(@ApiParam @Validated @RequestBody QueryDto<ScoreDto.InformationSubmitted> params){
@ -58,4 +60,41 @@ public class CompeteScoreController {
return JsonResponse.newInstance().ok(totalScoreDisplaysList);
}
@ApiOperation(value = "项目状态", notes = "")
@RequestMapping(value = "/countScore", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<CompeteVo.CountScore> countScore(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteTime> params) {
log.info("查询比赛项目上的参赛选手列表:{}",params);
List<CompeteVo.CountScore> countScoreList = competeService.countScore(params.getParam());
return JsonResponse.newInstance().ok(countScoreList);
}
@MustLogin
@ApiOperation(value = "选手排名", notes = "")
@RequestMapping(value = "/countScoreDetail", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<ScoreVo.CompeteScore> countScoreDetail(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.ProjectIdAndGroupId> params) {
log.info("查询比赛项目上的参赛选手列表:{}",params);
List<ScoreVo.CompeteScore> competeScores = competeService.countScoreDetail(params.getParam());
return JsonResponse.newInstance().ok(competeScores);
}
@MustLogin
@ApiOperation(value = "计数赛查看当前场次的分数信息", notes = "")
@RequestMapping(value = "/countScoreCurrentSite", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<ScoreVo.CountScoreCurrentSite> countScoreCurrentSite(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteSite> params) {
log.info("查询比赛项目上的参赛选手列表:{}",params);
List<ScoreVo.CountScoreCurrentSite> countScoreCurrentSites = competeService.countScoreCurrentSite(params.getParam());
return JsonResponse.newInstance().ok(countScoreCurrentSites);
}
@MustLogin
@ApiOperation(value = "技术赛提交分数", notes = "")
@RequestMapping(value = "/submitScore", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse submitScore(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.SubmitScore> params) {
log.info("查询比赛项目上的参赛选手列表:{}",params);
competeService.submitScore(params.getParam());
return JsonResponse.newInstance().ok();
}
}

34
mt/src/main/java/com/ccsens/mt/api/CompeteTaskController.java

@ -1,7 +1,9 @@
package com.ccsens.mt.api;
import com.ccsens.cloudutil.annotation.MustLogin;
import com.ccsens.mt.bean.dto.CompeteDto;
import com.ccsens.mt.bean.dto.ProvinceCompeteDto;
import com.ccsens.mt.bean.vo.ProvinceCompeteVo;
import com.ccsens.mt.bean.vo.TableVo;
import com.ccsens.mt.service.ICompeteTaskService;
import com.ccsens.util.JsonResponse;
@ -30,15 +32,45 @@ public class CompeteTaskController {
@Resource
private ICompeteTaskService competeTaskService;
@MustLogin
@ApiOperation(value = "查找日期配置", notes = "zy:查找项目对应的配置信息")
@RequestMapping(value = "/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<TableVo.DailyScheduleProcess> queryCompeteConfig(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteTime> params) {
log.info("日程安排更新:{}",params);
List<TableVo.CompeteProjectConfig> dailyScheduleProcessList = competeTaskService.queryCompeteConfig(params.getParam());
log.info("日程安排更新:{}",dailyScheduleProcessList);
return JsonResponse.newInstance().ok(dailyScheduleProcessList);
}
@MustLogin
@ApiOperation(value = "日程安排更新", notes = "zy:1、循环查找项目对应的配置信息。2、有则修改,没有则添加配置信息。" +
"3、根据配置的时间和场地生成出场顺序表。4存入出场顺序表。5、调用tall接口添加任务")
@RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<TableVo.DailyScheduleProcess> updateCompeteConfig(@ApiParam @Validated @RequestBody QueryDto<List<ProvinceCompeteDto.UpdateCompeteTask>> params) {
public JsonResponse<TableVo.DailyScheduleProcess> updateCompeteConfig(@ApiParam @Validated @RequestBody QueryDto<ProvinceCompeteDto.UpdateCompeteProjectConfig> params) {
log.info("日程安排更新:{}",params);
List<TableVo.CompeteProjectConfig> dailyScheduleProcessList = competeTaskService.updateCompeteProjectConfig(params.getParam());
log.info("日程安排更新:{}",dailyScheduleProcessList);
return JsonResponse.newInstance().ok(dailyScheduleProcessList);
}
@MustLogin
@ApiOperation(value = "查看该学校选手列表,按出场顺序(手机上上传视频用)", notes = "zy:按顺序查找出场顺序表,筛选出该学校在此项目中的所有选手或团队的出场顺序和时间")
@RequestMapping(value = "/query/players", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<ProvinceCompeteVo.StartOrderByCompany>> queryStartOrderByCompany(@ApiParam @Validated @RequestBody QueryDto<ProvinceCompeteDto.QueryStartOrderByCompany> params) {
log.info("日程安排更新:{}",params);
List<ProvinceCompeteVo.StartOrderByCompany> startOrderByCompanyList = competeTaskService.queryStartOrderByCompany(params.getParam());
log.info("日程安排更新:{}",startOrderByCompanyList);
return JsonResponse.newInstance().ok(startOrderByCompanyList);
}
@MustLogin
@ApiOperation(value = "查看裁判分配信息", notes = "zy:查看每个项目下的每个场地的裁判信息")
@RequestMapping(value = "/query/judgment", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<ProvinceCompeteVo.QueryJudgment>> queryJudgment(@ApiParam @Validated @RequestBody QueryDto<CompeteDto.CompeteTime> params) {
log.info("日程安排更新:{}",params);
List<ProvinceCompeteVo.QueryJudgment> queryJudgmentList = competeTaskService.queryJudgment(params.getParam());
log.info("日程安排更新:{}",queryJudgmentList);
return JsonResponse.newInstance().ok(queryJudgmentList);
}
}

43
mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.NonNull;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.List;
/**
@ -21,6 +22,14 @@ public class CompeteDto {
private int type;
}
@Data
@ApiModel
public static class CompeteSite{
@NotNull
@ApiModelProperty("场次id")
private int siteId;
}
@Data
@ApiModel
public static class CompeteTime{
@ -325,5 +334,39 @@ public class CompeteDto {
private String idCard;
}
@Data
@ApiModel("项目id和组别id")
public static class ProjectIdAndGroupId{
@ApiModelProperty("项目id")
private Long projectId;
@ApiModelProperty("组别id")
private Long competeGroupId;
}
@Data
@ApiModel("提交分数")
public static class SubmitScore{
@ApiModelProperty("项目id")
private Long projectId;
@ApiModelProperty("大赛id")
private Long competeTimeId;
@ApiModelProperty("场次id")
private Long siteOrderId;
@ApiModelProperty("主裁打分")
private BigDecimal mainScore;
@ApiModelProperty("主裁1打分")
private BigDecimal mainOneScore;
@ApiModelProperty("主裁2打分")
private BigDecimal mainTwoScore;
@ApiModelProperty("应得分")
private int shouldScore;
@ApiModelProperty("扣除次数")
private int deductTime;
@ApiModelProperty("扣除原因")
private String deductReason;
@ApiModelProperty("最终成绩")
private BigDecimal finalScore;
}
}

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

@ -136,7 +136,7 @@ public class ProvinceCompeteDto {
}
@Data
@ApiModel("修改日程安排")
@ApiModel("修改日程安排111")
public static class UpdateAndSearch{
@ApiModelProperty("项目id")
private Long projectId;
@ -199,11 +199,22 @@ public class ProvinceCompeteDto {
private Long teamId;
}
@Data
@ApiModel("修改日程安排")
public static class UpdateCompeteTask{
public static class UpdateCompeteProjectConfig{
@NotNull
@ApiModelProperty("项目id")
@ApiModelProperty("Tall当前项目id")
private Long projectId;
@ApiModelProperty("单项时间 单位:秒")
private List<UpdateCompeteTask> updateCompeteTaskList;
}
@Data
@ApiModel("需要修改的日程安排")
public static class UpdateCompeteTask{
@NotNull
@ApiModelProperty("比赛项目项目id")
private Long projectId;
@ApiModelProperty("单项时间 单位:秒")
private long duration;
@ -215,4 +226,17 @@ public class ProvinceCompeteDto {
private Long endTime;
}
@Data
@ApiModel("手机上查找当前单位的选手出场顺序")
public static class QueryStartOrderByCompany{
@ApiModelProperty("比赛项目id,为空则查询全部项目")
private Long projectId;
@NotNull
@ApiModelProperty("大赛id")
private Long competeTimeId;
@NotNull
@ApiModelProperty("单位id")
private Long companyId;
}
}

116
mt/src/main/java/com/ccsens/mt/bean/po/CompeteCountScoreKey.java

@ -1,39 +1,77 @@
package com.ccsens.mt.bean.po;
import java.io.Serializable;
public class CompeteCountScoreKey implements Serializable {
private Long id;
private Integer shouldTimes;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getShouldTimes() {
return shouldTimes;
}
public void setShouldTimes(Integer shouldTimes) {
this.shouldTimes = shouldTimes;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", shouldTimes=").append(shouldTimes);
sb.append("]");
return sb.toString();
}
}
package com.ccsens.mt.bean.po;
import java.io.Serializable;
public class CompeteCountScoreKey implements Serializable {
private Long id;
private Integer shouldTimes;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getShouldTimes() {
return shouldTimes;
}
public void setShouldTimes(Integer shouldTimes) {
this.shouldTimes = shouldTimes;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", shouldTimes=").append(shouldTimes);
sb.append("]");
return sb.toString();
}
}
//public class CompeteCountScoreKey implements Serializable {
// private Long id;
//
// private Integer shouldTimes;
//
// private static final long serialVersionUID = 1L;
//
// public Long getId() {
// return id;
// }
//
// public void setId(Long id) {
// this.id = id;
// }
//
// public Integer getShouldTimes() {
// return shouldTimes;
// }
//
// public void setShouldTimes(Integer shouldTimes) {
// this.shouldTimes = shouldTimes;
// }
//
// @Override
// public String toString() {
// StringBuilder sb = new StringBuilder();
// sb.append(getClass().getSimpleName());
// sb.append(" [");
// sb.append("Hash = ").append(hashCode());
// sb.append(", id=").append(id);
// sb.append(", shouldTimes=").append(shouldTimes);
// sb.append("]");
// return sb.toString();
// }
//}

33
mt/src/main/java/com/ccsens/mt/bean/po/CompeteStartOrder.java

@ -22,6 +22,12 @@ public class CompeteStartOrder implements Serializable {
private Byte recStatus;
private Long taskId;
private Long startTime;
private Long endTime;
private static final long serialVersionUID = 1L;
public Long getId() {
@ -96,6 +102,30 @@ public class CompeteStartOrder implements Serializable {
this.recStatus = recStatus;
}
public Long getTaskId() {
return taskId;
}
public void setTaskId(Long taskId) {
this.taskId = taskId;
}
public Long getStartTime() {
return startTime;
}
public void setStartTime(Long startTime) {
this.startTime = startTime;
}
public Long getEndTime() {
return endTime;
}
public void setEndTime(Long endTime) {
this.endTime = endTime;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@ -111,6 +141,9 @@ public class CompeteStartOrder implements Serializable {
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
sb.append(", taskId=").append(taskId);
sb.append(", startTime=").append(startTime);
sb.append(", endTime=").append(endTime);
sb.append("]");
return sb.toString();
}

180
mt/src/main/java/com/ccsens/mt/bean/po/CompeteStartOrderExample.java

@ -644,6 +644,186 @@ public class CompeteStartOrderExample {
addCriterion("rec_status not between", value1, value2, "recStatus");
return (Criteria) this;
}
public Criteria andTaskIdIsNull() {
addCriterion("task_id is null");
return (Criteria) this;
}
public Criteria andTaskIdIsNotNull() {
addCriterion("task_id is not null");
return (Criteria) this;
}
public Criteria andTaskIdEqualTo(Long value) {
addCriterion("task_id =", value, "taskId");
return (Criteria) this;
}
public Criteria andTaskIdNotEqualTo(Long value) {
addCriterion("task_id <>", value, "taskId");
return (Criteria) this;
}
public Criteria andTaskIdGreaterThan(Long value) {
addCriterion("task_id >", value, "taskId");
return (Criteria) this;
}
public Criteria andTaskIdGreaterThanOrEqualTo(Long value) {
addCriterion("task_id >=", value, "taskId");
return (Criteria) this;
}
public Criteria andTaskIdLessThan(Long value) {
addCriterion("task_id <", value, "taskId");
return (Criteria) this;
}
public Criteria andTaskIdLessThanOrEqualTo(Long value) {
addCriterion("task_id <=", value, "taskId");
return (Criteria) this;
}
public Criteria andTaskIdIn(List<Long> values) {
addCriterion("task_id in", values, "taskId");
return (Criteria) this;
}
public Criteria andTaskIdNotIn(List<Long> values) {
addCriterion("task_id not in", values, "taskId");
return (Criteria) this;
}
public Criteria andTaskIdBetween(Long value1, Long value2) {
addCriterion("task_id between", value1, value2, "taskId");
return (Criteria) this;
}
public Criteria andTaskIdNotBetween(Long value1, Long value2) {
addCriterion("task_id not between", value1, value2, "taskId");
return (Criteria) this;
}
public Criteria andStartTimeIsNull() {
addCriterion("start_time is null");
return (Criteria) this;
}
public Criteria andStartTimeIsNotNull() {
addCriterion("start_time is not null");
return (Criteria) this;
}
public Criteria andStartTimeEqualTo(Long value) {
addCriterion("start_time =", value, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeNotEqualTo(Long value) {
addCriterion("start_time <>", value, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeGreaterThan(Long value) {
addCriterion("start_time >", value, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeGreaterThanOrEqualTo(Long value) {
addCriterion("start_time >=", value, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeLessThan(Long value) {
addCriterion("start_time <", value, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeLessThanOrEqualTo(Long value) {
addCriterion("start_time <=", value, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeIn(List<Long> values) {
addCriterion("start_time in", values, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeNotIn(List<Long> values) {
addCriterion("start_time not in", values, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeBetween(Long value1, Long value2) {
addCriterion("start_time between", value1, value2, "startTime");
return (Criteria) this;
}
public Criteria andStartTimeNotBetween(Long value1, Long value2) {
addCriterion("start_time not between", value1, value2, "startTime");
return (Criteria) this;
}
public Criteria andEndTimeIsNull() {
addCriterion("end_time is null");
return (Criteria) this;
}
public Criteria andEndTimeIsNotNull() {
addCriterion("end_time is not null");
return (Criteria) this;
}
public Criteria andEndTimeEqualTo(Long value) {
addCriterion("end_time =", value, "endTime");
return (Criteria) this;
}
public Criteria andEndTimeNotEqualTo(Long value) {
addCriterion("end_time <>", value, "endTime");
return (Criteria) this;
}
public Criteria andEndTimeGreaterThan(Long value) {
addCriterion("end_time >", value, "endTime");
return (Criteria) this;
}
public Criteria andEndTimeGreaterThanOrEqualTo(Long value) {
addCriterion("end_time >=", value, "endTime");
return (Criteria) this;
}
public Criteria andEndTimeLessThan(Long value) {
addCriterion("end_time <", value, "endTime");
return (Criteria) this;
}
public Criteria andEndTimeLessThanOrEqualTo(Long value) {
addCriterion("end_time <=", value, "endTime");
return (Criteria) this;
}
public Criteria andEndTimeIn(List<Long> values) {
addCriterion("end_time in", values, "endTime");
return (Criteria) this;
}
public Criteria andEndTimeNotIn(List<Long> values) {
addCriterion("end_time not in", values, "endTime");
return (Criteria) this;
}
public Criteria andEndTimeBetween(Long value1, Long value2) {
addCriterion("end_time between", value1, value2, "endTime");
return (Criteria) this;
}
public Criteria andEndTimeNotBetween(Long value1, Long value2) {
addCriterion("end_time not between", value1, value2, "endTime");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

2
mt/src/main/java/com/ccsens/mt/bean/vo/CompeteExcelVo.java

@ -59,4 +59,6 @@ public class CompeteExcelVo {
@ApiModelProperty("月/日 上/下午")
private String year;
}
}

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

@ -464,6 +464,7 @@ public class CompeteVo {
}
@Data
@ApiModel("花样赛总成绩")
public static class TotalScoreDisplay{
@ApiModelProperty("项目名")
@ -493,6 +494,27 @@ public class CompeteVo {
// @ApiModelProperty("排名")
// public int order;
}
@Data
@ApiModel("项目,开始时间和比赛状态")
public static class CountScore{
@ApiModelProperty("项目id")
private Long id;
@ApiModelProperty("项目名")
private String projectName;
@ApiModelProperty("项目开始时间")
private Long startTime;
@ApiModelProperty("项目状态")
private int status;
}
@Data
@ApiModel("得分享请")
public static class CountScoreDetail{
@ApiModelProperty("参赛队伍")
private String companyName;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("成绩")
private Long grade;
}
}

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

@ -1,5 +1,7 @@
package com.ccsens.mt.bean.vo;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.mt.util.Constant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -230,4 +232,81 @@ public class ProvinceCompeteVo {
private int sexGroup;
private String groupRemark = "123";
}
@Data
@ApiModel("查看单位下当前项目所有参赛人员或队伍信息")
public static class StartOrderByCompany {
@ApiModelProperty("项目id")
private Long projectId;
@ApiModelProperty("项目名")
private String projectName;
@ApiModelProperty("场次id")
private Long startOrderId;
@ApiModelProperty("场次")
private int competeOrder;
@ApiModelProperty("场地")
private int site;
@ApiModelProperty("选手名")
private String playerName;
@ApiModelProperty("组别名")
private String groupName;
@ApiModelProperty("开始时间")
private Long startTime;
@ApiModelProperty("结束时间")
private Long endTime;
public Long getStartTime(){
if(ObjectUtil.isNotNull(startTime) && startTime != 0){
return startTime + Constant.UPLOAD_VIDEO_TIME;
}
return null;
}
public Long getEndTime(){
if(ObjectUtil.isNotNull(endTime) && endTime != 0){
return endTime + Constant.UPLOAD_VIDEO_TIME;
}
return null;
}
}
@Data
@ApiModel("查看裁判分配信息")
public static class QueryJudgment {
@ApiModelProperty("项目id")
private Long projectId;
@ApiModelProperty("项目名")
private String projectName;
@ApiModelProperty("项目开始时间")
private Long startTime;
@ApiModelProperty("项目结束时间")
private Long endTime;
@ApiModelProperty("项目下的场地")
private List<ProjectSite> siteList;
}
@Data
@ApiModel("项目下的场地信息")
public static class ProjectSite {
@ApiModelProperty("场地编号")
private int siteNum;
@ApiModelProperty("场地下的裁判")
private List<SiteJudgment> judgmentList;
}
@Data
@ApiModel("场地下的裁判信息")
public static class SiteJudgment {
@ApiModelProperty("裁判编号")
private int judgmentNum;
@ApiModelProperty("裁判名字")
private String judgmentName;
@ApiModelProperty("裁判手机号")
private String judgmentPhone;
@ApiModelProperty("备注")
private String remark;
}
}

46
mt/src/main/java/com/ccsens/mt/bean/vo/ScoreVo.java

@ -179,4 +179,50 @@ public class ScoreVo {
// @ApiModelProperty("平均分")
// private BigDecimal aveScore;
// }
@Data
@ApiModel("返回项目配置信息")
public static class CompeteScore{
@ApiModelProperty("参赛id")
private Long projectId;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("参赛队伍")
private String companyName;
@ApiModelProperty("得分")
private String score;
}
@Data
@ApiModel("返回项目配置信息")
public static class CountScoreCurrentSite{
@ApiModelProperty("项目名")
private String projectName;
@ApiModelProperty("组别")
private String groupName;
@ApiModelProperty("团队名")
private String companyName;
@ApiModelProperty("场次")
private int competeOrder;
@ApiModelProperty("场地")
private int site;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("主裁打分")
private BigDecimal mainScore;
@ApiModelProperty("主裁1打分")
private BigDecimal mainOneScore;
@ApiModelProperty("主裁2打分")
private BigDecimal mainTwoScore;
@ApiModelProperty("应得分")
private BigDecimal shouldScore;
@ApiModelProperty("扣除次数")
private BigDecimal deductTime;
@ApiModelProperty("扣除原因")
private String deductReason;
@ApiModelProperty("最终成绩")
private BigDecimal finalScore;
}
}

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

@ -165,6 +165,12 @@ public class TableVo {
return 0;
}
public Long getStartTime(){
return startTime == 0 ? null : startTime;
}
public Long getEndTime(){
return endTime == 0 ? null : endTime;
}
public int getTimeSum(){
if(duration != 0 && games != 0) {
return duration * games;

18
mt/src/main/java/com/ccsens/mt/persist/dao/CompeteJudgmentDao.java

@ -0,0 +1,18 @@
package com.ccsens.mt.persist.dao;
import com.ccsens.mt.bean.vo.ProvinceCompeteVo;
import com.ccsens.mt.persist.mapper.CompeteJudgmentMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface CompeteJudgmentDao extends CompeteJudgmentMapper {
/**
* 查找裁判分配信息
* @param competeTimeId 大赛id
* @return
*/
List<ProvinceCompeteVo.QueryJudgment> queryJudgment(@Param("competeTimeId") Long competeTimeId);
}

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

@ -78,4 +78,12 @@ public interface CompetePlayerDao extends CompetePlayerMapper {
CompeteGroup selectBySexAndRemark(int gender, int groupRemark);
List<CompeteExcelVo.TeamOrderPlayer> selectSinglePlayerByProjectId(Long id);
/**
* 在这个比赛中是否注册查找此身份证是否被注册
* @param type 比赛类型
* @param idCard 身份证
* @return
*/
int selectJoinNumByIdCard(@Param("type")int type, @Param("idCard")String idCard);
}

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

@ -2,6 +2,7 @@ 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.ProvinceCompeteVo;
import com.ccsens.mt.bean.vo.TableVo;
import com.ccsens.mt.persist.mapper.CompeteProjectConfigMapper;
import org.apache.ibatis.annotations.Param;
@ -18,6 +19,8 @@ public interface CompeteProjectConfigDao extends CompeteProjectConfigMapper {
List<TableVo.SchedulePlanDetail> selectDetail ();
List<TableVo.CompeteJoin> selectSingle (@Param("competeTimeId") Long competeTimeId,@Param("projectId") Long projectId,@Param("groupId") Long groupId,@Param("companyId") Long companyId,@Param("name") String name,@Param("idCard") String idCard);
List<TableVo.CompeteJoin> selectGroup (@Param("competeTimeId") Long competeTimeId,@Param("projectId") Long projectId,@Param("groupId") Long groupId,@Param("companyId") Long companyId,@Param("name") String name,@Param("idCard") String idCard);
CompeteProjectConfig selectStartTime(@Param("projectId") Long projectId);
/**
* 查询所有项目配置信息
@ -25,4 +28,12 @@ public interface CompeteProjectConfigDao extends CompeteProjectConfigMapper {
* @return 返回所有比赛日程配置信息
*/
List<TableVo.CompeteProjectConfig> queryProjectConfig(@Param("type")int type);
/**
* 查看该学校选手列表按出场顺序(手机上上传视频用)
* @param companyId 单位id
* @param projectId 项目di
* @return 返回选手列表
*/
List<ProvinceCompeteVo.StartOrderByCompany> queryStartOrderByCompany(@Param("companyId")Long companyId, @Param("projectId")Long projectId, @Param("competeTimeId")Long competeTimeId);
}

27
mt/src/main/java/com/ccsens/mt/persist/dao/CompeteScoreDao.java

@ -0,0 +1,27 @@
package com.ccsens.mt.persist.dao;
import com.ccsens.mt.bean.po.CompeteCoach;
import com.ccsens.mt.bean.po.CompeteCompany;
import com.ccsens.mt.bean.vo.CompeteExcelVo;
import com.ccsens.mt.bean.vo.CompeteVo;
import com.ccsens.mt.bean.vo.ProvinceCompeteVo;
import com.ccsens.mt.bean.vo.ScoreVo;
import com.ccsens.mt.persist.mapper.CompeteCompanyMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author
*/
@Repository
public interface CompeteScoreDao {
List<ScoreVo.CompeteScore> selectSingleCount (@Param("projectId") long projectId,@Param("competeGroupId") long competeGroupId);
List<ScoreVo.CompeteScore> selectGroupCount (@Param("projectId") long projectId,@Param("competeGroupId") long competeGroupId);
List<ScoreVo.CompeteScore> selectSingleVarity(@Param("projectId") long projectId,@Param("competeGroupId") long competeGroupId);
List<ScoreVo.CompeteScore> selectGroupVarity (@Param("projectId") long projectId,@Param("competeGroupId") long competeGroupId);
List<ScoreVo.CountScoreCurrentSite> selectCountScoreCurrentSite (@Param("siteId") long siteId);
}

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

@ -16,10 +16,7 @@ import com.ccsens.mt.bean.po.*;
import com.ccsens.mt.bean.vo.CompeteVo;
import com.ccsens.mt.bean.vo.ScoreVo;
import com.ccsens.mt.bean.vo.TableVo;
import com.ccsens.mt.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.mt.util.Constant;
import com.ccsens.util.*;
@ -41,8 +38,14 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.*;
import java.math.BigDecimal;
import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author
*/
@ -180,6 +183,12 @@ public class CompeteService implements ICompeteService {
return null;
}
private CompeteProjectConfigDao competeProjectConfigDao;
@Resource
private CompeteScoreDao competeScoreDao;
@Resource
private CompeteCountScoreMapper competeCountScoreMapper;
/**
* 查看第几届
*/
@ -1010,7 +1019,6 @@ public class CompeteService implements ICompeteService {
/**
* 验证数据的正确性存入数据库
*/
@ -1123,8 +1131,116 @@ public class CompeteService implements ICompeteService {
}
@Override
public List<CompeteVo.CountScore> countScore(CompeteDto.CompeteTime params) {
List<CompeteVo.CountScore> countScoreList = 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) {
long projectId = competeProject.getId();
CompeteProjectConfig competeProjectConfig = competeProjectConfigDao.selectStartTime(projectId);
if (ObjectUtil.isNotNull(competeProjectConfig)) {
CompeteVo.CountScore countScore = new CompeteVo.CountScore();
countScore.setId(competeProject.getId());
countScore.setProjectName(competeProject.getName());
countScore.setStartTime(competeProjectConfig.getStartTime());
//状态判断
long currentTime = System.currentTimeMillis();
if (currentTime < competeProjectConfig.getStartTime()) {
//未开始0-未开始
countScore.setStatus(0);
}
if (currentTime > competeProjectConfig.getStartTime() && competeProjectConfig.getEndTime() > currentTime) {
//进行中1-进行中
countScore.setStatus(1);
}
if (competeProjectConfig.getEndTime() < currentTime) {
//已经结束-结束
countScore.setStatus(2);
}
countScoreList.add(countScore);
}
}
return countScoreList;
}
@Override
public List<ScoreVo.CompeteScore> countScoreDetail(CompeteDto.ProjectIdAndGroupId params) {
List<ScoreVo.CompeteScore> competeScoreList = new ArrayList<>();
//判断比赛类型
long ProjectId = params.getProjectId();
long competeGroupId = params.getCompeteGroupId();
CompeteProject competeProject = competeProjectMapper.selectByPrimaryKey(ProjectId);
if (ObjectUtil.isNotNull(competeProject)){
int team = competeProject.getTeam();
long fatherId = competeProject.getParentId();
//如果比赛是个人计数赛
if (fatherId == 2001 && team == 0){
List<ScoreVo.CompeteScore> competeScores = competeScoreDao.selectSingleCount(ProjectId, competeGroupId);
competeScoreList.addAll(competeScores);
}
//如果是个人花样赛
if (fatherId == 2002 && team == 0){
List<ScoreVo.CompeteScore> competeScores = competeScoreDao.selectSingleVarity(ProjectId, competeGroupId);
competeScoreList.addAll(competeScores);
}
//如果是团队计数赛
if (fatherId == 2001 && team == 1){
List<ScoreVo.CompeteScore> competeScores = competeScoreDao.selectGroupCount(ProjectId, competeGroupId);
competeScoreList.addAll(competeScores);
}
//如果是团队花样赛
if (fatherId == 2002 && team == 1){
List<ScoreVo.CompeteScore> competeScores = competeScoreDao.selectGroupVarity(ProjectId, competeGroupId);
competeScoreList.addAll(competeScores);
}
}
return competeScoreList;
}
@Override
public List<ScoreVo.CountScoreCurrentSite> countScoreCurrentSite(CompeteDto.CompeteSite params) {
int siteId = params.getSiteId();
List<ScoreVo.CountScoreCurrentSite> countScoreCurrentSites = competeScoreDao.selectCountScoreCurrentSite(siteId);
return countScoreCurrentSites;
}
@Override
public void submitScore(CompeteDto.SubmitScore params) {
long competeTimeId = params.getCompeteTimeId();
long projectId = params.getProjectId();
long siteOrderId = params.getSiteOrderId();
CompeteCountScoreExample competeCountScoreExample = new CompeteCountScoreExample();
competeCountScoreExample.createCriteria().
andCompeteTimeIdEqualTo(competeTimeId).
andProjectIdEqualTo(projectId).andSiteOrderIdEqualTo(siteOrderId).
andSiteOrderIdEqualTo(params.getSiteOrderId()).
andChiefJudgmentScoreEqualTo(params.getMainScore()).
andJudgmentAScoreEqualTo(params.getMainOneScore()).
andJudgmentBScore2EqualTo(params.getMainTwoScore()).
andShouldTimesEqualTo(params.getShouldScore()).
andDeductTimesEqualTo(params.getDeductTime()).
andDeductCauseEqualTo(params.getDeductReason()).
andFinalScoreEqualTo(params.getFinalScore()).
andIdEqualTo(snowflake.nextId());
CompeteCountScore competeCountScore = new CompeteCountScore();
competeCountScore.setCompeteTimeId(competeTimeId);
competeCountScore.setProjectId(projectId);
competeCountScore.setSiteOrderId(siteOrderId);
competeCountScore.setChiefJudgmentScore(params.getMainScore());
competeCountScore.setJudgmentAScore(params.getMainOneScore());
competeCountScore.setJudgmentBScore2(params.getMainTwoScore());
competeCountScore.setShouldTimes(params.getShouldScore());
competeCountScore.setDeductTimes(params.getDeductTime());
competeCountScore.setDeductCause(params.getDeductReason());
competeCountScore.setFinalScore(params.getFinalScore());
competeCountScore.setId(snowflake.nextId());
competeCountScoreMapper.insert(competeCountScore);
}
}

225
mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java

@ -3,13 +3,19 @@ package com.ccsens.mt.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.cloudutil.bean.tall.dto.TallTaskDto;
import com.ccsens.cloudutil.bean.tall.vo.TaskVo;
import com.ccsens.cloudutil.feign.TallFeignClient;
import com.ccsens.mt.bean.dto.CompeteDto;
import com.ccsens.mt.bean.dto.ProvinceCompeteDto;
import com.ccsens.mt.bean.po.CompeteProject;
import com.ccsens.mt.bean.po.CompeteProjectConfig;
import com.ccsens.mt.bean.po.CompeteProjectConfigExample;
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.CompeteProjectConfigDao;
import com.ccsens.mt.persist.dao.CompeteProjectDao;
import com.ccsens.mt.persist.dao.*;
import com.ccsens.mt.persist.mapper.CompeteProjectPlayerMapper;
import com.ccsens.mt.persist.mapper.CompeteStartOrderMapper;
import com.ccsens.mt.util.Constant;
import com.ccsens.util.JsonResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -32,14 +38,42 @@ public class CompeteTaskService implements ICompeteTaskService{
@Resource
private CompeteProjectDao competeProjectDao;
@Resource
private CompeteTimeDao competeTimeDao;
@Resource
private CompeteProjectPlayerMapper projectPlayerMapper;
@Resource
private Snowflake snowflake;
@Resource
private CompeteStartOrderMapper startOrderMapper;
@Resource
private CompeteTeamDao competeTeamDao;
@Resource
private TallFeignClient tallFeignClient;
@Resource
private CompeteJudgmentDao competeJudgmentDao;
/**
* 查看项目的日程配置信息
*/
@Override
public List<TableVo.CompeteProjectConfig> updateCompeteProjectConfig(List<ProvinceCompeteDto.UpdateCompeteTask> param) {
public List<TableVo.CompeteProjectConfig> queryCompeteConfig(CompeteDto.CompeteTime param) {
CompeteTime competeTime = competeTimeDao.selectByPrimaryKey(param.getCompeteTimeId());
List<TableVo.CompeteProjectConfig> competeProjectConfigList = new ArrayList<>();
if(ObjectUtil.isNotNull(competeTime)) {
competeProjectConfigList = projectConfigDao.queryProjectConfig(competeTime.getType());
}
return competeProjectConfigList;
}
/**
* 修改项目的日程配置
*/
@Override
public List<TableVo.CompeteProjectConfig> updateCompeteProjectConfig(ProvinceCompeteDto.UpdateCompeteProjectConfig param) {
//获取比赛类型
AtomicInteger type = new AtomicInteger();
if(CollectionUtil.isNotEmpty(param)){
param.forEach(projectConfig -> {
if(CollectionUtil.isNotEmpty(param.getUpdateCompeteTaskList())){
param.getUpdateCompeteTaskList().forEach(projectConfig -> {
//获取项目
CompeteProject project = competeProjectDao.selectByPrimaryKey(projectConfig.getProjectId());
if(ObjectUtil.isNotNull(project)){
@ -70,8 +104,183 @@ public class CompeteTaskService implements ICompeteTaskService{
projectConfigDao.insertSelective(competeProjectConfig);
}
// TODO 生成出场顺序表,存入数据库。在tall内添加对应的任务
setStartOrder(competeProjectConfig,param.getProjectId());
});
}
return projectConfigDao.queryProjectConfig(type.get());
}
/**
* 修改配置时生成出场顺序(先删除之前的数据)
*/
public void setStartOrder(CompeteProjectConfig projectConfig, Long tallProjectId) {
if (ObjectUtil.isNotNull(projectConfig)) {
//查找项目
CompeteProject project = competeProjectDao.selectByPrimaryKey(projectConfig.getProjectId());
if (ObjectUtil.isNotNull(project)) {
//判断是团队还是个人项目
if (project.getTeam() == 0) {
//个人项目查找所有参赛信息
CompeteProjectPlayerExample projectPlayerExample = new CompeteProjectPlayerExample();
projectPlayerExample.createCriteria().andProjectIdEqualTo(project.getId());
List<CompeteProjectPlayer> projectPlayerList = projectPlayerMapper.selectByExample(projectPlayerExample);
if (CollectionUtil.isNotEmpty(projectPlayerList)) {
//计算场次
int order = (int) Math.ceil(projectConfig.getSiteNum() / projectPlayerList.size());
//计算每个场次时间
long projectStartTime = projectConfig.getStartTime() + Constant.UPLOAD_VIDEO_TIME;
long orderTime = (long) Math.floor((projectConfig.getEndTime() - projectStartTime) / order);
//场次
int competeOrder = 1;
//场地
int site = 1;
for (CompeteProjectPlayer projectPlayer : projectPlayerList) {
CompeteStartOrderExample startOrderExample = new CompeteStartOrderExample();
startOrderExample.createCriteria().andPlayerIdEqualTo(projectPlayer.getId()).andProjectIdEqualTo(project.getId());
List<CompeteStartOrder> startOrderList = startOrderMapper.selectByExample(startOrderExample);
if(CollectionUtil.isNotEmpty(startOrderList)){
CompeteStartOrder competeStartOrder = startOrderList.get(0);
competeStartOrder.setSite((byte) site);
competeStartOrder.setCompeteOrder((byte) competeOrder);
if(orderTime > 0 && (competeStartOrder.getStartTime() == projectStartTime || competeStartOrder.getEndTime() == projectStartTime + orderTime)){
competeStartOrder.setStartTime(projectStartTime);
competeStartOrder.setEndTime(projectStartTime + orderTime);
// TODO 修改tall的任务
TallTaskDto.UpdateTaskInfo updateTaskInfo = new TallTaskDto.UpdateTaskInfo();
updateTaskInfo.setId(competeStartOrder.getId());
updateTaskInfo.setBeginTime(competeStartOrder.getId());
updateTaskInfo.setBeginTime(competeStartOrder.getEndTime());
tallFeignClient.updataTask(updateTaskInfo);
}
startOrderMapper.updateByPrimaryKeySelective(competeStartOrder);
}else{
//添加tall的任务
Long taskId = null;
TallTaskDto.AddTask addTask = new TallTaskDto.AddTask();
addTask.setProjectId(tallProjectId);
addTask.setTaskName(project.getName() + competeOrder +"-" + site);
addTask.setBeginTime(projectStartTime);
addTask.setEndTime(projectStartTime + orderTime);
addTask.setExecutorId(1L);
JsonResponse<TaskVo.NormalTask> normalTaskJsonResponse = tallFeignClient.saveTask(addTask);
if (ObjectUtil.isNotNull(normalTaskJsonResponse)) {
TaskVo.NormalTask normalTask = normalTaskJsonResponse.getData();
if (ObjectUtil.isNotNull(normalTask)) {
taskId = normalTask.getDetailId();
}
}
//添加出场顺序信息
CompeteStartOrder competeStartOrder = new CompeteStartOrder();
competeStartOrder.setId(snowflake.nextId());
competeStartOrder.setProjectId(project.getId());
competeStartOrder.setPlayerId(projectPlayer.getId());
competeStartOrder.setSite((byte) site);
competeStartOrder.setTeam((byte) 0);
competeStartOrder.setCompeteOrder((byte) competeOrder);
competeStartOrder.setTaskId(taskId);
competeStartOrder.setStartTime(projectStartTime);
competeStartOrder.setEndTime(projectStartTime + orderTime);
startOrderMapper.insertSelective(competeStartOrder);
}
site++;
if(site > projectConfig.getSiteNum()){
site = 1;
competeOrder++;
projectStartTime += orderTime;
}
}
}
} else {
//团体项目查找所有参赛队伍
CompeteTeamExample teamExample = new CompeteTeamExample();
teamExample.createCriteria().andProjectIdEqualTo(project.getId());
List<CompeteTeam> teamList = competeTeamDao.selectByExample(teamExample);
if(CollectionUtil.isNotEmpty(teamList)){
//计算场次
int order = (int) Math.ceil(projectConfig.getSiteNum() / teamList.size());
//计算每个场次时间
long projectStartTime = projectConfig.getStartTime() + Constant.UPLOAD_VIDEO_TIME;
long orderTime = (long) Math.floor((projectConfig.getEndTime() - projectStartTime) / order);
//场次
int competeOrder = 1;
//场地
int site = 1;
for (CompeteTeam competeTeam : teamList) {
CompeteStartOrderExample startOrderExample = new CompeteStartOrderExample();
startOrderExample.createCriteria().andPlayerIdEqualTo(competeTeam.getId()).andProjectIdEqualTo(project.getId());
List<CompeteStartOrder> startOrderList = startOrderMapper.selectByExample(startOrderExample);
if(CollectionUtil.isNotEmpty(startOrderList)){
CompeteStartOrder competeStartOrder = startOrderList.get(0);
competeStartOrder.setSite((byte) site);
competeStartOrder.setCompeteOrder((byte) competeOrder);
if(orderTime > 0 && (competeStartOrder.getStartTime() == projectStartTime || competeStartOrder.getEndTime() == projectStartTime + orderTime)){
competeStartOrder.setStartTime(projectStartTime);
competeStartOrder.setEndTime(projectStartTime + orderTime);
// TODO 修改tall的任务
TallTaskDto.UpdateTaskInfo updateTaskInfo = new TallTaskDto.UpdateTaskInfo();
updateTaskInfo.setId(competeStartOrder.getId());
updateTaskInfo.setBeginTime(competeStartOrder.getId());
updateTaskInfo.setBeginTime(competeStartOrder.getEndTime());
tallFeignClient.updataTask(updateTaskInfo);
}
startOrderMapper.updateByPrimaryKeySelective(competeStartOrder);
}else{
//添加tall的任务
Long taskId = null;
TallTaskDto.AddTask addTask = new TallTaskDto.AddTask();
addTask.setProjectId(tallProjectId);
addTask.setTaskName(project.getName() + competeOrder +"-" + site);
addTask.setBeginTime(projectStartTime);
addTask.setEndTime(projectStartTime + orderTime);
addTask.setExecutorId(1L);
JsonResponse<TaskVo.NormalTask> normalTaskJsonResponse = tallFeignClient.saveTask(addTask);
if (ObjectUtil.isNotNull(normalTaskJsonResponse)) {
TaskVo.NormalTask normalTask = normalTaskJsonResponse.getData();
if (ObjectUtil.isNotNull(normalTask)) {
taskId = normalTask.getDetailId();
}
}
//添加出场顺序信息
CompeteStartOrder competeStartOrder = new CompeteStartOrder();
competeStartOrder.setId(snowflake.nextId());
competeStartOrder.setProjectId(project.getId());
competeStartOrder.setPlayerId(competeTeam.getId());
competeStartOrder.setSite((byte) site);
competeStartOrder.setTeam((byte) 0);
competeStartOrder.setCompeteOrder((byte) competeOrder);
competeStartOrder.setTaskId(taskId);
competeStartOrder.setStartTime(projectStartTime);
competeStartOrder.setEndTime(projectStartTime + orderTime);
startOrderMapper.insertSelective(competeStartOrder);
}
site++;
if(site > projectConfig.getSiteNum()){
site = 1;
competeOrder++;
projectStartTime += orderTime;
}
}
}
}
}
}
}
/**
* 手机上查看选手出场顺序
*/
@Override
public List<ProvinceCompeteVo.StartOrderByCompany> queryStartOrderByCompany(ProvinceCompeteDto.QueryStartOrderByCompany param) {
return projectConfigDao.queryStartOrderByCompany(param.getCompanyId(),param.getProjectId(),param.getCompeteTimeId());
}
/**
* 查看裁判分配信息
*/
@Override
public List<ProvinceCompeteVo.QueryJudgment> queryJudgment(CompeteDto.CompeteTime param) {
return competeJudgmentDao.queryJudgment(param.getCompeteTimeId());
}
}

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

@ -3,6 +3,7 @@ package com.ccsens.mt.service;
import com.ccsens.mt.bean.dto.CompeteDto;
import com.ccsens.mt.bean.dto.ScoreDto;
import com.ccsens.mt.bean.vo.CompeteVo;
import com.ccsens.mt.bean.vo.ScoreVo;
import com.ccsens.util.bean.dto.QueryDto;
import java.io.FileNotFoundException;
@ -150,10 +151,42 @@ public interface ICompeteService {
List<CompeteVo.FailPlayerInfo> signupImport(String path) throws FileNotFoundException, Exception;
void submitOrderList(ScoreDto.InformationSubmitted param);
List<CompeteVo.TotalScoreDisplay> showResult(ScoreDto.ShowResult param);
/**
* 项目开始时间和比赛状态
* @param params 大赛id和比赛项目id
* @return 返回项目开始时间和比赛状态
*/
List<CompeteVo.CountScore> countScore(CompeteDto.CompeteTime params) ;
/**
* 得分详情
* @param params 大赛id和比赛项目id
* @return 返回项目开始时间和比赛状态
*/
List<ScoreVo.CompeteScore> countScoreDetail(CompeteDto.ProjectIdAndGroupId params) ;
/**
* 得分详情
* @param params 场次id
* @return 返回项目开始时间和比赛状态
*/
List<ScoreVo.CountScoreCurrentSite> countScoreCurrentSite(CompeteDto.CompeteSite params) ;
/**
* 提交得分
* @param params 场次id
* @return 返回项目开始时间和比赛状态
*/
void submitScore(CompeteDto.SubmitScore params) ;
}

25
mt/src/main/java/com/ccsens/mt/service/ICompeteTaskService.java

@ -1,6 +1,8 @@
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.ProvinceCompeteVo;
import com.ccsens.mt.bean.vo.TableVo;
import java.util.List;
@ -14,5 +16,26 @@ public interface ICompeteTaskService {
* @param param
* @return
*/
List<TableVo.CompeteProjectConfig> updateCompeteProjectConfig(List<ProvinceCompeteDto.UpdateCompeteTask> param);
List<TableVo.CompeteProjectConfig> updateCompeteProjectConfig(ProvinceCompeteDto.UpdateCompeteProjectConfig param);
/**
* 查找所有项目的日程配置
* @param param
* @return
*/
List<TableVo.CompeteProjectConfig> queryCompeteConfig(CompeteDto.CompeteTime param);
/**
* 查找该单位下参加该项目的选手的出场顺序信息
* @param param
* @return
*/
List<ProvinceCompeteVo.StartOrderByCompany> queryStartOrderByCompany(ProvinceCompeteDto.QueryStartOrderByCompany param);
/**
* 查看所有项目下的裁判分配信息
* @param param
* @return
*/
List<ProvinceCompeteVo.QueryJudgment> queryJudgment(CompeteDto.CompeteTime param);
}

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

@ -114,6 +114,16 @@ public class ProvinceService implements IProvinceService {
*/
@Override
public void saveOrUpdatePlayer(ProvinceCompeteDto.PlayerInfo param, Long userId) {
int type = 0;
if(ObjectUtil.isNotNull(param.getCompeteId())){
CompeteCompany company = competeCompanyDao.selectByPrimaryKey(param.getCompeteId());
if(ObjectUtil.isNull(company)) {
throw new BaseException(CodeEnum.NOT_COMPANY);
}
type = company.getType();
}else {
throw new BaseException(CodeEnum.NOT_COMPANY);
}
//判断选手id是否为空
if(ObjectUtil.isNull(param.getPlayerId())){
//id为空,新加一个选手
@ -121,13 +131,17 @@ public class ProvinceService implements IProvinceService {
player.setId(snowflake.nextId());
player.setName(param.getPlayerName());
if(ObjectUtil.isNull(param.getCompeteId())){ throw new BaseException(CodeEnum.NOT_COMPANY); }
//身份证不能为空,且正确
if(StrUtil.isEmpty(param.getIdCard()) || !IdcardUtil.isValidCard(param.getIdCard())){throw new BaseException(CodeEnum.ID_CARD_ERROR);}
//是否已注册
CompetePlayerExample competePlayerExample = new CompetePlayerExample();
competePlayerExample.createCriteria().andIdCardEqualTo(param.getIdCard());
if(competePlayerDao.countByExample(competePlayerExample) != 0){
int idCardNum = competePlayerDao.selectJoinNumByIdCard(type,param.getIdCard());
// CompetePlayerExample competePlayerExample = new CompetePlayerExample();
// competePlayerExample.createCriteria().andIdCardEqualTo(param.getIdCard());
// if(competePlayerDao.countByExample(competePlayerExample) != 0){
// throw new BaseException(CodeEnum.ID_CARD_ALREADY);
// }
if(idCardNum > 0){
throw new BaseException(CodeEnum.ID_CARD_ALREADY);
}
//验证性别是否正确
@ -186,9 +200,14 @@ public class ProvinceService implements IProvinceService {
//身份证正确
if(!IdcardUtil.isValidCard(param.getIdCard())){throw new BaseException(CodeEnum.ID_CARD_ERROR);}
//是否已注册
CompetePlayerExample competePlayerExample = new CompetePlayerExample();
competePlayerExample.createCriteria().andIdCardEqualTo(param.getIdCard()).andIdNotEqualTo(param.getPlayerId());
if(competePlayerDao.countByExample(competePlayerExample) != 0){throw new BaseException(CodeEnum.ID_CARD_ALREADY);}
//是否已注册
int idCardNum = competePlayerDao.selectJoinNumByIdCard(type,param.getIdCard());
if(idCardNum > 0){
throw new BaseException(CodeEnum.ID_CARD_ALREADY);
}
// CompetePlayerExample competePlayerExample = new CompetePlayerExample();
// competePlayerExample.createCriteria().andIdCardEqualTo(param.getIdCard()).andIdNotEqualTo(param.getPlayerId());
// if(competePlayerDao.countByExample(competePlayerExample) != 0){throw new BaseException(CodeEnum.ID_CARD_ALREADY);}
//验证性别是否正确
int gender = IdcardUtil.getGenderByIdCard(param.getIdCard());
if(gender != param.getGender()){

5
mt/src/main/java/com/ccsens/mt/util/Constant.java

@ -46,6 +46,11 @@ public class Constant {
* 速度通级赛id
*/
public static final long CERTIFICATE = 2018;
/**
* 每个比赛项目留给选手上传视频的时间(暂定半个小时可以修改)
*/
public static final long UPLOAD_VIDEO_TIME = 30 * 60 * 1000;
public final static class Compete{
public final static byte PROJECT_JOIN_RULE_GROUP_LIMIT = 0;

44
mt/src/main/resources/mapper_dao/CompeteJudgmentDao.xml

@ -0,0 +1,44 @@
<?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.CompeteJudgmentDao">
<resultMap id="queryJudgment" type="com.ccsens.mt.bean.vo.ProvinceCompeteVo$QueryJudgment">
<id column="projectId" property="projectId"/>
<result column="projectName" property="projectName"/>
<result column="startTime" property="startTime"/>
<result column="endTime" property="endTime"/>
<collection property="siteList" ofType="com.ccsens.mt.bean.vo.ProvinceCompeteVo$ProjectSite">
<id column="siteNum" property="siteNum"/>
<collection property="judgmentList" ofType="com.ccsens.mt.bean.vo.ProvinceCompeteVo$SiteJudgment">
<id column="judgmentNum" property="judgmentNum"/>
<result column="judgmentName" property="judgmentName"/>
<result column="judgmentPhone" property="judgmentPhone"/>
<result column="remark" property="remark"/>
</collection>
</collection>
</resultMap>
<select id="queryJudgment" resultMap="queryJudgment">
SELECT
p.id as projectId,
p.`name` as projectName,
pc.start_time as startTime,
pc.end_time as endTime,
j.site as siteNum,
j.chief_judgment as judgmentNum,
j.`name` as judgmentName,
j.phone as judgmentPhone,
j.remark as remark
FROM
t_compete_project p LEFT JOIN t_compete_time ct on p.type = ct.type
LEFT JOIN t_compete_project_config pc on p.id = pc.project_id
LEFT JOIN t_compete_judgment j on j.project_id = p.id
WHERE
ct.id = #{competeTimeId}
and p.`level` = 2
and p.rec_status = 0
and (j.rec_status = 0 or j.rec_status is null)
</select>
</mapper>

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

@ -300,4 +300,14 @@
and tcc.rec_status=0
and tcg.rec_status=0
</select>
<select id="selectJoinNumByIdCard" resultType="java.lang.Integer">
select
count(p.id)
from
t_compete_player p left join t_compete_company c on p.company_id = c.id
where
p.id_card = #{idCard}
and
c.type = #{type}
</select>
</mapper>

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

@ -24,6 +24,12 @@
FROM t_compete_project_config a , t_compete_project b
where a.project_id = b.id
</select>
<select id="selectStartTime" resultType="com.ccsens.mt.bean.po.CompeteProjectConfig" parameterType="java.util.Map">
SELECT *
FROM t_compete_project_config
where project_id = #{projectId}
</select>
<select id="selectSingle" resultType="com.ccsens.mt.bean.vo.TableVo$CompeteJoin" parameterType="java.util.Map">
SELECT
tcpro.id as projectId,
@ -160,6 +166,63 @@
and p.rec_status = 0
GROUP BY p.id
</select>
<select id="queryStartOrderByCompany" resultType="com.ccsens.mt.bean.vo.ProvinceCompeteVo$StartOrderByCompany">
SELECT
so.id as startOrderId,
so.compete_order as competeOrder,
so.site as site,
so.start_time as startTime,
so.end_time as endTime,
pr.id as projectId,
pr.`name` as projectName,
if(pr.team = 0,a.plName,b.plName) as playerName,
if(pr.team = 0,a.groupName,b.groupName) as groupName
from
t_compete_start_order so
LEFT JOIN t_compete_project pr on so.project_id = pr.id
LEFT JOIN t_compete_time ti on pr.type = ti.type
LEFT JOIN
(
SELECT
pp.id as ppId,
pl.`name` as plName,
g.group_name as groupName
FROM
t_compete_project_player pp LEFT JOIN t_compete_player pl on pp.player_id = pl.id
LEFT JOIN t_compete_group g on g.id = pl.compete_group_id
WHERE
pl.company_id = #{companyId}
and pp.rec_status = 0
and pl.rec_status = 0
)a on a.ppId = so.player_id
LEFT JOIN
(
SELECT
t.id as teamId,
GROUP_CONCAT(pl.`name` separator '、') as plName,
g.group_name as groupName
FROM
t_compete_team t LEFT JOIN t_compete_team_member m on t.id = m.compete_team_id
LEFT JOIN t_compete_player pl on m.player_id = pl.id
LEFT JOIN t_compete_group g on t.group_remark = g.group_remark and t.gender_group = g.sex
WHERE
t.company_id = #{companyId}
and t.rec_status = 0
and m.rec_status = 0
and pl.rec_status = 0
GROUP BY t.id
)b on b.teamId = so.player_id
WHERE
<if test="projectId != null">
pr.id = #{projectId}
and
</if>
ti.id = #{competeTimeId}
and(a.ppId is not null or b.teamId is not null)
and so.rec_status = 0
and pr.rec_status = 0
ORDER BY so.start_time
</select>
</mapper>

109
mt/src/main/resources/mapper_dao/CompeteScoreDao.xml

@ -0,0 +1,109 @@
<?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.CompeteScoreDao">
<select id="selectSingleCount" resultType="com.ccsens.mt.bean.vo.ScoreVo$CompeteScore" parameterType="java.util.Map">
SELECT
tcp.`name` as name,
tcc.`name` as companyName,
tccs.final_score as score
from
t_compete_project_player tcpp LEFT JOIN t_compete_player tcp ON tcpp.player_id = tcp.id
LEFT JOIN t_compete_start_order tcso on tcso.player_id = tcpp.player_id
LEFT JOIN t_compete_count_score tccs on tccs.site_order_id = tcso.id
LEFT JOIN t_compete_company tcc on tcc.id = tcp.company_id
WHERE tcpp.rec_status = 0
and tcp.rec_status=0
and tcso.rec_status=0
and tccs.rec_status=0
and tcc.rec_status = 0
and tcpp.project_id= #{projectId}
and tcpp.compete_group_id =#{competeGroupId}
GROUP BY tccs.final_score
</select>
<select id="selectGroupCount" resultType="com.ccsens.mt.bean.vo.ScoreVo$CompeteScore" parameterType="java.util.Map">
SELECT
tccs.final_score as score,
tcc.`name` as companyName
from
t_compete_team tct LEFT JOIN t_compete_start_order tcso ON tct.id = tcso.player_id
LEFT JOIN t_compete_count_score tccs ON tccs.site_order_id = tcso.id
LEFT JOIN t_compete_company tcc on tcc.id = tct.company_id
WHERE tct.rec_status = 0
and tcso.rec_status=0
and tccs.rec_status =0
and and tct.project_id= #{projectId}
and tct.compete_group_id = #{competeGroupId}
GROUP BY tccs.final_score;
</select>
<select id="selectSingleVarity" resultType="com.ccsens.mt.bean.vo.ScoreVo$CompeteScore" parameterType="java.util.Map">
SELECT
tcp.`name` as name,
tcc.`name` as companyName,
tcvs.score as score
from
t_compete_project_player tcpp LEFT JOIN t_compete_player tcp ON tcpp.player_id = tcp.id
LEFT JOIN t_compete_start_order tcso on tcso.player_id = tcpp.player_id
LEFT JOIN t_compete_variety_score tcvs on tcvs.site_order_id = tcso.id
LEFT JOIN t_compete_company tcc on tcc.id = tcp.company_id
WHERE tcpp.rec_status = 0
and tcp.rec_status=0
and tcso.rec_status=0
and tcvs.rec_status=0
and tcc.rec_status = 0
and tcpp.project_id= #{projectId}
and tcpp.compete_group_id = #{competeGroupId}
GROUP BY tcvs.score
</select>
<select id="selectGroupVarity" resultType="com.ccsens.mt.bean.vo.ScoreVo$CompeteScore" parameterType="java.util.Map">
SELECT
tcc.`name` as companyName,
tcvs.score as score
from
t_compete_team tct LEFT JOIN t_compete_start_order tcso ON tct.id = tcso.player_id
LEFT JOIN t_compete_variety_score tcvs ON tcvs.site_order_id = tcso.id
LEFT JOIN t_compete_company tcc on tcc.id = tct.company_id
WHERE tct.rec_status = 0
and tcso.rec_status=0
and tcvs.rec_status =0
and and tct.project_id= #{projectId}
and tct.compete_group_id = #{competeGroupId}
GROUP BY tcvs.score
</select>
<select id="selectCountScoreCurrentSite" resultType="com.ccsens.mt.bean.vo.ScoreVo$CountScoreCurrentSite" parameterType="java.util.Map">
SELECT
tcp.`name` as name,
tcc.`name` as companyName,
tcg.group_name as groupName,
tcppro.`name` as projectName,
tcso.site as site,
tcso.compete_order as competeOrder,
tccs.chief_judgment_score as mainScore,
tccs.judgment_a_score as mainOneScore,
tccs.judgment_b_score2 as mainTwoScore,
tccs.should_times as shouldScore,
tccs.deduct_times as deductTime,
tccs.deduct_cause as deductReason,
tccs.final_score as finalScore
from
t_compete_start_order tcso LEFT JOIN t_compete_player tcp on tcso.player_id = tcp.id
LEFT JOIN t_compete_company tcc on tcc.id = tcp.company_id
LEFT JOIN t_compete_group tcg on tcg.id = tcp.compete_group_id
LEFT JOIN t_compete_project tcppro on tcppro.id = tcso.project_id
LEFT JOIN t_compete_count_score tccs on tccs.site_order_id = tcso.id
WHERE
tcso.rec_status=0
and tcp.rec_status=0
and tcc.rec_status=0
and tcg.rec_status=0
and tcppro.rec_status=0
and tccs.rec_status =0
and tcso.id =#{siteId}
</select>
</mapper>

58
mt/src/main/resources/mapper_raw/CompeteStartOrderMapper.xml

@ -11,6 +11,9 @@
<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="task_id" jdbcType="BIGINT" property="taskId" />
<result column="start_time" jdbcType="BIGINT" property="startTime" />
<result column="end_time" jdbcType="BIGINT" property="endTime" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@ -71,7 +74,8 @@
</where>
</sql>
<sql id="Base_Column_List">
id, project_id, player_id, team, compete_order, site, created_at, updated_at, rec_status
id, project_id, player_id, team, compete_order, site, created_at, updated_at, rec_status,
task_id, start_time, end_time
</sql>
<select id="selectByExample" parameterType="com.ccsens.mt.bean.po.CompeteStartOrderExample" resultMap="BaseResultMap">
select
@ -106,11 +110,13 @@
<insert id="insert" parameterType="com.ccsens.mt.bean.po.CompeteStartOrder">
insert into t_compete_start_order (id, project_id, player_id,
team, compete_order, site,
created_at, updated_at, rec_status
created_at, updated_at, rec_status,
task_id, start_time, end_time
)
values (#{id,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT}, #{playerId,jdbcType=BIGINT},
#{team,jdbcType=TINYINT}, #{competeOrder,jdbcType=TINYINT}, #{site,jdbcType=TINYINT},
#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}
#{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT},
#{taskId,jdbcType=BIGINT}, #{startTime,jdbcType=BIGINT}, #{endTime,jdbcType=BIGINT}
)
</insert>
<insert id="insertSelective" parameterType="com.ccsens.mt.bean.po.CompeteStartOrder">
@ -143,6 +149,15 @@
<if test="recStatus != null">
rec_status,
</if>
<if test="taskId != null">
task_id,
</if>
<if test="startTime != null">
start_time,
</if>
<if test="endTime != null">
end_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -172,6 +187,15 @@
<if test="recStatus != null">
#{recStatus,jdbcType=TINYINT},
</if>
<if test="taskId != null">
#{taskId,jdbcType=BIGINT},
</if>
<if test="startTime != null">
#{startTime,jdbcType=BIGINT},
</if>
<if test="endTime != null">
#{endTime,jdbcType=BIGINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.mt.bean.po.CompeteStartOrderExample" resultType="java.lang.Long">
@ -210,6 +234,15 @@
<if test="record.recStatus != null">
rec_status = #{record.recStatus,jdbcType=TINYINT},
</if>
<if test="record.taskId != null">
task_id = #{record.taskId,jdbcType=BIGINT},
</if>
<if test="record.startTime != null">
start_time = #{record.startTime,jdbcType=BIGINT},
</if>
<if test="record.endTime != null">
end_time = #{record.endTime,jdbcType=BIGINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -225,7 +258,10 @@
site = #{record.site,jdbcType=TINYINT},
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT}
rec_status = #{record.recStatus,jdbcType=TINYINT},
task_id = #{record.taskId,jdbcType=BIGINT},
start_time = #{record.startTime,jdbcType=BIGINT},
end_time = #{record.endTime,jdbcType=BIGINT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -257,6 +293,15 @@
<if test="recStatus != null">
rec_status = #{recStatus,jdbcType=TINYINT},
</if>
<if test="taskId != null">
task_id = #{taskId,jdbcType=BIGINT},
</if>
<if test="startTime != null">
start_time = #{startTime,jdbcType=BIGINT},
</if>
<if test="endTime != null">
end_time = #{endTime,jdbcType=BIGINT},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
@ -269,7 +314,10 @@
site = #{site,jdbcType=TINYINT},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}
rec_status = #{recStatus,jdbcType=TINYINT},
task_id = #{taskId,jdbcType=BIGINT},
start_time = #{startTime,jdbcType=BIGINT},
end_time = #{endTime,jdbcType=BIGINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

4
tall/src/main/java/com/ccsens/tall/web/TaskController.java

@ -247,8 +247,8 @@ public class TaskController {
@ApiImplicitParams({
@ApiImplicitParam(name = "taskId", value = "任务id", required = true, paramType = "query")
})
@RequestMapping(value = "change", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse updateTask(HttpServletRequest request,
@RequestMapping(value = "/change", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<TaskVo.NormalTask> updateTask(HttpServletRequest request,
@Validated @RequestBody TaskDto.UpdateTaskInfo updateTaskInfo) throws Exception {
Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject());
TaskVo.NormalTask taskInfo = taskDetailService.updateTaskInfo(currentUserId,updateTaskInfo);

2
tall/src/main/resources/application-dev.yml

@ -1,5 +1,5 @@
server:
port: 7070
port: 7030
servlet:
context-path: /v1.0
spring:

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

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

Loading…
Cancel
Save