From 34e795bedc57454c43b00cdf8e2cc2d9eb5a932a Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期五, 11 四月 2025 14:59:50 +0800
Subject: [PATCH] 优化轮灌组分页查询接口

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml |  307 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 307 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml
new file mode 100644
index 0000000..34efe21
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml
@@ -0,0 +1,307 @@
+<?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.IrIrrigateGroupMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup">
+    <!--@mbg.generated-->
+    <!--@Table ir_irrigate_group-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="group_code" jdbcType="VARCHAR" property="groupCode" />
+    <result column="default_duration" jdbcType="INTEGER" property="defaultDuration" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+    <result column="operator" jdbcType="BIGINT" property="operator" />
+    <result column="operate_time" jdbcType="TIMESTAMP" property="operateTime" />
+    <result column="deleted" jdbcType="TINYINT" property="deleted" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, group_code, default_duration, remarks, `operator`, operate_time, deleted
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from ir_irrigate_group
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from ir_irrigate_group
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup">
+    <!--@mbg.generated-->
+    insert into ir_irrigate_group (id, group_code, default_duration, 
+      remarks, `operator`, operate_time, 
+      deleted)
+    values (#{id,jdbcType=BIGINT}, #{groupCode,jdbcType=VARCHAR}, #{defaultDuration,jdbcType=INTEGER}, 
+      #{remarks,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, #{operateTime,jdbcType=TIMESTAMP}, 
+      #{deleted,jdbcType=TINYINT})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup">
+    <!--@mbg.generated-->
+    insert into ir_irrigate_group
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="groupCode != null">
+        group_code,
+      </if>
+      <if test="defaultDuration != null">
+        default_duration,
+      </if>
+      <if test="remarks != null">
+        remarks,
+      </if>
+      <if test="operator != null">
+        `operator`,
+      </if>
+      <if test="operateTime != null">
+        operate_time,
+      </if>
+      <if test="deleted != null">
+        deleted,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="groupCode != null">
+        #{groupCode,jdbcType=VARCHAR},
+      </if>
+      <if test="defaultDuration != null">
+        #{defaultDuration,jdbcType=INTEGER},
+      </if>
+      <if test="remarks != null">
+        #{remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="operator != null">
+        #{operator,jdbcType=BIGINT},
+      </if>
+      <if test="operateTime != null">
+        #{operateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="deleted != null">
+        #{deleted,jdbcType=TINYINT},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup">
+    <!--@mbg.generated-->
+    update ir_irrigate_group
+    <set>
+      <if test="groupCode != null">
+        group_code = #{groupCode,jdbcType=VARCHAR},
+      </if>
+      <if test="defaultDuration != null">
+        default_duration = #{defaultDuration,jdbcType=INTEGER},
+      </if>
+      <if test="remarks != null">
+        remarks = #{remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="operator != null">
+        `operator` = #{operator,jdbcType=BIGINT},
+      </if>
+      <if test="operateTime != null">
+        operate_time = #{operateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="deleted != null">
+        deleted = #{deleted,jdbcType=TINYINT},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup">
+    <!--@mbg.generated-->
+    update ir_irrigate_group
+    set group_code = #{groupCode,jdbcType=VARCHAR},
+      default_duration = #{defaultDuration,jdbcType=INTEGER},
+      remarks = #{remarks,jdbcType=VARCHAR},
+      `operator` = #{operator,jdbcType=BIGINT},
+      operate_time = #{operateTime,jdbcType=TIMESTAMP},
+      deleted = #{deleted,jdbcType=TINYINT}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+
+  <!--閫昏緫鍒犻櫎-->
+  <delete id="deleteLogicById" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    update ir_irrigate_group
+    set deleted = 1
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+
+  <!--淇敼涓�涓疆缃愮粍-->
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup">
+    update ir_irrigate_group
+    <set>
+      <if test="groupCode != null">
+        group_code = #{groupCode,jdbcType=VARCHAR},
+      </if>
+      <if test="remarks != null">
+        remarks = #{remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="operator != null">
+        operator = #{operator,jdbcType=BIGINT},
+      </if>
+      <if test="operateTime != null">
+        operate_time = #{operateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="deleted != null">
+        deleted = #{deleted,jdbcType=TINYINT},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+
+  <!--鏌ヤ竴涓疆缃愮粍-->
+  <select id="selectById" resultType="com.dy.pipIrrGlobal.voIr.VoGroupOne">
+    select
+    CAST(pro.id AS char)AS projectId,
+    pro.project_name  AS  projectName,
+    CAST(gro.id AS char)AS id,
+    CAST(gro.operator AS char)AS operator,
+    cli.name         AS operatorName,
+    gro.group_code   AS groupCode,
+    COUNT(gu.group_id)   AS itemCount,
+    gro.remarks,
+    gro.operate_time  AS  operateDt
+    from ir_irrigate_group gro
+    left join ir_project pro on pro.id = gro.project_id
+    left join se_client cli on cli.id = gro.operator
+    left join ir_group_unit gu on gu.group_id = gro.id
+    where gro.id = #{id,jdbcType=BIGINT} and gro.deleted = 0  and pro.deleted != 1
+  </select>
+
+  <!--鍒嗛〉鏌ヨ疆鐏岀粍-->
+  <select id="getIrrigateGroups" resultType="com.dy.pipIrrGlobal.voIr.VoGroup">
+    SELECT
+    CAST(pro.id AS char)AS projectId,
+    pro.project_name  AS  projectName,
+    CAST(gro.id AS char)AS id,
+    CAST(gro.operator AS char)AS operator,
+    cli.name         AS operatorName,
+    gro.group_code   AS groupCode,
+    COUNT(gu.group_id)   AS itemCount,
+    gro.remarks,
+    gro.operate_time  AS  operateDt
+    from ir_irrigate_group gro
+    left join ir_project pro on pro.id = gro.project_id
+    left join se_client cli on cli.id = gro.operator
+    left join ir_group_unit gu on gu.group_id = gro.id
+    <where>
+      gro.deleted = 0  and pro.deleted != 1
+      <if test="projectName != null and projectName != ''">
+        AND pro.project_name LIKE CONCAT('%', #{projectName}, '%')
+      </if>
+      <if test="groupCode != null and groupCode != ''">
+        AND gro.group_code = #{groupCode}
+      </if>
+    </where>
+    GROUP BY gro.id
+    ORDER BY gro.operate_time DESC
+    <if test="pageCurr != null and pageSize != null">
+      LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
+    </if>
+  </select>
+  <!--鍒嗛〉鏌ヨ疆鐏岀粍璁板綍鏁�-->
+  <select id="getRecordCount" resultType="java.lang.Long">
+    SELECT COUNT(*) FROM(
+    SELECT COUNT(*),gro.id AS recordCount
+    from ir_irrigate_group gro
+    left join ir_project pro on pro.id = gro.project_id
+    left join se_client cli on cli.id = gro.operator
+    left join ir_group_unit gu on gu.group_id = gro.id
+    <where>
+      gro.deleted = 0  and pro.deleted != 1
+      <if test="projectName != null and projectName != ''">
+        AND pro.project_name LIKE CONCAT('%', #{projectName}, '%')
+      </if>
+      <if test="groupCode != null and groupCode != ''">
+        AND gro.group_code = #{groupCode}
+      </if>
+    </where>
+    GROUP BY gro.id
+    ) a
+  </select>
+
+
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇杞亴缁勮褰曟暟-->
+  <select id="getSimpleGroupCount" resultType="java.lang.Long">
+    SELECT COUNT(*) AS recordCount
+    FROM ir_irrigate_group grp
+    <where>
+      AND grp.deleted = 0
+      <if test="projectId != null">
+        AND pg.project_id = #{projectId}
+      </if>
+      <if test="groupCode != null and groupCode != ''">
+        AND grp.group_code LIKE CONCAT('%', #{groupCode}, '%')
+      </if>
+    </where>
+  </select>
+
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇杞亴缁勫垪琛�-->
+  <select id="getSimpleGroups" resultType="com.dy.pipIrrGlobal.voIr.VoGroupSimple">
+    SELECT
+        grp.id AS groupId,
+        grp.group_code AS groupCode,
+        (SELECT COUNT(*) FROM ir_group_intake WHERE group_id = grp.id) AS intakeCount,
+        grp.default_duration AS defaultDuration,
+        0 as sort
+    FROM ir_irrigate_group grp
+    <where>
+      AND grp.deleted = 0
+
+      <if test="projectId != null">
+        AND pg.project_id = #{projectId}
+      </if>
+
+      <if test="groupCode != null and groupCode != ''">
+        AND grp.group_code LIKE CONCAT('%', #{groupCode}, '%')
+      </if>
+    </where>
+    ORDER BY grp.operate_time DESC
+    <trim prefix="limit ">
+      <if test="start != null and count != null">
+        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+      </if>
+    </trim>
+  </select>
+
+  <select id="getGroupDetail" resultType="com.dy.pipIrrGlobal.voIr.VoGroupDetail">
+    SELECT
+      groupCode,
+      defaultDuration,
+      GROUP_CONCAT(intakeId) AS intakes
+    FROM
+      (
+        SELECT
+          grp.group_code AS groupCode,
+          grp.default_duration AS defaultDuration,
+          inta.id AS intakeId
+        FROM ir_irrigate_group grp
+               INNER JOIN ir_group_intake gi ON gi.group_id = grp.id
+               INNER JOIN pr_intake inta ON inta.id = gi.intake_id
+        WHERE grp.deleted = 0 AND grp.id = #{groupId}
+      ) irrigateGroup
+    GROUP BY groupCode,defaultDuration
+  </select>
+
+  <select id="getGroupResult" resultType="com.dy.pipIrrGlobal.voIr.VoGroupResult">
+    SELECT
+        grp.id AS groupId,
+        grp.group_code AS groupCode,
+        IF(NOW() &lt; sche.start_time, 2,
+        IF(NOW() > sche.start_time AND NOW() &lt; DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE), 3, 4)) AS state,
+        sche.start_time AS startTime,
+        DATE_ADD(sche.start_time, INTERVAL sche.duration MINUTE) AS stopTime,
+        sche.duration,
+        NULL AS publishResult
+    FROM ir_irrigate_group  grp
+        INNER JOIN ir_irrigate_schedule sche ON sche.group_id = grp.id
+        INNER JOIN ir_plan_schedule ps ON ps.schedule_id = sche.id
+    WHERE ps.plan_id = #{planId};
+  </select>
+</mapper>
\ No newline at end of file

--
Gitblit v1.8.0