|
@@ -23,6 +23,8 @@
|
|
|
<result column="last_submit_time_" property="lastSubmitTime"/>
|
|
|
<result column="serve_type_" property="serveType"/>
|
|
|
<result column="course_ids_" property="courseIds"/>
|
|
|
+ <result column="not_over_course_ids_" property="notOverCourseIds"/>
|
|
|
+ <result column="not_over_course_num_" property="notOverCourseNum"/>
|
|
|
</resultMap>
|
|
|
|
|
|
<resultMap id="StudentExercisesSituationDto" type="com.ym.mec.biz.dal.dto.StudentExercisesSituationDto" extends="StudentExtracurricularExercisesSituation">
|
|
@@ -52,21 +54,21 @@
|
|
|
INSERT INTO student_extracurricular_exercises_situation_ (id_,student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,
|
|
|
actual_exercises_num_,exercises_reply_num_,exercises_message_num_,
|
|
|
exercises_message_timely_num_,create_time_,update_time_,last_submit_time_,
|
|
|
- serve_type_,course_ids_)
|
|
|
+ serve_type_,course_ids_,not_over_course_ids_,not_over_course_num_)
|
|
|
VALUES(#{id},#{studentId},#{weekOfYear},#{monday},#{sunday},#{teacherId},#{expectExercisesNum},#{actualExercisesNum},#{exercisesReplyNum},
|
|
|
- #{exercisesMessageNum},#{exercisesMessageTimelyNum},NOW(),NOW(),#{lastSubmitTime},#{serveType},#{courseIds})
|
|
|
+ #{exercisesMessageNum},#{exercisesMessageTimelyNum},NOW(),NOW(),#{lastSubmitTime},#{serveType},#{courseIds},#{notOverCourseIds},#{notOverCourseNum})
|
|
|
</insert>
|
|
|
|
|
|
<insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
|
|
|
INSERT INTO student_extracurricular_exercises_situation_ (student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,
|
|
|
actual_exercises_num_,exercises_reply_num_,exercises_message_num_,
|
|
|
exercises_message_timely_num_,create_time_,update_time_,last_submit_time_,
|
|
|
- serve_type_,course_ids_)
|
|
|
+ serve_type_,course_ids_,not_over_course_ids_,not_over_course_num_)
|
|
|
VALUES
|
|
|
<foreach collection="situations" item="situation" separator=",">
|
|
|
(#{situation.studentId},#{situation.weekOfYear},#{situation.monday},#{situation.sunday},#{situation.teacherId},#{situation.expectExercisesNum},
|
|
|
#{situation.actualExercisesNum},#{situation.exercisesReplyNum},#{situation.exercisesMessageNum},#{situation.exercisesMessageTimelyNum},
|
|
|
- NOW(),NOW(),#{situation.lastSubmitTime},#{situation.serveType},#{situation.courseIds})
|
|
|
+ NOW(),NOW(),#{situation.lastSubmitTime},#{situation.serveType},#{situation.courseIds},#{situation.notOverCourseIds},#{nsituation.otOverCourseNum})
|
|
|
</foreach>
|
|
|
</insert>
|
|
|
|
|
@@ -119,6 +121,12 @@
|
|
|
<if test="courseIds!=null and courseIds!=''">
|
|
|
course_ids_=#{courseIds},
|
|
|
</if>
|
|
|
+ <if test="notOverCourseIds!=null and notOverCourseIds!=''">
|
|
|
+ not_over_course_ids_=#{notOverCourseIds},
|
|
|
+ </if>
|
|
|
+ <if test="notOverCourseNum!=null">
|
|
|
+ not_over_course_num_=#{notOverCourseNum},
|
|
|
+ </if>
|
|
|
update_time_ = #{updateTime}
|
|
|
</set> WHERE id_ = #{id}
|
|
|
</update>
|
|
@@ -166,6 +174,12 @@
|
|
|
<if test="situation.courseIds!=null">
|
|
|
course_ids_=#{situation.courseIds},
|
|
|
</if>
|
|
|
+ <if test="situation.notOverCourseIds!=null and situation.notOverCourseIds!=''">
|
|
|
+ not_over_course_ids_=#{situation.notOverCourseIds},
|
|
|
+ </if>
|
|
|
+ <if test="situation.notOverCourseNum!=null">
|
|
|
+ not_over_course_num_=#{situation.notOverCourseNum},
|
|
|
+ </if>
|
|
|
update_time_ = NOW()
|
|
|
</set> WHERE id_ = #{situation.id}
|
|
|
</foreach>
|
|
@@ -497,24 +511,6 @@
|
|
|
<if test="teacherId!=null">
|
|
|
AND sees.teacher_id_ = #{teacherId}
|
|
|
</if>
|
|
|
- <if test="unDone!=null and unDone==1">
|
|
|
- AND sees.expect_exercises_num_>sees.actual_exercises_num_
|
|
|
- <if test="rightServeIds!=null and rightServeIds.size()>0">
|
|
|
- AND sees.id_ NOT IN
|
|
|
- <foreach collection="rightServeIds" item="rightServeId" open="(" close=")" separator=",">
|
|
|
- #{rightServeId}
|
|
|
- </foreach>
|
|
|
- </if>
|
|
|
- </if>
|
|
|
- <if test="unDone!=null and unDone==0">
|
|
|
- AND sees.expect_exercises_num_=sees.actual_exercises_num_
|
|
|
- <if test="rightServeIds!=null and rightServeIds.size()>0">
|
|
|
- AND sees.id_ IN
|
|
|
- <foreach collection="rightServeIds" item="rightServeId" open="(" close=")" separator=",">
|
|
|
- #{rightServeId}
|
|
|
- </foreach>
|
|
|
- </if>
|
|
|
- </if>
|
|
|
<if test="reminded!=null and reminded==0">
|
|
|
AND NOT EXISTS (SELECT id_ FROM teacher_remind WHERE teacher_id_=sees.teacher_id_ AND monday_ = sees.monday_ AND type_='SERVICE')
|
|
|
</if>
|
|
@@ -536,7 +532,7 @@
|
|
|
su.real_name_ teacher_name_,
|
|
|
SUM(CASE sees.serve_type_ WHEN 'HOMEWORK' THEN sees.expect_exercises_num_ ELSE 0 END) homework_num_,
|
|
|
SUM(CASE sees.serve_type_ WHEN 'EXERCISE' THEN 1 ELSE 0 END) exercise_num_,
|
|
|
- SUM(sees.expect_exercises_num_)>SUM(sees.actual_exercises_num_) un_done_
|
|
|
+ SUM( sees.expect_exercises_num_-sees.not_over_course_num_ )> SUM( sees.actual_exercises_num_ ) un_done_
|
|
|
FROM
|
|
|
student_extracurricular_exercises_situation_ sees
|
|
|
LEFT JOIN teacher tea ON tea.id_=sees.teacher_id_
|
|
@@ -544,6 +540,15 @@
|
|
|
LEFT JOIN sys_user su ON tea.id_=su.id_
|
|
|
<include refid="queryTeacherServeInfoCondition" />
|
|
|
GROUP BY sees.monday_,sees.sunday_,sees.teacher_id_ ORDER BY sees.monday_,sees.sunday_,sees.teacher_id_
|
|
|
+ <if test="unDone!=null">
|
|
|
+ HAVING
|
|
|
+ <if test="unDone==1">
|
|
|
+ SUM( sees.expect_exercises_num_-sees.not_over_course_num_ ) > SUM( sees.actual_exercises_num_ )
|
|
|
+ </if>
|
|
|
+ <if test="unDone==0">
|
|
|
+ SUM( sees.expect_exercises_num_-sees.not_over_course_num_ ) <= SUM( sees.actual_exercises_num_ )
|
|
|
+ </if>
|
|
|
+ </if>
|
|
|
<include refid="global.limit"></include>
|
|
|
</select>
|
|
|
|
|
@@ -556,6 +561,15 @@
|
|
|
LEFT JOIN teacher tea ON tea.id_=sees.teacher_id_
|
|
|
<include refid="queryTeacherServeInfoCondition" />
|
|
|
GROUP BY sees.monday_,sees.sunday_,sees.teacher_id_ ORDER BY sees.monday_,sees.sunday_,sees.teacher_id_
|
|
|
+ <if test="unDone!=null">
|
|
|
+ HAVING
|
|
|
+ <if test="unDone==1">
|
|
|
+ SUM( sees.expect_exercises_num_-sees.not_over_course_num_ ) > SUM( sees.actual_exercises_num_ )
|
|
|
+ </if>
|
|
|
+ <if test="unDone==0">
|
|
|
+ SUM( sees.expect_exercises_num_-sees.not_over_course_num_ ) <= SUM( sees.actual_exercises_num_ )
|
|
|
+ </if>
|
|
|
+ </if>
|
|
|
) e
|
|
|
</select>
|
|
|
|