OaProjectAndBoMapper.xml 5.07 KB
Newer Older
nie'hong's avatar
nie'hong 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
<?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="cn.wisenergy.oaMapper.ProjectAndBoMapper">
    <resultMap id="Project_Map" type="cn.wisenergy.oaModel.OaProject">
        <id column="project_no" property="no"/>
        <result property="name" column="project_name"/>
        <result property="managerNo" column="pm_no"/>
        <result property="bo" column="bo_no"/>
        <result property="bName" column="bo_name"/>
        <result property="managerName" column="manager_name"/>
        <result property="deptNo" column="project_depart_no"/>
        <result property="deptName" column="project_depart_name"/>
        <result property="cost" column="cost"/>
        <result property="startDate" column="start_date"/>
        <result property="endDate" column="end_date"/>
    </resultMap>

    <resultMap id="Bo_Map" type="cn.wisenergy.oaModel.OaProject">
        <id column="project_no" property="no"/>
        <result property="name" column="project_name"/>
        <result property="managerNo" column="pm_no"/>
        <result property="managerName" column="manager_name"/>
        <result property="deptNo" column="project_depart_no"/>
        <result property="deptName" column="project_depart_name"/>
        <result property="cost" column="cost"/>
        <result property="startDate" column="start_date"/>
        <result property="endDate" column="end_date"/>
28
        <result property="bo" column="bo_no"/>
nie'hong's avatar
nie'hong committed
29 30 31
    </resultMap>

    <sql id="values_project">
nie'hong's avatar
nie'hong committed
32 33
        project_no, project_name ,pm_no ,bo_no ,
        project_depart_no ,cost,start_date ,end_date
nie'hong's avatar
nie'hong committed
34 35 36
    </sql>

    <sql id="values_bo">
nie'hong's avatar
nie'hong committed
37
        bo, bo_name,pm_no,manager_name,project_depart_no,project_depart_nam
nie'hong's avatar
nie'hong committed
38 39 40
    </sql>

    <select id="getListOaProjectByDept" resultMap="Project_Map">
41
    select p.project_no, p.project_name, p.pm_no, p.project_depart_no, p.cost, p.start_date, p.end_date, p.bo_no, b.bo_name
nie'hong's avatar
nie'hong committed
42
    from v_project_base p left join v_bo_base b on p.bo_no = b.bo_no
nie'hong's avatar
nie'hong committed
43 44 45 46
    <where>
          <if test="oaDeptNo != null">
              p.project_depart_no = #{oaDeptNo}
          </if>
nie'hong's avatar
nie'hong committed
47
          AND (p.project_no like CONCAT("%" ,#{projectNameOrNo},"%") OR p.project_name like CONCAT("%" ,#{projectNameOrNo},"%"))
nie'hong's avatar
nie'hong committed
48
          <if test="oaProjectIds != null">
nie'hong's avatar
nie'hong committed
49 50 51 52 53
              AND p.project_no not in
              <foreach collection="oaProjectIds" item="oaProject" open="(" close=")"  separator=",">
                  #{oaProject}
              </foreach>
          </if>
nie'hong's avatar
nie'hong committed
54
    </where>
nie'hong's avatar
nie'hong committed
55 56 57 58
    </select>

    <select id="getListOaBoByDept" resultMap="Bo_Map">
        select b.bo_no AS project_no, b.bo_name AS project_name, b.pm_no, b.pm_name, b.project_depart_no, b.project_depart_name
nie'hong's avatar
nie'hong committed
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
        from  v_bo_base b
        <where>
                <if test="oaDeptNo != null">
                    (pm_no IN (
                    SELECT
                    m. CODE
                    FROM
                    v_org_member m
                    JOIN v_org_unit u ON u.ID = m.ORG_DEPARTMENT_ID
                    WHERE
                    u. CODE = #{oaDeptNo}
                    )
                    OR
                    EXISTS (SELECT
                    p.bo_no
                    FROM
                    v_project_base p
                    left JOIN v_org_member m ON p.pm_no = m.`CODE`
                    left JOIN v_org_unit u ON m.ORG_DEPARTMENT_ID = u.ID
                    WHERE
                    u. CODE = #{oaDeptNo}
                    ))
                </if>
nie'hong's avatar
nie'hong committed
82
                AND (b.bo_no like CONCAT("%" ,#{projectNameOrNo},"%") OR b.bo_name like CONCAT("%" ,#{projectNameOrNo},"%"))
nie'hong's avatar
nie'hong committed
83 84 85 86 87
                <if test="oaProjectIds != null">
                    AND b.bo_no not in
                      <foreach collection="oaProjectIds" item="oaProject" open="(" close=")" separator=",">
                        #{oaProject}
                      </foreach>
nie'hong's avatar
nie'hong committed
88
                </if>
nie'hong's avatar
nie'hong committed
89
        </where>
nie'hong's avatar
nie'hong committed
90 91 92 93 94 95
    </select>


    <select id="getProjectByNameAndNo" resultMap="Project_Map">
    select  <include refid="values_project"/>
    from v_project_base
96
    where  project_no = #{projectNo} AND replace(replace(project_name,char(9),''),' ','') =  replace(replace(#{projectName},char(9),''),' ','')
nie'hong's avatar
nie'hong committed
97
    </select>
nie'hong's avatar
nie'hong committed
98

nie'hong's avatar
nie'hong committed
99
    <select id="getBoByNameAndNo" resultMap="Bo_Map">
100
        select  bo_no AS project_no,bo_name AS project_name,pm_no,project_depart_no,project_depart_name
nie'hong's avatar
nie'hong committed
101
        from  v_bo_base
102 103 104 105
        where bo_no = #{projectNo}
        <if test="projectName != null">
        AND replace(replace(bo_name,char(9),''),' ','') =  replace(replace(#{projectName},char(9),''),' ','')
        </if>
nie'hong's avatar
nie'hong committed
106 107 108
    </select>


109 110 111 112 113 114 115 116 117 118 119 120 121

    <select id="getProjectByNo" resultMap="Bo_Map">
    select p.project_no, p.project_name, p.pm_no, p.project_depart_no, p.cost, p.start_date, p.end_date, p.bo_no
    from v_project_base p
    where project_no = #{projectNo}
    </select>

    <select id="getBoByNo" resultMap="Project_Map">
        select bo_no AS project_no,bo_name AS project_name,pm_no,project_depart_no,project_depart_name
        from  v_bo_base
        where bo_no = #{projectNo}
    </select>

nie'hong's avatar
nie'hong committed
122
</mapper>