| | |
| | | SELECT |
| | | plan.plan_name AS planName, |
| | | pro.project_name AS projectName, |
| | | IF(#{terminateTime} < plan.plan_start_time, 6, |
| | | IF(#{terminateTime} < plan.plan_stop_time, 5, 4)) AS state, |
| | | <!-- IF(#{terminateTime} < plan.plan_start_time, 6,--> |
| | | <!-- IF(#{terminateTime} < plan.plan_stop_time, 5, 4)) AS state,--> |
| | | IF(plan.executing_state = 3, 5, |
| | | IF(NOW() < plan_start_time, 2, |
| | | IF(NOW() < plan_stop_time, 3, 4) |
| | | ) |
| | | ) AS state, |
| | | plan.plan_start_time AS planStartTime, |
| | | plan.plan_stop_time AS planStopTime, |
| | | #{terminateTime} AS realStopTime, |
| | |
| | | ) AS has_intersection |
| | | </select> |
| | | |
| | | <!--判断当前计划与最近终止的计划的轮灌组是否有重叠 --> |
| | | <select id="hasPlanOverlapWithTerminated" resultType="java.lang.Integer"> |
| | | SELECT COUNT(1) |
| | | FROM ( |
| | | SELECT sche1.group_id |
| | | FROM ir_plan_schedule ps1 |
| | | INNER JOIN ir_irrigate_schedule sche1 ON ps1.schedule_id = sche1.id |
| | | WHERE ps1.plan_id = #{planId} |
| | | ) AS current_groups |
| | | INNER JOIN ( |
| | | SELECT sche2.group_id |
| | | FROM ir_plan_schedule ps2 |
| | | INNER JOIN ir_irrigate_schedule sche2 ON ps2.schedule_id = sche2.id |
| | | WHERE ps2.plan_id = #{terminatedPlanId} |
| | | ) AS terminated_groups |
| | | ON current_groups.group_id = terminated_groups.group_id |
| | | LIMIT 1 |
| | | </select> |
| | | |
| | | <!--根据计划ID获取计划最新状态--> |
| | | <select id="getPlanLatestState" resultType="java.lang.Integer"> |
| | | SELECT |
| | | IF(plan_state = 1, 1, |
| | | IF(executing_state = 3, 5, |
| | | IF(NOW() < plan_start_time, 2, |
| | | IF(NOW() > plan_stop_time, 3, 4) |
| | | IF(NOW() < plan_stop_time, 3, 4) |
| | | ) |
| | | ) |
| | | ) AS planState |