From 1e69d160cb1e04b1438db0ca950dd5c15088619d Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期四, 17 四月 2025 15:26:52 +0800 Subject: [PATCH] 灌溉计划终止时不区分终止方式 --- pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml | 78 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 76 insertions(+), 2 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml index 449f82d..3932653 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml @@ -325,8 +325,9 @@ IF(plan.executing_state = 3, 5, 4) AS planState FROM ir_irrigate_plan plan INNER JOIN ir_project pro ON pro.id = plan.project_id - WHERE plan.deleted = 0 AND ((plan.plan_state = 2 AND NOW() >= plan.plan_stop_time) OR (plan.executing_state = 3)) - ORDER BY plan.plan_state DESC + INNER JOIN ir_plan_operate po ON po.plan_id = plan.id + WHERE plan.deleted = 0 AND ((plan.plan_state = 2 AND NOW() >= plan.plan_stop_time) OR (plan.executing_state = 3)) AND po.operate_type = 1 + ORDER BY po.operate_time DESC <trim prefix="limit "> <if test="start != null and count != null"> #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} @@ -369,6 +370,29 @@ AND plan.deleted = 0 </select> + <!--鏍规嵁璁″垝ID鑾峰彇宸茬粓姝㈣鍒掔殑璇︽儏锛岀粨鏉熸椂闂翠负瀹為檯缁堟鏃堕棿--> + <select id="getPlanDetails_terminate" resultType="com.dy.pipIrrGlobal.voIr.VoPlanDetails"> + 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(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, + NULL AS groupDetails, + NULL AS failureCount + FROM ir_irrigate_plan plan + INNER JOIN ir_project pro ON pro.id = plan.project_id + WHERE plan.id = #{planId} + AND plan.deleted = 0 + </select> + <!--鏍规嵁璁″垝ID鑾峰彇璁″垝鐘舵�侊紝鐢ㄤ簬鍒ゆ柇鏄惁鍙互鍒犻櫎璁″垝--> <select id="getPlanState" resultType="java.lang.Integer"> SELECT @@ -378,4 +402,54 @@ AND deleted = 0 </select> + <!--鍒ゆ柇褰撳墠椤圭洰鏄惁瀛樺湪宸插彂甯冦�佹湭缁堟銆佹湭鍒犻櫎銆佹湭瀹屾垚鐨勮鍒掞紝鍙戝竷璁″垝鍓嶅垽鏂娇鐢�--> + <select id="hasPlan_CurrentProject" resultType="java.lang.Integer"> + SELECT + COUNT(*) AS recordCount + FROM ir_irrigate_plan + WHERE project_id = (SELECT project_id FROM ir_irrigate_plan WHERE id = #{planId}) + AND id != #{planId} + AND plan_state = 2 + AND executing_state != 3 + AND deleted = 0 + AND NOW() < plan_stop_time + </select> + + <!--鍒ゆ柇褰撳墠璁″垝鍖呭惈鐨勮疆鐏岀粍鏄惁涓庡叾浠栭」鐩笅璁″垝鍖呭惈鐨勮疆鐏岀粍鏈変氦闆嗭紝涓斿叾浠栭」鐩殑璁″垝鐘舵�佷负宸插彂甯冦�佹湭缁堟銆佹湭鍒犻櫎銆佹湭瀹屾垚锛屽彂甯冭鍒掑墠鍒ゆ柇浣跨敤--> + <select id="hasPlan_OtherProject" resultType="java.lang.Integer"> + SELECT EXISTS( + SELECT sche.group_id + FROM ir_irrigate_plan plan + INNER JOIN ir_plan_schedule ps ON ps.plan_id = plan.id + INNER JOIN ir_irrigate_schedule sche ON sche.id = ps.schedule_id + WHERE plan.project_id != (SELECT project_id FROM ir_irrigate_plan WHERE id = #{planId}) + AND plan_state = 2 + AND executing_state != 3 + AND deleted = 0 + AND NOW() < plan_stop_time + + INTERSECT + + SELECT sche.group_id + FROM ir_irrigate_schedule sche + INNER JOIN ir_plan_schedule ps ON schedule_id = sche.id + WHERE ps.plan_id = #{planId} + LIMIT 1 + ) AS has_intersection + </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) + ) + ) + ) AS planState + FROM ir_irrigate_plan + WHERE deleted = 0 AND id = #{planId} + </select> + </mapper> \ No newline at end of file -- Gitblit v1.8.0