优化档案查询功能并修复多个数据处理问题

dev
zhangyue 2026-02-26 10:06:42 +08:00
parent 42d2a4efb5
commit c024d8000b
16 changed files with 89 additions and 56 deletions

View File

@ -3,6 +3,7 @@ package com.zcloud.edu.command.query.archives;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.statemachine.impl.SysOutVisitor;
import com.deepoove.poi.data.PictureRenderData; import com.deepoove.poi.data.PictureRenderData;
import com.deepoove.poi.data.PictureType; import com.deepoove.poi.data.PictureType;
import com.deepoove.poi.data.Pictures; import com.deepoove.poi.data.Pictures;
@ -210,13 +211,11 @@ public class ArchivesQueryExe {
byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList); byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList);
String filepath = zcloudImgFilesFacade.saveFile(pdf, params.getName()+"-"+params.getClassName()+"-"+ DateUtil.getSdfTimes()+".pdf","personArchives", params.getClassCorpinfoId()); String filepath = zcloudImgFilesFacade.saveFile(pdf, params.getName()+"-"+params.getClassName()+"-"+ DateUtil.getSdfTimes()+".pdf","personArchives", params.getClassCorpinfoId());
System.out.println(filepath+"filepath-------------------------------------------------------------");
ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE(); ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE();
archivesPdfFileE.initEdit(params.getArchivesPdfFileId(), filepath, 1, null); archivesPdfFileE.initEdit(params.getArchivesPdfFileId(), filepath, 1, null);
ArchivesPdfFileDO archivesPdfFileDO = new ArchivesPdfFileDO(); ArchivesPdfFileDO archivesPdfFileDO = new ArchivesPdfFileDO();
BeanUtils.copyProperties(archivesPdfFileE, archivesPdfFileDO); BeanUtils.copyProperties(archivesPdfFileE, archivesPdfFileDO);
System.out.println(archivesPdfFileDO.toString());
archivesPdfFileRepository.updateById(archivesPdfFileDO); archivesPdfFileRepository.updateById(archivesPdfFileDO);
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
@ -356,6 +355,7 @@ public class ArchivesQueryExe {
public ClassArchivesDTO downloadClassArchives(ArchivesQry qry){ public ClassArchivesDTO downloadClassArchives(ArchivesQry qry){
HashMap<String, Object> params = new HashMap<String, Object>(); HashMap<String, Object> params = new HashMap<String, Object>();
params.put("classId", qry.getClassId()); params.put("classId", qry.getClassId());
List<ArchivesReviewCO> reviewCOList = new ArrayList<>(); List<ArchivesReviewCO> reviewCOList = new ArrayList<>();
List<ClassCurriculumCO> curriculumList = new ArrayList<>(); List<ClassCurriculumCO> curriculumList = new ArrayList<>();
List<StudentSignCO> signList = new ArrayList<>(); List<StudentSignCO> signList = new ArrayList<>();
@ -377,9 +377,11 @@ public class ArchivesQueryExe {
.filter(archivesReviewId -> archivesReviewId != null && !archivesReviewId.trim().isEmpty()) // 非 null 且非空(可选 trim .filter(archivesReviewId -> archivesReviewId != null && !archivesReviewId.trim().isEmpty()) // 非 null 且非空(可选 trim
.collect(Collectors.joining(",")); .collect(Collectors.joining(","));
reviewCOList = archivesReviewCoConvertor.converDOsToCOs(reviewList); reviewCOList = archivesReviewCoConvertor.converDOsToCOs(reviewList);
HashMap<String, Object> reviewParams = new HashMap<String, Object>();
reviewParams.put("classId", qry.getClassId());
// 查询子表 // 查询子表
params.put("inArchivesReviewId", reviewIds); reviewParams.put("inArchivesReviewId", reviewIds);
List<ArchivesReviewRecordDO> reviewRecordList = archivesReviewRecordRepository.listAll(params); List<ArchivesReviewRecordDO> reviewRecordList = archivesReviewRecordRepository.listAll(reviewParams);
if(reviewRecordList != null && reviewRecordList.size() > 0){ if(reviewRecordList != null && reviewRecordList.size() > 0){
List<ArchivesReviewRecordCO> reviewRecordCOList = archivesReviewRecordCoConvertor.converDOsToCOs(reviewRecordList); List<ArchivesReviewRecordCO> reviewRecordCOList = archivesReviewRecordCoConvertor.converDOsToCOs(reviewRecordList);
// 子表放到主表下 // 子表放到主表下
@ -392,7 +394,6 @@ public class ArchivesQueryExe {
// 安全培训教材或课程讲义 // 安全培训教材或课程讲义
if (qry.getTypeList().contains(2)){ if (qry.getTypeList().contains(2)){
params.put("eqClassId", qry.getClassId());
List<ClassCurriculumDO> curList = classCurriculumRepository.listAll(params); List<ClassCurriculumDO> curList = classCurriculumRepository.listAll(params);
List<String> classCurriculumIds = curList.stream().map(ClassCurriculumDO::getClassCurriculumId).collect(Collectors.toList()); List<String> classCurriculumIds = curList.stream().map(ClassCurriculumDO::getClassCurriculumId).collect(Collectors.toList());
List<ClassCurriculumChapterDO> chapterList = classCurriculumChapterRepository.listByClassCurriculumIds(classCurriculumIds); List<ClassCurriculumChapterDO> chapterList = classCurriculumChapterRepository.listByClassCurriculumIds(classCurriculumIds);
@ -400,7 +401,10 @@ public class ArchivesQueryExe {
List<ClassCurriculumChapterCO> resultList = Tools.buildEntityTree(chapterCoList, "classCurriculumChapterId", "parentId", "childCurriculumChapterCOList", "0"); List<ClassCurriculumChapterCO> resultList = Tools.buildEntityTree(chapterCoList, "classCurriculumChapterId", "parentId", "childCurriculumChapterCOList", "0");
Map<String, List<ClassCurriculumChapterCO>> chapterMap = resultList.stream().collect(Collectors.groupingBy(ClassCurriculumChapterCO::getClassCurriculumId)); Map<String, List<ClassCurriculumChapterCO>> chapterMap = resultList.stream().collect(Collectors.groupingBy(ClassCurriculumChapterCO::getClassCurriculumId));
System.out.println("curList"+ curList.toString());
curriculumList = classCurriculumCoConvertor.converDOsToCOs(curList); curriculumList = classCurriculumCoConvertor.converDOsToCOs(curList);
System.out.println("curriculumList"+ curriculumList.toString());
curriculumList.stream().forEach(bean -> { curriculumList.stream().forEach(bean -> {
bean.setCurriculumChapterCOList(chapterMap.get(bean.getClassCurriculumId())); bean.setCurriculumChapterCOList(chapterMap.get(bean.getClassCurriculumId()));
}); });
@ -459,6 +463,8 @@ public class ArchivesQueryExe {
SSOUser ssoUser = AuthContext.getCurrentUser(); SSOUser ssoUser = AuthContext.getCurrentUser();
classArchivesDTO.setCorpinfoId(ssoUser.getTenantId()); classArchivesDTO.setCorpinfoId(ssoUser.getTenantId());
classArchivesDTO.setArchivesReviewList(reviewCOList); classArchivesDTO.setArchivesReviewList(reviewCOList);
classArchivesDTO.setSignList(signList);
classArchivesDTO.setClassCurriculumList(curriculumList);
// 新增档案下载记录 // 新增档案下载记录
ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE(); ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE();
@ -473,6 +479,7 @@ public class ArchivesQueryExe {
@Async("archivesAsyncExecutor") @Async("archivesAsyncExecutor")
public void execteClassGeneratePdf(ArchivesQry qry, ClassArchivesDTO params) { public void execteClassGeneratePdf(ArchivesQry qry, ClassArchivesDTO params) {
params.setArchivesDate(DateUtil.getSdfTimes());
String tempDir = System.getProperty("java.io.tmpdir"); String tempDir = System.getProperty("java.io.tmpdir");
List<File> stringList = new ArrayList<>(); List<File> stringList = new ArrayList<>();
@ -490,37 +497,37 @@ public class ArchivesQueryExe {
List<byte[]> byteArrayList = new ArrayList<>(); List<byte[]> byteArrayList = new ArrayList<>();
byteArrayList.add(word); byteArrayList.add(word);
byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList); byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList);
Files.write(Paths.get(tempDir+"aaa/"+params.getClassName()+"-签字表-"+DateUtil.getSdfTimes()+".pdf"), pdf); Files.write(Paths.get(tempDir+"/"+params.getClassName()+"-签字表-"+params.getArchivesDate()+".pdf"), pdf);
stringList.add(new File(tempDir+"aaa/"+params.getClassName()+"-签字表-"+DateUtil.getSdfTimes()+".pdf")); stringList.add(new File(tempDir+"/"+params.getClassName()+"-签字表-"+params.getArchivesDate()+".pdf"));
} }
if (qry.getTypeList().contains(4)){ if (qry.getTypeList().contains(4)){
byte[] word = exectePicture(params); byte[] word = exectePicture(params);
List<byte[]> byteArrayList = new ArrayList<>(); List<byte[]> byteArrayList = new ArrayList<>();
byteArrayList.add(word); byteArrayList.add(word);
byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList); byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList);
Files.write(Paths.get(tempDir+"aaa/"+params.getClassName()+"-影像资料-"+DateUtil.getSdfTimes()+".pdf"), pdf); Files.write(Paths.get(tempDir+"/"+params.getClassName()+"-影像资料-"+params.getArchivesDate()+".pdf"), pdf);
stringList.add(new File(tempDir+"aaa/"+params.getClassName()+"-影像资料-"+DateUtil.getSdfTimes()+".pdf")); stringList.add(new File(tempDir+"/"+params.getClassName()+"-影像资料-"+params.getArchivesDate()+".pdf"));
} }
if (qry.getTypeList().contains(5)){ if (qry.getTypeList().contains(5)){
byte[] word = execteClassPaper(params); byte[] word = execteClassPaper(params);
List<byte[]> byteArrayList = new ArrayList<>(); List<byte[]> byteArrayList = new ArrayList<>();
byteArrayList.add(word); byteArrayList.add(word);
byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList); byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList);
Files.write(Paths.get(tempDir+"aaa/"+params.getClassName()+"-试卷-"+DateUtil.getSdfTimes()+".pdf"), pdf); Files.write(Paths.get(tempDir+"/"+params.getClassName()+"-试卷-"+params.getArchivesDate()+".pdf"), pdf);
stringList.add(new File(tempDir+"aaa/"+params.getClassName()+"-试卷-"+DateUtil.getSdfTimes()+".pdf")); stringList.add(new File(tempDir+"/"+params.getClassName()+"-试卷-"+params.getArchivesDate()+".pdf"));
} }
if (qry.getTypeList().contains(6)){ if (qry.getTypeList().contains(6)){
byte[] word = execteClassExamResult(params); byte[] word = execteClassExamResult(params);
List<byte[]> byteArrayList = new ArrayList<>(); List<byte[]> byteArrayList = new ArrayList<>();
byteArrayList.add(word); byteArrayList.add(word);
byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList); byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList);
Files.write(Paths.get(tempDir+"aaa/"+params.getClassName()+"-学员考核成绩统计表-"+DateUtil.getSdfTimes()+".pdf"), pdf); Files.write(Paths.get(tempDir+"/"+params.getClassName()+"-学员考核成绩统计表-"+params.getArchivesDate()+".pdf"), pdf);
stringList.add(new File(tempDir+"aaa/"+params.getClassName()+"-学员考核成绩统计表-"+DateUtil.getSdfTimes()+".pdf")); stringList.add(new File(tempDir+"/"+params.getClassName()+"-学员考核成绩统计表-"+params.getArchivesDate()+".pdf"));
} }
FileZip.zipList(tempDir+"aaa/"+params.getClassName()+"-"+ DateUtil.getSdfTimes()+"zipzip.zip",stringList ); FileZip.zipList(tempDir+"/"+params.getClassName()+"-"+ params.getArchivesDate()+"一期一档.zip",stringList );
File file = new File(tempDir+"aaa/"+params.getClassName()+"-"+ DateUtil.getSdfTimes()+"zipzip.zip"); File file = new File(tempDir+"/"+params.getClassName()+"-"+ params.getArchivesDate()+"一期一档.zip");
byte[] bytes = Files.readAllBytes(file.toPath()); byte[] bytes = Files.readAllBytes(file.toPath());
String filepath = zcloudImgFilesFacade.saveFile(bytes, params.getClassName()+"-"+ DateUtil.getSdfTimes()+"zipzip.zip","classArchives", params.getCorpinfoId()); String filepath = zcloudImgFilesFacade.saveFile(bytes, params.getClassName()+"-"+ params.getArchivesDate()+"一期一档.zip","classArchives", params.getCorpinfoId());
ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE(); ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE();
archivesPdfFileE.initEdit(params.getArchivesPdfFileId(), filepath, 1, null); archivesPdfFileE.initEdit(params.getArchivesPdfFileId(), filepath, 1, null);
ArchivesPdfFileDO archivesPdfFileDO = new ArchivesPdfFileDO(); ArchivesPdfFileDO archivesPdfFileDO = new ArchivesPdfFileDO();
@ -529,7 +536,7 @@ public class ArchivesQueryExe {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException(e); throw new RuntimeException(e);
} finally { // } finally {
// FileUtil.delFile(); // FileUtil.delFile();
} }
} }
@ -549,11 +556,11 @@ public class ArchivesQueryExe {
List<byte[]> byteArrayList = new ArrayList<>(); List<byte[]> byteArrayList = new ArrayList<>();
byteArrayList.add(word); byteArrayList.add(word);
byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList); byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList);
byteArrayMap.put(item.getCurriculumName()+"-教材会审表-"+ DateUtil.getSdfTimes()+".pdf", pdf); byteArrayMap.put(item.getCurriculumName()+"-教材会审表-"+ params.getArchivesDate()+".pdf", pdf);
} }
FileZip.writeByteArraysToZip(tempDir+"aaa/"+params.getClassName()+"-教材会审表-"+DateUtil.getSdfTimes()+".zip", byteArrayMap); FileZip.writeByteArraysToZip(tempDir+"/"+params.getClassName()+"-教材会审表-"+params.getArchivesDate()+".zip", byteArrayMap);
return tempDir+"aaa/"+params.getClassName()+"-教材会审表-"+DateUtil.getSdfTimes()+".zip"; return tempDir+"/"+params.getClassName()+"-教材会审表-"+params.getArchivesDate()+".zip";
} }
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
@ -593,6 +600,7 @@ public class ArchivesQueryExe {
public String execteClassCurriculum(ClassArchivesDTO params){ public String execteClassCurriculum(ClassArchivesDTO params){
try { try {
if (params.getClassCurriculumList() != null && params.getClassCurriculumList().size() > 0){ if (params.getClassCurriculumList() != null && params.getClassCurriculumList().size() > 0){
System.out.println("ddddddddddddddddddd-----"+params.getClassCurriculumList().toString());
String tempDir = System.getProperty("java.io.tmpdir"); String tempDir = System.getProperty("java.io.tmpdir");
Map<String, byte[]> byteArrayMap = new HashMap<>(); Map<String, byte[]> byteArrayMap = new HashMap<>();
for (ClassCurriculumCO item : params.getClassCurriculumList()){ for (ClassCurriculumCO item : params.getClassCurriculumList()){
@ -600,14 +608,15 @@ public class ArchivesQueryExe {
List<byte[]> byteArrayList = new ArrayList<>(); List<byte[]> byteArrayList = new ArrayList<>();
byteArrayList.add(word); byteArrayList.add(word);
byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList); byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList);
byteArrayMap.put(item.getCurriculumName()+"-安全培训教材或课程讲义-"+ DateUtil.getSdfTimes()+".pdf", pdf); byteArrayMap.put(item.getCurriculumName()+"-安全培训教材或课程讲义-"+ params.getArchivesDate()+".pdf", pdf);
} }
FileZip.writeByteArraysToZip(tempDir+"aaa/"+params.getClassName()+"-安全培训教材或课程讲义-"+DateUtil.getSdfTimes()+".zip", byteArrayMap); FileZip.writeByteArraysToZip(tempDir+"/"+params.getClassName()+"-安全培训教材或课程讲义-"+params.getArchivesDate()+".zip", byteArrayMap);
return tempDir+"aaa/"+params.getClassName()+"-安全培训教材或课程讲义-"+DateUtil.getSdfTimes()+".zip"; return tempDir+"/"+params.getClassName()+"-安全培训教材或课程讲义-"+params.getArchivesDate()+".zip";
} }
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); e.printStackTrace();
// throw new RuntimeException(e);
} }
return null; return null;
} }
@ -656,6 +665,9 @@ public class ArchivesQueryExe {
try { try {
Map<String, Object> workItem = PropertyUtils.describe( params); Map<String, Object> workItem = PropertyUtils.describe( params);
ArrayList<Object> workList = CollUtil.newArrayList(); ArrayList<Object> workList = CollUtil.newArrayList();
System.out.println("params.getSignList()"+params.getSignList().toString());
System.out.println("params.getSignList().size()"+params.getSignList().size());
if (params.getSignList() != null && params.getSignList().size() > 0){ if (params.getSignList() != null && params.getSignList().size() > 0){
AtomicInteger atomicIndex = new AtomicInteger(1); AtomicInteger atomicIndex = new AtomicInteger(1);
for (StudentSignCO item : params.getSignList()){ for (StudentSignCO item : params.getSignList()){
@ -835,16 +847,17 @@ public class ArchivesQueryExe {
HashMap<String, Object> params = new HashMap<String, Object>(); HashMap<String, Object> params = new HashMap<String, Object>();
List<ArchivesReviewCO> reviewCOList = new ArrayList<>(); List<ArchivesReviewCO> reviewCOList = new ArrayList<>();
params.put("classId", qry.getClassId()); params.put("classId", qry.getClassId());
params.put("classCurriculumId", qry.getClassCurriculumId()); params.put("classCurriculumIds", qry.getClassCurriculumIds());
// 教材会审表
ArchivesReviewDO reviewInfo = archivesReviewRepository.getInfoByClassCur(params);
ArchivesReviewCO reviewInfoCO = new ArchivesReviewCO();
BeanUtils.copyProperties(reviewInfo, reviewInfoCO);
reviewCOList.add(reviewInfoCO);
ClassDO classDO = classRepository.getByClassId(qry.getClassId()); ClassDO classDO = classRepository.getByClassId(qry.getClassId());
if (reviewInfo != null && !ObjectUtils.isEmpty(reviewInfo.getArchivesReviewId())){ // 教材会审表
List<ArchivesReviewDO> reviewList = archivesReviewRepository.getInfoByClassCur(params);
params.put("eqArchivesReviewId", reviewInfo.getArchivesReviewId()); String reviewIds = reviewList.stream()
.map(ArchivesReviewDO::getArchivesReviewId)
.filter(archivesReviewId -> archivesReviewId != null && !archivesReviewId.trim().isEmpty()) // 非 null 且非空(可选 trim
.collect(Collectors.joining(","));
reviewCOList = archivesReviewCoConvertor.converDOsToCOs(reviewList);
// 查询子表
params.put("inArchivesReviewId", reviewIds);
List<ArchivesReviewRecordDO> reviewRecordList = archivesReviewRecordRepository.listAll(params); List<ArchivesReviewRecordDO> reviewRecordList = archivesReviewRecordRepository.listAll(params);
if(reviewRecordList != null && reviewRecordList.size() > 0){ if(reviewRecordList != null && reviewRecordList.size() > 0){
List<ArchivesReviewRecordCO> reviewRecordCOList = archivesReviewRecordCoConvertor.converDOsToCOs(reviewRecordList); List<ArchivesReviewRecordCO> reviewRecordCOList = archivesReviewRecordCoConvertor.converDOsToCOs(reviewRecordList);
@ -854,7 +867,6 @@ public class ArchivesQueryExe {
reviewCO.setArchivesReviewRecordList(reviewRecordCOMap.get(reviewCO.getArchivesReviewId())); reviewCO.setArchivesReviewRecordList(reviewRecordCOMap.get(reviewCO.getArchivesReviewId()));
}); });
} }
}
// 查询子表 // 查询子表
ClassArchivesDTO classArchivesDTO = new ClassArchivesDTO(); ClassArchivesDTO classArchivesDTO = new ClassArchivesDTO();
@ -864,7 +876,7 @@ public class ArchivesQueryExe {
classArchivesDTO.setArchivesReviewList(reviewCOList); classArchivesDTO.setArchivesReviewList(reviewCOList);
// 新增档案下载记录 // 新增档案下载记录
ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE(); ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE();
archivesPdfFileE.init("archives_review", qry.getClassCurriculumId(), 2, ssoUser.getTenantId(), classDO.getName()+"-"+reviewInfo.getCurriculumName()+"教材会审表-"); archivesPdfFileE.init("archives_review", qry.getClassId(), 2, ssoUser.getTenantId(), classDO.getName()+"-教材会审表-");
ArchivesPdfFileDO archivesPdfFileDO = new ArchivesPdfFileDO(); ArchivesPdfFileDO archivesPdfFileDO = new ArchivesPdfFileDO();
BeanUtils.copyProperties(archivesPdfFileE, archivesPdfFileDO); BeanUtils.copyProperties(archivesPdfFileE, archivesPdfFileDO);
archivesPdfFileRepository.save(archivesPdfFileDO); archivesPdfFileRepository.save(archivesPdfFileDO);
@ -873,12 +885,12 @@ public class ArchivesQueryExe {
} }
@Async("archivesAsyncExecutor") @Async("archivesAsyncExecutor")
public void execteDownloadReviewInfo(ClassArchivesDTO params){ public void execteDownloadReviewInfo(ClassArchivesDTO params){
params.setArchivesDate(DateUtil.getSdfTimes());
try { try {
byte[] word = execteReviewInfo(params.getArchivesReviewList().get(0)); String zipString = execteReview(params);
List<byte[]> byteArrayList = new ArrayList<>(); File file = new File(zipString);
byteArrayList.add(word); byte[] bytes = Files.readAllBytes(file.toPath());
byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList); String filepath = zcloudImgFilesFacade.saveFile(bytes, params.getClassName()+"-教材会审表-"+params.getArchivesDate()+".zip","classArchives", params.getCorpinfoId());
String filepath = zcloudImgFilesFacade.saveFile(pdf, params.getClassName()+"-"+params.getArchivesReviewList().get(0).getCurriculumName()+"-教材会审表-"+ DateUtil.getSdfTimes()+".pdf","classArchives", params.getCorpinfoId());
ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE(); ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE();
archivesPdfFileE.initEdit(params.getArchivesPdfFileId(), filepath, 1, null); archivesPdfFileE.initEdit(params.getArchivesPdfFileId(), filepath, 1, null);
ArchivesPdfFileDO archivesPdfFileDO = new ArchivesPdfFileDO(); ArchivesPdfFileDO archivesPdfFileDO = new ArchivesPdfFileDO();
@ -924,12 +936,13 @@ public class ArchivesQueryExe {
} }
@Async("archivesAsyncExecutor") @Async("archivesAsyncExecutor")
public void execteDownloadClassCur(ClassArchivesDTO params){ public void execteDownloadClassCur(ClassArchivesDTO params){
params.setArchivesDate(DateUtil.getSdfTimes());
try { try {
byte[] word = execteClassCurriculumInfo(params.getClassCurriculumList().get(0)); byte[] word = execteClassCurriculumInfo(params.getClassCurriculumList().get(0));
List<byte[]> byteArrayList = new ArrayList<>(); List<byte[]> byteArrayList = new ArrayList<>();
byteArrayList.add(word); byteArrayList.add(word);
byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList); byte[] pdf = WordToPdfUtil.mergeWordToPdf(byteArrayList);
String filepath = zcloudImgFilesFacade.saveFile(pdf, params.getClassName()+"-"+params.getClassCurriculumList().get(0).getCurriculumName()+"-安全培训教材或课程讲义-"+ DateUtil.getSdfTimes()+".pdf","classArchives", params.getCorpinfoId()); String filepath = zcloudImgFilesFacade.saveFile(pdf, params.getClassName()+"-"+params.getClassCurriculumList().get(0).getCurriculumName()+"-安全培训教材或课程讲义-"+ params.getArchivesDate()+".pdf","classArchives", params.getCorpinfoId());
ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE(); ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE();
archivesPdfFileE.initEdit(params.getArchivesPdfFileId(), filepath, 1, null); archivesPdfFileE.initEdit(params.getArchivesPdfFileId(), filepath, 1, null);
ArchivesPdfFileDO archivesPdfFileDO = new ArchivesPdfFileDO(); ArchivesPdfFileDO archivesPdfFileDO = new ArchivesPdfFileDO();

View File

@ -151,11 +151,13 @@ public class StudentQueryExe {
BeanUtils.copyProperties(classDO, classE); BeanUtils.copyProperties(classDO, classE);
HashMap<String, Object> params = new HashMap<String, Object>(); HashMap<String, Object> params = new HashMap<String, Object>();
params.put("classId", qry.getClassId()); params.put("classId", qry.getClassId());
params.put("eqClassId", qry.getClassId());
// 课程信息 // 课程信息
List<ClassCurriculumDO> curEList = classCurriculumRepository.listAll(params); List<ClassCurriculumDO> curEList = classCurriculumRepository.listAll(params);
List<ClassCurriculumE> classCurList = BeanUtil.copyToList(curEList, ClassCurriculumE.class); List<ClassCurriculumE> classCurList = BeanUtil.copyToList(curEList, ClassCurriculumE.class);
params.put("type",1);
List<StudentSignDO> studentSignList = studentSignRepository.listAll(params); List<StudentSignDO> studentSignList = studentSignRepository.listAll(params);
ClassArchivesE classArchivesE = new ClassArchivesE(); ClassArchivesE classArchivesE = new ClassArchivesE();
classArchivesE.initClassSign(classE, stuCount, classCurList); classArchivesE.initClassSign(classE, stuCount, classCurList);

View File

@ -48,7 +48,7 @@ public class StudentAddExe {
} }
List<StudentE> studentEList = BeanUtil.copyToList(cmdList, StudentE.class); List<StudentE> studentEList = BeanUtil.copyToList(cmdList, StudentE.class);
List<String> userNameList = cmdList.stream().map(StudentAddCmd::getPhone).distinct().collect(Collectors.toList()); List<String> userNameList = cmdList.stream().map(StudentAddCmd::getPhone).distinct().collect(Collectors.toList());
MultiResponse<ZcloudUserCo> userResponse = zcloudUserFacade.listUserByUserName(userNameList); MultiResponse<ZcloudUserCo> userResponse = zcloudUserFacade.listUserByUserNameV1(userNameList);
ClassDO classDO = classRepository.getByClassId(studentEList.get(0).getClassId()); ClassDO classDO = classRepository.getByClassId(studentEList.get(0).getClassId());
List<ZcloudUserCo> userList = userResponse.getData(); List<ZcloudUserCo> userList = userResponse.getData();
Map<String, ZcloudUserCo> userMap = userList.stream().collect(HashMap::new, (k, v) -> k.put(v.getUsername(), v), HashMap::putAll); Map<String, ZcloudUserCo> userMap = userList.stream().collect(HashMap::new, (k, v) -> k.put(v.getUsername(), v), HashMap::putAll);

View File

@ -29,7 +29,7 @@ public class ArchivesQry {
private String studentId; private String studentId;
private Long stuId; private Long stuId;
private String classId; private String classId;
private String classCurriculumId; private List<String> classCurriculumIds;
private Long classCurriculumIdLong; private Long classCurriculumIdLong;
} }

View File

@ -80,6 +80,8 @@ public class ClassArchivesDTO {
@ApiModelProperty(value = "课件数") @ApiModelProperty(value = "课件数")
private Integer videoCount; private Integer videoCount;
@ApiModelProperty(value = "档案生成日期前缀")
private String archivesDate;
@ApiModelProperty(value = "打卡签到人脸图片路径") @ApiModelProperty(value = "打卡签到人脸图片路径")
private String signFaceUrl; private String signFaceUrl;
@ApiModelProperty(value = "考试签到人脸图片路径") @ApiModelProperty(value = "考试签到人脸图片路径")

View File

@ -84,7 +84,8 @@ public class PersonArchivesDTO {
//学员状态 0-未学习 1-已签到 2-考试通过 3-未签到 4-考试未通过 //学员状态 0-未学习 1-已签到 2-考试通过 3-未签到 4-考试未通过
@ApiModelProperty(value = "学员状态翻译") @ApiModelProperty(value = "学员状态翻译")
private String stateName; private String stateName;
@ApiModelProperty(value = "档案生成日期前缀")
private String archivesDate;
//班级名称 //班级名称
@ApiModelProperty(value = "班级名称") @ApiModelProperty(value = "班级名称")

View File

@ -30,5 +30,6 @@ public class StudentPageQry extends PageQuery {
private String likeInterestedIds; private String likeInterestedIds;
private String likeClassName; private String likeClassName;
private Integer state; private Integer state;
private String phone;
} }

View File

@ -1,5 +1,6 @@
package com.zcloud.edu.gatewayimpl.study; package com.zcloud.edu.gatewayimpl.study;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.zcloud.edu.domain.gateway.study.StudentSignGateway; import com.zcloud.edu.domain.gateway.study.StudentSignGateway;
import com.zcloud.edu.domain.model.study.StudentSignE; import com.zcloud.edu.domain.model.study.StudentSignE;
import com.zcloud.edu.persistence.dataobject.study.StudentSignDO; import com.zcloud.edu.persistence.dataobject.study.StudentSignDO;

View File

@ -61,7 +61,7 @@ public class StudentSignDO extends BaseDO {
private String phone; private String phone;
//打卡签字路径 //打卡签字路径
@ApiModelProperty(value = "打卡签字路径") @ApiModelProperty(value = "打卡签字路径")
@TableField(exist = false) // @TableField(exist = false)
private String signUrl; private String signUrl;
@ApiModelProperty(value = "人脸图片") @ApiModelProperty(value = "人脸图片")

View File

@ -24,6 +24,6 @@ public interface ArchivesReviewMapper extends BaseMapper<ArchivesReviewDO> {
ArchivesReviewDO getInfoById(@Param("id") Long id); ArchivesReviewDO getInfoById(@Param("id") Long id);
List<ArchivesReviewDO> listAll(@Param("params") Map<String, Object> params); List<ArchivesReviewDO> listAll(@Param("params") Map<String, Object> params);
ArchivesReviewDO getInfoByClassCur(@Param("params") Map<String, Object> params); List<ArchivesReviewDO> getInfoByClassCur(@Param("params") Map<String, Object> params);
} }

View File

@ -21,6 +21,6 @@ public interface ArchivesReviewRepository extends BaseRepository<ArchivesReviewD
List<ArchivesReviewDO> listAll(Map<String, Object> params); List<ArchivesReviewDO> listAll(Map<String, Object> params);
ArchivesReviewDO getInfoByClassCur(Map<String, Object> params); List<ArchivesReviewDO> getInfoByClassCur(Map<String, Object> params);
} }

View File

@ -12,6 +12,7 @@ import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.gbscommon.utils.Query; import com.zcloud.gbscommon.utils.Query;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

View File

@ -49,7 +49,7 @@ public class ArchivesReviewRepositoryImpl extends BaseRepositoryImpl<ArchivesRev
} }
@Override @Override
public ArchivesReviewDO getInfoByClassCur(Map<String, Object> params) { public List<ArchivesReviewDO> getInfoByClassCur(Map<String, Object> params) {
return archivesReviewMapper.getInfoByClassCur(params); return archivesReviewMapper.getInfoByClassCur(params);
} }
} }

View File

@ -13,6 +13,7 @@ import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.gbscommon.utils.Query; import com.zcloud.gbscommon.utils.Query;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -73,6 +74,9 @@ public class ClassCurriculumRepositoryImpl extends BaseRepositoryImpl<ClassCurri
QueryWrapper<ClassCurriculumDO> queryWrapper = new QueryWrapper<>(); QueryWrapper<ClassCurriculumDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByDesc("create_time"); queryWrapper.orderByDesc("create_time");
if(!ObjectUtils.isEmpty(params.get("classId"))){
queryWrapper.eq("class_id", params.get("classId"));
}
queryWrapper.eq("delete_enum", "FALSE"); queryWrapper.eq("delete_enum", "FALSE");
return classCurriculumMapper.selectList(queryWrapper); return classCurriculumMapper.selectList(queryWrapper);
} }

View File

@ -62,6 +62,12 @@
<if test="params.classCurriculumId != null and params.classCurriculumId != ''"> <if test="params.classCurriculumId != null and params.classCurriculumId != ''">
and cc.class_curriculum_id = #{params.classCurriculumId} and cc.class_curriculum_id = #{params.classCurriculumId}
</if> </if>
<if test="params.classCurriculumIds != null and params.classCurriculumIds.size() > 0">
AND cc.class_curriculum_id in
<foreach collection="params.classCurriculumIds" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</if>
</where> </where>
</select> </select>
</mapper> </mapper>

View File

@ -26,6 +26,8 @@
AND ss.delete_enum = 'FALSE' AND ss.delete_enum = 'FALSE'
and ss.sign_url is not null and ss.sign_url is not null
and ss.sign_url != '' and ss.sign_url != ''
GROUP BY ss.student_id
order by order by
ss.create_time desc ss.create_time desc
</where> </where>