pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml
@@ -375,8 +375,13 @@
    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} &lt; plan.plan_start_time, 6,-->
<!--          IF(#{terminateTime} &lt; plan.plan_stop_time, 5, 4)) AS state,-->
        IF(plan.executing_state = 3, 5,
            IF(NOW() &lt; plan_start_time, 2,
                IF(NOW() &lt; plan_stop_time, 3, 4)
            )
        ) AS state,
        plan.plan_start_time AS planStartTime,
        plan.plan_stop_time AS planStopTime,
        #{terminateTime} AS realStopTime,
@@ -433,13 +438,32 @@
    ) 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() &lt; plan_start_time, 2,
                  IF(NOW() > plan_stop_time, 3, 4)
                  IF(NOW() &lt; plan_stop_time, 3, 4)
                )
            )
    ) AS planState