|  |  |  | 
|---|
|  |  |  | <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 | 
|---|
|  |  |  | id, client_id, `year`, amount, money, times | 
|---|
|  |  |  | </sql> | 
|---|
|  |  |  | <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> | 
|---|
|  |  |  | <!--@mbg.generated--> | 
|---|
|  |  |  | 
|---|
|  |  |  | <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSt.StClientAmountYear"> | 
|---|
|  |  |  | <!--@mbg.generated--> | 
|---|
|  |  |  | insert into st_client_amount_year (id, client_id, `year`, | 
|---|
|  |  |  | amount, money) | 
|---|
|  |  |  | amount, money, times) | 
|---|
|  |  |  | values (#{id,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, #{year,jdbcType=INTEGER}, | 
|---|
|  |  |  | #{amount,jdbcType=FLOAT}, #{money,jdbcType=FLOAT}) | 
|---|
|  |  |  | #{amount,jdbcType=FLOAT}, #{money,jdbcType=FLOAT}, #{times,jdbcType=INTEGER}) | 
|---|
|  |  |  | </insert> | 
|---|
|  |  |  | <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSt.StClientAmountYear"> | 
|---|
|  |  |  | <!--@mbg.generated--> | 
|---|
|  |  |  | 
|---|
|  |  |  | <if test="money != null"> | 
|---|
|  |  |  | money, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="times != null"> | 
|---|
|  |  |  | times, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | </trim> | 
|---|
|  |  |  | <trim prefix="values (" suffix=")" suffixOverrides=","> | 
|---|
|  |  |  | <if test="id != null"> | 
|---|
|  |  |  | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="money != null"> | 
|---|
|  |  |  | #{money,jdbcType=FLOAT}, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="times != null"> | 
|---|
|  |  |  | #{times,jdbcType=INTEGER}, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | </trim> | 
|---|
|  |  |  | </insert> | 
|---|
|  |  |  | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | 
|---|
|  |  |  | set client_id = #{clientId,jdbcType=BIGINT}, | 
|---|
|  |  |  | `year` = #{year,jdbcType=INTEGER}, | 
|---|
|  |  |  | amount = #{amount,jdbcType=FLOAT}, | 
|---|
|  |  |  | money = #{money,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> | 
|---|