|  |  |  | 
|---|
|  |  |  | <!--根据指定条件获取轮灌组记录数--> | 
|---|
|  |  |  | <select id="getSimpleGroupCount" resultType="java.lang.Long"> | 
|---|
|  |  |  | SELECT COUNT(*) AS recordCount | 
|---|
|  |  |  | <!--    FROM ir_irrigate_group grp--> | 
|---|
|  |  |  | <!--        INNER JOIN ir_project_group pg ON pg.group_id = grp.id--> | 
|---|
|  |  |  | <!--        INNER JOIN ir_project pro ON pg.project_id = pro.id--> | 
|---|
|  |  |  | <!--    <where>--> | 
|---|
|  |  |  | <!--      AND grp.deleted = 0--> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--      <if test="projectId != null and projectId != ''">--> | 
|---|
|  |  |  | <!--        AND pro.id = #{projectId}--> | 
|---|
|  |  |  | <!--      </if>--> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--      <if test="groupCode != null and groupCode != ''">--> | 
|---|
|  |  |  | <!--        AND grp.group_code LIKE CONCAT('%', #{groupCode}, '%')--> | 
|---|
|  |  |  | <!--      </if>--> | 
|---|
|  |  |  | <!--    </where>--> | 
|---|
|  |  |  | FROM ir_irrigate_group grp | 
|---|
|  |  |  | INNER JOIN ir_project_group pg ON pg.group_id = grp.id | 
|---|
|  |  |  | LEFT JOIN ir_project_group pg ON pg.group_id = grp.id | 
|---|
|  |  |  | <where> | 
|---|
|  |  |  | AND grp.deleted = 0 | 
|---|
|  |  |  | <if test="projectId != null"> | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--根据指定条件获取轮灌组列表--> | 
|---|
|  |  |  | <select id="getSimpleGroups" resultType="com.dy.pipIrrGlobal.voIr.VoGroupSimple"> | 
|---|
|  |  |  | <!--    SELECT--> | 
|---|
|  |  |  | <!--      grp.id AS groupId,--> | 
|---|
|  |  |  | <!--      grp.group_code AS groupCode,--> | 
|---|
|  |  |  | <!--      (SELECT COUNT(*) FROM ir_group_intake WHERE group_id = grp.id) AS intakeCount,--> | 
|---|
|  |  |  | <!--      grp.default_duration AS defaultDuration,--> | 
|---|
|  |  |  | <!--      pg.sort--> | 
|---|
|  |  |  | <!--    FROM ir_irrigate_group grp--> | 
|---|
|  |  |  | <!--           INNER JOIN ir_project_group pg ON pg.group_id = grp.id--> | 
|---|
|  |  |  | <!--           INNER JOIN ir_project pro ON pg.project_id = pro.id--> | 
|---|
|  |  |  | <!--    <where>--> | 
|---|
|  |  |  | <!--      AND grp.deleted = 0--> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--      <if test="projectId != null and projectId != ''">--> | 
|---|
|  |  |  | <!--        AND pro.id = #{projectId}--> | 
|---|
|  |  |  | <!--      </if>--> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!--      <if test="groupCode != null and groupCode != ''">--> | 
|---|
|  |  |  | <!--        AND grp.group_code LIKE CONCAT('%', #{groupCode}, '%')--> | 
|---|
|  |  |  | <!--      </if>--> | 
|---|
|  |  |  | <!--    </where>--> | 
|---|
|  |  |  | <!--    ORDER BY pg.sort--> | 
|---|
|  |  |  | SELECT | 
|---|
|  |  |  | SELECT DISTINCT | 
|---|
|  |  |  | grp.id AS groupId, | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | INNER JOIN ir_project_group pg ON pg.group_id = grp.id | 
|---|
|  |  |  | LEFT JOIN ir_project_group pg ON pg.group_id = grp.id | 
|---|
|  |  |  | <where> | 
|---|
|  |  |  | AND grp.deleted = 0 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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} | 
|---|
|  |  |  | 
|---|
|  |  |  | ) irrigateGroup | 
|---|
|  |  |  | GROUP BY groupCode,defaultDuration | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <select id="getGroupResult" resultType="com.dy.pipIrrGlobal.voIr.VoGroupResult"> | 
|---|
|  |  |  | SELECT | 
|---|
|  |  |  | grp.id AS groupId, | 
|---|
|  |  |  | grp.group_code AS groupCode, | 
|---|
|  |  |  | IF(sche.current_state = 2, 5, | 
|---|
|  |  |  | IF(NOW() < sche.start_time, 2, | 
|---|
|  |  |  | IF(NOW() > sche.start_time AND NOW() < DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE), 3, 4))) AS state, | 
|---|
|  |  |  | sche.start_time AS startTime, | 
|---|
|  |  |  | DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE) AS stopTime, | 
|---|
|  |  |  | sche.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="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> | 
|---|