|
@@ -48,15 +48,16 @@
|
|
SELECT
|
|
SELECT
|
|
ms.id studentId,
|
|
ms.id studentId,
|
|
ms.exam_id examId,
|
|
ms.exam_id examId,
|
|
- ms.course_code courseCode,
|
|
|
|
- ms.course_name courseName,
|
|
|
|
|
|
+ bc.code courseCode,
|
|
|
|
+ bc.name courseName,
|
|
ms.paper_number paperNumber,
|
|
ms.paper_number paperNumber,
|
|
- ms.student_name studentName,
|
|
|
|
- ms.student_code studentCode,
|
|
|
|
|
|
+ bes.student_name studentName,
|
|
|
|
+ bes.student_code studentCode,
|
|
ms.secret_number secretNumber,
|
|
ms.secret_number secretNumber,
|
|
- ms.college,
|
|
|
|
- ms.major_name majorName,
|
|
|
|
- ms.class_name className,
|
|
|
|
|
|
+ bes.college_name college,
|
|
|
|
+ bes.major_name majorName,
|
|
|
|
+ bes.teach_class_name teachClassName,
|
|
|
|
+ bes.class_name className,
|
|
ms.objective_score objectiveScore,
|
|
ms.objective_score objectiveScore,
|
|
ms.subjective_score subjectiveScore,
|
|
ms.subjective_score subjectiveScore,
|
|
ifnull(ms.objective_score, 0) + ifnull(ms.subjective_score, 0) totalScore,
|
|
ifnull(ms.objective_score, 0) + ifnull(ms.subjective_score, 0) totalScore,
|
|
@@ -73,23 +74,34 @@
|
|
ms.subjective_status subjectiveStatus,
|
|
ms.subjective_status subjectiveStatus,
|
|
ms.is_absent absent,
|
|
ms.is_absent absent,
|
|
ms.omr_absent omrAbsent,
|
|
ms.omr_absent omrAbsent,
|
|
- ms.is_upload upload
|
|
|
|
|
|
+ ms.is_upload upload,
|
|
|
|
+ bes.status studentStatus
|
|
FROM
|
|
FROM
|
|
mark_student ms
|
|
mark_student ms
|
|
- left join sys_user su on ms.check_user_id = su.id
|
|
|
|
|
|
+ LEFT JOIN
|
|
|
|
+ basic_exam_student 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
|
|
where ms.exam_id = #{examId}
|
|
where ms.exam_id = #{examId}
|
|
AND ms.paper_number = #{paperNumber}
|
|
AND ms.paper_number = #{paperNumber}
|
|
<if test="college != null and college != ''">
|
|
<if test="college != null and college != ''">
|
|
- AND ms.college LIKE CONCAT('%', #{college}, '%')
|
|
|
|
|
|
+ AND bes.college_name LIKE CONCAT('%', #{college}, '%')
|
|
</if>
|
|
</if>
|
|
<if test="majorName != null and majorName != ''">
|
|
<if test="majorName != null and majorName != ''">
|
|
- AND ms.major_name LIKE CONCAT('%', #{majorName}, '%')
|
|
|
|
|
|
+ AND bes.major_name LIKE CONCAT('%', #{majorName}, '%')
|
|
|
|
+ </if>
|
|
|
|
+ <if test="teachClassName != null and teachClassName != ''">
|
|
|
|
+ AND bes.teach_class_name LIKE CONCAT('%', #{teachClassName}, '%')
|
|
</if>
|
|
</if>
|
|
<if test="className != null and className != ''">
|
|
<if test="className != null and className != ''">
|
|
- AND ms.class_name LIKE CONCAT('%', #{className}, '%')
|
|
|
|
|
|
+ AND bes.class_name LIKE CONCAT('%', #{className}, '%')
|
|
</if>
|
|
</if>
|
|
<if test="teacher != null and teacher != ''">
|
|
<if test="teacher != null and teacher != ''">
|
|
- AND ms.teacher LIKE CONCAT('%', #{teacher},'%')
|
|
|
|
|
|
+ AND su1.real_name LIKE CONCAT('%', #{teacher},'%')
|
|
</if>
|
|
</if>
|
|
<if test="filter != null">
|
|
<if test="filter != null">
|
|
<choose>
|
|
<choose>
|
|
@@ -138,13 +150,13 @@
|
|
<choose>
|
|
<choose>
|
|
<when test="subjectiveStartScore == 0">
|
|
<when test="subjectiveStartScore == 0">
|
|
AND (ms.is_absent = 1 OR ms.is_breach = 1
|
|
AND (ms.is_absent = 1 OR ms.is_breach = 1
|
|
- OR ((ifnull(ms.subjective_score, 0) >= #{subjectiveStartScore}
|
|
|
|
- AND ifnull(ms.subjective_score, 0) <= #{subjectiveEndScore})))
|
|
|
|
|
|
+ OR ((ifnull(ms.subjective_score, 0) >= #{subjectiveStartScore}
|
|
|
|
+ AND ifnull(ms.subjective_score, 0) <= #{subjectiveEndScore})))
|
|
</when>
|
|
</when>
|
|
<otherwise>
|
|
<otherwise>
|
|
AND (ms.is_absent = 0 AND ms.is_breach = 0
|
|
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 ((ifnull(ms.subjective_score, 0) >= #{subjectiveStartScore}
|
|
|
|
+ AND ifnull(ms.subjective_score, 0) <= #{subjectiveEndScore})))
|
|
</otherwise>
|
|
</otherwise>
|
|
</choose>
|
|
</choose>
|
|
</if>
|
|
</if>
|
|
@@ -152,13 +164,13 @@
|
|
<choose>
|
|
<choose>
|
|
<when test="objectiveStartScore == 0">
|
|
<when test="objectiveStartScore == 0">
|
|
AND (ms.is_absent = 1 OR ms.is_breach = 1
|
|
AND (ms.is_absent = 1 OR ms.is_breach = 1
|
|
- OR ((ifnull(ms.objective_score, 0) >= #{objectiveStartScore}
|
|
|
|
- AND ifnull(ms.objective_score, 0) <= #{objectiveEndScore})))
|
|
|
|
|
|
+ OR ((ifnull(ms.objective_score, 0) >= #{objectiveStartScore}
|
|
|
|
+ AND ifnull(ms.objective_score, 0) <= #{objectiveEndScore})))
|
|
</when>
|
|
</when>
|
|
<otherwise>
|
|
<otherwise>
|
|
AND (ms.is_absent = 0 AND ms.is_breach = 0
|
|
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 ((ifnull(ms.objective_score, 0) >= #{objectiveStartScore}
|
|
|
|
+ AND ifnull(ms.objective_score, 0) <= #{objectiveEndScore})))
|
|
</otherwise>
|
|
</otherwise>
|
|
</choose>
|
|
</choose>
|
|
</if>
|
|
</if>
|
|
@@ -170,10 +182,10 @@
|
|
AND ms.objective_score < #{objectiveScoreLt}
|
|
AND ms.objective_score < #{objectiveScoreLt}
|
|
</if>
|
|
</if>
|
|
<if test="studentName != null and studentName != ''">
|
|
<if test="studentName != null and studentName != ''">
|
|
- AND ms.student_name like concat(#{studentName}, '%')
|
|
|
|
|
|
+ AND bes.student_name like concat('%',#{studentName}, '%')
|
|
</if>
|
|
</if>
|
|
<if test="studentCode != null and studentCode != ''">
|
|
<if test="studentCode != null and studentCode != ''">
|
|
- AND ms.student_code = #{studentCode}
|
|
|
|
|
|
+ AND bes.student_code = #{studentCode}
|
|
</if>
|
|
</if>
|
|
<if test="orderType != null and orderType != '' and orderField != null and orderField != ''">
|
|
<if test="orderType != null and orderType != '' and orderField != null and orderField != ''">
|
|
<choose>
|
|
<choose>
|
|
@@ -191,7 +203,7 @@
|
|
</choose>
|
|
</choose>
|
|
</if>
|
|
</if>
|
|
<if test="orderType == null or orderType == '' or orderField == null or orderField == ''">
|
|
<if test="orderType == null or orderType == '' or orderField == null or orderField == ''">
|
|
- order by ms.student_code
|
|
|
|
|
|
+ order by bes.student_code
|
|
</if>
|
|
</if>
|
|
</select>
|
|
</select>
|
|
<select id="listAbsentOrBreachMarkTaskStudent" resultMap="BaseResultMap">
|
|
<select id="listAbsentOrBreachMarkTaskStudent" resultMap="BaseResultMap">
|
|
@@ -206,7 +218,7 @@
|
|
WHERE ms.id = mt.student_id)
|
|
WHERE ms.id = mt.student_id)
|
|
</select>
|
|
</select>
|
|
<select id="listUnMarkTaskStudent" resultMap="BaseResultMap">
|
|
<select id="listUnMarkTaskStudent" resultMap="BaseResultMap">
|
|
- SELECT *
|
|
|
|
|
|
+ SELECT ms.*
|
|
FROM mark_student ms
|
|
FROM mark_student ms
|
|
WHERE ms.exam_id = #{examId}
|
|
WHERE ms.exam_id = #{examId}
|
|
AND ms.paper_number = #{paperNumber}
|
|
AND ms.paper_number = #{paperNumber}
|
|
@@ -328,13 +340,26 @@
|
|
</select>
|
|
</select>
|
|
<select id="studentList"
|
|
<select id="studentList"
|
|
resultType="com.qmth.teachcloud.mark.bean.archivescore.ArchiveStudentVo">
|
|
resultType="com.qmth.teachcloud.mark.bean.archivescore.ArchiveStudentVo">
|
|
- select s.*,s.id studentId, ifnull(s.objective_score,0)+ifnull(s.subjective_score,0) totalScore
|
|
|
|
- from mark_student s left join sys_user su on s.teacher_id = su.id
|
|
|
|
- left join (select * from basic_course where school_id = #{schoolId}) bc on s.course_code = bc.code
|
|
|
|
|
|
+ select s.*,
|
|
|
|
+ s.id studentId,
|
|
|
|
+ bes.student_code studentCode,
|
|
|
|
+ bes.student_name studentName,
|
|
|
|
+ bes.college_name collegeName,
|
|
|
|
+ bes.major_name majorName,
|
|
|
|
+ bes.class_name className,
|
|
|
|
+ bes.teach_class_name teachClassName,
|
|
|
|
+ bc.code courseCode,
|
|
|
|
+ bc.name courseName,
|
|
|
|
+ bes.status,
|
|
|
|
+ ifnull(s.objective_score,0)+ifnull(s.subjective_score,0) totalScore
|
|
|
|
+ from mark_student s
|
|
|
|
+ left join basic_exam_student bes on s.basic_student_id = bes.id
|
|
|
|
+ left join sys_user su on bes.teacher_id = su.id
|
|
|
|
+ left join (select * from basic_course where school_id = #{schoolId}) bc on s.course_id = bc.id
|
|
<include refid="archiveQuery"/>
|
|
<include refid="archiveQuery"/>
|
|
<if test="dpr != null">
|
|
<if test="dpr != null">
|
|
<if test="dpr.requestUserId != null">
|
|
<if test="dpr.requestUserId != null">
|
|
- AND s.teacher_id = #{dpr.requestUserId}
|
|
|
|
|
|
+ AND bes.teacher_id = #{dpr.requestUserId}
|
|
</if>
|
|
</if>
|
|
<if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
|
|
<if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
|
|
AND bc.teaching_room_id IN
|
|
AND bc.teaching_room_id IN
|
|
@@ -359,31 +384,34 @@
|
|
</choose>
|
|
</choose>
|
|
</if>
|
|
</if>
|
|
<if test="req.orderType == null or req.orderType == '' or req.orderField == null or req.orderField == ''">
|
|
<if test="req.orderType == null or req.orderType == '' or req.orderField == null or req.orderField == ''">
|
|
- order by s.student_code
|
|
|
|
|
|
+ order by bes.student_code
|
|
</if>
|
|
</if>
|
|
</select>
|
|
</select>
|
|
<sql id="archiveQuery">
|
|
<sql id="archiveQuery">
|
|
where s.exam_id=#{req.examId} and s.paper_number=#{req.paperNumber}
|
|
where s.exam_id=#{req.examId} and s.paper_number=#{req.paperNumber}
|
|
<if test="req.studentCode != null and req.studentCode !=''">
|
|
<if test="req.studentCode != null and req.studentCode !=''">
|
|
- and s.student_code=#{req.studentCode}
|
|
|
|
|
|
+ and bes.student_code=#{req.studentCode}
|
|
</if>
|
|
</if>
|
|
<if test="req.startStudentCode != null and req.startStudentCode !=''">
|
|
<if test="req.startStudentCode != null and req.startStudentCode !=''">
|
|
- and s.student_code >= #{req.startStudentCode}
|
|
|
|
|
|
+ and bes.student_code >= #{req.startStudentCode}
|
|
</if>
|
|
</if>
|
|
<if test="req.endStudentCode != null and req.endStudentCode !=''">
|
|
<if test="req.endStudentCode != null and req.endStudentCode !=''">
|
|
- and s.student_code <= #{req.endStudentCode}
|
|
|
|
|
|
+ and bes.student_code <= #{req.endStudentCode}
|
|
</if>
|
|
</if>
|
|
<if test="req.studentName != null and req.studentName !=''">
|
|
<if test="req.studentName != null and req.studentName !=''">
|
|
- and s.student_name=#{req.studentName}
|
|
|
|
|
|
+ and bes.student_name=#{req.studentName}
|
|
</if>
|
|
</if>
|
|
<if test="req.college != null and req.college !=''">
|
|
<if test="req.college != null and req.college !=''">
|
|
- and s.college like concat(#{req.college}, '%')
|
|
|
|
|
|
+ and bes.college_name like concat(#{req.college}, '%')
|
|
</if>
|
|
</if>
|
|
<if test="req.majorName != null and req.majorName !=''">
|
|
<if test="req.majorName != null and req.majorName !=''">
|
|
- and s.major_name like concat(#{req.majorName}, '%')
|
|
|
|
|
|
+ and bes.major_name like concat(#{req.majorName}, '%')
|
|
|
|
+ </if>
|
|
|
|
+ <if test="req.teachClassName != null and req.teachClassName !=''">
|
|
|
|
+ and bes.teach_class_name like concat(#{req.teachClassName}, '%')
|
|
</if>
|
|
</if>
|
|
<if test="req.className != null and req.className !=''">
|
|
<if test="req.className != null and req.className !=''">
|
|
- and s.class_name like concat(#{req.className}, '%')
|
|
|
|
|
|
+ and bes.class_name like concat(#{req.className}, '%')
|
|
</if>
|
|
</if>
|
|
<if test="req.startScore != null and req.startScore !=''">
|
|
<if test="req.startScore != null and req.startScore !=''">
|
|
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.startScore}
|
|
@@ -405,7 +433,7 @@
|
|
</if>
|
|
</if>
|
|
<if test="dpr != null">
|
|
<if test="dpr != null">
|
|
<if test="dpr.requestUserId != null">
|
|
<if test="dpr.requestUserId != null">
|
|
- AND s.teacher_id = #{dpr.requestUserId}
|
|
|
|
|
|
+ AND bes.teacher_id = #{dpr.requestUserId}
|
|
</if>
|
|
</if>
|
|
<if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
|
|
<if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
|
|
AND bc.teaching_room_id IN
|
|
AND bc.teaching_room_id IN
|
|
@@ -432,11 +460,12 @@
|
|
when ifnull(s.objective_score,0) + ifnull(s.subjective_score,0) >= t.total_score * t.excellent_score / 100 then 1
|
|
when ifnull(s.objective_score,0) + ifnull(s.subjective_score,0) >= t.total_score * t.excellent_score / 100 then 1
|
|
else 0 end) excellentCount
|
|
else 0 end) excellentCount
|
|
FROM mark_student s
|
|
FROM mark_student s
|
|
|
|
+ left join (select * from basic_exam_student where exam_id=#{req.examId}) bes on s.basic_student_id = bes.id
|
|
left join mark_paper t on s.exam_id = t.exam_id
|
|
left join mark_paper t on s.exam_id = t.exam_id
|
|
and s.paper_number = t.paper_number
|
|
and s.paper_number = t.paper_number
|
|
and s.paper_type = t.paper_type
|
|
and s.paper_type = t.paper_type
|
|
- left join sys_user su on s.teacher_id = su.id
|
|
|
|
- left join (select * from basic_course where school_id = #{schoolId}) bc on s.course_code = bc.code
|
|
|
|
|
|
+ left join sys_user su on bes.teacher_id = su.id
|
|
|
|
+ left join (select * from basic_course where school_id = #{schoolId}) bc on s.course_id = bc.id
|
|
<include refid="archiveQuery"/>
|
|
<include refid="archiveQuery"/>
|
|
</select>
|
|
</select>
|
|
<select id="getCountByScoreRange" resultType="int">
|
|
<select id="getCountByScoreRange" resultType="int">
|
|
@@ -448,7 +477,7 @@
|
|
and s.objective_score+s.subjective_score<=#{end}
|
|
and s.objective_score+s.subjective_score<=#{end}
|
|
</select>
|
|
</select>
|
|
<select id="college" resultType="com.qmth.teachcloud.mark.bean.archivescore.CollegeVo">
|
|
<select id="college" resultType="com.qmth.teachcloud.mark.bean.archivescore.CollegeVo">
|
|
- SELECT s.college,
|
|
|
|
|
|
+ SELECT bes.college_name college,
|
|
count(*) studentCount,
|
|
count(*) studentCount,
|
|
sum(case when s.is_absent = 1 then 1 else 0 end) absentCount,
|
|
sum(case when s.is_absent = 1 then 1 else 0 end) absentCount,
|
|
avg(case when s.is_absent !=1 then ifnull(s.objective_score,0) + ifnull(s.subjective_score,0) else null end) avgScore,
|
|
avg(case when s.is_absent !=1 then ifnull(s.objective_score,0) + ifnull(s.subjective_score,0) else null end) avgScore,
|
|
@@ -464,14 +493,15 @@
|
|
left join mark_paper t on s.exam_id = t.exam_id
|
|
left join mark_paper t on s.exam_id = t.exam_id
|
|
and s.paper_number = t.paper_number
|
|
and s.paper_number = t.paper_number
|
|
and s.paper_type = t.paper_type
|
|
and s.paper_type = t.paper_type
|
|
- left join sys_user su on s.teacher_id = su.id
|
|
|
|
- left join (select * from basic_course where school_id = #{schoolId}) bc on s.course_code = bc.code
|
|
|
|
|
|
+ left join (select * from basic_exam_student where exam_id=#{req.examId}) bes on s.basic_student_id = bes.id
|
|
|
|
+ left join sys_user su on bes.teacher_id = su.id
|
|
|
|
+ left join (select * from basic_course where school_id = #{schoolId}) bc on s.course_id = bc.id
|
|
<include refid="archiveQuery"/>
|
|
<include refid="archiveQuery"/>
|
|
- and s.college is not null
|
|
|
|
- group by s.college
|
|
|
|
|
|
+ and bes.college_name is not null
|
|
|
|
+ group by bes.college_name
|
|
</select>
|
|
</select>
|
|
<select id="classData" resultType="com.qmth.teachcloud.mark.bean.archivescore.ClassVo">
|
|
<select id="classData" resultType="com.qmth.teachcloud.mark.bean.archivescore.ClassVo">
|
|
- SELECT s.class_name,
|
|
|
|
|
|
+ SELECT bes.teach_class_name className,
|
|
count(*) studentCount,
|
|
count(*) studentCount,
|
|
sum(case when s.is_absent = 1 then 1 else 0 end) absentCount,
|
|
sum(case when s.is_absent = 1 then 1 else 0 end) absentCount,
|
|
avg(case when s.is_absent !=1 then ifnull(s.objective_score,0) + ifnull(s.subjective_score,0) else null end) avgScore,
|
|
avg(case when s.is_absent !=1 then ifnull(s.objective_score,0) + ifnull(s.subjective_score,0) else null end) avgScore,
|
|
@@ -487,14 +517,16 @@
|
|
left join mark_paper t on s.exam_id = t.exam_id
|
|
left join mark_paper t on s.exam_id = t.exam_id
|
|
and s.paper_number = t.paper_number
|
|
and s.paper_number = t.paper_number
|
|
and s.paper_type = t.paper_type
|
|
and s.paper_type = t.paper_type
|
|
- left join sys_user su on s.teacher_id = su.id
|
|
|
|
- left join (select * from basic_course where school_id = #{schoolId}) bc on s.course_code = bc.code
|
|
|
|
|
|
+ left join (select * from basic_exam_student where exam_id=#{req.examId}) bes on s.basic_student_id = bes.id
|
|
|
|
+ left join sys_user su on bes.teacher_id = su.id
|
|
|
|
+ left join (select * from basic_course where school_id = #{schoolId}) bc on s.course_id = bc.id
|
|
<include refid="archiveQuery"/>
|
|
<include refid="archiveQuery"/>
|
|
- and s.class_name is not null
|
|
|
|
- group by s.class_name
|
|
|
|
|
|
+ and bes.teach_class_name is not null
|
|
|
|
+ group by bes.teach_class_name
|
|
</select>
|
|
</select>
|
|
<select id="teacher" resultType="com.qmth.teachcloud.mark.bean.archivescore.TeacherVo">
|
|
<select id="teacher" resultType="com.qmth.teachcloud.mark.bean.archivescore.TeacherVo">
|
|
- SELECT s.teacher,
|
|
|
|
|
|
+ SELECT su.real_name teacher,
|
|
|
|
+ bes.teacher_id,
|
|
count(*) studentCount,
|
|
count(*) studentCount,
|
|
sum(case when s.is_absent = 1 then 1 else 0 end) absentCount,
|
|
sum(case when s.is_absent = 1 then 1 else 0 end) absentCount,
|
|
avg(case when s.is_absent !=1 then ifnull(s.objective_score,0) + ifnull(s.subjective_score,0) else null end) avgScore,
|
|
avg(case when s.is_absent !=1 then ifnull(s.objective_score,0) + ifnull(s.subjective_score,0) else null end) avgScore,
|
|
@@ -510,19 +542,31 @@
|
|
left join mark_paper t on s.exam_id = t.exam_id
|
|
left join mark_paper t on s.exam_id = t.exam_id
|
|
and s.paper_number = t.paper_number
|
|
and s.paper_number = t.paper_number
|
|
and s.paper_type = t.paper_type
|
|
and s.paper_type = t.paper_type
|
|
- left join sys_user su on s.teacher_id = su.id
|
|
|
|
- left join (select * from basic_course where school_id = #{schoolId}) bc on s.course_code = bc.code
|
|
|
|
|
|
+ left join (select * from basic_exam_student where exam_id=#{req.examId}) bes on s.basic_student_id = bes.id
|
|
|
|
+ left join sys_user su on bes.teacher_id = su.id
|
|
|
|
+ left join (select * from basic_course where school_id = #{schoolId}) bc on s.course_id = bc.id
|
|
<include refid="archiveQuery"/>
|
|
<include refid="archiveQuery"/>
|
|
- and s.teacher is not null
|
|
|
|
- group by s.teacher
|
|
|
|
|
|
+ and su.real_name is not null
|
|
|
|
+ group by bes.teacher_id, su.real_name
|
|
</select>
|
|
</select>
|
|
<select id="findOne" resultType="com.qmth.teachcloud.mark.bean.student.StudentVo"
|
|
<select id="findOne" resultType="com.qmth.teachcloud.mark.bean.student.StudentVo"
|
|
parameterType="com.qmth.teachcloud.mark.bean.student.StudentQuery">
|
|
parameterType="com.qmth.teachcloud.mark.bean.student.StudentQuery">
|
|
- select *
|
|
|
|
- from mark_student
|
|
|
|
- where exam_id = #{query.examId}
|
|
|
|
- and course_paper_id = #{query.coursePaperId}
|
|
|
|
- and student_code = #{query.studentCode}
|
|
|
|
|
|
+ select ms.id,
|
|
|
|
+ bes.student_code studentCode,
|
|
|
|
+ bes.student_name studentName,
|
|
|
|
+ bc.code courseCode,
|
|
|
|
+ bc.name courseName,
|
|
|
|
+ ms.course_paper_id coursePaperId,
|
|
|
|
+ ms.paper_number coursePaperNumber,
|
|
|
|
+ ms.package_code packageCode,
|
|
|
|
+ bes.site_number siteNumber,
|
|
|
|
+ ms.exam_room examRoom,
|
|
|
|
+ ms.scan_status status
|
|
|
|
+ from mark_student ms join basic_exam_student bes on ms.basic_student_id = bes.id
|
|
|
|
+ left join basic_course bc on ms.course_id = bc.id
|
|
|
|
+ where ms.exam_id = #{query.examId}
|
|
|
|
+ and ms.course_paper_id = #{query.coursePaperId}
|
|
|
|
+ and bes.student_code = #{query.studentCode}
|
|
</select>
|
|
</select>
|
|
<select id="listUnexistStudentByExamIdAndCoursePaperId"
|
|
<select id="listUnexistStudentByExamIdAndCoursePaperId"
|
|
resultType="com.qmth.teachcloud.mark.dto.UnexistStudentDto">
|
|
resultType="com.qmth.teachcloud.mark.dto.UnexistStudentDto">
|
|
@@ -564,8 +608,9 @@
|
|
order by t.student_code
|
|
order by t.student_code
|
|
</select>
|
|
</select>
|
|
<select id="teacherClass" resultType="com.qmth.teachcloud.mark.bean.archivescore.TeacherClassVo">
|
|
<select id="teacherClass" resultType="com.qmth.teachcloud.mark.bean.archivescore.TeacherClassVo">
|
|
- SELECT s.teacher,
|
|
|
|
- s.class_name,
|
|
|
|
|
|
+ SELECT bes.teacher_id,
|
|
|
|
+ su.real_name teacher,
|
|
|
|
+ bes.teach_class_name className,
|
|
count(*) studentCount,
|
|
count(*) studentCount,
|
|
sum(case when s.is_absent = 1 then 1 else 0 end) absentCount,
|
|
sum(case when s.is_absent = 1 then 1 else 0 end) absentCount,
|
|
avg(case when s.is_absent !=1 then ifnull(s.objective_score,0) + ifnull(s.subjective_score,0) else null end) avgScore,
|
|
avg(case when s.is_absent !=1 then ifnull(s.objective_score,0) + ifnull(s.subjective_score,0) else null end) avgScore,
|
|
@@ -581,11 +626,12 @@
|
|
left join mark_paper t on s.exam_id = t.exam_id
|
|
left join mark_paper t on s.exam_id = t.exam_id
|
|
and s.paper_number = t.paper_number
|
|
and s.paper_number = t.paper_number
|
|
and s.paper_type = t.paper_type
|
|
and s.paper_type = t.paper_type
|
|
- left join sys_user su on s.teacher_id = su.id
|
|
|
|
- left join (select * from basic_course where school_id = #{schoolId}) bc on s.course_code = bc.code
|
|
|
|
|
|
+ left join (select * from basic_exam_student where exam_id=#{req.examId}) bes on s.basic_student_id = bes.id
|
|
|
|
+ left join sys_user su on bes.teacher_id = su.id
|
|
|
|
+ left join (select * from basic_course where school_id = #{schoolId}) bc on s.course_id = bc.id
|
|
<include refid="archiveQuery"/>
|
|
<include refid="archiveQuery"/>
|
|
- and s.class_name is not null
|
|
|
|
- group by s.teacher, s.class_name
|
|
|
|
|
|
+ and bes.teach_class_name is not null
|
|
|
|
+ group by bes.teacher_id, su.real_name, bes.teach_class_name
|
|
</select>
|
|
</select>
|
|
<select id="selectCountByQuery" resultType="java.lang.Integer">
|
|
<select id="selectCountByQuery" resultType="java.lang.Integer">
|
|
select count(1) from mark_student ms left join sys_user su on ms.create_id = su.id
|
|
select count(1) from mark_student ms left join sys_user su on ms.create_id = su.id
|
|
@@ -643,8 +689,8 @@
|
|
LEFT JOIN sys_user su ON ms.create_id = su.id
|
|
LEFT JOIN sys_user su ON ms.create_id = su.id
|
|
<where>
|
|
<where>
|
|
ms.exam_id = #{markStudent.examId}
|
|
ms.exam_id = #{markStudent.examId}
|
|
- <if test="markStudent.courseCode != null">
|
|
|
|
- AND ms.course_code = #{markStudent.courseCode}
|
|
|
|
|
|
+ <if test="markStudent.courseId != null">
|
|
|
|
+ AND ms.course_id = #{markStudent.courseId}
|
|
</if>
|
|
</if>
|
|
<if test="markStudent.coursePaperId != null">
|
|
<if test="markStudent.coursePaperId != null">
|
|
AND ms.course_paper_id = #{markStudent.coursePaperId}
|
|
AND ms.course_paper_id = #{markStudent.coursePaperId}
|
|
@@ -711,5 +757,68 @@
|
|
<select id="maxCardNumber" resultType="java.lang.Integer">
|
|
<select id="maxCardNumber" resultType="java.lang.Integer">
|
|
select max(card_number) from mark_student where exam_id = #{examId} and paper_number = #{paperNumber} and paper_type = #{paperType} and card_number is not null
|
|
select max(card_number) from mark_student where exam_id = #{examId} and paper_number = #{paperNumber} and paper_type = #{paperType} and card_number is not null
|
|
</select>
|
|
</select>
|
|
|
|
+ <select id="selectByExamIdAndCoursePaperIdAndStudentCode"
|
|
|
|
+ resultType="com.qmth.teachcloud.mark.entity.MarkStudent">
|
|
|
|
+ select ms.id,
|
|
|
|
+ bes.student_code,
|
|
|
|
+ bes.student_name,
|
|
|
|
+ bc.code courseCode,
|
|
|
|
+ bc.name courseName,
|
|
|
|
+ ms.paper_number,
|
|
|
|
+ ms.course_paper_id,
|
|
|
|
+ ms.exam_id,
|
|
|
|
+ ms.exam_place,
|
|
|
|
+ ms.exam_room
|
|
|
|
+ from mark_student ms
|
|
|
|
+ LEFT JOIN
|
|
|
|
+ basic_exam_student bes on ms.basic_student_id = bes.id
|
|
|
|
+ left join
|
|
|
|
+ basic_course bc on bc.id = bes.course_id
|
|
|
|
+ where ms.exam_id = #{examId} and ms.course_paper_id = #{coursePaperId} and bes.student_code = #{studentCode}
|
|
|
|
+ </select>
|
|
|
|
+ <select id="listMarkStudentVo" resultType="com.qmth.teachcloud.mark.dto.mark.MarkStudentVo">
|
|
|
|
+ SELECT
|
|
|
|
+ ms.*,
|
|
|
|
+ bes.student_name,
|
|
|
|
+ bc.code courseCode,
|
|
|
|
+ bc.name courseName,
|
|
|
|
+ bes.college_name,
|
|
|
|
+ bes.major_name,
|
|
|
|
+ bes.teach_class_name,
|
|
|
|
+ bes.class_name,
|
|
|
|
+ su.real_name teacher,
|
|
|
|
+ bes.teacher_id
|
|
|
|
+ FROM
|
|
|
|
+ mark_student ms
|
|
|
|
+ LEFT JOIN
|
|
|
|
+ basic_exam_student 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 bes.teacher_id = su.id
|
|
|
|
+ <where>
|
|
|
|
+ <if test="markStudentQuery.id != null">
|
|
|
|
+ and ms.id = #{markStudentQuery.id}
|
|
|
|
+ </if>
|
|
|
|
+ <if test="markStudentQuery.examId != null">
|
|
|
|
+ and ms.exam_id = #{markStudentQuery.examId}
|
|
|
|
+ </if>
|
|
|
|
+ <if test="markStudentQuery.paperNumber != null">
|
|
|
|
+ and ms.paper_number = #{markStudentQuery.paperNumber}
|
|
|
|
+ </if>
|
|
|
|
+ <if test="markStudentQuery.upload != null">
|
|
|
|
+ and ms.is_upload = #{markStudentQuery.upload}
|
|
|
|
+ </if>
|
|
|
|
+ <if test="markStudentQuery.absent != null">
|
|
|
|
+ and ms.is_absent = #{markStudentQuery.absent}
|
|
|
|
+ </if>
|
|
|
|
+ <if test="markStudentQuery.breach != null">
|
|
|
|
+ and ms.is_breach = #{markStudentQuery.breach}
|
|
|
|
+ </if>
|
|
|
|
+ <if test="markStudentQuery.omrAbsent != null">
|
|
|
|
+ and ms.omr_absent = #{markStudentQuery.omrAbsent}
|
|
|
|
+ </if>
|
|
|
|
+ </where>
|
|
|
|
+ </select>
|
|
|
|
|
|
</mapper>
|
|
</mapper>
|