瀏覽代碼

3.4.0 update

xiaofei 11 月之前
父節點
當前提交
c684334965

+ 9 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/MakeupExamTaskDto.java

@@ -15,6 +15,7 @@ public class MakeupExamTaskDto {
     private Long examId;
     @JsonSerialize(using = ToStringSerializer.class)
     private Long examDetailId;
+    private String courseId;
     private String courseCode;
     private String courseName;
     private String paperNumber;
@@ -57,6 +58,14 @@ public class MakeupExamTaskDto {
         this.examDetailId = examDetailId;
     }
 
+    public String getCourseId() {
+        return courseId;
+    }
+
+    public void setCourseId(String courseId) {
+        this.courseId = courseId;
+    }
+
     public String getCourseCode() {
         return courseCode;
     }

+ 1 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -1711,8 +1711,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 examDetailCourse.setId(SystemConstant.getDbUuid());
                 examDetailCourse.setSchoolId(schoolId);
                 examDetailCourse.setExamDetailId(examDetail.getId());
-                examDetailCourse.setCourseCode(makeupExamTaskParam.getCourseCode());
-                examDetailCourse.setCourseName(makeupExamTaskParam.getCourseName());
+                examDetailCourse.setCourseId(makeupExamTaskParam.getCourseId());
                 examDetailCourse.setPaperNumber(makeupExamTaskParam.getPaperNumber());
                 examDetailCourse.setTotalSubjects(makeupExamTaskParam.getTotalSubjects());
                 examDetailCourse.setCreateId(sysUser.getId());

+ 3 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/PdfTaskLogicServiceImpl.java

@@ -307,12 +307,14 @@ public class PdfTaskLogicServiceImpl implements PdfTaskLogicService {
                 } else if (examDetailCourse.getTotalSubjects() != null) {
                     AtomicInteger atomicInteger = new AtomicInteger(0);
                     Map<String, BasicAttachment> stringBasicAttachmentMap = new HashMap<>();
+                    ExamStudentInfo examStudentInfo = new ExamStudentInfo();
+                    examStudentInfo.setCourseCode(basicCourse.getCode());
                     int i = 0;
                     while (i < examDetailCourse.getTotalSubjects()) {
                         int seq = atomicInteger.getAndIncrement();
                         int mod = seq % examTaskDetail.getDrawCount();
                         String tempPaperType = paperTypes[mod];
-                        BasicAttachment basicAttachment = createPdfUtil.examStudentHtml(examCardMap.get(tempPaperType).getHtmlContent(), null, tempPaperType, examDetail, tbTaskPdf.getCreateId(), createPdfDto.getCardPdfList(), createPdfDto.getFileTempList(), basicCardRule);
+                        BasicAttachment basicAttachment = createPdfUtil.examStudentHtml(examCardMap.get(tempPaperType).getHtmlContent(), examStudentInfo, tempPaperType, examDetail, tbTaskPdf.getCreateId(), createPdfDto.getCardPdfList(), createPdfDto.getFileTempList(), basicCardRule);
 
                         if (!stringBasicAttachmentMap.containsKey(tempPaperType)) {
                             stringBasicAttachmentMap.put(tempPaperType, basicAttachment);

+ 7 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -559,10 +559,15 @@ public class CreatePdfUtil {
                                            Long userId, List<PdfDto> examStudentPdfList, List<File> fileTempList, BasicCardRule basicCardRule) throws IOException {
         if (basicCardRule != null) {
             if (ExamNumberStyleEnum.PRINT.equals(basicCardRule.getExamNumberStyle())) {
+                if(examStudent == null || StringUtils.isBlank(examStudent.getStudentCode())){
+                    studentHtml = studentHtml.replaceAll("<img src=\"data:image/png;base64,\\$\\{studentCodeBarcode\\}\">",  "");
+                    studentHtml = studentHtml.replaceAll("<img src=\"data:image/png;base64,\\$\\{examNumber\\}\">",  "");
+                } else {
+                    studentHtml = studentHtml.replaceAll("\\$\\{studentCodeBarcode\\}", examStudent != null && examStudent.getStudentCode() != null ? GoogleBarCodeUtil.createBarCode(examStudent.getStudentCode(), false) : "");
+                    studentHtml = studentHtml.replaceAll("\\$\\{examNumber\\}", examStudent != null && examStudent.getStudentCode() != null ? GoogleBarCodeUtil.createBarCode(examStudent.getStudentCode(), false) : "");
+                }
                 // 生成学生考号条码并将图片转成base64
-                studentHtml = studentHtml.replaceAll("\\$\\{studentCodeBarcode\\}", examStudent != null && examStudent.getStudentCode() != null ? GoogleBarCodeUtil.createBarCode(examStudent.getStudentCode(), false) : "");
                 studentHtml = studentHtml.replaceAll("\\$\\{ticketNumberBarcode\\}", "");
-                studentHtml = studentHtml.replaceAll("\\$\\{examNumber\\}", examStudent != null && examStudent.getStudentCode() != null ? GoogleBarCodeUtil.createBarCode(examStudent.getStudentCode(), false) : "");
                 studentHtml = studentHtml.replaceAll("\\$\\{examNumberStr\\}", examStudent != null && examStudent.getStudentCode() != null ? examStudent.getStudentCode() : "");
                 studentHtml = studentHtml.replaceAll("\\$\\{courseCodeBarcodeSrc\\}", examStudent != null && examStudent.getCourseCode() != null ? "data:image/png;base64," + GoogleBarCodeUtil.createBarCode(examStudent.getCourseCode(), false) : "");
                 studentHtml = studentHtml.replaceAll("\\$\\{courseCodeBarcodeName\\}", examStudent != null && examStudent.getCourseCode() != null ? examStudent.getCourseCode() : "");

+ 7 - 3
distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml

@@ -1201,6 +1201,7 @@
             resultType="com.qmth.distributed.print.business.bean.dto.MakeupExamTaskDto">
         SELECT
             a.exam_id,
+            a.course_id,
             a.course_code,
             a.course_name,
             a.paper_number,
@@ -1219,6 +1220,7 @@
         FROM
         (SELECT
             et.exam_id,
+            et.course_id,
             bc.code course_code,
             bc.name course_name,
             et.paper_number,
@@ -1231,6 +1233,7 @@
         FROM
             exam_task et
         LEFT JOIN exam_task_detail etd ON et.id = etd.exam_task_id
+        LEFT JOIN t_f_flow_approve g ON g.flow_id = et.flow_id
         LEFT JOIN basic_exam be ON et.exam_id = be.id
         LEFT JOIN sys_user su ON et.user_id = su.id
         LEFT JOIN (select ed.exam_id , edc.paper_number,
@@ -1238,8 +1241,8 @@
                           group_concat(distinct edc.clazz_name) clazz_name
                           from exam_detail ed left join exam_detail_course edc on ed.id = edc.exam_detail_id
                 where ed.exam_id = #{examId}
-                <if test="courseCode != null and courseCode != ''">
-                    AND edc.course_code = #{courseCode}
+                <if test="courseId != null">
+                    AND edc.course_id = #{courseId}
                 </if>
                 <if test="paperNumber != null and paperNumber != ''">
                     AND edc.paper_number = #{paperNumber}
@@ -1269,7 +1272,8 @@
             et.course_id = bc.id
             AND bc.teaching_room_id = #{collegeId})
         </if>
-        AND etd.unexposed_paper_type is not null) a
+        AND etd.unexposed_paper_type is not null
+        and (et.status = 'SUBMIT' and (et.flow_id is null or (et.flow_id is not null and g.status = 'FINISH')))) a
         LEFT JOIN
         (SELECT
             ed.id,

+ 1 - 1
distributed-print-business/src/main/resources/mapper/TBTaskPdfMapper.xml

@@ -45,7 +45,7 @@
                 LEFT JOIN
             exam_print_plan epp ON tp.print_plan_id = epp.id
         <where>
-            tp.exam_id = #{examId}
+            epp.exam_id = #{examId}
             <if test="printPlanId != null">
                 and tp.print_plan_id = #{printPlanId}
             </if>

+ 6 - 4
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkStudentController.java

@@ -52,13 +52,14 @@ public class MarkStudentController {
                                    @ApiParam(value = "客观题总分开始") @RequestParam(required = false) Double objectiveStartScore,
                                    @ApiParam(value = "客观题总分结束") @RequestParam(required = false) Double objectiveEndScore, @ApiParam(value = "小题得分") @RequestParam(required = false) Double subScore,
                                    @ApiParam(value = "客观题分小于x%") @RequestParam(required = false) Integer objectiveScoreRateLt, @ApiParam(value = "姓名") @RequestParam(required = false) String studentName,
-                                   @ApiParam(value = "学号") @RequestParam(required = false) String studentCode, @ApiParam(value = "排序方式") @RequestParam(required = false) String orderType,
+                                   @ApiParam(value = "学号") @RequestParam(required = false) String studentCode, @ApiParam(value = "密号") @RequestParam(required = false) String secretNumber,
+                                   @ApiParam(value = "排序方式") @RequestParam(required = false) String orderType,
                                    @ApiParam(value = "排序字段") @RequestParam(required = false) String orderField, @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                                    @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
         IPage<StudentScoreDetailDto> scoreListDtoIPage = markStudentService.pageStudentScore(examId, paperNumber,
                 college, majorName, teachClassName, className, teacher, filter, status, breach, startScore, endScore,
                 subjectiveStartScore, subjectiveEndScore, objectiveStartScore, objectiveEndScore, subScore,
-                objectiveScoreRateLt, studentName, studentCode, orderType, orderField, pageNumber, pageSize);
+                objectiveScoreRateLt, studentName, studentCode, secretNumber, orderType, orderField, pageNumber, pageSize);
         return ResultUtil.ok(scoreListDtoIPage);
     }
 
@@ -90,11 +91,12 @@ public class MarkStudentController {
                             @ApiParam(value = "客观题总分开始") @RequestParam(required = false) Double objectiveStartScore,
                             @ApiParam(value = "客观题总分结束") @RequestParam(required = false) Double objectiveEndScore, @ApiParam(value = "小题得分") @RequestParam(required = false) Double subScore,
                             @ApiParam(value = "客观题分小于x%") @RequestParam(required = false) Integer objectiveScoreRateLt, @ApiParam(value = "姓名") @RequestParam(required = false) String studentName,
-                            @ApiParam(value = "学号") @RequestParam(required = false) String studentCode, @ApiParam(value = "排序方式") @RequestParam(required = false) String orderType,
+                            @ApiParam(value = "学号") @RequestParam(required = false) String studentCode, @ApiParam(value = "密号") @RequestParam(required = false) String secretNumber,
+                            @ApiParam(value = "排序方式") @RequestParam(required = false) String orderType,
                             @ApiParam(value = "排序字段") @RequestParam(required = false) String orderField) {
         markStudentService.pageStudentScoreExport(examId, paperNumber,
                 college, majorName, teachClassName, className, teacher, filter, status, breach, startScore, endScore,
                 subjectiveStartScore, subjectiveEndScore, objectiveStartScore, objectiveEndScore, subScore,
-                objectiveScoreRateLt, studentName, studentCode, orderType, orderField);
+                objectiveScoreRateLt, studentName, studentCode, secretNumber, orderType, orderField);
     }
 }

+ 2 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkStudentMapper.java

@@ -36,7 +36,7 @@ public interface MarkStudentMapper extends BaseMapper<MarkStudent> {
                                                   @Param("subjectiveStartScore") Double subjectiveStartScore, @Param("subjectiveEndScore") Double subjectiveEndScore,
                                                   @Param("objectiveStartScore") Double objectiveStartScore,
                                                   @Param("objectiveEndScore") Double objectiveEndScore, @Param("subScore") Double subScore, @Param("objectiveScoreLt") Double objectiveScoreLt,
-                                                  @Param("studentName") String studentName, @Param("studentCode") String studentCode, @Param("orderType") String orderType,
+                                                  @Param("studentName") String studentName, @Param("studentCode") String studentCode, @Param("secretNumber") String secretNumber, @Param("orderType") String orderType,
                                                   @Param("orderField") String orderField, @Param("dpr") DataPermissionRule dpr);
 
     /**
@@ -73,7 +73,7 @@ public interface MarkStudentMapper extends BaseMapper<MarkStudent> {
                                                        @Param("subjectiveStartScore") Double subjectiveStartScore, @Param("subjectiveEndScore") Double subjectiveEndScore,
                                                        @Param("objectiveStartScore") Double objectiveStartScore,
                                                        @Param("objectiveEndScore") Double objectiveEndScore, @Param("subScore") Double subScore, @Param("objectiveScoreLt") Double objectiveScoreLt,
-                                                       @Param("studentName") String studentName, @Param("studentCode") String studentCode, @Param("orderType") String orderType,
+                                                       @Param("studentName") String studentName, @Param("studentCode") String studentCode, @Param("secretNumber") String secretNumber, @Param("orderType") String orderType,
                                                        @Param("orderField") String orderField, @Param("dpr") DataPermissionRule dpr);
 
     List<MarkStudent> listAbsentOrBreachMarkTaskStudent(@Param("examId") Long examId,

+ 2 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkStudentService.java

@@ -63,7 +63,7 @@ public interface MarkStudentService extends IService<MarkStudent> {
     IPage<StudentScoreDetailDto> pageStudentScore(Long examId, String paperNumber, String college, String majorName, String teachClassName,
                                                   String className, String teacher, Integer filter, String status, Boolean breach, Double startScore, Double endScore,
                                                   Double subjectiveStartScore, Double subjectiveEndScore, Double objectiveStartScore, Double objectiveEndScore,
-                                                  Double subScore, Integer objectiveScoreRateLt, String studentName, String studentCode, String orderType,
+                                                  Double subScore, Integer objectiveScoreRateLt, String studentName, String studentCode, String secretNumber, String orderType,
                                                   String orderField, Integer pageNumber, Integer pageSize);
 
     /**
@@ -96,7 +96,7 @@ public interface MarkStudentService extends IService<MarkStudent> {
     List<StudentScoreDetailDto> pageStudentScoreExport(Long examId, String paperNumber, String college, String majorName, String teachClassName,
                                                        String className, String teacher, Integer filter, String status, Boolean breach, Double startScore, Double endScore,
                                                        Double subjectiveStartScore, Double subjectiveEndScore, Double objectiveStartScore, Double objectiveEndScore,
-                                                       Double subScore, Integer objectiveScoreRateLt, String studentName, String studentCode, String orderType,
+                                                       Double subScore, Integer objectiveScoreRateLt, String studentName, String studentCode, String secretNumber, String orderType,
                                                        String orderField);
 
 

+ 4 - 4
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java

@@ -232,7 +232,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
     public IPage<StudentScoreDetailDto> pageStudentScore(Long examId, String paperNumber, String college, String majorName, String teachClassName,
                                                          String className, String teacher, Integer filter, String status, Boolean breach, Double startScore,
                                                          Double endScore, Double subjectiveStartScore, Double subjectiveEndScore, Double objectiveStartScore, Double objectiveEndScore,
-                                                         Double subScore, Integer objectiveScoreRateLt, String studentName, String studentCode,
+                                                         Double subScore, Integer objectiveScoreRateLt, String studentName, String studentCode, String secretNumber,
                                                          String orderType, String orderField, Integer pageNumber, Integer pageSize) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         if (startScore != null && endScore == null) {
@@ -258,7 +258,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         IPage<StudentScoreDetailDto> studentScoreDetailDtoIPage = this.baseMapper.pageStudentScore(page, examId,
                 paperNumber, college, majorName, teachClassName, className, teacher, filter, status, breach, startScore, endScore,
                 subjectiveStartScore, subjectiveEndScore, objectiveStartScore, objectiveEndScore, subScore,
-                objectiveScoreLt, studentName, studentCode, orderType, orderField, dpr);
+                objectiveScoreLt, studentName, studentCode,secretNumber, orderType, orderField, dpr);
         for (StudentScoreDetailDto scoreDetailDto : studentScoreDetailDtoIPage.getRecords()) {
             // 原图
             scoreDetailDto.setSheetUrls(buildSheetUrls(scoreDetailDto.getStudentId()));
@@ -324,7 +324,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
      * @return
      */
     @Override
-    public List<StudentScoreDetailDto> pageStudentScoreExport(Long examId, String paperNumber, String college, String majorName, String teachClassName, String className, String teacher, Integer filter, String status, Boolean breach, Double startScore, Double endScore, Double subjectiveStartScore, Double subjectiveEndScore, Double objectiveStartScore, Double objectiveEndScore, Double subScore, Integer objectiveScoreRateLt, String studentName, String studentCode, String orderType, String orderField) {
+    public List<StudentScoreDetailDto> pageStudentScoreExport(Long examId, String paperNumber, String college, String majorName, String teachClassName, String className, String teacher, Integer filter, String status, Boolean breach, Double startScore, Double endScore, Double subjectiveStartScore, Double subjectiveEndScore, Double objectiveStartScore, Double objectiveEndScore, Double subScore, Integer objectiveScoreRateLt, String studentName, String studentCode, String secretNumber, String orderType, String orderField) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         if (startScore != null && endScore == null) {
             throw ExceptionResultEnum.ERROR.exception("请输入试卷总分结束分数值");
@@ -348,7 +348,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         List<StudentScoreDetailDto> studentScoreDetailDtoList = this.baseMapper.pageStudentScoreExport(examId,
                 paperNumber, college, majorName, teachClassName, className, teacher, filter, status, breach, startScore, endScore,
                 subjectiveStartScore, subjectiveEndScore, objectiveStartScore, objectiveEndScore, subScore,
-                objectiveScoreLt, studentName, studentCode, orderType, orderField, dpr);
+                objectiveScoreLt, studentName, studentCode, secretNumber, orderType, orderField, dpr);
         Set<StudentScoreDetailExportDto> studentScoreDetailExportDtoSet = new HashSet<>();
         for (StudentScoreDetailDto scoreDetailDto : studentScoreDetailDtoList) {
             studentScoreDetailExportDtoSet.add(new StudentScoreDetailExportDto(scoreDetailDto));

+ 3 - 0
teachcloud-mark/src/main/resources/mapper/MarkStudentMapper.xml

@@ -182,6 +182,9 @@
             <if test="studentCode != null and studentCode != ''">
                 AND bes.student_code = #{studentCode}
             </if>
+            <if test="secretNumber != null and secretNumber != ''">
+                AND ms.secret_number = #{secretNumber}
+            </if>
             <if test="orderType != null and orderType != '' and orderField != null and orderField != ''">
                 <choose>
                     <when test="orderField == 'totalScore'">