EqpVirtualParkRecordStatisticSMapper.xml 7.67 KB
<?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.zteits.park.mapper.smapper.EqpVirtualParkRecordStatisticSMapper">
    <resultMap id="BaseResultMap" type="com.zteits.park.domain.EqpVirtualParkRecordStatistic">
        <id column="id" jdbcType="BIGINT" property="id"/>
        <result column="statistic_date" jdbcType="DATE" property="statisticDate"/>
        <result column="pl_no" jdbcType="VARCHAR" property="plNo"/>
        <result column="pl_name" jdbcType="VARCHAR" property="plName"/>
        <result column="eqp_num" jdbcType="INTEGER" property="eqpNum"/>
        <result column="eqp_type" jdbcType="INTEGER" property="eqpType"/>
        <result column="park_num" jdbcType="INTEGER" property="parkNum"/>
        <result column="free_park_num" jdbcType="INTEGER" property="freeParkNum"/>
        <result column="eqp_avg_income" jdbcType="INTEGER" property="eqpAvgIncome"/>
        <result column="income" jdbcType="INTEGER" property="income"/>
        <result column="create_date" jdbcType="TIMESTAMP" property="createDate"/>
    </resultMap>
    <sql id="Example_Where_Clause">
        <where>
            <foreach collection="oredCriteria" item="criteria" separator="or">
                <if test="criteria.valid">
                    <trim prefix="(" prefixOverrides="and" suffix=")">
                        <foreach collection="criteria.criteria" item="criterion">
                            <choose>
                                <when test="criterion.noValue">
                                    and ${criterion.condition}
                                </when>
                                <when test="criterion.singleValue">
                                    and ${criterion.condition} #{criterion.value}
                                </when>
                                <when test="criterion.betweenValue">
                                    and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                                </when>
                                <when test="criterion.listValue">
                                    and ${criterion.condition}
                                    <foreach close=")" collection="criterion.value" item="listItem" open="("
                                             separator=",">
                                        #{listItem}
                                    </foreach>
                                </when>
                            </choose>
                        </foreach>
                    </trim>
                </if>
            </foreach>
        </where>
    </sql>
    <sql id="Update_By_Example_Where_Clause">
        <where>
            <foreach collection="example.oredCriteria" item="criteria" separator="or">
                <if test="criteria.valid">
                    <trim prefix="(" prefixOverrides="and" suffix=")">
                        <foreach collection="criteria.criteria" item="criterion">
                            <choose>
                                <when test="criterion.noValue">
                                    and ${criterion.condition}
                                </when>
                                <when test="criterion.singleValue">
                                    and ${criterion.condition} #{criterion.value}
                                </when>
                                <when test="criterion.betweenValue">
                                    and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                                </when>
                                <when test="criterion.listValue">
                                    and ${criterion.condition}
                                    <foreach close=")" collection="criterion.value" item="listItem" open="("
                                             separator=",">
                                        #{listItem}
                                    </foreach>
                                </when>
                            </choose>
                        </foreach>
                    </trim>
                </if>
            </foreach>
        </where>
    </sql>
    <sql id="Base_Column_List">
        id,
        statistic_date,
        pl_no,
        pl_name,
        eqp_num,
        eqp_type,
        park_num,
        free_park_num,
        eqp_avg_income,
        income,
        create_date
    </sql>

    <select id="querySummaryEqpVirtualParkRecordStatisticByDate"
            parameterType="com.zteits.clouds.api.dto.park.param.EqpVirtualParkRecordStatisticSummaryRequest"
            resultMap="BaseResultMap">

        SELECT
        <if test="queryType == 2">
            temp.pl_no pl_no,
            max(temp.pl_name) pl_name,
        </if>

        temp.statistic_date     statistic_date,
        sum(temp.eqp_num)       eqp_num,
        sum(temp.park_num)      park_num,
        sum(temp.free_park_num) free_park_num,
        sum(temp.income)        income


        FROM (


        SELECT
        statistic_date,
        pl_no,
        max(pl_name)       pl_name,
        max(eqp_num)       eqp_num,
        sum(park_num)      park_num,
        sum(free_park_num) free_park_num,
        sum(income)        income
        FROM eqp_virtual_park_record_statistic

        WHERE
        eqp_type = 1 AND pl_no IN
        <foreach collection="plNos" index="index" open="(" close=")" item="plNo" separator=",">
            #{plNo}
        </foreach>
        AND statistic_date BETWEEN #{startDate} AND #{endDate}
        GROUP BY statistic_date, pl_no) temp


        <choose>
            <when test="queryType == 1">
                GROUP BY statistic_date
            </when>
            <otherwise>
                GROUP BY statistic_date, pl_no
            </otherwise>

        </choose>






    </select>

    <select id="querySummaryEqpVirtualParkRecordStatisticByPlNoForPage"
            parameterType="com.zteits.clouds.api.dto.park.param.EqpVirtualParkRecordStatisticRequest"
            resultMap="BaseResultMap">

        SELECT
        pl_no,
        max(pl_name) pl_name,
        max(eqp_num) eqp_num,
        sum(park_num) park_num,
        sum(free_park_num) free_park_num,
        avg(eqp_avg_income) eqp_avg_income,
        sum(income) income

        FROM eqp_virtual_park_record_statistic
        WHERE statistic_date BETWEEN #{startDate} AND #{endDate}
        AND eqp_type = 1
        AND pl_no IN
        <foreach collection="plNos" index="index" open="(" close=")" item="plNo" separator=",">
            #{plNo}
        </foreach>
        GROUP BY pl_no
		<choose>
	        <when test="baseRequest != null and baseRequest.sortName != null and baseRequest.sortOrder != null 
	        	and baseRequest.sortName != '' and baseRequest.sortOrder != ''">
	            ORDER BY ${baseRequest.sortName} ${baseRequest.sortOrder}
	        </when>
	        <otherwise>
	            
	        </otherwise>
    	</choose>

    </select>

    <select id="querySummaryEqpVirtualParkRecordStatisticForIncomeAndEqpNum"
            parameterType="com.zteits.clouds.api.dto.park.param.EqpVirtualParkRecordStatisticRequest"
            resultMap="BaseResultMap">


        SELECT
        sum(temp.income) income,
        sum(temp.eqpNum) eqp_num
        FROM (
        SELECT
        pl_no,
        sum(income) income,
        max(eqp_num) eqpNum

        FROM eqp_virtual_park_record_statistic
        WHERE
        statistic_date BETWEEN #{startDate} AND #{endDate}
        AND eqp_type = 1
        AND pl_no IN
        <foreach collection="plNos" index="index" open="(" close=")" item="plNo" separator=",">
            #{plNo}
        </foreach>
        GROUP BY pl_no) temp

    </select>


</mapper>