tangzy
2021-08-27 733edfcd6ad1c38dcf4aa761a417f4e4bfd754b2
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml
@@ -2,34 +2,127 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.exam.mapper.ExamScoreMapper">
    <!--考试成绩分页信息-->
    <!--考试成绩分页信息-正式考试-->
    <select id="selectExamScorePage" resultType="org.springblade.modules.exam.vo.ExamScoreVO">
        SELECT
         id,candidate_no candidateNo,theory_grade theoryGrade,isnull(learn_grade,-1) learnGrade,all_grade,
         exam_name examName,security_name securityName,exam_type examType,company,exam_time examTime,
         all_score allScore,exam_end_time examEndTime,qualified
        FROM
            exam_score
        WHERE
            1=1
        es.id,es.theory_grade theoryGrade,ifnull(learn_grade,-1) learnGrade,es.user_id userId,es.exam_id examId,
        es.exam_time examTime,all_grade allGrade,exam_end_time examEndTime,qualified,
        ke.exam_name examName,
        sa.is_exam isExam,
        bu.real_name securityName,company,bu.account,
        bd.dept_name companyName from
        exam_score es
        left join
        ksxt_exam ke
        on
        ke.id = es.exam_id
        left join
        blade_user bu
        on
        es.user_id = bu.id
        left join
        blade_dept bd
        on
        bd.id = bu.dept_id
        left join
        sys_apply sa
        on
        sa.id = es.apply_id
        where
        1=1
        and (sa.is_exam = 2 or sa.is_exam = 3)
        <if test="examScore.examName!=null and  examScore.examName!=''">
            and exam_name like concat('%', #{examScore.examName},'%')
            and ke.exam_name like concat('%', #{examScore.examName},'%')
        </if>
        <if test="examScore.company!=null and  examScore.company!=''">
            and company like concat('%', #{examScore.company},'%')
        <if test="examScore.companyName!=null and  examScore.companyName!=''">
            and bd.dept_name like concat('%', #{examScore.companyName},'%')
        </if>
        <if test="examScore.securityName!=null and  examScore.securityName!=''">
            and security_name like concat('%', #{examScore.securityName},'%')
            and bu.real_name like concat('%', #{examScore.securityName},'%')
        </if>
        <if test="examScore.examType!=null">
            and exam_type = #{examScore.examType}
        <if test="examScore.userId!=null and  examScore.userId!=''">
            and es.user_id = #{examScore.userId}
        </if>
        <if test="examScore.deptId!=null and  examScore.deptId!=''">
            and bd.id = #{examScore.deptId}
        </if>
        <if test="examScore.isExam!=null and  examScore.isExam!=''">
            and sa.is_exam = #{examScore.isExam}
        </if>
        <if test="examScore.examType!=null and  examScore.examType!=''">
            and ke.exam_type = #{examScore.examType}
        </if>
        <if test="examScore.candidateNo!=null and  examScore.candidateNo!=''">
            and es.candidate_no = #{examScore.candidateNo}
        </if>
        <if test="examScore.qualified!=null">
            and es.qualified = #{examScore.qualified}
        </if>
    </select>
    <!--考试成绩分页信息-模拟考试-->
    <select id="selectTrainExamScorePage" resultType="org.springblade.modules.exam.vo.ExamScoreVO">
        SELECT
            es.id,es.theory_grade theoryGrade,ifnull(learn_grade,-1) learnGrade,es.user_id userId,es.exam_id examId,
            es.exam_time examTime,all_grade allGrade,exam_end_time examEndTime,qualified,
            ke.exam_name examName,
            str.is_exam isExam,
            bu.real_name securityName,company,bu.account,
            bd.dept_name companyName from
            exam_score es
        left join
        ksxt_exam ke
        on
        ke.id = es.exam_id
        left join
        blade_user bu
        on
        es.user_id = bu.id
        left join
        blade_dept bd
        on
        bd.id = bu.dept_id
        left join
        sys_training_registration str
        on
        str.id = es.apply_id
        where
        1=1
        and (str.is_exam = 2 or str.is_exam = 3)
        <if test="examScore.examName!=null and  examScore.examName!=''">
            and ke.exam_name like concat('%', #{examScore.examName},'%')
        </if>
        <if test="examScore.companyName!=null and  examScore.companyName!=''">
            and bd.dept_name like concat('%', #{examScore.companyName},'%')
        </if>
        <if test="examScore.securityName!=null and  examScore.securityName!=''">
            and bu.real_name like concat('%', #{examScore.securityName},'%')
        </if>
        <if test="examScore.userId!=null and  examScore.userId!=''">
            and es.user_id = #{examScore.userId}
        </if>
        <if test="examScore.deptId!=null and  examScore.deptId!=''">
            and bd.id = #{examScore.deptId}
        </if>
        <if test="examScore.isExam!=null and  examScore.isExam!=''">
            and str.is_exam = #{examScore.isExam}
        </if>
        <if test="examScore.examType!=null and  examScore.examType!=''">
            and ke.exam_type = #{examScore.examType}
        </if>
        <if test="examScore.candidateNo!=null and  examScore.candidateNo!=''">
            and es.candidate_no = #{examScore.candidateNo}
        </if>
        <if test="examScore.qualified!=null">
            and es.qualified = #{examScore.qualified}
        </if>
    </select>
    <!--考试成绩详情信息-->
    <select id="selectExamScoreInfo" resultType="org.springblade.modules.exam.vo.ExamScoreVO">
        SELECT
            id,candidate_no candidateNo,theory_grade theoryGrade,isnull(learn_grade,-1) learnGrade,all_grade,
            id,candidate_no candidateNo,theory_grade theoryGrade,ifnull(learn_grade,-1) learnGrade,all_grade,
            exam_name examName,security_name securityName,exam_type examType,company,exam_time examTime,
            all_score allScore,exam_end_time examEndTime,qualified
        FROM
@@ -40,4 +133,38 @@
            and id = #{examScore.id}
        </if>
    </select>
    <!--考试成绩详情信息-->
    <select id="scoreStatistics" resultType="java.util.HashMap">
        SELECT * FROM(SELECT
        COUNT( CASE WHEN theory_grade &lt; 60 THEN 1 END ) AS 'bhg',
        COUNT( CASE WHEN theory_grade >= 60 AND theory_grade &lt; 80 THEN 1 END ) AS 'hg',
        COUNT( CASE WHEN theory_grade >= 80 AND theory_grade &lt; 90 THEN 1 END ) AS 'lh',
        COUNT( CASE WHEN theory_grade >= 90 THEN 1 END ) AS 'yx'
        FROM
        exam_score) a UNION ALL
        SELECT * FROM( SELECT
        COUNT( CASE WHEN learn_grade &lt; 60 THEN 1 END ) AS 'bhg',
        COUNT( CASE WHEN learn_grade >= 60 AND learn_grade &lt; 80 THEN 1 END ) AS 'hg',
        COUNT( CASE WHEN learn_grade >= 80 AND learn_grade &lt; 90 THEN 1 END ) AS 'lh',
        COUNT( CASE WHEN learn_grade >= 90 THEN 1 END ) AS 'yx'
        FROM
        exam_score) b
    </select>
    <!--根据用户身份证号查询考试成绩-->
    <select id="getExamScoreInfoByIdCardNo" resultType="org.springblade.modules.exam.entity.ExamScore">
        select
            es.*
        from
            exam_score es
        left join
            blade_user bu
        on
            bu.id = es.user_id
        where
            bu.cardid = #{idCardNo}
            and es.exam_id = #{examId}
    </select>
</mapper>