From 675485fa8ed260a234003a246f535242472de1fa Mon Sep 17 00:00:00 2001 From: zhangyue Date: Wed, 11 Feb 2026 16:20:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AE=89=E5=85=A8=E5=9F=B9?= =?UTF-8?q?=E8=AE=AD=E6=95=99=E6=9D=90=E6=88=96=E8=AF=BE=E7=A8=8B=E8=AE=B2?= =?UTF-8?q?=E4=B9=89=E4=B8=8B=E8=BD=BD=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../edu/web/archives/ArchivesController.java | 6 +++ .../query/archives/ArchivesQueryExe.java | 51 +++++++++++++++++++ .../command/query/study/StudentQueryExe.java | 2 +- .../service/archives/ArchivesServiceImpl.java | 7 +++ .../edu/api/archives/ArchivesServiceI.java | 1 + .../zcloud/edu/dto/archives/ArchivesQry.java | 1 + .../mapper/study/ClassCurriculumMapper.xml | 3 +- 7 files changed, 69 insertions(+), 2 deletions(-) diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesController.java b/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesController.java index 05ef29c..64f804c 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesController.java @@ -89,6 +89,12 @@ public class ArchivesController { archivesService.downloadReviewRevision(qry); return Response.buildSuccess(); } + @ApiOperation("单独下载安全培训教材或课程讲义") + @PostMapping("/downloadClassCur") + public Response downloadClassCur(@RequestBody ArchivesQry qry) { + archivesService.downloadClassCur(qry); + return Response.buildSuccess(); + } } diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesQueryExe.java index 8d1a5da..6d17d3b 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesQueryExe.java @@ -889,5 +889,56 @@ public class ArchivesQueryExe { throw new RuntimeException(e); } } + + + + + public ClassArchivesDTO downloadClassCurById(ArchivesQry qry){ + HashMap params = new HashMap(); + // 班级信息 + ClassDO classDO = classRepository.getByClassId(qry.getClassId()); + // 班级课程 + ClassCurriculumDO classCurriculumDO = classCurriculumRepository.getInfoById(qry.getClassCurriculumIdLong()); + List classCurriculumChapterDOList = classCurriculumChapterRepository.listByClassCurriculumId(classCurriculumDO.getClassCurriculumId()); + ClassCurriculumCO classCurriculumCO = new ClassCurriculumCO(); + BeanUtils.copyProperties(classCurriculumDO, classCurriculumCO); + List classCurriculumChapterCOList = classCurriculumChapterCoConvertor.converDOsToCOs(classCurriculumChapterDOList); + List resultList = Tools.buildEntityTree(classCurriculumChapterCOList, "classCurriculumChapterId", "parentId", "childCurriculumChapterCOList", "0"); + classCurriculumCO.setCurriculumChapterCOList(resultList); + List curList = new ArrayList<>(); + curList.add(classCurriculumCO); + + ClassArchivesDTO classArchivesDTO = new ClassArchivesDTO(); + classArchivesDTO.setClassName(classDO.getName()); + SSOUser ssoUser = AuthContext.getCurrentUser(); + classArchivesDTO.setCorpinfoId(ssoUser.getTenantId()); + classArchivesDTO.setClassCurriculumList(curList); + // 新增档案下载记录 + ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE(); + archivesPdfFileE.init("class_curriculum", classCurriculumDO.getClassCurriculumId(), 2, ssoUser.getTenantId(), classDO.getName()+"-"+classCurriculumDO.getCurriculumName()+"安全培训教材"); + ArchivesPdfFileDO archivesPdfFileDO = new ArchivesPdfFileDO(); + BeanUtils.copyProperties(archivesPdfFileE, archivesPdfFileDO); + archivesPdfFileRepository.save(archivesPdfFileDO); + classArchivesDTO.setArchivesPdfFileId(archivesPdfFileDO.getId()); + return classArchivesDTO; + } + @Async("archivesAsyncExecutor") + public void execteDownloadClassCur(ClassArchivesDTO params){ + try { + byte[] word = execteClassCurriculumInfo(params.getClassCurriculumList().get(0)); + List byteArrayList = new ArrayList<>(); + byteArrayList.add(word); + byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList); + String filepath = zcloudImgFilesFacade.saveFile(pdf, params.getClassName()+"-"+params.getClassCurriculumList().get(0).getCurriculumName()+"-安全培训教材或课程讲义-"+ DateUtil.getSdfTimes()+".pdf","classArchives", params.getCorpinfoId()); + ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE(); + archivesPdfFileE.initEdit(params.getArchivesPdfFileId(), filepath, 1, null); + ArchivesPdfFileDO archivesPdfFileDO = new ArchivesPdfFileDO(); + BeanUtils.copyProperties(archivesPdfFileE, archivesPdfFileDO); + archivesPdfFileRepository.updateById(archivesPdfFileDO); + } catch (Exception e){ + e.printStackTrace(); +// throw new RuntimeException(e); + } + } } diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java index 7f0e4ee..b03a982 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java @@ -101,7 +101,7 @@ public class StudentQueryExe { ClassE classE = new ClassE(); BeanUtils.copyProperties(classDO, classE); HashMap params = new HashMap(); - params.put("classId", studentDO.getClassId()); + params.put("eqClassId", studentDO.getClassId()); // 课程信息 List curEList = classCurriculumRepository.listAll(params); List classCurList = BeanUtil.copyToList(curEList, ClassCurriculumE.class); diff --git a/web-app/src/main/java/com/zcloud/edu/service/archives/ArchivesServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/archives/ArchivesServiceImpl.java index 2602805..5915e9e 100644 --- a/web-app/src/main/java/com/zcloud/edu/service/archives/ArchivesServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/edu/service/archives/ArchivesServiceImpl.java @@ -68,5 +68,12 @@ public class ArchivesServiceImpl implements ArchivesServiceI { archivesQueryExe.execteDownloadReviewInfo(classArchivesDTO); System.out.println("下载成功"); } + + @Override + public void downloadClassCur(ArchivesQry qry) { + ClassArchivesDTO classArchivesDTO = archivesQueryExe.downloadClassCurById(qry); + archivesQueryExe.execteDownloadClassCur(classArchivesDTO); + System.out.println("下载成功"); + } } diff --git a/web-client/src/main/java/com/zcloud/edu/api/archives/ArchivesServiceI.java b/web-client/src/main/java/com/zcloud/edu/api/archives/ArchivesServiceI.java index 3a2fced..2691c8a 100644 --- a/web-client/src/main/java/com/zcloud/edu/api/archives/ArchivesServiceI.java +++ b/web-client/src/main/java/com/zcloud/edu/api/archives/ArchivesServiceI.java @@ -18,5 +18,6 @@ public interface ArchivesServiceI { void downloadPersonArchives(ArchivesQry qry); void downloadClassArchives(ArchivesQry qry); void downloadReviewRevision(ArchivesQry qry); + void downloadClassCur(ArchivesQry qry); } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesQry.java b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesQry.java index 80044ae..30df783 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesQry.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesQry.java @@ -30,6 +30,7 @@ public class ArchivesQry { private Long stuId; private String classId; private String classCurriculumId; + private Long classCurriculumIdLong; } diff --git a/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumMapper.xml b/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumMapper.xml index 10a819f..d9cfcf0 100644 --- a/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumMapper.xml @@ -16,7 +16,8 @@ co.corp_name, c.video_total_time curriculumVideoTotalTime, c.curriculum_introduce, - c.cover_path + c.cover_path, + cc.catalogue_level from class_curriculum cc