|
|
@@ -17,6 +17,9 @@ import lombok.NoArgsConstructor;
|
|
|
import java.io.Serial;
|
|
|
import java.io.Serializable;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.time.temporal.ChronoUnit;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
@@ -123,7 +126,7 @@ public class GuoRenCrawlerCreateOrderRequest implements Serializable {
|
|
|
insuredListDTO.setInsuredType("1");
|
|
|
insuredListDTO.setCertiStartDate(insuredPersonInfo.getIdentifyValidDate());
|
|
|
insuredListDTO.setCertiEndDate("");
|
|
|
- insuredListDTO.setCertiValidity("4");
|
|
|
+ insuredListDTO.setCertiValidity("2");
|
|
|
insuredListDTO.setCountryCode("156");
|
|
|
insuredListDTO.setCountryName("中国");
|
|
|
insuredListDTO.setCustomerRelations("01");
|
|
|
@@ -197,7 +200,7 @@ public class GuoRenCrawlerCreateOrderRequest implements Serializable {
|
|
|
orderAppl.setContactMobile(null);
|
|
|
orderAppl.setCertiStartDate(policyHolderInfo.getIdentifyValidDate());
|
|
|
orderAppl.setCertiEndDate("");
|
|
|
- orderAppl.setCertiValidity("4");
|
|
|
+ orderAppl.setCertiValidity("2");
|
|
|
orderAppl.setCountryCode("156");
|
|
|
orderAppl.setCountryName("中国");
|
|
|
orderAppl.setAddrProvince(policyHolderInfo.getProvince());
|
|
|
@@ -331,6 +334,28 @@ public class GuoRenCrawlerCreateOrderRequest implements Serializable {
|
|
|
return liabList;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据身份证起止日期计算证件有效期年限
|
|
|
+ * 长期有效(结束日期包含"9999"或"长期")返回"长期",否则返回实际年限
|
|
|
+ */
|
|
|
+ private static String calculateCertiValidity(String startDate, String endDate) {
|
|
|
+ if (startDate == null || endDate == null || startDate.isEmpty() || endDate.isEmpty()) {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ // 长期有效
|
|
|
+ if (endDate.contains("9999") || endDate.contains("长期")) {
|
|
|
+ return "长期";
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ LocalDate start = LocalDate.parse(startDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
+ LocalDate end = LocalDate.parse(endDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
+ long years = ChronoUnit.YEARS.between(start, end);
|
|
|
+ return String.valueOf(years);
|
|
|
+ } catch (Exception e) {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// ==================== 内部 DTO ====================
|
|
|
|
|
|
@Data
|