From 4a2deb11b819dd78a8c75e244ef67ec2e48cf5f5 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期一, 14 四月 2025 21:03:28 +0800 Subject: [PATCH] 重构轮灌组修改接口 --- pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml | 1320 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 1,123 insertions(+), 197 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml index ac46b99..4f198b9 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml @@ -1,213 +1,1139 @@ <?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.daoRm.RmIntakeAmountDayMapper"> - <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay"> - <!--@mbg.generated--> - <!--@Table rm_intake_amount_day--> - <id column="id" jdbcType="BIGINT" property="id" /> - <result column="intake_id" jdbcType="BIGINT" property="intakeId" /> - <result column="dt" jdbcType="DATE" property="dt" /> - <result column="amount" jdbcType="DOUBLE" property="amount" /> - <result column="dt_last" jdbcType="TIMESTAMP" property="dtLast" /> - <result column="rtu_addr_last" jdbcType="VARCHAR" property="rtuAddrLast" /> - <result column="controller_id_last" jdbcType="BIGINT" property="controllerIdLast" /> - <result column="total_amount_last" jdbcType="FLOAT" property="totalAmountLast" /> - <result column="rtu_dt_last" jdbcType="TIMESTAMP" property="rtuDtLast" /> - </resultMap> - <sql id="Base_Column_List"> - <!--@mbg.generated--> - id, intake_id, dt, amount, dt_last, rtu_addr_last, controller_id_last, total_amount_last, - rtu_dt_last - </sql> - <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> - <!--@mbg.generated--> - select - <include refid="Base_Column_List" /> - from rm_intake_amount_day - where id = #{id,jdbcType=BIGINT} - </select> - <select id="selectByDate" parameterType="java.util.Date" resultMap="BaseResultMap"> - <!--@mbg.generated--> - select - <include refid="Base_Column_List" /> - from rm_intake_amount_day - where dt = #{dt,jdbcType=DATE} - </select> - <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> - <!--@mbg.generated--> - delete from rm_intake_amount_day - where id = #{id,jdbcType=BIGINT} - </delete> - <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay"> - <!--@mbg.generated--> - insert into rm_intake_amount_day (id, intake_id, dt, - amount, dt_last, - rtu_addr_last, controller_id_last, total_amount_last, - rtu_dt_last) - values (#{id,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{dt,jdbcType=DATE}, - #{amount,jdbcType=DOUBLE}, #{dtLast,jdbcType=TIMESTAMP}, - #{rtuAddrLast,jdbcType=VARCHAR}, #{controllerIdLast,jdbcType=BIGINT}, #{totalAmountLast,jdbcType=FLOAT}, - #{rtuDtLast,jdbcType=TIMESTAMP}) - </insert> - <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay"> - <!--@mbg.generated--> - insert into rm_intake_amount_day - <trim prefix="(" suffix=")" suffixOverrides=","> - <if test="id != null"> + <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay"> + <!--@mbg.generated--> + <!--@Table rm_intake_amount_day--> + <id column="id" jdbcType="BIGINT" property="id"/> + <result column="intake_id" jdbcType="BIGINT" property="intakeId"/> + <result column="dt" jdbcType="DATE" property="dt"/> + <result column="amount" jdbcType="DOUBLE" property="amount"/> + <result column="money" jdbcType="DOUBLE" property="money" /> + <result column="times" jdbcType="INTEGER" property="times" /> + <result column="dt_last" jdbcType="TIMESTAMP" property="dtLast"/> + <result column="rtu_addr_last" jdbcType="VARCHAR" property="rtuAddrLast"/> + <result column="controller_id_last" jdbcType="BIGINT" property="controllerIdLast"/> + <result column="total_amount_last" jdbcType="FLOAT" property="totalAmountLast"/> + <result column="rtu_dt_last" jdbcType="TIMESTAMP" property="rtuDtLast"/> + </resultMap> + <sql id="Base_Column_List"> + <!--@mbg.generated--> id, - </if> - <if test="intakeId != null"> intake_id, - </if> - <if test="dt != null"> dt, - </if> - <if test="amount != null"> - amount, - </if> - <if test="dtLast != null"> + amount, money, times, dt_last, - </if> - <if test="rtuAddrLast != null"> rtu_addr_last, - </if> - <if test="controllerIdLast != null"> controller_id_last, - </if> - <if test="totalAmountLast != null"> total_amount_last, - </if> - <if test="rtuDtLast != null"> - rtu_dt_last, - </if> - </trim> - <trim prefix="values (" suffix=")" suffixOverrides=","> - <if test="id != null"> - #{id,jdbcType=BIGINT}, - </if> - <if test="intakeId != null"> - #{intakeId,jdbcType=BIGINT}, - </if> - <if test="dt != null"> - #{dt,jdbcType=DATE}, - </if> - <if test="amount != null"> - #{amount,jdbcType=DOUBLE}, - </if> - <if test="dtLast != null"> - #{dtLast,jdbcType=TIMESTAMP}, - </if> - <if test="rtuAddrLast != null"> - #{rtuAddrLast,jdbcType=VARCHAR}, - </if> - <if test="controllerIdLast != null"> - #{controllerIdLast,jdbcType=BIGINT}, - </if> - <if test="totalAmountLast != null"> - #{totalAmountLast,jdbcType=FLOAT}, - </if> - <if test="rtuDtLast != null"> - #{rtuDtLast,jdbcType=TIMESTAMP}, - </if> - </trim> - </insert> - <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay"> - <!--@mbg.generated--> - update rm_intake_amount_day - <set> - <if test="intakeId != null"> - intake_id = #{intakeId,jdbcType=BIGINT}, - </if> - <if test="dt != null"> - dt = #{dt,jdbcType=DATE}, - </if> - <if test="amount != null"> - amount = #{amount,jdbcType=DOUBLE}, - </if> - <if test="dtLast != null"> - dt_last = #{dtLast,jdbcType=TIMESTAMP}, - </if> - <if test="rtuAddrLast != null"> - rtu_addr_last = #{rtuAddrLast,jdbcType=VARCHAR}, - </if> - <if test="controllerIdLast != null"> - controller_id_last = #{controllerIdLast,jdbcType=BIGINT}, - </if> - <if test="totalAmountLast != null"> - total_amount_last = #{totalAmountLast,jdbcType=FLOAT}, - </if> - <if test="rtuDtLast != null"> - rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP}, - </if> - </set> - where id = #{id,jdbcType=BIGINT} - </update> - <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay"> - <!--@mbg.generated--> - update rm_intake_amount_day - set intake_id = #{intakeId,jdbcType=BIGINT}, - dt = #{dt,jdbcType=DATE}, - amount = #{amount,jdbcType=DOUBLE}, - dt_last = #{dtLast,jdbcType=TIMESTAMP}, - rtu_addr_last = #{rtuAddrLast,jdbcType=VARCHAR}, - controller_id_last = #{controllerIdLast,jdbcType=BIGINT}, - total_amount_last = #{totalAmountLast,jdbcType=FLOAT}, - rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP} - where id = #{id,jdbcType=BIGINT} - </update> - <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍鎬绘暟--> - <select id="getRecordCount" resultType="java.lang.Long"> - select count(*) - from rm_intake_amount_day riad - Left join pr_intake pint on pint.id = riad.intake_id - <where> - <if test="intakeName != null"> - and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%') - </if> - <if test="startDt != null"> - and riad.dt >= #{startDt,jdbcType=DATE} - </if> - <if test="endDt != null"> - and riad.dt <= #{endDt,jdbcType=DATE} - </if> - </where> + rtu_dt_last + </sql> + <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> + <!--@mbg.generated--> + select + <include refid="Base_Column_List"/> + from rm_intake_amount_day + where id = #{id,jdbcType=BIGINT} </select> - <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍--> - <select id="getIntakeAmountDayHistory" resultType="com.dy.pipIrrGlobal.voRm.VoIntakeAmountDay"> - select - CAST(riad.intake_id AS char)AS intakeId, - pint.name as intakeName, - riad.dt as dt, - riad.amount as amount, - riad.dt_last as dtLast, - riad.rtu_addr_last as rtuAddrLast, - CAST(riad.controller_id_last AS char)AS controllerIdLast, - riad.total_amount_last as totalAmountLast, - riad.rtu_dt_last as rtuDtLast - from rm_intake_amount_day riad - Left join pr_intake pint on pint.id = riad.intake_id - <where> - <if test="intakeName != null"> - and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%') - </if> - <if test="startDt != null"> - and riad.dt >= #{startDt,jdbcType=DATE} - </if> - <if test="endDt != null"> - and riad.dt <= #{endDt,jdbcType=DATE} - </if> - </where> - ORDER BY riad.id DESC - <if test="pageCurr != null and pageSize != null"> - LIMIT ${(pageCurr-1)*pageSize}, ${pageSize} - </if> + <select id="selectByDate" parameterType="java.util.Date" resultMap="BaseResultMap"> + <!--@mbg.generated--> + select + <include refid="Base_Column_List"/> + from rm_intake_amount_day + where dt = #{dt,jdbcType=DATE} + </select> + <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> + <!--@mbg.generated--> + delete + from rm_intake_amount_day + where id = #{id,jdbcType=BIGINT} + </delete> + <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay"> + <!--@mbg.generated--> + insert into rm_intake_amount_day (id, intake_id, dt, + amount, money, times, dt_last, + rtu_addr_last, controller_id_last, total_amount_last, + rtu_dt_last) + values (#{id,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{dt,jdbcType=DATE}, + #{amount,jdbcType=DOUBLE}, #{money,jdbcType=DOUBLE}, #{times,jdbcType=INTEGER}, #{dtLast,jdbcType=TIMESTAMP}, + #{rtuAddrLast,jdbcType=VARCHAR}, #{controllerIdLast,jdbcType=BIGINT}, #{totalAmountLast,jdbcType=FLOAT}, + #{rtuDtLast,jdbcType=TIMESTAMP}) + </insert> + <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay"> + <!--@mbg.generated--> + insert into rm_intake_amount_day + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="intakeId != null"> + intake_id, + </if> + <if test="dt != null"> + dt, + </if> + <if test="amount != null"> + amount, + </if> + <if test="money != null"> + money, + </if> + <if test="times != null"> + times, + </if> + <if test="dtLast != null"> + dt_last, + </if> + <if test="rtuAddrLast != null"> + rtu_addr_last, + </if> + <if test="controllerIdLast != null"> + controller_id_last, + </if> + <if test="totalAmountLast != null"> + total_amount_last, + </if> + <if test="rtuDtLast != null"> + rtu_dt_last, + </if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> + #{id,jdbcType=BIGINT}, + </if> + <if test="intakeId != null"> + #{intakeId,jdbcType=BIGINT}, + </if> + <if test="dt != null"> + #{dt,jdbcType=DATE}, + </if> + <if test="amount != null"> + #{amount,jdbcType=DOUBLE}, + </if> + <if test="money != null"> + #{money,jdbcType=DOUBLE}, + </if> + <if test="times != null"> + #{times,jdbcType=INTEGER}, + </if> + <if test="dtLast != null"> + #{dtLast,jdbcType=TIMESTAMP}, + </if> + <if test="rtuAddrLast != null"> + #{rtuAddrLast,jdbcType=VARCHAR}, + </if> + <if test="controllerIdLast != null"> + #{controllerIdLast,jdbcType=BIGINT}, + </if> + <if test="totalAmountLast != null"> + #{totalAmountLast,jdbcType=FLOAT}, + </if> + <if test="rtuDtLast != null"> + #{rtuDtLast,jdbcType=TIMESTAMP}, + </if> + </trim> + </insert> + <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay"> + <!--@mbg.generated--> + update rm_intake_amount_day + <set> + <if test="intakeId != null"> + intake_id = #{intakeId,jdbcType=BIGINT}, + </if> + <if test="dt != null"> + dt = #{dt,jdbcType=DATE}, + </if> + <if test="amount != null"> + amount = #{amount,jdbcType=DOUBLE}, + </if> + <if test="money != null"> + money = #{money,jdbcType=DOUBLE}, + </if> + <if test="times != null"> + times = #{times,jdbcType=INTEGER}, + </if> + <if test="dtLast != null"> + dt_last = #{dtLast,jdbcType=TIMESTAMP}, + </if> + <if test="rtuAddrLast != null"> + rtu_addr_last = #{rtuAddrLast,jdbcType=VARCHAR}, + </if> + <if test="controllerIdLast != null"> + controller_id_last = #{controllerIdLast,jdbcType=BIGINT}, + </if> + <if test="totalAmountLast != null"> + total_amount_last = #{totalAmountLast,jdbcType=FLOAT}, + </if> + <if test="rtuDtLast != null"> + rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP}, + </if> + </set> + where id = #{id,jdbcType=BIGINT} + </update> + <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay"> + <!--@mbg.generated--> + update rm_intake_amount_day + set intake_id = #{intakeId,jdbcType=BIGINT}, + dt = #{dt,jdbcType=DATE}, + amount = #{amount,jdbcType=DOUBLE}, + money = #{money,jdbcType=DOUBLE}, + times = #{times,jdbcType=INTEGER}, + dt_last = #{dtLast,jdbcType=TIMESTAMP}, + rtu_addr_last = #{rtuAddrLast,jdbcType=VARCHAR}, + controller_id_last = #{controllerIdLast,jdbcType=BIGINT}, + total_amount_last = #{totalAmountLast,jdbcType=FLOAT}, + rtu_dt_last = #{rtuDtLast,jdbcType=TIMESTAMP} + where id = #{id,jdbcType=BIGINT} + </update> + <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍鎬绘暟--> + <select id="getRecordCount" resultType="java.lang.Long"> + select count(*) + from rm_intake_amount_day riad + Left join pr_intake pint on pint.id = riad.intake_id + <where> + <if test="intakeId != null and intakeId != ''"> + and riad.intake_id = #{intakeId} + </if> + <if test="intakeName != null and intakeName != ''"> + and pint.name like CONCAT('%', #{intakeName,jdbcType=VARCHAR}, '%') + </if> + <if test="startDt != null"> + and riad.dt >= #{startDt,jdbcType=DATE} + </if> + <if test="endDt != null"> + and riad.dt <= #{endDt,jdbcType=DATE} + </if> + </where> + </select> + <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍--> + <select id="getIntakeAmountDayHistory" resultType="com.dy.pipIrrGlobal.voRm.VoIntakeAmountDay"> + select CAST(riad.intake_id AS char) AS intakeId, + pint.name as intakeName, + riad.dt as dt, + riad.amount as amount, + riad.money as money, + riad.times as times, + riad.dt_last as dtLast, + riad.rtu_addr_last as rtuAddrLast, + CAST(riad.controller_id_last AS char) AS controllerIdLast, + riad.total_amount_last as totalAmountLast, + riad.rtu_dt_last as rtuDtLast + from rm_intake_amount_day riad + Left join pr_intake pint on pint.id = riad.intake_id + <where> + <if test="intakeId != null and intakeId != ''"> + and riad.intake_id = #{intakeId} + </if> + <if test="intakeName != null and intakeName != ''"> + and pint.name like CONCAT('%', #{intakeName,jdbcType=VARCHAR}, '%') + </if> + <if test="startDt != null"> + and riad.dt >= #{startDt,jdbcType=DATE} + </if> + <if test="endDt != null"> + and riad.dt <= #{endDt,jdbcType=DATE} + </if> + </where> + ORDER BY riad.id DESC + <!-- <if test="pageCurr != null and pageSize != null">--> + <!-- LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}--> + <!-- </if>--> + <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="statisticsByIntake" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAmountStatistics"> + select intake_id, sum(amount) amount + from rm_intake_amount_day + where id <![CDATA[>=]]> #{startId, jdbcType=BIGINT} + and id <![CDATA[<]]> #{endId, jdbcType=BIGINT} + group by intake_id + </select> + + <!--鎸囧畾鏈堜唤鍚勫ぉ鐢ㄦ按閲忚褰曟暟閲�--> + <select id="getDayIntakeAmountCount" resultType="java.lang.Long"> + SELECT COUNT(*) AS recordCount + FROM pr_intake inta + <where> + AND inta.deleted = 0 + <if test="intakeNum != null and intakeNum != ''"> + AND inta.name = #{intakeNum} + </if> + </where> + </select> + + <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鐢ㄦ按閲�--> + <select id="getDayIntakeAmount" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> + SELECT inta.id AS intakeId, + inta.name AS intakeNum, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 1), 0) AS amount1, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 2), 0) AS amount2, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 3), 0) AS amount3, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 4), 0) AS amount4, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 5), 0) AS amount5, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 6), 0) AS amount6, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 7), 0) AS amount7, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 8), 0) AS amount8, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 9), 0) AS amount9, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 10), 0) AS amount10, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 11), 0) AS amount11, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 12), 0) AS amount12, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 13), 0) AS amount13, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 14), 0) AS amount14, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 15), 0) AS amount15, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 16), 0) AS amount16, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 17), 0) AS amount17, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 18), 0) AS amount18, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 19), 0) AS amount19, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 20), 0) AS amount20, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 21), 0) AS amount21, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 22), 0) AS amount22, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 23), 0) AS amount23, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 24), 0) AS amount24, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 25), 0) AS amount25, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 26), 0) AS amount26, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 27), 0) AS amount27, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 28), 0) AS amount28, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 29), 0) AS amount29, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 30), 0) AS amount30, + IFNULL((SELECT IFNULL(amount, 0) + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = #{month} + AND DAY(intaDay.dt) = 31), 0) AS amount31 + FROM pr_intake inta + <where> + AND inta.deleted = 0 + <if test="intakeNum != null and intakeNum != ''"> + AND inta.name = #{intakeNum} + </if> + </where> + ORDER BY inta.id + <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="getMonthIntakeAmountCount" resultType="java.lang.Long"> + SELECT COUNT(*) AS recordCount + FROM pr_intake inta + <where> + AND inta.deleted = 0 + <if test="intakeNum != null and intakeNum != ''"> + AND inta.name = #{intakeNum} + </if> + </where> + </select> + + <!--缁熻鎸囧畾骞翠唤鍚勬湀鐢ㄦ按閲�--> + <select id="getMonthIntakeAmount" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount"> + SELECT inta.id AS intakeId, + inta.name AS intakeNum, + IFNULL((SELECT SUM(amount) AS amount + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = 1 + GROUP BY(intaDay.intake_id)), 0) AS month1, + IFNULL((SELECT SUM(amount) AS amount + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = 2 + GROUP BY(intaDay.intake_id)), 0) AS month2, + IFNULL((SELECT SUM(amount) AS amount + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = 3 + GROUP BY(intaDay.intake_id)), 0) AS month3, + IFNULL((SELECT SUM(amount) AS amount + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = 4 + GROUP BY(intaDay.intake_id)), 0) AS month4, + IFNULL((SELECT SUM(amount) AS amount + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = 5 + GROUP BY(intaDay.intake_id)), 0) AS month5, + IFNULL((SELECT SUM(amount) AS amount + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = 6 + GROUP BY(intaDay.intake_id)), 0) AS month6, + IFNULL((SELECT SUM(amount) AS amount + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = 7 + GROUP BY(intaDay.intake_id)), 0) AS month7, + IFNULL((SELECT SUM(amount) AS amount + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = 8 + GROUP BY(intaDay.intake_id)), 0) AS month8, + IFNULL((SELECT SUM(amount) AS amount + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = 9 + GROUP BY(intaDay.intake_id)), 0) AS month9, + IFNULL((SELECT SUM(amount) AS amount + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = 10 + GROUP BY(intaDay.intake_id)), 0) AS month10, + IFNULL((SELECT SUM(amount) AS amount + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = 11 + GROUP BY(intaDay.intake_id)), 0) AS month11, + IFNULL((SELECT SUM(amount) AS amount + FROM rm_intake_amount_day_last intaDay + WHERE intaDay.intake_id = inta.id + AND YEAR(intaDay.dt) = #{year} + AND MONTH(intaDay.dt) = 12 + GROUP BY(intaDay.intake_id)), 0) AS month12 + FROM pr_intake inta + <where> + AND inta.deleted = 0 + <if test="intakeNum != null and intakeNum != ''"> + AND inta.name = #{intakeNum} + </if> + </where> + ORDER BY inta.id + <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="selectIntakeCount4AmountDay" resultType="java.lang.Long"> + SELECT COUNT(*) + FROM pr_intake tb + <where> + AND tb.deleted != 1 + <if test="intakeNum != null and intakeNum != ''"> + AND tb.name = #{intakeNum} + </if> + </where> + </select> + + <!-- 涓烘煡璇㈢粺璁″彇姘村彛鏃ユ紡鎹熼噺锛屾煡璇竴椤靛彇姘村彛ID --> + <select id="selectIntakes4AmountDay" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> + SELECT id as intakeId, + name as intakeNum, + lat as intakeLat, + lng as intakeLng + FROM pr_intake + <where> + AND deleted != 1 + <if test="intakeNum != null and intakeNum != ''"> + AND name = #{intakeNum} + </if> + </where> + order by 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> + + <sql id="selectIntakeAmountOfDay_with"> + SELECT intaId.intakeId AS intakeId, + riad.dt AS dt, + riad.amount AS amount + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId' + ) + ) intaId + INNER JOIN rm_intake_amount_day riad ON riad.intake_id = intaId.intakeId + <where> + <if test="startDt != null "> + AND riad.dt <![CDATA[>=]]> #{startDt, javaType=DATE, jdbcType=DATE} + </if> + <if test="endDt != null "> + AND riad.dt <![CDATA[<=]]> #{endDt, javaType=DATE, jdbcType=DATE} + </if> + </where> + </sql> + + <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(1鍙峰埌5鍙�)--> + <select id="selectIntakeAmountOfDay01_05" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> + WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) + SELECT inta.intakeId AS intakeId, + inta.intakeNum AS intakeNum, + inta.intakeLng AS intakeLng, + inta.intakeLat AS intakeLat, + tb01.amount AS amount1, + tb02.amount AS amount2, + tb03.amount AS amount3, + tb04.amount AS amount4, + tb05.amount AS amount5 + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId', + intakeNum VARCHAR(100) PATH '$.intakeNum', + intakeLng DOUBLE PATH '$.intakeLng', + intakeLat DOUBLE PATH '$.intakeLat' + ) + ) inta + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 1 + ) as tb01 on tb01.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 2 + ) as tb02 on tb02.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 3 + ) as tb03 on tb03.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 4 + ) as tb04 on tb04.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 5 + ) as tb05 on tb05.intakeId = inta.intakeId </select> - <select id="statisticsByIntake" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAmountStatistics"> - select intake_id, sum(amount) amount - from rm_intake_amount_day - where id <![CDATA[>=]]> #{startId, jdbcType=BIGINT} and id <![CDATA[<]]> #{endId, jdbcType=BIGINT} - group by intake_id + <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(6鍙峰埌10鍙�)--> + <select id="selectIntakeAmountOfDay06_10" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> + WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) + SELECT inta.intakeId AS intakeId, + inta.intakeNum AS intakeNum, + inta.intakeLng AS intakeLng, + inta.intakeLat AS intakeLat, + tb06.amount AS amount6, + tb07.amount AS amount7, + tb08.amount AS amount8, + tb09.amount AS amount9, + tb10.amount AS amount10 + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId', + intakeNum VARCHAR(100) PATH '$.intakeNum', + intakeLng DOUBLE PATH '$.intakeLng', + intakeLat DOUBLE PATH '$.intakeLat' + ) + ) inta + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 6 + ) as tb06 on tb06.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 7 + ) as tb07 on tb07.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 8 + ) as tb08 on tb08.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 9 + ) as tb09 on tb09.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 10 + ) as tb10 on tb10.intakeId = inta.intakeId </select> + + <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(11鍙峰埌15鍙�)--> + <select id="selectIntakeAmountOfDay11_15" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> + WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) + SELECT inta.intakeId AS intakeId, + inta.intakeNum AS intakeNum, + inta.intakeLng AS intakeLng, + inta.intakeLat AS intakeLat, + tb11.amount AS amount11, + tb12.amount AS amount12, + tb13.amount AS amount13, + tb14.amount AS amount14, + tb15.amount AS amount15 + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId', + intakeNum VARCHAR(100) PATH '$.intakeNum', + intakeLng DOUBLE PATH '$.intakeLng', + intakeLat DOUBLE PATH '$.intakeLat' + ) + ) inta + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 11 + ) as tb11 on tb11.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 12 + ) as tb12 on tb12.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 13 + ) as tb13 on tb13.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 14 + ) as tb14 on tb14.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 15 + ) as tb15 on tb15.intakeId = inta.intakeId + </select> + + <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(20鍙峰埌16鍙�)--> + <select id="selectIntakeAmountOfDay16_20" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> + WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) + SELECT inta.intakeId AS intakeId, + inta.intakeNum AS intakeNum, + inta.intakeLng AS intakeLng, + inta.intakeLat AS intakeLat, + tb16.amount AS amount16, + tb17.amount AS amount17, + tb18.amount AS amount18, + tb19.amount AS amount19, + tb20.amount AS amount20 + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId', + intakeNum VARCHAR(100) PATH '$.intakeNum', + intakeLng DOUBLE PATH '$.intakeLng', + intakeLat DOUBLE PATH '$.intakeLat' + ) + ) inta + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 16 + ) as tb16 on tb16.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 17 + ) as tb17 on tb17.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 18 + ) as tb18 on tb18.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 19 + ) as tb19 on tb19.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 20 + ) as tb20 on tb20.intakeId = inta.intakeId + </select> + + <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(21鍙峰埌25鍙�)--> + <select id="selectIntakeAmountOfDay21_25" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> + WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) + SELECT inta.intakeId AS intakeId, + inta.intakeNum AS intakeNum, + inta.intakeLng AS intakeLng, + inta.intakeLat AS intakeLat, + tb21.amount AS amount21, + tb22.amount AS amount22, + tb23.amount AS amount23, + tb24.amount AS amount24, + tb25.amount AS amount25 + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId', + intakeNum VARCHAR(100) PATH '$.intakeNum', + intakeLng DOUBLE PATH '$.intakeLng', + intakeLat DOUBLE PATH '$.intakeLat' + ) + ) inta + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 21 + ) as tb21 on tb21.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 22 + ) as tb22 on tb22.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 23 + ) as tb23 on tb23.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 24 + ) as tb24 on tb24.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 25 + ) as tb25 on tb25.intakeId = inta.intakeId + </select> + + <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(26鍙峰埌31鍙�)--> + <select id="selectIntakeAmountOfDay26_31" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> + WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) + SELECT inta.intakeId AS intakeId, + inta.intakeNum AS intakeNum, + inta.intakeLng AS intakeLng, + inta.intakeLat AS intakeLat, + tb26.amount AS amount26, + tb27.amount AS amount27, + tb28.amount AS amount28, + tb29.amount AS amount29, + tb30.amount AS amount30, + tb31.amount AS amount31 + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId', + intakeNum VARCHAR(100) PATH '$.intakeNum', + intakeLng DOUBLE PATH '$.intakeLng', + intakeLat DOUBLE PATH '$.intakeLat' + ) + ) inta + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 26 + ) as tb26 on tb26.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 27 + ) as tb27 on tb27.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 28 + ) as tb28 on tb28.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 29 + ) as tb29 on tb29.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 30 + ) as tb30 on tb30.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 31 + ) as tb31 on tb31.intakeId = inta.intakeId + </select> + + <!--鎸囧畾鏃堕棿娈电敤姘撮噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙f暟閲�--> + <select id="getUseWaterGtValueIntakesCount" resultType="java.lang.Long"> + select + count(*) + from ( + SELECT + SUM(riad.amount) AS value + FROM + pr_intake inta + INNER JOIN ba_block blo ON blo.id = inta.blockId + INNER JOIN rm_intake_amount_day riad ON riad.intake_id = inta.id + WHERE inta.deleted = 0 and riad.dt >= #{timeStart} AND riad.dt <= #{timeStop} + GROUP BY inta.id + HAVING value > #{value} + ) c + </select> + <!--鎸囧畾鏃堕棿娈电敤姘撮噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�--> + <select id="getUseWaterGtValueIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAccumulateAmount"> + SELECT + inta.id AS intakeId, + inta.NAME AS intakeNum, + inta.lng AS lng, + inta.lat AS lat, + blo.NAME AS blockName , + SUM(riad.amount) AS value + FROM + pr_intake inta + INNER JOIN ba_block blo ON blo.id = inta.blockId + INNER JOIN rm_intake_amount_day riad ON riad.intake_id = inta.id + WHERE inta.deleted = 0 and riad.dt >= #{timeStart} AND riad.dt <= #{timeStop} + GROUP BY inta.id + HAVING value > #{value} + ORDER BY inta.id + <trim prefix="limit " > + <if test="start != null and count != null"> + #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} + </if> + </trim> + </select> + <!--鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙g殑鏁伴噺--> + <select id="getExpenseGtValueIntakesCount" resultType="java.lang.Long"> + select + count(*) + from ( + SELECT + SUM(riad.money) AS value + FROM + pr_intake inta + INNER JOIN ba_block blo ON blo.id = inta.blockId + INNER JOIN rm_intake_amount_day riad ON riad.intake_id = inta.id + WHERE inta.deleted = 0 and riad.dt >= #{timeStart} AND riad.dt <= #{timeStop} + GROUP BY inta.id + HAVING value > #{value} + ) c + </select> + <!--鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�--> + <select id="getExpenseGtValueIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAccumulateAmount"> + SELECT + inta.id AS intakeId, + inta.NAME AS intakeNum, + inta.lng AS lng, + inta.lat AS lat, + blo.NAME AS blockName , + SUM(riad.money) AS value + FROM + pr_intake inta + INNER JOIN ba_block blo ON blo.id = inta.blockId + INNER JOIN rm_intake_amount_day riad ON riad.intake_id = inta.id + WHERE inta.deleted = 0 and riad.dt >= #{timeStart} AND riad.dt <= #{timeStop} + GROUP BY inta.id + HAVING value > #{value} + ORDER BY inta.id + <trim prefix="limit " > + <if test="start != null and count != null"> + #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} + </if> + </trim> + </select> + <!--鎸囧畾鏃堕棿娈靛唴鍙栨按娆℃暟瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙g殑鏁伴噺--> + <select id="getUseWaterTimesGtValueIntakesCount" resultType="java.lang.Long"> + select + count(*) + from ( + SELECT + SUM(riad.times) AS valueInt + FROM + pr_intake inta + INNER JOIN ba_block blo ON blo.id = inta.blockId + INNER JOIN rm_intake_amount_day riad ON riad.intake_id = inta.id + WHERE inta.deleted = 0 and riad.dt >= #{timeStart} AND riad.dt <= #{timeStop} + GROUP BY inta.id + HAVING valueInt > #{value} + ) c + </select> + <!--鎸囧畾鏃堕棿娈靛唴鍙栨按娆℃暟瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�--> + <select id="getUseWaterTimesGtValueIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAccumulateAmount"> + SELECT + inta.id AS intakeId, + inta.NAME AS intakeNum, + inta.lng AS lng, + inta.lat AS lat, + blo.NAME AS blockName , + SUM(riad.times) AS valueInt + FROM + pr_intake inta + INNER JOIN ba_block blo ON blo.id = inta.blockId + INNER JOIN rm_intake_amount_day riad ON riad.intake_id = inta.id + WHERE inta.deleted = 0 and riad.dt >= #{timeStart} AND riad.dt <= #{timeStop} + GROUP BY inta.id + HAVING valueInt > #{value} + ORDER BY inta.id + <trim prefix="limit " > + <if test="start != null and count != null"> + #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} + </if> + </trim> + </select> </mapper> \ No newline at end of file -- Gitblit v1.8.0