|  |  |  | <?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.epmet.dao.stats.DimAgencyDao"> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <insert id="insertOne"> | 
					
						
							|  |  |  |         INSERT INTO dim_agency(id, agency_name, customer_id, pid, pids, all_parent_name, level, del_flag, revision, created_by, | 
					
						
							|  |  |  |                            created_time, updated_by, updated_time) | 
					
						
							|  |  |  |         VALUE (#{id}, #{agencyName}, #{customerId}, #{pid}, #{pids}, #{allParentName}, #{level}, #{delFlag}, #{revision}, #{createdBy}, #{createdTime}, #{updatedBy}, #{updatedTime}) | 
					
						
							|  |  |  |     </insert> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <select id="selectDimAgencyList" resultType="com.epmet.dto.stats.DimAgencyDTO"> | 
					
						
							|  |  |  |         SELECT | 
					
						
							|  |  |  |             id, | 
					
						
							|  |  |  |             agency_name, | 
					
						
							|  |  |  |             customer_id, | 
					
						
							|  |  |  |             pid, | 
					
						
							|  |  |  |             pids, | 
					
						
							|  |  |  |             all_parent_name, | 
					
						
							|  |  |  |             `level` | 
					
						
							|  |  |  |         FROM | 
					
						
							|  |  |  |             dim_agency | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             del_flag = '0' | 
					
						
							|  |  |  |         <if test="customerId != null and customerId.trim() != ''"> | 
					
						
							|  |  |  |             AND customer_id = #{customerId} | 
					
						
							|  |  |  |         </if> | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <resultMap id="treeMap" type="com.epmet.dto.AgencySubTreeDto"> | 
					
						
							|  |  |  |         <id column="agencyId" property="agencyId" /> | 
					
						
							|  |  |  |         <result column="agencyName" property="agencyName"/> | 
					
						
							|  |  |  |         <result column="customer_Id" property="customerId" /> | 
					
						
							|  |  |  |         <result column="PID" property="pid" /> | 
					
						
							|  |  |  |         <result column="LEVEL" property="level" /> | 
					
						
							|  |  |  |         <collection property="gridIds" ofType="java.lang.String"> | 
					
						
							|  |  |  |             <constructor> | 
					
						
							|  |  |  |                 <arg column="gridId"/> | 
					
						
							|  |  |  |             </constructor> | 
					
						
							|  |  |  |         </collection> | 
					
						
							|  |  |  |         <collection property="subAgencies" column="agencyId" | 
					
						
							|  |  |  |                     ofType="com.epmet.dto.AgencySubTreeDto" select="selectSubAgencyByPid"></collection> | 
					
						
							|  |  |  |     </resultMap> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <!-- 获取所有机关 递归入口 --> | 
					
						
							|  |  |  |     <select id="selectAllAgency" resultMap="treeMap"> | 
					
						
							|  |  |  |         SELECT | 
					
						
							|  |  |  |             agency.ID AS agencyId, | 
					
						
							|  |  |  |             agency.AGENCY_NAME AS agencyName, | 
					
						
							|  |  |  |             grid.ID AS gridId, | 
					
						
							|  |  |  |             agency.CUSTOMER_ID, | 
					
						
							|  |  |  |             agency.PID, | 
					
						
							|  |  |  |             agency.LEVEL | 
					
						
							|  |  |  |         FROM | 
					
						
							|  |  |  |             dim_agency agency | 
					
						
							|  |  |  |             LEFT JOIN dim_grid grid ON agency.ID = grid.AGENCY_ID | 
					
						
							|  |  |  |             AND grid.DEL_FLAG = '0' | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             agency.DEL_FLAG = '0' | 
					
						
							|  |  |  |         ORDER BY | 
					
						
							|  |  |  |             agency.CUSTOMER_ID, | 
					
						
							|  |  |  |             agency.PID | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <!-- 根据PID获取下级机关 递归传递 --> | 
					
						
							|  |  |  |     <select id="selectSubAgencyByPid" resultMap="treeMap" parameterType="string"> | 
					
						
							|  |  |  |         SELECT | 
					
						
							|  |  |  |             agency.id AS agencyId, | 
					
						
							|  |  |  |             agency.AGENCY_NAME AS agencyName,-- agency.PID,agency.PIDS , | 
					
						
							|  |  |  |             grid.ID AS gridId, -- ,GRID_NAME | 
					
						
							|  |  |  |             agency.CUSTOMER_ID, | 
					
						
							|  |  |  |             agency.PID, | 
					
						
							|  |  |  |             agency.LEVEL | 
					
						
							|  |  |  |         FROM | 
					
						
							|  |  |  |             dim_agency agency | 
					
						
							|  |  |  |             LEFT JOIN dim_grid grid ON agency.ID = grid.AGENCY_ID | 
					
						
							|  |  |  |             AND grid.DEL_FLAG = '0' | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             agency.DEL_FLAG = '0' | 
					
						
							|  |  |  |             AND agency.PID = #{pid} | 
					
						
							|  |  |  |         ORDER BY | 
					
						
							|  |  |  |             agency.CUSTOMER_ID, | 
					
						
							|  |  |  |             agency.ID, | 
					
						
							|  |  |  |             grid.ID | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <!-- 获取顶级机关 递归入口 --> | 
					
						
							|  |  |  |     <select id="selectTopAgency" resultMap="treeMap"> | 
					
						
							|  |  |  |         SELECT | 
					
						
							|  |  |  |             agency.ID AS agencyId, | 
					
						
							|  |  |  |             agency.AGENCY_NAME AS agencyName, | 
					
						
							|  |  |  |             grid.ID AS gridId, | 
					
						
							|  |  |  |             agency.CUSTOMER_ID, | 
					
						
							|  |  |  |             agency.PID, | 
					
						
							|  |  |  |             agency.LEVEL | 
					
						
							|  |  |  |         FROM | 
					
						
							|  |  |  |             dim_agency agency | 
					
						
							|  |  |  |             LEFT JOIN dim_grid grid ON agency.ID = grid.AGENCY_ID | 
					
						
							|  |  |  |             AND grid.DEL_FLAG = '0' | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             agency.DEL_FLAG = '0' | 
					
						
							|  |  |  |         AND | 
					
						
							|  |  |  |             agency.PID = '0' | 
					
						
							|  |  |  |         ORDER BY | 
					
						
							|  |  |  |             agency.CUSTOMER_ID, | 
					
						
							|  |  |  |             agency.PID | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  |     <select id="getAgencyListByCustomerId" resultType="com.epmet.entity.stats.DimAgencyEntity"> | 
					
						
							|  |  |  |           SELECT | 
					
						
							|  |  |  |             ID, | 
					
						
							|  |  |  |             CUSTOMER_ID, | 
					
						
							|  |  |  |             PID, | 
					
						
							|  |  |  |             LEVEL | 
					
						
							|  |  |  |         FROM | 
					
						
							|  |  |  |             dim_agency | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             DEL_FLAG = '0' | 
					
						
							|  |  |  |             AND CUSTOMER_ID = #{customerId,jdbcType=VARCHAR} | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <resultMap id="treeMapWithDept" type="com.epmet.dto.AgencySubDeptTreeDto"> | 
					
						
							|  |  |  |         <id column="agencyId" property="agencyId" /> | 
					
						
							|  |  |  |         <result column="agencyName" property="agencyName"/> | 
					
						
							|  |  |  |         <result column="customer_Id" property="customerId" /> | 
					
						
							|  |  |  |         <result column="PID" property="pid" /> | 
					
						
							|  |  |  |         <result column="LEVEL" property="level" /> | 
					
						
							|  |  |  |         <collection property="gridIds" ofType="java.lang.String"> | 
					
						
							|  |  |  |             <constructor> | 
					
						
							|  |  |  |                 <arg column="gridId"/> | 
					
						
							|  |  |  |             </constructor> | 
					
						
							|  |  |  |         </collection> | 
					
						
							|  |  |  |         <collection property="deptIds" ofType="java.lang.String"> | 
					
						
							|  |  |  |             <constructor> | 
					
						
							|  |  |  |                 <arg column="deptId"/> | 
					
						
							|  |  |  |             </constructor> | 
					
						
							|  |  |  |         </collection> | 
					
						
							|  |  |  |         <collection property="subAgencies" column="agencyId" | 
					
						
							|  |  |  |                     ofType="com.epmet.dto.AgencySubDeptTreeDto" select="selectSubAgencyWithDeptByPid"></collection> | 
					
						
							|  |  |  |     </resultMap> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <!-- 带部门 获取所有机关 递归入口 --> | 
					
						
							|  |  |  |     <select id="selectAllAgencyWithDept" resultMap="treeMapWithDept"> | 
					
						
							|  |  |  |         SELECT | 
					
						
							|  |  |  |             agency.ID AS agencyId, | 
					
						
							|  |  |  |             agency.AGENCY_NAME AS agencyName, | 
					
						
							|  |  |  |             grid.ID AS gridId, | 
					
						
							|  |  |  |             agency.CUSTOMER_ID, | 
					
						
							|  |  |  |             agency.PID, | 
					
						
							|  |  |  |             agency.LEVEL, | 
					
						
							|  |  |  | 			dept.ID AS deptId | 
					
						
							|  |  |  |         FROM | 
					
						
							|  |  |  |             dim_agency agency | 
					
						
							|  |  |  |             LEFT JOIN dim_grid grid ON agency.ID = grid.AGENCY_ID | 
					
						
							|  |  |  |             AND grid.DEL_FLAG = '0' | 
					
						
							|  |  |  | 			LEFT JOIN dim_department dept ON agency.ID = dept.AGENCY_ID | 
					
						
							|  |  |  | 			AND dept.DEL_FLAG = '0' | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             agency.DEL_FLAG = '0' | 
					
						
							|  |  |  |         ORDER BY | 
					
						
							|  |  |  |             agency.CUSTOMER_ID, | 
					
						
							|  |  |  |             agency.PID | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <!-- 带部门 根据PID获取下级机关 递归传递 --> | 
					
						
							|  |  |  |     <select id="selectSubAgencyWithDeptByPid" resultMap="treeMapWithDept" parameterType="string"> | 
					
						
							|  |  |  |         SELECT | 
					
						
							|  |  |  |             agency.id AS agencyId, | 
					
						
							|  |  |  |             agency.AGENCY_NAME AS agencyName,-- agency.PID,agency.PIDS , | 
					
						
							|  |  |  |             grid.ID AS gridId, -- ,GRID_NAME | 
					
						
							|  |  |  |             agency.CUSTOMER_ID, | 
					
						
							|  |  |  |             agency.PID, | 
					
						
							|  |  |  |             agency.LEVEL, | 
					
						
							|  |  |  | 			dept.ID AS deptId | 
					
						
							|  |  |  |         FROM | 
					
						
							|  |  |  |             dim_agency agency | 
					
						
							|  |  |  |             LEFT JOIN dim_grid grid ON agency.ID = grid.AGENCY_ID | 
					
						
							|  |  |  |             AND grid.DEL_FLAG = '0' | 
					
						
							|  |  |  | 			LEFT JOIN dim_department dept ON agency.ID = dept.AGENCY_ID | 
					
						
							|  |  |  | 			AND dept.DEL_FLAG = '0' | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             agency.DEL_FLAG = '0' | 
					
						
							|  |  |  |             AND agency.PID = #{pid} | 
					
						
							|  |  |  |         ORDER BY | 
					
						
							|  |  |  |             agency.CUSTOMER_ID, | 
					
						
							|  |  |  |             agency.ID, | 
					
						
							|  |  |  |             grid.ID | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <!-- 带部门 获取顶级机关 递归入口 --> | 
					
						
							|  |  |  |     <select id="selectTopAgencyWithDept" resultMap="treeMapWithDept"> | 
					
						
							|  |  |  |         SELECT | 
					
						
							|  |  |  |             agency.ID AS agencyId, | 
					
						
							|  |  |  |             agency.AGENCY_NAME AS agencyName, | 
					
						
							|  |  |  |             grid.ID AS gridId, | 
					
						
							|  |  |  |             agency.CUSTOMER_ID, | 
					
						
							|  |  |  |             agency.PID, | 
					
						
							|  |  |  |             agency.LEVEL, | 
					
						
							|  |  |  | 			dept.ID AS deptId | 
					
						
							|  |  |  |         FROM | 
					
						
							|  |  |  |             dim_agency agency | 
					
						
							|  |  |  |             LEFT JOIN dim_grid grid ON agency.ID = grid.AGENCY_ID | 
					
						
							|  |  |  |             AND grid.DEL_FLAG = '0' | 
					
						
							|  |  |  | 			LEFT JOIN dim_department dept ON agency.ID = dept.AGENCY_ID | 
					
						
							|  |  |  | 			AND dept.DEL_FLAG = '0' | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             agency.DEL_FLAG = '0' | 
					
						
							|  |  |  |         AND | 
					
						
							|  |  |  |             agency.PID = '0' | 
					
						
							|  |  |  |         ORDER BY | 
					
						
							|  |  |  |             agency.CUSTOMER_ID, | 
					
						
							|  |  |  |             agency.PID | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <!-- 查询所有客户的机关数据 --> | 
					
						
							|  |  |  |     <select id="selectDimAgencyByCustomerId" resultType="com.epmet.dto.stats.DimAgencyDTO"> | 
					
						
							|  |  |  |         SELECT | 
					
						
							|  |  |  |             id AS id, | 
					
						
							|  |  |  |             customer_id AS customerId, | 
					
						
							|  |  |  |             level AS level, | 
					
						
							|  |  |  |             pid AS pid, | 
					
						
							|  |  |  |             pids AS pids | 
					
						
							|  |  |  |         FROM | 
					
						
							|  |  |  |             dim_agency | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             del_flag = '0' | 
					
						
							|  |  |  |             AND customer_id = #{customerId} | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <select id="getPidByAgencyId" resultType="java.lang.String" parameterType="java.lang.String"> | 
					
						
							|  |  |  |         SELECT | 
					
						
							|  |  |  |             pid | 
					
						
							|  |  |  |         FROM | 
					
						
							|  |  |  |             dim_agency | 
					
						
							|  |  |  |         WHERE | 
					
						
							|  |  |  |             del_flag = '0' | 
					
						
							|  |  |  |             AND id = #{agencyId} | 
					
						
							|  |  |  |     </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | </mapper> |