Commit db3cd0ec authored by sunyuhua's avatar sunyuhua

自动审核的代码

parent e32c36e1
package com.dlbridge.jadp.plugins.cmpt.dao.mapper;
import com.dlbridge.feign.bean.ScoreItem;
import com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRuleScoreInfo;
import com.dlbridge.jadp.plugins.cmpt.bean.UserScoreExcelBean;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
......@@ -16,7 +14,7 @@ public interface CmptScoreRuleScoreInfoMapper {
* 保存用户提交的成绩
* @param cmptScoreRuleScoreInfo
*/
void saveScoreRuleScoreInfo(@Param("scoreItem") CmptScoreRuleScoreInfo cmptScoreRuleScoreInfo);
void saveScoreRuleScoreInfo(@Param("cmptScoreRuleScoreInfo") CmptScoreRuleScoreInfo cmptScoreRuleScoreInfo);
/**
* 根据号码牌获取用户的成绩
......@@ -24,7 +22,7 @@ public interface CmptScoreRuleScoreInfoMapper {
* @param markNo
* @return
*/
List<CmptScoreRuleScoreInfo> getScoreRuleScoreInfoByMarkNo(Integer cmptId, String markNo);
List<CmptScoreRuleScoreInfo> getScoreRuleScoreInfoByMarkNo(@Param("cmptId") Integer cmptId, @Param("markNo") String markNo);
/**
*
......@@ -34,7 +32,7 @@ public interface CmptScoreRuleScoreInfoMapper {
* @param ruleId
* @return
*/
Integer getCmptScoreRuleScoreInfoIdByruleIdAndMarkNo(Integer cmptId,String markNo,int ruleId);
Integer getCmptScoreRuleScoreInfoIdByruleIdAndMarkNo(@Param("cmptId")Integer cmptId, @Param("markNo")String markNo, @Param("ruleId") int ruleId);
/**
......@@ -44,7 +42,7 @@ public interface CmptScoreRuleScoreInfoMapper {
* @param checkStatus
* @return
*/
Integer getCmptScoreRuleScoreInfoToalNumer(int cmptId,int roadId,int ruleId,int checkStatus);
Integer getCmptScoreRuleScoreInfoToalNumer(@Param("cmptId") int cmptId, @Param("roadId") int roadId, @Param("ruleId") int ruleId,@Param("checkStatus") int checkStatus);
/**
* 分页获取用户提交的成绩
......
......@@ -3,11 +3,11 @@
<mapper namespace="com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptScoreRuleScoreInfoMapper">
<insert id="saveScoreRuleScoreInfo" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
INSERT INTO gk_cmpt_score_rule_scoreinfo(cmptId,rule_id,mark_no,subsectionTime,subsectionscore,subsectionMileage,insertTime,updateTime)
VALUES(#{scoreItem.cmptId},#{scoreItem.ruleId},#{scoreItem.markNo},#{scoreItem.subsectionTime},#{scoreItem.subsectionscore},#{scoreItem.subsectionMileage},now(),now())
INSERT INTO gk_cmpt_score_rule_scoreinfo(cmptId,rule_id,mark_no,subsectionTime,subsectionscore,subsectionMileage,cmptPace,isDelete,insertTime,updateTime)
VALUES(#{cmptScoreRuleScoreInfo.cmptId},#{cmptScoreRuleScoreInfo.ruleId},#{cmptScoreRuleScoreInfo.markNo},#{cmptScoreRuleScoreInfo.subsectionTime},#{cmptScoreRuleScoreInfo.subsectionscore},#{cmptScoreRuleScoreInfo.subsectionMileage},#{cmptScoreRuleScoreInfo.cmptPace},0,now(),now())
</insert>
<select id="getUserScoreinfoByMarkNo" resultType="com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRuleScoreInfo">
select id,cmptId,rule_id as ruleId,mark_no as markNo,subsectionTime,subsectionscore,subsectionMileage from gk_cmpt_score_rule_scoreinfo where cmptId=#{cmptId} and mark_no=#{markNo}
<select id="getScoreRuleScoreInfoByMarkNo" resultType="com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRuleScoreInfo">
select id,cmptId,rule_id as ruleId,mark_no as markNo,subsectionTime,subsectionscore,subsectionMileage,cmptPace from gk_cmpt_score_rule_scoreinfo where cmptId=#{cmptId} and mark_no=#{markNo}
</select>
<select id="getCmptScoreRuleScoreInfoIdByruleIdAndMarkNo" resultType="int">
select id from gk_cmpt_score_rule_scoreinfo where cmptId=#{cmptId} and rule_id=#{ruleId} and mark_no=#{markNo}
......
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;
import com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt;
import com.dlbridge.jadp.plugins.cmpt.utils.Page;
import com.dlbridge.jadp.plugins.cmpt.utils.PageFactory;
import com.dlbridge.jadp.plugins.cmpt.utils.date.DateUtil;
......@@ -14,9 +11,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
......@@ -45,6 +40,7 @@ public class CmptScoreRuleScoreInfoService {
* @param cmptScoreRuleScoreInfo
*/
public void saveScoreRuleScoreInfo(CmptScoreRuleScoreInfo cmptScoreRuleScoreInfo){
System.out.print("===="+cmptScoreRuleScoreInfo.getCmptPace());
cmptScoreRuleScoreInfoMapper.saveScoreRuleScoreInfo(cmptScoreRuleScoreInfo);
}
......@@ -58,17 +54,18 @@ public class CmptScoreRuleScoreInfoService {
//根据号码牌获取所有成绩记录
List<CmptScoreRuleScoreInfo> cmptScoreRuleScoreInfoList=cmptScoreRuleScoreInfoMapper.getScoreRuleScoreInfoByMarkNo(cmptId,markNo);
//计算成绩之和
long userTotalScore=cmptScoreRuleScoreInfoList.stream().mapToInt(CmptScoreRuleScoreInfo::getSubsectionscore).sum();
long userTotalScore=cmptScoreRuleScoreInfoList.stream().filter(entry -> entry.getSubsectionscore() != null).mapToInt(CmptScoreRuleScoreInfo::getSubsectionscore).sum();
//计算里程之和
int userTotalMileage=cmptScoreRuleScoreInfoList.stream().mapToInt(CmptScoreRuleScoreInfo::getSubsectionMileage).sum();
//int userTotalMileage=cmptScoreRuleScoreInfoList.stream().mapToInt(CmptScoreRuleScoreInfo::getSubsectionMileage).sum();
int userTotalMileage=Optional.of(cmptScoreRuleScoreInfoList).orElse(cmptScoreRuleScoreInfoList).stream().filter(entry -> entry.getSubsectionMileage() != null).mapToInt(CmptScoreRuleScoreInfo::getSubsectionMileage).sum();
HashMap<String,Object> userScore=new HashMap<>();
userScore.put("userTotalScore",userTotalScore);
userScore.put("userTotalMileage",userTotalMileage);
userScore.put("userTotalMileage",Integer.valueOf(userTotalMileage));
return userScore;
}
/**
* 根据赛事ID,号码牌,成绩提交的规则,查看是否已经提交过成绩
* @param cmptId
......@@ -88,6 +85,7 @@ public class CmptScoreRuleScoreInfoService {
*/
public boolean scoreReviewByMarkNo(int cmptId, String markNo, int SwitchScoreReview){
//成绩自动审核开启SwitchScoreReview==1
boolean enrollFlag=false;
if(SwitchScoreReview==1){
//根据赛事id和号码牌查出总成绩
HashMap<String,Object> scoreResult=cmptScoreRuleScoreInfoService.getUserScoreByMarkNo(cmptId,markNo);
......@@ -98,13 +96,17 @@ public class CmptScoreRuleScoreInfoService {
cmptEnrollInfo.put("deviceId",markNo);
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);
try{
enrollFlag=remoteService.mergePersonEnrollByMarkNo(cmptEnrollInfo);
}catch (Exception e){
e.printStackTrace();
}
// //将成绩插入到计时系统,以便出完赛证书
// String records=markNo+","+DateUtil.formatDate((Long)scoreResult.get("userTotalScore"))+",3";
// boolean timeFlag=remoteService.uploadTimeScore(cmptId,records);
return enrollFlag;
}
return false;
return enrollFlag;
}
/**
......
......@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import com.dlbridge.jadp.plugins.cmpt.bean.*;
import com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.codec.net.URLCodec;
import org.apache.commons.lang3.math.NumberUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
......@@ -14,6 +15,9 @@ import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......@@ -532,9 +536,9 @@ public class RemoteService {
* @param cmptEnrollInfo
* @return
*/
public boolean mergePersonEnrollByMarkNo(HashMap<String,Object> cmptEnrollInfo){
public boolean mergePersonEnrollByMarkNo(HashMap<String,Object> cmptEnrollInfo) throws UnsupportedEncodingException {
String cmptEnrolljson= JSON.toJSONString(cmptEnrollInfo);
ResponseEntity<String> forEntity = restTemplate.getForEntity(timerURL + "updateUserEnroll.do?personEnroll="+cmptEnrolljson, String.class);
ResponseEntity<String> forEntity = restTemplate.getForEntity(timerURL + "updateUserEnroll.do?personEnroll="+URLEncoder.encode(cmptEnrolljson, StandardCharsets.UTF_8.toString()), String.class);
if (forEntity.getStatusCode() == HttpStatus.OK) {
String resultString = forEntity.getBody();
JSONObject object = JSONObject.parseObject(resultString);
......
......@@ -890,19 +890,25 @@ public class MicroApiController {
int isHasMileage=settingByCmptId.getMileage();
if(isHasMileage==1){
mileage=score.getScore().getMileage();
if(mileage ==0){
return Result.fail().setMsg("请输入里程");
}
cmptPace=duration/mileage;
}else{
int distance=(int)remoteService.getTimeSegInfoByRoadId(score.getCmptId(),score.getRoadId()).get("distance");
if(distance ==0){
return Result.fail().setMsg("赛事项目需要设置里程");
}
mileage=distance;
cmptPace=duration/mileage;
}
//前端上传json中取出里程,耗时,提交时间,赛事地,规则id,markNo
CmptScoreRuleScoreInfo CmptScoreRuleScoreInfo = new CmptScoreRuleScoreInfo()
CmptScoreRuleScoreInfo cmptScoreRuleScoreInfo = new CmptScoreRuleScoreInfo().setCmptId(score.getCmptId())
.setSubsectionscore(score.getScore().getDuration()).setSubsectionMileage(mileage).setCmptPace(cmptPace)
.setSubsectionTime(score.getScore().getDate())
.setCmptId(score.getCmptId()).setRuleId(rule.getId()).setMarkNo(score.getMarkNo());
// 保存校验通过的成绩
cmptScoreRuleScoreInfoService.saveScoreRuleScoreInfo(CmptScoreRuleScoreInfo);
cmptScoreRuleScoreInfoService.saveScoreRuleScoreInfo(cmptScoreRuleScoreInfo);
//设置附加项的参数,并保存附加项
for(CmptScoreFieldValue value : score.getFields()){
value.setCmptId(score.getCmptId());
......
spring.profiles.active=test
spring.profiles.active=dev
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