Kaynağa Gözat

Merge remote-tracking branch 'origin/test' into test

wks 2 yıl önce
ebeveyn
işleme
554e3ec981

+ 6 - 1
src/main/java/com/ydtech/modules/order/components/ZhongmeiRequestApiComponents.java

@@ -196,7 +196,12 @@ public class ZhongmeiRequestApiComponents {
 
     public <T extends BaseResponse> void validationResults(T t) {
         if ("-1".equals(t.getHead().getReturnCode())) {
-            throw new SystemException(t.getHead().getReturnMessage());
+            if(StringUtils.isNotEmpty(t.getHead().getReturnMessage())&& t.getHead().getReturnMessage().contains("商业险重复投保") && t.getHead().getReturnMessage().contains("重复投保的本公司的保单信息")){
+
+            }else{
+                throw new SystemException(t.getHead().getReturnMessage());
+            }
+
         }
     }
 

+ 38 - 0
src/main/java/com/ydtech/modules/order/components/zhongmei/ZhongmeiRepeatInsuranceComponents.java

@@ -99,6 +99,44 @@ public class ZhongmeiRepeatInsuranceComponents {
 
         return zhongmeiRequestApiComponents.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
     }
+    public QuotedPriceResponse dealRepeatDateFormError(QuotedPriceRequest quotedPriceRequest, QuotedPriceResponse quotedPriceResponse, BaseQuoteInfoVo quoteInfo) {
+        //InsuranceLog.infoLog(InsuranceEnum.ZMBX.getPinyin(), "\n\t---------> {}\n\t---------> {}", "中煤财险重复投保处理", quotedPriceResponse.getBizPlatformMsg().getAnswer());
+        String rtnMsgBusi = quotedPriceResponse.getHead().getReturnMessage();
+        List<RiskInfoVo> riskList = quoteInfo.getRiskList();
+       /* 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";
+*/
+        QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTOBiz = null;
+        QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTOBusi = null;
+        List<QuotedPriceRequest.ContractDTO> contractDTOList = quotedPriceRequest.getBusinessData().getContract();
+
+        for(QuotedPriceRequest.ContractDTO contractDTO :contractDTOList){
+            QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTO =contractDTO.getContractMain();
+            if("0330".equals(contractMainDTO.getRiskCode())){
+                contractMainDTOBiz = contractDTO.getContractMain();
+            }else{
+                contractMainDTOBusi = contractDTO.getContractMain();
+            }
+
+        }
+        String syEndDate = "";
+        // 商业险
+        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().plusDays(1);
+            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());
+                }
+            }
+        }
+
+        return zhongmeiRequestApiComponents.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
+    }
 
     private QuotedPriceRequest.ContractDTO.ContractMainDTO  getPeriodDate(String startDate, QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTO){
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

+ 17 - 0
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -168,6 +168,11 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         quotedPriceRequest.setHead(baseRequestHead);
 
         QuotedPriceResponse quotedPriceResponse = zhongmeiRequestApiComponents.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
+        if ("-1".equals(quotedPriceResponse.getHead().getReturnCode())) {
+            if (StringUtils.isNotEmpty(quotedPriceResponse.getHead().getReturnMessage()) && quotedPriceResponse.getHead().getReturnMessage().contains("商业险重复投保") && quotedPriceResponse.getHead().getReturnMessage().contains("重复投保的本公司的保单信息")) {
+                quotedPriceResponse = zhongmeiRepeatInsuranceComponents.dealRepeatDateFormError(quotedPriceRequest,quotedPriceResponse,quoteInfo);
+            }
+        }
         QuoteRespVo quoteRespVo = getQuoteRespVo(quotedPriceResponse, quoteInfo);
         if(quotedPriceResponse.getBizPlatformMsg()!=null && StringUtils.isNotEmpty(quotedPriceResponse.getBizPlatformMsg().getAnswer())){
             if(quotedPriceResponse.getBizPlatformMsg().getAnswer().contains("起保日期")&&quotedPriceResponse.getBizPlatformMsg().getAnswer().contains("终保日期")){
@@ -449,6 +454,18 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         String zmScore = quotedPriceResponse.getPlatMain().getZmScore();
         quoteRespVo.setILogPreUdwMess(zmScore);//评分
         quoteRespVo.setOrderno(yaQuoteInfoVo.getOrderNo()); //订单号
+
+        /*QuotedPriceResponse.AccidentPrimium accidentPrimium = quotedPriceResponse.getRideAccidentPrimium();
+        if(accidentPrimium!=null){
+            AccidentResponseVo accidentResponseVo = new AccidentResponseVo();
+            accidentResponseVo.setProjectCode(accidentPrimium.getRideRiskCode());
+            accidentResponseVo.setProjectName(accidentPrimium.getRideRiskName());
+            accidentResponseVo.setQuantity(accidentPrimium.getQuantity());
+            accidentResponseVo.setPremium(accidentPrimium.getUnitPremium());
+            accidentResponseVo.setActualPremium(accidentPrimium.getSumPremium());
+            List<AccidentResponseVo> accidentResponseVoList = new ArrayList<>();
+            quoteRespVo.setAccident();
+        }*/
         return quoteRespVo;
     }