|  | @@ -27,6 +27,8 @@
 | 
	
		
			
				|  |  |  		<result column="start_class_time_" property="courseSchedule.startClassTime" />
 | 
	
		
			
				|  |  |  		<result column="end_class_time_" property="courseSchedule.endClassTime" />
 | 
	
		
			
				|  |  |  		<result column="reduce_salary" property="reduceSalary" />
 | 
	
		
			
				|  |  | +		<result column="confirm_status_" property="confirmStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 | 
	
		
			
				|  |  | +		<result column="memo_" property="memo" />
 | 
	
		
			
				|  |  |  	</resultMap>
 | 
	
		
			
				|  |  |  	
 | 
	
		
			
				|  |  |  	<resultMap type="com.ym.mec.biz.dal.dto.TeacherVipSalaryDto" id="teacherVipSalaryDto" extends="CourseScheduleTeacherSalary">
 | 
	
	
		
			
				|  | @@ -49,15 +51,21 @@
 | 
	
		
			
				|  |  |  	<!-- 向数据库增加一条记录 -->
 | 
	
		
			
				|  |  |  	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 | 
	
		
			
				|  |  |  		INSERT INTO course_schedule_teacher_salary (id_,group_type_,music_group_id_,course_schedule_id_,teacher_role_,
 | 
	
		
			
				|  |  | -		user_id_,expect_salary_,create_time_,update_time_,subsidy_,actual_salary_,settlement_time_,class_group_id_)
 | 
	
		
			
				|  |  | +		user_id_,expect_salary_,create_time_,update_time_,subsidy_,actual_salary_,settlement_time_,class_group_id_,
 | 
	
		
			
				|  |  | +		reduce_salary,confirm_status_,memo_)
 | 
	
		
			
				|  |  |  		VALUES(#{id},#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{courseScheduleId},
 | 
	
		
			
				|  |  | -		#{teacherRole},#{userId},#{expectSalary},now(),now(),#{subsidy},#{actualSalary},#{settlementTime},#{classGroupId})
 | 
	
		
			
				|  |  | +		#{teacherRole},#{userId},#{expectSalary},now(),now(),#{subsidy},#{actualSalary},#{settlementTime},#{classGroupId},
 | 
	
		
			
				|  |  | +		#{reduceSalary},#{confirmStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{memo})
 | 
	
		
			
				|  |  |  	</insert>
 | 
	
		
			
				|  |  |      <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
 | 
	
		
			
				|  |  | -		INSERT INTO course_schedule_teacher_salary (id_,group_type_,music_group_id_,course_schedule_id_,teacher_role_,user_id_,expect_salary_,create_time_,update_time_,subsidy_,actual_salary_,settlement_time_,class_group_id_)
 | 
	
		
			
				|  |  | +		INSERT INTO course_schedule_teacher_salary (id_,group_type_,music_group_id_,course_schedule_id_,teacher_role_,
 | 
	
		
			
				|  |  | +		user_id_,expect_salary_,create_time_,update_time_,subsidy_,actual_salary_,settlement_time_,class_group_id_,
 | 
	
		
			
				|  |  | +		reduce_salary,confirm_status_,memo_)
 | 
	
		
			
				|  |  |  		VALUES
 | 
	
		
			
				|  |  |  		<foreach collection="list" item="data" separator=",">
 | 
	
		
			
				|  |  | -			(#{data.id},#{data.groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{data.musicGroupId},#{data.courseScheduleId},#{data.teacherRole},#{data.userId},#{data.expectSalary},now(),now(),#{data.subsidy},#{data.actualSalary},#{data.settlementTime},#{data.classGroupId})
 | 
	
		
			
				|  |  | +			(#{data.id},#{data.groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{data.musicGroupId},#{data.courseScheduleId},
 | 
	
		
			
				|  |  | +			#{data.teacherRole},#{data.userId},#{data.expectSalary},now(),now(),#{data.subsidy},#{data.actualSalary},#{data.settlementTime},
 | 
	
		
			
				|  |  | +			#{data.classGroupId},#{data.reduceSalary},#{data.confirmStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{data.memo})
 | 
	
		
			
				|  |  |  		</foreach>
 | 
	
		
			
				|  |  |      </insert>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -65,9 +73,6 @@
 | 
	
		
			
				|  |  |  	<update id="update" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary">
 | 
	
		
			
				|  |  |  		UPDATE course_schedule_teacher_salary 
 | 
	
		
			
				|  |  |  		<set>
 | 
	
		
			
				|  |  | -			<if test="reduceSalary != null">
 | 
	
		
			
				|  |  | -				reduce_salary = #{reduceSalary},
 | 
	
		
			
				|  |  | -			</if>
 | 
	
		
			
				|  |  |  			<if test="userId != null">
 | 
	
		
			
				|  |  |  				user_id_ = #{userId},
 | 
	
		
			
				|  |  |  			</if>
 | 
	
	
		
			
				|  | @@ -101,6 +106,15 @@
 | 
	
		
			
				|  |  |  			<if test="classGroupId != null">
 | 
	
		
			
				|  |  |  				class_group_id_ = #{classGroupId},
 | 
	
		
			
				|  |  |  			</if>
 | 
	
		
			
				|  |  | +			<if test="reduceSalary != null">
 | 
	
		
			
				|  |  | +				reduce_salary = #{reduceSalary},
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="confirmStatus != null">
 | 
	
		
			
				|  |  | +				confirm_status_ = #{confirmStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="memo != null">
 | 
	
		
			
				|  |  | +				memo_ = #{memo},
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  |  		</set> WHERE id_ = #{id} 
 | 
	
		
			
				|  |  |  	</update>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -429,7 +443,8 @@
 | 
	
		
			
				|  |  |  		</foreach>
 | 
	
		
			
				|  |  |  		AND csts.teacher_role_ = 'BISHOP'
 | 
	
		
			
				|  |  |  	</update>
 | 
	
		
			
				|  |  | -    <update id="updateSalary">
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <update id="updateSalary" parameterType="com.ym.mec.biz.dal.entity.TeacherSalaryModifyLog">
 | 
	
		
			
				|  |  |  		UPDATE course_schedule_teacher_salary SET actual_salary_ = #{modifyLog.currentExpectSalary},reduce_salary = #{modifyLog.currentReduceSalary},update_time_ = NOW()
 | 
	
		
			
				|  |  |  		WHERE course_schedule_id_ = #{modifyLog.courseScheduleId} AND user_id_ = #{modifyLog.teacherId}
 | 
	
		
			
				|  |  |  	</update>
 | 
	
	
		
			
				|  | @@ -698,4 +713,108 @@
 | 
	
		
			
				|  |  |  		LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
 | 
	
		
			
				|  |  |  		WHERE NOW() >= CONCAT(cs.class_date_ ,' ',cs.end_class_time_) AND csts.user_id_ = #{userId}
 | 
	
		
			
				|  |  |  	</select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	<resultMap id="TeacherCourseSalaryDetail4WebDto" type="com.ym.mec.biz.dal.dto.TeacherCourseSalaryDetail4WebDto">
 | 
	
		
			
				|  |  | +		<result property="id" column="id_" />
 | 
	
		
			
				|  |  | +		<result property="organId" column="organ_id_" />
 | 
	
		
			
				|  |  | +		<result property="organName" column="organ_name_" />
 | 
	
		
			
				|  |  | +		<result property="groupType" column="group_type_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 | 
	
		
			
				|  |  | +		<result property="courseScheduleId" column="course_schedule_id_" />
 | 
	
		
			
				|  |  | +		<result property="startClassTime" column="classes_start_time_" />
 | 
	
		
			
				|  |  | +		<result property="courseName" column="course_name_" />
 | 
	
		
			
				|  |  | +		<result property="teacherId" column="teacher_id_" />
 | 
	
		
			
				|  |  | +		<result property="teacherName" column="teacher_name_" />
 | 
	
		
			
				|  |  | +		<result property="signInTime" column="sign_in_time_" />
 | 
	
		
			
				|  |  | +		<result property="signInStatus" column="sign_in_status_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 | 
	
		
			
				|  |  | +		<result property="signOutStatus" column="sign_out_status_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 | 
	
		
			
				|  |  | +		<result property="signOutTime" column="sign_out_time_" />
 | 
	
		
			
				|  |  | +		<result property="expectSalary" column="expect_salary_" />
 | 
	
		
			
				|  |  | +		<result property="actualSalary" column="actual_salary_" />
 | 
	
		
			
				|  |  | +		<result property="reduceSalary" column="reduce_salary_" />
 | 
	
		
			
				|  |  | +		<result property="confirmStatus" column="confirm_status_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 | 
	
		
			
				|  |  | +		<result property="memo" column="memo_" />
 | 
	
		
			
				|  |  | +	</resultMap>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	<sql id="queryCourseSalaryCondition">
 | 
	
		
			
				|  |  | +		<where>
 | 
	
		
			
				|  |  | +			(cs.del_flag_ IS NULL OR cs.del_flag_=0)
 | 
	
		
			
				|  |  | +			AND csts.settlement_time_ IS NOT NULL
 | 
	
		
			
				|  |  | +			<if test="teacherId!=null">
 | 
	
		
			
				|  |  | +				AND csts.user_id_=#{teacherId}
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="groupType!=null">
 | 
	
		
			
				|  |  | +				AND cs.group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="courseScheduleId!=null">
 | 
	
		
			
				|  |  | +				AND cs.id_=#{courseScheduleId}
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="signInStatus!=null">
 | 
	
		
			
				|  |  | +				AND ta.sign_in_status_=#{signInStatus}
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="signOutStatus!=null">
 | 
	
		
			
				|  |  | +				AND ta.sign_out_status_=#{signOutStatus}
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="confirmStatus!=null">
 | 
	
		
			
				|  |  | +				AND csts.reduce_salary=#{confirmStatus}
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="groupName!=null">
 | 
	
		
			
				|  |  | +				AND cs.name_ LIKE CONCAT('%', #{groupName}, '%')
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="month!=null">
 | 
	
		
			
				|  |  | +				AND DATE_FORMAT(cs.class_date_, '%Y-%m') = #{month}
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="organIdList">
 | 
	
		
			
				|  |  | +				AND FIND_IN_SET(t.organ_id_,#{organIdList})
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="search!=null">
 | 
	
		
			
				|  |  | +				AND (csts.user_id_=#{search} OR su.real_name_ LIKE CONCAT('%', #{search}, '%'))
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +		</where>
 | 
	
		
			
				|  |  | +	</sql>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	<select id="findIsSettlementCourseSalarys" resultMap="TeacherCourseSalaryDetail4WebDto">
 | 
	
		
			
				|  |  | +		SELECT
 | 
	
		
			
				|  |  | +			csts.id_,
 | 
	
		
			
				|  |  | +			cs.id_ course_schedule_id_,
 | 
	
		
			
				|  |  | +			cs.group_type_,
 | 
	
		
			
				|  |  | +			CONCAT(cs.class_date_, ' ', cs.start_class_time_) classes_start_time_,
 | 
	
		
			
				|  |  | +			cs.name_,
 | 
	
		
			
				|  |  | +			csts.user_id_ teacher_id_,
 | 
	
		
			
				|  |  | +			su.real_name_ teacher_name_,
 | 
	
		
			
				|  |  | +			t.organ_id_,
 | 
	
		
			
				|  |  | +			o.name_ organ_name_,
 | 
	
		
			
				|  |  | +			ta.sign_in_time_,
 | 
	
		
			
				|  |  | +			ta.sign_in_status_,
 | 
	
		
			
				|  |  | +			ta.sign_out_time_,
 | 
	
		
			
				|  |  | +			ta.sign_out_status_,
 | 
	
		
			
				|  |  | +			csts.expect_salary_,
 | 
	
		
			
				|  |  | +			csts.actual_salary_,
 | 
	
		
			
				|  |  | +			csts.reduce_salary,
 | 
	
		
			
				|  |  | +			csts.confirm_status_,
 | 
	
		
			
				|  |  | +			csts.memo_
 | 
	
		
			
				|  |  | +		FROM
 | 
	
		
			
				|  |  | +			course_schedule_teacher_salary csts
 | 
	
		
			
				|  |  | +			LEFT JOIN course_schedule cs ON csts.course_schedule_id_=cs.id_
 | 
	
		
			
				|  |  | +			LEFT JOIN teacher_attendance ta ON csts.course_schedule_id_=ta.course_schedule_id_
 | 
	
		
			
				|  |  | +			LEFT JOIN teacher t ON csts.user_id_=t.id_
 | 
	
		
			
				|  |  | +			LEFT JOIN sys_user su ON csts.user_id_=su.id_
 | 
	
		
			
				|  |  | +			LEFT JOIN organization o ON t.organ_id_=o.id_
 | 
	
		
			
				|  |  | +		<include refid="queryCourseSalaryCondition"/>
 | 
	
		
			
				|  |  | +		ORDER BY classes_start_time_ DESC
 | 
	
		
			
				|  |  | +		<include refid="global.limit"/>
 | 
	
		
			
				|  |  | +	</select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	<select id="countIsSettlementCourseSalarys" resultType="int">
 | 
	
		
			
				|  |  | +		SELECT
 | 
	
		
			
				|  |  | +			COUNT(csts.id_)
 | 
	
		
			
				|  |  | +		FROM
 | 
	
		
			
				|  |  | +			course_schedule_teacher_salary csts
 | 
	
		
			
				|  |  | +		LEFT JOIN course_schedule cs ON csts.course_schedule_id_=cs.id_
 | 
	
		
			
				|  |  | +		LEFT JOIN teacher_attendance ta ON csts.course_schedule_id_=ta.course_schedule_id_
 | 
	
		
			
				|  |  | +		LEFT JOIN teacher t ON csts.user_id_=t.id_
 | 
	
		
			
				|  |  | +		LEFT JOIN sys_user su ON csts.user_id_=su.id_
 | 
	
		
			
				|  |  | +		<include refid="queryCourseSalaryCondition"/>
 | 
	
		
			
				|  |  | +		ORDER BY csts.id_ DESC
 | 
	
		
			
				|  |  | +		<include refid="global.limit"/>
 | 
	
		
			
				|  |  | +	</select>
 | 
	
		
			
				|  |  |  </mapper>
 |