From cc057177b2fb17aee9a173a6adbabdc578fd74c7 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Mon, 06 Dec 2021 10:30:44 +0800
Subject: [PATCH] 1.许可

---
 src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml |  272 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 257 insertions(+), 15 deletions(-)

diff --git a/src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml b/src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml
index b957086..f0acf06 100644
--- a/src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml
+++ b/src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml
@@ -2,34 +2,136 @@
 <!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 ke.exam_type = 1
         <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.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}
+        </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.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}
+        </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 +142,144 @@
             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 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
+        theory_grade as fs,
+        COUNT( * ) AS count
+        FROM
+        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 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>
+
+    <!--根据用户身份证号查询考试成绩-->
+    <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>
+
+    <!--修改成绩信息-->
+    <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>

--
Gitblit v1.9.3