<?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.daoSt.StClientAmountYearMapper"> 
 | 
  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSt.StClientAmountYear"> 
 | 
    <!--@mbg.generated--> 
 | 
    <!--@Table st_client_amount_year--> 
 | 
    <id column="id" jdbcType="BIGINT" property="id" /> 
 | 
    <result column="client_id" jdbcType="BIGINT" property="clientId" /> 
 | 
    <result column="year" jdbcType="INTEGER" property="year" /> 
 | 
    <result column="amount" jdbcType="FLOAT" property="amount" /> 
 | 
    <result column="money" jdbcType="FLOAT" property="money" /> 
 | 
    <result column="times" jdbcType="INTEGER" property="times" /> 
 | 
  </resultMap> 
 | 
  <sql id="Base_Column_List"> 
 | 
    <!--@mbg.generated--> 
 | 
    id, client_id, `year`, amount, money, times 
 | 
  </sql> 
 | 
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> 
 | 
    <!--@mbg.generated--> 
 | 
    select  
 | 
    <include refid="Base_Column_List" /> 
 | 
    from st_client_amount_year 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </select> 
 | 
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> 
 | 
    <!--@mbg.generated--> 
 | 
    delete from st_client_amount_year 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </delete> 
 | 
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSt.StClientAmountYear"> 
 | 
    <!--@mbg.generated--> 
 | 
    insert into st_client_amount_year (id, client_id, `year`,  
 | 
      amount, money, times) 
 | 
    values (#{id,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, #{year,jdbcType=INTEGER},  
 | 
      #{amount,jdbcType=FLOAT}, #{money,jdbcType=FLOAT}, #{times,jdbcType=INTEGER}) 
 | 
  </insert> 
 | 
  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSt.StClientAmountYear"> 
 | 
    <!--@mbg.generated--> 
 | 
    insert into st_client_amount_year 
 | 
    <trim prefix="(" suffix=")" suffixOverrides=","> 
 | 
      <if test="id != null"> 
 | 
        id, 
 | 
      </if> 
 | 
      <if test="clientId != null"> 
 | 
        client_id, 
 | 
      </if> 
 | 
      <if test="year != null"> 
 | 
        `year`, 
 | 
      </if> 
 | 
      <if test="amount != null"> 
 | 
        amount, 
 | 
      </if> 
 | 
      <if test="money != null"> 
 | 
        money, 
 | 
      </if> 
 | 
      <if test="times != null"> 
 | 
        times, 
 | 
      </if> 
 | 
    </trim> 
 | 
    <trim prefix="values (" suffix=")" suffixOverrides=","> 
 | 
      <if test="id != null"> 
 | 
        #{id,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="clientId != null"> 
 | 
        #{clientId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="year != null"> 
 | 
        #{year,jdbcType=INTEGER}, 
 | 
      </if> 
 | 
      <if test="amount != null"> 
 | 
        #{amount,jdbcType=FLOAT}, 
 | 
      </if> 
 | 
      <if test="money != null"> 
 | 
        #{money,jdbcType=FLOAT}, 
 | 
      </if> 
 | 
      <if test="times != null"> 
 | 
        #{times,jdbcType=INTEGER}, 
 | 
      </if> 
 | 
    </trim> 
 | 
  </insert> 
 | 
  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSt.StClientAmountYear"> 
 | 
    <!--@mbg.generated--> 
 | 
    update st_client_amount_year 
 | 
    <set> 
 | 
      <if test="clientId != null"> 
 | 
        client_id = #{clientId,jdbcType=BIGINT}, 
 | 
      </if> 
 | 
      <if test="year != null"> 
 | 
        `year` = #{year,jdbcType=INTEGER}, 
 | 
      </if> 
 | 
      <if test="amount != null"> 
 | 
        amount = #{amount,jdbcType=FLOAT}, 
 | 
      </if> 
 | 
      <if test="money != null"> 
 | 
        money = #{money,jdbcType=FLOAT}, 
 | 
      </if> 
 | 
      <if test="times != null"> 
 | 
        times = #{times,jdbcType=INTEGER}, 
 | 
      </if> 
 | 
    </set> 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </update> 
 | 
  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSt.StClientAmountYear"> 
 | 
    <!--@mbg.generated--> 
 | 
    update st_client_amount_year 
 | 
    set client_id = #{clientId,jdbcType=BIGINT}, 
 | 
      `year` = #{year,jdbcType=INTEGER}, 
 | 
      amount = #{amount,jdbcType=FLOAT}, 
 | 
      money = #{money,jdbcType=FLOAT}, 
 | 
      times = #{times,jdbcType=INTEGER} 
 | 
    where id = #{id,jdbcType=BIGINT} 
 | 
  </update> 
 | 
  
 | 
  <!-- ////////////////////////////////// --> 
 | 
  <!-- 查询统计结果                         --> 
 | 
  <!-- ////////////////////////////////// --> 
 | 
  <select id="selectCountYearStatistics" resultType="java.lang.Long"> 
 | 
    select 
 | 
    count(*) 
 | 
    from se_client mtb 
 | 
    where mtb.deleted != 1 
 | 
    <trim prefix="and" suffixOverrides="and"> 
 | 
      <if test="name != null and name != ''"> 
 | 
        mtb.name like concat('%', #{name}, '%') 
 | 
      </if> 
 | 
    </trim> 
 | 
  </select> 
 | 
  
 | 
  <select id="selectClientIds4YearStatistics" resultType="com.dy.pipIrrGlobal.voSt.VoStClientIdAmountYearRecord"> 
 | 
    select 
 | 
    mtb.id as clientId 
 | 
    from se_client mtb 
 | 
    where mtb.deleted != 1 
 | 
    <trim prefix="and" suffixOverrides="and"> 
 | 
      <if test="name != null and name != ''"> 
 | 
        mtb.name like concat('%', #{name}, '%') 
 | 
      </if> 
 | 
    </trim> 
 | 
    order by mtb.id 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="selectYearStatistics" resultType="com.dy.pipIrrGlobal.voSt.VoStClientAmountYearRecord"> 
 | 
    select 
 | 
    ctb.id as clientId, 
 | 
    ctb.clientNum as clientNum, 
 | 
    ctb.name as clientName, 
 | 
    ctb.address as clientAddress, 
 | 
    cayTb.amount as amount, 
 | 
    cayTb.money as money, 
 | 
    cayTb.times as times 
 | 
    from se_client ctb 
 | 
    <if test="clientIdsJson != null and clientIdsJson !=''"> 
 | 
      INNER JOIN JSON_TABLE( 
 | 
      <!--'[{"clientId":"37142501020100215"},{"clientId":"37142501020100215"}]'--> 
 | 
      #{clientIdsJson}, 
 | 
      '$[*]' COLUMNS ( 
 | 
        clientId BIGINT PATH '$.clientId' 
 | 
        ) 
 | 
      ) clientIdTb ON clientIdTb.clientId = ctb.id 
 | 
    </if> 
 | 
    LEFT JOIN 
 | 
    ( 
 | 
      select * 
 | 
      from st_client_amount_year 
 | 
      <where> 
 | 
        <if test="year != null"> 
 | 
          `year` = #{year,jdbcType=INTEGER} 
 | 
        </if> 
 | 
      </where> 
 | 
    ) as cayTb 
 | 
    on cayTb.client_id = clientIdTb.clientId 
 | 
    where ctb.deleted != 1 
 | 
    <trim prefix="and" suffixOverrides="and"> 
 | 
      <!-- 2025-07-14 的selectClientIds4YearStatisticssselectClientIds4YearStatistics查询中已经用了name条件 
 | 
      <if test="name != null and name != ''"> 
 | 
        and ctb.name like concat('%', #{clientName}, '%') 
 | 
      </if> 
 | 
       --> 
 | 
    </trim> 
 | 
    order by ctb.id DESC 
 | 
    <!-- 2025-07-14 因为有clientIdsJson限制了数量,所以不再用limit了 
 | 
    <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="selectByYear" resultMap="BaseResultMap"> 
 | 
    select 
 | 
    <include refid="Base_Column_List" /> 
 | 
    from st_client_amount_year 
 | 
    <where> 
 | 
      <if test="year != null"> 
 | 
        and `year` = #{year,jdbcType=INTEGER} 
 | 
      </if> 
 | 
    </where> 
 | 
  </select> 
 | 
  
 | 
  
 | 
  <!-- ////////////////////////////////// --> 
 | 
  <!-- 临时任务相关                         --> 
 | 
  <!-- ////////////////////////////////// --> 
 | 
  <delete id="deleteAll"> 
 | 
    delete from st_client_amount_year 
 | 
  </delete> 
 | 
  
 | 
</mapper> 
 |