TTrainMyManagement.xml 5.34 KB
Newer Older
Rensq's avatar
Rensq committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
<?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.testor.module.train.myManagement.dao.TTrainMyManagementDao">
    <!-- 开启二级缓存 -->
    <!-- <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/> -->
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.testor.module.train.myManagement.model.domain.TTrainMyManagement">
        <id column="id" property="id"/>
        <id column="parent_id" property="parentId"/>
        <id column="person_id" property="personId"/>
        <id column="task_id" property="taskId"/>
        <id column="task_type" property="taskType"/>
        <id column="person_affiliation" property="personAffiliation"/>
        <id column="org_name" property="orgName"/>
        <id column="dept_name" property="deptName"/>
        <id column="person_name_id" property="personNameId"/>
        <id column="person_name" property="personName"/>
        <id column="sex" property="sex"/>
        <id column="percentage" property="percentage"/>
        <id column="tenant_id" property="tenantId"/>
        <id column="process_id" property="processId"/>
        <id column="process_status" property="processStatus"/>
    </resultMap>

    <select id="staffTrainCase" parameterType="com.testor.module.train.myManagement.model.dto.TTrainMyManagementParam"
            resultType="com.testor.module.train.myManagement.model.dto.TTrainMyManagementParam">
        select *
        from (select p.project_name
--         , p.visit_start_time
--         , p.visit_end_time
        , p.org_name
        , my.*
        from t_train_project p
        inner join t_train_my_management my
        on p.id = my.task_id
        where p.status = 0
        <if test="param.personName!=null and param.personName!=''">
            AND my.person_name LIKE CONCAT('%',#{param.personName},'%')
        </if>

        <if test="param.visitStartTime!=null and param.visitEndTime!=null">
            AND (p.visit_start_time >=#{param.visitStartTime}  and   #{param.visitEndTime} >=p.visit_end_time)
        </if>

        ) mm
        where mm.org_id in (select org.org_id
        from t_sys_org org
        where find_in_set(org.org_id, #{parentIds})
        or org.parent_ids like concat('%', #{orgId}, '%')
        or org.org_id = #{orgId})
    </select>

    <select id="getCourseDetail" parameterType="com.testor.module.train.course.model.dto.TTrainCourseParam"
            resultType="com.testor.module.train.course.model.dto.TTrainCourseParam">
        select ttl.course_id ,
        from t_train_course ttc
        join t_train_course_learn_statistics ttl
        on ttc.id = ttl.course_id
        where ttl.task_id = #{taskId} and ttl.person_id = #{userId} and ttl.course_id = #{id}

    </select>
    <select id="findStateCourseByUserId"
            resultType="com.testor.module.train.myManagement.model.dto.TrainMyManagementStatVo">
        SELECT
            m.id,
            m.person_id,
            u.login_name,
            m.tab_status,
            m.visit_start_time,
            m.visit_end_time,
            m.test_score,
            p.course_id
        FROM
            t_train_my_management m
                LEFT JOIN t_sys_user u on u.user_id = m.person_id
                LEFT JOIN t_train_project p ON m.task_id = p.id
        WHERE
            tab_status = 1
          AND p.status = 0
          AND u.login_name = #{loginName}


    </select>
    <select id="findStateExamByUserId"  resultType="com.testor.module.train.project.model.stat.TrainProjectUserStat" databaseId="mysql">
        SELECT
            COUNT( m.id ) AS examNum,
            ROUND(AVG(m.test_score), 1) AS examAvgScore
        FROM
            t_train_my_management m
                LEFT JOIN t_sys_user u ON u.user_id = m.person_id
        WHERE
            m.tab_status = 2
          AND m.is_add_exam = 1
          AND u.login_name =  #{loginName}
    </select>
    <select id="findStateExamByUserId"  resultType="com.testor.module.train.project.model.stat.TrainProjectUserStat" databaseId="kingbase">
        SELECT
            COUNT( m.id ) AS examNum,
            ROUND(AVG(CAST(m.test_score AS FLOAT)), 1) AS examAvgScore
        FROM
            t_train_my_management m
                LEFT JOIN t_sys_user u ON u.user_id = m.person_id
        WHERE
            m.tab_status = 2
          AND m.is_add_exam = 1
          AND u.login_name =  #{loginName}
    </select>



    <select id="findTrainListState"
            resultType="com.testor.module.train.project.model.stat.TrainProjectUserDetailStat">
        SELECT
            m.id,
            m.task_name,
            m.learn_way,
            m.person_id,
            se.user_type_code,
            o.org_name,
            m.org_id,
            m.tab_status,
            m.visit_start_time,
            m.visit_end_time,
            m.test_score,
            m.exam_duration,
            p.exam_site
        FROM
            t_train_my_management m
                LEFT JOIN t_train_project p ON p.id = m.task_id
                LEFT JOIN t_sys_org o ON m.org_id = o.org_id
                LEFT JOIN t_sys_user_extend se ON m.person_id = se.user_id
        WHERE
        (  m.STATUS != '1'  AND m.person_id = #{userId} AND m.tab_status = #{tabStatus} )
        ORDER BY
        m.update_date DESC,
        m.create_date DESC
    </select>
</mapper>