From 8972a3249db7909310e6934b4be2c276777f3786 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 6 Sep 2022 17:08:00 +0800 Subject: [PATCH 1/8] emm --- .../dto/IcPointNucleicMonitoringDTO.java | 5 ++ .../epmet/dto/result/MapInfoResultDTO.java | 5 ++ .../controller/IcPointAppController.java | 12 +++- .../dao/IcPointNucleicMonitoringDao.java | 8 +++ .../IcPointNucleicMonitoringEntity.java | 8 ++- .../com/epmet/service/IcPointAppService.java | 16 +++--- .../IcPointNucleicMonitoringService.java | 8 +++ .../service/impl/IcPointAppServiceImpl.java | 56 +++++-------------- .../IcPointNucleicMonitoringServiceImpl.java | 17 ++++-- ...ter_ic_point_nucleic_monitoring_enable.sql | 1 + .../mapper/IcPointNucleicMonitoringDao.xml | 10 ++++ 11 files changed, 86 insertions(+), 60 deletions(-) create mode 100644 epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.68__alter_ic_point_nucleic_monitoring_enable.sql diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcPointNucleicMonitoringDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcPointNucleicMonitoringDTO.java index 3a29fb0afc..08f51a1e5e 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcPointNucleicMonitoringDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcPointNucleicMonitoringDTO.java @@ -66,6 +66,11 @@ public class IcPointNucleicMonitoringDTO implements Serializable { */ private String address; + /** + * 未禁用enable,已禁用disabled + */ + private String enableFlag; + /** * 经度 */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MapInfoResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MapInfoResultDTO.java index 896d1195fc..12d9cf0db4 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MapInfoResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MapInfoResultDTO.java @@ -77,6 +77,11 @@ public class MapInfoResultDTO implements Serializable { */ private String latitude; + /** + * 未禁用enable,已禁用disabled + */ + private String enableFlag; + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcPointAppController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcPointAppController.java index b6f3edb0a7..c5c6ca64c3 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcPointAppController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcPointAppController.java @@ -43,7 +43,17 @@ public class IcPointAppController { return icPointAppService.getMapInfoByPointType(formDTO); } - + /** + * Desc: 核酸监测点启用禁用 + * @param id + * @author zxc + * @date 2022/9/6 16:39 + */ + @PostMapping("enableOrDisabled/{id}") + public Result enableOrDisabled(@PathVariable("id") String id){ + icPointAppService.enableOrDisabled(id); + return new Result(); + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcPointNucleicMonitoringDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcPointNucleicMonitoringDao.java index eae4085362..908cf46e44 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcPointNucleicMonitoringDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcPointNucleicMonitoringDao.java @@ -49,4 +49,12 @@ public interface IcPointNucleicMonitoringDao extends BaseDao getMapInfoList(MapInfoFormDTO formDTO); + /** + * Desc: 核酸监测点启用禁用 + * @param id + * @author zxc + * @date 2022/9/6 16:39 + */ + void enableOrDisabled(@Param("id") String id); + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcPointNucleicMonitoringEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcPointNucleicMonitoringEntity.java index 4a05b5d850..e9e54456cc 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcPointNucleicMonitoringEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcPointNucleicMonitoringEntity.java @@ -1,13 +1,10 @@ package com.epmet.entity; import com.baomidou.mybatisplus.annotation.TableName; - import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; - /** * 核酸监测点 * @@ -66,6 +63,11 @@ public class IcPointNucleicMonitoringEntity extends BaseEpmetEntity { */ private String address; + /** + * 未禁用enable,已禁用disabled + */ + private String enableFlag; + /** * 经度 */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointAppService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointAppService.java index 6d6f7626d9..f626bc4e01 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointAppService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointAppService.java @@ -1,18 +1,10 @@ package com.epmet.service; -import com.epmet.commons.mybatis.service.BaseService; -import com.epmet.commons.tools.page.PageData; -import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.IcPointNucleicMonitoringDTO; import com.epmet.dto.form.MapInfoFormDTO; import com.epmet.dto.result.MapInfoResultDTO; -import com.epmet.entity.IcPointNucleicMonitoringEntity; -import org.springframework.web.bind.annotation.RequestBody; -import java.io.InputStream; import java.util.List; -import java.util.Map; /** * 地图信息 @@ -29,5 +21,11 @@ public interface IcPointAppService { */ Result> getMapInfoByPointType(MapInfoFormDTO formDTO); - + /** + * Desc: 核酸监测点启用禁用 + * @param id + * @author zxc + * @date 2022/9/6 16:39 + */ + void enableOrDisabled(String id); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointNucleicMonitoringService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointNucleicMonitoringService.java index 70d92655a5..3d862dd627 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointNucleicMonitoringService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcPointNucleicMonitoringService.java @@ -105,4 +105,12 @@ public interface IcPointNucleicMonitoringService extends BaseService getMapInfoList(MapInfoFormDTO formDTO); + + /** + * Desc: 核酸监测点启用禁用 + * @param id + * @author zxc + * @date 2022/9/6 16:39 + */ + void enableOrDisabled(String id); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointAppServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointAppServiceImpl.java index 7927aea977..16d73ed457 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointAppServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointAppServiceImpl.java @@ -1,58 +1,17 @@ package com.epmet.service.impl; -import cn.afterturn.easypoi.excel.ExcelExportUtil; -import cn.afterturn.easypoi.excel.entity.ExportParams; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; -import com.epmet.commons.tools.constant.FieldConstant; -import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; -import com.epmet.commons.tools.exception.EpmetException; -import com.epmet.commons.tools.exception.ExceptionUtils; -import com.epmet.commons.tools.page.PageData; -import com.epmet.commons.tools.redis.common.CustomerOrgRedis; -import com.epmet.commons.tools.redis.common.CustomerStaffRedis; -import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; -import com.epmet.commons.tools.security.dto.TokenDto; -import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.ExcelPoiUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.constants.ImportTaskConstants; -import com.epmet.dao.IcPointVaccinesInoculationDao; -import com.epmet.dto.IcPointVaccinesInoculationDTO; -import com.epmet.dto.form.ImportTaskCommonFormDTO; import com.epmet.dto.form.MapInfoFormDTO; import com.epmet.dto.result.MapInfoResultDTO; -import com.epmet.dto.result.UploadImgResultDTO; -import com.epmet.entity.IcPointVaccinesInoculationEntity; -import com.epmet.excel.IcPointVaccinesInoculationImportExcel; -import com.epmet.excel.error.PointVaccinesInoculationErrorModel; -import com.epmet.feign.EpmetCommonServiceOpenFeignClient; -import com.epmet.feign.GovOrgFeignClient; -import com.epmet.feign.OssFeignClient; -import com.epmet.redis.IcPointVaccinesInoculationRedis; import com.epmet.service.IcPointAppService; import com.epmet.service.IcPointNucleicMonitoringService; import com.epmet.service.IcPointVaccinesInoculationService; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.fileupload.FileItem; -import org.apache.commons.fileupload.FileItemFactory; -import org.apache.commons.fileupload.disk.DiskFileItemFactory; -import org.apache.commons.lang3.StringUtils; -import org.apache.http.entity.ContentType; -import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.multipart.commons.CommonsMultipartFile; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.*; -import java.util.stream.Collectors; +import java.util.ArrayList; +import java.util.List; /** * 地图信息 @@ -85,4 +44,15 @@ public class IcPointAppServiceImpl implements IcPointAppService { } return new Result>().ok(mapInfoResultDTO); } + + /** + * Desc: 核酸监测点启用禁用 + * @param id + * @author zxc + * @date 2022/9/6 16:39 + */ + @Override + public void enableOrDisabled(String id) { + icPointNucleicMonitoringService.enableOrDisabled(id); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointNucleicMonitoringServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointNucleicMonitoringServiceImpl.java index cb2b516b13..df2214249c 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointNucleicMonitoringServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcPointNucleicMonitoringServiceImpl.java @@ -5,7 +5,7 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; -import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; @@ -16,7 +16,6 @@ import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.utils.ExcelPoiUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constants.ImportTaskConstants; @@ -28,10 +27,8 @@ import com.epmet.dto.form.OrgInfoPointFormDTO; import com.epmet.dto.result.CommunityInfoResultDTO; import com.epmet.dto.result.MapInfoResultDTO; import com.epmet.dto.result.UploadImgResultDTO; -import com.epmet.entity.IcEpidemicSpecialAttentionEntity; import com.epmet.entity.IcPointNucleicMonitoringEntity; import com.epmet.excel.IcPointNucleicMonitoringImportExcel; -import com.epmet.excel.error.EpidemicSpecialAttentionErrorModel; import com.epmet.excel.error.PointNucleicMonitoringErrorModel; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.feign.GovOrgFeignClient; @@ -373,5 +370,17 @@ public class IcPointNucleicMonitoringServiceImpl extends BaseServiceImpl + + + update ic_point_nucleic_monitoring + set UPDATED_TIME = now(), + ENABLE_FLAG = case when ENABLE_FLAG = 'enable' then 'disabled' else 'enable' end + where id = #{id} + + select ID, CUSTOMER_ID, @@ -32,7 +42,9 @@ AGENCY_ID, AGENCY_PIDS, PARTY_ORG_TYPE, - PARTY_ORG_NAME + PARTY_ORG_NAME, + PRINCIPAL_MOBILE, + PRINCIPAL from ic_party_org where DEL_FLAG=0 and CUSTOMER_ID=#{customerId} @@ -87,7 +99,9 @@ AGENCY_ID, AGENCY_PIDS, PARTY_ORG_TYPE, - PARTY_ORG_NAME as label + PARTY_ORG_NAME as label, + PRINCIPAL_MOBILE, + PRINCIPAL from ic_party_org where DEL_FLAG=0 and CUSTOMER_ID=#{customerId} @@ -105,7 +119,9 @@ AGENCY_ID, AGENCY_PIDS, PARTY_ORG_TYPE, - PARTY_ORG_NAME + PARTY_ORG_NAME, + PRINCIPAL_MOBILE, + PRINCIPAL from ic_party_org where DEL_FLAG=0 and CUSTOMER_ID=#{customerId} @@ -124,7 +140,9 @@ AGENCY_ID, AGENCY_PIDS, PARTY_ORG_TYPE, - PARTY_ORG_NAME + PARTY_ORG_NAME, + PRINCIPAL_MOBILE, + PRINCIPAL from ic_party_org where DEL_FLAG = 0 and CUSTOMER_ID=#{customerId} From ce60644b40fece64aab46af1f8119876af59b233 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 7 Sep 2022 17:21:58 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E6=96=B0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resi/group/dto/member/ResiGroupMemberDTO.java | 2 ++ .../com/epmet/modules/group/dao/ResiGroupDao.java | 2 ++ .../group/service/impl/ResiGroupServiceImpl.java | 15 +++++++++++++++ .../main/resources/mapper/group/ResiGroupDao.xml | 11 +++++++++++ 4 files changed, 30 insertions(+) diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberDTO.java index 9244410c3b..bc092e7205 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberDTO.java @@ -43,6 +43,8 @@ public class ResiGroupMemberDTO implements Serializable { * 用户id,来源于customer_user.id */ private String customerUserId; + private String customerUserName; + private String customerUserMobile; /** * 小组id: 来源于resi_group表id diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java index 6b12507ce9..4675312559 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java @@ -346,4 +346,6 @@ public interface ResiGroupDao extends BaseDao { * @date 2021.09.08 14:00:52 */ List listGroupsByMember(@Param("memberUserId") String memberUserId, @Param("gridId") String gridId); + + List getMembersByGroup(@Param("ids")List ids); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index b97db2ca00..95b136c9ac 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -44,6 +44,7 @@ import com.epmet.commons.tools.utils.ScanContentUtils; import com.epmet.constant.ReadFlagConstant; import com.epmet.constant.UserMessageTypeConstant; import com.epmet.dto.form.*; +import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.dto.result.UserInfoResultDTO; import com.epmet.dto.result.UserResiInfoResultDTO; import com.epmet.dto.result.UserRoleResultDTO; @@ -1946,6 +1947,16 @@ public class ResiGroupServiceImpl extends BaseServiceImpl groupIds = entityList.stream().map(m -> m.getId()).collect(Collectors.toList()); + List membersByGroup = baseDao.getMembersByGroup(groupIds); + Result> listResult = epmetUserOpenFeignClient.queryUserBaseInfo(membersByGroup.stream().map(m -> m.getCustomerUserId()).collect(Collectors.toList())); + if (!listResult.success()){ + throw new EpmetException("查询居民信息失败..."); + } + membersByGroup.stream().forEach(m -> listResult.getData().stream().filter(u -> u.getUserId().equals(m.getCustomerUserId())).forEach(u -> { + m.setCustomerUserMobile(u.getMobile()); + m.setCustomerUserName(u.getRealName()); + })); List list = entityList.stream().filter(i -> StringUtils.isNotBlank(i.getPartyOrgId())).map(item -> { IcPartyOrgTreeDTO dto = new IcPartyOrgTreeDTO(); dto.setId(item.getId()); @@ -1955,6 +1966,10 @@ public class ResiGroupServiceImpl extends BaseServiceImpl membersByGroup.stream().filter(m -> m.getResiGroupId().equals(l.getId())).forEach(m -> { + l.setPrincipal(m.getCustomerUserName()); + l.setPrincipalMobile(m.getCustomerUserMobile()); + })); if (CollectionUtils.isEmpty(list)) { return Collections.emptyMap(); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml index b04c4aef48..957b687fa5 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml @@ -1072,4 +1072,15 @@ and resi_group.STATE = 'approved' order by resi_group.CREATED_TIME desc + From eadc1c9bff0a09be64e0b96857656c1d5c1df159 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Thu, 8 Sep 2022 13:32:12 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E6=96=B0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/group/ResiGroupDao.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml index 957b687fa5..c235a5826a 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml @@ -1076,7 +1076,7 @@ SELECT CUSTOMER_USER_ID,RESI_GROUP_ID FROM resi_group_member WHERE DEL_FLAG = '0' AND GROUP_LEADER_FLAG = 'leader' - AND `STATUS` = 'approved' + AND RESI_GROUP_ID IN ( #{id} From 5bd15bb4bb89fb3cb99d1a61483bd2d61b2f9675 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Thu, 8 Sep 2022 16:04:26 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E8=AF=81=E4=BB=B6=E5=8F=B7=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E7=B1=BB=E5=A2=9E=E5=8A=A0=E5=B9=B4=E9=BE=84=E8=AE=A1?= =?UTF-8?q?=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/tools/utils/IdCardRegexUtils.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IdCardRegexUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IdCardRegexUtils.java index 96d7d02a62..ff1f0b0549 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IdCardRegexUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IdCardRegexUtils.java @@ -1,10 +1,15 @@ package com.epmet.commons.tools.utils; import com.epmet.commons.tools.enums.IdCardTypeEnum; +import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ExceptionUtils; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.time.DateTimeException; +import java.time.LocalDate; +import java.time.Period; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -50,6 +55,7 @@ public class IdCardRegexUtils { private String birthdayMonth; private String birthdayDay; private String sex; + private Integer age; } /** @@ -116,7 +122,17 @@ public class IdCardRegexUtils { String month = matcher.group("month"); String day = matcher.group("day"); String sex = matcher.group("sex"); - return new ParsedContent(year, month, day, sex); + + // ------- 年龄Start---------- + Integer age; + try { + LocalDate birthday = LocalDate.of(Integer.parseInt(year), Integer.parseInt(month), Integer.parseInt(day)); + age = Period.between(birthday, LocalDate.now()).getYears(); + } catch (DateTimeException e) { + throw new EpmetException("身份证号解析年龄失败:" + ExceptionUtils.getErrorStackTrace(e)); + } + // ------- 年龄End---------- + return new ParsedContent(year, month, day, sex, age); } // 其他类型暂时不可解析 @@ -130,4 +146,10 @@ public class IdCardRegexUtils { public IdCardTypeEnum getTypeEnum() { return idCardType; } + + public static void main(String[] args) { + IdCardRegexUtils parse = IdCardRegexUtils.parse("370282198801303017"); + ParsedContent parsedResult = parse.getParsedResult(); + System.out.println(parsedResult); + } }