智慧保安后台管理-外网-验收版本
tangzy
2021-12-06 cc057177b2fb17aee9a173a6adbabdc578fd74c7
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml
@@ -5,33 +5,31 @@
    <!--考试成绩分页信息-正式考试-->
    <select id="selectExamScorePage" 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,
            bu.real_name securityName,company,bu.account,
            sa.is_exam isExam,
            bd.dept_name companyName
        FROM
        sys_apply sa
        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
        sa.user_id = bu.id
        es.user_id = bu.id
        left join
        blade_dept bd
        on
        bd.id = bu.dept_id
        left join
        ksxt_exam ke
        sys_apply sa
        on
        ke.id = sa.exam_id
        left join
        exam_score es
        on
        es.exam_id = sa.exam_id
        sa.id = es.apply_id
        where
        1=1
        and (sa.is_exam = 2 or sa.is_exam = 3)
        and ke.exam_type = 1
        <if test="examScore.examName!=null and  examScore.examName!=''">
            and ke.exam_name like concat('%', #{examScore.examName},'%')
@@ -42,8 +40,14 @@
        <if test="examScore.securityName!=null and  examScore.securityName!=''">
            and bu.real_name like concat('%', #{examScore.securityName},'%')
        </if>
        <if test="examScore.account!=null and  examScore.account!=''">
            and bu.account like concat('%', #{examScore.account},'%')
        </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 sa.is_exam = #{examScore.isExam}
@@ -66,28 +70,27 @@
            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,
            bu.real_name securityName,company,bu.account,
            str.is_exam isExam,
            bd.dept_name companyName
        FROM
        sys_training_registration str
            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
        str.user_id = bu.id
        es.user_id = bu.id
        left join
        blade_dept bd
        on
        bd.id = bu.dept_id
        left join
        ksxt_exam ke
        sys_training_registration str
        on
        ke.id = str.train_exam_id
        left join
        exam_score es
        on
        es.exam_id = str.train_exam_id
        WHERE
        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!=''">
@@ -99,8 +102,17 @@
        <if test="examScore.securityName!=null and  examScore.securityName!=''">
            and bu.real_name like concat('%', #{examScore.securityName},'%')
        </if>
        <if test="examScore.account!=null and  examScore.account!=''">
            and bu.account like concat('%', #{examScore.account},'%')
        </if>
        <if test="examScore.trainUnitId!=null">
            and str.training_unit_id = #{examScore.trainUnitId}
        </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}
@@ -133,21 +145,112 @@
    <!--考试成绩详情信息-->
<!--    <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 exam-->
<!--       LEFT JOIN blade_user user ON exam.user_id = user.id-->
<!--        WHERE 1 = 1-->
<!--        <if test="jurisdiction!=null and jurisdiction=='' and jurisdiction!='1372091709474910209'">-->
<!--             AND user.jurisdiction = #{jurisdiction}-->
<!--        </if>-->
<!--        <if test="deptid!=null and deptid==''">-->
<!--            AND user.dept_id = #{deptid}-->
<!--        </if>-->
<!--        ) 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 exam-->
<!--        LEFT JOIN blade_user user ON exam.user_id = user.id-->
<!--        WHERE 1 = 1-->
<!--        <if test="jurisdiction!=null and jurisdiction=='' and jurisdiction!='1372091709474910209'">-->
<!--            AND user.jurisdiction = #{jurisdiction}-->
<!--        </if>-->
<!--        <if test="deptid!=null and deptid==''">-->
<!--            AND user.dept_id = #{deptid}-->
<!--        </if>-->
<!--        ) b-->
<!--    </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'
        SELECT
        theory_grade as fs,
        COUNT( * ) AS count
        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'
        exam_score exam
        LEFT JOIN blade_user user ON exam.user_id = user.id
        WHERE 1 = 1 AND theory_grade is not null
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            AND user.jurisdiction = #{jurisdiction}
        </if>
        <if test="deptid!=null and deptid!=''">
            AND user.dept_id = #{deptid}
        </if>
        GROUP BY
        exam.theory_grade
    </select>
    <!--考试成绩详情信息 实操-->
    <select id="scoreStatisticssc" resultType="java.util.HashMap">
        SELECT
        learn_grade as fs,
        COUNT( * ) AS count
        FROM
        exam_score) b
        exam_score exam
        LEFT JOIN blade_user user ON exam.user_id = user.id
        WHERE 1 = 1 AND learn_grade is not null
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            AND user.jurisdiction = #{jurisdiction}
        </if>
        <if test="deptid!=null and deptid!=''">
            AND user.dept_id = #{deptid}
        </if>
        GROUP BY
        exam.learn_grade
    </select>
    <select id="scorePage"  resultType="org.springblade.modules.exam.vo.ExamScoreVO">
        SELECT
            exam.*,
            user.jurisdiction,
            user.dept_id,
            user.real_name realName,
            ke.exam_name examName
        FROM
            exam_score exam
        LEFT JOIN blade_user user
        ON exam.user_id = user.id
        left join
        ksxt_exam ke
        on
        ke.id = exam.exam_id
        left join
        sys_information si
        on
        user.dept_id = si.departmentid
        left join
        sys_jurisdiction sj
        on
        sj.id = si.jurisdiction
        WHERE
        1 = 1
        <if test="realName!=null and realName!=''">
            AND user.real_name = #{realName}
        </if>
        <if test="jurisdiction!=null and jurisdiction!='' and jurisdiction!='1372091709474910209'">
            AND (sj.id = #{jurisdiction} or sj.parent_id = #{jurisdiction})
        </if>
        <if test="deptid!=null and deptid!=''">
            AND user.dept_id = #{deptid}
        </if>
    </select>
    <!--根据用户身份证号查询考试成绩-->
@@ -164,4 +267,19 @@
            bu.cardid = #{idCardNo}
            and es.exam_id = #{examId}
    </select>
    <!--修改成绩信息-->
    <update id="updateByIdAndQualifiee">
        update exam_score set qualified = #{examScore.qualified} where id = #{examScore.id}
    </update>
    <!--考试合格人数对比-->
    <select id="scoreStat" resultType="java.lang.Object">
        select count(*) from exam_score where 1=1
        union all
        (select count(*) from exam_score where qualified =0)
        union all
        (select count(*) from exam_score where qualified !=0)
    </select>
</mapper>