|  |  |  | 
|---|
|  |  |  | <!--根据指定条件获取轮灌组记录数--> | 
|---|
|  |  |  | <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 | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 0 as 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 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | SELECT | 
|---|
|  |  |  | grp.id AS groupId, | 
|---|
|  |  |  | grp.group_code AS groupCode, | 
|---|
|  |  |  | 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, | 
|---|
|  |  |  | 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, | 
|---|
|  |  |  | 
|---|
|  |  |  | 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,--> | 
|---|
|  |  |  | TIMESTAMPDIFF(MINUTE, | 
|---|
|  |  |  | IF('2025-04-15 15:27' > sche.start_time, sche.start_time, NULL), | 
|---|
|  |  |  | IF('2025-04-15 15:27' > DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE), DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE), | 
|---|
|  |  |  | IF('2025-04-15 15:27' > sche.start_time, '2025-04-15 15:27', 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> | 
|---|
|  |  |  | </mapper> | 
|---|