Browse Source

评卷参数查询异常改动

caozixuan 2 năm trước cách đây
mục cha
commit
bc9e426c9b

+ 11 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamStudent.java

@@ -43,6 +43,9 @@ public class ExamStudent extends BaseEntity implements Serializable {
     @TableField("student_code")
     private String studentCode;
 
+    @TableField("paper_number")
+    private String paperNumber;
+
     @TableField("ticket_number")
     private String ticketNumber;
 
@@ -268,4 +271,12 @@ public class ExamStudent extends BaseEntity implements Serializable {
     public void setMajorName(String majorName) {
         this.majorName = majorName;
     }
+
+    public String getPaperNumber() {
+        return paperNumber;
+    }
+
+    public void setPaperNumber(String paperNumber) {
+        this.paperNumber = paperNumber;
+    }
 }

+ 10 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/PrintCommonService.java

@@ -50,6 +50,7 @@ public interface PrintCommonService {
     public BasicAttachment saveAttachmentPdf(ClassifyEnum classifyEnum, ExamDetail examDetail, BasicAttachment basicAttachment, List<PdfDto> pdfList, Integer printCount, Integer sequence) throws IOException, DocumentException;
 
     public void saveAttachmentSignPdf(PdfSignDto pdfFillDto, ExamDetail examDetail, List<PdfDto> pdfList, Integer printCount);
+
     /**
      * 保存html附件
      *
@@ -251,14 +252,16 @@ public interface PrintCommonService {
 
     /**
      * 根据学生集合创建考生考务数据
-     * @param schoolId 学校id
-     * @param extendFields 扩展字段
+     *
+     * @param schoolId                       学校id
+     * @param paperNumber                    试卷编号
+     * @param extendFields                   扩展字段
      * @param examTaskStudentObjectParamList 学生参数集合
-     * @param examDetailCourseId 考察表id
-     * @param sysUser 请求用户
+     * @param examDetailCourseId             考察表id
+     * @param sysUser                        请求用户
      * @return 结果
      */
-    List<ExamStudent> createBatchStudentByStudentList(Long schoolId, String extendFields, List<ExamTaskStudentObjectParam> examTaskStudentObjectParamList, Long examDetailCourseId, SysUser sysUser);
+    List<ExamStudent> createBatchStudentByStudentList(Long schoolId, String paperNumber, String extendFields, List<ExamTaskStudentObjectParam> examTaskStudentObjectParamList, Long examDetailCourseId, SysUser sysUser);
 
     /**
      * 生成准考证号
@@ -279,7 +282,8 @@ public interface PrintCommonService {
 
     /**
      * 生成任务序号
-     * @param schoolId 学校ID
+     *
+     * @param schoolId   学校ID
      * @param courseCode 课程代码
      * @return
      */

+ 4 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -1582,6 +1582,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 examPrintPlan.setSyncStatus(ExamPrintPlanSyncStatusEnum.INIT);
                 examPrintPlanService.save(examPrintPlan);
 
+                String paperNumber = examTask.getPaperNumber();
                 if (ExamModelEnum.MODEL1.equals(basicExam.getExamModel())) {
                     List<ExamDetailList> examDetailLists = JSONObject.parseArray(JSONObject.toJSONString(examDetailParams.getList()), ExamDetailList.class);
                     int i = 1;
@@ -1624,7 +1625,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                         examDetailCourse.setExamDetailId(examDetail.getId());
                         examDetailCourse.setCourseCode(examTask.getCourseCode());
                         examDetailCourse.setCourseName(examTask.getCourseName());
-                        examDetailCourse.setPaperNumber(examTask.getPaperNumber());
+                        examDetailCourse.setPaperNumber(paperNumber);
                         examDetailCourse.setClazzId(examDetailList.getClassId());
                         examDetailCourse.setTotalSubjects(examDetailList.getStudentCount());
                         examDetailCourse.setCreateId(sysUser.getId());
@@ -1632,7 +1633,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
                         // 更新实际考生数量
                         List<ExamTaskStudentObjectParam> examTaskStudentObjectParamList = examDetailList.getExamTaskStudentObjectParamList();
-                        List<ExamStudent> examStudents = printCommonService.createBatchStudentByStudentList(schoolId, examDetailList.getExtendFields(), examTaskStudentObjectParamList, examDetailCourse.getId(), sysUser);
+                        List<ExamStudent> examStudents = printCommonService.createBatchStudentByStudentList(schoolId, paperNumber, examDetailList.getExtendFields(), examTaskStudentObjectParamList, examDetailCourse.getId(), sysUser);
                         if (!CollectionUtils.isEmpty(examStudents)) {
                             examStudentService.insertBatch(examStudents);
                         }
@@ -1680,7 +1681,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                     examDetailCourse.setExamDetailId(examDetail.getId());
                     examDetailCourse.setCourseCode(examTask.getCourseCode());
                     examDetailCourse.setCourseName(examTask.getCourseName());
-                    examDetailCourse.setPaperNumber(examTask.getPaperNumber());
+                    examDetailCourse.setPaperNumber(paperNumber);
                     examDetailCourse.setTotalSubjects(examDetailParams.getPrintCount());
                     examDetailCourse.setCreateId(sysUser.getId());
                     examDetailCourseService.save(examDetailCourse);

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

@@ -1171,6 +1171,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                 examStudent.setExtendFields(extendFields);
                 examStudent.setSiteNumber(String.valueOf(atomicInteger.getAndIncrement()));
                 examStudent.setCreateId(sysUser.getId());
+                examStudent.setPaperNumber(examDetailCourseService.getById(examDetailCourseId).getPaperNumber());
                 return examStudent;
             }).collect(Collectors.toList());
             if (!CollectionUtils.isEmpty(basicStudents)) {
@@ -1183,7 +1184,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public List<ExamStudent> createBatchStudentByStudentList(Long schoolId, String extendFields, List<ExamTaskStudentObjectParam> examTaskStudentObjectParamList, Long examDetailCourseId, SysUser sysUser) {
+    public List<ExamStudent> createBatchStudentByStudentList(Long schoolId, String paperNumber, String extendFields, List<ExamTaskStudentObjectParam> examTaskStudentObjectParamList, Long examDetailCourseId, SysUser sysUser) {
         AtomicInteger atomicInteger = new AtomicInteger(1);
         SerialNumberParams ticketNumberParams = new SerialNumberParams("ticketNumber-" + schoolId, DateUtil.format(new Date(), "yyyyMM"), 6);
 
@@ -1224,6 +1225,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             examStudent.setExamDetailCourseId(examDetailCourseId);
             examStudent.setStudentName(basicStudentResult.getStudentName());
             examStudent.setStudentCode(basicStudentResult.getStudentCode());
+            examStudent.setPaperNumber(paperNumber);
             examStudent.setCollegeName(basicStudentResult.getCollegeName());
             examStudent.setMajorName(basicStudentResult.getMajorName());
             examStudent.setTicketNumber(createTempNumber(ticketNumberParams));

+ 19 - 20
distributed-print-business/src/main/resources/mapper/ExamPaperStructureMapper.xml

@@ -13,9 +13,9 @@
             epp.third_relate_name thirdRelateName,
             eps.objective_structure objectiveStructure,
             eps.subjective_structure subjectiveStructure,
-            edc.paper_number paperNumber,
-            edc.course_code courseCode,
-            edc.course_name courseName,
+            ep.paper_number paperNumber,
+            ep.course_code courseCode,
+            ep.course_name courseName,
             et.sequence,
             eps.paper_info_json paperInfoJson,
             es.paper_type paperType,
@@ -30,31 +30,30 @@
                 LEFT JOIN
             basic_semester bs ON be.semester_id = bs.id
                 LEFT JOIN
-            (SELECT DISTINCT
-                 a.print_plan_id,
-                 a.school_id,
-                 b.paper_number,
-                 b.course_code,
-                 b.course_name,
-                 b.id AS exam_detail_course_id
+            (SELECT
+                 ed.school_id,
+                 ed.print_plan_id,
+                 edc.paper_number,
+                 MAX(edc.course_code) AS course_code,
+                 MAX(edc.course_name) AS course_name
              FROM
-                 exam_detail a
-                     LEFT JOIN exam_detail_course b ON a.id = b.exam_detail_id) edc ON epp.id = edc.print_plan_id
+                 exam_detail ed
+                     LEFT JOIN exam_detail_course edc ON ed.id = edc.exam_detail_id
+             GROUP BY ed.school_id , ed.print_plan_id , edc.paper_number) ep ON epp.id = ep.print_plan_id
                 LEFT JOIN
             (SELECT
-                 exam_detail_course_id, paper_type
+                 school_id, paper_number, paper_type
              FROM
                  exam_student
-             GROUP BY exam_detail_course_id , paper_type) es ON es.exam_detail_course_id = edc.exam_detail_course_id
+             GROUP BY school_id , paper_number , paper_type) es ON es.school_id = ep.school_id
+                AND es.paper_number = ep.paper_number
                 LEFT JOIN
-            exam_task et ON edc.school_id = et.school_id
+            exam_task et ON ep.school_id = et.school_id
                 AND et.exam_id = epp.exam_id
-                AND edc.paper_number = et.paper_number
-                AND edc.course_code = et.course_code
+                AND ep.paper_number = et.paper_number
                 LEFT JOIN
-            exam_paper_structure eps ON edc.school_id = eps.school_id
-                AND edc.paper_number = eps.paper_number
-                AND edc.course_code = eps.course_code
+            exam_paper_structure eps ON ep.school_id = eps.school_id
+                AND ep.paper_number = eps.paper_number
                 AND es.paper_type = eps.paper_type
         WHERE
             epp.school_id = #{schoolId}

+ 2 - 2
distributed-print-business/src/main/resources/mapper/ExamStudentMapper.xml

@@ -24,11 +24,11 @@
         school_id, exam_detail_course_id, student_name, student_code, ticket_number, site_number, print_paper, print_card, extend_fields, paper_type
     </sql>
     <insert id="insertBatch">
-        insert into exam_student (id, school_id, org_id, exam_detail_course_id, student_name, student_code,
+        insert into exam_student (id, school_id, org_id, exam_detail_course_id, student_name, student_code,paper_number,
         ticket_number, site_number, extend_fields, college_name, major_name, clazz_id, clazz_name, teach_clazz_id, teach_clazz_name, student_clazz_type, campus_name, create_id) values
         <foreach collection="examStudents" separator="," item="item">
             (#{item.id}, #{item.schoolId}, #{item.orgId}, #{item.examDetailCourseId}, #{item.studentName},
-            #{item.studentCode}, #{item.ticketNumber}, #{item.siteNumber}, #{item.extendFields}, #{item.collegeName}, #{item.majorName}, #{item.clazzId},
+            #{item.studentCode},#{item.paperNumber}, #{item.ticketNumber}, #{item.siteNumber}, #{item.extendFields}, #{item.collegeName}, #{item.majorName}, #{item.clazzId},
             #{item.clazzName},#{item.teachClazzId},#{item.teachClazzName},#{item.studentClazzType},#{item.campusName}, #{item.createId})
         </foreach>
     </insert>

+ 16 - 0
distributed-print/src/test/java/com/qmth/distributed/print/ServiceTest.java

@@ -75,6 +75,12 @@ public class ServiceTest {
     @Resource
     private ExamPaperStructureService examPaperStructureService;
 
+    @Resource
+    private ExamStudentService examStudentService;
+
+    @Resource
+    private ExamDetailCourseService examDetailCourseService;
+
     @Test
     public void printPlanTemplateDatasource() {
         examPrintPlanService.printPlanTemplateDatasource(1L, 2L);
@@ -195,4 +201,14 @@ public class ServiceTest {
     public void testFindExamObject() throws Exception {
     }
 
+    @Test
+    public void upExamStudent(){
+        List<ExamStudent> examStudentList = examStudentService.list();
+        for (ExamStudent examStudent : examStudentList) {
+            Long examDetailCourseId = examStudent.getExamDetailCourseId();
+            examStudent.setPaperNumber(examDetailCourseService.getById(examDetailCourseId).getPaperNumber());
+        }
+        examStudentService.updateBatchById(examStudentList);
+    }
+
 }