[修改]场景实训结束后的评分展示中增加非用户角色的步骤(并增加每个步骤对应的角色id,非用户角色步骤没有分数)
All checks were successful
CI / Docker-Build (push) Successful in 6m56s

This commit is contained in:
thesai 2024-09-10 17:55:50 +08:00
parent 98abf0691a
commit 9c9e7c60e3
2 changed files with 48 additions and 42 deletions

View File

@ -16,8 +16,6 @@ import club.joylink.rtss.simulation.cbtc.GroupSimulationService;
import club.joylink.rtss.simulation.cbtc.Simulation; import club.joylink.rtss.simulation.cbtc.Simulation;
import club.joylink.rtss.simulation.cbtc.SimulationLifeCycleService; import club.joylink.rtss.simulation.cbtc.SimulationLifeCycleService;
import club.joylink.rtss.simulation.cbtc.SimulationService; import club.joylink.rtss.simulation.cbtc.SimulationService;
import club.joylink.rtss.simulation.cbtc.conversation.ConversationGroup;
import club.joylink.rtss.simulation.cbtc.conversation.ConversationMember;
import club.joylink.rtss.simulation.cbtc.data.map.Switch; import club.joylink.rtss.simulation.cbtc.data.map.Switch;
import club.joylink.rtss.simulation.cbtc.data.vo.ConversationMessageVO; import club.joylink.rtss.simulation.cbtc.data.vo.ConversationMessageVO;
import club.joylink.rtss.simulation.cbtc.data.vo.Training2MessageVO; import club.joylink.rtss.simulation.cbtc.data.vo.Training2MessageVO;
@ -317,7 +315,7 @@ public class Training2Service {
Map<Long, Float> scoreMap = new HashMap<>(); Map<Long, Float> scoreMap = new HashMap<>();
if (!CollectionUtils.isEmpty(training2.getScoringRules())) { if (!CollectionUtils.isEmpty(training2.getScoringRules())) {
training2.getScoringRules().stream() training2.getScoringRules().stream()
.filter(score -> Objects.equals(score.getMember().getId(), member.getId())) // .filter(score -> Objects.equals(score.getMember().getId(), member.getId()))
.findFirst().ifPresent(scoringRule2 -> scoringRule2.getDetails() .findFirst().ifPresent(scoringRule2 -> scoringRule2.getDetails()
.forEach(d -> scoreMap.put(d.getStep().getId(), d.getScore()))); .forEach(d -> scoreMap.put(d.getStep().getId(), d.getScore())));
} }
@ -327,20 +325,24 @@ public class Training2Service {
scoreDetailList.forEach(d -> answerDetailMap.put(d.getStepId(), d)); scoreDetailList.forEach(d -> answerDetailMap.put(d.getStepId(), d));
} }
return training2.getSteps().stream() return training2.getSteps().stream()
.filter(s -> Objects.equals(s.getSimulationMember().getId(), member.getId())) // .filter(s -> Objects.equals(s.getSimulationMember().getId(), member.getId()))
.map(step -> { .map(step -> {
PaperTrainAnswerDetail detail = new PaperTrainAnswerDetail(); PaperTrainAnswerDetail detail = new PaperTrainAnswerDetail();
detail.setMemberId(step.getSimulationMember().getId());
detail.setStepId(step.getId()); detail.setStepId(step.getId());
detail.setHaveRule(scoreMap.containsKey(step.getId())); detail.setHaveRule(scoreMap.containsKey(step.getId()));
if (answerDetailMap.containsKey(step.getId())) { detail.setRuleScore(scoreMap.get(step.getId()));
detail.setSuccess(answerDetailMap.get(step.getId()).isSuccess()); if (!Objects.equals(step.getSimulationMember().getId(), member.getId())) {
detail.setScore( detail.setSuccess(true);
detail.isHaveRule() && detail.isSuccess() ? scoreMap.get(step.getId()) : 0F); detail.setScore(detail.getRuleScore());
detail.setClientOperations(answerDetailMap.get(step.getId()).getClientOperations()); } else {
detail.setNotExistAppend(true); if (answerDetailMap.containsKey(step.getId())) {
} detail.setSuccess(answerDetailMap.get(step.getId()).isSuccess());
if (detail.isHaveRule()) { detail.setScore(
detail.setRuleScore(scoreMap.get(step.getId())); detail.isHaveRule() && detail.isSuccess() ? scoreMap.get(step.getId()) : 0F);
detail.setClientOperations(answerDetailMap.get(step.getId()).getClientOperations());
detail.setNotExistAppend(true);
}
} }
return detail; return detail;
}).collect(Collectors.toList()); }).collect(Collectors.toList());

View File

@ -1,48 +1,52 @@
package club.joylink.rtss.vo.paper; package club.joylink.rtss.vo.paper;
import club.joylink.rtss.vo.client.training2.Operation2VO; import club.joylink.rtss.vo.client.training2.Operation2VO;
import java.util.List;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.util.List;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
public class PaperTrainAnswerDetail { public class PaperTrainAnswerDetail {
/** /**
* 实训步骤id * 实训步骤id
*/ */
private Long stepId; private Long stepId;
/** /**
* 实训是否成功 * 实训是否成功
*/ */
private boolean success; private boolean success;
/** /**
* 获得的分数 * 获得的分数
*/ */
private Float score; private Float score;
/** /**
* 规则设置的分数 * 规则设置的分数
*/ */
private Float ruleScore; private Float ruleScore;
/** /**
* 是否有打分规则 * 是否有打分规则
*/ */
private boolean haveRule; private boolean haveRule;
private boolean notExistAppend; private boolean notExistAppend;
/** /**
* 客户端操作的实训,对应的id必须要传 * 客户端操作的实训,对应的id必须要传
*/ */
private List<TrainOperations> clientOperations; private List<TrainOperations> clientOperations;
/**
* 步骤对应的成员的id
*/
private String memberId;
public static class TrainOperations extends Operation2VO.ClientOperation2VO{ public static class TrainOperations extends Operation2VO.ClientOperation2VO {
} }
} }