|  |  | 
 |  |  | <?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.dy.pipIrrGlobal.daoIr.IrProjectMapper"> | 
 |  |  |     <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoIr.IrProject"> | 
 |  |  |         <!--@mbg.generated--> | 
 |  |  |         <!--@Table ir_project--> | 
 |  |  |         <id column="id" jdbcType="BIGINT" property="id" /> | 
 |  |  |         <result column="project_name" jdbcType="VARCHAR" property="projectName" /> | 
 |  |  |         <result column="province_id" jdbcType="BIGINT" property="provinceId" /> | 
 |  |  |         <result column="city_id" jdbcType="BIGINT" property="cityId" /> | 
 |  |  |         <result column="county_id" jdbcType="BIGINT" property="countyId" /> | 
 |  |  |         <result column="town_id" jdbcType="BIGINT" property="townId" /> | 
 |  |  |         <result column="village_id" jdbcType="BIGINT" property="villageId" /> | 
 |  |  |         <result column="project_state" jdbcType="TINYINT" property="projectState" /> | 
 |  |  |         <result column="remarks" jdbcType="VARCHAR" property="remarks" /> | 
 |  |  |         <result column="operator" jdbcType="BIGINT" property="operator" /> | 
 |  |  |         <result column="operate_time" jdbcType="TIMESTAMP" property="operateDt" /> | 
 |  |  |         <result column="deleted" jdbcType="TINYINT" property="deleted" /> | 
 |  |  |     </resultMap> | 
 |  |  |   <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoIr.IrProject"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  |     <!--@Table ir_project--> | 
 |  |  |     <id column="id" jdbcType="BIGINT" property="id" /> | 
 |  |  |     <result column="project_name" jdbcType="VARCHAR" property="projectName" /> | 
 |  |  |     <result column="province_id" jdbcType="BIGINT" property="provinceId" /> | 
 |  |  |     <result column="city_id" jdbcType="BIGINT" property="cityId" /> | 
 |  |  |     <result column="county_id" jdbcType="BIGINT" property="countyId" /> | 
 |  |  |     <result column="town_id" jdbcType="BIGINT" property="townId" /> | 
 |  |  |     <result column="village_id" jdbcType="BIGINT" property="villageId" /> | 
 |  |  |     <result column="project_state" jdbcType="TINYINT" property="projectState" /> | 
 |  |  |     <result column="remarks" jdbcType="VARCHAR" property="remarks" /> | 
 |  |  |     <result column="operator" jdbcType="BIGINT" property="operator" /> | 
 |  |  |     <result column="operate_time" jdbcType="TIMESTAMP" property="operateTime" /> | 
 |  |  |     <result column="deleted" jdbcType="TINYINT" property="deleted" /> | 
 |  |  |   </resultMap> | 
 |  |  |   <sql id="Base_Column_List"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  |     id, project_name, province_id, city_id, county_id, town_id, village_id, project_state,  | 
 |  |  |     remarks, `operator`, operate_time, deleted | 
 |  |  |   </sql> | 
 |  |  |   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  |     select  | 
 |  |  |     <include refid="Base_Column_List" /> | 
 |  |  |     from ir_project | 
 |  |  |     where id = #{id,jdbcType=BIGINT} | 
 |  |  |   </select> | 
 |  |  |   <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  |     delete from ir_project | 
 |  |  |     where id = #{id,jdbcType=BIGINT} | 
 |  |  |   </delete> | 
 |  |  |   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoIr.IrProject"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  |     insert into ir_project (id, project_name, province_id,  | 
 |  |  |       city_id, county_id, town_id,  | 
 |  |  |       village_id, project_state, remarks,  | 
 |  |  |       `operator`, operate_time, deleted | 
 |  |  |       ) | 
 |  |  |     values (#{id,jdbcType=BIGINT}, #{projectName,jdbcType=VARCHAR}, #{provinceId,jdbcType=BIGINT},  | 
 |  |  |       #{cityId,jdbcType=BIGINT}, #{countyId,jdbcType=BIGINT}, #{townId,jdbcType=BIGINT},  | 
 |  |  |       #{villageId,jdbcType=BIGINT}, #{projectState,jdbcType=TINYINT}, #{remarks,jdbcType=VARCHAR},  | 
 |  |  |       #{operator,jdbcType=BIGINT}, #{operateTime,jdbcType=TIMESTAMP}, #{deleted,jdbcType=TINYINT} | 
 |  |  |       ) | 
 |  |  |   </insert> | 
 |  |  |   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrProject"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  |     insert into ir_project | 
 |  |  |     <trim prefix="(" suffix=")" suffixOverrides=","> | 
 |  |  |       <if test="id != null"> | 
 |  |  |         id, | 
 |  |  |       </if> | 
 |  |  |       <if test="projectName != null"> | 
 |  |  |         project_name, | 
 |  |  |       </if> | 
 |  |  |       <if test="provinceId != null"> | 
 |  |  |         province_id, | 
 |  |  |       </if> | 
 |  |  |       <if test="cityId != null"> | 
 |  |  |         city_id, | 
 |  |  |       </if> | 
 |  |  |       <if test="countyId != null"> | 
 |  |  |         county_id, | 
 |  |  |       </if> | 
 |  |  |       <if test="townId != null"> | 
 |  |  |         town_id, | 
 |  |  |       </if> | 
 |  |  |       <if test="villageId != null"> | 
 |  |  |         village_id, | 
 |  |  |       </if> | 
 |  |  |       <if test="projectState != null"> | 
 |  |  |         project_state, | 
 |  |  |       </if> | 
 |  |  |       <if test="remarks != null"> | 
 |  |  |         remarks, | 
 |  |  |       </if> | 
 |  |  |       <if test="operator != null"> | 
 |  |  |         `operator`, | 
 |  |  |       </if> | 
 |  |  |       <if test="operateTime != null"> | 
 |  |  |         operate_time, | 
 |  |  |       </if> | 
 |  |  |       <if test="deleted != null"> | 
 |  |  |         deleted, | 
 |  |  |       </if> | 
 |  |  |     </trim> | 
 |  |  |     <trim prefix="values (" suffix=")" suffixOverrides=","> | 
 |  |  |       <if test="id != null"> | 
 |  |  |         #{id,jdbcType=BIGINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="projectName != null"> | 
 |  |  |         #{projectName,jdbcType=VARCHAR}, | 
 |  |  |       </if> | 
 |  |  |       <if test="provinceId != null"> | 
 |  |  |         #{provinceId,jdbcType=BIGINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="cityId != null"> | 
 |  |  |         #{cityId,jdbcType=BIGINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="countyId != null"> | 
 |  |  |         #{countyId,jdbcType=BIGINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="townId != null"> | 
 |  |  |         #{townId,jdbcType=BIGINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="villageId != null"> | 
 |  |  |         #{villageId,jdbcType=BIGINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="projectState != null"> | 
 |  |  |         #{projectState,jdbcType=TINYINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="remarks != null"> | 
 |  |  |         #{remarks,jdbcType=VARCHAR}, | 
 |  |  |       </if> | 
 |  |  |       <if test="operator != null"> | 
 |  |  |         #{operator,jdbcType=BIGINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="operateTime != null"> | 
 |  |  |         #{operateTime,jdbcType=TIMESTAMP}, | 
 |  |  |       </if> | 
 |  |  |       <if test="deleted != null"> | 
 |  |  |         #{deleted,jdbcType=TINYINT}, | 
 |  |  |       </if> | 
 |  |  |     </trim> | 
 |  |  |   </insert> | 
 |  |  |   <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrProject"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  |     update ir_project | 
 |  |  |     <set> | 
 |  |  |       <if test="projectName != null"> | 
 |  |  |         project_name = #{projectName,jdbcType=VARCHAR}, | 
 |  |  |       </if> | 
 |  |  |       <if test="provinceId != null"> | 
 |  |  |         province_id = #{provinceId,jdbcType=BIGINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="cityId != null"> | 
 |  |  |         city_id = #{cityId,jdbcType=BIGINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="countyId != null"> | 
 |  |  |         county_id = #{countyId,jdbcType=BIGINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="townId != null"> | 
 |  |  |         town_id = #{townId,jdbcType=BIGINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="villageId != null"> | 
 |  |  |         village_id = #{villageId,jdbcType=BIGINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="projectState != null"> | 
 |  |  |         project_state = #{projectState,jdbcType=TINYINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="remarks != null"> | 
 |  |  |         remarks = #{remarks,jdbcType=VARCHAR}, | 
 |  |  |       </if> | 
 |  |  |       <if test="operator != null"> | 
 |  |  |         `operator` = #{operator,jdbcType=BIGINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="operateTime != null"> | 
 |  |  |         operate_time = #{operateTime,jdbcType=TIMESTAMP}, | 
 |  |  |       </if> | 
 |  |  |       <if test="deleted != null"> | 
 |  |  |         deleted = #{deleted,jdbcType=TINYINT}, | 
 |  |  |       </if> | 
 |  |  |     </set> | 
 |  |  |     where id = #{id,jdbcType=BIGINT} | 
 |  |  |   </update> | 
 |  |  |   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoIr.IrProject"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  |     update ir_project | 
 |  |  |     set project_name = #{projectName,jdbcType=VARCHAR}, | 
 |  |  |       province_id = #{provinceId,jdbcType=BIGINT}, | 
 |  |  |       city_id = #{cityId,jdbcType=BIGINT}, | 
 |  |  |       county_id = #{countyId,jdbcType=BIGINT}, | 
 |  |  |       town_id = #{townId,jdbcType=BIGINT}, | 
 |  |  |       village_id = #{villageId,jdbcType=BIGINT}, | 
 |  |  |       project_state = #{projectState,jdbcType=TINYINT}, | 
 |  |  |       remarks = #{remarks,jdbcType=VARCHAR}, | 
 |  |  |       `operator` = #{operator,jdbcType=BIGINT}, | 
 |  |  |       operate_time = #{operateTime,jdbcType=TIMESTAMP}, | 
 |  |  |       deleted = #{deleted,jdbcType=TINYINT} | 
 |  |  |     where id = #{id,jdbcType=BIGINT} | 
 |  |  |   </update> | 
 |  |  |  | 
 |  |  |     <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrProject"> | 
 |  |  |         <!--@mbg.generated--> | 
 |  |  |         insert into ir_project | 
 |  |  |         <trim prefix="(" suffix=")" suffixOverrides=","> | 
 |  |  |             <if test="id != null"> | 
 |  |  |                 id, | 
 |  |  |             </if> | 
 |  |  |             <if test="projectName != null"> | 
 |  |  |                 project_name, | 
 |  |  |             </if> | 
 |  |  |             <if test="provinceId != null"> | 
 |  |  |                 province_id, | 
 |  |  |             </if> | 
 |  |  |             <if test="cityId != null"> | 
 |  |  |                 city_id, | 
 |  |  |             </if> | 
 |  |  |             <if test="countyId != null"> | 
 |  |  |                 county_id, | 
 |  |  |             </if> | 
 |  |  |             <if test="townId != null"> | 
 |  |  |                 town_id, | 
 |  |  |             </if> | 
 |  |  |             <if test="villageId != null"> | 
 |  |  |                 village_id, | 
 |  |  |             </if> | 
 |  |  |             <if test="projectState != null"> | 
 |  |  |                 project_state, | 
 |  |  |             </if> | 
 |  |  |             <if test="remarks != null"> | 
 |  |  |                 remarks, | 
 |  |  |             </if> | 
 |  |  |             <if test="operator != null"> | 
 |  |  |                 `operator`, | 
 |  |  |             </if> | 
 |  |  |             <if test="operateDt != null"> | 
 |  |  |                 operate_time, | 
 |  |  |             </if> | 
 |  |  |             <if test="deleted != null"> | 
 |  |  |                 deleted, | 
 |  |  |             </if> | 
 |  |  |         </trim> | 
 |  |  |         <trim prefix="values (" suffix=")" suffixOverrides=","> | 
 |  |  |             <if test="id != null"> | 
 |  |  |                 #{id,jdbcType=BIGINT}, | 
 |  |  |             </if> | 
 |  |  |             <if test="projectName != null"> | 
 |  |  |                 #{projectName,jdbcType=VARCHAR}, | 
 |  |  |             </if> | 
 |  |  |             <if test="provinceId != null"> | 
 |  |  |                 #{provinceId,jdbcType=BIGINT}, | 
 |  |  |             </if> | 
 |  |  |             <if test="cityId != null"> | 
 |  |  |                 #{cityId,jdbcType=BIGINT}, | 
 |  |  |             </if> | 
 |  |  |             <if test="countyId != null"> | 
 |  |  |                 #{countyId,jdbcType=BIGINT}, | 
 |  |  |             </if> | 
 |  |  |             <if test="townId != null"> | 
 |  |  |                 #{townId,jdbcType=BIGINT}, | 
 |  |  |             </if> | 
 |  |  |             <if test="villageId != null"> | 
 |  |  |                 #{villageId,jdbcType=BIGINT}, | 
 |  |  |             </if> | 
 |  |  |             <if test="projectState != null"> | 
 |  |  |                 #{projectState,jdbcType=TINYINT}, | 
 |  |  |             </if> | 
 |  |  |             <if test="remarks != null"> | 
 |  |  |                 #{remarks,jdbcType=VARCHAR}, | 
 |  |  |             </if> | 
 |  |  |             <if test="operator != null"> | 
 |  |  |                 #{operator,jdbcType=BIGINT}, | 
 |  |  |             </if> | 
 |  |  |             <if test="operateDt != null"> | 
 |  |  |                 #{operateDt,jdbcType=TIMESTAMP}, | 
 |  |  |             </if> | 
 |  |  |             <if test="deleted != null"> | 
 |  |  |                 #{deleted,jdbcType=TINYINT}, | 
 |  |  |             </if> | 
 |  |  |         </trim> | 
 |  |  |     </insert> | 
 |  |  |   <!--根据下级获取上一级地址--> | 
 |  |  |   <select id="getSupperByVillageId" parameterType="_long" resultType="java.lang.Long"> | 
 |  |  |     select dis_tow.* | 
 |  |  |     from ba_district dis_vil | 
 |  |  |     inner join | 
 |  |  |     ba_district dis_tow | 
 |  |  |     on dis_vil.supperId = dis_tow.id | 
 |  |  |     where dis_vil.id = #{vaId,jdbcType=BIGINT} | 
 |  |  |   </select> | 
 |  |  |   <!--逻辑删除--> | 
 |  |  |   <delete id="deleteLogicById" parameterType="java.lang.Long"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  |     update ir_project | 
 |  |  |     set deleted = 1 | 
 |  |  |     where id = #{id,jdbcType=BIGINT} | 
 |  |  |   </delete> | 
 |  |  |  | 
 |  |  |     <!--根据下级获取上一级地址--> | 
 |  |  |     <select id="getSupperByVillageId" parameterType="_long" resultType="java.lang.Long"> | 
 |  |  |         select dis_tow.* | 
 |  |  |         from ba_district dis_vil | 
 |  |  |         inner join | 
 |  |  |         ba_district dis_tow | 
 |  |  |         on dis_vil.supperId = dis_tow.id | 
 |  |  |         where dis_vil.id = #{vaId,jdbcType=BIGINT} | 
 |  |  |     </select> | 
 |  |  |   <!--修改状态--> | 
 |  |  |   <update id="updateProjectState"> | 
 |  |  |     update ir_project | 
 |  |  |     set project_state = #{projectState,jdbcType=TINYINT}, | 
 |  |  |     operator = #{operator,jdbcType=BIGINT}, | 
 |  |  |     operate_time = #{operateTime,jdbcType=TIMESTAMP} | 
 |  |  |     where id = #{id,jdbcType=BIGINT} | 
 |  |  |   </update> | 
 |  |  |  | 
 |  |  |     <delete id="deleteLogicById" parameterType="java.lang.Long"> | 
 |  |  |         <!--@mbg.generated--> | 
 |  |  |         update ir_project | 
 |  |  |         set deleted = 1 | 
 |  |  |         where id = #{id,jdbcType=BIGINT} | 
 |  |  |     </delete> | 
 |  |  |   <!--查询一个信息--> | 
 |  |  |   <select id="selectById" resultType="com.dy.pipIrrGlobal.voIr.VoProjectOne"> | 
 |  |  |     select | 
 |  |  |     CAST(pro.id AS char)AS id, | 
 |  |  |     CAST(pro.province_id AS char)AS provinceId, | 
 |  |  |     CAST(pro.city_id AS char)AS cityId, | 
 |  |  |     CAST(pro.county_id AS char)AS countyId, | 
 |  |  |     CAST(pro.town_id AS char)AS townId, | 
 |  |  |     CAST(pro.village_id AS char)AS villageId, | 
 |  |  |     pro.project_name  AS  projectName, | 
 |  |  |     pro.project_state  AS  projectState, | 
 |  |  |     cli.name         AS operatorName, | 
 |  |  |     pro.remarks, | 
 |  |  |     pro.operate_time  AS  operateDt | 
 |  |  |     from ir_project pro | 
 |  |  |     left join se_client cli on cli.id = pro.operator | 
 |  |  |     where pro.id = #{id,jdbcType=BIGINT} and pro.deleted = 0 | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--分页查询数量--> | 
 |  |  |   <select id="getRecordCount" resultType="java.lang.Long"> | 
 |  |  |     SELECT COUNT(*) AS recordCount | 
 |  |  |     FROM ir_project pro | 
 |  |  |     <where> | 
 |  |  |       pro.deleted = 0 | 
 |  |  |       <if test="projectName != null and projectName != ''"> | 
 |  |  |         AND pro.project_name LIKE CONCAT('%', #{projectName}, '%') | 
 |  |  |       </if> | 
 |  |  |       <if test = "projectState != null and projectState != ''"> | 
 |  |  |         AND pro.project_state = #{projectState} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--分页查询数据--> | 
 |  |  |   <select id="getProjects" resultType="com.dy.pipIrrGlobal.voIr.VoProject"> | 
 |  |  |     SELECT | 
 |  |  |     CAST(pro.id AS char)AS projectId, | 
 |  |  |     pro.project_name  AS  projectName, | 
 |  |  |     pro.project_state  AS  projectState, | 
 |  |  |     CONCAT(province.`name`,city.`name`,country.`name`, town.`name`, village.`name`) AS address, | 
 |  |  |     pro.remarks, | 
 |  |  |     pro.operate_time  AS  operateDt | 
 |  |  |     FROM ir_project pro | 
 |  |  |     LEFT JOIN ba_district province ON pro.province_id = province.id | 
 |  |  |     LEFT JOIN ba_district city ON pro.city_id = city.id | 
 |  |  |     LEFT JOIN ba_district country ON pro.county_id = country.id | 
 |  |  |     LEFT JOIN ba_district town ON pro.town_id = town.id | 
 |  |  |     LEFT JOIN ba_district village ON pro.village_id = village.id | 
 |  |  |     <where> | 
 |  |  |       pro.deleted = 0 | 
 |  |  |       <if test="projectName != null and projectName != ''"> | 
 |  |  |         AND pro.project_name LIKE CONCAT('%', #{projectName}, '%') | 
 |  |  |       </if> | 
 |  |  |       <if test = "projectState != null and projectState != ''"> | 
 |  |  |         AND pro.project_state = #{projectState} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |     ORDER BY pro.operate_time DESC | 
 |  |  |     <if test="pageCurr != null and pageSize != null"> | 
 |  |  |       LIMIT ${(pageCurr-1)*pageSize}, ${pageSize} | 
 |  |  |     </if> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取项目记录(精简)数量--> | 
 |  |  |   <select id="getSimpleProjectsCount" resultType="java.lang.Long"> | 
 |  |  |     SELECT COUNT(*) AS recordCount | 
 |  |  |     FROM ir_project pr | 
 |  |  |     <where> | 
 |  |  |       AND pr.project_state = 1 | 
 |  |  |       AND pr.deleted = 0 | 
 |  |  |       <if test="projectName != null and projectName != ''"> | 
 |  |  |         AND pr.project_name LIKE CONCAT('%', #{projectName}, '%') | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取项目记录(精简)--> | 
 |  |  |   <select id="getSimpleProjects" resultType="com.dy.pipIrrGlobal.voIr.VoProjectSimple"> | 
 |  |  |     SELECT | 
 |  |  |         pr.id AS projectId, | 
 |  |  |         pr.project_name AS projectName, | 
 |  |  |         (SELECT COUNT(*) FROM ir_project_group pg WHERE pg.project_id = pr.id) AS groupCount | 
 |  |  |     FROM ir_project pr | 
 |  |  |     <where> | 
 |  |  |       AND pr.project_state = 1 | 
 |  |  |       AND pr.deleted = 0 | 
 |  |  |       <if test="projectName != null and projectName != ''"> | 
 |  |  |         AND pr.project_name LIKE CONCAT('%', #{projectName}, '%') | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |     ORDER BY pr.operate_time DESC | 
 |  |  |     <trim prefix="limit "> | 
 |  |  |       <if test="start != null and count != null"> | 
 |  |  |         #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
 |  |  |       </if> | 
 |  |  |     </trim> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据项目Id获取项目详情,编辑项目信息使用--> | 
 |  |  |   <select id="getProjectDetail" resultType="com.dy.pipIrrGlobal.voIr.VoProjectDetail"> | 
 |  |  |     SELECT | 
 |  |  |         projectName, | 
 |  |  |         GROUP_CONCAT(groupId) AS irrigateGroups | 
 |  |  |     FROM | 
 |  |  |       ( | 
 |  |  |         SELECT | 
 |  |  |           pro.project_name AS projectName, | 
 |  |  |           grp.id AS groupId | 
 |  |  |         FROM ir_project pro | 
 |  |  |                INNER JOIN ir_project_group pg ON pg.project_id = pro.id | 
 |  |  |                INNER JOIN ir_irrigate_group grp ON grp.id = pg.group_id | 
 |  |  |         WHERE pro.deleted = 0 AND pro.id = #{projectId} | 
 |  |  |       ) project | 
 |  |  |     GROUP BY projectName | 
 |  |  |   </select> | 
 |  |  | </mapper> |