|  |  | @ -5,82 +5,66 @@ | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     <select id="selectListUserDataRank" resultType="com.elink.esua.epdc.dto.user.result.UserDataRankResultDTO"> | 
			
		
	
		
			
				
					|  |  |  |         SELECT | 
			
		
	
		
			
				
					|  |  |  |         t1.*, | 
			
		
	
		
			
				
					|  |  |  |         t1.userCount - t1.partyMemberCount AS residentCount, | 
			
		
	
		
			
				
					|  |  |  |         t1.oldCount / t1.userCount oldPercent, | 
			
		
	
		
			
				
					|  |  |  |         t1.youngCount / t1.userCount youngPercent | 
			
		
	
		
			
				
					|  |  |  |         FROM | 
			
		
	
		
			
				
					|  |  |  |         ( SELECT | 
			
		
	
		
			
				
					|  |  |  |         t.streetName, t.streetId, | 
			
		
	
		
			
				
					|  |  |  |         COUNT( t.userId ) userCount, | 
			
		
	
		
			
				
					|  |  |  |         count( t.SEX = '1' OR NULL ) maleCount, | 
			
		
	
		
			
				
					|  |  |  |         count( t.SEX = '0' OR NULL ) femaleCount, | 
			
		
	
		
			
				
					|  |  |  |         count( t.SEX = '2' OR NULL ) unknownSexCount, | 
			
		
	
		
			
				
					|  |  |  |         COUNT( t.PARTY_FLAG = '1' OR NULL ) partyMemberCount, | 
			
		
	
		
			
				
					|  |  |  |         COUNT( t.age > 50 OR NULL ) oldCount, | 
			
		
	
		
			
				
					|  |  |  |         COUNT( ( t.age <= 50 AND t.age > 0 ) OR NULL ) youngCount | 
			
		
	
		
			
				
					|  |  |  |             t1.*, | 
			
		
	
		
			
				
					|  |  |  |             t1.userCount - t1.partyMemberCount AS residentCount, | 
			
		
	
		
			
				
					|  |  |  |             t1.oldCount / t1.userCount oldPercent, | 
			
		
	
		
			
				
					|  |  |  |             t1.youngCount / t1.userCount youngPercent | 
			
		
	
		
			
				
					|  |  |  |         FROM ( | 
			
		
	
		
			
				
					|  |  |  |         SELECT | 
			
		
	
		
			
				
					|  |  |  |         uu.ID AS userId, | 
			
		
	
		
			
				
					|  |  |  |         CASE WHEN uu.SEX != '0' AND uu.SEX != '1' THEN '2' ELSE uu.SEX END AS SEX, | 
			
		
	
		
			
				
					|  |  |  |         uu.STATE, uu.PARTY_FLAG, uu.DEPT_ID, | 
			
		
	
		
			
				
					|  |  |  |         IFNULL( TIMESTAMPDIFF( YEAR, uu.BIRTHDAY, CURDATE()), 0 ) age, | 
			
		
	
		
			
				
					|  |  |  |         ad2.`name` streetName, ad2.id streetId | 
			
		
	
		
			
				
					|  |  |  |         FROM | 
			
		
	
		
			
				
					|  |  |  |         esua_epdc_user.epdc_user uu | 
			
		
	
		
			
				
					|  |  |  |         LEFT JOIN esua_epdc_admin.sys_dept ad ON uu.DEPT_ID = ad.ID AND ad.type_key = 'grid_party' | 
			
		
	
		
			
				
					|  |  |  |         LEFT JOIN esua_epdc_admin.sys_dept ad1 ON ad.pid = ad1.id | 
			
		
	
		
			
				
					|  |  |  |         LEFT JOIN esua_epdc_admin.sys_dept ad2 ON ad1.pid = ad2.id | 
			
		
	
		
			
				
					|  |  |  |         WHERE uu.DEL_FLAG = '0' | 
			
		
	
		
			
				
					|  |  |  |         <if test='partyFlag != null and partyFlag = "1"'>AND uu.PARTY_FLAG = '1'</if> | 
			
		
	
		
			
				
					|  |  |  |         <choose> | 
			
		
	
		
			
				
					|  |  |  |             <when test="gridId != null and gridId != ''">AND ad2.ID = #{gridId}</when> | 
			
		
	
		
			
				
					|  |  |  |             <otherwise> | 
			
		
	
		
			
				
					|  |  |  |                 <if test="deptIdList != null and deptIdList.size() > 0"> | 
			
		
	
		
			
				
					|  |  |  |                     AND ad2.ID in | 
			
		
	
		
			
				
					|  |  |  |                     <foreach collection="deptIdList" item="deptId" open="(" separator="," close=")">#{deptId}</foreach> | 
			
		
	
		
			
				
					|  |  |  |                 </if> | 
			
		
	
		
			
				
					|  |  |  |             </otherwise> | 
			
		
	
		
			
				
					|  |  |  |         </choose> | 
			
		
	
		
			
				
					|  |  |  |         /*待补充按时间筛选*/ | 
			
		
	
		
			
				
					|  |  |  |         <if test="startTime != null and endTime != null and endTime != ''"> | 
			
		
	
		
			
				
					|  |  |  |             AND uu.CREATED_TIME BETWEEN #{startTime} | 
			
		
	
		
			
				
					|  |  |  |             AND #{endTime} | 
			
		
	
		
			
				
					|  |  |  |         </if> | 
			
		
	
		
			
				
					|  |  |  |         AND ad.id IS NOT NULL | 
			
		
	
		
			
				
					|  |  |  |         ) t | 
			
		
	
		
			
				
					|  |  |  |             SELECT | 
			
		
	
		
			
				
					|  |  |  |                 t.streetName, t.streetId, | 
			
		
	
		
			
				
					|  |  |  |                 COUNT( t.userId ) userCount, | 
			
		
	
		
			
				
					|  |  |  |                 count( t.SEX = '1' OR NULL ) maleCount, | 
			
		
	
		
			
				
					|  |  |  |                 count( t.SEX = '0' OR NULL ) femaleCount, | 
			
		
	
		
			
				
					|  |  |  |                 count( t.SEX = '2' OR NULL ) unknownSexCount, | 
			
		
	
		
			
				
					|  |  |  |                 COUNT( t.PARTY_FLAG = '1' OR NULL ) partyMemberCount, | 
			
		
	
		
			
				
					|  |  |  |                 COUNT( t.age > 50 OR NULL ) oldCount, | 
			
		
	
		
			
				
					|  |  |  |                 COUNT( ( t.age <= 50 AND t.age > 0 ) OR NULL ) youngCount | 
			
		
	
		
			
				
					|  |  |  |             FROM ( | 
			
		
	
		
			
				
					|  |  |  |                 SELECT | 
			
		
	
		
			
				
					|  |  |  |                     uu.ID AS userId, | 
			
		
	
		
			
				
					|  |  |  |                     CASE WHEN uu.SEX != '0' AND uu.SEX != '1' THEN '2' ELSE uu.SEX END AS SEX, | 
			
		
	
		
			
				
					|  |  |  |                     uu.STATE, uu.PARTY_FLAG, uu.DEPT_ID, | 
			
		
	
		
			
				
					|  |  |  |                     IFNULL( TIMESTAMPDIFF( YEAR, uu.BIRTHDAY, CURDATE()), 0 ) age, | 
			
		
	
		
			
				
					|  |  |  |                     ad2.`name` streetName, ad2.id streetId | 
			
		
	
		
			
				
					|  |  |  |                 FROM | 
			
		
	
		
			
				
					|  |  |  |                     esua_epdc_user.epdc_user uu | 
			
		
	
		
			
				
					|  |  |  |                     LEFT JOIN esua_epdc_admin.sys_dept ad ON uu.DEPT_ID = ad.ID AND ad.type_key = 'grid_party' | 
			
		
	
		
			
				
					|  |  |  |                     LEFT JOIN esua_epdc_admin.sys_dept ad1 ON ad.pid = ad1.id | 
			
		
	
		
			
				
					|  |  |  |                     LEFT JOIN esua_epdc_admin.sys_dept ad2 ON ad1.pid = ad2.id | 
			
		
	
		
			
				
					|  |  |  |                 WHERE uu.DEL_FLAG = '0' | 
			
		
	
		
			
				
					|  |  |  |                     <if test='partyFlag != null and partyFlag = "1"'>AND uu.PARTY_FLAG = '1'</if> | 
			
		
	
		
			
				
					|  |  |  |                     <choose> | 
			
		
	
		
			
				
					|  |  |  |                         <when test="gridId != null and gridId != ''">AND ad2.ID = #{gridId}</when> | 
			
		
	
		
			
				
					|  |  |  |                         <otherwise> | 
			
		
	
		
			
				
					|  |  |  |                             <if test="deptIdList != null and deptIdList.size() > 0"> | 
			
		
	
		
			
				
					|  |  |  |                                 AND ad2.ID in | 
			
		
	
		
			
				
					|  |  |  |                                 <foreach collection="deptIdList" item="deptId" open="(" separator="," close=")">#{deptId}</foreach> | 
			
		
	
		
			
				
					|  |  |  |                             </if> | 
			
		
	
		
			
				
					|  |  |  |                         </otherwise> | 
			
		
	
		
			
				
					|  |  |  |                     </choose> | 
			
		
	
		
			
				
					|  |  |  |                     <if test="startTime != null and endTime != null and endTime != ''"> | 
			
		
	
		
			
				
					|  |  |  |                         AND uu.CREATED_TIME BETWEEN #{startTime} AND #{endTime} | 
			
		
	
		
			
				
					|  |  |  |                     </if> | 
			
		
	
		
			
				
					|  |  |  |                     AND ad.id IS NOT NULL | 
			
		
	
		
			
				
					|  |  |  |                 ) t | 
			
		
	
		
			
				
					|  |  |  |             ) t1 | 
			
		
	
		
			
				
					|  |  |  |         <choose> | 
			
		
	
		
			
				
					|  |  |  |             <when test='category != null and category == "0"'> | 
			
		
	
		
			
				
					|  |  |  |                 where | 
			
		
	
		
			
				
					|  |  |  |                 t.age>=50 | 
			
		
	
		
			
				
					|  |  |  |                 GROUP BY t.streetId | 
			
		
	
		
			
				
					|  |  |  |                 order by COUNT( t.age > 50 OR NULL ) desc | 
			
		
	
		
			
				
					|  |  |  |                 order by t1.oldCount desc | 
			
		
	
		
			
				
					|  |  |  |             </when> | 
			
		
	
		
			
				
					|  |  |  |             <when test='category != null and category == "1"'> | 
			
		
	
		
			
				
					|  |  |  |                 where | 
			
		
	
		
			
				
					|  |  |  |                 t.age < 50 | 
			
		
	
		
			
				
					|  |  |  |                 GROUP BY t.streetId | 
			
		
	
		
			
				
					|  |  |  |                 order by COUNT( ( t.age <= 50 AND t.age > 0 ) OR NULL ) desc | 
			
		
	
		
			
				
					|  |  |  |                 order by t1.youngCount desc | 
			
		
	
		
			
				
					|  |  |  |             </when> | 
			
		
	
		
			
				
					|  |  |  |             <when test='category != null and category == "2"'> | 
			
		
	
		
			
				
					|  |  |  |                 where | 
			
		
	
		
			
				
					|  |  |  |                 t.age>=50 | 
			
		
	
		
			
				
					|  |  |  |                 GROUP BY t.streetId | 
			
		
	
		
			
				
					|  |  |  |                 order by COUNT( t.age > 50 OR NULL ) asc | 
			
		
	
		
			
				
					|  |  |  |                 order by t1.oldCount asc | 
			
		
	
		
			
				
					|  |  |  |             </when> | 
			
		
	
		
			
				
					|  |  |  |             <when test='category != null and category == "3"'> | 
			
		
	
		
			
				
					|  |  |  |                 where | 
			
		
	
		
			
				
					|  |  |  |                 t.age < 50 | 
			
		
	
		
			
				
					|  |  |  |                 GROUP BY t.streetId | 
			
		
	
		
			
				
					|  |  |  |                 order by COUNT( t.age > 50 OR NULL ) asc | 
			
		
	
		
			
				
					|  |  |  |                 order by t1.youngCount asc | 
			
		
	
		
			
				
					|  |  |  |             </when> | 
			
		
	
		
			
				
					|  |  |  |             <otherwise> | 
			
		
	
		
			
				
					|  |  |  |                 GROUP BY t.streetId | 
			
		
	
		
			
				
					|  |  |  |                 GROUP BY t1.streetId | 
			
		
	
		
			
				
					|  |  |  |             </otherwise> | 
			
		
	
		
			
				
					|  |  |  |         </choose> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         ) t1 | 
			
		
	
		
			
				
					|  |  |  |         /*待补充排序功能 order by t1.oldCount asc */ | 
			
		
	
		
			
				
					|  |  |  |     </select> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     <select id="selectListPartyAuthFailureCountByStreetId" | 
			
		
	
	
		
			
				
					|  |  | 
 |