瀏覽代碼

3.4.3 update-bug-1216

xiaofei 6 月之前
父節點
當前提交
279289de34

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

@@ -221,7 +221,7 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
         String paperType = basicExamStudentParam.getPaperType();
 
         if (StringUtils.isNotBlank(studentCode) && !studentCode.matches(SystemConstant.REGULAR_EXPRESSION_OF_STUDENT_CODE)) {
-            throw ExceptionResultEnum.ERROR.exception("学号只能由字母、数字组成");
+            throw ExceptionResultEnum.ERROR.exception("学号只能由大写字母、数字组成");
         }
 
         Long teacherId = null;
@@ -612,7 +612,7 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
             StringJoiner stringJoiner = new StringJoiner(";");
             // 学号校验
             if (StringUtils.isNotBlank(basicExamStudent.getStudentCode()) && !basicExamStudent.getStudentCode().matches(SystemConstant.REGULAR_EXPRESSION_OF_STUDENT_CODE)) {
-                stringJoiner.add("学号只能由字母、数字组成");
+                stringJoiner.add("学号只能由大写字母、数字组成");
             }
 
             if (ExamModelEnum.MODEL4.equals(basicExam.getExamModel())) {

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

@@ -2344,6 +2344,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             } else {
                 examTask.setPaperNumber(printCommonService.autoCreatePaperNumber(examId));
             }
+            examTask.setPaperName(examTaskDataVo.getPaperNumberDesc());
 
             examTask.setReview(basicPrintConfig.getReview());
             // 取课程所在机构

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/ImportLogicServiceImpl.java

