Pārlūkot izejas kodu

永诚重复投保修改

wks 2 gadi atpakaļ
vecāks
revīzija
8574dd430f

+ 56 - 13
src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java

@@ -258,6 +258,14 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
             rr = this.getResponse(m, vinNo);
         }
 
+        //1、商业险重复投保处理
+        boo = commerceRepetitionInsure(rr, m);
+        if (!boo) {
+            InsuranceLog.infoLog(InsuranceEnum.AICS.getPinyin(), "\n\n---------> {} - 商业险重复投保处理", vinNo);
+            rr = this.getResponse(m, vinNo);
+        }
+
+
         //2、转保处理
         boo = reinsurance(rr, m);
         if (!boo) {
@@ -350,30 +358,23 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
 
     }
 
+    //endregion
+
+
     /**
      * 报价  交强险 重复 投保业务处理
      */
     public boolean ciRepetitionInsure(RuoteResponse rr, Ruote m) {
         String errorMsg = rr.getHead().getErrorMessage();
-        if (rr.getHead().getErrorCode().equals("009999") && errorMsg.contains("重复投保")) {
+
+        if (rr.getHead().getErrorCode().equals("009999") && errorMsg.contains("重复投保") && errorMsg.contains("机动车交通事故强制险")) {
             requestInfoList.add(errorMsg);
             log.info("永诚API方式 - xml请求 ------------报价 ->   交强重复投保----------------");
 
             //截取0 到 机动车交通事故强制险
             String ciMsg = errorMsg;
             //终保日期
-            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);
-            }
-
+            String coverageEndDate = ciMsg.substring(ciMsg.indexOf("终保日期") + 5, ciMsg.indexOf("终保日期") + 5 + 16);
             LocalDateTime start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN_EXT1);
             LocalDateTime end = start.plusYears(1L).minusDays(1L);
             String newStartDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
@@ -396,9 +397,51 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         }
         return true;
 
+    }
+
+
+    /**
+     * 报价  商业 重复 投保业务处理
+     */
+    public boolean commerceRepetitionInsure(RuoteResponse rr, Ruote m) {
+        String errorMsg = rr.getHead().getErrorMessage();
+        if (rr.getHead().getErrorCode().equals("009999") && errorMsg.contains("重复投保") && errorMsg.contains("机动车综合商业保险")) {
+            requestInfoList.add(errorMsg);
+            log.info("永诚API方式 - xml请求 ------------报价 ->   商业险重复投保----------------");
+
+            //截取0 到 机动车交通事故强制险
+            String ciMsg = errorMsg;
+            //终保日期
+            String coverageEndDate = ciMsg.substring(ciMsg.indexOf("保险止期") + 6, ciMsg.indexOf("保险止期") + 6 + 19);
+            LocalDateTime start;
+
+            if(coverageEndDate.contains("23:59:59")){
+                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);
+            System.err.println("商业新起:" + newStartDate);
+            System.err.println("商业新止:" + newEndDate);
+
+            m.getRequestLabel().getCondition().getBase().setTInsrncBgnTmSY(newStartDate);
+            m.getRequestLabel().getCondition().getBase().setTInsrncEndTmSY(newEndDate);
+
+            //转保信息清空  重新报价
+            m.getRequestLabel().getCondition().getVhl().setCBusType("0");
+
+            return false;
+
+        }
+        return true;
 
     }
 
+
     /**
      * 报价  商业险 重复 投保业务处理
      */