|
@@ -5,10 +5,8 @@
|
|
|
resultType="com.qmth.distributed.print.business.entity.ExamPaperStructure">
|
|
|
SELECT
|
|
|
eps.id,
|
|
|
- epp.school_id schoolId,
|
|
|
- be.id examId,
|
|
|
- bs.id semesterId,
|
|
|
- bs.name semesterName,
|
|
|
+ ep.school_id schoolId,
|
|
|
+ ep.exam_id examId,
|
|
|
ep.third_relate_id thirdRelateId,
|
|
|
ep.third_relate_name thirdRelateName,
|
|
|
eps.objective_structure objectiveStructure,
|
|
@@ -25,15 +23,9 @@
|
|
|
eps.mark_leader markLeader,
|
|
|
et.transfer_id transferId
|
|
|
FROM
|
|
|
- exam_print_plan epp
|
|
|
- LEFT JOIN
|
|
|
- basic_exam be ON epp.exam_id = be.id
|
|
|
- LEFT JOIN
|
|
|
- basic_semester bs ON be.semester_id = bs.id
|
|
|
- LEFT JOIN
|
|
|
(SELECT
|
|
|
ed.school_id,
|
|
|
- ed.print_plan_id,
|
|
|
+ ed.exam_id,
|
|
|
edc.paper_number,
|
|
|
edc.course_code,
|
|
|
edc.course_name,
|
|
@@ -42,48 +34,67 @@
|
|
|
FROM
|
|
|
exam_detail ed
|
|
|
LEFT JOIN exam_detail_course edc ON ed.id = edc.exam_detail_id
|
|
|
- LEFT JOIN exam_task_sync ets ON edc.school_id = ets.school_id and ed.exam_id = ets.exam_id and edc.paper_number = ets.paper_number
|
|
|
- LEFT JOIN t_sync_stmms_exam tsse ON edc.school_id = tsse.school_id and ets.third_relate_id = tsse.exam_id
|
|
|
- WHERE ets.sync_status = #{syncStatus}) ep ON epp.id = ep.print_plan_id
|
|
|
+ LEFT JOIN exam_task_sync ets ON edc.school_id = ets.school_id
|
|
|
+ AND ed.exam_id = ets.exam_id
|
|
|
+ AND edc.paper_number = ets.paper_number
|
|
|
+ LEFT JOIN t_sync_stmms_exam tsse ON edc.school_id = tsse.school_id
|
|
|
+ AND ets.third_relate_id = tsse.exam_id
|
|
|
+ LEFT JOIN basic_exam be ON ed.exam_id = be.id
|
|
|
+ <where>
|
|
|
+ AND ets.sync_status = #{syncStatus}
|
|
|
+ AND be.enable = TRUE
|
|
|
+ <if test="semesterId != null">
|
|
|
+ and be.semester_id = #{semesterId}
|
|
|
+ </if>
|
|
|
+ <if test="examId != null">
|
|
|
+ and be.id = #{examId}
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+ ) ep
|
|
|
LEFT JOIN
|
|
|
- (SELECT
|
|
|
- school_id, paper_number, paper_type
|
|
|
+ (SELECT DISTINCT
|
|
|
+ es.school_id, es.exam_id, es.paper_number, es.paper_type
|
|
|
FROM
|
|
|
- exam_student
|
|
|
- GROUP BY school_id , paper_number , paper_type) es ON es.school_id = ep.school_id
|
|
|
+ exam_student es
|
|
|
+ JOIN basic_exam be ON es.exam_id = be.id
|
|
|
+ <where>
|
|
|
+ <if test="semesterId != null">
|
|
|
+ and be.semester_id = #{semesterId}
|
|
|
+ </if>
|
|
|
+ <if test="examId != null">
|
|
|
+ and be.id = #{examId}
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+ ) es ON es.school_id = ep.school_id
|
|
|
+ AND es.exam_id = ep.exam_id
|
|
|
AND es.paper_number = ep.paper_number
|
|
|
LEFT JOIN
|
|
|
exam_task et ON ep.school_id = et.school_id
|
|
|
- AND et.exam_id = epp.exam_id
|
|
|
+ AND et.exam_id = ep.exam_id
|
|
|
AND ep.paper_number = et.paper_number
|
|
|
LEFT JOIN
|
|
|
exam_paper_structure eps ON ep.school_id = eps.school_id
|
|
|
+ AND et.exam_id = eps.exam_id
|
|
|
AND ep.paper_number = eps.paper_number
|
|
|
AND es.paper_type = eps.paper_type
|
|
|
WHERE
|
|
|
- epp.school_id = #{schoolId}
|
|
|
- and ifnull(et.transfer_id ,et.user_id) = #{propositionTeacherId}
|
|
|
- <if test="semesterId != null and semesterId != ''">
|
|
|
- and bs.id = #{semesterId}
|
|
|
- </if>
|
|
|
- <if test="examId != null and examId != ''">
|
|
|
- and be.id = #{examId}
|
|
|
- </if>
|
|
|
+ ep.school_id = #{schoolId}
|
|
|
+ AND IFNULL(et.transfer_id, et.user_id) = #{propositionTeacherId}
|
|
|
<if test="structureStatusEnums != null and structureStatusEnums != ''">
|
|
|
- <choose>
|
|
|
- <when test="ready != null and ready != '' and ready == true">
|
|
|
- AND eps.status IN
|
|
|
- <foreach collection="structureStatusEnums" item="item" index="index" open="(" separator="," close=")">
|
|
|
- #{item}
|
|
|
- </foreach>
|
|
|
- </when>
|
|
|
- <otherwise>
|
|
|
- AND ifnull(eps.status, 'INIT') NOT IN
|
|
|
- <foreach collection="structureStatusEnums" item="item" index="index" open="(" separator="," close=")">
|
|
|
- #{item}
|
|
|
- </foreach>
|
|
|
- </otherwise>
|
|
|
- </choose>
|
|
|
+ <choose>
|
|
|
+ <when test="ready != null and ready != '' and ready == true">
|
|
|
+ AND eps.status IN
|
|
|
+ <foreach collection="structureStatusEnums" item="item" index="index" open="(" separator="," close=")">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ AND ifnull(eps.status, 'INIT') NOT IN
|
|
|
+ <foreach collection="structureStatusEnums" item="item" index="index" open="(" separator="," close=")">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
</if>
|
|
|
<if test="dpr != null">
|
|
|
<if test="dpr.requestUserId != null">
|