|
|
@@ -71,8 +71,8 @@ public class DaDiVehicleUtils {
|
|
|
String transferDate = "";
|
|
|
String transferVehicleType = "";
|
|
|
String specialCarFlag = "0";
|
|
|
- boolean transferFlagBi = Boolean.TRUE.equals(carInfo.isTransferBi());
|
|
|
- boolean transferFlag = Boolean.TRUE.equals(carInfo.isTransfer());
|
|
|
+ boolean transferFlagBi = carInfo.isTransferBi();
|
|
|
+ boolean transferFlag = carInfo.isTransfer();
|
|
|
|
|
|
if (transferFlagBi || transferFlag) {
|
|
|
chgOwnerFlag = "1";
|
|
|
@@ -85,10 +85,47 @@ public class DaDiVehicleUtils {
|
|
|
} else {
|
|
|
transferVehicleType = "TI";
|
|
|
}
|
|
|
+ } else if (isAutoTransferVehicle(carInfo)) {
|
|
|
+ // 自动判定过户车:发证日期与注册日期不一致,且发证日期距报价日期不满1年
|
|
|
+ chgOwnerFlag = "1";
|
|
|
+ transferDate = carInfo.getIssueDate();
|
|
|
+ specialCarFlag = "1";
|
|
|
+ transferVehicleType = "TI";
|
|
|
}
|
|
|
return new String[]{chgOwnerFlag, transferDate, transferVehicleType, specialCarFlag};
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 自动判定过户车:发证日期与注册日期不一致,且发证日期距报价日期(当前日期)不满1年
|
|
|
+ */
|
|
|
+ private static boolean isAutoTransferVehicle(CarInfoVo carInfo) {
|
|
|
+ LocalDate issueDate = parseLocalDate(carInfo.getIssueDate());
|
|
|
+ LocalDate registerDate = parseLocalDate(carInfo.getRegisterDate());
|
|
|
+ if (issueDate == null || registerDate == null || issueDate.isEqual(registerDate)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ // 发证日期距报价日期不满1年:发证日期+1年 > 当前日期
|
|
|
+ return issueDate.plusYears(1).isAfter(LocalDate.now());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 解析日期字符串,兼容 yyyy-MM-dd / yyyy/M/d 格式
|
|
|
+ */
|
|
|
+ private static LocalDate parseLocalDate(String dateStr) {
|
|
|
+ if (dateStr == null || dateStr.isEmpty()) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ return LocalDate.parse(dateStr.replace("-", "/"), DateTimeFormatter.ofPattern("yyyy/M/d"));
|
|
|
+ } catch (Exception e) {
|
|
|
+ try {
|
|
|
+ return LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
+ } catch (Exception ex) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 计算车辆使用年限和月份
|
|
|
* 对应 Python calc_use_years()
|