Просмотр исходного кода

中煤重复投保未返回保期处理

cuixinpeng 2 лет назад
Родитель
Сommit
474aa6cdbd

+ 25 - 15
src/main/java/com/ydtech/modules/order/components/zhongmei/ZhongmeiRepeatInsuranceComponents.java

@@ -49,6 +49,7 @@ public class ZhongmeiRepeatInsuranceComponents {
         InsuranceLog.infoLog(InsuranceEnum.ZMBX.getPinyin(), "\n\t---------> {}\n\t---------> {}", "中煤财险重复投保处理", rtnMsgBz + rtnMsgBusi);
        /* rtnMsgBz = "交强险平台返回:号牌号码“晋HQE092”的保单发生重复投保,与其重复投保的其它公司的保单信息如下:投保确认码 02CCIC140022102196416712744293;保单号 PDFA22140123250000001413;起保日期 2022-10-24 00:00;终保日期 2023-10-24 00:00;号牌号码 晋HQE092;号牌种类 02;车架号 LSGBC5356HG101426;发动机号 170971343;地区 山西。";
         rtnMsgBusi = "平台校验:成功 投保查询码:V0101ZMBX140023092205710579353 平台校验,可能存在重复投保,请关注以下平台返回的信息。保单号:6605212022140193005587; 保险公司:中国人寿财产保险公司: 起保日期:2022-10-1600:00:00; 终保日期:2023-10-16; 录单日期:2022-09-15; 险种名称:机动车第三者责任保险: 号牌号码:晋A711BW; 号牌种类代码:02; 号牌底色:01; 车辆识别代号: LGWEF4A52HF424155; 发动机号:1725091016";
+        投保查询码:V0101ZMBX140023102198367810970平台校验,可能存在重复投保,请关注以下平台返回的信息。保单号:;保险公司:;起保日期:;终保日期:;录单日期:;车辆识别代号:LVHRE4876B5049915;发动机号:5049956;重复投保公司种类:其他公司
 */
         QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTOBiz = null;
         QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTOBusi = null;
@@ -68,29 +69,38 @@ public class ZhongmeiRepeatInsuranceComponents {
 
         if (StringUtils.isNotEmpty(rtnMsgBz) && rtnMsgBz.contains("起保日期") && rtnMsgBz.contains("终保日期")) {
             String coverageEndDate = rtnMsgBz.substring(rtnMsgBz.indexOf("终保日期") + 5, rtnMsgBz.indexOf("终保日期") + 5 + 16);
-            LocalDateTime start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN_EXT1);
-            jqEndDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
-            contractMainDTOBiz = getPeriodDate(jqEndDate, contractMainDTOBiz);
-            for (RiskInfoVo riskInfoVo : riskList) {
-                if (InsuranceRisk.TRAFFIC.getCode().equals(riskInfoVo.getRiskCode())) {
-                    riskInfoVo.setStartDate(contractMainDTOBiz.getValidDate());
-                    riskInfoVo.setEndDate(contractMainDTOBiz.getExpiryDate());
+            if(coverageEndDate.contains("-")){
+                LocalDateTime start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN_EXT1);
+                jqEndDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
+                contractMainDTOBiz = getPeriodDate(jqEndDate, contractMainDTOBiz);
+                for (RiskInfoVo riskInfoVo : riskList) {
+                    if (InsuranceRisk.TRAFFIC.getCode().equals(riskInfoVo.getRiskCode())) {
+                        riskInfoVo.setStartDate(contractMainDTOBiz.getValidDate());
+                        riskInfoVo.setEndDate(contractMainDTOBiz.getExpiryDate());
+                    }
                 }
+            }else{
+                return quotedPriceResponse;
             }
+
         }
 
         // 商业险
         if (StringUtils.isNotEmpty(rtnMsgBusi) && rtnMsgBusi.contains("起保日期") && rtnMsgBusi.contains("终保日期")) {
             String coverageEndDate = rtnMsgBusi.substring(rtnMsgBusi.indexOf("终保日期") + 5, rtnMsgBusi.indexOf("终保日期") + 5 + 10);
-            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-            LocalDateTime start = LocalDate.parse(coverageEndDate, dateTimeFormatter).atStartOfDay();
-            syEndDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
-            contractMainDTOBusi = getPeriodDate(syEndDate, contractMainDTOBusi);
-            for (RiskInfoVo riskInfoVo : riskList) {
-                if (InsuranceRisk.BUSINESS.getCode().equals(riskInfoVo.getRiskCode())) {
-                    riskInfoVo.setStartDate(contractMainDTOBiz.getValidDate());
-                    riskInfoVo.setEndDate(contractMainDTOBiz.getExpiryDate());
+            if(coverageEndDate.contains("-")){
+                DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                LocalDateTime start = LocalDate.parse(coverageEndDate, dateTimeFormatter).atStartOfDay();
+                syEndDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
+                contractMainDTOBusi = getPeriodDate(syEndDate, contractMainDTOBusi);
+                for (RiskInfoVo riskInfoVo : riskList) {
+                    if (InsuranceRisk.BUSINESS.getCode().equals(riskInfoVo.getRiskCode())) {
+                        riskInfoVo.setStartDate(contractMainDTOBiz.getValidDate());
+                        riskInfoVo.setEndDate(contractMainDTOBiz.getExpiryDate());
+                    }
                 }
+            }else{
+                return quotedPriceResponse;
             }
         }