SELECT
ms.id studentId,
ms.exam_id examId,
bc.code courseCode,
bc.name courseName,
ms.paper_number paperNumber,
ms.paper_type paperType,
bes.student_name studentName,
bes.student_code studentCode,
bes.college_name collegeName,
ms.secret_number secretNumber,
bes.college_name college,
bes.major_name majorName,
bes.teach_class_name teachClassName,
bes.class_name className,
su1.real_name teacherName,
ms.objective_score objectiveScore,
ms.subjective_score subjectiveScore,
ifnull(ms.objective_score, 0) + ifnull(ms.subjective_score, 0) totalScore,
ms.objective_score_list objectiveScoreList,
ms.subjective_score_list subjectiveScoreList,
ms.check_user_id checkUserId,
su.login_name checkUserLoginName,
su.real_name checkUserName,
ms.check_time checkTime,
ms.sheet_path sheetPath,
ms.exam_start_time examStartTime,
ms.exam_end_time examEndTime,
ms.scan_status scanStatus,
ms.subjective_status subjectiveStatus,
ms.is_absent absent,
ms.omr_absent omrAbsent,
ms.is_manual_absent manualAbsent,
ms.is_upload upload,
bes.status studentStatus,
ms.is_breach breach,
ms.omr_breach omrBreach,
ifnull(ms.is_manual_breach,0) manualBreach
FROM
(select * from mark_student where exam_id = #{examId} and paper_number = #{paperNumber}) ms
LEFT JOIN
(select * from basic_exam_student where exam_id = #{examId}) bes ON ms.basic_student_id = bes.id
LEFT JOIN
basic_course bc ON ms.course_id = bc.id
LEFT JOIN
sys_user su ON ms.check_user_id = su.id
LEFT JOIN
sys_user su1 ON bes.teacher_id = su1.id
AND bes.college_name LIKE CONCAT('%', #{college}, '%')
AND bes.major_name LIKE CONCAT('%', #{majorName}, '%')
AND bes.teach_class_name LIKE CONCAT('%', #{teachClassName}, '%')
AND bes.class_name LIKE CONCAT('%', #{className}, '%')
AND su1.real_name LIKE CONCAT('%', #{teacher},'%')
AND ms.objective_score = 0
AND ms.objective_score = 0 AND ms.subjective_score > 0
AND ms.objective_score > 0 AND ms.subjective_score = 0
AND (ms.is_absent = 1 OR ms.omr_absent = 1 OR ms.is_manual_absent = 1 OR bes.status = 'M')
AND (ms.is_absent = 0 and ms.omr_absent = 0 and ms.is_manual_absent = 0 and bes.status != 'M' and ms.scan_status = 'SCANNED' AND ms.is_upload = 1)
AND (ms.scan_status = 'UNEXIST' and ms.is_absent = 0 and ms.omr_absent = 0 and ms.is_manual_absent = 0 and bes.status != 'M')
AND (ms.is_breach = 1 OR ms.omr_breach = 1 OR ms.is_manual_breach = 1 OR bes.status = 'B')
AND (ms.is_breach = 0 AND ms.omr_breach = 0 AND ms.is_manual_breach = 0 OR bes.status != 'B')
AND (ms.is_absent = 1 OR ms.is_breach = 1 OR ((ifnull(ms.subjective_score, 0) +
ifnull(ms.objective_score, 0)) >= #{startScore} AND (ifnull(ms.subjective_score,0) +
ifnull(ms.objective_score,0)) <= #{endScore}))
AND (ms.is_absent = 0 AND ms.is_breach = 0 AND ((ifnull(ms.subjective_score,0) +
ifnull(ms.objective_score,0)) >= #{startScore} AND (ifnull(ms.subjective_score,0) +
ifnull(ms.objective_score,0)) <= #{endScore}))
AND (ms.is_absent = 1 OR ms.is_breach = 1
OR ((ifnull(ms.subjective_score, 0) >= #{subjectiveStartScore}
AND ifnull(ms.subjective_score, 0) <= #{subjectiveEndScore})))
AND (ms.is_absent = 0 AND ms.is_breach = 0
AND ((ifnull(ms.subjective_score, 0) >= #{subjectiveStartScore}
AND ifnull(ms.subjective_score, 0) <= #{subjectiveEndScore})))
AND (ms.is_absent = 1 OR ms.is_breach = 1
OR ((ifnull(ms.objective_score, 0) >= #{objectiveStartScore}
AND ifnull(ms.objective_score, 0) <= #{objectiveEndScore})))
AND (ms.is_absent = 0 AND ms.is_breach = 0
AND ((ifnull(ms.objective_score, 0) >= #{objectiveStartScore}
AND ifnull(ms.objective_score, 0) <= #{objectiveEndScore})))
AND exists (SELECT 1 FROM mark_subjective_score mss WHERE ms.id = mss.student_id AND mss.score =
#{subScore})
AND ms.objective_score < #{objectiveScoreLt}
AND bes.student_name like concat('%',#{studentName}, '%')
AND bes.student_code = #{studentCode}
AND ms.secret_number = #{secretNumber}
AND bes.teacher_id = #{dpr.requestUserId}
AND EXISTS( SELECT 1 FROM (select course_id from teach_course where exam_id = #{examId} and user_id = #{dpr.courseUserId}) tc WHERE tc.course_id = ms.course_id)
AND bc.teaching_room_id IN
#{item}
order by (ifnull(ms.objective_score, 0) + ifnull(ms.subjective_score, 0)) ASC
order by (ifnull(ms.objective_score, 0) + ifnull(ms.subjective_score, 0)) DESC
order by #{orderField} #{orderType}
order by ms.is_absent, bes.status desc, bes.student_code
update basic_exam_student set paper_type = #{paperType} where id = #{basicStudentId}
where t.exam_id=#{query.examId}
and t.id=#{query.studentId}
AND t.scan_status in
#{st}
and t.student_code=#{query.studentCode}
and bes.student_name=#{query.studentName}
and t.package_code=#{query.packageCode}
and t.course_id=#{query.courseId}
and t.course_paper_id=#{query.coursePaperId}
and t.paper_number=#{query.coursePaperNumber}
and bes.exam_place=#{query.examPlace}
and bes.exam_room=#{query.examRoom}
and t.absent_suspect=#{query.absentSuspect}
and t.omr_absent=#{query.omrAbsent}
and t.omr_absent_checked=#{query.omrAbsentChecked}
and t.is_manual_absent=#{query.manualAbsent}
and t.assigned=#{query.assigned}
and t.assign_confirmed=#{query.assignConfirmed}
and t.invalid=#{query.invalid}
and t.incomplete=#{query.incomplete}
and t.question_filled=#{query.questionFilled}
and t.miss_scan=#{query.missScan}
and (t.student_code=#{query.studentCodeOrName} or bes.student_name=#{query.studentCodeOrName})
and ifnull(t.paper_type, '#') = #{query.paperType}
and t.paper_type_check_status=#{query.paperTypeCheckStatus}
and t.omr_breach = #{query.omrBreach}
and t.is_manual_breach = #{query.manualBreach}
AND t.create_id = #{dpr.requestUserId}
where s.exam_id=#{req.examId} and s.paper_number=#{req.paperNumber}
and bes.student_code=#{req.studentCode}
and bes.student_code >= #{req.startStudentCode}
and bes.student_code <= #{req.endStudentCode}
and bes.student_name=#{req.studentName}
and bes.college_name like concat(#{req.college}, '%')
and bes.major_name like concat(#{req.majorName}, '%')
and bes.teach_class_name like concat(#{req.teachClassName}, '%')
and bes.class_name like concat(#{req.className}, '%')
and (ifnull(s.objective_score,0)+ifnull(s.subjective_score,0)) >= #{req.startScore}
and (ifnull(s.objective_score,0)+ifnull(s.subjective_score,0)) <= #{req.endScore}
and ifnull(s.objective_score,0) >= #{req.objectiveStartScore}
and ifnull(s.objective_score,0) <= #{req.objectiveEndScore}
and ifnull(s.subjective_score,0) >= #{req.subjectiveStartScore}
and ifnull(s.subjective_score,0) <= #{req.subjectiveEndScore}
AND bes.teacher_id = #{dpr.requestUserId}
AND bc.teaching_room_id IN
#{item}