183 lines
7.9 KiB
XML
183 lines
7.9 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<!DOCTYPE mapper
|
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
<mapper namespace="com.ruoyi.train.mapper.TrainEnrollmentMapper">
|
|
|
|
<resultMap type="com.ruoyi.train.domain.TrainEnrollment" id="TrainEnrollmentResult">
|
|
<id property="enrollmentId" column="enrollment_id" />
|
|
<result property="planId" column="plan_id" />
|
|
<result property="studentId" column="student_id" />
|
|
<result property="sourceType" column="source_type" />
|
|
<result property="enrollmentStatus" column="enrollment_status" />
|
|
<result property="accommodationRequired" column="accommodation_required" />
|
|
<result property="joinTime" column="join_time" />
|
|
<result property="completeTime" column="complete_time" />
|
|
<result property="createBy" column="create_by" />
|
|
<result property="createTime" column="create_time" />
|
|
<result property="updateBy" column="update_by" />
|
|
<result property="updateTime" column="update_time" />
|
|
<result property="remark" column="remark" />
|
|
</resultMap>
|
|
|
|
<sql id="selectTrainEnrollmentDomain">
|
|
select enrollment_id, plan_id, student_id, source_type, enrollment_status,
|
|
accommodation_required, join_time, complete_time, create_by, create_time,
|
|
update_by, update_time, remark
|
|
from train_enrollment
|
|
</sql>
|
|
|
|
<select id="selectPlanForUpdate" resultType="com.ruoyi.train.domain.TrainClassPlan">
|
|
select plan_id as planId,
|
|
plan_name as planName,
|
|
plan_status as planStatus,
|
|
recruit_num as recruitNum,
|
|
start_time as startTime,
|
|
end_time as endTime,
|
|
del_flag as delFlag
|
|
from train_class_plan
|
|
where plan_id = #{planId}
|
|
for update
|
|
</select>
|
|
|
|
<select id="selectTrainEnrollmentById" parameterType="Long" resultMap="TrainEnrollmentResult">
|
|
<include refid="selectTrainEnrollmentDomain" />
|
|
where enrollment_id = #{enrollmentId}
|
|
</select>
|
|
|
|
<select id="selectTrainEnrollmentByPlanIdAndStudentId" resultMap="TrainEnrollmentResult">
|
|
<include refid="selectTrainEnrollmentDomain" />
|
|
where plan_id = #{planId} and student_id = #{studentId}
|
|
</select>
|
|
|
|
<select id="selectEnrollmentItemList" parameterType="com.ruoyi.train.domain.query.EnrollmentQuery"
|
|
resultType="com.ruoyi.train.domain.vo.EnrollmentItemVO">
|
|
select e.enrollment_id as enrollmentId,
|
|
e.plan_id as planId,
|
|
e.student_id as studentId,
|
|
s.s_name as studentName,
|
|
s.s_gender as gender,
|
|
s.id_card_last4 as idCardMasked,
|
|
s.org_name as orgName,
|
|
s.s_phone as phone,
|
|
e.source_type as sourceType,
|
|
e.enrollment_status as enrollmentStatus,
|
|
e.accommodation_required as accommodationRequired,
|
|
e.join_time as joinTime,
|
|
e.complete_time as completeTime,
|
|
e.remark as remark
|
|
from train_enrollment e
|
|
left join train_student s on e.student_id = s.s_id
|
|
<where>
|
|
e.plan_id = #{planId}
|
|
<if test="studentName != null and studentName != ''">
|
|
and s.s_name like concat('%', #{studentName}, '%')
|
|
</if>
|
|
<if test="enrollmentStatus != null">
|
|
and e.enrollment_status = #{enrollmentStatus}
|
|
</if>
|
|
<if test="accommodationRequired != null">
|
|
and e.accommodation_required = #{accommodationRequired}
|
|
</if>
|
|
</where>
|
|
order by e.enrollment_id asc
|
|
</select>
|
|
|
|
<select id="countEnrollmentsByPlanId" parameterType="String" resultType="int">
|
|
select count(1) from train_enrollment where plan_id = #{planId}
|
|
</select>
|
|
|
|
<insert id="insertTrainEnrollment" parameterType="com.ruoyi.train.domain.TrainEnrollment"
|
|
useGeneratedKeys="true" keyProperty="enrollmentId">
|
|
insert into train_enrollment (
|
|
plan_id, student_id, source_type, enrollment_status, accommodation_required,
|
|
join_time, complete_time, create_by, create_time, update_by, update_time, remark
|
|
) values (
|
|
#{planId}, #{studentId}, #{sourceType}, #{enrollmentStatus}, #{accommodationRequired},
|
|
#{joinTime}, #{completeTime}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{remark}
|
|
)
|
|
</insert>
|
|
|
|
<insert id="batchInsertTrainEnrollment">
|
|
insert into train_enrollment (
|
|
plan_id, student_id, source_type, enrollment_status, accommodation_required,
|
|
join_time, complete_time, create_by, create_time, remark
|
|
) values
|
|
<foreach collection="list" item="item" separator=",">
|
|
(
|
|
#{item.planId}, #{item.studentId}, #{item.sourceType}, #{item.enrollmentStatus},
|
|
#{item.accommodationRequired}, #{item.joinTime}, #{item.completeTime},
|
|
#{item.createBy}, #{item.createTime}, #{item.remark}
|
|
)
|
|
</foreach>
|
|
</insert>
|
|
|
|
<update id="updateTrainEnrollment" parameterType="com.ruoyi.train.domain.TrainEnrollment">
|
|
update train_enrollment
|
|
<set>
|
|
<if test="sourceType != null">source_type = #{sourceType},</if>
|
|
<if test="enrollmentStatus != null">enrollment_status = #{enrollmentStatus},</if>
|
|
<if test="accommodationRequired != null">accommodation_required = #{accommodationRequired},</if>
|
|
<if test="joinTime != null">join_time = #{joinTime},</if>
|
|
<if test="completeTime != null">complete_time = #{completeTime},</if>
|
|
<if test="updateBy != null">update_by = #{updateBy},</if>
|
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
|
<if test="remark != null">remark = #{remark},</if>
|
|
</set>
|
|
where enrollment_id = #{enrollmentId}
|
|
</update>
|
|
|
|
<update id="updateEnrollmentStatus">
|
|
update train_enrollment
|
|
set enrollment_status = #{enrollmentStatus},
|
|
remark = coalesce(#{remark}, remark),
|
|
update_by = #{operator},
|
|
update_time = #{updateTime}
|
|
where enrollment_id = #{enrollmentId}
|
|
</update>
|
|
|
|
<update id="confirmEnrollmentReport">
|
|
update train_enrollment
|
|
set enrollment_status = 1,
|
|
join_time = #{reportTime},
|
|
update_by = #{operator},
|
|
update_time = #{updateTime}
|
|
where enrollment_id = #{enrollmentId}
|
|
</update>
|
|
|
|
<update id="completeActiveEnrollmentsByPlanId">
|
|
update train_enrollment
|
|
set enrollment_status = 4,
|
|
complete_time = #{completeTime},
|
|
update_by = #{operator},
|
|
update_time = #{completeTime}
|
|
where plan_id = #{planId}
|
|
and enrollment_status in (0, 1)
|
|
</update>
|
|
|
|
<delete id="deleteTrainEnrollmentById" parameterType="Long">
|
|
delete from train_enrollment where enrollment_id = #{enrollmentId}
|
|
</delete>
|
|
|
|
<select id="countAttendanceByEnrollmentId" parameterType="Long" resultType="int">
|
|
select count(1) from train_student_checkin where enrollment_id = #{enrollmentId}
|
|
</select>
|
|
|
|
<select id="countScoreByEnrollmentId" parameterType="Long" resultType="int">
|
|
select count(1) from train_student_score where enrollment_id = #{enrollmentId}
|
|
</select>
|
|
|
|
<select id="countReportByEnrollmentId" parameterType="Long" resultType="int">
|
|
select count(1) from train_class_report where enrollment_id = #{enrollmentId}
|
|
</select>
|
|
|
|
<select id="countAccommodationByEnrollmentId" parameterType="Long" resultType="int">
|
|
select count(1) from train_accommodation where enrollment_id = #{enrollmentId}
|
|
</select>
|
|
|
|
<select id="countStudyDurationByEnrollmentId" parameterType="Long" resultType="int">
|
|
select count(1) from train_study_duration where enrollment_id = #{enrollmentId}
|
|
</select>
|
|
|
|
</mapper>
|