From 70b2c7a1f5b54cf9157d8fce4d6a9b0f2fadaebe Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期二, 15 四月 2025 17:13:28 +0800 Subject: [PATCH] 获取终止操作结果 --- pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml | 298 ++++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 211 insertions(+), 87 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 0d4e9ed..94e29d9 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml @@ -163,113 +163,237 @@ <!--鏍规嵁鎸囧畾鐨勮鍒扞D鑾峰彇鍚姩妯″紡--> <select id="getStartupMode" resultType="java.lang.Byte"> SELECT - startup_mode AS startupMode + startup_mode AS startupMode FROM ir_irrigate_plan WHERE id = #{planId} </select> - <!--鏍规嵁鎸囧畾鐨勮鍒扞D鑾峰彇宸插彂甯冪殑鐏屾簤璁″垝鏁伴噺--> - <select id="getPublishedCount" resultType="java.lang.Integer"> - SELECT COUNT(*) - FROM ir_irrigate_plan plan - WHERE plan.id = #{planId} - AND plan.plan_state = 2 - AND plan.deleted = 0 - </select> - - <!--鍙戝竷鎸囧畾鐨勭亴婧夎鍒�--> - <update id="publishIrrigatePlan"> - UPDATE ir_irrigate_plan SET plan_state = 2 WHERE id = #{planId} - </update> - <!--鏍规嵁鎸囧畾鐨勬潯浠惰幏鍙栬鍒掓暟閲�--> - <select id="getIrrigatePlanCount" resultType="java.lang.Long"> - SELECT COUNT(*) - FROM ir_irrigate_plan plan - INNER JOIN ir_project pro ON pro.id = plan.project_id - <where> - AND plan.deleted = 0 - AND pro.deleted = 0 - <if test="projectName != null and projectName != ''"> - AND pro.project_name LIKE CONCAT('%', #{projectName}, '%') - </if> + <!-- <select id="getIrrigatePlanCount" resultType="java.lang.Long">--> + <!-- SELECT COUNT(*)--> + <!-- FROM ir_irrigate_plan plan--> + <!-- INNER JOIN ir_project pro ON pro.id = plan.project_id--> + <!-- <where>--> + <!-- AND plan.deleted = 0--> + <!-- AND pro.deleted = 0--> + <!-- <if test="projectName != null and projectName != ''">--> + <!-- AND pro.project_name LIKE CONCAT('%', #{projectName}, '%')--> + <!-- </if>--> - <if test="planName != null and planName != ''"> - AND plan.plan_name LIKE CONCAT('%', #{planName}, '%') - </if> + <!-- <if test="planName != null and planName != ''">--> + <!-- AND plan.plan_name LIKE CONCAT('%', #{planName}, '%')--> + <!-- </if>--> - <if test="startupMode != null"> - AND plan.startup_mode = #{startupMode} - </if> + <!-- <if test="startupMode != null">--> + <!-- AND plan.startup_mode = #{startupMode}--> + <!-- </if>--> - <if test="planState != null"> - AND plan.plan_state = #{planState} - </if> + <!-- <if test="planState != null">--> + <!-- AND plan.plan_state = #{planState}--> + <!-- </if>--> - <if test="executingState != null"> - AND plan.executing_state = #{executingState} - </if> - </where> - </select> + <!-- <if test="executingState != null">--> + <!-- AND plan.executing_state = #{executingState}--> + <!-- </if>--> + <!-- </where>--> + <!-- </select>--> <!--鏍规嵁鎸囧畾鐨勬潯浠惰幏鍙栬鍒掑垪琛�--> - <select id="getIrrigatePlans" resultType="com.dy.pipIrrGlobal.voIr.VoIrrigatePlan"> - SELECT - plan.id AS planId, - pro.project_name AS projectName, - plan.plan_name AS planName, - CASE plan.startup_mode - WHEN 1 THEN '鎵嬪姩鍚姩' - WHEN 2 THEN '鑷姩鍚姩' - END AS startupMode, - plan.plan_start_time AS startTime, - plan.plan_stop_time AS stopTime, - plan.duration AS duration, - CASE plan.plan_state - WHEN 1 THEN '鑽夌' - WHEN 2 THEN '宸插彂甯�' - END AS planState, + <!-- <select id="getIrrigatePlans" resultType="com.dy.pipIrrGlobal.voIr.VoIrrigatePlan">--> + <!-- SELECT--> + <!-- plan.id AS planId,--> + <!-- pro.project_name AS projectName,--> + <!-- plan.plan_name AS planName,--> + <!-- CASE plan.startup_mode--> + <!-- WHEN 1 THEN '鎵嬪姩鍚姩'--> + <!-- WHEN 2 THEN '鑷姩鍚姩'--> + <!-- END AS startupMode,--> + <!-- plan.plan_start_time AS startTime,--> + <!-- plan.plan_stop_time AS stopTime,--> + <!-- plan.duration AS duration,--> + <!-- CASE plan.plan_state--> + <!-- WHEN 1 THEN '鑽夌'--> + <!-- WHEN 2 THEN '宸插彂甯�'--> + <!-- END AS planState,--> - CASE plan.executing_state - WHEN 1 THEN - '鏈墽琛�' - WHEN 2 THEN - '鎵ц涓�' - WHEN 3 THEN - '宸叉殏鍋�' - WHEN 4 THEN - '宸茬粓姝�' - END AS executingState + <!-- CASE plan.executing_state--> + <!-- WHEN 1 THEN--> + <!-- '鏈墽琛�'--> + <!-- WHEN 2 THEN--> + <!-- '鎵ц涓�'--> + <!-- WHEN 3 THEN--> + <!-- '宸叉殏鍋�'--> + <!-- WHEN 4 THEN--> + <!-- '宸茬粓姝�'--> + <!-- END AS executingState--> + <!-- FROM ir_irrigate_plan plan--> + <!-- INNER JOIN ir_project pro ON pro.id = plan.project_id--> + <!-- <where>--> + <!-- AND plan.deleted = 0--> + <!-- AND pro.deleted = 0--> + <!-- <if test="projectName != null and projectName != ''">--> + <!-- AND pro.project_name LIKE CONCAT('%', #{projectName}, '%')--> + <!-- </if>--> + + <!-- <if test="planName != null and planName != ''">--> + <!-- AND plan.plan_name LIKE CONCAT('%', #{planName}, '%')--> + <!-- </if>--> + + <!-- <if test="startupMode != null">--> + <!-- AND plan.startup_mode = #{startupMode}--> + <!-- </if>--> + + <!-- <if test="planState != null">--> + <!-- AND plan.plan_state = #{planState}--> + <!-- </if>--> + + <!-- <if test="executingState != null">--> + <!-- AND plan.executing_state = #{executingState}--> + <!-- </if>--> + <!-- </where>--> + <!-- ORDER BY plan.plan_state DESC, plan.plan_start_time--> + <!-- <trim prefix="limit ">--> + <!-- <if test="start != null and count != null">--> + <!-- #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}--> + <!-- </if>--> + <!-- </trim>--> + <!-- </select>--> + + <!--鏍规嵁璁″垝ID鑾峰彇璁″垝绠�鍗曚俊鎭�--> + <select id="getPlanSimple" resultType="com.dy.pipIrrGlobal.voIr.VoPlanSimple"> + SELECT + plan.startup_mode AS startupMode, + plan.plan_start_time AS planStartTime, + plan.duration AS duration FROM ir_irrigate_plan plan - INNER JOIN ir_project pro ON pro.id = plan.project_id + WHERE plan.id = #{planId} + AND plan.deleted = 0 AND plan_state = 1 + LIMIT 1 + </select> + + <!--鏍规嵁璁″垝ID鏇存柊璁″垝淇℃伅锛堣捣姝㈡椂闂淬�佽鍒掔姸鎬侊級--> + <update id="updatePlanTimes"> + UPDATE ir_irrigate_plan + SET plan_start_time = #{planStartTime}, plan_stop_time = #{planStopTime}, plan_state = 2 + WHERE id = #{planId} + </update> + + <!--鑾峰彇鏈畬鎴愮殑璁″垝鍒楄〃锛屽皬绋嬪簭璁″垝鍒楄〃椤典娇鐢�--> + <select id="getNotCompletePlans" resultType="com.dy.pipIrrGlobal.voIr.VoPlans"> + SELECT + pro.project_name AS projectName, + plan.id AS planId, + plan.plan_name AS planName, + plan.startup_mode AS startupMode, + plan.plan_start_time AS planStartTime, + plan.plan_stop_time AS planStopTime, + plan.duration, + IF(plan.plan_state = 1, 1, + IF(NOW() < plan.plan_start_time, 2, + IF(NOW() >= plan.plan_start_time AND NOW() < plan.plan_stop_time, 3, 4) + ) + ) AS planState + FROM ir_irrigate_plan plan + INNER JOIN ir_project pro ON pro.id = plan.project_id <where> AND plan.deleted = 0 - AND pro.deleted = 0 - <if test="projectName != null and projectName != ''"> - AND pro.project_name LIKE CONCAT('%', #{projectName}, '%') - </if> - - <if test="planName != null and planName != ''"> - AND plan.plan_name LIKE CONCAT('%', #{planName}, '%') - </if> - - <if test="startupMode != null"> - AND plan.startup_mode = #{startupMode} - </if> - - <if test="planState != null"> - AND plan.plan_state = #{planState} - </if> - - <if test="executingState != null"> - AND plan.executing_state = #{executingState} - </if> + AND (plan.plan_state = 1 OR NOW() < plan.plan_stop_time) + AND plan.executing_state != 3 </where> - ORDER BY plan.plan_state DESC, plan.plan_start_time + ORDER BY plan.plan_state DESC + </select> + + <!--鑾峰彇宸插畬鎴愮殑璁″垝鏁伴噺--> + <select id="getCompletedPlansCount" resultType="java.lang.Long"> + SELECT + COUNT(*) AS recordCount + 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)) + </select> + + <!--鑾峰彇宸插畬鎴愮殑璁″垝鍒楄〃锛屽皬绋嬪簭璁″垝鍒楄〃椤典娇鐢�--> + <select id="getCompletedPlans" resultType="com.dy.pipIrrGlobal.voIr.VoPlans"> + SELECT + pro.project_name AS projectName, + plan.id AS planId, + plan.plan_name AS planName, + plan.startup_mode AS startupMode, + plan.plan_start_time AS planStartTime, + plan.plan_stop_time AS planStopTime, + plan.duration, + 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 <trim prefix="limit "> <if test="start != null and count != null"> #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} </if> </trim> </select> + + <!--鏍规嵁璁″垝ID鑾峰彇寰呯粓姝㈣鍒掔殑缁撴潫鏃堕棿锛氭湭鍒犻櫎銆佹湭缁堟銆佸凡鍙戝竷銆佸綋鍓嶆椂闂村皬浜庤鍒掔粨鏉熸椂闂�--> + <select id="getToTerminatePlan" resultType="java.util.Date"> + SELECT + plan_start_time AS planStartTime + FROM ir_irrigate_plan + <where> + AND deleted = 0 + AND executing_state != 3 + AND plan_state = 2 + AND NOW() < plan_stop_time + <if test = "planId != null"> + AND id = #{planId} + </if> + </where> + + </select> + + <!--鏍规嵁璁″垝ID鑾峰彇璁″垝璇︽儏锛屽寘鎷鍒掑悕绉帮紝椤圭洰鍚嶏紝璁″垝寮�濮嬫椂闂达紝璁″垝缁撴潫鏃堕棿锛岃鍒掕鎯呴〉浣跨敤--> + <select id="getPlanDetails" resultType="com.dy.pipIrrGlobal.voIr.VoPlanDetails"> + SELECT + plan.plan_name AS planName, + pro.project_name AS projectName, + IF(plan.executing_state = 3, '5', + IF(NOW() < plan.plan_start_time,'2', + IF(NOW() < plan.plan_stop_time, '3', '4'))) AS state, + plan.plan_start_time AS planStartTime, + plan.plan_stop_time AS planStopTime, + 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="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, + 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 =2025041515194900009 + AND plan.deleted = 0 + </select> + + <!--鏍规嵁璁″垝ID鑾峰彇璁″垝鐘舵�侊紝鐢ㄤ簬鍒ゆ柇鏄惁鍙互鍒犻櫎璁″垝--> + <select id="getPlanState" resultType="java.lang.Integer"> + SELECT + plan_state + FROM ir_irrigate_plan + WHERE id = #{planId} + AND deleted = 0 + </select> + </mapper> \ No newline at end of file -- Gitblit v1.8.0