优化档案查询功能并修复多个数据处理问题
parent
42d2a4efb5
commit
c024d8000b
|
|
@ -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();
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 = "考试签到人脸图片路径")
|
||||||
|
|
|
||||||
|
|
@ -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 = "班级名称")
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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 = "人脸图片")
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue