From e1204cf30b9a541de2fb44f23586e2376108ba1b Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 13 Apr 2023 11:18:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B4=E9=BE=84=E8=AE=A1=E7=AE=97=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/mapper/IcResiUserDao.xml | 63 ++++++++++--------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml index b3812ddf38..9b30ddb1a8 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml @@ -1558,31 +1558,35 @@ temp.CODE, count(temp.ID) as totalResi from ( - SELECT - u.ID, - YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) as age, + select + temp1.id, ( - case when u.BIRTHDAY > DATE_SUB(CURDATE(),INTERVAL 50 year) then '0' - when u.BIRTHDAY BETWEEN DATE_SUB(CURDATE(),INTERVAL 59 year) AND DATE_SUB(CURDATE(),INTERVAL 50 year) then '1' - when u.BIRTHDAY BETWEEN DATE_SUB(CURDATE(),INTERVAL 69 year) AND DATE_SUB(CURDATE(),INTERVAL 60 year) then '2' - when u.BIRTHDAY BETWEEN DATE_SUB(CURDATE(),INTERVAL 79 year) AND DATE_SUB(CURDATE(),INTERVAL 70 year) then '3' - when u.BIRTHDAY <= DATE_SUB(CURDATE(),INTERVAL 80 year) then '4' - end + case when temp1.age < 50 then '0' + when temp1.age >= 50 and temp1.age <= 59 then '1' + when temp1.age >= 60 and temp1.age <= 69 then '2' + when temp1.age >= 70 and temp1.age <= 79 then '3' + when temp1.age >= 80 then '4' + end ) as `code` - FROM - ic_resi_user u - WHERE - u.DEL_FLAG = '0' - AND u.CUSTOMER_ID = #{customerId} - and u.`STATUS`='0' - and u.BIRTHDAY is not null - and u.BIRTHDAY !='' - - AND ( u.AGENCY_ID = #{orgId} OR u.PIDS LIKE concat('%',#{orgId},'%') ) - - - and u.GRID_ID = #{orgId} - + from ( + SELECT + u.ID, + YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) as age + FROM + ic_resi_user u + WHERE + u.DEL_FLAG = '0' + AND u.CUSTOMER_ID = #{customerId} + and u.`STATUS`='0' + and u.BIRTHDAY is not null + and u.BIRTHDAY !='' + + AND ( u.AGENCY_ID = #{orgId} OR u.PIDS LIKE concat('%',#{orgId},'%') ) + + + and u.GRID_ID = #{orgId} + + )temp1 )temp group by temp.`code` @@ -1601,8 +1605,7 @@ u.ID_CARD AS idCard, u.GENDER AS gender, ( CASE WHEN u.GENDER = '1' THEN '男' WHEN u.GENDER = '2' THEN '女' ELSE '未知' END ) AS genderName, - YEAR ( - NOW())- SUBSTR( u.BIRTHDAY, 1, 4 ) AS age, + YEAR (NOW())- SUBSTR( u.BIRTHDAY, 1, 4 ) AS age, u.CULTURE AS educationCode, '' AS educationName, IFNULL(u.CULTURE,'')AS educationCode, @@ -1626,19 +1629,19 @@ - and u.BIRTHDAY > DATE_SUB(CURDATE(),INTERVAL 50 year) + and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) < 50 - and u.BIRTHDAY BETWEEN DATE_SUB(CURDATE(),INTERVAL 59 year) AND DATE_SUB(CURDATE(),INTERVAL 50 year) + and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) >=50 and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) <=59 - and u.BIRTHDAY BETWEEN DATE_SUB(CURDATE(),INTERVAL 69 year) AND DATE_SUB(CURDATE(),INTERVAL 60 year) + and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) >= 60 and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) <= 69 - and u.BIRTHDAY BETWEEN DATE_SUB(CURDATE(),INTERVAL 79 year) AND DATE_SUB(CURDATE(),INTERVAL 70 year) + and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) >=70 and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) <=79 - and u.BIRTHDAY <= DATE_SUB(CURDATE(),INTERVAL 80 year) + and YEAR(NOW())-SUBSTR(u.BIRTHDAY, 1, 4) >=80 order by u.ID asc