|
|
@@ -219,18 +219,19 @@ public class LearnTeacherService {
|
|
|
paper.setDirectKey(directedKey);
|
|
|
paper.setFenshu(0);
|
|
|
if(null == directedKnowledgeMap) {
|
|
|
- List<LearnPaperQuestion> pqList = Lists.newArrayList();
|
|
|
- for (LearnPaperQuestion q : req.getQuestions()) {
|
|
|
- LearnPaperQuestion pq = new LearnPaperQuestion();
|
|
|
- pq.setQuestionId(q.getId()); // 没传questionId?
|
|
|
- pq.setSeq(pqList.size() + 1);
|
|
|
- pq.setKnowledgeId(q.getKnowledgeId());
|
|
|
- pq.setScore(null == q.getScore() ? 1.0 : q.getScore());
|
|
|
- pqList.add(pq);
|
|
|
- }
|
|
|
- paperService.savePaper(paper, pqList);
|
|
|
+ saveHandPaper(paper, req.getQuestions());
|
|
|
} else {
|
|
|
LearnDirectedKnowledge directedKnowledge = directedKnowledgeMap.get(directedKey);
|
|
|
+ TestPaperVO.PaperDef2 paperDef = new TestPaperVO.PaperDef2(directedKnowledge.getKnowledges(), directedKnowledge.getConditions());
|
|
|
+ paperDef.setFillExclude(false);
|
|
|
+ AnswerSheet.PaperCond info = new AnswerSheet.PaperCond();
|
|
|
+ info.setScore(paper.getFenshu());
|
|
|
+ info.setTime(directedKnowledge.getTime() * 60);
|
|
|
+ info.setTypes(paperDef.getTypes().stream().map(t -> new AnswerSheet.PaperCondType(t.getType().getTitle(), t.getCount(), t.getScore())).collect(Collectors.toList()));
|
|
|
+ paper.setPaperInfo(JSONObject.toJSONString(info));
|
|
|
+ Pair<LearnPaper, List<LearnPaperQuestion>> paperResult = paperService.buildPaper2(null, paper, paperDef);
|
|
|
+ paperService.savePaper(paperResult.getKey(), paperResult.getValue());
|
|
|
+ /* 暂定使用知识定一样的类型处理
|
|
|
TestPaperVO.PaperDef paperDef = req.getPaperDef();
|
|
|
examType = directedKnowledge.getExamineeTypes();
|
|
|
paperDef.setKnowIds(Stream.of(directedKnowledge.getKnowledges().split(",")).map(t -> Long.parseLong(t.trim())).collect(Collectors.toList()));
|
|
|
@@ -247,7 +248,7 @@ public class LearnTeacherService {
|
|
|
paperDef.setTotal(15L);
|
|
|
}
|
|
|
Pair<LearnPaper, List<LearnPaperQuestion>> paperResult = paperService.buildPaper(null, paper, paperDef);
|
|
|
- paperService.savePaper(paperResult.getKey(), paperResult.getValue());
|
|
|
+ paperService.savePaper(paperResult.getKey(), paperResult.getValue());*/
|
|
|
}
|
|
|
LearnTestPaper testPaper = new LearnTestPaper();
|
|
|
testPaper.setBuildType(req.getBuildType());
|
|
|
@@ -301,19 +302,7 @@ public class LearnTeacherService {
|
|
|
paper.setRelateId(req.getBatchId().longValue());
|
|
|
paper.setFenshu(0);
|
|
|
if("FullHand".equals(req.getBuildType())) {
|
|
|
- List<LearnPaperQuestion> pqList = Lists.newArrayList();
|
|
|
- Double fenScore = 0.0;
|
|
|
- for (LearnPaperQuestion q : req.getQuestions()) {
|
|
|
- LearnPaperQuestion pq = new LearnPaperQuestion();
|
|
|
- pq.setQuestionId(q.getId()); // 没传questionId?
|
|
|
- pq.setSeq(pqList.size() + 1);
|
|
|
- pq.setKnowledgeId(q.getKnowledgeId());
|
|
|
- pq.setScore(null == q.getScore() ? 1.0 : q.getScore());
|
|
|
- fenScore += q.getScore();
|
|
|
- pqList.add(pq);
|
|
|
- }
|
|
|
- paper.setFenshu((int) Math.round(fenScore));
|
|
|
- paperService.savePaper(paper, pqList);
|
|
|
+ saveHandPaper(paper, req.getQuestions());
|
|
|
} else {
|
|
|
Pair<LearnPaper, List<LearnPaperQuestion>> paperResult = paperService.buildPaper(null, paper, req.getPaperDef());
|
|
|
paperService.savePaper(paperResult.getKey(), paperResult.getValue());
|
|
|
@@ -347,6 +336,42 @@ public class LearnTeacherService {
|
|
|
return "";
|
|
|
}
|
|
|
|
|
|
+ public void saveHandPaper(LearnPaper paper, List<LearnPaperQuestion> questions) {
|
|
|
+ List<LearnPaperQuestion> pqList = Lists.newArrayList();
|
|
|
+ List<AnswerSheet.PaperCondType> typeList = Lists.newArrayList();
|
|
|
+ Map<String, AnswerSheet.PaperCondType> typeMap = Maps.newHashMap();
|
|
|
+ Double fenScore = 0.0;
|
|
|
+ for (LearnPaperQuestion q : questions) {
|
|
|
+ LearnPaperQuestion pq = new LearnPaperQuestion();
|
|
|
+ pq.setQuestionId(q.getId()); // 没传questionId?
|
|
|
+ pq.setSeq(pqList.size() + 1);
|
|
|
+ pq.setKnowledgeId(q.getKnowledgeId());
|
|
|
+ pq.setScore(null == q.getScore() ? 1.0 : q.getScore());
|
|
|
+ fenScore += q.getScore();
|
|
|
+ AnswerSheet.PaperCondType pt = typeMap.get(q.getType());
|
|
|
+ if(null == pt) {
|
|
|
+ pt = new AnswerSheet.PaperCondType();
|
|
|
+ pt.setType(q.getType());
|
|
|
+ pt.setCount(1);
|
|
|
+ pt.setScore(pq.getScore());
|
|
|
+ typeMap.put(q.getType(), pt);
|
|
|
+ typeList.add(pt);
|
|
|
+ } else {
|
|
|
+ pt.setCount(pt.getCount() + 1);
|
|
|
+ pt.setScore((pq.getScore() + q.getScore()) / 2);
|
|
|
+ }
|
|
|
+ pqList.add(pq);
|
|
|
+ }
|
|
|
+ AnswerSheet.PaperCond info = new AnswerSheet.PaperCond();
|
|
|
+ info.setScore(paper.getFenshu());
|
|
|
+ info.setTime(90 * 60);
|
|
|
+ typeList.stream().forEach(t -> t.setScore(Math.round(t.getScore() * 10) / 10.0));
|
|
|
+ info.setTypes(typeList);
|
|
|
+ paper.setPaperInfo(JSONObject.toJSONString(info));
|
|
|
+ paper.setFenshu((int) Math.round(fenScore));
|
|
|
+ paperService.savePaper(paper, pqList);
|
|
|
+ }
|
|
|
+
|
|
|
public List<TreeNode> getKnowledgeTree(String examineeType, Long subjectId, Set<Long> knowledgeIdSet, Long studentId) {
|
|
|
LearnKnowledgeTree ktCond = new LearnKnowledgeTree();
|
|
|
if (null != subjectId && !subjectId.equals(100L)) {
|