Kaynağa Gözat

永城重复投保处理

bifrons 2 yıl önce
ebeveyn
işleme
ff043b1cbc

+ 30 - 17
src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java

@@ -114,6 +114,8 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
 
     public static final String SY_REGEX = "商业险.+?保险止期是[::\\s]?([0-9\\-:]+)";
 
+    public static final String DAN_JQ_REGEX = "终保日期[::\\s]?([0-9\\-]+)";
+
     public static final String END_TIME = "23:59:59";
 
 
@@ -318,23 +320,15 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
                 m.getRequestLabel().getCondition().getVhl().setCQryCdeSY("");
             }
 
-            if (errorMsg.contains("机动车综合商业保险")) {
-                cAppJqFlag = false;
-            } else if (errorMsg.contains("机动车交通事故强制险")) {
-                appSYFlag = false;
-            } else {
-                appSYFlag = false;
-            }
-
             //处理返回信息
             //1、交强险重复投保处理
-            String jq = ciRepetitionInsure(rr, m, requestInfoList, cAppJqFlag);
+            String jq = ciRepetitionInsure(rr, m, requestInfoList, cAppJqFlag, appSYFlag);
             //1、商业险重复投保处理
-            String sy = commerceRepetitionInsure(rr, m, requestInfoList, appSYFlag);
+            String sy = commerceRepetitionInsure(rr, m, requestInfoList, appSYFlag, cAppJqFlag);
 
             if (jq.isEmpty() && sy.isEmpty()) {
                 throw new SystemException(errorMsg);
-            }else {
+            } else {
                 InsuranceLog.infoLog(InsuranceEnum.AICS.getPinyin(), "\n\n---------> {} - 重复投保处理", vinNo);
                 return this.getResponse(m, vinNo, requestInfoList, yaQuoteInfoVo);
             }
@@ -459,15 +453,24 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
     /**
      * 报价  交强险 重复 投保业务处理
      */
-    public String ciRepetitionInsure(RuoteResponse rr, Ruote m, List<String> requestInfoList, boolean cAppJqFlag) {
+    public String ciRepetitionInsure(RuoteResponse rr, Ruote m, List<String> requestInfoList, boolean cAppJqFlag,
+                                     boolean flag) {
         String errorMsg = rr.getHead().getErrorMessage();
 
         if (cAppJqFlag) {
             requestInfoList.add(errorMsg);
-
             log.info("永诚API方式 - xml请求 ------------报价 ->   交强重复投保----------------");
+            String coverageEndDate;
+
+            if (flag) {
+                coverageEndDate = GuorenDuplicateInsuranceComponent.getEndDate(errorMsg, JQ_REGEX);
+            } else {
+                coverageEndDate = GuorenDuplicateInsuranceComponent.getEndDate(errorMsg, DAN_JQ_REGEX);
+            }
 
-            String coverageEndDate = GuorenDuplicateInsuranceComponent.getEndDate(errorMsg, JQ_REGEX);
+            if (coverageEndDate.isEmpty()) {
+                throw new SystemException(errorMsg);
+            }
 
             //判断是否是及时起保
             LocalDateTime start;
@@ -494,13 +497,23 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
     /**
      * 报价  商业 重复 投保业务处理
      */
-    public String commerceRepetitionInsure(RuoteResponse rr, Ruote m, List<String> requestInfoList, boolean appSYFlag) {
+    public String commerceRepetitionInsure(RuoteResponse rr, Ruote m, List<String> requestInfoList, boolean appSYFlag
+            , boolean flag) {
         String errorMsg = rr.getHead().getErrorMessage();
 
         if (appSYFlag) {
             requestInfoList.add(errorMsg);
             log.info("永诚API方式 - xml请求 ------------报价 ->   商业险重复投保----------------");
-            String coverageEndDate = GuorenDuplicateInsuranceComponent.getEndDate(errorMsg, SY_REGEX);
+            String coverageEndDate;
+            if (flag) {
+                coverageEndDate = GuorenDuplicateInsuranceComponent.getEndDate(errorMsg, SY_REGEX);
+            } else {
+                coverageEndDate = GuorenDuplicateInsuranceComponent.getEndDate(errorMsg, DAN_JQ_REGEX);
+            }
+
+            if (coverageEndDate.isEmpty()) {
+                throw new SystemException(errorMsg);
+            }
             LocalDateTime start;
             if (coverageEndDate.contains("23:59:59")) {
                 start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN).plusSeconds(1);
@@ -897,7 +910,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
 
         AccidentUnderwritingRequest accidentUnderwritingRequest =
                 new AccidentUnderwritingRequest(ycConfigureParameters.getPassword(),
-                ycConfigureParameters.getUserName(), insOrderNo);
+                        ycConfigureParameters.getUserName(), insOrderNo);
 
         AccidentUnderwritingResponse accidentUnderwritingResponse =
                 yongchengRequestApiComponents.submitPolicy(accidentUnderwritingRequest);