Commit 47fc5642 authored by yangshuxing's avatar yangshuxing
parents 99675e23 2deb6056
...@@ -7,6 +7,8 @@ import lombok.Setter; ...@@ -7,6 +7,8 @@ import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.util.List;
@Setter @Setter
@Getter @Getter
@Accessors(chain = true) @Accessors(chain = true)
...@@ -14,6 +16,7 @@ import lombok.experimental.Accessors; ...@@ -14,6 +16,7 @@ import lombok.experimental.Accessors;
@ToString @ToString
public class CmptScoreRuleScoreInfo { public class CmptScoreRuleScoreInfo {
private int cmptScoreRuleScoreId;
private int cmptId; private int cmptId;
private int ruleId; private int ruleId;
private String markNo; private String markNo;
...@@ -23,6 +26,8 @@ public class CmptScoreRuleScoreInfo { ...@@ -23,6 +26,8 @@ public class CmptScoreRuleScoreInfo {
private Integer subsectionMileage; private Integer subsectionMileage;
private Integer checkStatus; private Integer checkStatus;
private Integer cmptPace; private Integer cmptPace;
//用户提交的成绩依据材料路径
private List<String> scoreFieldValueList;
private Integer isDelete; private Integer isDelete;
private String insertTime; private String insertTime;
private String updateTime; private String updateTime;
......
...@@ -8,10 +8,9 @@ import java.util.List; ...@@ -8,10 +8,9 @@ import java.util.List;
@Data @Data
public class UserScore { public class UserScore {
//报名iD
private String markNo; private String markNo;
//报名iD
private Integer cmptId; private Integer cmptId;
private Integer roadId;
private Integer indexId; private Integer indexId;
......
...@@ -36,4 +36,11 @@ public interface CmptScoreFieldValueMapper { ...@@ -36,4 +36,11 @@ public interface CmptScoreFieldValueMapper {
void deleteFieldValueByRuleIdAndMarkNo(@Param("ruleId")Integer ruleId,@Param("markNo") String markNo); 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); 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 @@ ...@@ -47,4 +47,14 @@
on a.id = b.scoreFieldId and b.markNo=#{markNo} and b.isDelete=0 and b.rule_id=#{ruleId} 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 where a.cmpt_id=#{cmptId} and a.is_delete=0 order by a.id
</select> </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> </mapper>
\ No newline at end of file
...@@ -13,17 +13,28 @@ ...@@ -13,17 +13,28 @@
select id from gk_cmpt_score_rule_scoreinfo where cmptId=#{cmptId} and rule_id=#{ruleId} and mark_no=#{markNo} select id from gk_cmpt_score_rule_scoreinfo where cmptId=#{cmptId} and rule_id=#{ruleId} and mark_no=#{markNo}
</select> </select>
<select id="getCmptScoreRuleScoreInfoToalNumer" resultType="int"> <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>
<select id="getCmptScoreRuleScoreInfoList" resultType="com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRuleScoreInfo"> <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 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}
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> </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>
<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> </update>
......
...@@ -57,4 +57,8 @@ public class CmptScoreFieldValueService { ...@@ -57,4 +57,8 @@ public class CmptScoreFieldValueService {
public List<CmptScoreFieldValue> getCmptScoreFieldValueByCmptIdAndMarkNoAndRuleId(Integer cmptId, String markNo, int ruleId) { public List<CmptScoreFieldValue> getCmptScoreFieldValueByCmptIdAndMarkNoAndRuleId(Integer cmptId, String markNo, int ruleId) {
return cmptScoreFieldValueMapper.getCmptScoreFieldValueByCmptIdAndMarkNoAndRuleId(cmptId,ruleId,markNo); 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; package com.dlbridge.jadp.plugins.cmpt.service;
import com.dlbridge.feign.bean.ScoreItem; 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.CmptScoreRuleScoreInfo;
import com.dlbridge.jadp.plugins.cmpt.bean.UserScoreExcelBean; import com.dlbridge.jadp.plugins.cmpt.bean.UserScoreExcelBean;
import com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptScoreRuleScoreInfoMapper; import com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptScoreRuleScoreInfoMapper;
...@@ -15,6 +16,8 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -15,6 +16,8 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* 保存各个规则下用户提交的成绩 * 保存各个规则下用户提交的成绩
...@@ -32,6 +35,9 @@ public class CmptScoreRuleScoreInfoService { ...@@ -32,6 +35,9 @@ public class CmptScoreRuleScoreInfoService {
@Resource @Resource
CmptScoreRuleScoreInfoService cmptScoreRuleScoreInfoService; CmptScoreRuleScoreInfoService cmptScoreRuleScoreInfoService;
@Resource
CmptScoreFieldValueService cmptScoreFieldValueService;
/** /**
* 保存用户提交的成绩,每一天规则对应一条成绩 * 保存用户提交的成绩,每一天规则对应一条成绩
* @param cmptScoreRuleScoreInfo * @param cmptScoreRuleScoreInfo
...@@ -83,7 +89,6 @@ public class CmptScoreRuleScoreInfoService { ...@@ -83,7 +89,6 @@ public class CmptScoreRuleScoreInfoService {
if(SwitchScoreReview==1){ if(SwitchScoreReview==1){
//根据赛事id和号码牌查出总成绩 //根据赛事id和号码牌查出总成绩
HashMap<String,Object> scoreResult=cmptScoreRuleScoreInfoService.getUserScoreByMarkNo(cmptId,markNo); HashMap<String,Object> scoreResult=cmptScoreRuleScoreInfoService.getUserScoreByMarkNo(cmptId,markNo);
//将数据都插入计时系统的名单中 //将数据都插入计时系统的名单中
HashMap<String,Object> cmptEnrollInfo=new HashMap<>(); HashMap<String,Object> cmptEnrollInfo=new HashMap<>();
cmptEnrollInfo.put("cmptId",cmptId); cmptEnrollInfo.put("cmptId",cmptId);
...@@ -92,10 +97,10 @@ public class CmptScoreRuleScoreInfoService { ...@@ -92,10 +97,10 @@ public class CmptScoreRuleScoreInfoService {
cmptEnrollInfo.put("remark", DateUtil.formatDate((Long)scoreResult.get("userTotalScore"))); cmptEnrollInfo.put("remark", DateUtil.formatDate((Long)scoreResult.get("userTotalScore")));
cmptEnrollInfo.put("remark2",String.valueOf(((int)scoreResult.get("userTotalMileage")/100d)/10d)); cmptEnrollInfo.put("remark2",String.valueOf(((int)scoreResult.get("userTotalMileage")/100d)/10d));
boolean enrollFlag=remoteService.mergePersonEnrollByMarkNo(cmptEnrollInfo); boolean enrollFlag=remoteService.mergePersonEnrollByMarkNo(cmptEnrollInfo);
//将成绩插入到计时系统,以便出完赛证书 // //将成绩插入到计时系统,以便出完赛证书
String records=markNo+","+DateUtil.formatDate((Long)scoreResult.get("userTotalScore"))+",3"; // String records=markNo+","+DateUtil.formatDate((Long)scoreResult.get("userTotalScore"))+",3";
boolean timeFlag=remoteService.uploadTimeScore(cmptId,records); // boolean timeFlag=remoteService.uploadTimeScore(cmptId,records);
return enrollFlag&timeFlag; return enrollFlag;
} }
return false; return false;
} }
...@@ -111,9 +116,13 @@ public class CmptScoreRuleScoreInfoService { ...@@ -111,9 +116,13 @@ public class CmptScoreRuleScoreInfoService {
*/ */
public Page<List<CmptScoreRuleScoreInfo>> getCmptScoreRuleScoreInfo(Pageable page, int cmptId, int roadId, int ruleId,int checkstatus){ public Page<List<CmptScoreRuleScoreInfo>> getCmptScoreRuleScoreInfo(Pageable page, int cmptId, int roadId, int ruleId,int checkstatus){
long count = cmptScoreRuleScoreInfoMapper.getCmptScoreRuleScoreInfoToalNumer(cmptId,roadId,ruleId,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); return PageFactory.setContent(list, page, count);
} }
/** /**
...@@ -127,7 +136,7 @@ public class CmptScoreRuleScoreInfoService { ...@@ -127,7 +136,7 @@ public class CmptScoreRuleScoreInfoService {
*/ */
public boolean uploadCmptScoreRuleScoreInfo(int cmptId, int roadId, int ruleId,int[] noPassedIds,int[] passedIds){ public boolean uploadCmptScoreRuleScoreInfo(int cmptId, int roadId, int ruleId,int[] noPassedIds,int[] passedIds){
Integer uploadNumberNoPassedIds= cmptScoreRuleScoreInfoMapper.uploadCmptScoreRuleScoreInfoByNoPassedIds(cmptId,roadId,ruleId,noPassedIds); 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){ if(uploadNumberNoPassedIds>0 ||uploadNumberPassedIds>0){
return true; return true;
} }
......
...@@ -564,5 +564,33 @@ public class RemoteService { ...@@ -564,5 +564,33 @@ public class RemoteService {
return false; 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; ...@@ -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.service.CmptScoreRuleScoreInfoService;
import com.dlbridge.jadp.plugins.cmpt.utils.Page; import com.dlbridge.jadp.plugins.cmpt.utils.Page;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Controller; 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.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
...@@ -53,7 +51,7 @@ public class CmptScoreRuleScoreInfoController { ...@@ -53,7 +51,7 @@ public class CmptScoreRuleScoreInfoController {
* @param checkstatus 1为已通过 ,2为未通过 * @param checkstatus 1为已通过 ,2为未通过
* @return * @return
*/ */
@RequestMapping("uploadCmptScoreRuleScoreInfo/{cmptId}/{roadId}/{ruleId}/{checkstatus}/{noPassedIds}/{passedIds}") @RequestMapping("uploadCmptScoreRuleScoreInfo")
@ResponseBody @ResponseBody
public Page<List<CmptScoreRuleScoreInfo>> uploadCmptScoreRuleScoreInfo(Pageable page, int cmptId, int roadId, int ruleId,int checkstatus,int[] noPassedIds,int[] passedIds){ 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); boolean isOk= cmptScoreRuleScoreInfoService.uploadCmptScoreRuleScoreInfo(cmptId,roadId,ruleId,noPassedIds,passedIds);
...@@ -63,4 +61,6 @@ public class CmptScoreRuleScoreInfoController { ...@@ -63,4 +61,6 @@ public class CmptScoreRuleScoreInfoController {
return result; return result;
} }
} }
...@@ -880,10 +880,25 @@ public class MicroApiController { ...@@ -880,10 +880,25 @@ public class MicroApiController {
.setRuleId(rule.getId()) .setRuleId(rule.getId())
.setScoreItemId(scoreItemResult.getContent().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 //前端上传json中取出里程,耗时,提交时间,赛事地,规则id,markNo
int mileage=score.getScore().getMileage();
CmptScoreRuleScoreInfo CmptScoreRuleScoreInfo = new CmptScoreRuleScoreInfo() CmptScoreRuleScoreInfo CmptScoreRuleScoreInfo = new CmptScoreRuleScoreInfo()
.setSubsectionscore(score.getScore().getDuration()).setSubsectionMileage(mileage) .setSubsectionscore(score.getScore().getDuration()).setSubsectionMileage(mileage).setCmptPace(cmptPace)
.setSubsectionTime(score.getScore().getDate()) .setSubsectionTime(score.getScore().getDate())
.setCmptId(score.getCmptId()).setRuleId(rule.getId()).setMarkNo(score.getMarkNo()); .setCmptId(score.getCmptId()).setRuleId(rule.getId()).setMarkNo(score.getMarkNo());
// 保存校验通过的成绩 // 保存校验通过的成绩
...@@ -897,7 +912,6 @@ public class MicroApiController { ...@@ -897,7 +912,6 @@ public class MicroApiController {
// 提交成绩保存设置附加项(照片等) // 提交成绩保存设置附加项(照片等)
cmptScoreFieldValueService.saveOrUpdate(score.getFields()); cmptScoreFieldValueService.saveOrUpdate(score.getFields());
//查看自动审核是否开启,如果开启直接将总成绩存入到计时系统remark1,如果没有开启走手动审核的逻辑 //查看自动审核是否开启,如果开启直接将总成绩存入到计时系统remark1,如果没有开启走手动审核的逻辑
FuncSetting settingByCmptId = funcSettingService.getSettingByCmptId(score.getCmptId());
cmptScoreRuleScoreInfoService.scoreReviewByMarkNo(score.getCmptId(),score.getMarkNo(),settingByCmptId.getSwitchScoreReview()); cmptScoreRuleScoreInfoService.scoreReviewByMarkNo(score.getCmptId(),score.getMarkNo(),settingByCmptId.getSwitchScoreReview());
return Result.success().setContent(score); 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