wks 2 лет назад
Родитель
Сommit
159af1ea5c

+ 82 - 41
src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java

@@ -76,9 +76,14 @@ import com.ydtech.modules.order.utils.InsuranceLog;
 import com.ydtech.modules.protocol.entity.constants.PtlApiType;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import com.ydtech.utils.DateTimeUtil;
+import com.ydtech.utils.ObjectUtil;
 import com.ydtech.utils.StringUtils;
 import com.ydtech.utils.baidu.FileUtil;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
@@ -451,15 +456,6 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
     }
 
 
-    public String processingTime(String errorMsg, String regex){
-        String coverageEndDate = GuorenDuplicateInsuranceComponent.getEndDate(errorMsg, regex);
-
-        if (coverageEndDate.isEmpty()) {
-            coverageEndDate = GuorenDuplicateInsuranceComponent.getEndDate(errorMsg, REGEX_ALONE);
-        }
-        return coverageEndDate;
-    }
-
     /**
      * 报价  交强险 重复 投保业务处理
      */
@@ -470,32 +466,86 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
             requestInfoList.add(errorMsg);
             log.info("永诚API方式 - xml请求 ------------报价 ->   交强重复投保----------------");
 
-            String coverageEndDate = processingTime(errorMsg, JQ_REGEX);
-            if (coverageEndDate.isEmpty()) {
+            TimeEntity timeEntity = getRepeatStartEndTime(errorMsg, JQ_REGEX);
+
+            if(ObjectUtils.isEmpty(timeEntity)){
                 return "";
             }
 
-            //判断是否是及时起保
-            LocalDateTime start;
-            if (coverageEndDate.contains(END_TIME)) {
-                start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN).plusSeconds(1);
-            } else {
-                start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN);
-            }
-            LocalDateTime end = start.plusYears(1L).minusDays(1L);
-            String newStartDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
-            String newEndDate = DateTimeUtil.getEndTimeOfDayStr(end, DateTimeUtil.DATETIME_PATTERN);
-            log.error("新起:{}", newStartDate);
-            log.error("新止:{}", newEndDate);
-            CarInsDateDto cidd = Base.buildInsDate(newStartDate, newEndDate);
+            log.error("新起:{}", timeEntity.getNewStartDate());
+            log.error("新止:{}", timeEntity.getNewEndDate());
+            CarInsDateDto cidd = Base.buildInsDate(timeEntity.getNewStartDate(), timeEntity.getNewEndDate());
             m.getRequestLabel().getCondition().getBase().setTInsrncBgnTmJQ(cidd.getStartDate());
             m.getRequestLabel().getCondition().getBase().setTInsrncEndTmJQ(cidd.getEndDate());
             m.getRequestLabel().getCondition().getBase().setCImmeffMrk(cidd.isForthwith() ? "1" : "0");
-            return coverageEndDate;
+            return timeEntity.getCoverageEndDate();
         }
         return "";
     }
 
+    /**
+     * 处理时间
+     * @param errorMsg 报错信息
+     * @param regex 正则表达是
+     * @return
+     */
+    private String processingTime(String errorMsg, String regex){
+        String coverageEndDate = GuorenDuplicateInsuranceComponent.getEndDate(errorMsg, regex);
+
+        if (coverageEndDate.isEmpty()) {
+            coverageEndDate = GuorenDuplicateInsuranceComponent.getEndDate(errorMsg, REGEX_ALONE);
+        }
+        return coverageEndDate;
+    }
+
+
+    /**
+     * 通过报错信息获取开始时间和结束时间
+     * @param errorMsg
+     * @param regex
+     * @return
+     */
+    private TimeEntity getRepeatStartEndTime(String errorMsg, String regex){
+        String coverageEndDate = processingTime(errorMsg, regex);
+        TimeEntity timeEntity = new TimeEntity();
+
+        if (coverageEndDate.isEmpty()) {
+            return timeEntity;
+        }
+
+        timeEntity.setCoverageEndDate(coverageEndDate);
+        LocalDateTime start;
+        if (coverageEndDate.contains(END_TIME)) {
+            start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN).plusSeconds(1);
+        } else {
+            start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN);
+        }
+        LocalDateTime end = start.plusYears(1L).minusDays(1L);
+        timeEntity.setNewStartDate(DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN));
+        timeEntity.setNewEndDate(DateTimeUtil.getEndTimeOfDayStr(end, DateTimeUtil.DATETIME_PATTERN));
+        return timeEntity;
+    }
+
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @Data
+    public static class TimeEntity{
+
+        private String coverageEndDate;
+
+        /**
+         * 开始时间
+         */
+        private String newStartDate ;
+
+        /**
+         * 结束时间
+         */
+        private String newEndDate;
+
+    }
+
+
 
     /**
      * 报价  商业 重复 投保业务处理
@@ -506,29 +556,20 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         if (appSYFlag) {
             requestInfoList.add(errorMsg);
             log.info("永诚API方式 - xml请求 ------------报价 ->   商业险重复投保----------------");
+            TimeEntity timeEntity = getRepeatStartEndTime(errorMsg, SY_REGEX);
 
-            String coverageEndDate = processingTime(errorMsg, SY_REGEX);
-            if (coverageEndDate.isEmpty()) {
+            if(ObjectUtils.isEmpty(timeEntity)){
                 return "";
             }
-            LocalDateTime start;
-            if (coverageEndDate.contains(END_TIME)) {
-                start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN).plusSeconds(1);
-            } else {
-                start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN);
-            }
-            LocalDateTime end = start.plusYears(1L).minusDays(1L);
-            String newStartDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
-            String newEndDate = DateTimeUtil.getEndTimeOfDayStr(end, DateTimeUtil.DATETIME_PATTERN);
 
-            log.error("商业新起:{}", newStartDate);
-            log.error("商业新止:{}", newEndDate);
+            log.error("商业新起:{}", timeEntity.getNewStartDate());
+            log.error("商业新止:{}", timeEntity.getNewEndDate());
 
-            m.getRequestLabel().getCondition().getBase().setTInsrncBgnTmSY(newStartDate);
-            m.getRequestLabel().getCondition().getBase().setTInsrncEndTmSY(newEndDate);
+            m.getRequestLabel().getCondition().getBase().setTInsrncBgnTmSY(timeEntity.getNewStartDate());
+            m.getRequestLabel().getCondition().getBase().setTInsrncEndTmSY(timeEntity.getNewEndDate());
             //转保信息清空  重新报价
             m.getRequestLabel().getCondition().getVhl().setCBusType("0");
-            return coverageEndDate;
+            return timeEntity.getCoverageEndDate();
         }
         return "";
     }