From a7485c9f9b16ece4f12f0b3f6d6a8c90370f5ae4 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期三, 09 四月 2025 16:08:30 +0800 Subject: [PATCH] 灌溉计划详情信息增加取水口命令发布失败数量 --- pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml | 285 ++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 203 insertions(+), 82 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 abd6ed3..63e9a5e 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml @@ -10,14 +10,15 @@ <result column="startup_mode" jdbcType="TINYINT" property="startupMode" /> <result column="plan_start_time" jdbcType="TIMESTAMP" property="planStartTime" /> <result column="plan_stop_time" jdbcType="TIMESTAMP" property="planStopTime" /> + <result column="duration" jdbcType="INTEGER" property="duration" /> <result column="plan_state" jdbcType="TINYINT" property="planState" /> <result column="executing_state" jdbcType="TINYINT" property="executingState" /> <result column="deleted" jdbcType="BIGINT" property="deleted" /> </resultMap> <sql id="Base_Column_List"> <!--@mbg.generated--> - id, project_id, plan_name, startup_mode, plan_start_time, plan_stop_time, plan_state, - executing_state, deleted + id, project_id, plan_name, startup_mode, plan_start_time, plan_stop_time, duration, + plan_state, executing_state, deleted </sql> <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> <!--@mbg.generated--> @@ -35,12 +36,12 @@ <!--@mbg.generated--> insert into ir_irrigate_plan (id, project_id, plan_name, startup_mode, plan_start_time, plan_stop_time, - plan_state, executing_state, deleted - ) + duration, plan_state, executing_state, + deleted) values (#{id,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT}, #{planName,jdbcType=VARCHAR}, #{startupMode,jdbcType=TINYINT}, #{planStartTime,jdbcType=TIMESTAMP}, #{planStopTime,jdbcType=TIMESTAMP}, - #{planState,jdbcType=TINYINT}, #{executingState,jdbcType=TINYINT}, #{deleted,jdbcType=BIGINT} - ) + #{duration,jdbcType=INTEGER}, #{planState,jdbcType=TINYINT}, #{executingState,jdbcType=TINYINT}, + #{deleted,jdbcType=BIGINT}) </insert> <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan"> <!--@mbg.generated--> @@ -63,6 +64,9 @@ </if> <if test="planStopTime != null"> plan_stop_time, + </if> + <if test="duration != null"> + duration, </if> <if test="planState != null"> plan_state, @@ -92,6 +96,9 @@ </if> <if test="planStopTime != null"> #{planStopTime,jdbcType=TIMESTAMP}, + </if> + <if test="duration != null"> + #{duration,jdbcType=INTEGER}, </if> <if test="planState != null"> #{planState,jdbcType=TINYINT}, @@ -123,6 +130,9 @@ <if test="planStopTime != null"> plan_stop_time = #{planStopTime,jdbcType=TIMESTAMP}, </if> + <if test="duration != null"> + duration = #{duration,jdbcType=INTEGER}, + </if> <if test="planState != null"> plan_state = #{planState,jdbcType=TINYINT}, </if> @@ -143,104 +153,215 @@ startup_mode = #{startupMode,jdbcType=TINYINT}, plan_start_time = #{planStartTime,jdbcType=TIMESTAMP}, plan_stop_time = #{planStopTime,jdbcType=TIMESTAMP}, + duration = #{duration,jdbcType=INTEGER}, plan_state = #{planState,jdbcType=TINYINT}, executing_state = #{executingState,jdbcType=TINYINT}, deleted = #{deleted,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT} </update> - <!--鍙戝竷鎸囧畾鐨勭亴婧夎鍒�--> - <update id="publishIrrigatePlan"> - UPDATE ir_irrigate_plan SET plan_state = 2 WHERE id = #{planId} - </update> + <!--鏍规嵁鎸囧畾鐨勮鍒扞D鑾峰彇鍚姩妯″紡--> + <select id="getStartupMode" resultType="java.lang.Byte"> + SELECT + startup_mode AS startupMode + FROM ir_irrigate_plan + WHERE id = #{planId} + </select> <!--鏍规嵁鎸囧畾鐨勬潯浠惰幏鍙栬鍒掓暟閲�--> - <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, - 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 + 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> + AND (plan.plan_state = 1 OR NOW() < plan.plan_stop_time) + AND plan.executing_state != 3 + </where> + ORDER BY plan.plan_state DESC + </select> - <if test="planName != null and planName != ''"> - AND plan.plan_name LIKE CONCAT('%', #{planName}, '%') - </if> + <!--鑾峰彇宸插畬鎴愮殑璁″垝鍒楄〃锛屽皬绋嬪簭璁″垝鍒楄〃椤典娇鐢�--> + <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 + </select> - <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} + <!--鏍规嵁璁″垝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> - 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="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="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