【修改】 所有判分的判分路径

This commit is contained in:
dlaren
2025-07-15 10:59:26 +08:00
parent 3f4c7b6fa5
commit efa85abdfc
11 changed files with 507 additions and 492 deletions

View File

@@ -163,7 +163,6 @@ public class AutoController {
public Result<String> judgementForChoiceToJson(@RequestBody StuInfoVo stuInfoVo){ public Result<String> judgementForChoiceToJson(@RequestBody StuInfoVo stuInfoVo){
return Result.success(autoForChoiceService.autoForChoiceToJson(stuInfoVo)); return Result.success(autoForChoiceService.autoForChoiceToJson(stuInfoVo));
} }
/** /**
* 选择题判分 * 选择题判分
* @param stuInfoVo 学生选择题信息 * @param stuInfoVo 学生选择题信息

View File

@@ -51,65 +51,65 @@ public class AutoForBrowerServiceImpl implements AutoForBrowerService {
File folder = new File(filePath); File folder = new File(filePath);
// 2、获取到学生文件 // 2、获取到学生文件
File[] files = folder.listFiles(); File[] files = folder.listFiles();
for (File file : files) { // 获取到题型
File csFiles = new File(file.getPath()); for (File txFile : files) {
String quId = csFiles.getName(); String name = txFile.getName();
File[] csFileList = csFiles.listFiles(); if ("网络题".equals(name)) {
if (csFileList == null) { File[] txFileList = txFile.listFiles();
System.err.println("子目录读取失败: " + csFiles.getAbsolutePath()); for (File stFile : txFileList) {
continue; // 获取试题编号和试题ID
} String quId = stFile.getName().split("@")[1];
for (File one_file : csFileList) { String quNumber = stFile.getName().split("@")[0];
String name = one_file.getName(); File[] wjFiles = stFile.listFiles();
if ("网络题".equals(name)) { for (File wjFile : wjFiles) {
File mysql_file = new File(one_file.getPath()); if ("文件".equals(wjFile.getName())) {
// 3、根据题号进行查询试题的相关信息 File browerFile = new File(wjFile.getPath());
Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(name)).findFirst(); // 3、根据题号进行查询试题的相关信息
Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst(); Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(name)).findFirst();
Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst();
EducationPaperScheme educationPaperScheme = result.get(); EducationPaperScheme educationPaperScheme = result.get();
EducationPaperQu educationPaperQu = results.get(); EducationPaperQu educationPaperQu = results.get();
String quScore = educationPaperScheme.getQuScores(); String quScore = educationPaperScheme.getQuScores();
ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId); ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId);
String judgementStr = "<p>-----------------------------------------------------------</p>"; String judgementStr = "<p>-----------------------------------------------------------</p>";
judgementStr += "<p>试题序号:" + educationPaperQu.getSort() + "</p>"; judgementStr += "<p>试题序号:" + educationPaperQu.getSort() + "</p>";
judgementStr += "<p>试题编号:" + examQuestion.getQuNum() + "</p>"; judgementStr += "<p>试题编号:" + examQuestion.getQuNum() + "</p>";
judgementStr += "<p>试题分数:" + Double.parseDouble(quScore) + "</p>"; judgementStr += "<p>试题分数:" + Double.parseDouble(quScore) + "</p>";
judgementStr += "<p>试题名称:" + name + "</p>"; judgementStr += "<p>试题名称:" + name + "</p>";
SourceAndText cpojo = judgementBrowerService.Judgement(Double.parseDouble(quScore), mysql_file, examQuestion, judgementStr); SourceAndText cpojo = judgementBrowerService.Judgement(Double.parseDouble(quScore), browerFile, examQuestion, judgementStr);
score = score.add(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); score = score.add(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP));
judgementStr = cpojo.getText(); judgementStr = cpojo.getText();
judgementStr += "<p>试题得分:" + cpojo.getScore() + "</p>"; judgementStr += "<p>试题得分:" + cpojo.getScore() + "</p>";
// 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息 // 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息
// 通过 quIdstuIdpaperId 查询 // 通过 quIdstuIdpaperId 查询
StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId);
if (stuPaperScoreDO != null) { if (stuPaperScoreDO != null) {
// 说明已经是做过该题,需要更新数据 // 说明已经是做过该题,需要更新数据
stuPaperScoreDO.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); stuPaperScoreDO.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP));
stuPaperScoreDO.setContent(judgementStr); stuPaperScoreDO.setContent(judgementStr);
stuPaperScoreDO.setSort(educationPaperQu.getSort()); stuPaperScoreDO.setSort(educationPaperQu.getSort());
stuPaperScoreDO.setSubjectName(name); stuPaperScoreDO.setSubjectName(name);
stuPaperScoreDO.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); stuPaperScoreDO.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2);
stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); stuPaperScoreDO.setTrueScore(new BigDecimal(quScore));
stuPaperScoreDO.setTenantId(systemTenant.getId()); stuPaperScoreDO.setTenantId(systemTenant.getId());
stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO);
} else { } else {
StuPaperScoreDO insertInfo = new StuPaperScoreDO(); StuPaperScoreDO insertInfo = new StuPaperScoreDO();
insertInfo.setStuId(stuInfoVo.getStuId()); insertInfo.setStuId(stuInfoVo.getStuId());
insertInfo.setPaperId(stuInfoVo.getPaperId()); insertInfo.setPaperId(stuInfoVo.getPaperId());
insertInfo.setQuId(quId); insertInfo.setQuId(quId);
insertInfo.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); insertInfo.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP));
insertInfo.setContent(judgementStr); insertInfo.setContent(judgementStr);
insertInfo.setSort(educationPaperQu.getSort()); insertInfo.setSort(educationPaperQu.getSort());
insertInfo.setSubjectName(name); insertInfo.setSubjectName(name);
insertInfo.setTrueScore(new BigDecimal(quScore)); insertInfo.setTrueScore(new BigDecimal(quScore));
insertInfo.setTenantId(systemTenant.getId()); insertInfo.setTenantId(systemTenant.getId());
insertInfo.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); insertInfo.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2);
stuPaperScoreService.insertStuPaperScore(insertInfo); stuPaperScoreService.insertStuPaperScore(insertInfo);
}
break;
}
} }
System.out.println(judgementStr);
break;
} }
} }
} }

View File

@@ -48,71 +48,75 @@ public class AutoForCServiceImpl implements AutoForCService {
File folder = new File(filePath); File folder = new File(filePath);
// 2、获取到学生文件 // 2、获取到学生文件
File[] files = folder.listFiles(); File[] files = folder.listFiles();
for (File file : files) { // 获取到题型
File csFiles = new File(file.getPath()); for (File txFile : files) {
String quId = csFiles.getName(); String name = txFile.getName();
File[] csFileList = csFiles.listFiles(); if ("编程题".equals(name)) {
if (csFileList == null) { File[] txFileList = txFile.listFiles();
System.err.println("子目录读取失败: " + csFiles.getAbsolutePath()); for (File stFile : txFileList) {
continue; // 获取试题编号和试题ID
} String quId = stFile.getName().split("@")[1];
for (File csFile : csFileList) { String quNumber = stFile.getName().split("@")[0];
String name = csFile.getName(); File[] wjFiles = stFile.listFiles();
if ("编程题".equals(name)) { for (File wjFile : wjFiles) {
File[] cs_file_list = csFile.listFiles(); if ("文件".equals(wjFile.getName())) {
// 3、根据题号进行查询试题的相关信息 // 3、根据题号进行查询试题的相关信息
Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(name)).findFirst(); Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(name)).findFirst();
Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst(); Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst();
EducationPaperScheme educationPaperScheme = result.get();
EducationPaperScheme educationPaperScheme = result.get(); EducationPaperQu educationPaperQu = results.get();
EducationPaperQu educationPaperQu = results.get(); String quScore = educationPaperScheme.getQuScores();
String quScore = educationPaperScheme.getQuScores(); ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId);
ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId); System.out.println(wjFile);
for (File lastFile : cs_file_list) { File[] lastFiles = wjFile.listFiles();
String judgementStr = "<p>-----------------------------------------------------------</p>"; for (File lastFile : lastFiles) {
judgementStr += "<p>试题序号:" + educationPaperQu.getSort() + "</p>"; if (lastFile.getName().contains(".c")) {
judgementStr += "<p>试题编号:" + examQuestion.getQuNum() + "</p>"; String judgementStr = "<p>-----------------------------------------------------------</p>";
judgementStr += "<p>试题分数" + Double.parseDouble(quScore) + "</p>"; judgementStr += "<p>试题序号" + educationPaperQu.getSort() + "</p>";
judgementStr += "<p>试题名称" + name + "</p>"; judgementStr += "<p>试题编号" + examQuestion.getQuNum() + "</p>";
// 获取不带文件名称的路径 judgementStr += "<p>试题分数:" + Double.parseDouble(quScore) + "</p>";
String filePaths = lastFile.getParent(); judgementStr += "<p>试题名称:" + name + "</p>";
SourceAndText cpojo = judgementService.ProgrammingC(Double.parseDouble(quScore), filePaths, lastFile.getName(), examQuestion, judgementStr); // 获取不带文件名称的路径
judgementStr = cpojo.getText(); String filePaths = lastFile.getParent();
BigDecimal dangSource = new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP); SourceAndText cpojo = judgementService.ProgrammingC(Double.parseDouble(quScore), filePaths, lastFile.getName(), examQuestion, judgementStr);
judgementStr += "<p>试题得分:" + dangSource + "</p>"; judgementStr = cpojo.getText();
// 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息 BigDecimal dangSource = new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP);
// 通过 quIdstuIdpaperId 查询 judgementStr += "<p>试题得分:" + dangSource + "</p>";
StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); // 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息
score = score.add(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); // 通过 quIdstuIdpaperId 查询
if (stuPaperScoreDO != null) { StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId);
// 说明已经是做过该题,需要更新数据 score = score.add(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP));
stuPaperScoreDO.setScore(dangSource); if (stuPaperScoreDO != null) {
stuPaperScoreDO.setContent(judgementStr); // 说明已经是做过该题,需要更新数据
stuPaperScoreDO.setSort(educationPaperQu.getSort()); stuPaperScoreDO.setScore(dangSource);
stuPaperScoreDO.setSubjectName(name); stuPaperScoreDO.setContent(judgementStr);
stuPaperScoreDO.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); stuPaperScoreDO.setSort(educationPaperQu.getSort());
stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); stuPaperScoreDO.setSubjectName(name);
stuPaperScoreDO.setTenantId(systemTenant.getId()); stuPaperScoreDO.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2);
stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); stuPaperScoreDO.setTrueScore(new BigDecimal(quScore));
} else { stuPaperScoreDO.setTenantId(systemTenant.getId());
StuPaperScoreDO insertInfo = new StuPaperScoreDO(); stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO);
insertInfo.setStuId(stuInfoVo.getStuId()); } else {
insertInfo.setPaperId(stuInfoVo.getPaperId()); StuPaperScoreDO insertInfo = new StuPaperScoreDO();
insertInfo.setQuId(quId); insertInfo.setStuId(stuInfoVo.getStuId());
insertInfo.setScore(dangSource); insertInfo.setPaperId(stuInfoVo.getPaperId());
insertInfo.setContent(judgementStr); insertInfo.setQuId(quId);
insertInfo.setSort(educationPaperQu.getSort()); insertInfo.setScore(dangSource);
insertInfo.setSubjectName(name); insertInfo.setContent(judgementStr);
insertInfo.setTrueScore(new BigDecimal(quScore)); insertInfo.setSort(educationPaperQu.getSort());
insertInfo.setTenantId(systemTenant.getId()); insertInfo.setSubjectName(name);
insertInfo.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); insertInfo.setTrueScore(new BigDecimal(quScore));
stuPaperScoreService.insertStuPaperScore(insertInfo); insertInfo.setTenantId(systemTenant.getId());
insertInfo.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2);
stuPaperScoreService.insertStuPaperScore(insertInfo);
}
break;
}
}
} }
break;
} }
} }
} }
} }
return score; return score;
} }

View File

@@ -57,68 +57,65 @@ public class AutoForFileServiceImpl implements AutoForFileService {
File folder = new File(filePath); File folder = new File(filePath);
// 2、获取到学生文件 // 2、获取到学生文件
File[] files = folder.listFiles(); File[] files = folder.listFiles();
for (File file : files) { // 获取到题型
File csFiles = new File(file.getPath()); for (File txFile : files) {
String quId = csFiles.getName(); String name = txFile.getName();
File[] csFileList = csFiles.listFiles(); if ("文件处理".equals(name)) {
if (csFileList == null) { File[] txFileList = txFile.listFiles();
System.err.println("子目录读取失败: " + csFiles.getAbsolutePath()); for (File stFile : txFileList) {
continue; // 获取试题编号和试题ID
} String quId = stFile.getName().split("@")[1];
for (File one_file : csFileList) { String quNumber = stFile.getName().split("@")[0];
String name = one_file.getName(); File[] wjFiles = stFile.listFiles();
if ("文件处理".equals(name)) { for (File wjFile : wjFiles) {
File[] cs_file_list = csFiles.listFiles(); if ("文件".equals(wjFile.getName())) {
String lastFilePath = one_file.getPath(); File fileFile = new File(wjFile.getPath());
File mysql_file = new File(one_file.getPath()); // 3、根据题号进行查询试题的相关信息
File[] lastFiles = one_file.listFiles(); Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(name)).findFirst();
// 3、根据题号进行查询试题的相关信息 Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst();
Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(name)).findFirst(); EducationPaperScheme educationPaperScheme = result.get();
Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst(); EducationPaperQu educationPaperQu = results.get();
String quScore = educationPaperScheme.getQuScores();
EducationPaperScheme educationPaperScheme = result.get(); ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId);
EducationPaperQu educationPaperQu = results.get(); String judgementStr = "<p>-----------------------------------------------------------</p>";
String quScore = educationPaperScheme.getQuScores(); judgementStr += "<p>试题序号:" + educationPaperQu.getSort() + "</p>";
ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId); judgementStr += "<p>试题编号:" + examQuestion.getQuNum() + "</p>";
String judgementStr = "<p>-----------------------------------------------------------</p>"; judgementStr += "<p>试题分数:" + Double.parseDouble(quScore) + "</p>";
judgementStr += "<p>试题序号" + educationPaperQu.getSort() + "</p>"; judgementStr += "<p>试题名称" + name + "</p>";
judgementStr += "<p>试题编号:" + examQuestion.getQuNum() + "</p>"; SourceAndText cpojo = fileServerice.Judgement(Double.parseDouble(quScore), fileFile, examQuestion, judgementStr);
judgementStr += "<p>试题分数:" + Double.parseDouble(quScore) + "</p>"; score = score.add(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP));
judgementStr += "<p>试题名称:" + name + "</p>"; judgementStr = cpojo.getText();
SourceAndText cpojo = fileServerice.Judgement(Double.parseDouble(quScore), mysql_file, examQuestion, judgementStr); judgementStr += "<p>试题得分:" + cpojo.getScore() + "</p>";
score = score.add(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); // 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息
judgementStr = cpojo.getText(); // 通过 quIdstuIdpaperId 查询
judgementStr += "<p>试题得分:" + cpojo.getScore() + "</p>"; StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId);
// 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息 if (stuPaperScoreDO != null) {
// 通过 quIdstuIdpaperId 查询 // 说明已经是做过该题,需要更新数据
StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); stuPaperScoreDO.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP));
if (stuPaperScoreDO != null) { stuPaperScoreDO.setContent(judgementStr);
// 说明已经是做过该题,需要更新数据 stuPaperScoreDO.setSort(educationPaperQu.getSort());
stuPaperScoreDO.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); stuPaperScoreDO.setSubjectName(name);
stuPaperScoreDO.setContent(judgementStr); stuPaperScoreDO.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2);
stuPaperScoreDO.setSort(educationPaperQu.getSort()); stuPaperScoreDO.setTrueScore(new BigDecimal(quScore));
stuPaperScoreDO.setSubjectName(name); stuPaperScoreDO.setTenantId(systemTenant.getId());
stuPaperScoreDO.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO);
stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); } else {
stuPaperScoreDO.setTenantId(systemTenant.getId()); StuPaperScoreDO insertInfo = new StuPaperScoreDO();
stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); insertInfo.setStuId(stuInfoVo.getStuId());
} else { insertInfo.setPaperId(stuInfoVo.getPaperId());
StuPaperScoreDO insertInfo = new StuPaperScoreDO(); insertInfo.setQuId(quId);
insertInfo.setStuId(stuInfoVo.getStuId()); insertInfo.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP));
insertInfo.setPaperId(stuInfoVo.getPaperId()); insertInfo.setContent(judgementStr);
insertInfo.setQuId(quId); insertInfo.setSort(educationPaperQu.getSort());
insertInfo.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); insertInfo.setSubjectName(name);
insertInfo.setContent(judgementStr); insertInfo.setTrueScore(new BigDecimal(quScore));
insertInfo.setSort(educationPaperQu.getSort()); insertInfo.setTenantId(systemTenant.getId());
insertInfo.setSubjectName(name); insertInfo.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2);
insertInfo.setTrueScore(new BigDecimal(quScore)); stuPaperScoreService.insertStuPaperScore(insertInfo);
insertInfo.setTenantId(systemTenant.getId()); }
insertInfo.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); break;
stuPaperScoreService.insertStuPaperScore(insertInfo); }
} }
System.out.println(judgementStr);
break;
} }
} }
} }

View File

@@ -51,65 +51,66 @@ public class AutoForMysqlServiceImpl implements AutoForMysqlService {
File folder = new File(filePath); File folder = new File(filePath);
// 2、获取到学生文件 // 2、获取到学生文件
File[] files = folder.listFiles(); File[] files = folder.listFiles();
for (File file : files) { // 获取到题型
File csFiles = new File(file.getPath()); for (File txFile : files) {
String quId = csFiles.getName(); String name = txFile.getName();
File[] csFileList = csFiles.listFiles(); if ("程序设计".equals(name)) {
if (csFileList == null) { File[] txFileList = txFile.listFiles();
System.err.println("子目录读取失败: " + csFiles.getAbsolutePath()); for (File stFile : txFileList) {
continue; // 获取试题编号和试题ID
} String quId = stFile.getName().split("@")[1];
for (File one_file : csFileList) { String quNumber = stFile.getName().split("@")[0];
String name = one_file.getName(); File[] wjFiles = stFile.listFiles();
if ("程序设计".equals(name)) { for (File wjFile : wjFiles) {
File mysql_file = new File(one_file.getPath()); if ("文件".equals(wjFile.getName())) {
// 3、根据题号进行查询试题的相关信息 File mysql_file = new File(wjFile.getPath());
Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(one_file.getName())).findFirst(); // 3、根据题号进行查询试题的相关信息
Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst(); Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(name)).findFirst();
Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst();
EducationPaperScheme educationPaperScheme = result.get(); EducationPaperScheme educationPaperScheme = result.get();
EducationPaperQu educationPaperQu = results.get(); EducationPaperQu educationPaperQu = results.get();
String quScore = educationPaperScheme.getQuScores(); String quScore = educationPaperScheme.getQuScores();
ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId); ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId);
String judgementStr = "<p>-----------------------------------------------------------</p>"; String judgementStr = "<p>-----------------------------------------------------------</p>";
judgementStr += "<p>试题序号:" + educationPaperQu.getSort() + "</p>"; judgementStr += "<p>试题序号:" + educationPaperQu.getSort() + "</p>";
judgementStr += "<p>试题编号:" + examQuestion.getQuNum() + "</p>"; judgementStr += "<p>试题编号:" + examQuestion.getQuNum() + "</p>";
judgementStr += "<p>试题分数:" + Double.parseDouble(quScore) + "</p>"; judgementStr += "<p>试题分数:" + Double.parseDouble(quScore) + "</p>";
judgementStr += "<p>试题名称:" + name + "</p>"; judgementStr += "<p>试题名称:" + name + "</p>";
SourceAndText cpojo = mysqlLocalService.Judgement(Double.parseDouble(quScore), mysql_file, examQuestion, judgementStr); SourceAndText cpojo = mysqlLocalService.Judgement(Double.parseDouble(quScore), mysql_file, examQuestion, judgementStr);
score = score.add(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); score = score.add(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP));
judgementStr = cpojo.getText(); judgementStr = cpojo.getText();
judgementStr += "<p>试题得分:" + cpojo.getScore() + "</p>"; judgementStr += "<p>试题得分:" + cpojo.getScore() + "</p>";
// 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息 // 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息
// 通过 quIdstuIdpaperId 查询 // 通过 quIdstuIdpaperId 查询
StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId);
if (stuPaperScoreDO != null) { if (stuPaperScoreDO != null) {
// 说明已经是做过该题,需要更新数据 // 说明已经是做过该题,需要更新数据
stuPaperScoreDO.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); stuPaperScoreDO.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP));
stuPaperScoreDO.setContent(judgementStr); stuPaperScoreDO.setContent(judgementStr);
stuPaperScoreDO.setSort(educationPaperQu.getSort()); stuPaperScoreDO.setSort(educationPaperQu.getSort());
stuPaperScoreDO.setSubjectName(name); stuPaperScoreDO.setSubjectName(name);
stuPaperScoreDO.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); stuPaperScoreDO.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2);
stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); stuPaperScoreDO.setTrueScore(new BigDecimal(quScore));
stuPaperScoreDO.setTenantId(systemTenant.getId()); stuPaperScoreDO.setTenantId(systemTenant.getId());
stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO);
} else { } else {
StuPaperScoreDO insertInfo = new StuPaperScoreDO(); StuPaperScoreDO insertInfo = new StuPaperScoreDO();
insertInfo.setStuId(stuInfoVo.getStuId()); insertInfo.setStuId(stuInfoVo.getStuId());
insertInfo.setPaperId(stuInfoVo.getPaperId()); insertInfo.setPaperId(stuInfoVo.getPaperId());
insertInfo.setQuId(quId); insertInfo.setQuId(quId);
insertInfo.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); insertInfo.setScore(new BigDecimal(cpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP));
insertInfo.setContent(judgementStr); insertInfo.setContent(judgementStr);
insertInfo.setSort(educationPaperQu.getSort()); insertInfo.setSort(educationPaperQu.getSort());
insertInfo.setSubjectName(one_file.getName()); insertInfo.setSubjectName(name);
insertInfo.setTrueScore(new BigDecimal(quScore)); insertInfo.setTrueScore(new BigDecimal(quScore));
insertInfo.setTenantId(systemTenant.getId()); insertInfo.setTenantId(systemTenant.getId());
insertInfo.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); insertInfo.setIsTrue(cpojo.getScore() == 0 ? 1 : cpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2);
stuPaperScoreService.insertStuPaperScore(insertInfo); stuPaperScoreService.insertStuPaperScore(insertInfo);
}
System.out.println(judgementStr);
break;
}
} }
System.out.println(judgementStr);
break;
} }
} }
} }
@@ -123,18 +124,23 @@ public class AutoForMysqlServiceImpl implements AutoForMysqlService {
File folder = new File(filePath); File folder = new File(filePath);
// 2、获取到学生文件 // 2、获取到学生文件
File[] files = folder.listFiles(); File[] files = folder.listFiles();
for (File file : files) { // 获取到题型
File csFiles = new File(file.getPath()); for (File txFile : files) {
String quId = csFiles.getName(); String name = txFile.getName();
File[] csFileList = csFiles.listFiles(); if ("程序设计".equals(name)) {
for (File one_file : csFileList) { File[] txFileList = txFile.listFiles();
String name = one_file.getName(); for (File stFile : txFileList) {
if ("程序设计".equals(name)) { // 获取试题编号和试题ID
File mysql_file = new File(one_file.getPath()); String quId = stFile.getName().split("@")[1];
ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId); File[] wjFiles = stFile.listFiles();
mysqlLocalService.JudgementFile( mysql_file, examQuestion); for (File wjFile : wjFiles) {
break; if ("文件".equals(wjFile.getName())) {
File mysql_file = new File(wjFile.getPath());
ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId);
mysqlLocalService.JudgementFile(mysql_file, examQuestion);
break;
}
}
} }
} }
} }

View File

@@ -46,66 +46,70 @@ public class AutoForPsServiceImpl implements AutoForPsService{
File folder = new File(filePath); File folder = new File(filePath);
// 2、获取到学生文件 // 2、获取到学生文件
File[] files = folder.listFiles(); File[] files = folder.listFiles();
for (File file : files) { // 获取到题型
File csFiles = new File(file.getPath()); for (File txFile : files) {
String quId = csFiles.getName(); String name = txFile.getName();
File[] csFileList = csFiles.listFiles();
if (csFileList == null) {
System.err.println("子目录读取失败: " + csFiles.getAbsolutePath());
continue;
}
String name = csFileList[0].getName();
if ("图像处理".equals(name)) { if ("图像处理".equals(name)) {
File[] cs_file_list = csFiles.listFiles(); File[] txFileList = txFile.listFiles();
String lastFilePath = cs_file_list[0].getPath(); for (File stFile : txFileList) {
File[] lastFiles = cs_file_list[0].listFiles(); // 获取试题编号和试题ID
// 3、根据题号进行查询试题的相关信息 String quId = stFile.getName().split("@")[1];
Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(name)).findFirst(); String quNumber = stFile.getName().split("@")[0];
Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst(); File[] wjFiles = stFile.listFiles();
for (File wjFile : wjFiles) {
EducationPaperScheme educationPaperScheme = result.get(); if ("文件".equals(wjFile.getName())) {
EducationPaperQu educationPaperQu = results.get(); // 3、根据题号进行查询试题的相关信息
String quScore = educationPaperScheme.getQuScores(); Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(name)).findFirst();
ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId); Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst();
for (File lastFile : lastFiles) { EducationPaperScheme educationPaperScheme = result.get();
if (lastFile.getName().contains("原始")) { EducationPaperQu educationPaperQu = results.get();
String judgementStr = "<p>-----------------------------------------------------------</p>"; String quScore = educationPaperScheme.getQuScores();
judgementStr += "<p>试题序号:" + educationPaperQu.getSort() + "</p>"; ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId);
judgementStr += "<p>试题编号:" + examQuestion.getQuNum() + "</p>"; System.out.println(wjFile);
judgementStr += "<p>试题分数:" + Double.parseDouble(quScore) + "</p>"; File[] lastFiles = wjFile.listFiles();
judgementStr += "<p>试题名称:" + name + "</p>"; for (File lastFile : lastFiles) {
SourceAndText wordpojo = psService.Judgement(Double.parseDouble(quScore), lastFilePath, lastFile.getPath(), examQuestion, judgementStr); if (lastFile.getName().contains("原始")) {
score = score.add(new BigDecimal(wordpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); String filePaths = lastFile.getParent();
judgementStr = wordpojo.getText(); String judgementStr = "<p>-----------------------------------------------------------</p>";
judgementStr += "<p>试题得分" + wordpojo.getScore() + "</p>"; judgementStr += "<p>试题序号" + educationPaperQu.getSort() + "</p>";
// 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息 judgementStr += "<p>试题编号:" + examQuestion.getQuNum() + "</p>";
// 通过 quIdstuIdpaperId 查询 judgementStr += "<p>试题分数:" + Double.parseDouble(quScore) + "</p>";
StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); judgementStr += "<p>试题名称:" + name + "</p>";
if (stuPaperScoreDO != null) { SourceAndText wordpojo = psService.Judgement(Double.parseDouble(quScore), filePaths, lastFile.getPath(), examQuestion, judgementStr);
// 说明已经是做过该题,需要更新数据 score = score.add(new BigDecimal(wordpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP));
stuPaperScoreDO.setScore(new BigDecimal(wordpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); judgementStr = wordpojo.getText();
stuPaperScoreDO.setContent(judgementStr); judgementStr += "<p>试题得分:" + wordpojo.getScore() + "</p>";
stuPaperScoreDO.setSort(educationPaperQu.getSort()); // 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息
stuPaperScoreDO.setSubjectName(name); // 通过 quIdstuIdpaperId 查询
stuPaperScoreDO.setIsTrue(wordpojo.getScore() == 0 ? 1 : wordpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId);
stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); if (stuPaperScoreDO != null) {
stuPaperScoreDO.setTenantId(systemTenant.getId()); // 说明已经是做过该题,需要更新数据
stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); stuPaperScoreDO.setScore(new BigDecimal(wordpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP));
} else { stuPaperScoreDO.setContent(judgementStr);
StuPaperScoreDO insertInfo = new StuPaperScoreDO(); stuPaperScoreDO.setSort(educationPaperQu.getSort());
insertInfo.setStuId(stuInfoVo.getStuId()); stuPaperScoreDO.setSubjectName(name);
insertInfo.setPaperId(stuInfoVo.getPaperId()); stuPaperScoreDO.setIsTrue(wordpojo.getScore() == 0 ? 1 : wordpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2);
insertInfo.setQuId(quId); stuPaperScoreDO.setTrueScore(new BigDecimal(quScore));
insertInfo.setScore(new BigDecimal(wordpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); stuPaperScoreDO.setTenantId(systemTenant.getId());
insertInfo.setContent(judgementStr); stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO);
insertInfo.setSort(educationPaperQu.getSort()); } else {
insertInfo.setSubjectName(name); StuPaperScoreDO insertInfo = new StuPaperScoreDO();
insertInfo.setTrueScore(new BigDecimal(quScore)); insertInfo.setStuId(stuInfoVo.getStuId());
insertInfo.setTenantId(systemTenant.getId()); insertInfo.setPaperId(stuInfoVo.getPaperId());
insertInfo.setIsTrue(wordpojo.getScore() == 0 ? 1 : wordpojo.getScore() == Double.parseDouble(quScore) ? 0 : 2); insertInfo.setQuId(quId);
stuPaperScoreService.insertStuPaperScore(insertInfo); 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);
}
break;
}
}
} }
break;
} }
} }
} }

View File

@@ -89,7 +89,8 @@ public class JudgementServiceImpl implements JudgementService
// 进行关键字权重比对进行判断 // 进行关键字权重比对进行判断
for (ExamQuestionKeyword examQuestionKeyword : examQuestion.getQuestionKeywords()) { for (ExamQuestionKeyword examQuestionKeyword : examQuestion.getQuestionKeywords()) {
boolean keyword_run = code.contains(examQuestionKeyword.getKeyword()); String codeSpacking = code.replace(" ","");
boolean keyword_run = codeSpacking.contains(examQuestionKeyword.getKeyword());
// 计算权值 // 计算权值
Map<String, Object> item = new HashMap<>(); Map<String, Object> item = new HashMap<>();
item.put("success", keyword_run); item.put("success", keyword_run);

View File

@@ -63,18 +63,14 @@ public class IMysqlLocalServiceImpl implements IMysqlLocalService {
File folder = new File(stuFilePath); File folder = new File(stuFilePath);
// 5、解压之后得文件获取文件夹和文件 // 5、解压之后得文件获取文件夹和文件
String stu_files = null; String stu_files = null;
// 5.2、查询试题ID // 5.2、查询试题ID
List<ExamQuestionAnswer> examQuestionAnswers = examQuestionAnswerMapper.selectExamQuestionAnswerByQuId(examQuestion.getQuId()); List<ExamQuestionAnswer> examQuestionAnswers = examQuestionAnswerMapper.selectExamQuestionAnswerByQuId(examQuestion.getQuId());
int correctCount = 0; // 完全正确的题目数量 int correctCount = 0; // 完全正确的题目数量
int totalQuestions = examQuestionAnswers.size(); // 总题目数量// 总题目数量 int totalQuestions = examQuestionAnswers.size(); // 总题目数量// 总题目数量
String totalKeyScore ="0"; String totalKeyScore ="0";
//得出 这个题总共的权值点 //得出 这个题总共的权值点
totalKeyScore=examQuestionAnswerMapper.selectCountPointByQuId(examQuestion.getQuId()); totalKeyScore=examQuestionAnswerMapper.selectCountPointByQuId(examQuestion.getQuId());
answerLogPath = filepath.getParent() + File.separator + "log.txt"; answerLogPath = filepath.getParent() + File.separator + "log.txt";
AtomicInteger total = new AtomicInteger(); AtomicInteger total = new AtomicInteger();
// 文件路径 // 文件路径

View File

@@ -52,66 +52,69 @@ public class JudgementForExcelServiceImpl implements JudgementForExcelService {
File folder = new File(filePath); File folder = new File(filePath);
// 2、获取到学生文件 // 2、获取到学生文件
File[] files = folder.listFiles(); File[] files = folder.listFiles();
for (File file : files) { // 获取到题型
File csFiles = new File(file.getPath()); for (File txFile : files) {
String quId = csFiles.getName(); String name = txFile.getName();
File[] csFileList = csFiles.listFiles(); if ("表格".equals(name)) {
if (csFileList == null) { File[] txFileList = txFile.listFiles();
System.err.println("子目录读取失败: " + csFiles.getAbsolutePath()); for (File stFile : txFileList) {
continue; // 获取试题编号和试题ID
} String quId = stFile.getName().split("@")[1];
for (File csFile : csFileList) { String quNumber = stFile.getName().split("@")[0];
String name = csFile.getName(); File[] wjFiles = stFile.listFiles();
if ("表格".equals(name)) { for (File wjFile : wjFiles) {
File[] cs_file_list = csFile.listFiles(); if ("文件".equals(wjFile.getName())) {
// 3、根据题号进行查询试题的相关信息 // 3、根据题号进行查询试题的相关信息
Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(name)).findFirst(); Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(name)).findFirst();
Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst(); Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst();
EducationPaperScheme educationPaperScheme = result.get();
EducationPaperScheme educationPaperScheme = result.get(); EducationPaperQu educationPaperQu = results.get();
EducationPaperQu educationPaperQu = results.get(); String quScore = educationPaperScheme.getQuScores();
String quScore = educationPaperScheme.getQuScores(); ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId);
ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId); System.out.println(wjFile);
for (File lastFile : cs_file_list) { File[] lastFiles = wjFile.listFiles();
if (lastFile.getName().contains("文档")) { for (File lastFile : lastFiles) {
String judgementStr = "<p>-----------------------------------------------------------</p>"; if (lastFile.getName().contains("文档")) {
judgementStr += "<p>试题序号:" + educationPaperQu.getSort() + "</p>"; String judgementStr = "<p>-----------------------------------------------------------</p>";
judgementStr += "<p>试题号:" + examQuestion.getQuNum() + "</p>"; judgementStr += "<p>试题号:" + educationPaperQu.getSort() + "</p>";
judgementStr += "<p>试题分数" + Double.parseDouble(quScore) + "</p>"; judgementStr += "<p>试题编号" + examQuestion.getQuNum() + "</p>";
judgementStr += "<p>试题名称" + name + "</p>"; judgementStr += "<p>试题分数" + Double.parseDouble(quScore) + "</p>";
SourceAndText excelpojo = judgementWpsExcelService.judgementWpsXlsx(Double.parseDouble(quScore), lastFile.getPath(), lastFile.getPath(), examQuestion, judgementStr); judgementStr += "<p>试题名称:" + name + "</p>";
score = score.add(new BigDecimal(excelpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); SourceAndText excelpojo = judgementWpsExcelService.judgementWpsXlsx(Double.parseDouble(quScore), lastFile.getPath(), lastFile.getPath(), examQuestion, judgementStr);
judgementStr = excelpojo.getText(); score = score.add(new BigDecimal(excelpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP));
BigDecimal dangSource = new BigDecimal(excelpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP); judgementStr = excelpojo.getText();
judgementStr += "<p>试题得分:" + dangSource + "</p>"; BigDecimal dangSource = new BigDecimal(excelpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP);
// 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息 judgementStr += "<p>试题得分:" + dangSource + "</p>";
// 通过 quIdstuIdpaperId 查询 // 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息
StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); // 通过 quIdstuIdpaperId 查询
if (stuPaperScoreDO != null) { StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId);
// 说明已经是做过该题,需要更新数据 if (stuPaperScoreDO != null) {
stuPaperScoreDO.setScore(dangSource); // 说明已经是做过该题,需要更新数据
stuPaperScoreDO.setContent(judgementStr); stuPaperScoreDO.setScore(dangSource);
stuPaperScoreDO.setSort(educationPaperQu.getSort()); stuPaperScoreDO.setContent(judgementStr);
stuPaperScoreDO.setSubjectName(name); stuPaperScoreDO.setSort(educationPaperQu.getSort());
stuPaperScoreDO.setIsTrue(excelpojo.getScore() == 0 ? 1 : excelpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); stuPaperScoreDO.setSubjectName(name);
stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); stuPaperScoreDO.setIsTrue(excelpojo.getScore() == 0 ? 1 : excelpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2);
stuPaperScoreDO.setTenantId(systemTenant.getId()); stuPaperScoreDO.setTrueScore(new BigDecimal(quScore));
stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); stuPaperScoreDO.setTenantId(systemTenant.getId());
} else { stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO);
StuPaperScoreDO insertInfo = new StuPaperScoreDO(); } else {
insertInfo.setStuId(stuInfoVo.getStuId()); StuPaperScoreDO insertInfo = new StuPaperScoreDO();
insertInfo.setPaperId(stuInfoVo.getPaperId()); insertInfo.setStuId(stuInfoVo.getStuId());
insertInfo.setQuId(quId); insertInfo.setPaperId(stuInfoVo.getPaperId());
insertInfo.setScore(dangSource); insertInfo.setQuId(quId);
insertInfo.setContent(judgementStr); insertInfo.setScore(dangSource);
insertInfo.setSort(educationPaperQu.getSort()); insertInfo.setContent(judgementStr);
insertInfo.setSubjectName(name); insertInfo.setSort(educationPaperQu.getSort());
insertInfo.setTrueScore(new BigDecimal(quScore)); insertInfo.setSubjectName(name);
insertInfo.setTenantId(systemTenant.getId()); insertInfo.setTrueScore(new BigDecimal(quScore));
insertInfo.setIsTrue(excelpojo.getScore() == 0 ? 1 : excelpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); insertInfo.setTenantId(systemTenant.getId());
stuPaperScoreService.insertStuPaperScore(insertInfo); insertInfo.setIsTrue(excelpojo.getScore() == 0 ? 1 : excelpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2);
stuPaperScoreService.insertStuPaperScore(insertInfo);
}
break;
}
} }
break;
} }
} }
} }

View File

@@ -53,66 +53,69 @@ public class JudgementForPptxServiceImpl implements JudgementForPptxService {
File folder = new File(filePath); File folder = new File(filePath);
// 2、获取到学生文件 // 2、获取到学生文件
File[] files = folder.listFiles(); File[] files = folder.listFiles();
for (File file : files) { // 获取到题型
File csFiles = new File(file.getPath()); for (File txFile : files) {
String quId = csFiles.getName(); String name = txFile.getName();
File[] csFileList = csFiles.listFiles(); if ("演示".equals(name)) {
if (csFileList == null) { File[] txFileList = txFile.listFiles();
System.err.println("子目录读取失败: " + csFiles.getAbsolutePath()); for (File stFile : txFileList) {
continue; // 获取试题编号和试题ID
} String quId = stFile.getName().split("@")[1];
for (File csFile : csFileList) { String quNumber = stFile.getName().split("@")[0];
String name = csFile.getName(); File[] wjFiles = stFile.listFiles();
if ("演示".equals(name)) { for (File wjFile : wjFiles) {
File[] cs_file_list = csFile.listFiles(); if ("文件".equals(wjFile.getName())) {
// 3、根据题号进行查询试题的相关信息 // 3、根据题号进行查询试题的相关信息
Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(name)).findFirst(); Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(name)).findFirst();
Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst(); Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst();
EducationPaperScheme educationPaperScheme = result.get(); EducationPaperScheme educationPaperScheme = result.get();
EducationPaperQu educationPaperQu = results.get(); EducationPaperQu educationPaperQu = results.get();
String quScore = educationPaperScheme.getQuScores(); String quScore = educationPaperScheme.getQuScores();
ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId); ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId);
for (File lastFile : cs_file_list) { System.out.println(wjFile);
String fileNames = lastFile.getName(); File[] lastFiles = wjFile.listFiles();
if (fileNames.contains("文档")) { for (File lastFile : lastFiles) {
String judgementStr = "<p>-----------------------------------------------------------</p>"; if (lastFile.getName().contains("文档")) {
judgementStr += "<p>试题序号:" + educationPaperQu.getSort() + "</p>"; String judgementStr = "<p>-----------------------------------------------------------</p>";
judgementStr += "<p>试题号:" + examQuestion.getQuNum() + "</p>"; judgementStr += "<p>试题号:" + educationPaperQu.getSort() + "</p>";
judgementStr += "<p>试题分数" + Double.parseDouble(quScore) + "</p>"; judgementStr += "<p>试题编号" + examQuestion.getQuNum() + "</p>";
judgementStr += "<p>试题名称" + name + "</p>"; judgementStr += "<p>试题分数" + Double.parseDouble(quScore) + "</p>";
SourceAndText pptxpojo = judgementWpsPptxService.judgementWpsPptx(Double.parseDouble(quScore), lastFile.getPath(), lastFile.getPath(), examQuestion, judgementStr); judgementStr += "<p>试题名称:" + name + "</p>";
score = score.add(new BigDecimal(pptxpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); SourceAndText pptxpojo = judgementWpsPptxService.judgementWpsPptx(Double.parseDouble(quScore), lastFile.getPath(), lastFile.getPath(), examQuestion, judgementStr);
judgementStr = pptxpojo.getText(); score = score.add(new BigDecimal(pptxpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP));
BigDecimal dangSource = new BigDecimal(pptxpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP); judgementStr = pptxpojo.getText();
judgementStr += "<p>试题得分:" + dangSource + "</p>"; BigDecimal dangSource = new BigDecimal(pptxpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP);
// 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息 judgementStr += "<p>试题得分:" + dangSource + "</p>";
// 通过 quIdstuIdpaperId 查询 // 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息
StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); // 通过 quIdstuIdpaperId 查询
if (stuPaperScoreDO != null) { StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId);
// 说明已经是做过该题,需要更新数据 if (stuPaperScoreDO != null) {
stuPaperScoreDO.setScore(dangSource); // 说明已经是做过该题,需要更新数据
stuPaperScoreDO.setContent(judgementStr); stuPaperScoreDO.setScore(dangSource);
stuPaperScoreDO.setSort(educationPaperQu.getSort()); stuPaperScoreDO.setContent(judgementStr);
stuPaperScoreDO.setSubjectName(name); stuPaperScoreDO.setSort(educationPaperQu.getSort());
stuPaperScoreDO.setIsTrue(pptxpojo.getScore() == 0 ? 1 : pptxpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); stuPaperScoreDO.setSubjectName(name);
stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); stuPaperScoreDO.setIsTrue(pptxpojo.getScore() == 0 ? 1 : pptxpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2);
stuPaperScoreDO.setTenantId(systemTenant.getId()); stuPaperScoreDO.setTrueScore(new BigDecimal(quScore));
stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); stuPaperScoreDO.setTenantId(systemTenant.getId());
} else { stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO);
StuPaperScoreDO insertInfo = new StuPaperScoreDO(); } else {
insertInfo.setStuId(stuInfoVo.getStuId()); StuPaperScoreDO insertInfo = new StuPaperScoreDO();
insertInfo.setPaperId(stuInfoVo.getPaperId()); insertInfo.setStuId(stuInfoVo.getStuId());
insertInfo.setQuId(quId); insertInfo.setPaperId(stuInfoVo.getPaperId());
insertInfo.setScore(dangSource); insertInfo.setQuId(quId);
insertInfo.setContent(judgementStr); insertInfo.setScore(dangSource);
insertInfo.setSort(educationPaperQu.getSort()); insertInfo.setContent(judgementStr);
insertInfo.setSubjectName(name); insertInfo.setSort(educationPaperQu.getSort());
insertInfo.setTrueScore(new BigDecimal(quScore)); insertInfo.setSubjectName(name);
insertInfo.setTenantId(systemTenant.getId()); insertInfo.setTrueScore(new BigDecimal(quScore));
insertInfo.setIsTrue(pptxpojo.getScore() == 0 ? 1 : pptxpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); insertInfo.setTenantId(systemTenant.getId());
stuPaperScoreService.insertStuPaperScore(insertInfo); insertInfo.setIsTrue(pptxpojo.getScore() == 0 ? 1 : pptxpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2);
stuPaperScoreService.insertStuPaperScore(insertInfo);
}
break;
}
} }
break;
} }
} }
} }

View File

@@ -50,71 +50,73 @@ public class JudgementForWordServiceImpl implements JudgementForWordService {
File folder = new File(filePath); File folder = new File(filePath);
// 2、获取到学生文件 // 2、获取到学生文件
File[] files = folder.listFiles(); File[] files = folder.listFiles();
for (File file : files) { // 获取到题型
File csFiles = new File(file.getPath()); for (File txFile : files) {
String quId = csFiles.getName(); String name = txFile.getName();
File[] csFileList = csFiles.listFiles(); if ("文字".equals(name)) {
if (csFileList == null) { File[] txFileList = txFile.listFiles();
System.err.println("子目录读取失败: " + csFiles.getAbsolutePath()); for (File stFile : txFileList) {
continue; // 获取试题编号和试题ID
} String quId = stFile.getName().split("@")[1];
for (File csFile : csFileList) { String quNumber = stFile.getName().split("@")[0];
String name = csFile.getName(); File[] wjFiles = stFile.listFiles();
if ("文字".equals(name)) { for (File wjFile : wjFiles) {
File[] cs_file_list = csFile.listFiles(); if ("文件".equals(wjFile.getName())) {
// 3、根据题号进行查询试题的相关信息 // 3、根据题号进行查询试题的相关信息
Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(name)).findFirst(); Optional<EducationPaperScheme> result = educationPaperSchemeList.stream().filter(quLists -> quLists.getSpName().equals(name)).findFirst();
Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst(); Optional<EducationPaperQu> results = educationPaperQus.stream().filter(quLists -> quLists.getQuId().equals(quId)).findFirst();
EducationPaperScheme educationPaperScheme = result.get();
EducationPaperScheme educationPaperScheme = result.get(); EducationPaperQu educationPaperQu = results.get();
EducationPaperQu educationPaperQu = results.get(); String quScore = educationPaperScheme.getQuScores();
String quScore = educationPaperScheme.getQuScores(); ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId);
ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(quId); System.out.println(wjFile);
for (File lastFile : cs_file_list) { File[] lastFiles = wjFile.listFiles();
if (lastFile.getName().contains("文档")) { for (File lastFile : lastFiles) {
String judgementStr = "<p>-----------------------------------------------------------</p>"; if (lastFile.getName().contains("文档")) {
judgementStr += "<p>试题序号:" + educationPaperQu.getSort() + "</p>"; String judgementStr = "<p>-----------------------------------------------------------</p>";
judgementStr += "<p>试题号:" + examQuestion.getQuNum() + "</p>"; judgementStr += "<p>试题号:" + educationPaperQu.getSort() + "</p>";
judgementStr += "<p>试题分数" + Double.parseDouble(quScore) + "</p>"; judgementStr += "<p>试题编号" + examQuestion.getQuNum() + "</p>";
judgementStr += "<p>试题名称" + name + "</p>"; judgementStr += "<p>试题分数" + Double.parseDouble(quScore) + "</p>";
SourceAndText wordpojo = judgementWpsWordService.judgementWpsWord(Double.parseDouble(quScore), lastFile.getPath(), lastFile.getPath(), examQuestion, judgementStr); judgementStr += "<p>试题名称:" + name + "</p>";
score = score.add(new BigDecimal(wordpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP)); SourceAndText wordpojo = judgementWpsWordService.judgementWpsWord(Double.parseDouble(quScore), lastFile.getPath(), lastFile.getPath(), examQuestion, judgementStr);
judgementStr = wordpojo.getText(); score = score.add(new BigDecimal(wordpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP));
BigDecimal dangSource = new BigDecimal(wordpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP); judgementStr = wordpojo.getText();
judgementStr += "<p>试题得分:" + dangSource + "</p>"; BigDecimal dangSource = new BigDecimal(wordpojo.getScore()).setScale(1, BigDecimal.ROUND_HALF_UP);
// 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息 judgementStr += "<p>试题得分:" + dangSource + "</p>";
// 通过 quIdstuIdpaperId 查询 // 4、需要更新学生试题得分首先需要查询试题的数据库是否保存信息
StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId); // 通过 quIdstuIdpaperId 查询
if (stuPaperScoreDO != null) { StuPaperScoreDO stuPaperScoreDO = stuPaperScoreService.getStuScoreByPaperIdAndQuid(stuInfoVo.getStuId(), stuInfoVo.getPaperId(), quId);
// 说明已经是做过该题,需要更新数据 if (stuPaperScoreDO != null) {
stuPaperScoreDO.setScore(dangSource); // 说明已经是做过该题,需要更新数据
stuPaperScoreDO.setContent(judgementStr); stuPaperScoreDO.setScore(dangSource);
stuPaperScoreDO.setSort(educationPaperQu.getSort()); stuPaperScoreDO.setContent(judgementStr);
stuPaperScoreDO.setSubjectName(name); stuPaperScoreDO.setSort(educationPaperQu.getSort());
stuPaperScoreDO.setIsTrue(wordpojo.getScore() == 0 ? 1 : wordpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); stuPaperScoreDO.setSubjectName(name);
stuPaperScoreDO.setTrueScore(new BigDecimal(quScore)); stuPaperScoreDO.setIsTrue(wordpojo.getScore() == 0 ? 1 : wordpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2);
stuPaperScoreDO.setTenantId(systemTenant.getId()); stuPaperScoreDO.setTrueScore(new BigDecimal(quScore));
stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); stuPaperScoreDO.setTenantId(systemTenant.getId());
} else { stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO);
StuPaperScoreDO insertInfo = new StuPaperScoreDO(); } else {
insertInfo.setStuId(stuInfoVo.getStuId()); StuPaperScoreDO insertInfo = new StuPaperScoreDO();
insertInfo.setPaperId(stuInfoVo.getPaperId()); insertInfo.setStuId(stuInfoVo.getStuId());
insertInfo.setQuId(quId); insertInfo.setPaperId(stuInfoVo.getPaperId());
insertInfo.setScore(dangSource); insertInfo.setQuId(quId);
insertInfo.setContent(judgementStr); insertInfo.setScore(dangSource);
insertInfo.setSort(educationPaperQu.getSort()); insertInfo.setContent(judgementStr);
insertInfo.setSubjectName(name); insertInfo.setSort(educationPaperQu.getSort());
insertInfo.setTrueScore(new BigDecimal(quScore)); insertInfo.setSubjectName(name);
insertInfo.setTenantId(systemTenant.getId()); insertInfo.setTrueScore(new BigDecimal(quScore));
insertInfo.setIsTrue(wordpojo.getScore() == 0 ? 1 : wordpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2); insertInfo.setTenantId(systemTenant.getId());
stuPaperScoreService.insertStuPaperScore(insertInfo); insertInfo.setIsTrue(wordpojo.getScore() == 0 ? 1 : wordpojo.getScore() >= Double.parseDouble(quScore) ? 0 : 2);
stuPaperScoreService.insertStuPaperScore(insertInfo);
}
break;
}
} }
break;
} }
} }
} }
} }
} }
return score; return score;
} }