@@ -204,7 +204,7 @@ public class ImportLogicServiceImpl implements ImportLogicService {
 
             // 学号校验
             if (StringUtils.isNotBlank(basicExamStudent.getStudentCode()) && !basicExamStudent.getStudentCode().matches(SystemConstant.REGULAR_EXPRESSION_OF_STUDENT_CODE)) {
-                stringJoiner.add("学号只能由字母、数字组成");
+                stringJoiner.add("学号只能由大写字母、数字组成");
             }
 
             if (ExamModelEnum.MODEL4.equals(basicExam.getExamModel())) {
@@ -618,7 +618,7 @@ public class ImportLogicServiceImpl implements ImportLogicService {
 
             // 学号校验
             if (StringUtils.isNotBlank(basicExamStudent.getStudentCode()) && !basicExamStudent.getStudentCode().matches(SystemConstant.REGULAR_EXPRESSION_OF_STUDENT_CODE)) {
-                stringJoiner.add("学号只能由字母、数字组成");
+                stringJoiner.add("学号只能由大写字母、数字组成");
             }
 
             // 校验任课老师,都填或者都不填

+ 10 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/sync/ExamTaskDataVo.java

@@ -15,6 +15,8 @@ public class ExamTaskDataVo {
     private String courseCollegeName;
     @ApiModelProperty(value = "试卷编号")
     private String paperNumber;
+    @ApiModelProperty(value = "试卷编号备注")
+    private String paperNumberDesc;
     @ApiModelProperty(value = "命题开始时间")
     private Long startTime;
     @ApiModelProperty(value = "命题结束时间")
@@ -58,6 +60,14 @@ public class ExamTaskDataVo {
         this.paperNumber = paperNumber;
     }
 
+    public String getPaperNumberDesc() {
+        return paperNumberDesc;
+    }
+
+    public void setPaperNumberDesc(String paperNumberDesc) {
+        this.paperNumberDesc = paperNumberDesc;
+    }
+
     public Long getStartTime() {
         return startTime;
     }

+ 260 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/sync/TSyncDataStudent.java

@@ -0,0 +1,260 @@
+package com.qmth.teachcloud.common.bean.sync;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * <p>
+ * 数据同步考生
+ * </p>
+ *
+ * @author xf
+ * @since 2024-12-10
+ */
+@TableName("t_sync_data_student")
+@ApiModel(value="TSyncDataStudent对象", description="数据同步考生")
+public class TSyncDataStudent implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "id")
+    @TableId(value = "id", type = IdType.INPUT)
+    private Long id;
+
+    @ApiModelProperty(value = "学校id")
+    private Long schoolId;
+
+    @ApiModelProperty(value = "考试id")
+    private Long examId;
+
+    @ApiModelProperty(value = "课程编号")
+    private String courseCode;
+
+    @ApiModelProperty(value = "课程名称")
+    private String courseName;
+
+    @ApiModelProperty(value = "课程开课学院")
+    private String courseCollegeName;
+
+    @ApiModelProperty(value = "试卷编号")
+    private String paperNumber;
+
+    @ApiModelProperty(value = "姓名")
+    private String studentName;
+
+    @ApiModelProperty(value = "学号")
+    private String studentCode;
+
+    @ApiModelProperty(value = "座位号")
+    private String siteNumber;
+
+    @ApiModelProperty(value = "学院")
+    private String studentCollegeName;
+
+    @ApiModelProperty(value = "专业")
+    private String majorName;
+
+    private String teachClassName;
+
+    private String className;
+
+    @ApiModelProperty(value = "考试开始时间")
+    private Long examStartTime;
+
+    @ApiModelProperty(value = "考试结束时间")
+    private Long examEndTime;
+
+    @ApiModelProperty(value = "考点")
+    private String examPlace;
+
+    @ApiModelProperty(value = "考场")
+    private String examRoom;
+
+    @ApiModelProperty(value = "命题老师工号")
+    private String teacherCode;
+
+    @ApiModelProperty(value = "命题老师姓名")
+    private String teacherName;
+
+    @ApiModelProperty(value = "是否已同步到考生表中")
+    private Boolean updateStatus;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+    public String getCourseCollegeName() {
+        return courseCollegeName;
+    }
+
+    public void setCourseCollegeName(String courseCollegeName) {
+        this.courseCollegeName = courseCollegeName;
+    }
+    public String getPaperNumber() {
+        return paperNumber;
+    }
+
+    public void setPaperNumber(String paperNumber) {
+        this.paperNumber = paperNumber;
+    }
+    public String getStudentName() {
+        return studentName;
+    }
+
+    public void setStudentName(String studentName) {
+        this.studentName = studentName;
+    }
+    public String getStudentCode() {
+        return studentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
+    public String getSiteNumber() {
+        return siteNumber;
+    }
+
+    public void setSiteNumber(String siteNumber) {
+        this.siteNumber = siteNumber;
+    }
+    public String getStudentCollegeName() {
+        return studentCollegeName;
+    }
+
+    public void setStudentCollegeName(String studentCollegeName) {
+        this.studentCollegeName = studentCollegeName;
+    }
+    public String getMajorName() {
+        return majorName;
+    }
+
+    public void setMajorName(String majorName) {
+        this.majorName = majorName;
+    }
+    public String getTeachClassName() {
+        return teachClassName;
+    }
+
+    public void setTeachClassName(String teachClassName) {
+        this.teachClassName = teachClassName;
+    }
+    public String getClassName() {
+        return className;
+    }
+
+    public void setClassName(String className) {
+        this.className = className;
+    }
+    public Long getExamStartTime() {
+        return examStartTime;
+    }
+
+    public void setExamStartTime(Long examStartTime) {
+        this.examStartTime = examStartTime;
+    }
+    public Long getExamEndTime() {
+        return examEndTime;
+    }
+
+    public void setExamEndTime(Long examEndTime) {
+        this.examEndTime = examEndTime;
+    }
+    public String getExamPlace() {
+        return examPlace;
+    }
+
+    public void setExamPlace(String examPlace) {
+        this.examPlace = examPlace;
+    }
+    public String getExamRoom() {
+        return examRoom;
+    }
+
+    public void setExamRoom(String examRoom) {
+        this.examRoom = examRoom;
+    }
+    public String getTeacherCode() {
+        return teacherCode;
+    }
+
+    public void setTeacherCode(String teacherCode) {
+        this.teacherCode = teacherCode;
+    }
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+    public Boolean getUpdateStatus() {
+        return updateStatus;
+    }
+
+    public void setUpdateStatus(Boolean updateStatus) {
+        this.updateStatus = updateStatus;
+    }
+
+    @Override
+    public String toString() {
+        return "TSyncDataStudent{" +
+            "id=" + id +
+            ", schoolId=" + schoolId +
+            ", examId=" + examId +
+            ", courseCode=" + courseCode +
+            ", courseName=" + courseName +
+            ", courseCollegeName=" + courseCollegeName +
+            ", paperNumber=" + paperNumber +
+            ", studentName=" + studentName +
+            ", studentCode=" + studentCode +
+            ", siteNumber=" + siteNumber +
+            ", studentCollegeName=" + studentCollegeName +
+            ", majorName=" + majorName +
+            ", teachClassName=" + teachClassName +
+            ", className=" + className +
+            ", examStartTime=" + examStartTime +
+            ", examEndTime=" + examEndTime +
+            ", examPlace=" + examPlace +
+            ", examRoom=" + examRoom +
+            ", teacherCode=" + teacherCode +
+            ", teacherName=" + teacherName +
+            ", updateStatus=" + updateStatus +
+        "}";
+    }
+}

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -328,7 +328,7 @@ public class SystemConstant {
     //    public static final int MAX_RETRY_CREATE_PDF_COUNT = 5;
     //英文字母、数字、中文括号、英文括号、下划线(_)、减号(-)、中文横线(—)
     public static final String REGULAR_EXPRESSION_OF_CODE = "[a-zA-Z0-9](\\w+)?-?(\\w+)?—?(\\w+)?(\\((\\w+)?-?(\\w+)?—?(\\w+)?\\))?(\\((\\w+)?-?(\\w+)?—?(\\w+)?\\))?(\\w+)?";
-    public static final String REGULAR_EXPRESSION_OF_STUDENT_CODE = "^[a-zA-Z0-9]+$";
+    public static final String REGULAR_EXPRESSION_OF_STUDENT_CODE = "^[A-Z0-9]+$";
     public static final String REGULAR_EXPRESSION_OF_PHONE = "((\\d{3,4})|(\\(\\d{3,4}\\)-))?\\d{7,8}";
     public static final String REGULAR_EXPRESSION_OF_CODE_PRIMARY_DIMENSION = "[A-Z]";
     public static final String REGULAR_EXPRESSION_OF_CODE_SECOND_DIMENSION = "[A-Z][1-9][0-9]*";

+ 16 - 0
teachcloud-data/src/main/java/com/qmth/teachcloud/data/mapper/TSyncDataStudentMapper.java

@@ -0,0 +1,16 @@
+package com.qmth.teachcloud.data.mapper;
+
+import com.qmth.teachcloud.common.bean.sync.TSyncDataStudent;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 数据同步考生 Mapper 接口
+ * </p>
+ *
+ * @author xf
+ * @since 2024-12-10
+ */
+public interface TSyncDataStudentMapper extends BaseMapper<TSyncDataStudent> {
+
+}

+ 16 - 0
teachcloud-data/src/main/java/com/qmth/teachcloud/data/service/TSyncDataStudentService.java

@@ -0,0 +1,16 @@
+package com.qmth.teachcloud.data.service;
+
+import com.qmth.teachcloud.common.bean.sync.TSyncDataStudent;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 数据同步考生 服务类
+ * </p>
+ *
+ * @author xf
+ * @since 2024-12-10
+ */
+public interface TSyncDataStudentService extends IService<TSyncDataStudent> {
+
+}

+ 20 - 0
teachcloud-data/src/main/java/com/qmth/teachcloud/data/service/impl/TSyncDataStudentServiceImpl.java

@@ -0,0 +1,20 @@
+package com.qmth.teachcloud.data.service.impl;
+
+import com.qmth.teachcloud.common.bean.sync.TSyncDataStudent;
+import com.qmth.teachcloud.data.mapper.TSyncDataStudentMapper;
+import com.qmth.teachcloud.data.service.TSyncDataStudentService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 数据同步考生 服务实现类
+ * </p>
+ *
+ * @author xf
+ * @since 2024-12-10
+ */
+@Service
+public class TSyncDataStudentServiceImpl extends ServiceImpl<TSyncDataStudentMapper, TSyncDataStudent> implements TSyncDataStudentService {
+
+}

+ 30 - 0
teachcloud-data/src/main/resources/mapper/TSyncDataStudentMapper.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.qmth.teachcloud.data.mapper.TSyncDataStudentMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.qmth.teachcloud.common.bean.sync.TSyncDataStudent">
+        <id column="id" property="id" />
+        <result column="school_id" property="schoolId" />
+        <result column="exam_id" property="examId" />
+        <result column="course_code" property="courseCode" />
+        <result column="course_name" property="courseName" />
+        <result column="course_college_name" property="courseCollegeName" />
+        <result column="paper_number" property="paperNumber" />
+        <result column="student_name" property="studentName" />
+        <result column="student_code" property="studentCode" />
+        <result column="site_number" property="siteNumber" />
+        <result column="student_college_name" property="studentCollegeName" />
+        <result column="major_name" property="majorName" />
+        <result column="teach_class_name" property="teachClassName" />
+        <result column="class_name" property="className" />
+        <result column="exam_start_time" property="examStartTime" />
+        <result column="exam_end_time" property="examEndTime" />
+        <result column="exam_place" property="examPlace" />
+        <result column="exam_room" property="examRoom" />
+        <result column="teacher_code" property="teacherCode" />
+        <result column="teacher_name" property="teacherName" />
+        <result column="update_status" property="updateStatus" />
+    </resultMap>
+
+</mapper>