and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime}
</if>
AND USER_ID = uu.ID
ORDER BY
CREATED_TIME DESC,
id
LIMIT 1
) AS AUTHENTICATED_TYPE,
(
SELECT
AUTHENTICATED_FLAG
FROM
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>
AND USER_ID = uu.ID
ORDER BY
CREATED_TIME DESC ,
id
LIMIT 1
) AS AUTHENTICATED_FLAG,
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 <includerefid="com.elink.esua.epdc.modules.common.dao.EpdcTableNameDao.tb_admin"/>.sys_dept ad ON newuu.DEPT_ID = ad.ID AND ad.type_key = 'grid_party' AND ad.DEL_FLAG = '0'
WHERE newuu.DEL_FLAG = '0'
<choose>
<whentest="gridId != null and gridId != ''">AND ad.ID = #{gridId}</when>
<otherwise>
<iftest="deptIdList != null and deptIdList.size() > 0">
count( (t.AUTHENTICATED_TYPE!='1' or t.AUTHENTICATED_FLAG != '1' and t.SEX = '1') OR NULL ) maleCount,
count( (t.AUTHENTICATED_TYPE!='1' or t.AUTHENTICATED_FLAG != '1' and t.SEX = '0') OR NULL ) femaleCount,
count( (t.AUTHENTICATED_TYPE!='1' or t.AUTHENTICATED_FLAG != '1' and t.SEX = '2') OR NULL ) unknownSexCount,
COUNT( (t.AUTHENTICATED_TYPE='1' and t.AUTHENTICATED_FLAG = '1') OR NULL ) partyMemberCount,
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( (t.AUTHENTICATED_TYPE!='1' or t.AUTHENTICATED_FLAG != '1' and t.age > 50) OR NULL ) oldCount,
COUNT( (t.AUTHENTICATED_TYPE!='1' or t.AUTHENTICATED_FLAG != '1' and t.age <= 50 AND t.age > 0 ) OR NULL ) youngCount
FROM (
select
newuu.ID userId,
newuu.AUTHENTICATED_TYPE,
newuu.AUTHENTICATED_FLAG,
newuu.HistoryCount,
newuu.DEPT_ID,
newuu.SEX,
newuu.age,
ad.`name` streetName,
ad.id streetId
from
(
SELECT
DISTINCT uu.ID,
uu.DEL_FLAG,
uu.CREATED_TIME,
CASE WHEN uu.SEX is null or uu.SEX != '0' AND uu.SEX != '1' THEN '2' ELSE uu.SEX END AS SEX,
and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <= #{endTime}
</if>
AND USER_ID = uu.ID
ORDER BY
CREATED_TIME DESC,
id
LIMIT 1
) AS AUTHENTICATED_TYPE,
(
SELECT
AUTHENTICATED_FLAG
FROM
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>
AND USER_ID = uu.ID
ORDER BY
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 <includerefid="com.elink.esua.epdc.modules.common.dao.EpdcTableNameDao.tb_admin"/>.sys_dept ad ON newuu.DEPT_ID = ad.ID AND ad.type_key = 'grid_party' AND ad.DEL_FLAG = '0'
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 ad.id IS NOT NULL
AND ad.DEL_FLAG = '0'
<choose>
<whentest="gridId != null and gridId != ''">AND ad.ID = #{gridId}</when>
<otherwise>
<iftest="deptIdList != null and deptIdList.size() > 0">