Commit 47fc5642 authored by yangshuxing's avatar yangshuxing
parents 99675e23 2deb6056
......@@ -7,6 +7,8 @@ import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.util.List;
@Setter
@Getter
@Accessors(chain = true)
......@@ -14,6 +16,7 @@ import lombok.experimental.Accessors;
@ToString
public class CmptScoreRuleScoreInfo {
private int cmptScoreRuleScoreId;
private int cmptId;
private int ruleId;
private String markNo;
......@@ -23,6 +26,8 @@ public class CmptScoreRuleScoreInfo {
private Integer subsectionMileage;
private Integer checkStatus;
private Integer cmptPace;
//用户提交的成绩依据材料路径
private List<String> scoreFieldValueList;
private Integer isDelete;
private String insertTime;
private String updateTime;
......
......@@ -8,10 +8,9 @@ import java.util.List;
@Data
public class UserScore {
//报名iD
private String markNo;
//报名iD
private Integer cmptId;
private Integer roadId;
private Integer indexId;
......
......@@ -36,4 +36,11 @@ public interface CmptScoreFieldValueMapper {
void deleteFieldValueByRuleIdAndMarkNo(@Param("ruleId")Integer ruleId,@Param("markNo") String markNo);
List<CmptScoreFieldValue> getCmptScoreFieldValueByCmptIdAndMarkNoAndRuleId(@Param("cmptId")Integer cmptId,@Param("ruleId") int ruleId,@Param("markNo") String markNo);
/**
* 根据cmptId,ruleId获取提交的依据
* @param cmptId
* @param ruleId
* @return
*/
List<CmptScoreFieldValue> getCmptScoreFieldValueByCmptIdAndRuleId(@Param("cmptId")Integer cmptId,@Param("ruleId") int ruleId);
}
......@@ -47,4 +47,14 @@
on a.id = b.scoreFieldId and b.markNo=#{markNo} and b.isDelete=0 and b.rule_id=#{ruleId}
where a.cmpt_id=#{cmptId} and a.is_delete=0 order by a.id
</select>
<select id="getCmptScoreFieldValueByCmptIdAndRuleId" resultType="CmptScoreFieldValue">
select a.field_name scoreFieldName,a.id scoreFieldId, b.scoreFieldValue,a.cmpt_id cmptId,markNo as markNo
from gk_cmpt_score_field a
left join gk_cmpt_score_field_value b
on a.id = b.scoreFieldId and b.isDelete=0 and b.rule_id=#{ruleId}
where a.cmpt_id=#{cmptId} and a.is_delete=0 order by a.id
</select>
</mapper>
\ No newline at end of file
......@@ -13,17 +13,28 @@
select id from gk_cmpt_score_rule_scoreinfo where cmptId=#{cmptId} and rule_id=#{ruleId} and mark_no=#{markNo}
</select>
<select id="getCmptScoreRuleScoreInfoToalNumer" resultType="int">
select count(1) from geerunner.cmpt_enroll as a left join gk_cmpt_score_rule_scoreinfo as b on a.cmpt_id=b.cmptId where a.cmpt_id=#{cmptId} and a.cmpt_item=#{roadId} and rule_id=#{ruleId} and checkStatus=#{checkStatus} and a.del_flg=0 and b.isDelete=0
select count(1) from geerunner.cmpt_enroll as a left join gk_cmpt_score_rule_scoreinfo as b on a.cmpt_id=b.cmptId and a.nick_id=b.mark_no where a.cmpt_id=#{cmptId} and a.cmpt_item=#{roadId} and rule_id=#{ruleId} and checkStatus=#{checkStatus} and a.del_flg=0 and b.isDelete=0
</select>
<select id="getCmptScoreRuleScoreInfoList" resultType="com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRuleScoreInfo">
select a.cmpt_id as cmptId,rule_id as ruleId,b.mark_no as markNo,subsectionscore as subsectionscore,subsectionMileage as subsectionMileage,checkStatus,cmptPace from geerunner.cmpt_enroll as a left join
gk_cmpt_score_rule_scoreinfo as b on a.cmpt_id=b.cmptId where a.cmpt_id=#{cmptId} and a.cmpt_item=#{roadId} and rule_id=#{ruleId} and checkStatus=#{checkStatus} and a.del_flg=0 and b.isDelete=0 order by subsectionTime desc limit #{page.offset},#{page.size}
select b.id as cmptScoreRuleScoreId,a.cmpt_id as cmptId,rule_id as ruleId,b.mark_no as markNo,subsectionscore as subsectionscore,subsectionMileage as subsectionMileage,checkStatus,cmptPace from geerunner.cmpt_enroll as a left join gk_cmpt_score_rule_scoreinfo as b on a.cmpt_id=b.cmptId and a.nick_id=b.mark_no where a.cmpt_id=#{cmptId} and a.cmpt_item=#{roadId} and rule_id=#{ruleId} and checkStatus=#{checkStatus} and a.del_flg=0 and b.isDelete=0 order by subsectionTime desc limit #{page.offset},#{page.size}
</select>
<update id="uploadCmptScoreRuleScoreInfoByNoPassedIds">
<update id="uploadCmptScoreRuleScoreInfoByNoPassedIds">
UPDATE gk_cmpt_score_rule_scoreinfo as b set b.checkStatus=2
where b.cmptId=#{cmptId} and b.rule_id=#{ruleId} and b.id in
<foreach item="noPassedId" index="index" collection="noPassedIds"
open="(" separator="," close=")">
#{noPassedId}
</foreach>
</update>
<update id="uploadCmptScoreRuleScoreInfoByPassedIds">
<update id="uploadCmptScoreRuleScoreInfoByPassedIds">
UPDATE gk_cmpt_score_rule_scoreinfo as b set b.checkStatus=1
where b.cmptId=#{cmptId} and b.rule_id=#{ruleId} and b.id in
<foreach item="passedId" index="index" collection="passedIds"
open="(" separator="," close=")">
#{passedId}
</foreach>
</update>
......
......@@ -57,4 +57,8 @@ public class CmptScoreFieldValueService {
public List<CmptScoreFieldValue> getCmptScoreFieldValueByCmptIdAndMarkNoAndRuleId(Integer cmptId, String markNo, int ruleId) {
return cmptScoreFieldValueMapper.getCmptScoreFieldValueByCmptIdAndMarkNoAndRuleId(cmptId,ruleId,markNo);
}
public List<CmptScoreFieldValue> getCmptScoreFieldValueByCmptIdAndRuleId(Integer cmptId,Integer ruleId){
return cmptScoreFieldValueMapper.getCmptScoreFieldValueByCmptIdAndRuleId(cmptId,ruleId);
}
}
package com.dlbridge.jadp.plugins.cmpt.service;
import com.dlbridge.feign.bean.ScoreItem;
import com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreFieldValue;
import com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRuleScoreInfo;
import com.dlbridge.jadp.plugins.cmpt.bean.UserScoreExcelBean;
import com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptScoreRuleScoreInfoMapper;
......@@ -15,6 +16,8 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
/**
* 保存各个规则下用户提交的成绩
......@@ -32,6 +35,9 @@ public class CmptScoreRuleScoreInfoService {
@Resource
CmptScoreRuleScoreInfoService cmptScoreRuleScoreInfoService;
@Resource
CmptScoreFieldValueService cmptScoreFieldValueService;
/**
* 保存用户提交的成绩,每一天规则对应一条成绩
* @param cmptScoreRuleScoreInfo
......@@ -83,7 +89,6 @@ public class CmptScoreRuleScoreInfoService {
if(SwitchScoreReview==1){
//根据赛事id和号码牌查出总成绩
HashMap<String,Object> scoreResult=cmptScoreRuleScoreInfoService.getUserScoreByMarkNo(cmptId,markNo);
//将数据都插入计时系统的名单中
HashMap<String,Object> cmptEnrollInfo=new HashMap<>();
cmptEnrollInfo.put("cmptId",cmptId);
......@@ -92,10 +97,10 @@ public class CmptScoreRuleScoreInfoService {
cmptEnrollInfo.put("remark", DateUtil.formatDate((Long)scoreResult.get("userTotalScore")));
cmptEnrollInfo.put("remark2",String.valueOf(((int)scoreResult.get("userTotalMileage")/100d)/10d));
boolean enrollFlag=remoteService.mergePersonEnrollByMarkNo(cmptEnrollInfo);
//将成绩插入到计时系统,以便出完赛证书
String records=markNo+","+DateUtil.formatDate((Long)scoreResult.get("userTotalScore"))+",3";
boolean timeFlag=remoteService.uploadTimeScore(cmptId,records);
return enrollFlag&timeFlag;
// //将成绩插入到计时系统,以便出完赛证书
// String records=markNo+","+DateUtil.formatDate((Long)scoreResult.get("userTotalScore"))+",3";
// boolean timeFlag=remoteService.uploadTimeScore(cmptId,records);
return enrollFlag;
}
return false;
}
......@@ -111,9 +116,13 @@ public class CmptScoreRuleScoreInfoService {
*/
public Page<List<CmptScoreRuleScoreInfo>> getCmptScoreRuleScoreInfo(Pageable page, int cmptId, int roadId, int ruleId,int checkstatus){
long count = cmptScoreRuleScoreInfoMapper.getCmptScoreRuleScoreInfoToalNumer(cmptId,roadId,ruleId,checkstatus);
List<CmptScoreRuleScoreInfo> list = cmptScoreRuleScoreInfoMapper.getCmptScoreRuleScoreInfoList(page, cmptId,roadId,ruleId,checkstatus);
List<CmptScoreRuleScoreInfo> list = cmptScoreRuleScoreInfoMapper.getCmptScoreRuleScoreInfoList(page,cmptId,roadId,ruleId,checkstatus);
List<CmptScoreFieldValue> cmptScoreFieldValueList=cmptScoreFieldValueService.getCmptScoreFieldValueByCmptIdAndRuleId(cmptId,ruleId);
for(CmptScoreRuleScoreInfo cmptScoreRuleScoreInfo:list){
List<String> filterResutList=cmptScoreFieldValueList.parallelStream().filter(s->s.getMarkNo().equals(cmptScoreRuleScoreInfo.getMarkNo())).map(CmptScoreFieldValue::getScoreFieldValue).collect(Collectors.toList());
cmptScoreRuleScoreInfo.setScoreFieldValueList(filterResutList);
}
return PageFactory.setContent(list, page, count);
}
/**
......@@ -127,7 +136,7 @@ public class CmptScoreRuleScoreInfoService {
*/
public boolean uploadCmptScoreRuleScoreInfo(int cmptId, int roadId, int ruleId,int[] noPassedIds,int[] passedIds){
Integer uploadNumberNoPassedIds= cmptScoreRuleScoreInfoMapper.uploadCmptScoreRuleScoreInfoByNoPassedIds(cmptId,roadId,ruleId,noPassedIds);
Integer uploadNumberPassedIds= cmptScoreRuleScoreInfoMapper.uploadCmptScoreRuleScoreInfoByNoPassedIds(cmptId,roadId,ruleId,passedIds);
Integer uploadNumberPassedIds= cmptScoreRuleScoreInfoMapper.uploadCmptScoreRuleScoreInfoByPassedIds(cmptId,roadId,ruleId,passedIds);
if(uploadNumberNoPassedIds>0 ||uploadNumberPassedIds>0){
return true;
}
......
......@@ -564,5 +564,33 @@ public class RemoteService {
return false;
}
/**
* 获取赛程的信息
* @param cmptId
* @param roadId
* @return
*/
public HashMap<String,Object> getTimeSegInfoByRoadId(Integer cmptId,Integer roadId) {
ResponseEntity<String> forEntity = restTemplate.getForEntity(timerURL + "getRoad.do?cmptId="+ cmptId + "&roadId="+roadId, String.class);
HashMap<String,Object> segInfo=new HashMap<>();
if (forEntity.getStatusCode() == HttpStatus.OK) {
List<RoadsGpsCheckpointMap> roadsGpsCheckpointMapList = new ArrayList<>();
String resultString = forEntity.getBody();
log.info("计时打卡点:" + resultString);
JSONObject object = JSONObject.parseObject(resultString);
JSONObject roadJsonObject=object.getJSONObject("road");
JSONArray segsResult = roadJsonObject.getJSONArray("segs");
if(segsResult == null || segsResult.isEmpty()) return null;
//支持多日赛
for(int j=0;j<segsResult.size();j++) {
JSONObject resultObject = (JSONObject) segsResult.get(j);
int distance=resultObject.getInteger("distance");
segInfo.put("distance",distance);
}
return segInfo;
} else {
return null;
}
}
}
......@@ -5,10 +5,8 @@ import com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRuleScoreInfo;
import com.dlbridge.jadp.plugins.cmpt.service.CmptScoreRuleScoreInfoService;
import com.dlbridge.jadp.plugins.cmpt.utils.Page;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import springfox.documentation.annotations.ApiIgnore;
......@@ -53,7 +51,7 @@ public class CmptScoreRuleScoreInfoController {
* @param checkstatus 1为已通过 ,2为未通过
* @return
*/
@RequestMapping("uploadCmptScoreRuleScoreInfo/{cmptId}/{roadId}/{ruleId}/{checkstatus}/{noPassedIds}/{passedIds}")
@RequestMapping("uploadCmptScoreRuleScoreInfo")
@ResponseBody
public Page<List<CmptScoreRuleScoreInfo>> uploadCmptScoreRuleScoreInfo(Pageable page, int cmptId, int roadId, int ruleId,int checkstatus,int[] noPassedIds,int[] passedIds){
boolean isOk= cmptScoreRuleScoreInfoService.uploadCmptScoreRuleScoreInfo(cmptId,roadId,ruleId,noPassedIds,passedIds);
......@@ -63,4 +61,6 @@ public class CmptScoreRuleScoreInfoController {
return result;
}
}
......@@ -880,10 +880,25 @@ public class MicroApiController {
.setRuleId(rule.getId())
.setScoreItemId(scoreItemResult.getContent().getId()));
*/
//根据里程计算配速,里程来自用户自己填写的里程或者来自项目的里程
int duration=score.getScore().getDuration();
int cmptPace=0;
int mileage=0;
FuncSetting settingByCmptId = funcSettingService.getSettingByCmptId(score.getCmptId());
int isHasMileage=settingByCmptId.getMileage();
if(isHasMileage==1){
mileage=score.getScore().getMileage();
cmptPace=duration/mileage;
}else{
int distance=(int)remoteService.getTimeSegInfoByRoadId(score.getCmptId(),score.getRoadId()).get("distance");
mileage=distance;
cmptPace=duration/mileage;
}
//前端上传json中取出里程,耗时,提交时间,赛事地,规则id,markNo
int mileage=score.getScore().getMileage();
CmptScoreRuleScoreInfo CmptScoreRuleScoreInfo = new CmptScoreRuleScoreInfo()
.setSubsectionscore(score.getScore().getDuration()).setSubsectionMileage(mileage)
.setSubsectionscore(score.getScore().getDuration()).setSubsectionMileage(mileage).setCmptPace(cmptPace)
.setSubsectionTime(score.getScore().getDate())
.setCmptId(score.getCmptId()).setRuleId(rule.getId()).setMarkNo(score.getMarkNo());
// 保存校验通过的成绩
......@@ -897,7 +912,6 @@ public class MicroApiController {
// 提交成绩保存设置附加项(照片等)
cmptScoreFieldValueService.saveOrUpdate(score.getFields());
//查看自动审核是否开启,如果开启直接将总成绩存入到计时系统remark1,如果没有开启走手动审核的逻辑
FuncSetting settingByCmptId = funcSettingService.getSettingByCmptId(score.getCmptId());
cmptScoreRuleScoreInfoService.scoreReviewByMarkNo(score.getCmptId(),score.getMarkNo(),settingByCmptId.getSwitchScoreReview());
return Result.success().setContent(score);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment