New file |
| | |
| | | <?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.StLossMonthMapper"> |
| | | <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSt.StLossMonth"> |
| | | <!--@mbg.generated--> |
| | | <!--@Table st_loss_month--> |
| | | <id column="id" jdbcType="BIGINT" property="id" /> |
| | | <result column="intake_id" jdbcType="BIGINT" property="intakeId" /> |
| | | <result column="year" jdbcType="INTEGER" property="year" /> |
| | | <result column="month" jdbcType="INTEGER" property="month" /> |
| | | <result column="amount" jdbcType="FLOAT" property="amount" /> |
| | | </resultMap> |
| | | <sql id="Base_Column_List"> |
| | | <!--@mbg.generated--> |
| | | id, intake_id, `year`, `month`, amount |
| | | </sql> |
| | | <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> |
| | | <!--@mbg.generated--> |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from st_loss_month |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </select> |
| | | <select id="selectByIntakeIdAndYearAndMonth" resultMap="BaseResultMap"> |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from st_loss_month |
| | | <where> |
| | | <if test="intakeId != null"> |
| | | and `intake_id` = #{intakeId,jdbcType=BIGINT} |
| | | </if> |
| | | <if test="year != null"> |
| | | and `year` = #{year,jdbcType=INTEGER} |
| | | </if> |
| | | <if test="month != null"> |
| | | and `month` = #{month,jdbcType=INTEGER} |
| | | </if> |
| | | </where> |
| | | </select> |
| | | <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> |
| | | <!--@mbg.generated--> |
| | | delete from st_loss_month |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </delete> |
| | | <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSt.StLossMonth"> |
| | | <!--@mbg.generated--> |
| | | insert into st_loss_month (id, intake_id, `year`, |
| | | `month`, amount) |
| | | values (#{id,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{year,jdbcType=INTEGER}, |
| | | #{month,jdbcType=INTEGER}, #{amount,jdbcType=FLOAT}) |
| | | </insert> |
| | | <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSt.StLossMonth"> |
| | | <!--@mbg.generated--> |
| | | insert into st_loss_month |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | <if test="id != null"> |
| | | id, |
| | | </if> |
| | | <if test="intakeId != null"> |
| | | intake_id, |
| | | </if> |
| | | <if test="year != null"> |
| | | `year`, |
| | | </if> |
| | | <if test="month != null"> |
| | | `month`, |
| | | </if> |
| | | <if test="amount != null"> |
| | | amount, |
| | | </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="year != null"> |
| | | #{year,jdbcType=INTEGER}, |
| | | </if> |
| | | <if test="month != null"> |
| | | #{month,jdbcType=INTEGER}, |
| | | </if> |
| | | <if test="amount != null"> |
| | | #{amount,jdbcType=FLOAT}, |
| | | </if> |
| | | </trim> |
| | | </insert> |
| | | <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSt.StLossMonth"> |
| | | <!--@mbg.generated--> |
| | | update st_loss_month |
| | | <set> |
| | | <if test="intakeId != null"> |
| | | intake_id = #{intakeId,jdbcType=BIGINT}, |
| | | </if> |
| | | <if test="year != null"> |
| | | `year` = #{year,jdbcType=INTEGER}, |
| | | </if> |
| | | <if test="month != null"> |
| | | `month` = #{month,jdbcType=INTEGER}, |
| | | </if> |
| | | <if test="amount != null"> |
| | | amount = #{amount,jdbcType=FLOAT}, |
| | | </if> |
| | | </set> |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </update> |
| | | <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSt.StLossMonth"> |
| | | <!--@mbg.generated--> |
| | | update st_loss_month |
| | | set intake_id = #{intakeId,jdbcType=BIGINT}, |
| | | `year` = #{year,jdbcType=INTEGER}, |
| | | `month` = #{month,jdbcType=INTEGER}, |
| | | amount = #{amount,jdbcType=FLOAT} |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </update> |
| | | |
| | | |
| | | <select id="statisticsByIntake" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeLossStatistics"> |
| | | select intake_id as intakeId, |
| | | sum(amount) as amount |
| | | from st_loss_month |
| | | where `year` = #{year,jdbcType=INTEGER} |
| | | group by intake_id |
| | | </select> |
| | | |
| | | |
| | | <!-- 为查询统计取水口日漏损量,统计取水口数量 --> |
| | | <select id="selectIntakeCount4LossMonth" 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="selectIntakes4LossMonth" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount"> |
| | | 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="selectLossAmountOfMonth_with"> |
| | | SELECT intaId.intakeId AS intakeId, |
| | | sld.year AS `year`, |
| | | sld.month AS `month`, |
| | | sld.amount AS amount |
| | | FROM JSON_TABLE( |
| | | #{intakesJson}, |
| | | '$[*]' COLUMNS ( |
| | | intakeId BIGINT PATH '$.intakeId' |
| | | ) |
| | | ) intaId |
| | | INNER JOIN st_loss_month sld ON sld.intake_id = intaId.intakeId |
| | | <where> |
| | | <if test="year != null "> |
| | | AND sld.year = #{year, javaType=Integer, jdbcType=INTEGER} |
| | | </if> |
| | | </where> |
| | | </sql> |
| | | |
| | | <!--统计指定月份各月漏损量(1号到6月)--> |
| | | <select id="selectLossAmountOfMonth01_06" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount"> |
| | | WITH intakeLossAmountMonth AS (<include refid="selectLossAmountOfMonth_with" />) |
| | | SELECT inta.intakeId AS intakeId, |
| | | inta.intakeNum AS intakeNum, |
| | | inta.intakeLng AS intakeLng, |
| | | inta.intakeLat AS intakeLat, |
| | | tb01.amount AS month1, |
| | | tb02.amount AS month2, |
| | | tb03.amount AS month3, |
| | | tb04.amount AS month4, |
| | | tb05.amount AS month5, |
| | | tb06.amount AS month6 |
| | | 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 intakeLossAmountMonth AS tb |
| | | WHERE tb.year = #{year} |
| | | AND tb.month = 1 |
| | | ) as tb01 on tb01.intakeId = inta.intakeId |
| | | LEFT JOIN ( |
| | | SELECT tb.intakeId AS intakeId, |
| | | tb.amount AS amount |
| | | FROM intakeLossAmountMonth AS tb |
| | | WHERE tb.year = #{year} |
| | | AND tb.month = 2 |
| | | ) as tb02 on tb02.intakeId = inta.intakeId |
| | | LEFT JOIN ( |
| | | SELECT tb.intakeId AS intakeId, |
| | | tb.amount AS amount |
| | | FROM intakeLossAmountMonth AS tb |
| | | WHERE tb.year = #{year} |
| | | AND tb.month = 3 |
| | | ) as tb03 on tb03.intakeId = inta.intakeId |
| | | LEFT JOIN ( |
| | | SELECT tb.intakeId AS intakeId, |
| | | tb.amount AS amount |
| | | FROM intakeLossAmountMonth AS tb |
| | | WHERE tb.year = #{year} |
| | | AND tb.month = 4 |
| | | ) as tb04 on tb04.intakeId = inta.intakeId |
| | | LEFT JOIN ( |
| | | SELECT tb.intakeId AS intakeId, |
| | | tb.amount AS amount |
| | | FROM intakeLossAmountMonth AS tb |
| | | WHERE tb.year = #{year} |
| | | AND tb.month = 5 |
| | | ) as tb05 on tb05.intakeId = inta.intakeId |
| | | LEFT JOIN ( |
| | | SELECT tb.intakeId AS intakeId, |
| | | tb.amount AS amount |
| | | FROM intakeLossAmountMonth AS tb |
| | | WHERE tb.year = #{year} |
| | | AND tb.month = 6 |
| | | ) as tb06 on tb06.intakeId = inta.intakeId |
| | | </select> |
| | | |
| | | <!--统计指定月份各月漏损量(7号到12月)--> |
| | | <select id="selectLossAmountOfMonth07_12" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount"> |
| | | WITH intakeLossAmountMonth AS (<include refid="selectLossAmountOfMonth_with" />) |
| | | SELECT inta.intakeId AS intakeId, |
| | | inta.intakeNum AS intakeNum, |
| | | inta.intakeLng AS intakeLng, |
| | | inta.intakeLat AS intakeLat, |
| | | tb07.amount AS month7, |
| | | tb08.amount AS month8, |
| | | tb09.amount AS month9, |
| | | tb010.amount AS month10, |
| | | tb011.amount AS month11, |
| | | tb012.amount AS month12 |
| | | 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 intakeLossAmountMonth AS tb |
| | | WHERE tb.year = #{year} |
| | | AND tb.month = 7 |
| | | ) as tb07 on tb07.intakeId = inta.intakeId |
| | | LEFT JOIN ( |
| | | SELECT tb.intakeId AS intakeId, |
| | | tb.amount AS amount |
| | | FROM intakeLossAmountMonth AS tb |
| | | WHERE tb.year = #{year} |
| | | AND tb.month = 8 |
| | | ) as tb08 on tb08.intakeId = inta.intakeId |
| | | LEFT JOIN ( |
| | | SELECT tb.intakeId AS intakeId, |
| | | tb.amount AS amount |
| | | FROM intakeLossAmountMonth AS tb |
| | | WHERE tb.year = #{year} |
| | | AND tb.month = 9 |
| | | ) as tb09 on tb09.intakeId = inta.intakeId |
| | | LEFT JOIN ( |
| | | SELECT tb.intakeId AS intakeId, |
| | | tb.amount AS amount |
| | | FROM intakeLossAmountMonth AS tb |
| | | WHERE tb.year = #{year} |
| | | AND tb.month = 10 |
| | | ) as tb010 on tb010.intakeId = inta.intakeId |
| | | LEFT JOIN ( |
| | | SELECT tb.intakeId AS intakeId, |
| | | tb.amount AS amount |
| | | FROM intakeLossAmountMonth AS tb |
| | | WHERE tb.year = #{year} |
| | | AND tb.month = 11 |
| | | ) as tb011 on tb011.intakeId = inta.intakeId |
| | | LEFT JOIN ( |
| | | SELECT tb.intakeId AS intakeId, |
| | | tb.amount AS amount |
| | | FROM intakeLossAmountMonth AS tb |
| | | WHERE tb.year = #{year} |
| | | AND tb.month = 12 |
| | | ) as tb012 on tb012.intakeId = inta.intakeId |
| | | </select> |
| | | |
| | | </mapper> |