diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesPdfFileQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesPdfFileQueryExe.java index 4807481..02e6556 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesPdfFileQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesPdfFileQueryExe.java @@ -8,8 +8,13 @@ import com.zcloud.edu.persistence.dataobject.archives.ArchivesPdfFileDO; import com.zcloud.edu.persistence.repository.archives.ArchivesPdfFileRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; import lombok.AllArgsConstructor; +import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Component; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; @@ -33,6 +38,30 @@ public class ArchivesPdfFileQueryExe { * @return */ public PageResponse execute(ArchivesPdfFilePageQry archivesPdfFilePageQry) { + DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + if(StringUtils.isNotEmpty(archivesPdfFilePageQry.getGeCreateTime())){ + //增加上00:00:00 + String dateStr = archivesPdfFilePageQry.getGeCreateTime(); + try { + LocalDate date = LocalDate.parse(dateStr, dateFormatter); + LocalDateTime startDateTime = date.atStartOfDay(); + archivesPdfFilePageQry.setGeCreateTime(startDateTime.toString().replace('T', ' ')); + } catch (Exception e) { + } + } + if(StringUtils.isNotEmpty(archivesPdfFilePageQry.getLeCreateTime())){ + //增加上23:59:59 + String dateStr = archivesPdfFilePageQry.getLeCreateTime(); + try { + LocalDate date = LocalDate.parse(dateStr, dateFormatter); + LocalDateTime endDateTime = date.atTime(LocalTime.MAX); + archivesPdfFilePageQry.setLeCreateTime(endDateTime.toString().replace('T', ' ')); + } catch (Exception e) { + } + } + + + Map params = PageQueryHelper.toHashMap(archivesPdfFilePageQry); PageResponse pageResponse = archivesPdfFileRepository.listPage(params); List examCenterCOS = archivesPdfFileCoConvertor.converDOsToCOs(pageResponse.getData()); 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 d4b48b2..5975ea5 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 @@ -272,28 +272,30 @@ public class ArchivesQueryExe { if (!ObjectUtils.isEmpty(params.getExamSignFlag())) { - String imageUrl = fileUrlConfig.getPrefixUrl() + params.getExamSignFaceUrl(); - try (InputStream is = new URL(imageUrl).openStream()) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - - // Thumbnailator 自动处理 EXIF 方向,并缩放到 100x100(保持比例) - Thumbnails.of(is) - .keepAspectRatio(true) // 可选:保持比例,避免拉伸 - .outputFormat("JPEG") - .toOutputStream(baos); - - byte[] imageBytes = baos.toByteArray(); - ByteArrayInputStream bis = new ByteArrayInputStream(imageBytes); - PictureRenderData picture = Pictures.ofStream(bis) - .size(100, 100) - .create(); - - workItem.put("examSignFacePicture", picture); - } catch (Exception e) { - e.printStackTrace(); - // 可选:插入默认占位图 - // workItem.put("examSignFacePicture", defaultPicture); - } + PictureRenderData examSignFacePicture = Pictures.ofUrl(fileUrlConfig.getPrefixUrl() + params.getExamSignFaceUrl(), PictureType.JPEG).size(100, 100).create();//网络图片地址 + workItem.put("examSignFacePicture", examSignFacePicture); +// String imageUrl = fileUrlConfig.getPrefixUrl() + params.getExamSignFaceUrl(); +// try (InputStream is = new URL(imageUrl).openStream()) { +// ByteArrayOutputStream baos = new ByteArrayOutputStream(); +// +// // Thumbnailator 自动处理 EXIF 方向,并缩放到 100x100(保持比例) +// Thumbnails.of(is) +// .keepAspectRatio(true) // 可选:保持比例,避免拉伸 +// .outputFormat("JPEG") +// .toOutputStream(baos); +// +// byte[] imageBytes = baos.toByteArray(); +// ByteArrayInputStream bis = new ByteArrayInputStream(imageBytes); +// PictureRenderData picture = Pictures.ofStream(bis) +// .size(100, 100) +// .create(); +// +// workItem.put("examSignFacePicture", picture); +// } catch (Exception e) { +// e.printStackTrace(); +// // 可选:插入默认占位图 +// // workItem.put("examSignFacePicture", defaultPicture); +// } } String templatePath = "templates/template/studyRecord.docx"; diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassExamPaperQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassExamPaperQueryExe.java index 8d5394b..00d78af 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassExamPaperQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassExamPaperQueryExe.java @@ -2,8 +2,10 @@ package com.zcloud.edu.command.query.study; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ArrayUtil; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.SingleResponse; +import com.sun.xml.bind.v2.TODO; import com.zcloud.edu.command.convertor.study.ClassExamPaperCoConvertor; import com.zcloud.edu.dto.clientobject.resource.QuestionCO; import com.zcloud.edu.dto.clientobject.study.ClassExamPaperCO; @@ -15,6 +17,7 @@ import com.zcloud.edu.persistence.repository.resource.QuestionRepository; import com.zcloud.edu.persistence.repository.study.ClassExamPaperRepository; import com.zcloud.edu.persistence.repository.study.ClassRepository; import com.zcloud.edu.persistence.repository.study.StudentExamRecordRepository; +import com.zcloud.edu.persistence.repository.study.StudentRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.Tools; import com.zcloud.gbscommon.utils.WordToPdfUtil; @@ -28,9 +31,11 @@ import javax.servlet.http.HttpServletResponse; import java.io.OutputStream; import java.net.URLEncoder; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; /** @@ -47,6 +52,7 @@ public class ClassExamPaperQueryExe { private final QuestionRepository questionRepository; private final ClassRepository classRepository; private final StudentExamRecordRepository studentExamRecordRepository; + private final StudentRepository studentRepository; /** * 分页 @@ -79,6 +85,9 @@ public class ClassExamPaperQueryExe { */ public SingleResponse executeGetInfoByClassId(String classId) { ClassExamPaperDO classExamPaperDO = classExamPaperRepository.findByClassId(classId); + if(classExamPaperDO == null){ + return SingleResponse.of(null); + } List questionDOList = questionRepository.getInfoByExamPaperId(classExamPaperDO.getExamPaperId()); List questionCOList = BeanUtil.copyToList(questionDOList, QuestionCO.class); ClassExamPaperCO classExamPaperCO = new ClassExamPaperCO(); @@ -86,8 +95,16 @@ public class ClassExamPaperQueryExe { classExamPaperCO.setQuestionList(questionCOList); //考试人数 - Long count = studentExamRecordRepository.getCountByClassExamPaperId(classExamPaperDO.getClassExamPaperId()); - classExamPaperCO.setClassExamPaperStudentCount( count); + + List stuCountList = studentRepository.countStudentByClass(Arrays.asList(classId)); + //判断当前登录人是否是教师 + + if (stuCountList != null && stuCountList.size() > 0){ + Map stuCountMap = stuCountList.stream().collect(Collectors.toMap(ClassDO::getClassId, classDO -> classDO)); + classExamPaperCO.setClassExamPaperStudentCount( stuCountMap.get(classId).getSignCount()); + } + + return SingleResponse.of(classExamPaperCO); } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassExamPaperCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassExamPaperCO.java index b20ab23..32b6e35 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassExamPaperCO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassExamPaperCO.java @@ -93,6 +93,6 @@ public class ClassExamPaperCO extends ClientObject { private String env; @ApiModelProperty(value = "班级考试人数") - private Long classExamPaperStudentCount; + private Integer classExamPaperStudentCount; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassPageQry.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassPageQry.java index dc6bee0..9fa9a4f 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassPageQry.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassPageQry.java @@ -27,6 +27,7 @@ public class ClassPageQry extends PageQuery { private String likeName; private String eqTrainType; private Integer eqState; + private Integer neState; private String geStartTime; private String leStartTime; private String geEndTime;