智慧保安后台管理-外网项目备份
钟日健
2026-06-01 62eb499b0c969f246d3245d1429a97da4de1ce28
src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml
@@ -72,6 +72,7 @@
            ke.exam_name examName,date_format(ke.start_time,'%Y-%m-%d') startTime,date_format(ke.end_time,'%Y-%m-%d %H:%i:%s') endTime,
            str.is_exam isExam,
            bu.real_name securityName,company,bu.account,bu.sex,bu.paper_time paperTime,bu.securitynumber securityNumber,bu.avatar,
            ifnull(TIMESTAMPDIFF(YEAR, SUBSTRING(bu.cardid, 7, 8), CURDATE()),0) AS age,
            bd.dept_name companyName,bu.user_type isPaper,bud.unit_name unitName
        from
            exam_score es
@@ -524,6 +525,106 @@
        ORDER BY
            id
    </select>
    <select id="getList" resultType="org.springblade.modules.exam.vo.ExamScoreVO">
    SELECT * FROM (
        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,es.candidate_no candidateNo,
        ke.exam_name examName,date_format(ke.start_time,'%Y-%m-%d') startTime,date_format(ke.end_time,'%Y-%m-%d %H:%i:%s') endTime,
        str.is_exam isExam,
        bu.real_name securityName,company,bu.account,bu.sex,bu.paper_time paperTime,bu.securitynumber securityNumber,bu.avatar,
        bd.dept_name companyName,bd.id as deptId,bu.user_type isPaper,bud.unit_name unitName,
        CASE WHEN ssir.id IS NULL THEN
        '未签到' ELSE '已签到'
        END AS state
        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_user_detail bud on bud.user_id = bu.id
        left join blade_dept bd on bd.id = bu.dept_id
        left join sys_information si on si.departmentid = bd.id
        left join sys_jurisdiction sj on sj.id = si.jurisdiction
        left join sys_training_registration str on str.id = es.apply_id
        LEFT JOIN sys_sign_in_records ssir ON ssir.candidate_no = str.candidate_no
        where 1=1 and es.is_deleted = 0
        and (str.is_exam = 2 or str.is_exam = 3 or str.is_exam = 4 or str.is_exam = 5)
        <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.unitName!=null and  examScore.unitName!=''">
            and bud.unit_name like concat('%', #{examScore.unitName},'%')
        </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.jurisdiction!=null and examScore.jurisdiction!='' and examScore.jurisdiction!='1372091709474910209'">
            and (sj.id=#{examScore.jurisdiction} or sj.parent_id = #{examScore.jurisdiction})
        </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.examId!=null">
            and es.exam_id = #{examScore.examId}
        </if>
        <if test="examScore.isPaper==6">
            and bu.user_type = #{examScore.isPaper}
        </if>
        <if test="examScore.isPaper==7">
            and (bu.user_type = #{examScore.isPaper} or bu.user_type is null)
        </if>
        <if test="examScore.isAvatar==1">
            and bu.avatar is not null and bu.avatar!=""
        </if>
        <if test="examScore.isAvatar==2">
            and (bu.avatar is null or bu.avatar="")
        </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>
        <if test="examScore.examDate!=null  and examScore.examDate!=''">
            and date_format(ke.start_time,'%Y-%m-%d') = #{examScore.examDate}
        </if>
        <if test="examScore.sortName!=null and examScore.sortName!='' and examScore.sortName!='companyName'">
            ORDER BY es.${examScore.sortName} ${examScore.sort},es.id desc
        </if>
        <if test="examScore.sortName=='companyName'">
            ORDER BY bd.dept_name ${examScore.sort},es.id desc
        </if>
        <if test="examScore.sortName==null or examScore.sortName==''">
            order by es.id desc
        </if>
        ) result WHERE 1=1
        <if test="examScore.state != null and examScore.state !='' ">
            AND result.state = #{examScore.state}
        </if>
    </select>
</mapper>