PostDischargePatientManage/postdischarge-manage/src/main/resources/mapper/manage/questionsubject/QuestionSubjectMapper.xml
2026-03-05 10:43:22 +08:00

389 lines
15 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.xinelu.manage.mapper.questionsubject.QuestionSubjectMapper">
<resultMap type="QuestionSubject" id="QuestionSubjectResult">
<result property="id" column="id"/>
<result property="questionInfoId" column="question_info_id"/>
<result property="questionNumber" column="question_number"/>
<result property="questionType" column="question_type"/>
<result property="questionName" column="question_name"/>
<result property="questionNameAlias" column="question_name_alias"/>
<result property="questionDescription" column="question_description"/>
<result property="writeDescription" column="write_description"/>
<result property="fillBlanksAnswer" column="fill_blanks_answer"/>
<result property="optionCount" column="option_count"/>
<result property="whetherScore" column="whether_score"/>
<result property="scoringMethod" column="scoring_method"/>
<result property="scoringDescription" column="scoring_description"/>
<result property="questionScore" column="question_score"/>
<result property="customTriggerCondition" column="custom_trigger_condition"/>
<result property="propagandaInfoId" column="propaganda_info_id"/>
<result property="propagandaTitle" column="propaganda_title"/>
<result property="questionSort" column="question_sort"/>
<result property="questionRemark" column="question_remark"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<sql id="selectQuestionSubjectVo">
select id,
question_info_id,
question_number,
question_type,
question_name,
question_name_alias,
question_description,
write_description,
fill_blanks_answer,
option_count,
whether_score,
scoring_method,
scoring_description,
question_score,
custom_trigger_condition,
propaganda_info_id,
propaganda_title,
question_sort,
question_remark,
create_by,
create_time,
update_by,
update_time
from question_subject
</sql>
<select id="selectQuestionSubjectList" parameterType="QuestionSubject" resultMap="QuestionSubjectResult">
<include refid="selectQuestionSubjectVo"/>
<where>
<if test="questionInfoId != null ">
and question_info_id = #{questionInfoId}
</if>
<if test="questionNumber != null ">
and question_number = #{questionNumber}
</if>
<if test="questionType != null and questionType != ''">
and question_type = #{questionType}
</if>
<if test="questionName != null and questionName != ''">
and question_name like concat('%', #{questionName}, '%')
</if>
<if test="questionNameAlias != null and questionNameAlias != ''">
and question_name_alias like concat('%', #{questionNameAlias}, '%')
</if>
<if test="questionDescription != null and questionDescription != ''">
and question_description = #{questionDescription}
</if>
<if test="writeDescription != null and writeDescription != ''">
and write_description = #{writeDescription}
</if>
<if test="fillBlanksAnswer != null and fillBlanksAnswer != ''">
and fill_blanks_answer = #{fillBlanksAnswer}
</if>
<if test="optionCount != null ">
and option_count = #{optionCount}
</if>
<if test="whetherScore != null ">
and whether_score = #{whetherScore}
</if>
<if test="scoringMethod != null and scoringMethod != ''">
and scoring_method = #{scoringMethod}
</if>
<if test="scoringDescription != null and scoringDescription != ''">
and scoring_description = #{scoringDescription}
</if>
<if test="questionScore != null ">
and question_score = #{questionScore}
</if>
<if test="customTriggerCondition != null and customTriggerCondition != ''">
and custom_trigger_condition = #{customTriggerCondition}
</if>
<if test="propagandaInfoId != null ">
and propaganda_info_id = #{propagandaInfoId}
</if>
<if test="propagandaTitle != null and propagandaTitle != ''">
and propaganda_title = #{propagandaTitle}
</if>
<if test="questionSort != null ">
and question_sort = #{questionSort}
</if>
<if test="questionRemark != null and questionRemark != ''">
and question_remark = #{questionRemark}
</if>
</where>
</select>
<select id="selectQuestionSubjectById" parameterType="Long"
resultMap="QuestionSubjectResult">
<include refid="selectQuestionSubjectVo"/>
where id = #{id}
</select>
<insert id="insertQuestionSubject" parameterType="QuestionSubject" useGeneratedKeys="true"
keyProperty="id">
insert into question_subject
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="questionInfoId != null">question_info_id,
</if>
<if test="questionNumber != null">question_number,
</if>
<if test="questionType != null">question_type,
</if>
<if test="questionName != null">question_name,
</if>
<if test="questionNameAlias != null">question_name_alias,
</if>
<if test="questionDescription != null">question_description,
</if>
<if test="writeDescription != null">write_description,
</if>
<if test="fillBlanksAnswer != null">fill_blanks_answer,
</if>
<if test="optionCount != null">option_count,
</if>
<if test="whetherScore != null">whether_score,
</if>
<if test="scoringMethod != null">scoring_method,
</if>
<if test="scoringDescription != null">scoring_description,
</if>
<if test="questionScore != null">question_score,
</if>
<if test="customTriggerCondition != null">custom_trigger_condition,
</if>
<if test="propagandaInfoId != null">propaganda_info_id,
</if>
<if test="propagandaTitle != null">propaganda_title,
</if>
<if test="questionSort != null">question_sort,
</if>
<if test="questionRemark != null">question_remark,
</if>
<if test="createBy != null">create_by,
</if>
<if test="createTime != null">create_time,
</if>
<if test="updateBy != null">update_by,
</if>
<if test="updateTime != null">update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="questionInfoId != null">#{questionInfoId},
</if>
<if test="questionNumber != null">#{questionNumber},
</if>
<if test="questionType != null">#{questionType},
</if>
<if test="questionName != null">#{questionName},
</if>
<if test="questionNameAlias != null">#{questionNameAlias},
</if>
<if test="questionDescription != null">#{questionDescription},
</if>
<if test="writeDescription != null">#{writeDescription},
</if>
<if test="fillBlanksAnswer != null">#{fillBlanksAnswer},
</if>
<if test="optionCount != null">#{optionCount},
</if>
<if test="whetherScore != null">#{whetherScore},
</if>
<if test="scoringMethod != null">#{scoringMethod},
</if>
<if test="scoringDescription != null">#{scoringDescription},
</if>
<if test="questionScore != null">#{questionScore},
</if>
<if test="customTriggerCondition != null">#{customTriggerCondition},
</if>
<if test="propagandaInfoId != null">#{propagandaInfoId},
</if>
<if test="propagandaTitle != null">#{propagandaTitle},
</if>
<if test="questionSort != null">#{questionSort},
</if>
<if test="questionRemark != null">#{questionRemark},
</if>
<if test="createBy != null">#{createBy},
</if>
<if test="createTime != null">#{createTime},
</if>
<if test="updateBy != null">#{updateBy},
</if>
<if test="updateTime != null">#{updateTime},
</if>
</trim>
</insert>
<update id="updateQuestionSubject" parameterType="QuestionSubject">
update question_subject
<trim prefix="SET" suffixOverrides=",">
<if test="questionInfoId != null">question_info_id =
#{questionInfoId},
</if>
<if test="questionNumber != null">question_number =
#{questionNumber},
</if>
<if test="questionType != null">question_type =
#{questionType},
</if>
<if test="questionName != null">question_name =
#{questionName},
</if>
<if test="questionNameAlias != null">question_name_alias =
#{questionNameAlias},
</if>
<if test="questionDescription != null">question_description =
#{questionDescription},
</if>
<if test="writeDescription != null">write_description =
#{writeDescription},
</if>
<if test="fillBlanksAnswer != null">fill_blanks_answer =
#{fillBlanksAnswer},
</if>
<if test="optionCount != null">option_count =
#{optionCount},
</if>
<if test="whetherScore != null">whether_score =
#{whetherScore},
</if>
<if test="scoringMethod != null">scoring_method =
#{scoringMethod},
</if>
<if test="scoringDescription != null">scoring_description =
#{scoringDescription},
</if>
<if test="questionScore != null">question_score =
#{questionScore},
</if>
<if test="customTriggerCondition != null">custom_trigger_condition =
#{customTriggerCondition},
</if>
<if test="propagandaInfoId != null">propaganda_info_id =
#{propagandaInfoId},
</if>
<if test="propagandaTitle != null">propaganda_title =
#{propagandaTitle},
</if>
<if test="questionSort != null">question_sort =
#{questionSort},
</if>
<if test="questionRemark != null">question_remark =
#{questionRemark},
</if>
<if test="createBy != null">create_by =
#{createBy},
</if>
<if test="createTime != null">create_time =
#{createTime},
</if>
<if test="updateBy != null">update_by =
#{updateBy},
</if>
<if test="updateTime != null">update_time =
#{updateTime},
</if>
</trim>
where id = #{id}
</update>
<delete id="deleteQuestionSubjectById" parameterType="Long">
delete
from question_subject
where id = #{id}
</delete>
<delete id="deleteQuestionSubjectByIds" parameterType="String">
delete from question_subject where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<insert id="insertQuestionSubjectList" useGeneratedKeys="true" keyProperty="id">
insert into question_subject(
question_info_id,
question_number,
question_type,
question_name,
question_name_alias,
question_description,
write_description,
fill_blanks_answer,
option_count,
whether_score,
scoring_method,
scoring_description,
question_score,
custom_trigger_condition,
propaganda_info_id,
propaganda_title,
question_sort,
question_remark,
create_by,
create_time
) values
<foreach item="QuestionSubject" index="index" collection="list" separator=",">
(
#{QuestionSubject.questionInfoId},
#{QuestionSubject.questionNumber},
#{QuestionSubject.questionType},
#{QuestionSubject.questionName},
#{QuestionSubject.questionNameAlias},
#{QuestionSubject.questionDescription},
#{QuestionSubject.writeDescription},
#{QuestionSubject.fillBlanksAnswer},
#{QuestionSubject.optionCount},
#{QuestionSubject.whetherScore},
#{QuestionSubject.scoringMethod},
#{QuestionSubject.scoringDescription},
#{QuestionSubject.questionScore},
#{QuestionSubject.customTriggerCondition},
#{QuestionSubject.propagandaInfoId},
#{QuestionSubject.propagandaTitle},
#{QuestionSubject.questionSort},
#{QuestionSubject.questionRemark},
#{QuestionSubject.createBy},
#{QuestionSubject.createTime}
)
</foreach>
</insert>
<select id="selectQuestionSubjectBy" resultType="com.xinelu.manage.vo.questionsubject.QuestionSubjectVO">
<include refid="selectQuestionSubjectVo"/>
<where>
<if test="questionInfoId != null ">
question_info_id = #{id}
</if>
</where>
</select>
<delete id="deleteSubjectByQuestionInfoId">
delete
from question_subject
where question_info_id = #{questionInfoId}
</delete>
<select id="selectQuestionnaireByQuestionnaireId"
resultType="com.xinelu.manage.vo.statistics.QuestionnaireTaskStatisticsVo">
select qs.question_info_id,
qs.id questionSubjectId,
qs.question_number,
qs.question_type,
qs.question_name,
qso.id questionSubjectOptionId,
qso.option_name,
qso.option_sort
from question_subject qs
LEFT JOIN question_subject_option qso ON qso.questionnaire_subject_id = qs.id
where qs.question_info_id = #{questionnaireId}
order by qs.question_number ASC, qso.id ASC
</select>
</mapper>