From 05b6a6b6114c609bdf46b7190e01f962e829656c Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 26 Jul 2022 16:27:36 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=94=BF=E7=AD=96=E3=80=91=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=88=86=E9=A1=B5varchar=E7=B1=BB=E5=9E=8B=E7=9A=84bi?= =?UTF-8?q?rthday=E6=8E=A5=E6=94=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../result/ResiByPolicyInfoResultDTO.java | 2 +- .../dataaggre/service/impl/ResiServiceImpl.java | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/ResiByPolicyInfoResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/ResiByPolicyInfoResultDTO.java index da425762d7..822b444390 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/ResiByPolicyInfoResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/ResiByPolicyInfoResultDTO.java @@ -42,5 +42,5 @@ public class ResiByPolicyInfoResultDTO { @ColumnWidth(10) private Integer age; @ExcelIgnore - private Date birthday; + private String birthday; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java index acc29d12f1..1b87efe324 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java @@ -43,6 +43,8 @@ import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.time.temporal.TemporalUnit; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; @Service @@ -60,6 +62,8 @@ public class ResiServiceImpl implements ResiService, ResultDataResolver { @Autowired private EpmetUserOpenFeignClient userOpenFeignClient; + public static final Pattern REG_DATE = Pattern.compile("^(\\d{4})-(\\d{2})-(\\d{2})"); + @Override public PageData listByPolicyRules(String orgId, String orgType, String neighborHoodId, String buildingId, String unitId, String houseId, String idCard, String name, Integer pageNo, Integer pageSize, @@ -212,8 +216,14 @@ public class ResiServiceImpl implements ResiService, ResultDataResolver { if (r.getBirthday() != null) { Integer age = null; try { - LocalDate birthdayLocalDate = LocalDateTime.ofInstant(r.getBirthday().toInstant(), ZoneId.systemDefault()).toLocalDate(); - age = Period.between(birthdayLocalDate, LocalDate.now()).getYears(); + Matcher matcher = REG_DATE.matcher(r.getBirthday()); + if (matcher.matches()) { + String year = matcher.group(1); + String month = matcher.group(2); + String day = matcher.group(3); + LocalDate birthdayLocalDate = LocalDate.of(Integer.parseInt(year), Integer.parseInt(month), Integer.parseInt(day)); + age = Period.between(birthdayLocalDate, LocalDate.now()).getYears(); + } } catch (DateTimeException e) { throw new EpmetException("居民生日计算错误"); }