From e4848fe3e442172664eb40cc12b074230fcb338e Mon Sep 17 00:00:00 2001 From: "RENWEIBING\\letre" Date: Tue, 6 May 2025 17:29:30 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E3=80=91=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2=E5=AD=A6=E5=8F=B7-?= =?UTF-8?q?=E8=AF=95=E5=8D=B7ID-=E6=96=87=E4=BB=B6=E5=BE=97=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=96=B9=E6=B3=95=EF=BC=8C=E6=96=B0=E5=A2=9E=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exam/dal/mysql/student/StuPaperFileMapper.java | 4 +++- .../service/stu_paper_file/StuPaperFileService.java | 2 +- .../stu_paper_file/StuPaperFileServiceImpl.java | 4 +++- .../module/infra/service/file/FileServiceImpl.java | 10 +++++++++- .../controller/admin/WpsWord/WpsWordController.java | 13 ++++++++++++- .../service/auto_tools/AutoToolsServiceImpl.java | 13 ++++++++++++- 6 files changed, 40 insertions(+), 6 deletions(-) diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/student/StuPaperFileMapper.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/student/StuPaperFileMapper.java index f13a583a..33b7d141 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/student/StuPaperFileMapper.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/mysql/student/StuPaperFileMapper.java @@ -6,6 +6,8 @@ import org.apache.ibatis.annotations.Param; import pc.exam.pp.framework.mybatis.core.mapper.BaseMapperX; import pc.exam.pp.module.exam.dal.dataobject.student.StuPaperFileDO; +import java.util.List; + /** * 学生-试卷-文件 Mapper * @@ -13,6 +15,6 @@ import pc.exam.pp.module.exam.dal.dataobject.student.StuPaperFileDO; */ @Mapper public interface StuPaperFileMapper extends BaseMapperX { - StuPaperFileDO findByStuIdAndPaperId(@Param("stuId") Long stuId, @Param("paperId") String paperId); + List findByStuIdAndPaperId(@Param("stuId") Long stuId, @Param("paperId") String paperId); } \ No newline at end of file diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/stu_paper_file/StuPaperFileService.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/stu_paper_file/StuPaperFileService.java index 4dc63a73..091d46ad 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/stu_paper_file/StuPaperFileService.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/stu_paper_file/StuPaperFileService.java @@ -16,7 +16,7 @@ import java.util.List; */ public interface StuPaperFileService { - StuPaperFileDO findByStuIDAndPaperId(Long stuID, String paperID); + List findByStuIDAndPaperId(Long stuID, String paperID); void insertStuPaperFile(StuPaperFileDO stuPaperFileDO); diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/stu_paper_file/StuPaperFileServiceImpl.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/stu_paper_file/StuPaperFileServiceImpl.java index 3089ef9a..33366420 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/stu_paper_file/StuPaperFileServiceImpl.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/service/stu_paper_file/StuPaperFileServiceImpl.java @@ -6,6 +6,8 @@ import org.springframework.validation.annotation.Validated; import pc.exam.pp.module.exam.dal.dataobject.student.StuPaperFileDO; import pc.exam.pp.module.exam.dal.mysql.student.StuPaperFileMapper; +import java.util.List; + /** * 学生-试卷-文件 Service 实现类 * @@ -19,7 +21,7 @@ public class StuPaperFileServiceImpl implements StuPaperFileService { private StuPaperFileMapper stuPaperFileMapper; @Override - public StuPaperFileDO findByStuIDAndPaperId(Long stuID, String paperID) { + public List findByStuIDAndPaperId(Long stuID, String paperID) { return stuPaperFileMapper.findByStuIdAndPaperId(stuID, paperID); } diff --git a/exam-module-infra/exam-module-infra-biz/src/main/java/pc/exam/pp/module/infra/service/file/FileServiceImpl.java b/exam-module-infra/exam-module-infra-biz/src/main/java/pc/exam/pp/module/infra/service/file/FileServiceImpl.java index 41bc10f2..59f24387 100644 --- a/exam-module-infra/exam-module-infra-biz/src/main/java/pc/exam/pp/module/infra/service/file/FileServiceImpl.java +++ b/exam-module-infra/exam-module-infra-biz/src/main/java/pc/exam/pp/module/infra/service/file/FileServiceImpl.java @@ -19,6 +19,8 @@ import jakarta.annotation.Resource; import lombok.SneakyThrows; import org.springframework.stereotype.Service; +import java.util.List; + import static pc.exam.pp.framework.common.exception.util.ServiceExceptionUtil.exception; import static pc.exam.pp.module.infra.enums.ErrorCodeConstants.FILE_NOT_EXISTS; @@ -103,7 +105,13 @@ public class FileServiceImpl implements FileService { fileMapper.insert(file); // 需要更新学生表 // 1、先查询学生,试卷 是否已经存在数据 - StuPaperFileDO stuPaperFileDO = stuPaperFileService.findByStuIDAndPaperId(stuId, paperId); + List stuPaperFileDOList = stuPaperFileService.findByStuIDAndPaperId(stuId, paperId); + StuPaperFileDO stuPaperFileDO = null; + for (StuPaperFileDO fileUrl : stuPaperFileDOList) { + if (fileUrl.getType() == 0) { + stuPaperFileDO = fileUrl; + } + } if (stuPaperFileDO == null) { // 说明没有上传过,需要新增进去 StuPaperFileDO stuPaperFile = new StuPaperFileDO(); diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/WpsWord/WpsWordController.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/WpsWord/WpsWordController.java index b439607b..e457b287 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/WpsWord/WpsWordController.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/WpsWord/WpsWordController.java @@ -1,6 +1,7 @@ package pc.exam.pp.module.judgement.controller.admin.WpsWord; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; @@ -8,6 +9,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import pc.exam.pp.framework.common.pojo.CommonResult; +import pc.exam.pp.module.judgement.service.wps_excel.JudgementWpsExcelService; import pc.exam.pp.module.judgement.service.wps_word.JudgementWpsWordService; import pc.exam.pp.module.judgement.utils.wps_word.vo.WordVO; @@ -27,7 +29,8 @@ public class WpsWordController { @Autowired private JudgementWpsWordService judgementWpsWordService; - + @Resource + JudgementWpsExcelService judgementWpsExcelService; /** * wps word * @return 判分 @@ -36,5 +39,13 @@ public class WpsWordController { public CommonResult> run_wps_word(String path) throws Exception { return CommonResult.success(judgementWpsWordService.ProgrammingWpsWord(path)); } + /** + * wps word + * @return 判分 + */ + @GetMapping("/run_wps_excel") + public CommonResult run_wps_excel(String path) throws Exception { + return CommonResult.success(judgementWpsExcelService.ProgrammingWpsExcel(path)); + } } diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/auto_tools/AutoToolsServiceImpl.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/auto_tools/AutoToolsServiceImpl.java index 0ae92196..9a2e0f86 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/auto_tools/AutoToolsServiceImpl.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/auto_tools/AutoToolsServiceImpl.java @@ -18,6 +18,7 @@ import java.math.BigDecimal; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; +import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; @@ -121,7 +122,17 @@ public class AutoToolsServiceImpl implements AutoToolsService{ public CommonResult judgementScore(Long stuId, String paperId) throws Exception { double score = 0; // 1、通过学号,试卷ID查询文件路径 - StuPaperFileDO stuPaperFileDO = stuPaperFileService.findByStuIDAndPaperId(stuId, paperId); + List stuPaperFileDOList = stuPaperFileService.findByStuIDAndPaperId(stuId, paperId); + StuPaperFileDO stuPaperFileDO = null; + StuPaperFileDO noZipFileDO = null; + for (StuPaperFileDO stuPaperFileDOs : stuPaperFileDOList) { + if (stuPaperFileDO.getType() == 1) { + noZipFileDO = stuPaperFileDOs; + } + if (stuPaperFileDO.getType() == 0) { + stuPaperFileDO = stuPaperFileDOs; + } + } // 2、判断文件路径是否存在 if (stuPaperFileDO == null) { return CommonResult.error(100031, "试题文件没有上传,无法判分!");