nxdt-system/bonus-modules/bonus-exam/src/main/resources/mapper/exam/TrainingTasksMapper.xml

271 lines
12 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.bonus.exam.mapper.TrainingTasksMapper">
<insert id="addTrainingTask" useGeneratedKeys="true" keyProperty="id">
INSERT INTO edu_train_task
(train_theme,train_content, train_level, train_target, start_time, end_time, train_location,qr_code_uuid,
train_lduration,
speaker,
train_num, sign_status,create_id,create_user, is_active)
VALUES
(#{trainingName},#{trainingContent}, #{trainingLevel}, #{studyObject}, #{startDate},#{endDate},
#{trainingPlace},#{qrCodeUuid},
#{trainingDuration}, #{lecturer}, #{trainingNumber}, '0', #{createUser},#{createUserName}, '1')
</insert>
<insert id="addExamLink" parameterType="java.lang.String">
INSERT INTO ek_study_task_paper
(study_task_id, exam_paper_id, task_type,exam_template_type)
VALUES
(#{studyId}, #{examId}, #{type},'1')
</insert>
<insert id="addPersonLink">
INSERT INTO ek_task_user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="uuid != null and uuid != ''">user_uuid,</if>
<if test="userId != null and userId!=''">user_id,</if>
<if test="userType != null and userType!=''">user_type,</if>
<if test="deptId != null and deptId!=''">dept_id,</if>
<if test="deptName != null and deptName!=''">dept_name,</if>
<if test="proId != null and proId!=''">pro_id,</if>
<if test="proName != null and proName!=''">pro_name,</if>
<if test="consId != null and consId!=''">sub_id,</if>
<if test="consName != null and consName!=''">sub_name,</if>
<if test="postId != null and postId!=''">post_id,</if>
<if test="postName != null and postName!=''">post_name,</if>
<if test="taskType != null and taskType!=''">task_type,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="uuid != null and uuid != ''">#{uuid},</if>
<if test="userId != null and userId!=''">#{userId},</if>
<if test="userType != null and userType!=''">#{userType},</if>
<if test="deptId != null and deptId!=''">#{deptId},</if>
<if test="deptName != null and deptName!=''">#{deptName},</if>
<if test="proId != null and proId!=''">#{proId},</if>
<if test="proName != null and proName!=''">#{proName},</if>
<if test="consId != null and consId!=''">#{consId},</if>
<if test="consName != null and consName!=''">#{consName},</if>
<if test="postId != null and postId != ''">#{postId},</if>
<if test="postName != null and postName!=''">#{postName},</if>
<if test="taskType != null and taskType!=''">#{taskType},</if>
</trim>
</insert>
<insert id="uploadPath">
INSERT INTO edu_train_task_photo
(train_task_id, photo_path, file_size,file_name)
VALUES
(#{id}, #{filePath}, #{fileSize},#{fileName})
</insert>
<insert id="addTrainingTaskCourseware">
INSERT INTO edu_train_task_courseware(train_task_id, courseware_id,is_active)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{trainTaskId},
#{item},
'1'
)
</foreach>
</insert>
<update id="changeSignStatus">
UPDATE edu_train_task
SET sign_status = #{status}
WHERE train_task_id = #{id}
</update>
<update id="editTrainingTask">
UPDATE edu_train_task
SET train_theme = #{trainingName},
train_content = #{trainingContent},
train_level = #{trainingLevel},
qr_code_uuid = #{qrCodeUuid},
train_target = #{studyObject},
start_time = #{startDate},
end_time = #{endDate},
train_location = #{trainingPlace},
train_lduration = #{trainingDuration},
speaker = #{lecturer},
train_num = #{trainingNumber}
WHERE train_task_id = #{id}
</update>
<delete id="delTrainingTaskById">
update edu_train_task set is_active = '0' where train_task_id = #{id}
</delete>
<delete id="deleteFile">
delete from edu_train_task_photo
where train_photo_id in
<foreach item="id" index="index" collection="delFileIds.split(',')" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<delete id="delTrainingTaskCourseware">
DELETE FROM edu_train_task_courseware WHERE train_task_id = #{trainId} AND is_active = '1'
</delete>
<select id="getTrainingTasksList" resultType="com.bonus.common.exam.vo.TrainingTasksVo">
SELECT
ett.train_task_id as id,
ett.train_theme as trainingName,
sdd.dict_label as trainingLevel,
if(ett.train_target = '1', '内部人员', '外委人员') as studyObject,
concat(ett.start_time, ' - ', ett.end_time) as trainingDate,
ett.start_time as startDate,
ett.end_time as endDate,
ett.train_location as trainingPlace,
ett.train_lduration as trainingDuration,
ett.speaker as lecturer,
ett.train_num as trainingNumber,
ett.sign_status as trainingStatus,
CASE
when ett.sign_status = '0' then '未签到'
when ett.sign_status = '1' then '签到中'
when ett.sign_status = '2' then '已结束'
end as trainingStatusName,
ett.create_user as createUser,
ett.create_time as createTime
FROM edu_train_task ett
left join sys_dict_data sdd on sdd.dict_value = ett.train_level and sdd.dict_type = 'edu_train_level' and
sdd.status = '0'
<where>
<if test="keyWord != null and keyWord != ''">
and (
ett.train_theme like concat('%', #{keyWord}, '%') or
ett.train_target like concat('%', #{keyWord}, '%') or
ett.create_user like concat('%', #{keyWord}, '%')
)
</if>
<if test="studyObject != null and studyObject != ''">
AND ett.train_target = #{studyObject}
</if>
<if test="trainingLevel != null and trainingLevel != ''">
AND ett.train_level = #{trainingLevel}
</if>
<if test="trainingStatus != null and trainingStatus != ''">
<choose>
<when test="trainingStatus == '1' or trainingStatus == 1">
AND DATE_FORMAT(NOW(),'%Y-%m-%d') &lt; ett.start_time
</when>
<when test="trainingStatus == '2' or trainingStatus == 2">
AND DATE_FORMAT(NOW(),'%Y-%m-%d') BETWEEN ett.start_time AND ett.end_time
</when>
<when test="trainingStatus == '3' or trainingStatus == 3">
AND DATE_FORMAT(NOW(),'%Y-%m-%d') &gt; ett.end_time
</when>
</choose>
</if>
<if test="startDate != null and startDate != '' and endDate != null and endDate != ''">
AND DATE_FORMAT(ett.create_time,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
</if>
AND ett.is_active = '1'
</where>
ORDER BY ett.create_time DESC
</select>
<select id="selectScenePhoto" resultType="com.bonus.common.entity.SysFileInfo">
select
train_photo_id as id,
file_name as fileName,
file_size as fileSize,
photo_path as filePath,
file_name as name,
photo_path as url,
DATE_FORMAT(create_time, '%Y-%m-%d') as createTime
from edu_train_task_photo
where train_task_id = #{id}
</select>
<select id="selectTrainingDataHeader" resultType="com.bonus.common.core.web.domain.AjaxResult">
SELECT
SUM(r.totalNum) as totalNum,
SUM(r.notSign) as notSign
from(
SELECT
count(1) AS totalNum,
0 AS notSign
FROM
ek_task_user
WHERE
task_id =#{id}
AND task_type = '2' UNION ALL
SELECT
0 AS totalNum,
count( 1) AS notSign
FROM
ek_task_user
WHERE
task_id = #{id} and (sign_time is not null and sign_time != null)
AND task_type = '2')r
</select>
<select id="isExistTrainTaskName" resultType="java.lang.Integer">
select count(1) from edu_train_task where train_theme = #{trainingName} and is_active = '1'
<if test="id != null and id != ''">
and train_task_id != #{id}
</if>
</select>
<select id="getTrainingTaskDetail" resultType="com.bonus.common.exam.vo.AddTrainingTaskVo">
select
ett.train_task_id as id,
ett.train_theme as trainingName,
ett.train_content as trainingContent,
ett.train_level as trainingLevel,
ett.train_target as studyObject,
ett.start_time as startDate,
ett.end_time as endDate,
ett.train_location as trainingPlace,
ett.qr_code_uuid as qrCodeUuid,
ett.train_lduration as trainingDuration,
ett.speaker as lecturer,
ett.train_num as trainingNumber,
ett.sign_status as trainingStatus
from edu_train_task ett
where train_task_id = #{id}
</select>
<select id="selectTrainingDataList" resultType="com.bonus.common.exam.vo.PersonVo">
SELECT DISTINCT
etu.task_id as id,
etu.user_id as userId,
etu.user_uuid as userUuid,
su.nick_name AS NAME,
IF
( su.sex = '0', '男', '女' ) AS sex,
su.id_card AS idCard,
su.phonenumber AS phone,
etu.pro_name AS proName,
etu.sub_name AS consName,
IFNULL(IF(su.user_type in ('02','03','04'),'施工人员','监理人员'),'普通人员') AS postName,
IF(etu.post_name = 'null','',etu.post_name) AS workType,
IF
( etu.sign_time IS NULL, '否', '是' ) AS isSign,
etu.sign_time AS signTime
FROM
ek_task_user etu
LEFT JOIN sys_user su ON su.user_id = etu.user_id
AND su.del_flag = '0'
LEFT JOIN sys_post sp ON sp.post_id = etu.post_id
WHERE
etu.task_id = #{id} and etu.task_type = 2
<if test="name != null and name != ''">
and su.nick_name like concat('%', #{name}, '%')
</if>
</select>
<select id="getScore" resultType="java.lang.Double">
SELECT
ifnull( SUM( score ),0) AS score
FROM
edu_exam_paper_record epr
left join edu_exam_paper ep on ep.exam_paper_id = epr.exam_paper_id and ep.pape_type = '2'
left join ek_study_task_paper estp on estp.exam_paper_id = ep.exam_paper_id and estp.task_type = '2' and
estp.exam_template_type = '1'
WHERE
epr.uuid = #{userId}
AND estp.study_task_id = #{id}
</select>
<select id="getTrainTaskCourseware" resultType="com.bonus.common.exam.vo.CoursewareVo">
SELECT ec.courseware_id AS coursewareId,
ec.courseware_name AS coursewareName,
ec.courseware_size AS coursewareSize,
ec.study_time AS studyTime
FROM edu_train_task_courseware ettc
LEFT JOIN edu_courseware ec ON ec.courseware_id = ettc.courseware_id
WHERE ettc.train_task_id = #{studyTaskId} AND ettc.is_active = '1'
</select>
</mapper>