Sfoglia il codice sorgente

1、永诚报价增加筛选车型年份。

ligang134 3 anni fa
parent
commit
ed05483401

+ 11 - 0
README.md

@@ -109,6 +109,17 @@
 
 
 
+**《掌柜鼎PC平台》临时更新公告**
+
+* 版本号:v0.0.3.7
+* 访问地址:http://sxzgkj.baoxianzhanggui.com/
+* 更新日期:2023-09-06
+* 更新时间:10:10  ~  10:20
+* 更新内容:
+  1. 永诚光博分最终修改。
+  2. 解决永城报价有时候提示系统级别错误。
+
+
 
 
 

+ 16 - 6
src/main/java/com/ydtech/modules/ins/model/yc/ruote/Base.java

@@ -10,6 +10,9 @@ import com.ydtech.utils.DateTimeUtil;
 import com.ydtech.utils.DateUtil;
 import lombok.Data;
 
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.Date;
 import java.util.List;
 
@@ -332,13 +335,20 @@ public class Base {
 
         riskList.stream().forEach(a -> {
 
-            String endDateStr = DateTimeUtil.parseLocalDateToString(a.getEndDate(), DateTimeUtil.DATETIME_PATTERN);
+            LocalDate lStartDate = DateTimeUtil.parseLocalDate(a.getStartDate(), DateTimeUtil.DATETIME_PATTERN);
+            LocalDate lEndDate = DateTimeUtil.parseLocalDate(a.getEndDate(), DateTimeUtil.DATETIME_PATTERN);
+
+
+            if(lStartDate.isAfter(LocalDate.now().plusDays(1))){
+                lStartDate = lStartDate.plusDays(-1);
+                lEndDate = lEndDate.plusDays(-1);
+            }
+
 
             //商业险
             if (a.getRiskCode().equals("0510")) {
-                base.setTInsrncBgnTmSY(a.getStartDate());
-                //格式化日期
-                base.setTInsrncEndTmSY(endDateStr + " 24:00:00");
+                base.setTInsrncBgnTmSY(lStartDate.toString() + " 00:00:00");
+                base.setTInsrncEndTmSY(lEndDate.toString() + " 24:00:00");
                 base.setAppSYFlag("Y");
                 base.setCProdNoSY("0364");
 
@@ -346,8 +356,8 @@ public class Base {
 
             //交强险
             if (a.getRiskCode().equals("0507")) {
-                base.setTInsrncBgnTmJQ(a.getStartDate());
-                base.setTInsrncEndTmJQ(endDateStr + " 24:00:00");
+                base.setTInsrncBgnTmJQ(lStartDate.toString() + " 00:00:00");
+                base.setTInsrncEndTmJQ(lEndDate.toString() + " 24:00:00");
                 base.setCAppJqFlag("Y");
                 base.setCProdNoJQ("0326");
             }

+ 9 - 1
src/main/java/com/ydtech/modules/ins/service/impl/InsAlltrustApiServiceImpl.java

@@ -69,6 +69,7 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
 
 
 @Service
@@ -257,9 +258,14 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
         try {
             String cleanStr = YcBuildData.cleanResponseStr(responseData);
             ModelsQueryResponse rd = xmlMapper.readValue(cleanStr, ModelsQueryResponse.class);
-            List<ModelsQueryResponse.VehicleInfo> vehicleInfoList = buildCarModel(rd);
+//            List<ModelsQueryResponse.VehicleInfo> vehicleInfoList = buildCarModel(rd);
 
             BigDecimal matchNum = BigDecimal.ZERO;
+
+            //获取上市年份大于等于注册日期的车辆信息
+            List<ModelsQueryResponse.VehicleInfo> vehicleInfoList = buildCarModel(rd).stream().filter(a ->DateTimeUtil.dateIsAfter(carInfo.getRegisterDate(),a.getVehicleYear())).collect(Collectors.toList());
+
+
             //匹配车辆信息
             vehicleInfoList.stream().forEach(a ->{
                 //购置价匹配
@@ -271,6 +277,8 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
 
                     matchNum.add(BigDecimal.ONE);
                 }
+
+
             });
             //未匹配
             if(matchNum == BigDecimal.ZERO){

+ 62 - 2
src/main/java/com/ydtech/utils/DateTimeUtil.java

@@ -131,6 +131,22 @@ public class DateTimeUtil {
         return LocalDate.parse(localDateStr, dateTimeFormatter).toString();
     }
 
+
+    /**
+     * 日期字符串转换为 日期字符串  前一天
+     *
+     * @param localDateStr 日期字符串
+     * @param pattern      日期格式 例如DATE_PATTERN
+     * @return String 日期
+     */
+    public static String parseLocalDateToStringFrontOne(String localDateStr, String pattern) {
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(pattern);
+        LocalDate date = LocalDate.parse(localDateStr,dateTimeFormatter);
+        LocalDate yesterday = date.plusDays(-1);
+        return yesterday.toString();
+    }
+
+
     /**
      * 获取指定日期时间加上指定数量日期时间单位之后的日期时间.
      *
@@ -419,11 +435,55 @@ public class DateTimeUtil {
     }
 
 
+    /**
+     *  date1 是否大于 date2
+     * @param date1  格式yyyy-MM-dd HH:mm:ss
+     * @param date2  格式 yyyyMM 或 yyyy
+     *
+     * @author: lig
+     * @date: 2023年09月06日 0006
+     */
+    public static boolean dateIsAfter(String date1,String date2) {
+
+//        String dateStr = "2018-06-20 00:00:00";
+//        String dateStr2 = "201806";
+        if(date2.length() < 5)date2 = date2 + "0101";
+        if(date2.length() < 7)date2 = date2 +"01";
+
+
+        LocalDate lRegisterDate = DateTimeUtil.parseLocalDate(date1, DateTimeUtil.DATE_PATTERN);
+        LocalDate lVehicleYearDate = DateTimeUtil.parseLocalDate(date2, DateTimeUtil.UNSIGNED_DATE_PATTERN);
+
+//        System.err.println("注册日期:"+lRegisterDate);
+//        System.err.println("上市日期:"+lVehicleYearDate);
+        return lVehicleYearDate.isAfter(lRegisterDate);
+
+
+
+
+    }
+
+
     public static void main(String[] args) throws ParseException {
 
         String dateStr = "2018-06-20 00:00:00";
-        String aaa = DateTimeUtil.parseLocalDateToString(dateStr, DateTimeUtil.DATETIME_PATTERN);
-        System.out.println("aaaa: " + aaa);
+        String dateStr2 = "201806";
+        if(dateStr2.length() < 7)dateStr2 = dateStr2 +"01";
+//        String aaa = DateTimeUtil.parseLocalDateToString(dateStr, DateTimeUtil.DATETIME_PATTERN);
+//        System.out.println("aaaa: " + aaa);
+
+
+        LocalDate lRegisterDate = DateTimeUtil.parseLocalDate(dateStr, DateTimeUtil.DATETIME_PATTERN);
+        LocalDate lVehicleYearDate = DateTimeUtil.parseLocalDate(dateStr2, DateTimeUtil.UNSIGNED_DATE_PATTERN);
+
+        if(lVehicleYearDate.isAfter(lRegisterDate)){
+
+        }
+
+        System.err.println("注册日期:"+lRegisterDate);
+        System.err.println("上市日期:"+lVehicleYearDate);
+
+
 
     }
 }