You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
237 lines
8.9 KiB
237 lines
8.9 KiB
<?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.epmet.dao.stats.FactGridUserHouseDailyDao">
|
|
|
|
<resultMap type="com.epmet.entity.stats.FactGridUserHouseDailyEntity" id="factGridUserHouseDailyMap">
|
|
<result property="id" column="ID"/>
|
|
<result property="customerId" column="CUSTOMER_ID"/>
|
|
<result property="dateId" column="DATE_ID"/>
|
|
<result property="gridId" column="GRID_ID"/>
|
|
<result property="pid" column="PID"/>
|
|
<result property="pids" column="PIDS"/>
|
|
<result property="neighbourhoodsCount" column="NEIGHBOURHOODS_COUNT"/>
|
|
<result property="houseCount" column="HOUSE_COUNT"/>
|
|
<result property="houseSelfCount" column="HOUSE_SELF_COUNT"/>
|
|
<result property="houseLeaseCount" column="HOUSE_LEASE_COUNT"/>
|
|
<result property="houseIdleCount" column="HOUSE_IDLE_COUNT"/>
|
|
<result property="userCount" column="USER_COUNT"/>
|
|
<result property="userResiCount" column="USER_RESI_COUNT"/>
|
|
<result property="userFloatCount" column="USER_FLOAT_COUNT"/>
|
|
<result property="houseIncr" column="HOUSE_INCR"/>
|
|
<result property="houseModify" column="HOUSE_MODIFY"/>
|
|
<result property="userIncr" column="USER_INCR"/>
|
|
<result property="userModify" column="USER_MODIFY"/>
|
|
<result property="delFlag" column="DEL_FLAG"/>
|
|
<result property="revision" column="REVISION"/>
|
|
<result property="createdBy" column="CREATED_BY"/>
|
|
<result property="createdTime" column="CREATED_TIME"/>
|
|
<result property="updatedBy" column="UPDATED_BY"/>
|
|
<result property="updatedTime" column="UPDATED_TIME"/>
|
|
</resultMap>
|
|
|
|
<select id="listPage" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
|
|
SELECT
|
|
g.GRID_NAME AS AGENCY_NAME,
|
|
max( NEIGHBOURHOODS_COUNT ) AS NEIGHBOURHOODS_COUNT,
|
|
max( HOUSE_COUNT ) AS HOUSE_COUNT,
|
|
max( HOUSE_SELF_COUNT ) AS HOUSE_SELF_COUNT,
|
|
max( HOUSE_LEASE_COUNT ) AS HOUSE_LEASE_COUNT,
|
|
max( HOUSE_IDLE_COUNT ) AS HOUSE_IDLE_COUNT,
|
|
max( USER_COUNT ) AS USER_COUNT,
|
|
max( USER_RESI_COUNT ) AS USER_RESI_COUNT,
|
|
max( USER_FLOAT_COUNT ) AS USER_FLOAT_COUNT,
|
|
max( HOUSE_INCR ) AS HOUSE_INCR,
|
|
max( HOUSE_MODIFY ) AS HOUSE_MODIFY,
|
|
max( USER_INCR ) AS USER_INCR,
|
|
max( USER_MODIFY ) AS USER_MODIFY
|
|
FROM
|
|
fact_grid_user_house_daily d
|
|
LEFT JOIN dim_grid g ON g.id = d.GRID_ID
|
|
WHERE
|
|
g.DEL_FLAG = '0'
|
|
<if test="customerId != null and customerId != ''">
|
|
AND g.CUSTOMER_ID = #{customerId}
|
|
AND d.CUSTOMER_ID = #{customerId}
|
|
</if>
|
|
<if test="level == 'grid'">
|
|
AND d.GRID_ID = #{agencyId}
|
|
</if>
|
|
<if test="level == 'community'">
|
|
AND d.PID = #{agencyId}
|
|
</if>
|
|
<if test="dateId != null and dateId != ''">
|
|
AND d.DATE_ID = #{dateId}
|
|
</if>
|
|
<if test="startTime != null and startTime != ''">
|
|
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) >= DATE_FORMAT( #{startTime}, '%Y-%m-%d' )
|
|
</if>
|
|
<if test="endTime != null and endTime != ''">
|
|
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) <= DATE_FORMAT( #{endTime}, '%Y-%m-%d' )
|
|
</if>
|
|
GROUP BY
|
|
GRID_ID
|
|
</select>
|
|
|
|
<select id="getTotal" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
|
|
SELECT
|
|
g.GRID_NAME AS AGENCY_NAME,
|
|
sum( NEIGHBOURHOODS_COUNT ) AS NEIGHBOURHOODS_COUNT,
|
|
sum( HOUSE_COUNT ) AS HOUSE_COUNT,
|
|
sum( HOUSE_SELF_COUNT ) AS HOUSE_SELF_COUNT,
|
|
sum( HOUSE_LEASE_COUNT ) AS HOUSE_LEASE_COUNT,
|
|
sum( HOUSE_IDLE_COUNT ) AS HOUSE_IDLE_COUNT,
|
|
sum( USER_COUNT ) AS USER_COUNT,
|
|
sum( USER_RESI_COUNT ) AS USER_RESI_COUNT,
|
|
sum( USER_FLOAT_COUNT ) AS USER_FLOAT_COUNT,
|
|
sum( HOUSE_INCR ) AS HOUSE_INCR,
|
|
sum( HOUSE_MODIFY ) AS HOUSE_MODIFY,
|
|
sum( USER_INCR ) AS USER_INCR,
|
|
sum( USER_MODIFY ) AS USER_MODIFY
|
|
FROM
|
|
fact_grid_user_house_daily d
|
|
LEFT JOIN dim_grid g ON g.id = d.GRID_ID
|
|
LEFT JOIN dim_agency a ON a.id = d.PID
|
|
WHERE
|
|
g.DEL_FLAG = '0'
|
|
<if test="customerId != null and customerId != ''">
|
|
AND g.CUSTOMER_ID = #{customerId}
|
|
AND d.CUSTOMER_ID = #{customerId}
|
|
</if>
|
|
<if test="agencyId != null and agencyId != ''">
|
|
AND d.GRID_ID = #{agencyId}
|
|
</if>
|
|
<if test="dateId != null and dateId != ''">
|
|
AND d.DATE_ID = #{dateId}
|
|
</if>
|
|
<if test="startTime != null and startTime != ''">
|
|
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) >= DATE_FORMAT( #{startTime}, '%Y-%m-%d' )
|
|
</if>
|
|
<if test="endTime != null and endTime != ''">
|
|
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) <= DATE_FORMAT( #{endTime}, '%Y-%m-%d' )
|
|
</if>
|
|
GROUP BY
|
|
d.DATE_ID
|
|
ORDER BY
|
|
d.DATE_ID ASC
|
|
</select>
|
|
|
|
<select id="statAgency" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
|
|
SELECT
|
|
t.*,
|
|
ag.id AS AGENCY_ID,
|
|
ag.CUSTOMER_ID,
|
|
ag.`LEVEL`,
|
|
ag.PID,
|
|
ag.PIDS
|
|
FROM
|
|
dim_agency ag
|
|
LEFT JOIN (
|
|
SELECT
|
|
<if test="level == 'community'">
|
|
c.id AS AGENCY,
|
|
</if>
|
|
<if test="level == 'street'">
|
|
s.id AS AGENCY,
|
|
</if>
|
|
<if test="level == 'district'">
|
|
di.id AS AGENCY,
|
|
</if>
|
|
<if test="level == 'city'">
|
|
ci.id AS AGENCY,
|
|
</if>
|
|
<if test="level == 'province'">
|
|
p.id AS AGENCY,
|
|
</if>
|
|
sum( NEIGHBOURHOODS_COUNT ) AS NEIGHBOURHOODS_COUNT,
|
|
sum( HOUSE_COUNT ) AS HOUSE_COUNT,
|
|
sum( HOUSE_SELF_COUNT ) AS HOUSE_SELF_COUNT,
|
|
sum( HOUSE_LEASE_COUNT ) AS HOUSE_LEASE_COUNT,
|
|
sum( HOUSE_IDLE_COUNT ) AS HOUSE_IDLE_COUNT,
|
|
sum( USER_COUNT ) AS USER_COUNT,
|
|
sum( USER_RESI_COUNT ) AS USER_RESI_COUNT,
|
|
sum( USER_FLOAT_COUNT ) AS USER_FLOAT_COUNT,
|
|
sum( HOUSE_INCR ) AS HOUSE_INCR,
|
|
sum( HOUSE_MODIFY ) AS HOUSE_MODIFY,
|
|
sum( USER_INCR ) AS USER_INCR,
|
|
sum( USER_MODIFY ) AS USER_MODIFY
|
|
FROM
|
|
fact_grid_user_house_daily d
|
|
INNER JOIN dim_grid g ON g.id = d.GRID_ID
|
|
INNER JOIN dim_agency c ON c.id = g.AGENCY_ID
|
|
<if test="level == 'community'">
|
|
WHERE
|
|
d.DATE_ID = #{dateId}
|
|
AND d.CUSTOMER_ID = #{customerId}
|
|
GROUP BY
|
|
c.id
|
|
</if>
|
|
<if test="level == 'street'">
|
|
INNER JOIN dim_agency s ON s.id = c.pid
|
|
WHERE
|
|
d.DATE_ID = #{dateId}
|
|
AND d.CUSTOMER_ID = #{customerId}
|
|
GROUP BY
|
|
s.id
|
|
</if>
|
|
<if test="level == 'district'">
|
|
INNER JOIN dim_agency s ON s.id = c.pid
|
|
INNER JOIN dim_agency di ON di.id = s.pid
|
|
WHERE
|
|
d.DATE_ID = #{dateId}
|
|
AND d.CUSTOMER_ID = #{customerId}
|
|
GROUP BY
|
|
di.id
|
|
</if>
|
|
<if test="level == 'city'">
|
|
INNER JOIN dim_agency s ON s.id = c.pid
|
|
INNER JOIN dim_agency di ON di.id = s.pid
|
|
INNER JOIN dim_agency ci ON ci.id = di.pid
|
|
INNER JOIN dim_agency p ON p.id = ci.pid
|
|
WHERE
|
|
d.DATE_ID = #{dateId}
|
|
AND d.CUSTOMER_ID = #{customerId}
|
|
GROUP BY
|
|
ci.id
|
|
</if>
|
|
<if test="level == 'province'">
|
|
INNER JOIN dim_agency s ON s.id = c.pid
|
|
INNER JOIN dim_agency di ON di.id = s.pid
|
|
INNER JOIN dim_agency ci ON ci.id = di.pid
|
|
INNER JOIN dim_agency p ON p.id = ci.pid
|
|
WHERE
|
|
d.DATE_ID = #{dateId}
|
|
AND d.CUSTOMER_ID = #{customerId}
|
|
GROUP BY
|
|
p.id
|
|
</if>
|
|
) t ON t.AGENCY = ag.id
|
|
WHERE
|
|
ag.CUSTOMER_ID = #{customerId}
|
|
AND ag.AGENCY_DIM_TYPE = 'all'
|
|
<if test="level == 'community'">
|
|
AND ag.`LEVEL` = 'community'
|
|
</if>
|
|
<if test="level == 'street'">
|
|
AND ag.`LEVEL` = 'street'
|
|
</if>
|
|
<if test="level == 'district'">
|
|
AND ag.`LEVEL` = 'district'
|
|
</if>
|
|
<if test="level == 'city'">
|
|
AND ag.`LEVEL` = 'city'
|
|
</if>
|
|
<if test="level == 'province'">
|
|
AND ag.`LEVEL` = 'province'
|
|
</if>
|
|
</select>
|
|
|
|
<delete id="deleteByDateId">
|
|
DELETE
|
|
FROM
|
|
fact_grid_user_house_daily
|
|
WHERE
|
|
DATE_ID = #{dateId}
|
|
AND CUSTOMER_ID = #{customerId}
|
|
</delete>
|
|
</mapper>
|