|  |  | 
 |  |  |         grp.group_code AS groupCode, | 
 |  |  |         (SELECT COUNT(*) FROM ir_group_intake WHERE group_id = grp.id) AS intakeCount, | 
 |  |  |         grp.default_duration AS defaultDuration, | 
 |  |  |         0 as sort, | 
 |  |  |         pg.sort, | 
 |  |  |         grp.operate_time | 
 |  |  |     FROM ir_irrigate_group grp | 
 |  |  |         LEFT JOIN ir_project_group pg ON pg.group_id = grp.id | 
 |  |  | 
 |  |  |         AND grp.group_code LIKE CONCAT('%', #{groupCode}, '%') | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |     ORDER BY grp.operate_time DESC | 
 |  |  |     ORDER BY pg.sort | 
 |  |  |     <trim prefix="limit "> | 
 |  |  |       <if test="start != null and count != null"> | 
 |  |  |         #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
 |  |  | 
 |  |  |         INNER JOIN ir_irrigate_schedule sche ON sche.group_id = grp.id | 
 |  |  |         INNER JOIN ir_plan_schedule ps ON ps.schedule_id = sche.id | 
 |  |  |     WHERE ps.plan_id = #{planId}; | 
 |  |  |  | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据灌溉计划ID获取轮灌组终止结果--> | 
 |  |  |   <select id="getGroupResult_terminate" resultType="com.dy.pipIrrGlobal.voIr.VoGroupResult"> | 
 |  |  |     SELECT | 
 |  |  |         grp.id AS groupId, | 
 |  |  |         grp.group_code AS groupCode, | 
 |  |  |         IF(#{terminateTime} < sche.start_time, 6, | 
 |  |  |             IF(#{terminateTime} < DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE), 5, 4)) AS state, | 
 |  |  |         IF(#{terminateTime} > sche.start_time, sche.start_time, NULL) AS startTime, | 
 |  |  |         IF(#{terminateTime} > DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE), DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE), | 
 |  |  |             IF(#{terminateTime} > sche.start_time, #{terminateTime}, NULL)) AS stopTime, | 
 |  |  |         <!--sche.duration,--> | 
 |  |  |         IF( | 
 |  |  |             TIMESTAMPDIFF(MINUTE, | 
 |  |  |             IF(#{terminateTime} > sche.start_time, sche.start_time, NULL), | 
 |  |  |                 IF(#{terminateTime} > DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE), DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE), | 
 |  |  |                     IF(#{terminateTime} > sche.start_time, #{terminateTime}, NULL)) | 
 |  |  |             ) = 0, 1, | 
 |  |  |             TIMESTAMPDIFF(MINUTE, | 
 |  |  |                 IF(#{terminateTime} > sche.start_time, sche.start_time, NULL), | 
 |  |  |                 IF(#{terminateTime} > DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE), DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE), | 
 |  |  |                     IF(#{terminateTime} > sche.start_time, #{terminateTime}, NULL)) | 
 |  |  |         )) AS duration, | 
 |  |  |         NULL AS publishResult | 
 |  |  |     FROM ir_irrigate_group  grp | 
 |  |  |         INNER JOIN ir_irrigate_schedule sche ON sche.group_id = grp.id | 
 |  |  |         INNER JOIN ir_plan_schedule ps ON ps.schedule_id = sche.id | 
 |  |  |     WHERE ps.plan_id = #{planId} | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据轮灌组ID获取轮灌组详情--> | 
 |  |  |   <select id="getGroupIntakes" resultType="com.dy.pipIrrGlobal.voIr.VoGroupIntakes"> | 
 |  |  |     SELECT | 
 |  |  |       pro.project_name AS projectName, | 
 |  |  |       gro.group_code AS groupName, | 
 |  |  |       NULL AS intakes | 
 |  |  |     FROM ir_irrigate_group gro | 
 |  |  |            INNER JOIN ir_project_group pg ON pg.group_id = gro.id | 
 |  |  |            INNER JOIN ir_project pro ON pro.id = pg.project_id | 
 |  |  |     WHERE gro.deleted = 0 AND gro.id = #{groupId} | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据轮灌组ID获取轮灌组详情列表--> | 
 |  |  |   <select id="getGroupIntakesList" resultType="com.dy.pipIrrGlobal.voIr.VoIntake"> | 
 |  |  |     SELECT | 
 |  |  |       con.rtuAddr, | 
 |  |  |       inta.name AS intakeName, | 
 |  |  |       NULL AS isOnLine | 
 |  |  |     FROM ir_group_intake gi | 
 |  |  |            INNER JOIN pr_intake inta ON inta.id = gi.intake_id | 
 |  |  |            INNER JOIN pr_controller con ON con.intakeId = gi.intake_id | 
 |  |  |     WHERE gi.group_id = #{groupId} | 
 |  |  |   </select> | 
 |  |  |    | 
 |  |  |   <!--根据轮灌组名称统计记录数--> | 
 |  |  |   <select id="countByGroupCode" resultType="java.lang.Integer"> | 
 |  |  |     SELECT COUNT(*)  | 
 |  |  |     FROM ir_irrigate_group  | 
 |  |  |     WHERE group_code = #{groupCode}  | 
 |  |  |     AND deleted = 0 | 
 |  |  |   </select> | 
 |  |  |    | 
 |  |  |   <!--根据轮灌组名称统计记录数(排除指定ID)--> | 
 |  |  |   <select id="countByGroupCodeExcludeId" resultType="java.lang.Integer"> | 
 |  |  |     SELECT COUNT(*)  | 
 |  |  |     FROM ir_irrigate_group  | 
 |  |  |     WHERE group_code = #{groupCode}  | 
 |  |  |     AND id != #{excludeId}  | 
 |  |  |     AND deleted = 0 | 
 |  |  |   </select> | 
 |  |  | </mapper> |