From 93860049875e89890c32d22732329a6985dad898 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期五, 28 三月 2025 17:06:08 +0800 Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV --- pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/PipIrrIrrigateApplication.java | 2 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java | 8 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectGroupMapper.java | 7 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoProjectDetail.java | 27 ++ pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/dto/IrrigatePlan.java | 5 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java | 155 +++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java | 3 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java | 172 ++++++++++++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectGroupMapper.xml | 5 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlans.java | 7 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigatePlanMapper.java | 6 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml | 18 + pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml | 241 +++++++++-------- pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java | 20 + pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/dto/IrrigateProject.java | 40 +++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigatePlan.java | 5 16 files changed, 589 insertions(+), 132 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigatePlanMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigatePlanMapper.java index 1cbb726..44d7b26 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigatePlanMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigatePlanMapper.java @@ -12,8 +12,8 @@ /** * @author ZhuBaoMin - * @date 2025-02-25 14:59 - * @LastEditTime 2025-02-25 14:59 + * @date 2025-03-27 8:54 + * @LastEditTime 2025-03-27 8:54 * @Description */ @@ -67,12 +67,14 @@ /** * 鑾峰彇鏈畬鎴愮殑璁″垝鍒楄〃锛屽皬绋嬪簭璁″垝鍒楄〃椤典娇鐢� + * 璁″垝鐘舵�侊細1-鑽夌锛�2-鏈墽琛岋紝3-鎵ц涓紝4-宸插畬鎴� * @return */ List<VoPlans> getNotCompletePlans(); /** * 鑾峰彇宸插畬鎴愮殑璁″垝鍒楄〃锛屽皬绋嬪簭璁″垝鍒楄〃椤典娇鐢� + * 璁″垝鐘舵�侊細1-鑽夌锛�2-鏈墽琛岋紝3-鎵ц涓紝4-宸插畬鎴� * @return */ List<VoPlans> getCompletedPlans(); diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectGroupMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectGroupMapper.java index adfa010..766733e 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectGroupMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectGroupMapper.java @@ -25,4 +25,11 @@ int updateByPrimaryKey(IrProjectGroup record); + /** + * 瑙g粦椤圭洰涓庤疆缃愮粍鍏宠仈 + * @param projectId + * @return + */ + Integer unbindGroup(Long projectId); + } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java index 9b0380b..82bb1ae 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoIr.IrProject; import com.dy.pipIrrGlobal.voIr.VoProject; +import com.dy.pipIrrGlobal.voIr.VoProjectDetail; import com.dy.pipIrrGlobal.voIr.VoProjectOne; import com.dy.pipIrrGlobal.voIr.VoProjectSimple; import org.apache.ibatis.annotations.Mapper; @@ -79,4 +80,11 @@ * @return */ List<VoProjectSimple> getSimpleProjects(Map<?, ?> params); + + /** + * 鏍规嵁椤圭洰Id鑾峰彇椤圭洰璇︽儏锛岀紪杈戦」鐩俊鎭娇鐢� + * @param projectId + * @return + */ + VoProjectDetail getProjectDetail(Long projectId); } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigatePlan.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigatePlan.java index ea5f063..8b79933 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigatePlan.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigatePlan.java @@ -36,6 +36,11 @@ private Long id; /** + * 椤圭洰ID + */ + private Long projectId; + + /** * 璁″垝鍚嶇О */ @NotBlank(message = "璁″垝鍚嶇О涓嶈兘涓虹┖") diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlans.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlans.java index 2318ee7..6e16dee 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlans.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlans.java @@ -16,11 +16,16 @@ */ @Data -@JsonPropertyOrder({"planId", "planName", "startupMode", "planStartTime", "planStopTime", "duration", "planState"}) +@JsonPropertyOrder({"projectName","planId", "planName", "startupMode", "planStartTime", "planStopTime", "duration", "planState"}) public class VoPlans { public static final long serialVersionUID = 202503261555001L; /** + * 椤圭洰鍚嶇О + */ + private String projectName; + + /** * 璁″垝ID */ @JSONField(serializeUsing= ObjectWriterImplToString.class) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoProjectDetail.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoProjectDetail.java new file mode 100644 index 0000000..29c2859 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoProjectDetail.java @@ -0,0 +1,27 @@ +package com.dy.pipIrrGlobal.voIr; + +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.Data; + +/** + * @author ZhuBaoMin + * @date 2025-03-28 8:49 + * @LastEditTime 2025-03-28 8:49 + * @Description 鐏屾簤椤圭洰璇︽儏瑙嗗浘瀵硅薄 + */ + +@Data +@JsonPropertyOrder({"projectName", "irrigateGroups"}) +public class VoProjectDetail { + public static final long serialVersionUID = 202503280850001L; + + /** + * 椤圭洰鍚嶇О + */ + private String projectName; + + /** + * 鐏屾簤缁勫垪琛� + */ + private String irrigateGroups; +} 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 699d758..08b7a87 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml @@ -5,6 +5,7 @@ <!--@mbg.generated--> <!--@Table ir_irrigate_plan--> <id column="id" jdbcType="BIGINT" property="id" /> + <result column="project_id" jdbcType="BIGINT" property="projectId" /> <result column="plan_name" jdbcType="VARCHAR" property="planName" /> <result column="startup_mode" jdbcType="TINYINT" property="startupMode" /> <result column="plan_start_time" jdbcType="TIMESTAMP" property="planStartTime" /> @@ -16,7 +17,7 @@ </resultMap> <sql id="Base_Column_List"> <!--@mbg.generated--> - id, plan_name, startup_mode, plan_start_time, plan_stop_time, duration, + 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"> @@ -33,11 +34,11 @@ </delete> <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan"> <!--@mbg.generated--> - insert into ir_irrigate_plan (id, plan_name, + insert into ir_irrigate_plan (id, project_id, plan_name, startup_mode, plan_start_time, plan_stop_time, duration, plan_state, executing_state, deleted) - values (#{id,jdbcType=BIGINT}, #{planName,jdbcType=VARCHAR}, + values (#{id,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT}, #{planName,jdbcType=VARCHAR}, #{startupMode,jdbcType=TINYINT}, #{planStartTime,jdbcType=TIMESTAMP}, #{planStopTime,jdbcType=TIMESTAMP}, #{duration,jdbcType=INTEGER}, #{planState,jdbcType=TINYINT}, #{executingState,jdbcType=TINYINT}, #{deleted,jdbcType=BIGINT}) @@ -48,6 +49,9 @@ <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null"> id, + </if> + <if test="projectId != null"> + project_id, </if> <if test="planName != null"> plan_name, @@ -77,6 +81,9 @@ <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null"> #{id,jdbcType=BIGINT}, + </if> + <if test="projectId != null"> + #{projectId,jdbcType=BIGINT}, </if> <if test="planName != null"> #{planName,jdbcType=VARCHAR}, @@ -108,6 +115,9 @@ <!--@mbg.generated--> update ir_irrigate_plan <set> + <if test="projectId != null"> + project_id = #{projectId,jdbcType=BIGINT}, + </if> <if test="planName != null"> plan_name = #{planName,jdbcType=VARCHAR}, </if> @@ -138,7 +148,8 @@ <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan"> <!--@mbg.generated--> update ir_irrigate_plan - set plan_name = #{planName,jdbcType=VARCHAR}, + set project_id = #{projectId,jdbcType=BIGINT}, + plan_name = #{planName,jdbcType=VARCHAR}, startup_mode = #{startupMode,jdbcType=TINYINT}, plan_start_time = #{planStartTime,jdbcType=TIMESTAMP}, plan_stop_time = #{planStopTime,jdbcType=TIMESTAMP}, @@ -152,111 +163,111 @@ <!--鏍规嵁鎸囧畾鐨勮鍒扞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> <!--鏍规嵁鎸囧畾鐨勬潯浠惰幏鍙栬鍒掓暟閲�--> -<!-- <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--> -<!-- 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>--> + <!-- 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="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>--> -<!-- 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>--> + <!-- <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 + 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 + AND plan.deleted = 0 AND plan_state = 1 LIMIT 1 </select> @@ -270,39 +281,43 @@ <!--鑾峰彇鏈畬鎴愮殑璁″垝鍒楄〃锛屽皬绋嬪簭璁″垝鍒楄〃椤典娇鐢�--> <select id="getNotCompletePlans" resultType="com.dy.pipIrrGlobal.voIr.VoPlans"> SELECT - id AS planId, - plan_name AS planName, - startup_mode AS startupMode, - plan_start_time AS planStartTime, - plan_stop_time AS planStopTime, - duration, - IF(plan_state = 1,'鑽夌', - IF(NOW() < plan_start_time, '鏈墽琛�', - IF(NOW() >= plan_start_time AND NOW() < plan_stop_time, '鎵ц涓�', '宸插畬鎴�') - ) - ) AS planState + 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 - WHERE deleted = 0 AND (plan_state = 1 OR NOW() < plan_stop_time) - ORDER BY plan_state DESC + INNER JOIN ir_project pro ON pro.id = plan.project_id + WHERE plan.deleted = 0 AND (plan.plan_state = 1 OR NOW() < plan.plan_stop_time) + ORDER BY plan.plan_state DESC </select> <!--鑾峰彇宸插畬鎴愮殑璁″垝鍒楄〃锛屽皬绋嬪簭璁″垝鍒楄〃椤典娇鐢�--> <select id="getCompletedPlans" resultType="com.dy.pipIrrGlobal.voIr.VoPlans"> SELECT - id AS planId, - plan_name AS planName, - startup_mode AS startupMode, - plan_start_time AS planStartTime, - plan_stop_time AS planStopTime, - duration, - IF(plan_state = 1,'鑽夌', - IF(NOW() < plan_start_time, '鏈墽琛�', - IF(NOW() >= plan_start_time AND NOW() < plan_stop_time, '鎵ц涓�', '宸插畬鎴�') - ) - ) AS planState + 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 - WHERE deleted = 0 AND (plan_state = 2 AND NOW() >= plan_stop_time) - ORDER BY plan_state DESC + 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) + ORDER BY plan.plan_state DESC </select> </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectGroupMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectGroupMapper.xml index d9ab535..62d8fdb 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectGroupMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectGroupMapper.xml @@ -88,4 +88,9 @@ sort = #{sort,jdbcType=INTEGER} where id = #{id,jdbcType=BIGINT} </update> + + <!--瑙g粦椤圭洰涓庤疆缃愮粍鍏宠仈--> + <delete id="unbindGroup"> + delete from ir_project_group where project_id=#{projectId} + </delete> </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml index 050c788..304156e 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml @@ -308,4 +308,22 @@ </if> </trim> </select> + + <!--鏍规嵁椤圭洰Id鑾峰彇椤圭洰璇︽儏锛岀紪杈戦」鐩俊鎭娇鐢�--> + <select id="getProjectDetail" resultType="com.dy.pipIrrGlobal.voIr.VoProjectDetail"> + SELECT + projectName, + GROUP_CONCAT(groupId) AS irrigateGroups + FROM + ( + SELECT + pro.project_name AS projectName, + grp.id AS groupId + FROM ir_project pro + INNER JOIN ir_project_group pg ON pg.project_id = pro.id + INNER JOIN ir_irrigate_group grp ON grp.id = pg.group_id + WHERE pro.id = #{projectId} + ) project + GROUP BY projectName + </select> </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/PipIrrIrrigateApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/PipIrrIrrigateApplication.java index 2d31732..297f1a0 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/PipIrrIrrigateApplication.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/PipIrrIrrigateApplication.java @@ -9,7 +9,7 @@ import org.springframework.context.annotation.FilterType; @SpringBootApplication -@EnableAspectJAutoProxy +@EnableAspectJAutoProxy(exposeProxy = true) @EnableMultiDataSource @ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrIrrigate"}, excludeFilters = { diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java index 973bccf..30ab742 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java @@ -7,8 +7,11 @@ import com.dy.common.webUtil.ResultCodeMsg; import com.dy.pipIrrGlobal.pojoIr.IrProject; import com.dy.pipIrrGlobal.voIr.VoProject; +import com.dy.pipIrrGlobal.voIr.VoProjectDetail; import com.dy.pipIrrGlobal.voIr.VoProjectOne; +import com.dy.pipIrrGlobal.voIr.VoProjectSimple; import com.dy.pipIrrGlobal.voSe.VoActiveCard; +import com.dy.pipIrrIrrigate.project.dto.IrrigateProject; import com.dy.pipIrrIrrigate.result.IrrigateResultCode; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; @@ -44,8 +47,7 @@ private final ProjectSv projectSv; /** - * 娣诲姞椤圭洰 - * + * 娣诲姞椤圭洰锛屾棫鐗堟湰锛屽師鍒欎笂搴熷純 * @param po 椤圭洰瀹炰綋瀵硅薄 * @param bindingResult * @return 娣诲姞鏄惁鎴愬姛 @@ -79,7 +81,7 @@ } /** - * 閫昏緫鍒犻櫎椤圭洰 + * 閫昏緫鍒犻櫎椤圭洰锛屾棫鐗堟湰锛屽師鍒欎笂搴熷純 * @param map * @return */ @@ -141,7 +143,7 @@ } /** - * 淇敼椤圭洰淇℃伅 + * 淇敼椤圭洰淇℃伅锛屾棫鐗堟湰锛屽師鍒欎笂搴熷純 * @param po * @param bindingResult * @return @@ -175,7 +177,7 @@ } /** - * 淇敼椤圭洰鐘舵�� + * 淇敼椤圭洰鐘舵�侊紝鏃犵敤鎺ュ彛锛屽師鍒欎笂搴熷純 * @param po * @param * @return @@ -206,8 +208,7 @@ } /** - * 鑾峰彇涓�涓」鐩暟鎹� - * + * 鑾峰彇涓�涓」鐩暟鎹紝鏃х増鏈紝鍘熷垯涓婂簾寮� * @return 鑾峰彇涓�涓」鐩暟鎹� */ @Operation(summary = "鑾峰彇涓�涓」鐩暟鎹�", description = "鑾峰彇涓�涓」鐩暟鎹�") @@ -229,7 +230,7 @@ } /** - * 鍒嗛〉鏌ヨ + * 鍒嗛〉鏌ヨ锛屾棫鐗堟湰锛屽師鍒欎笂搴熷純 * @param vo * @return */ @@ -253,4 +254,142 @@ return BaseResponseUtils.buildException(e.getMessage()); } } + + /** + * 娣诲姞椤圭洰锛屾柊鐗堟湰锛屼娇鐢ㄨ繖涓� + * @param po 椤圭洰瀹炰綋瀵硅薄 + * @param bindingResult + * @return 娣诲姞鏄惁鎴愬姛 + */ + @PostMapping(path = "addIrrigateProject", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> addIrrigateProject(@RequestBody @Valid IrrigateProject po, BindingResult bindingResult) { + if (bindingResult != null && bindingResult.hasErrors()) { + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + Map map_result = projectSv.addIrrigateProject(po); + if(map_result.get("success").equals(false)) { + return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString()); + } + return BaseResponseUtils.buildSuccess() ; + + //String projectName = po.getProjectName(); + //String irrigateGroups = po.getIrrigateGroups(); + //Long operatorId = po.getOperatorId(); + // + //IrProject irProject = new IrProject(); + //irProject.setProjectName(projectName); + //irProject.setProjectState((byte)1); + //irProject.setOperator(operatorId); + //irProject.setOperateTime(new Date()); + //irProject.setDeleted((byte)0); + //Long projectId = projectSv.addIrrigateProject(irProject); + //if(projectId == null) { + // return BaseResponseUtils.buildErrorMsg("鍒涘缓鐏屾簤椤圭洰澶辫触"); + //} + // + //String[] irrigateGroupArr = irrigateGroups.split(","); + //Integer sort = 1; + //for(String irrigateGroupId : irrigateGroupArr) { + // String trimmed = irrigateGroupId.trim(); + // if(trimmed.isEmpty()) { + // continue; + // } + // try { + // Long irrigateGroupIdLong = Long.parseLong(trimmed); + // IrProjectGroup irProjectGroup = new IrProjectGroup(); + // irProjectGroup.setProjectId(projectId); + // irProjectGroup.setGroupId(irrigateGroupIdLong); + // irProjectGroup.setSort(sort++); + // projectSv.projectBindGroup(irProjectGroup); + // + // } catch (NumberFormatException e) { + // return BaseResponseUtils.buildErrorMsg("鐏屾簤缁処D鏍煎紡閿欒"); + // } + //} + + } + + /** + * 鍒犻櫎椤圭洰锛屾柊鐗堟湰锛屼娇鐢ㄨ繖涓� + * @param projectId + * @return + */ + @PostMapping(path = "deleteIrrigateProject") + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> deleteIrrigateProject(@RequestParam(required = false) Long projectId) { + if(projectId == null) { + return BaseResponseUtils.buildErrorMsg("椤圭洰ID涓嶈兘涓虹┖"); + } + + Map map_result = projectSv.deleteIrrigateProject(projectId); + if(map_result.get("success").equals(false)) { + return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString()); + } + return BaseResponseUtils.buildSuccess() ; + } + + /** + * 淇敼椤圭洰锛屾柊鐗堟湰锛屼娇鐢ㄨ繖涓� + * @param po + * @param bindingResult + * @return + */ + @PostMapping(path = "updateIrrigateProject", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> updateIrrigateProject(@RequestBody @Valid IrrigateProject po, BindingResult bindingResult){ + if (bindingResult != null && bindingResult.hasErrors()) { + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + if(po.getProjectId() == null) { + return BaseResponseUtils.buildErrorMsg("椤圭洰ID涓嶈兘涓虹┖"); + } + + Map map_result = projectSv.updateIrrigateProject(po); + if(map_result.get("success").equals(false)) { + return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString()); + } + return BaseResponseUtils.buildSuccess() ; + } + + /** + * 鍒嗛〉鏌ヨ椤圭洰锛屾柊鐗堟湰锛岀洰鍓嶄娇鐢� + * @param qo + * @return + */ + @GetMapping(path = "/getSimpleProjects") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoProjectSimple>>> getSimpleProjects(QueryVo qo) { + try { + QueryResultVo<List<VoProjectSimple>> res = projectSv.getSimpleProjects(qo); + return BaseResponseUtils.buildSuccess(res); + } catch (Exception e) { + log.error("鑾峰彇椤圭洰璁板綍寮傚父", e); + return BaseResponseUtils.buildException(e.getMessage()); + } + } + + /** + * 鏍规嵁椤圭洰Id鑾峰彇椤圭洰璇︽儏锛岀紪杈戦」鐩俊鎭娇鐢� + * @param projectId + * @return + */ + @GetMapping(path = "getProject") + @SsoAop() + public BaseResponse<VoProjectDetail> getProject(@RequestParam Long projectId) { + if(projectId == null) { + return BaseResponseUtils.buildErrorMsg("椤圭洰ID涓嶈兘涓虹┖"); + } + + Map map_result = projectSv.getProjectDetail(projectId); + if(map_result.get("success").equals(false)) { + return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString()); + } + return BaseResponseUtils.buildSuccess(map_result.get("content")) ; + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java index adad9dc..0e913ac 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java @@ -2,16 +2,24 @@ import com.dy.common.webUtil.QueryResultVo; +import com.dy.pipIrrGlobal.daoIr.IrProjectGroupMapper; import com.dy.pipIrrGlobal.daoIr.IrProjectMapper; import com.dy.pipIrrGlobal.pojoIr.IrProject; +import com.dy.pipIrrGlobal.pojoIr.IrProjectGroup; import com.dy.pipIrrGlobal.voIr.VoProject; +import com.dy.pipIrrGlobal.voIr.VoProjectDetail; import com.dy.pipIrrGlobal.voIr.VoProjectOne; +import com.dy.pipIrrGlobal.voIr.VoProjectSimple; +import com.dy.pipIrrIrrigate.project.dto.IrrigateProject; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.utils.PojoUtils; +import org.springframework.aop.framework.AopContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -27,9 +35,11 @@ @Autowired private IrProjectMapper irProjectMapper; + @Autowired + private IrProjectGroupMapper irProjectGroupMapper; + /** - * 娣诲姞椤圭洰 - * + * 娣诲姞椤圭洰锛屾棫鐗堟湰锛屽師鍒欎笂搴熷純 * @param po * @return */ @@ -62,8 +72,121 @@ } /** - * 鍒犻櫎椤圭洰 - * + * 娣诲姞椤圭洰锛岀洰鍓嶄娇鐢� + * @param po + * @return + */ + @Transactional(rollbackFor = Exception.class) + public Map addIrrigateProject(IrrigateProject po) { + String projectName = po.getProjectName(); + String irrigateGroups = po.getIrrigateGroups(); + Long operatorId = po.getOperatorId(); + + IrProject irProject = new IrProject(); + irProject.setProjectName(projectName); + irProject.setProjectState((byte)1); + irProject.setOperator(operatorId); + irProject.setOperateTime(new Date()); + irProject.setDeleted((byte)0); + irProjectMapper.insert(irProject); + Long projectId = irProject.getId(); + if(projectId == null) { + Map map = new HashMap<>(); + map.put("success", false); + map.put("msg", "鍒涘缓鐏屾簤椤圭洰澶辫触"); + map.put("content", null); + return map; + } + + String[] irrigateGroupArr = irrigateGroups.split(","); + Integer sort = 1; + for(String irrigateGroupId : irrigateGroupArr) { + String trimmed = irrigateGroupId.trim(); + if(trimmed.isEmpty()) { + continue; + } + try { + Long irrigateGroupIdLong = Long.parseLong(trimmed); + IrProjectGroup irProjectGroup = new IrProjectGroup(); + irProjectGroup.setProjectId(projectId); + irProjectGroup.setGroupId(irrigateGroupIdLong); + irProjectGroup.setSort(sort++); + irProjectGroupMapper.insert(irProjectGroup); + } catch (NumberFormatException e) { + Map map = new HashMap<>(); + map.put("success", false); + map.put("msg", "鐏屾簤缁処D鏍煎紡閿欒"); + map.put("content", null); + return map; + } + } + Map map = new HashMap<>(); + map.put("success", true); + map.put("msg", "娣诲姞鐏屾簤椤圭洰鎴愬姛"); + map.put("content", null); + return map; + } + + /** + * 鍒犻櫎鐏屾簤椤圭洰锛岀洰鍓嶄娇鐢� + * @param projectId + * @return + */ + @Transactional(rollbackFor = Exception.class) + public Map deleteIrrigateProject(Long projectId) { + try { + irProjectGroupMapper.unbindGroup(projectId); + irProjectMapper.deleteByPrimaryKey(projectId); + + Map map = new HashMap<>(); + map.put("success", true); + map.put("msg", "鐏屾簤椤圭洰鍒犻櫎鎴愬姛"); + map.put("content", null); + return map; + } catch (Exception e) { + Map map = new HashMap<>(); + map.put("success", false); + map.put("msg", "鐏屾簤椤圭洰鍒犻櫎澶辫触"); + map.put("content", null); + return map; + } + } + + /** + * 淇敼鐏屾簤椤圭洰锛岀洰鍓嶄娇鐢� + * @param po + * @return + */ + @Transactional(rollbackFor = Exception.class) + public Map updateIrrigateProject(IrrigateProject po) { + Long projectId = po.getProjectId(); + Map map_deleteProject = ((ProjectSv) AopContext.currentProxy()).deleteIrrigateProject(projectId); + if(map_deleteProject.get("success").equals(false)) { + Map map = new HashMap<>(); + map.put("success", false); + map.put("msg", map_deleteProject.get("msg").toString()); + map.put("content", null); + return map; + } + + Map map_addProject = ((ProjectSv) AopContext.currentProxy()).addIrrigateProject(po); + if(map_addProject.get("success").equals(false)) { + Map map = new HashMap<>(); + map.put("success", false); + map.put("msg", map_addProject.get("msg").toString()); + map.put("content", null); + return map; + } + + Map map = new HashMap<>(); + map.put("success", true); + map.put("msg", "淇敼鐏屾簤椤圭洰鎴愬姛"); + map.put("content", null); + return map; + } + + /** + * 鍒犻櫎椤圭洰锛屾棫鐗堟湰锛屽師鍒欎笂搴熷純 * @param id */ public Integer deleteProject(Long id) { @@ -131,7 +254,7 @@ } /** - * 鍒嗛〉鏌ヨ椤圭洰 + * 鍒嗛〉鏌ヨ椤圭洰锛屾棫鐗堟湰锛屽師鍒欎笂搴熷純 * @param queryVo * @return */ @@ -146,4 +269,43 @@ rsVo.obj = irProjectMapper.getProjects(params); return rsVo; } + + /** + * 鍒嗛〉鏌ヨ椤圭洰锛屾柊鐗堟湰锛岀洰鍓嶄娇鐢� + * @param queryVo + * @return + */ + public QueryResultVo<List<VoProjectSimple>> getSimpleProjects(QueryVo queryVo) { + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); + Long itemTotal = irProjectMapper.getSimpleProjectsCount(params); + + QueryResultVo<List<VoProjectSimple>> rsVo = new QueryResultVo<>(); + rsVo.pageSize = queryVo.pageSize; + rsVo.pageCurr = queryVo.pageCurr; + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = irProjectMapper.getSimpleProjects(params); + return rsVo; + } + + /** + * 鏍规嵁椤圭洰Id鑾峰彇椤圭洰璇︽儏锛岀紪杈戦」鐩俊鎭娇鐢� + * @param projectId + * @return + */ + public Map getProjectDetail(Long projectId) { + try { + VoProjectDetail voProjectDetail = irProjectMapper.getProjectDetail(projectId); + Map map = new HashMap<>(); + map.put("success", true); + map.put("msg", "鑾峰彇椤圭洰璇︽儏鎴愬姛"); + map.put("content", voProjectDetail); + return map; + } catch (Exception e) { + Map map = new HashMap<>(); + map.put("success", false); + map.put("msg", "鑾峰彇椤圭洰璇︽儏澶辫触"); + map.put("content", null); + return map; + } + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/dto/IrrigateProject.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/dto/IrrigateProject.java new file mode 100644 index 0000000..6c44efe --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/dto/IrrigateProject.java @@ -0,0 +1,40 @@ +package com.dy.pipIrrIrrigate.project.dto; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * @author ZhuBaoMin + * @date 2025-03-27 15:09 + * @LastEditTime 2025-03-27 15:09 + * @Description 鐏屾簤椤圭洰瀹炰綋绫伙紝娣诲姞椤圭洰浣跨敤 + */ + +@Data +public class IrrigateProject { + public static final long serialVersionUID = 202503271510001L; + + /** + * 椤圭洰ID锛屼慨鏀归」鐩俊鎭椂闇�瑕佷紶鍏� + */ + private Long projectId; + + /** + * 椤圭洰鍚嶇О + */ + @NotBlank(message = "椤圭洰鍚嶇О涓嶈兘涓虹┖") + private String projectName; + + /** + * 杞亴缁勫垪琛� + */ + @NotBlank(message = "椤圭洰蹇呴』鍖呭惈杞亴缁�") + private String irrigateGroups; + + /** + * 鎿嶄綔鍛業D + */ + @NotNull(message = "鎿嶄綔鍛業D涓嶈兘涓虹┖") + private Long operatorId; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java index e0c3ded..3992ced 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java @@ -29,7 +29,8 @@ "com.dy.pipIrrGlobal.daoBa", "com.dy.pipIrrGlobal.daoFi", "com.dy.pipIrrGlobal.daoAllRound", - "com.dy.pipIrrGlobal.daoLargeScreen" + "com.dy.pipIrrGlobal.daoLargeScreen", + "com.dy.pipIrrGlobal.daoIr" }) public class PipIrrRemoteApplication { diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java index 2e03d8f..e60cbae 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java @@ -60,6 +60,7 @@ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } + Long projectId = planAndSchedule.getProjectId(); Long operatorId = planAndSchedule.getOperatorId(); Byte startupMode = planAndSchedule.getStartupMode(); Date planStartTime = planAndSchedule.getPlanStartTime();; @@ -68,6 +69,20 @@ Integer duration = 0; for(IrrigateSchedule schedule : planAndSchedule.getSchedules()){ duration = duration + schedule.getDuration(); + } + + if(startupMode == 2){ + if(planStartTime == null) { + return BaseResponseUtils.buildErrorMsg("鑷姩鍚姩妯″紡蹇呴』鎸囧畾璁″垝鍚姩鏃堕棿"); + } + + LocalDateTime startTime = planStartTime.toInstant().atZone(ZoneId.systemDefault()) .toLocalDateTime(); + LocalDateTime currentTime = LocalDateTime.now(); + currentTime = currentTime.plusHours(8); + + if(!startTime.isAfter(currentTime)) { + return BaseResponseUtils.buildErrorMsg("鍚姩鏃堕棿涓嶈兘鍦�8灏忔椂涔嬪唴"); + } } //if(startupMode == 1){ @@ -80,6 +95,7 @@ //planStopTime = Date.from(stopTime.atZone(ZoneId.systemDefault()).toInstant()); IrIrrigatePlan plan = new IrIrrigatePlan(); + plan.setProjectId(projectId); plan.setPlanName(planAndSchedule.getPlanName()); plan.setStartupMode(startupMode); plan.setPlanStartTime(planStartTime); @@ -208,7 +224,9 @@ planStartTime = new Date(); } LocalDateTime startTime = planStartTime.toInstant().atZone(ZoneId.systemDefault()) .toLocalDateTime(); - startTime = startTime.plusMinutes(5); + if(startupMode == 1){ + startTime = startTime.plusMinutes(5); + } planStartTime = Date.from(startTime.atZone(ZoneId.systemDefault()).toInstant()); LocalDateTime stopTime = startTime.plusMinutes(duration); planStopTime = Date.from(stopTime.atZone(ZoneId.systemDefault()).toInstant()); diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/dto/IrrigatePlan.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/dto/IrrigatePlan.java index 7327f5b..c7fa0f7 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/dto/IrrigatePlan.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/dto/IrrigatePlan.java @@ -18,6 +18,11 @@ public static final long serialVersionUID = 202502201511001L; /** + * 椤圭洰ID + */ + private Long projectId; + + /** * 璁″垝鍚嶇О */ @NotBlank(message = "璁″垝鍚嶇О涓嶈兘涓虹┖") -- Gitblit v1.8.0