试题得分: " + oneScore + "
"; - StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); - if (stuPaperScoreDO != null) { - // 说明已经是做过该题,需要更新数据 - stuPaperScoreDO.setScore(new BigDecimal(oneScore)); - stuPaperScoreDO.setContent(judgementStr); - stuPaperScoreDO.setSort(educationPaperQu.getSort()); - stuPaperScoreDO.setSubjectName("windows网络设置"); - int isTrue = oneScore == 0 ? 1 : oneScore == Double.parseDouble(quScore) ? 0 : 2; - stuPaperScoreDO.setIsTrue(isTrue); - stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreDO.setTenantId(systemTenant.getId()); - stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); - } else { - StuPaperScoreDO insertInfo = new StuPaperScoreDO(); - insertInfo.setStuId(stuInfoVo.getStuId()); - insertInfo.setPaperId(stuInfoVo.getPaperId()); - insertInfo.setQuId(quId); - insertInfo.setScore(new BigDecimal(oneScore)); - insertInfo.setContent(judgementStr); - insertInfo.setSort(educationPaperQu.getSort()); - insertInfo.setSubjectName("windows网络设置"); - int isTrue = oneScore == 0 ? 1 : oneScore == Double.parseDouble(quScore) ? 0 : 2; - insertInfo.setIsTrue(isTrue); - insertInfo.setTenantId(systemTenant.getId()); - insertInfo.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreService.insertStuPaperScore(insertInfo); - } + StuPaperScoreDO insertInfo = new StuPaperScoreDO(); + insertInfo.setStuId(stuInfoVo.getStuId()); + insertInfo.setPaperId(stuInfoVo.getPaperId()); + insertInfo.setQuId(quId); + insertInfo.setScore(new BigDecimal(oneScore)); + insertInfo.setContent(judgementStr); + insertInfo.setSort(educationPaperQu.getSort()); + insertInfo.setSubjectName("windows网络设置"); + int isTrue = oneScore == 0 ? 1 : oneScore == Double.parseDouble(quScore) ? 0 : 2; + insertInfo.setIsTrue(isTrue); + insertInfo.setTenantId(systemTenant.getId()); + insertInfo.setTemporaryId(stuInfoVo.getTemporaryId()); + insertInfo.setTrueScore(new BigDecimal(quScore)); + stuPaperScoreService.insertStuPaperScore(insertInfo); if (fileInputStream != null) { try { fileInputStream.close(); @@ -215,7 +204,7 @@ public class AutoForWinEdgeSettingServiceImpl implements AutoForWinEdgeSettingSe } } // 没有作答的题目直接0分 - for (String str: noFileQuid) { + for (String str : noFileQuid) { String quId = str; List-----------------------------------------------------------
"; - judgementStr += "试题序号:" + educationPaperQu.getSort() + "
"; - judgementStr += "试题编号:" + examQuestion.getQuNum() + "
"; - judgementStr += "试题分数:" + Double.parseDouble(quScore) + "
"; - judgementStr += "试题名称:" + name + "
"; - SourceAndText cpojo = judgementBrowerService.Judgement(Double.parseDouble(quScore), stFile, examQuestion, judgementStr); - score = score.add(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); - judgementStr = cpojo.getText(); - judgementStr += "试题得分:" + cpojo.getScore() + "
"; - // 4、需要更新学生试题得分,首先需要查询试题的数据库是否保存信息 - // 通过 quId,stuId,paperId 查询 - StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); - if (stuPaperScoreDO != null) { - // 说明已经是做过该题,需要更新数据 - stuPaperScoreDO.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); - stuPaperScoreDO.setContent(judgementStr); - stuPaperScoreDO.setSort(educationPaperQu.getSort()); - stuPaperScoreDO.setSubjectName(name); - stuPaperScoreDO.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); - stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreDO.setTenantId(systemTenant.getId()); - stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); - } else { + // 3、根据题号进行查询试题的相关信息 + Optional-----------------------------------------------------------
"; + judgementStr += "试题序号:" + educationPaperQu.getSort() + "
"; + judgementStr += "试题编号:" + examQuestion.getQuNum() + "
"; + judgementStr += "试题分数:" + Double.parseDouble(quScore) + "
"; + judgementStr += "试题名称:" + name + "
"; + SourceAndText cpojo = judgementBrowerService.Judgement(Double.parseDouble(quScore), stFile, examQuestion, judgementStr); + score = score.add(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); + judgementStr = cpojo.getText(); + judgementStr += "试题得分:" + cpojo.getScore() + "
"; + // 4、需要更新学生试题得分 StuPaperScoreDO insertInfo = new StuPaperScoreDO(); insertInfo.setStuId(stuInfoVo.getStuId()); insertInfo.setPaperId(stuInfoVo.getPaperId()); @@ -104,10 +93,10 @@ public class AutoForBrowerServiceImpl implements AutoForBrowerService { insertInfo.setSubjectName(name); insertInfo.setTrueScore(new BigDecimal(quScore)); insertInfo.setTenantId(systemTenant.getId()); + insertInfo.setTemporaryId(stuInfoVo.getTemporaryId()); insertInfo.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); stuPaperScoreService.insertStuPaperScore(insertInfo); - } - break; + break; } } } diff --git a/src/main/java/com/example/exam/exam/service/autoforc/AutoForCServiceImpl.java b/src/main/java/com/example/exam/exam/service/autoforc/AutoForCServiceImpl.java index d9f6dcd..e93a721 100644 --- a/src/main/java/com/example/exam/exam/service/autoforc/AutoForCServiceImpl.java +++ b/src/main/java/com/example/exam/exam/service/autoforc/AutoForCServiceImpl.java @@ -32,8 +32,10 @@ public class AutoForCServiceImpl implements AutoForCService { StuPaperScoreService stuPaperScoreService; @Resource SystemTenantService systemTenantService; + /** * 自动判题C语言 + * * @param stuInfoVo 学生考试信息 * @return 是否通过 */ @@ -56,7 +58,7 @@ public class AutoForCServiceImpl implements AutoForCService { File[] txFileList = txFile.listFiles(); for (File stFile : txFileList) { // 获取试题编号和试题ID - String quNumber = stFile.getName(); + String quNumber = stFile.getName(); // 需要根据题号获取试题ID ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuNumber(quNumber); String quId = examQuestion.getQuId(); @@ -81,33 +83,21 @@ public class AutoForCServiceImpl implements AutoForCService { BigDecimal dangSource = new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP); judgementStr += "试题得分:" + dangSource + "
"; // 4、需要更新学生试题得分,首先需要查询试题的数据库是否保存信息 - // 通过 quId,stuId,paperId 查询 - StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); score = score.add(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); - if (stuPaperScoreDO != null) { - // 说明已经是做过该题,需要更新数据 - stuPaperScoreDO.setScore(dangSource); - stuPaperScoreDO.setContent(judgementStr); - stuPaperScoreDO.setSort(educationPaperQu.getSort()); - stuPaperScoreDO.setSubjectName(name); - stuPaperScoreDO.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); - stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreDO.setTenantId(systemTenant.getId()); - stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); - } else { - StuPaperScoreDO insertInfo = new StuPaperScoreDO(); - insertInfo.setStuId(stuInfoVo.getStuId()); - insertInfo.setPaperId(stuInfoVo.getPaperId()); - insertInfo.setQuId(quId); - insertInfo.setScore(dangSource); - insertInfo.setContent(judgementStr); - insertInfo.setSort(educationPaperQu.getSort()); - insertInfo.setSubjectName(name); - insertInfo.setTrueScore(new BigDecimal(quScore)); - insertInfo.setTenantId(systemTenant.getId()); - insertInfo.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); - stuPaperScoreService.insertStuPaperScore(insertInfo); - } + // 直接进行新增,不需要进行更新 + StuPaperScoreDO insertInfo = new StuPaperScoreDO(); + insertInfo.setStuId(stuInfoVo.getStuId()); + insertInfo.setPaperId(stuInfoVo.getPaperId()); + insertInfo.setQuId(quId); + insertInfo.setScore(dangSource); + insertInfo.setContent(judgementStr); + insertInfo.setSort(educationPaperQu.getSort()); + insertInfo.setSubjectName(name); + insertInfo.setTrueScore(new BigDecimal(quScore)); + insertInfo.setTenantId(systemTenant.getId()); + insertInfo.setTemporaryId(stuInfoVo.getTemporaryId()); + insertInfo.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); + stuPaperScoreService.insertStuPaperScore(insertInfo); break; } } diff --git a/src/main/java/com/example/exam/exam/service/autoforchoice/AutoForChoiceServiceImpl.java b/src/main/java/com/example/exam/exam/service/autoforchoice/AutoForChoiceServiceImpl.java index 0de6f75..1989b73 100644 --- a/src/main/java/com/example/exam/exam/service/autoforchoice/AutoForChoiceServiceImpl.java +++ b/src/main/java/com/example/exam/exam/service/autoforchoice/AutoForChoiceServiceImpl.java @@ -38,8 +38,10 @@ public class AutoForChoiceServiceImpl implements AutoForChoiceService { SystemTenantService systemTenantService; @Autowired private EducationPaperMapper educationPaperMapper; + /** * 自动判题选择题 + * * @param stuInfoVo 学生考试信息 * @return 是否通过 */ @@ -138,31 +140,19 @@ public class AutoForChoiceServiceImpl implements AutoForChoiceService { judgementStr += "得分:0
"; isRight = false; } - StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); - if (stuPaperScoreDO != null) { - // 说明已经是做过该题,需要更新数据 - stuPaperScoreDO.setScore(isRight ? new BigDecimal(quScore) : new BigDecimal(0)); - stuPaperScoreDO.setContent(judgementStr); - stuPaperScoreDO.setSort(educationPaperQu.getSort()); - stuPaperScoreDO.setSubjectName("选择题"); - stuPaperScoreDO.setIsTrue(isRight ? 0 : 1); - stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreDO.setTenantId(systemTenant.getId()); - stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); - } else { - StuPaperScoreDO insertInfo = new StuPaperScoreDO(); - insertInfo.setStuId(stuInfoVo.getStuId()); - insertInfo.setPaperId(stuInfoVo.getPaperId()); - insertInfo.setQuId(quId); - insertInfo.setScore(isRight ? new BigDecimal(quScore) : new BigDecimal(0)); - insertInfo.setContent(judgementStr); - insertInfo.setSort(educationPaperQu.getSort()); - insertInfo.setSubjectName("选择题"); - insertInfo.setIsTrue(isRight ? 0 : 1); - insertInfo.setTenantId(systemTenant.getId()); - insertInfo.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreService.insertStuPaperScore(insertInfo); - } + StuPaperScoreDO insertInfo = new StuPaperScoreDO(); + insertInfo.setStuId(stuInfoVo.getStuId()); + insertInfo.setPaperId(stuInfoVo.getPaperId()); + insertInfo.setQuId(quId); + insertInfo.setScore(isRight ? new BigDecimal(quScore) : new BigDecimal(0)); + insertInfo.setContent(judgementStr); + insertInfo.setSort(educationPaperQu.getSort()); + insertInfo.setSubjectName("选择题"); + insertInfo.setIsTrue(isRight ? 0 : 1); + insertInfo.setTenantId(systemTenant.getId()); + insertInfo.setTemporaryId(stuInfoVo.getTemporaryId()); + insertInfo.setTrueScore(new BigDecimal(quScore)); + stuPaperScoreService.insertStuPaperScore(insertInfo); } else { // 根据ID查询试题 ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId); @@ -182,31 +172,19 @@ public class AutoForChoiceServiceImpl implements AutoForChoiceService { judgementStr += "学生答案: 未作答
"; judgementStr += "正确答案:" + trueAbswerSort + "
"; judgementStr += "得分:0
"; - StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); - if (stuPaperScoreDO != null) { - // 说明已经是做过该题,需要更新数据 - stuPaperScoreDO.setScore(new BigDecimal(0)); - stuPaperScoreDO.setContent(judgementStr); - stuPaperScoreDO.setSort(educationPaperQu.getSort()); - stuPaperScoreDO.setSubjectName("选择题"); - stuPaperScoreDO.setIsTrue(1); - stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreDO.setTenantId(systemTenant.getId()); - stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); - } else { - StuPaperScoreDO insertInfo = new StuPaperScoreDO(); - insertInfo.setStuId(stuInfoVo.getStuId()); - insertInfo.setPaperId(stuInfoVo.getPaperId()); - insertInfo.setQuId(quId); - insertInfo.setScore(new BigDecimal(0)); - insertInfo.setContent(judgementStr); - insertInfo.setSort(educationPaperQu.getSort()); - insertInfo.setSubjectName("选择题"); - insertInfo.setIsTrue(1); - insertInfo.setTenantId(systemTenant.getId()); - insertInfo.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreService.insertStuPaperScore(insertInfo); - } + StuPaperScoreDO insertInfo = new StuPaperScoreDO(); + insertInfo.setStuId(stuInfoVo.getStuId()); + insertInfo.setPaperId(stuInfoVo.getPaperId()); + insertInfo.setQuId(quId); + insertInfo.setScore(new BigDecimal(0)); + insertInfo.setContent(judgementStr); + insertInfo.setSort(educationPaperQu.getSort()); + insertInfo.setSubjectName("选择题"); + insertInfo.setIsTrue(1); + insertInfo.setTenantId(systemTenant.getId()); + insertInfo.setTemporaryId(stuInfoVo.getTemporaryId()); + insertInfo.setTrueScore(new BigDecimal(quScore)); + stuPaperScoreService.insertStuPaperScore(insertInfo); } } if (fileInputStream != null) { @@ -244,31 +222,19 @@ public class AutoForChoiceServiceImpl implements AutoForChoiceService { judgementStr += "学生答案: 未作答
"; judgementStr += "正确答案:" + trueAbswerSort + "
"; judgementStr += "得分:0
"; - StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); - if (stuPaperScoreDO != null) { - // 说明已经是做过该题,需要更新数据 - stuPaperScoreDO.setScore(new BigDecimal(0)); - stuPaperScoreDO.setContent(judgementStr); - stuPaperScoreDO.setSort(educationPaperQu.getSort()); - stuPaperScoreDO.setSubjectName("选择题"); - stuPaperScoreDO.setIsTrue(1); - stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreDO.setTenantId(systemTenant.getId()); - stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); - } else { - StuPaperScoreDO insertInfo = new StuPaperScoreDO(); - insertInfo.setStuId(stuInfoVo.getStuId()); - insertInfo.setPaperId(stuInfoVo.getPaperId()); - insertInfo.setQuId(quId); - insertInfo.setScore(new BigDecimal(0)); - insertInfo.setContent(judgementStr); - insertInfo.setSort(educationPaperQu.getSort()); - insertInfo.setSubjectName("选择题"); - insertInfo.setIsTrue(1); - insertInfo.setTenantId(systemTenant.getId()); - insertInfo.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreService.insertStuPaperScore(insertInfo); - } + StuPaperScoreDO insertInfo = new StuPaperScoreDO(); + insertInfo.setStuId(stuInfoVo.getStuId()); + insertInfo.setPaperId(stuInfoVo.getPaperId()); + insertInfo.setQuId(quId); + insertInfo.setScore(new BigDecimal(0)); + insertInfo.setContent(judgementStr); + insertInfo.setSort(educationPaperQu.getSort()); + insertInfo.setSubjectName("选择题"); + insertInfo.setIsTrue(1); + insertInfo.setTenantId(systemTenant.getId()); + insertInfo.setTemporaryId(stuInfoVo.getTemporaryId()); + insertInfo.setTrueScore(new BigDecimal(quScore)); + stuPaperScoreService.insertStuPaperScore(insertInfo); } } return score; @@ -309,7 +275,6 @@ public class AutoForChoiceServiceImpl implements AutoForChoiceService { } - public static String convertToLetter(int number) { // 判断是否在 1 到 26 的范围内 if (number >= 1 && number <= 26) { diff --git a/src/main/java/com/example/exam/exam/service/autoforfile/AutoForFileServiceImpl.java b/src/main/java/com/example/exam/exam/service/autoforfile/AutoForFileServiceImpl.java index 06d2929..e720176 100644 --- a/src/main/java/com/example/exam/exam/service/autoforfile/AutoForFileServiceImpl.java +++ b/src/main/java/com/example/exam/exam/service/autoforfile/AutoForFileServiceImpl.java @@ -40,8 +40,10 @@ public class AutoForFileServiceImpl implements AutoForFileService { StuPaperScoreService stuPaperScoreService; @Resource SystemTenantService systemTenantService; + /** * 自动判题文件处理 + * * @param stuInfoVo 学生考试信息 * @return 是否通过 */ @@ -77,43 +79,30 @@ public class AutoForFileServiceImpl implements AutoForFileService { EducationPaperScheme educationPaperScheme = result.get(); EducationPaperQu educationPaperQu = results.get(); String quScore = educationPaperScheme.getQuScores(); - String judgementStr = "-----------------------------------------------------------
"; - judgementStr += "试题序号:" + educationPaperQu.getSort() + "
"; - judgementStr += "试题编号:" + examQuestion.getQuNum() + "
"; - judgementStr += "试题分数:" + Double.parseDouble(quScore) + "
"; - judgementStr += "试题名称:" + name + "
"; - SourceAndText cpojo = fileServerice.Judgement(Double.parseDouble(quScore), stFile, examQuestion, judgementStr); - score = score.add(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); - judgementStr = cpojo.getText(); - judgementStr += "试题得分:" + cpojo.getScore() + "
"; - // 4、需要更新学生试题得分,首先需要查询试题的数据库是否保存信息 - // 通过 quId,stuId,paperId 查询 - StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); - if (stuPaperScoreDO != null) { - // 说明已经是做过该题,需要更新数据 - stuPaperScoreDO.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); - stuPaperScoreDO.setContent(judgementStr); - stuPaperScoreDO.setSort(educationPaperQu.getSort()); - stuPaperScoreDO.setSubjectName(name); - stuPaperScoreDO.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); - stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreDO.setTenantId(systemTenant.getId()); - stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); - } else { - StuPaperScoreDO insertInfo = new StuPaperScoreDO(); - insertInfo.setStuId(stuInfoVo.getStuId()); - insertInfo.setPaperId(stuInfoVo.getPaperId()); - insertInfo.setQuId(quId); - insertInfo.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); - insertInfo.setContent(judgementStr); - insertInfo.setSort(educationPaperQu.getSort()); - insertInfo.setSubjectName(name); - insertInfo.setTrueScore(new BigDecimal(quScore)); - insertInfo.setTenantId(systemTenant.getId()); - insertInfo.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); - stuPaperScoreService.insertStuPaperScore(insertInfo); - } - break; + String judgementStr = "-----------------------------------------------------------
"; + judgementStr += "试题序号:" + educationPaperQu.getSort() + "
"; + judgementStr += "试题编号:" + examQuestion.getQuNum() + "
"; + judgementStr += "试题分数:" + Double.parseDouble(quScore) + "
"; + judgementStr += "试题名称:" + name + "
"; + SourceAndText cpojo = fileServerice.Judgement(Double.parseDouble(quScore), stFile, examQuestion, judgementStr); + score = score.add(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); + judgementStr = cpojo.getText(); + judgementStr += "试题得分:" + cpojo.getScore() + "
"; + // 4、需要更新学生试题得分 + StuPaperScoreDO insertInfo = new StuPaperScoreDO(); + insertInfo.setStuId(stuInfoVo.getStuId()); + insertInfo.setPaperId(stuInfoVo.getPaperId()); + insertInfo.setQuId(quId); + insertInfo.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); + insertInfo.setContent(judgementStr); + insertInfo.setSort(educationPaperQu.getSort()); + insertInfo.setSubjectName(name); + insertInfo.setTrueScore(new BigDecimal(quScore)); + insertInfo.setTenantId(systemTenant.getId()); + insertInfo.setTemporaryId(stuInfoVo.getTemporaryId()); + insertInfo.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); + stuPaperScoreService.insertStuPaperScore(insertInfo); + break; } } } diff --git a/src/main/java/com/example/exam/exam/service/autoformysql/AutoForMysqlServiceImpl.java b/src/main/java/com/example/exam/exam/service/autoformysql/AutoForMysqlServiceImpl.java index 1330756..33c1597 100644 --- a/src/main/java/com/example/exam/exam/service/autoformysql/AutoForMysqlServiceImpl.java +++ b/src/main/java/com/example/exam/exam/service/autoformysql/AutoForMysqlServiceImpl.java @@ -34,8 +34,10 @@ public class AutoForMysqlServiceImpl implements AutoForMysqlService { StuPaperScoreService stuPaperScoreService; @Resource SystemTenantService systemTenantService; + /** * 自动判题C语言 + * * @param stuInfoVo 学生考试信息 * @return 是否通过 */ @@ -67,53 +69,40 @@ public class AutoForMysqlServiceImpl implements AutoForMysqlService { File[] wjFiles = stFile.listFiles(); for (File wjFile : wjFiles) { - // 3、根据题号进行查询试题的相关信息 - Optional-----------------------------------------------------------
"; - judgementStr += "试题序号:" + educationPaperQu.getSort() + "
"; - judgementStr += "试题编号:" + examQuestion.getQuNum() + "
"; - judgementStr += "试题分数:" + Double.parseDouble(quScore) + "
"; - judgementStr += "试题名称:" + name + "
"; - SourceAndText cpojo = mysqlLocalService.Judgement(Double.parseDouble(quScore), stFile, examQuestion, judgementStr); - score = score.add(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); - judgementStr = cpojo.getText(); - judgementStr += "试题得分:" + cpojo.getScore() + "
"; - // 4、需要更新学生试题得分,首先需要查询试题的数据库是否保存信息 - // 通过 quId,stuId,paperId 查询 - StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); - if (stuPaperScoreDO != null) { - // 说明已经是做过该题,需要更新数据 - stuPaperScoreDO.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); - stuPaperScoreDO.setContent(judgementStr); - stuPaperScoreDO.setSort(educationPaperQu.getSort()); - stuPaperScoreDO.setSubjectName(name); - stuPaperScoreDO.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); - stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreDO.setTenantId(systemTenant.getId()); - stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); - } else { - StuPaperScoreDO insertInfo = new StuPaperScoreDO(); - insertInfo.setStuId(stuInfoVo.getStuId()); - insertInfo.setPaperId(stuInfoVo.getPaperId()); - insertInfo.setQuId(quId); - insertInfo.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); - insertInfo.setContent(judgementStr); - insertInfo.setSort(educationPaperQu.getSort()); - insertInfo.setSubjectName(name); - insertInfo.setTrueScore(new BigDecimal(quScore)); - insertInfo.setTenantId(systemTenant.getId()); - insertInfo.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); - stuPaperScoreService.insertStuPaperScore(insertInfo); - } - System.out.println(judgementStr); + String judgementStr = "-----------------------------------------------------------
"; + judgementStr += "试题序号:" + educationPaperQu.getSort() + "
"; + judgementStr += "试题编号:" + examQuestion.getQuNum() + "
"; + judgementStr += "试题分数:" + Double.parseDouble(quScore) + "
"; + judgementStr += "试题名称:" + name + "
"; + SourceAndText cpojo = mysqlLocalService.Judgement(Double.parseDouble(quScore), stFile, examQuestion, judgementStr); + score = score.add(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); + judgementStr = cpojo.getText(); + judgementStr += "试题得分:" + cpojo.getScore() + "
"; + // 4、需要更新学生试题得分 + StuPaperScoreDO insertInfo = new StuPaperScoreDO(); + insertInfo.setStuId(stuInfoVo.getStuId()); + insertInfo.setPaperId(stuInfoVo.getPaperId()); + insertInfo.setQuId(quId); + insertInfo.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); + insertInfo.setContent(judgementStr); + insertInfo.setSort(educationPaperQu.getSort()); + insertInfo.setSubjectName(name); + insertInfo.setTrueScore(new BigDecimal(quScore)); + insertInfo.setTenantId(systemTenant.getId()); + insertInfo.setTemporaryId(stuInfoVo.getTemporaryId()); + insertInfo.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); + stuPaperScoreService.insertStuPaperScore(insertInfo); + System.out.println(judgementStr); } - break; + break; } } diff --git a/src/main/java/com/example/exam/exam/service/autoforps/AutoForPsServiceImpl.java b/src/main/java/com/example/exam/exam/service/autoforps/AutoForPsServiceImpl.java index dba1f55..280d9af 100644 --- a/src/main/java/com/example/exam/exam/service/autoforps/AutoForPsServiceImpl.java +++ b/src/main/java/com/example/exam/exam/service/autoforps/AutoForPsServiceImpl.java @@ -19,7 +19,7 @@ import java.util.List; import java.util.Optional; @Service -public class AutoForPsServiceImpl implements AutoForPsService{ +public class AutoForPsServiceImpl implements AutoForPsService { @Resource PsService psService; @@ -77,33 +77,20 @@ public class AutoForPsServiceImpl implements AutoForPsService{ score = score.add(new BigDecimal(wordpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); judgementStr = wordpojo.getText(); judgementStr += "试题得分:" + wordpojo.getScore() + "
"; - // 4、需要更新学生试题得分,首先需要查询试题的数据库是否保存信息 - // 通过 quId,stuId,paperId 查询 - StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); - if (stuPaperScoreDO != null) { - // 说明已经是做过该题,需要更新数据 - stuPaperScoreDO.setScore(new BigDecimal(wordpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); - stuPaperScoreDO.setContent(judgementStr); - stuPaperScoreDO.setSort(educationPaperQu.getSort()); - stuPaperScoreDO.setSubjectName(name); - stuPaperScoreDO.setIsTrue(wordpojo.getScore() == 0 ? 1 : wordpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); - stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreDO.setTenantId(systemTenant.getId()); - stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); - } else { - StuPaperScoreDO insertInfo = new StuPaperScoreDO(); - insertInfo.setStuId(stuInfoVo.getStuId()); - insertInfo.setPaperId(stuInfoVo.getPaperId()); - insertInfo.setQuId(quId); - insertInfo.setScore(new BigDecimal(wordpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); - insertInfo.setContent(judgementStr); - insertInfo.setSort(educationPaperQu.getSort()); - insertInfo.setSubjectName(name); - insertInfo.setTrueScore(new BigDecimal(quScore)); - insertInfo.setTenantId(systemTenant.getId()); - insertInfo.setIsTrue(wordpojo.getScore() == 0 ? 1 : wordpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); - stuPaperScoreService.insertStuPaperScore(insertInfo); - } + // 4、需要更新学生试题得分 + StuPaperScoreDO insertInfo = new StuPaperScoreDO(); + insertInfo.setStuId(stuInfoVo.getStuId()); + insertInfo.setPaperId(stuInfoVo.getPaperId()); + insertInfo.setQuId(quId); + insertInfo.setScore(new BigDecimal(wordpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); + insertInfo.setContent(judgementStr); + insertInfo.setSort(educationPaperQu.getSort()); + insertInfo.setSubjectName(name); + insertInfo.setTrueScore(new BigDecimal(quScore)); + insertInfo.setTenantId(systemTenant.getId()); + insertInfo.setTemporaryId(stuInfoVo.getTemporaryId()); + insertInfo.setIsTrue(wordpojo.getScore() == 0 ? 1 : wordpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); + stuPaperScoreService.insertStuPaperScore(insertInfo); break; } } diff --git a/src/main/java/com/example/exam/exam/service/ps/PsServiceImpl.java b/src/main/java/com/example/exam/exam/service/ps/PsServiceImpl.java index 543dec3..823f39b 100644 --- a/src/main/java/com/example/exam/exam/service/ps/PsServiceImpl.java +++ b/src/main/java/com/example/exam/exam/service/ps/PsServiceImpl.java @@ -27,8 +27,8 @@ import java.util.*; import java.util.stream.Collectors; @Service -public class PsServiceImpl implements PsService{ - static String answerLogPath ; // 文件路径 +public class PsServiceImpl implements PsService { + static String answerLogPath; // 文件路径 @Resource private ExamQuestionAnswerMapper examQuestionAnswerMapper; private static final DateTimeFormatter formatter = @@ -61,11 +61,11 @@ public class PsServiceImpl implements PsService{ String sthJsonPath = path.replaceAll("(?i)\\.psd$", ".json"); Path jsonFilePath = Paths.get(sthJsonPath); - Path jsxPath=null; + Path jsxPath = null; // 执行 Photoshop 脚本 try { - String jsxTargetPath= PsUtil.runTwoPsdsInOneScript(path, jsxTemplatePath, photoshopExe); - jsxPath = Paths.get(jsxTargetPath); + String jsxTargetPath = PsUtil.runTwoPsdsInOneScript(path, jsxTemplatePath, photoshopExe); + jsxPath = Paths.get(jsxTargetPath); appendToFile(answerLogPath, "Photoshop脚本执行完毕"); } catch (Exception e) { @@ -103,7 +103,7 @@ public class PsServiceImpl implements PsService{ sourceAndText.setText(judgementStr); sourceAndText.setScore(0.0); return sourceAndText; - }finally { + } finally { // 检查文件是否存在 if (Files.exists(jsonFilePath)) { try { @@ -141,11 +141,11 @@ public class PsServiceImpl implements PsService{ if (isCorrect) { judgementStr = HtmlAppender.appendHtmlLine(judgementStr, currentPath + "【" + correctValue + "】【✅】"); - appendToFile(answerLogPath, currentPath + "【" + correctValue + "】"+"【√】"); + appendToFile(answerLogPath, currentPath + "【" + correctValue + "】" + "【√】"); result.setScore(result.getScore() + Double.parseDouble(item.getRate())); } else { - judgementStr = HtmlAppender.appendHtmlLine(judgementStr, currentPath + "【" + correctValue + "】"+"【❌】"); - appendToFile(answerLogPath, currentPath + "【" + correctValue + "】"+"【×】"); + judgementStr = HtmlAppender.appendHtmlLine(judgementStr, currentPath + "【" + correctValue + "】" + "【❌】"); + appendToFile(answerLogPath, currentPath + "【" + correctValue + "】" + "【×】"); } result.setText(judgementStr); @@ -220,9 +220,6 @@ public class PsServiceImpl implements PsService{ } - - - /** * 构建答案树形结构 */ diff --git a/src/main/java/com/example/exam/exam/service/stupaperscore/StuPaperScoreService.java b/src/main/java/com/example/exam/exam/service/stupaperscore/StuPaperScoreService.java index 97ea1f7..5095a89 100644 --- a/src/main/java/com/example/exam/exam/service/stupaperscore/StuPaperScoreService.java +++ b/src/main/java/com/example/exam/exam/service/stupaperscore/StuPaperScoreService.java @@ -12,7 +12,7 @@ import java.util.List; */ public interface StuPaperScoreService { - List试题得分:" + dangSource + "
"; - // 4、需要更新学生试题得分,首先需要查询试题的数据库是否保存信息 - // 通过 quId,stuId,paperId 查询 - StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); - if (stuPaperScoreDO != null) { - // 说明已经是做过该题,需要更新数据 - stuPaperScoreDO.setScore(dangSource); - stuPaperScoreDO.setContent(judgementStr); - stuPaperScoreDO.setSort(educationPaperQu.getSort()); - stuPaperScoreDO.setSubjectName(name); - stuPaperScoreDO.setIsTrue(excelpojo.getScore() == 0 ? 1 : excelpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); - stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreDO.setTenantId(systemTenant.getId()); - stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); - } else { - StuPaperScoreDO insertInfo = new StuPaperScoreDO(); - insertInfo.setStuId(stuInfoVo.getStuId()); - insertInfo.setPaperId(stuInfoVo.getPaperId()); - insertInfo.setQuId(quId); - insertInfo.setScore(dangSource); - insertInfo.setContent(judgementStr); - insertInfo.setSort(educationPaperQu.getSort()); - insertInfo.setSubjectName(name); - insertInfo.setTrueScore(new BigDecimal(quScore)); - insertInfo.setTenantId(systemTenant.getId()); - insertInfo.setIsTrue(excelpojo.getScore() == 0 ? 1 : excelpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); - stuPaperScoreService.insertStuPaperScore(insertInfo); - } + // 4、需要新增生试题得分 + StuPaperScoreDO insertInfo = new StuPaperScoreDO(); + insertInfo.setStuId(stuInfoVo.getStuId()); + insertInfo.setPaperId(stuInfoVo.getPaperId()); + insertInfo.setQuId(quId); + insertInfo.setScore(dangSource); + insertInfo.setContent(judgementStr); + insertInfo.setSort(educationPaperQu.getSort()); + insertInfo.setSubjectName(name); + insertInfo.setTrueScore(new BigDecimal(quScore)); + insertInfo.setTenantId(systemTenant.getId()); + insertInfo.setTemporaryId(stuInfoVo.getTemporaryId()); + insertInfo.setIsTrue(excelpojo.getScore() == 0 ? 1 : excelpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); + stuPaperScoreService.insertStuPaperScore(insertInfo); break; } } diff --git a/src/main/java/com/example/exam/exam/service/wpspptx/pptx/JudgementForPptxServiceImpl.java b/src/main/java/com/example/exam/exam/service/wpspptx/pptx/JudgementForPptxServiceImpl.java index 346467b..0505c63 100644 --- a/src/main/java/com/example/exam/exam/service/wpspptx/pptx/JudgementForPptxServiceImpl.java +++ b/src/main/java/com/example/exam/exam/service/wpspptx/pptx/JudgementForPptxServiceImpl.java @@ -83,33 +83,20 @@ public class JudgementForPptxServiceImpl implements JudgementForPptxService { judgementStr = pptxpojo.getText(); BigDecimal dangSource = new BigDecimal(pptxpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP); judgementStr += "试题得分:" + dangSource + "
"; - // 4、需要更新学生试题得分,首先需要查询试题的数据库是否保存信息 - // 通过 quId,stuId,paperId 查询 - StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); - if (stuPaperScoreDO != null) { - // 说明已经是做过该题,需要更新数据 - stuPaperScoreDO.setScore(dangSource); - stuPaperScoreDO.setContent(judgementStr); - stuPaperScoreDO.setSort(educationPaperQu.getSort()); - stuPaperScoreDO.setSubjectName(name); - stuPaperScoreDO.setIsTrue(pptxpojo.getScore() == 0 ? 1 : pptxpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); - stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreDO.setTenantId(systemTenant.getId()); - stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); - } else { - StuPaperScoreDO insertInfo = new StuPaperScoreDO(); - insertInfo.setStuId(stuInfoVo.getStuId()); - insertInfo.setPaperId(stuInfoVo.getPaperId()); - insertInfo.setQuId(quId); - insertInfo.setScore(dangSource); - insertInfo.setContent(judgementStr); - insertInfo.setSort(educationPaperQu.getSort()); - insertInfo.setSubjectName(name); - insertInfo.setTrueScore(new BigDecimal(quScore)); - insertInfo.setTenantId(systemTenant.getId()); - insertInfo.setIsTrue(pptxpojo.getScore() == 0 ? 1 : pptxpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); - stuPaperScoreService.insertStuPaperScore(insertInfo); - } + // 4、需要新增生试题得分 + StuPaperScoreDO insertInfo = new StuPaperScoreDO(); + insertInfo.setStuId(stuInfoVo.getStuId()); + insertInfo.setPaperId(stuInfoVo.getPaperId()); + insertInfo.setQuId(quId); + insertInfo.setScore(dangSource); + insertInfo.setContent(judgementStr); + insertInfo.setSort(educationPaperQu.getSort()); + insertInfo.setSubjectName(name); + insertInfo.setTrueScore(new BigDecimal(quScore)); + insertInfo.setTenantId(systemTenant.getId()); + insertInfo.setTemporaryId(stuInfoVo.getTemporaryId()); + insertInfo.setIsTrue(pptxpojo.getScore() == 0 ? 1 : pptxpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); + stuPaperScoreService.insertStuPaperScore(insertInfo); break; } } diff --git a/src/main/java/com/example/exam/exam/service/wpsword/docx4j/endNote/EndNoteing.java b/src/main/java/com/example/exam/exam/service/wpsword/docx4j/endNote/EndNoteing.java index 30970a8..a921697 100644 --- a/src/main/java/com/example/exam/exam/service/wpsword/docx4j/endNote/EndNoteing.java +++ b/src/main/java/com/example/exam/exam/service/wpsword/docx4j/endNote/EndNoteing.java @@ -46,10 +46,9 @@ public class EndNoteing { } - /** * 获取尾注内容 - * "declare namespace w='http://schemas.openxmlformats.org/wordprocessingml/2006/main' " + * "declare namespace w='http://schemas.openxmlformats.org/wordprocessingml/2006/main' " */ public static String getEndNoteContent(XmlCursor endnoteRefCursor, CTEndnotes endnotes) { if (endnoteRefCursor == null || endnotes == null) return null; @@ -114,5 +113,4 @@ public class EndNoteing { } - } \ No newline at end of file diff --git a/src/main/java/com/example/exam/exam/service/wpsword/word/JudgementForWordServiceImpl.java b/src/main/java/com/example/exam/exam/service/wpsword/word/JudgementForWordServiceImpl.java index 42555dd..fa70a9d 100644 --- a/src/main/java/com/example/exam/exam/service/wpsword/word/JudgementForWordServiceImpl.java +++ b/src/main/java/com/example/exam/exam/service/wpsword/word/JudgementForWordServiceImpl.java @@ -80,33 +80,20 @@ public class JudgementForWordServiceImpl implements JudgementForWordService { judgementStr = wordpojo.getText(); BigDecimal dangSource = new BigDecimal(wordpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP); judgementStr += "试题得分:" + dangSource + "
"; - // 4、需要更新学生试题得分,首先需要查询试题的数据库是否保存信息 - // 通过 quId,stuId,paperId 查询 - StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); - if (stuPaperScoreDO != null) { - // 说明已经是做过该题,需要更新数据 - stuPaperScoreDO.setScore(dangSource); - stuPaperScoreDO.setContent(judgementStr); - stuPaperScoreDO.setSort(educationPaperQu.getSort()); - stuPaperScoreDO.setSubjectName(name); - stuPaperScoreDO.setIsTrue(wordpojo.getScore() == 0 ? 1 : wordpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); - stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); - stuPaperScoreDO.setTenantId(systemTenant.getId()); - stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); - } else { - StuPaperScoreDO insertInfo = new StuPaperScoreDO(); - insertInfo.setStuId(stuInfoVo.getStuId()); - insertInfo.setPaperId(stuInfoVo.getPaperId()); - insertInfo.setQuId(quId); - insertInfo.setScore(dangSource); - insertInfo.setContent(judgementStr); - insertInfo.setSort(educationPaperQu.getSort()); - insertInfo.setSubjectName(name); - insertInfo.setTrueScore(new BigDecimal(quScore)); - insertInfo.setTenantId(systemTenant.getId()); - insertInfo.setIsTrue(wordpojo.getScore() == 0 ? 1 : wordpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); - stuPaperScoreService.insertStuPaperScore(insertInfo); - } + // 4、需要新增学生试题得分 + StuPaperScoreDO insertInfo = new StuPaperScoreDO(); + insertInfo.setStuId(stuInfoVo.getStuId()); + insertInfo.setPaperId(stuInfoVo.getPaperId()); + insertInfo.setQuId(quId); + insertInfo.setScore(dangSource); + insertInfo.setContent(judgementStr); + insertInfo.setSort(educationPaperQu.getSort()); + insertInfo.setSubjectName(name); + insertInfo.setTrueScore(new BigDecimal(quScore)); + insertInfo.setTenantId(systemTenant.getId()); + insertInfo.setTemporaryId(stuInfoVo.getTemporaryId()); + insertInfo.setIsTrue(wordpojo.getScore() == 0 ? 1 : wordpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); + stuPaperScoreService.insertStuPaperScore(insertInfo); break; } } diff --git a/src/main/resources/mapper/stupaperscore/StuPaperScoreMapper.xml b/src/main/resources/mapper/stupaperscore/StuPaperScoreMapper.xml index b8cfda5..0fa729c 100644 --- a/src/main/resources/mapper/stupaperscore/StuPaperScoreMapper.xml +++ b/src/main/resources/mapper/stupaperscore/StuPaperScoreMapper.xml @@ -9,13 +9,25 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ -->