COUNT(((t.AUTHENTICATED_TYPE='0' and t.AUTHENTICATED_FLAG = '1') or (t.AUTHENTICATED_TYPE='1' and t.AUTHENTICATED_FLAG = '0' AND t.HistoryCount > 0)) OR NULL) residentCount,
COUNT(user.ID) AS registerCount,
COUNT((t.AUTHENTICATED_TYPE='1' and t.AUTHENTICATED_FLAG = '1') OR NULL) partyCount
COUNT((user.AUTHENTICATED_TYPE = '0' AND user.AUTHENTICATED_FLAG = '1') OR (user.AUTHENTICATED_TYPE = '1' AND user.AUTHENTICATED_FLAG = '0' AND user.HistoryCount > 0) OR NULL) AS residentCount ,
FROM (
COUNT((user.AUTHENTICATED_TYPE = '1' AND user.AUTHENTICATED_FLAG = '1') OR NULL) AS partyCount
select newuu.ID,newuu.AUTHENTICATED_TYPE,newuu.AUTHENTICATED_FLAG,newuu.HistoryCount,newuu.DEPT_ID from (
LEFT JOIN (
SELECT
SELECT MAX( CREATED_TIME ) AS CREATED_TIME, USER_ID
DISTINCT uu.ID,uu.DEL_FLAG,uu.CREATED_TIME,
FROM esua_epdc_user.epdc_user_authenticate_history
(
WHERE DEL_FLAG = '0' AND AUTHENTICATED_TYPE IN ( '0', '1' )
SELECT
AUTHENTICATED_TYPE
FROM
esua_epdc_user.epdc_user_authenticate_history
WHERE
DEL_FLAG = '0'
AND AUTHENTICATED_TYPE IN ( '0', '1' )
<iftest="endTime != ''">
<iftest="endTime != ''">
and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime}
and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime}
</if>
</if>
GROUP BY USER_ID
AND USER_ID = uu.ID
) MAXHIS ON MAXHIS.USER_ID = uu.ID
ORDER BY
CREATED_TIME DESC,
LEFT JOIN esua_epdc_user.epdc_user_authenticate_history HISTORY ON HISTORY.USER_ID = MAXHIS.USER_ID AND HISTORY.CREATED_TIME = MAXHIS.CREATED_TIME AND HISTORY.DEL_FLAG = '0'
id
LEFT JOIN (
LIMIT 1
) AS AUTHENTICATED_TYPE,
(
SELECT
SELECT
count(id) AS HistoryCount,
AUTHENTICATED_FLAG
USER_ID
FROM
FROM
esua_epdc_user.epdc_user_authenticate_history
esua_epdc_user.epdc_user_authenticate_history
WHERE
WHERE
DEL_FLAG = '0'
DEL_FLAG = '0'
AND AUTHENTICATED_TYPE IN ( '0', '1' )
AND AUTHENTICATED_TYPE IN ( '0', '1' )
AND AUTHENTICATED_FLAG= '1'
<iftest="endTime != ''">
<iftest="endTime != ''">
and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime}
and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime}
</if>
</if>
GROUP BY USER_ID
AND USER_ID = uu.ID
) HISCOUNT ON HISCOUNT.USER_ID = uu.ID
ORDER BY
LEFT JOIN (
CREATED_TIME DESC ,
SELECT MIN( CREATED_TIME ) AS CREATED_TIME,
id
USER_ID FROM esua_epdc_user.epdc_user_grid_relation
LIMIT 1
WHERE
) AS AUTHENTICATED_FLAG,
DEL_FLAG = '0'
(
GROUP BY
SELECT
USER_ID
count( id ) AS HistoryCount
) MINRELA ON MINRELA.USER_ID = uu.ID
FROM
LEFT JOIN esua_epdc_user.epdc_user_grid_relation RELATION ON RELATION.USER_ID = MINRELA.USER_ID AND RELATION.DEL_FLAG = '0' AND MINRELA.CREATED_TIME = RELATION.CREATED_TIME
esua_epdc_user.epdc_user_authenticate_history
WHERE
WHERE
uu.DEL_FLAG = '0'
DEL_FLAG = '0'
AND AUTHENTICATED_TYPE IN ( '0', '1' )
AND AUTHENTICATED_FLAG = '1'
<iftest="endTime != ''">
and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime}
</if>
AND USER_ID = uu.ID
) AS HistoryCount,
ifnull(if(uu.DEPT_ID = 0, NULL, uu.DEPT_ID), (
SELECT GRID_ID FROM esua_epdc_user.epdc_user_grid_relation
WHERE DEL_FLAG = '0' AND USER_ID = uu.ID
ORDER BY
CREATED_TIME,
id
LIMIT 1
)) AS DEPT_ID
FROM
esua_epdc_user.epdc_user uu ) newuu
where newuu.DEL_FLAG = '0'
<iftest="gridIdList != null and gridIdList.size() > 0">
<iftest="gridIdList != null and gridIdList.size() > 0">
AND ifnull(if(uu.DEPT_ID = 0,null,uu.DEPT_ID),RELATION.Grid_id) in <includerefid="foreachGridIdList"></include>
AND newuu.DEPT_ID in <includerefid="foreachGridIdList"></include>
</if>
</if>
<iftest="startTime != null and endTime != null and endTime != ''">
<iftest="startTime != null and endTime != null and endTime != ''">
AND DATE_FORMAT(uu.CREATED_TIME,'%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
AND DATE_FORMAT(newuu.CREATED_TIME,'%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
</if>
</if>
) t
) user
GROUP BY t.DEPT_ID
GROUP BY user.DEPT_ID
</select>
</select>
<selectid="selectCountGridWorkOrNot"
<selectid="selectCountGridWorkOrNot"
@ -526,37 +547,6 @@
(ifnull(tab.userTotal,0) - ifnull(tab.partyCount,0)) as registerCount,
(ifnull(tab.userTotal,0) - ifnull(tab.partyCount,0)) as registerCount,
ifnull(tab.partyCount,0) as partyCount
ifnull(tab.partyCount,0) as partyCount
from
from
(
SELECT
ad.id,
ad.`name`,
ad.pid
FROM
esua_epdc_admin.sys_dept ad
WHERE
ad.id IN <includerefid="foreachAllDeptIdsShow"></include>
AND ad.del_flag = 0
) tt
left join
(
SELECT
t0.id,
t0.`name` streetName,
count(uu.id) userTotal,
count((HISTORY.AUTHENTICATED_TYPE='1' and HISTORY.AUTHENTICATED_FLAG = '1') or null ) AS partyCount
FROM
esua_epdc_user.epdc_user uu
LEFT JOIN (
SELECT MIN( CREATED_TIME ) AS CREATED_TIME,
USER_ID FROM esua_epdc_user.epdc_user_grid_relation
WHERE
DEL_FLAG = '0'
GROUP BY
USER_ID
) MINRELA
ON MINRELA.USER_ID = uu.ID
LEFT JOIN esua_epdc_user.epdc_user_grid_relation RELATION ON RELATION.USER_ID = MINRELA.USER_ID AND RELATION.DEL_FLAG = '0' AND MINRELA.CREATED_TIME = RELATION.CREATED_TIME
inner JOIN
(
(
SELECT
SELECT
ad.id,
ad.id,
@ -567,40 +557,101 @@
WHERE
WHERE
ad.id IN <includerefid="foreachAllDeptIdsShow"></include>
ad.id IN <includerefid="foreachAllDeptIdsShow"></include>
AND ad.del_flag = 0
AND ad.del_flag = 0
) t0
) tt
ON find_in_set(t0.id, IFNULL(if(uu.ALL_DEPT_IDS = '',null,uu.ALL_DEPT_IDS),RELATION.ALL_DEPT_IDS))
left join
LEFT JOIN (
(
SELECT MAX( CREATED_TIME ) AS CREATED_TIME, USER_ID
SELECT
FROM esua_epdc_user.epdc_user_authenticate_history
t0.ID as DEPT_ID,
WHERE DEL_FLAG = '0' AND AUTHENTICATED_TYPE IN ( '0', '1' )
COUNT(user.ID) AS userTotal,
<iftest="operationEndTime != null and operationEndTime != ''">
COUNT((user.AUTHENTICATED_TYPE = '1' AND user.AUTHENTICATED_FLAG = '1') OR NULL) AS partyCount
AND DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{operationEndTime}
FROM (
</if>
SELECT
<iftest="endTime != ''">
DISTINCT uu.ID,
and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime}
(
</if>
SELECT
GROUP BY USER_ID
AUTHENTICATED_TYPE
) MAXHIS ON MAXHIS.USER_ID = uu.ID
FROM
esua_epdc_user.epdc_user_authenticate_history
LEFT JOIN esua_epdc_user.epdc_user_authenticate_history HISTORY ON HISTORY.USER_ID = MAXHIS.USER_ID AND HISTORY.CREATED_TIME = MAXHIS.CREATED_TIME AND HISTORY.DEL_FLAG = '0'
WHERE
where uu.DEL_FLAG = '0'
DEL_FLAG = '0'
AND IFNULL(if(uu.dept_id=0,null,uu.dept_id),RELATION.GRID_ID) IN
LEFT JOIN (SELECT MIN( CREATED_TIME ) AS CREATED_TIME, USER_ID FROM esua_epdc_user.epdc_user_grid_relation WHERE DEL_FLAG = '0' GROUP BY USER_ID ) MINRELA ON MINRELA.USER_ID = uu.ID
LEFT JOIN esua_epdc_user.epdc_user_grid_relation RELATION ON RELATION.USER_ID = MINRELA.USER_ID AND RELATION.DEL_FLAG = '0' AND MINRELA.CREATED_TIME = RELATION.CREATED_TIME
LEFT JOIN esua_epdc_admin.sys_dept ad ON IFNULL(if(uu.DEPT_ID = 0,null,uu.DEPT_ID),RELATION.GRID_ID) = ad.ID AND ad.type_key = 'grid_party'
<includerefid="joinCommunityStreet"></include>
LEFT JOIN (
SELECT MAX( CREATED_TIME ) AS CREATED_TIME, USER_ID
FROM esua_epdc_user.epdc_user_authenticate_history
WHERE DEL_FLAG = '0' AND AUTHENTICATED_TYPE IN ( '0', '1' )
<iftest="endTime != ''">
and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime}
</if>
GROUP BY USER_ID
) MAXHIS ON MAXHIS.USER_ID = uu.ID
LEFT JOIN esua_epdc_user.epdc_user_authenticate_history HISTORY ON HISTORY.USER_ID = MAXHIS.USER_ID AND HISTORY.CREATED_TIME = MAXHIS.CREATED_TIME AND HISTORY.DEL_FLAG = '0'
LEFT JOIN (SELECT MIN( CREATED_TIME ) AS CREATED_TIME, USER_ID FROM esua_epdc_user.epdc_user_grid_relation WHERE DEL_FLAG = '0' GROUP BY USER_ID ) MINRELA ON MINRELA.USER_ID = uu.ID
WHERE
LEFT JOIN esua_epdc_user.epdc_user_grid_relation RELATION ON RELATION.USER_ID = MINRELA.USER_ID AND RELATION.DEL_FLAG = '0' AND MINRELA.CREATED_TIME = RELATION.CREATED_TIME
DEL_FLAG = '0'
LEFT JOIN esua_epdc_admin.sys_dept ad ON IFNULL(if(uu.DEPT_ID = 0,null,uu.DEPT_ID),RELATION.GRID_ID) = ad.ID AND ad.type_key = 'grid_party'
AND AUTHENTICATED_TYPE IN ( '0', '1' )
<includerefid="joinCommunityStreet"></include>
LEFT JOIN (
SELECT MAX( CREATED_TIME ) AS CREATED_TIME, USER_ID
FROM esua_epdc_user.epdc_user_authenticate_history
WHERE DEL_FLAG = '0' AND AUTHENTICATED_TYPE IN ( '0', '1' )
<iftest="endTime != ''">
<iftest="endTime != ''">
and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime}
and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime}
</if>
</if>
GROUP BY USER_ID
AND USER_ID = uu.ID
) MAXHIS ON MAXHIS.USER_ID = uu.ID
ORDER BY
CREATED_TIME DESC,
LEFT JOIN esua_epdc_user.epdc_user_authenticate_history HISTORY ON HISTORY.USER_ID = MAXHIS.USER_ID AND HISTORY.CREATED_TIME = MAXHIS.CREATED_TIME AND HISTORY.DEL_FLAG = '0'
id
LEFT JOIN (
LIMIT 1
) AS AUTHENTICATED_TYPE,
(
SELECT
SELECT
count(id) AS HistoryCount,
AUTHENTICATED_FLAG
USER_ID
FROM
FROM
esua_epdc_user.epdc_user_authenticate_history
epdc_user_authenticate_history
WHERE
WHERE
DEL_FLAG = '0'
DEL_FLAG = '0'
AND AUTHENTICATED_TYPE IN ( '0', '1' )
AND AUTHENTICATED_TYPE IN ( '0', '1' )
AND AUTHENTICATED_FLAG= '1'
<iftest="endTime != ''">
<iftest="endTime != ''">
and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime}
and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime}
</if>
</if>
GROUP BY USER_ID
AND USER_ID = uu.ID
) HISCOUNT ON HISCOUNT.USER_ID = uu.ID
ORDER BY
WHERE uu.DEL_FLAG = '0'
CREATED_TIME DESC ,
id
LIMIT 1
) AS AUTHENTICATED_FLAG,
(
SELECT
count( id ) AS HistoryCount
FROM
epdc_user_authenticate_history
WHERE
DEL_FLAG = '0'
AND AUTHENTICATED_TYPE IN ( '0', '1' )
AND AUTHENTICATED_FLAG = '1'
<iftest="endTime != ''">
and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime}
</if>
AND USER_ID = uu.ID
) AS HistoryCount,
ifnull(if(uu.DEPT_ID = 0, NULL, uu.DEPT_ID), (
SELECT GRID_ID FROM epdc_user_grid_relation
WHERE DEL_FLAG = '0' AND USER_ID = uu.ID
ORDER BY
CREATED_TIME,
id
LIMIT 1
)) AS DEPT_ID
FROM
epdc_user uu
) newuu
LEFT JOIN esua_epdc_admin.sys_dept ad ON newuu.DEPT_ID = ad.ID AND ad.type_key = 'grid_party'
<includerefid="joinCommunityStreet"></include>
where
newuu.DEL_FLAG = '0'
<iftest="startTime != null and endTime != null and endTime != ''">
AND DATE_FORMAT(newuu.CREATED_TIME,'%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
</if>
AND ad2.id is NOT NULL
AND ad.id IS NOT NULL
<choose>
<choose>
<whentest="gridId != null and gridId != ''">AND ad2.ID = #{gridId}</when>
<whentest="gridId != null and gridId != ''">AND ad2.ID = #{gridId}</when>
<otherwise>
<otherwise>
@ -1099,12 +1220,6 @@
</if>
</if>
</otherwise>
</otherwise>
</choose>
</choose>
<iftest="startTime != null and endTime != null and endTime != ''">
AND DATE_FORMAT(uu.CREATED_TIME,'%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}