【修改】 word 优化相关功能

This commit is contained in:
DESKTOP-932OMT8\REN
2025-05-29 11:17:43 +08:00
parent 73824e1662
commit 02de00b96e
4 changed files with 108 additions and 100 deletions

View File

@@ -7,7 +7,8 @@ import lombok.Data;
*/
@Data
public class WpsWordJudgementDto {
private String function;
private String content;
private String contentIn;
private String type;
private String image;
private String scoreRate;
}

View File

@@ -214,7 +214,7 @@ public class AutoToolsServiceImpl implements AutoToolsService{
select_file.delete();
}
// 2、判断文件路径是否存在
if (stuPaperFileDO == null) {
if (stuPaperFileDO != null) {
// return CommonResult.error(100031, "试题文件没有上传,无法判分!");
// 3、下载文件
String patn = downloadStudentFile(stuPaperFileDO.getUrl(), config.getValue());
@@ -275,7 +275,7 @@ public class AutoToolsServiceImpl implements AutoToolsService{
stuPaperScoreDO.setPaperId(paperId);
isNull = true;
}
if ("C语言编程题".equals(one_file.getName().split("\\.")[0])) {
if ("编程题".equals(one_file.getName().split("\\.")[0])) {
double c_score = judgementService.ProgrammingC(15.0, one_file.getPath(), file_one.getName(), examQuestion);
score += c_score;
stuPaperScoreDO.setScore(new BigDecimal(c_score));
@@ -301,7 +301,7 @@ public class AutoToolsServiceImpl implements AutoToolsService{
break;
}
// wps 类型存在多级文文件夹,需要个性化设置
if ("WPS文字".equals(one_file.getName().split("\\.")[0])) {
if ("文字".equals(one_file.getName().split("\\.")[0])) {
double wps_word_score = judgementWpsWordService.judgementWpsWord(15.0, one_file.getPath(), file_one.getPath(), examQuestion);
score += wps_word_score;
stuPaperScoreDO.setScore(new BigDecimal(wps_word_score));
@@ -326,56 +326,56 @@ public class AutoToolsServiceImpl implements AutoToolsService{
System.out.println(wps_word_score+"wps_word得分");
break;
}
if ("WPS演示".equals(one_file.getName().split("\\.")[0])) {
double wps_pptx_score = judgementWpsPptxService.judgementWpsPptx(15.0, one_file.getPath(), file_one.getPath(), examQuestion);
score += wps_pptx_score;
stuPaperScoreDO.setScore(new BigDecimal(wps_pptx_score));
// 原始正确分数
stuPaperScoreDO.setTrueScore(new BigDecimal("15.0"));
// 判断题是否正确
if (wps_pptx_score == 15.0) {
stuPaperScoreDO.setIsTrue(0);
} else if (wps_pptx_score == 0) {
stuPaperScoreDO.setIsTrue(1);
} else {
stuPaperScoreDO.setIsTrue(2);
}
stuPaperScoreDO.setSubjectName(examQuestion.getSubjectName());
if (isNull) {
// 如果之前没做过,则插入该题的分数
stuPaperScoreService.insertStuPaperScore(stuPaperScoreDO);
} else {
// 如果之前做过,则更新该题的分数
stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO);
}
System.out.println(wps_pptx_score+"wps_ppt得分");
break;
}
if ("WPS表格".equals(one_file.getName().split("\\.")[0])) {
double wps_excel_score = judgementWpsExcelService.judgementWpsXlsx(15.0, one_file.getPath(), file_one.getPath(), examQuestion);
score += wps_excel_score;
stuPaperScoreDO.setScore(new BigDecimal(wps_excel_score));
// 原始正确分数
stuPaperScoreDO.setTrueScore(new BigDecimal("15.0"));
// 判断题是否正确
if (wps_excel_score == 15.0) {
stuPaperScoreDO.setIsTrue(0);
} else if (wps_excel_score == 0) {
stuPaperScoreDO.setIsTrue(1);
} else {
stuPaperScoreDO.setIsTrue(2);
}
stuPaperScoreDO.setSubjectName(examQuestion.getSubjectName());
if (isNull) {
// 如果之前没做过,则插入该题的分数
stuPaperScoreService.insertStuPaperScore(stuPaperScoreDO);
} else {
// 如果之前做过,则更新该题的分数
stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO);
}
System.out.println(wps_excel_score+"wps_excel得分");
break;
}
// if ("演示".equals(one_file.getName().split("\\.")[0])) {
// double wps_pptx_score = judgementWpsPptxService.judgementWpsPptx(15.0, one_file.getPath(), file_one.getPath(), examQuestion);
// score += wps_pptx_score;
// stuPaperScoreDO.setScore(new BigDecimal(wps_pptx_score));
// // 原始正确分数
// stuPaperScoreDO.setTrueScore(new BigDecimal("15.0"));
// // 判断题是否正确
// if (wps_pptx_score == 15.0) {
// stuPaperScoreDO.setIsTrue(0);
// } else if (wps_pptx_score == 0) {
// stuPaperScoreDO.setIsTrue(1);
// } else {
// stuPaperScoreDO.setIsTrue(2);
// }
// stuPaperScoreDO.setSubjectName(examQuestion.getSubjectName());
// if (isNull) {
// // 如果之前没做过,则插入该题的分数
// stuPaperScoreService.insertStuPaperScore(stuPaperScoreDO);
// } else {
// // 如果之前做过,则更新该题的分数
// stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO);
// }
// System.out.println(wps_pptx_score+"wps_ppt得分");
// break;
// }
// if ("表格".equals(one_file.getName().split("\\.")[0])) {
// double wps_excel_score = judgementWpsExcelService.judgementWpsXlsx(15.0, one_file.getPath(), file_one.getPath(), examQuestion);
// score += wps_excel_score;
// stuPaperScoreDO.setScore(new BigDecimal(wps_excel_score));
// // 原始正确分数
// stuPaperScoreDO.setTrueScore(new BigDecimal("15.0"));
// // 判断题是否正确
// if (wps_excel_score == 15.0) {
// stuPaperScoreDO.setIsTrue(0);
// } else if (wps_excel_score == 0) {
// stuPaperScoreDO.setIsTrue(1);
// } else {
// stuPaperScoreDO.setIsTrue(2);
// }
// stuPaperScoreDO.setSubjectName(examQuestion.getSubjectName());
// if (isNull) {
// // 如果之前没做过,则插入该题的分数
// stuPaperScoreService.insertStuPaperScore(stuPaperScoreDO);
// } else {
// // 如果之前做过,则更新该题的分数
// stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO);
// }
// System.out.println(wps_excel_score+"wps_excel得分");
// break;
// }
//windows文件处理
if ("文件处理".equals(one_file.getName().split("\\.")[0])) {
File win_file = new File(one_file.getPath());
@@ -433,33 +433,33 @@ public class AutoToolsServiceImpl implements AutoToolsService{
break;
}
if ("程序设计".equals(one_file.getName().split("\\.")[0])) {
System.out.println(one_file);
File mysql_file = new File(one_file.getPath());
double judgement = mysqlServerice.Judgement(20.0,mysql_file, examQuestion);
score+=judgement;
stuPaperScoreDO.setScore(new BigDecimal(judgement));
// 原始正确分数
stuPaperScoreDO.setTrueScore(new BigDecimal("15.0"));
// 判断题是否正确
if (judgement == 20.0) {
stuPaperScoreDO.setIsTrue(0);
} else if (judgement == 0) {
stuPaperScoreDO.setIsTrue(1);
} else {
stuPaperScoreDO.setIsTrue(2);
}
stuPaperScoreDO.setSubjectName(examQuestion.getSubjectName());
if (isNull) {
// 如果之前没做过,则插入该题的分数
stuPaperScoreService.insertStuPaperScore(stuPaperScoreDO);
} else {
// 如果之前做过,则更新该题的分数
stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO);
}
System.out.println(judgement+"mysql得分");
break;
}
// if ("程序设计".equals(one_file.getName().split("\\.")[0])) {
// System.out.println(one_file);
// File mysql_file = new File(one_file.getPath());
// double judgement = mysqlServerice.Judgement(20.0,mysql_file, examQuestion);
// score+=judgement;
// stuPaperScoreDO.setScore(new BigDecimal(judgement));
// // 原始正确分数
// stuPaperScoreDO.setTrueScore(new BigDecimal("15.0"));
// // 判断题是否正确
// if (judgement == 20.0) {
// stuPaperScoreDO.setIsTrue(0);
// } else if (judgement == 0) {
// stuPaperScoreDO.setIsTrue(1);
// } else {
// stuPaperScoreDO.setIsTrue(2);
// }
// stuPaperScoreDO.setSubjectName(examQuestion.getSubjectName());
// if (isNull) {
// // 如果之前没做过,则插入该题的分数
// stuPaperScoreService.insertStuPaperScore(stuPaperScoreDO);
// } else {
// // 如果之前做过,则更新该题的分数
// stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO);
// }
// System.out.println(judgement+"mysql得分");
// break;
// }
}
}

View File

@@ -113,10 +113,10 @@ public class JudgementWpsWordServiceImpl implements JudgementWpsWordService {
boolean flag = false;
double one_sorce = 0;
for (WpsWordJudgementDto wordJudgementDto : judgementDtos) {
if (wordJudgementDto.getFunction() != null) {
if (wordJudgementDto.getContent() != null) {
// for (String str : wordJudgementDto.getFunction()) {
int index = 0;
if (wordJudgementDto.getFunction().equals(examQuestionAnswer.getContent())) {
if (wordJudgementDto.getContent().equals(examQuestionAnswer.getContent())) {
flag = true;
// 得分 根据权重进行得分 每个选项分值 = 总分 / 总权重

View File

@@ -87,22 +87,24 @@ public class WpsWordUtils {
if (wpCursor.toNextSelection()) {
if ("1".equals(wpsWordReqDto.getParameter())) {
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + "true");
judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + "true");
judgement.setContent(wpsWordReqDto.getEnglishName() + functionAll + "-/" + "true");
} else {
String value = wpCursor.getTextValue();
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + value);
judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + value);
judgement.setContent(wpsWordReqDto.getEnglishName() + functionAll + "-/" + value);
}
judgement.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgement.setScoreRate("1");
judgement.setImage(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
// 查询指定值,返回固定的文本
judgementList.add(judgement);
} else {
// 参数类型01判断
if ("1".equals(wpsWordReqDto.getParameter())) {
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + "false");
judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + "false");
judgement.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgement.setContent(wpsWordReqDto.getEnglishName() + functionAll + "-/" + "false");
judgement.setImage(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgement.setScoreRate("1");
judgementList.add(judgement);
}
}
@@ -146,8 +148,9 @@ public class WpsWordUtils {
if (headerXml.toNextSelection()) {
String value = headerXml.getTextValue();
judgement.setContentIn(wpsWordReqDto.getChineseName()+"-"+wpsWordReqDto.getFunction().get(0).getChineseName()+ "-"+ chineseType +"-" +wpsWordReqDto.getFunction().get(1).getChineseName()+"-"+value);
judgement.setFunction(wpsWordReqDto.getEnglishName()+"-"+wpsWordReqDto.getFunction().get(0).getFunction()+"-" +wpsWordReqDto.getFunction().get(1).getFunction()+"-/"+value+ "-"+ headerVo.getType());
judgement.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgement.setContent(wpsWordReqDto.getEnglishName()+"-"+wpsWordReqDto.getFunction().get(0).getFunction()+"-" +wpsWordReqDto.getFunction().get(1).getFunction()+"-/"+value+ "-"+ headerVo.getType());
judgement.setImage(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgement.setScoreRate("1");
judgementList.add(judgement);
}
}
@@ -165,8 +168,9 @@ public class WpsWordUtils {
if (headerXml.toNextSelection()) {
String value = headerXml.getTextValue();
judgement.setContentIn(wpsWordReqDto.getChineseName()+"-"+wpsWordReqDto.getFunction().get(0).getChineseName()+ "-"+ chineseType +"-" +wpsWordReqDto.getFunction().get(1).getChineseName()+"-"+value);
judgement.setFunction(wpsWordReqDto.getEnglishName()+"-"+wpsWordReqDto.getFunction().get(0).getFunction()+"-" +wpsWordReqDto.getFunction().get(1).getFunction()+"-/"+value+ "-"+ headerVo.getType());
judgement.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgement.setContent(wpsWordReqDto.getEnglishName()+"-"+wpsWordReqDto.getFunction().get(0).getFunction()+"-" +wpsWordReqDto.getFunction().get(1).getFunction()+"-/"+value+ "-"+ headerVo.getType());
judgement.setImage(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgement.setScoreRate("1");
judgementList.add(judgement);
}
}
@@ -183,8 +187,9 @@ public class WpsWordUtils {
String value = sectPrXsml.getTextValue();
WpsWordJudgementDto judgement = new WpsWordJudgementDto();
judgement.setContentIn(wpsWordReqDto.getChineseName()+"-"+wpsWordReqDto.getFunction().get(0).getChineseName() +"-" +wpsWordReqDto.getFunction().get(1).getChineseName()+"-/"+value);
judgement.setFunction(wpsWordReqDto.getEnglishName()+"-"+wpsWordReqDto.getFunction().get(0).getFunction()+"-" +wpsWordReqDto.getFunction().get(1).getFunction()+"-/" + value);
judgement.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgement.setContent(wpsWordReqDto.getEnglishName()+"-"+wpsWordReqDto.getFunction().get(0).getFunction()+"-" +wpsWordReqDto.getFunction().get(1).getFunction()+"-/" + value);
judgement.setImage(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgement.setScoreRate("1");
judgementList.add(judgement);
}
}
@@ -207,22 +212,24 @@ public class WpsWordUtils {
if (wpCursor.toNextSelection()) {
if ("1".equals(wpsWordReqDto.getParameter())) {
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + "true");
judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + "true");
judgement.setContent(wpsWordReqDto.getEnglishName() + functionAll + "-/" + "true");
} else {
String value = wpCursor.getTextValue();
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + value);
judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + value);
judgement.setContent(wpsWordReqDto.getEnglishName() + functionAll + "-/" + value);
}
judgement.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgement.setImage(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgement.setScoreRate("1");
// 查询指定值,返回固定的文本
judgementList.add(judgement);
} else {
// 参数类型01判断
if ("1".equals(wpsWordReqDto.getParameter())) {
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + "false");
judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + "false");
judgement.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgement.setContent(wpsWordReqDto.getEnglishName() + functionAll + "-/" + "false");
judgement.setImage(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgement.setScoreRate("1");
judgementList.add(judgement);
}
}