Explorar el Código

永诚重复投保修改

wks hace 2 años
padre
commit
2c87475ea4

+ 5 - 0
src/main/java/com/ydtech/config/resttemplate/RestTemplateServiceUnavailableRetryStrategy.java

@@ -2,10 +2,15 @@ package com.ydtech.config.resttemplate;
 
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.HttpResponse;
+import org.apache.http.annotation.Contract;
+import org.apache.http.annotation.ThreadingBehavior;
 import org.apache.http.client.ServiceUnavailableRetryStrategy;
 import org.apache.http.protocol.HttpContext;
 
 @Slf4j
+@Contract(
+        threading = ThreadingBehavior.IMMUTABLE
+)
 public class RestTemplateServiceUnavailableRetryStrategy implements ServiceUnavailableRetryStrategy {
 
 

+ 19 - 2
src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java

@@ -352,20 +352,37 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
 
     //endregion
 
+    public static void main(String[] args) {
+        String a = "交易失败:当前日志所在服务器地址:[1]!重复投保提示:该车辆已经存在有效保单,保单号:114C1036420220004958保险起期是:2022-11-20 00:00:00保险止期是:2023-11-19 23:59:59产品名称:机动车综合商业保险(2020版)";
+        String coverageEndDate = a.substring(a.indexOf("保险止期") + 6, a.indexOf("保险止期") + 6 + 16);
+        System.out.println(coverageEndDate);
+
+    }
+
 
     /**
      * 报价  交强险 重复 投保业务处理
      */
     public boolean ciRepetitionInsure(RuoteResponse rr, Ruote m) {
         String errorMsg = rr.getHead().getErrorMessage();
-        if (rr.getHead().getErrorCode().equals("009999") && errorMsg.contains("重复投保") && errorMsg.contains("终保日期")) {
+        if (rr.getHead().getErrorCode().equals("009999") && errorMsg.contains("重复投保")) {
             requestInfoList.add(errorMsg);
             log.info("永诚API方式 - xml请求 ------------报价 ->   交强重复投保----------------");
 
             //截取0 到 机动车交通事故强制险
             String ciMsg = errorMsg;
             //终保日期
-            String coverageEndDate = ciMsg.substring(ciMsg.indexOf("终保日期") + 5, ciMsg.indexOf("终保日期") + 5 + 16);
+            String coverageEndDate = null;
+
+            if(errorMsg.contains("终保日期")){
+                 coverageEndDate = ciMsg.substring(ciMsg.indexOf("终保日期") + 5, ciMsg.indexOf("终保日期") + 5 + 16);
+            } else if (errorMsg.contains("保险止期")) {
+                 coverageEndDate = ciMsg.substring(ciMsg.indexOf("保险止期") + 6, ciMsg.indexOf("保险止期") + 6 + 16);
+            }
+            if(StringUtils.isEmpty(coverageEndDate)){
+                throw new SystemException(ciMsg);
+            }
+
             LocalDateTime start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN_EXT1);
             LocalDateTime end = start.plusYears(1L).minusDays(1L);
             String newStartDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);