zhubaomin
2025-04-11 a1744d0bf7f0ad8ac861d672cffd7c710dac4e7e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dy.pipIrrGlobal.daoIr.IrIrrigateScheduleMapper">
  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoIr.IrIrrigateSchedule">
    <!--@mbg.generated-->
    <!--@Table ir_irrigate_schedule-->
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="group_id" jdbcType="BIGINT" property="groupId" />
    <result column="start_time" jdbcType="TIMESTAMP" property="startTime" />
    <result column="duration" jdbcType="INTEGER" property="duration" />
    <result column="current_state" jdbcType="TINYINT" property="currentState" />
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, group_id, start_time, duration, current_state
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
    <!--@mbg.generated-->
    select 
    <include refid="Base_Column_List" />
    from ir_irrigate_schedule
    where id = #{id,jdbcType=BIGINT}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
    <!--@mbg.generated-->
    delete from ir_irrigate_schedule
    where id = #{id,jdbcType=BIGINT}
  </delete>
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigateSchedule">
    <!--@mbg.generated-->
    insert into ir_irrigate_schedule (id, group_id, start_time, duration, current_state)
    values (#{id,jdbcType=BIGINT}, #{groupId,jdbcType=BIGINT},
      #{startTime,jdbcType=TIMESTAMP}, #{duration,jdbcType=INTEGER}, #{currentState,jdbcType=TINYINT})
  </insert>
  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigateSchedule">
    <!--@mbg.generated-->
    insert into ir_irrigate_schedule
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="id != null">
        id,
      </if>
      <if test="groupId != null">
        group_id,
      </if>
      <if test="startTime != null">
        start_time,
      </if>
      <if test="duration != null">
        duration,
      </if>
      <if test="currentState != null">
        current_state,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="id != null">
        #{id,jdbcType=BIGINT},
      </if>
      <if test="groupId != null">
        #{groupId,jdbcType=BIGINT},
      </if>
      <if test="startTime != null">
        #{startTime,jdbcType=TIMESTAMP},
      </if>
      <if test="duration != null">
        #{duration,jdbcType=INTEGER},
      </if>
      <if test="currentState != null">
        #{currentState,jdbcType=TINYINT},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigateSchedule">
    <!--@mbg.generated-->
    update ir_irrigate_schedule
    <set>
      <if test="groupId != null">
        group_id = #{groupId,jdbcType=BIGINT},
      </if>
      <if test="startTime != null">
        start_time = #{startTime,jdbcType=TIMESTAMP},
      </if>
      <if test="duration != null">
        duration = #{duration,jdbcType=INTEGER},
      </if>
      <if test="currentState != null">
        current_state = #{currentState,jdbcType=TINYINT},
      </if>
    </set>
    where id = #{id,jdbcType=BIGINT}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigateSchedule">
    <!--@mbg.generated-->
    update ir_irrigate_schedule
    set group_id = #{groupId,jdbcType=BIGINT},
      start_time = #{startTime,jdbcType=TIMESTAMP},
      duration = #{duration,jdbcType=INTEGER},
      current_state = #{currentState,jdbcType=TINYINT}
    where id = #{id,jdbcType=BIGINT}
  </update>
 
  <!--根据计划ID获取灌溉次序记录-->
  <select id="getSchedulesByPlanId" resultType="com.dy.pipIrrGlobal.voIr.VoIrrigateSchedule">
    SELECT
        sch.id AS scheduleId,
        sch.group_id AS groupId,
        sch.start_time AS startTime,
        sch.duration
    FROM ir_irrigate_schedule sch
        INNER JOIN ir_plan_schedule ps ON ps.schedule_id = sch.id
    WHERE current_state = 1 AND ps.plan_id = #{planId}
  </select>
 
  <!--根据灌溉次序ID更新次序开始时间-->
  <update id="updateScheduleStartTime">
    UPDATE ir_irrigate_schedule
    SET start_time = #{startTime}
    WHERE id = #{scheduleId}
  </update>
 
  <!--根据计划ID终止灌溉次序,将灌溉次序的当前状态改为已终止-->
  <update id="terminateSchedule">
    UPDATE ir_irrigate_schedule sch
      INNER JOIN ir_plan_schedule ps ON ps.schedule_id = sch.id
      INNER JOIN ir_irrigate_plan plan ON ps.plan_id = plan.id
    SET sch.current_state = 2
    WHERE plan.id = #{planId}
  </update>
 
</mapper>