Browse Source

华泰-处理切换账号报价核保问题;处理报价核保对应的险种参数不匹配问题

lixiaolong 3 months ago
parent
commit
9868e64750

+ 14 - 7
tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/crawler/entity/Request/HtCrawlerQuoteRequest.java

@@ -84,7 +84,7 @@ public class HtCrawlerQuoteRequest implements Serializable {
             } else {
                 this.isInsureBusi = false;
             }
-            this.afloatValue = "";
+            this.afloatValue = "0.0";
             this.hastax = this.isInsureTraffic;
             this.mealid = StringUtils.isBlank(mealid) ? "" : mealid;
             List<CovListDTO> covListDTOS = getCovListDTOS(quoteVo, limitAmount);
@@ -177,8 +177,10 @@ public class HtCrawlerQuoteRequest implements Serializable {
             this.displacement = "";
             this.recommendList = null;
             this.pilingRecommendNo = "";
-            this.specialcarflag = quoteVo.getCarInfoVo().isTransfer() ? "1" : "";
-            this.transferdate = quoteVo.getCarInfoVo().getTransferDate() == null ? "" : quoteVo.getCarInfoVo().getTransferDate().toString();
+            //this.specialcarflag = quoteVo.getCarInfoVo().isTransfer() ? "1" : "";
+            //this.transferdate = quoteVo.getCarInfoVo().getTransferDate() == null ? "" : quoteVo.getCarInfoVo().getTransferDate().toString();
+            this.specialcarflag = "";
+            this.transferdate = "";
             this.riskcode = this.coveragecode;
             this.chgownerRisk = "";
             this.quoIsLastPlanRecommendNo = "";
@@ -219,14 +221,20 @@ public class HtCrawlerQuoteRequest implements Serializable {
                     covListDTO.setCoveragecode("1251");
                     covListDTO.setComcoveragecode(kindInfoVo.getKindCode());
                     covListDTO.setComcoveragename(kindInfoVo.getKindName());
-                    // 机动车损失保险
+                    // A机动车损失保险 B机动车第三者责任保险 D11机动车车上人员责任险(司机) D12机动车车上人员责任险(乘客)
                     if(kindInfoVo.getKindCode().equals("A")) {
                         covListDTO.setLimitamount(limitAmount);
                         covListDTO.setInsteadwalkdailylimitamount(limitAmount);
-                    } else {
+                    } else if (kindInfoVo.getKindCode().equals("SR")){
+                        covListDTO.setLimitamount("");
+                    }else {
                         covListDTO.setLimitamount(kindInfoVo.getAmount());
                         covListDTO.setInsteadwalkdailylimitamount(kindInfoVo.getAmount());
                     }
+                    if(!kindInfoVo.getKindCode().equals("A") && !kindInfoVo.getKindCode().equals("B") &&
+                            !kindInfoVo.getKindCode().equals("D11") && !kindInfoVo.getKindCode().equals("D12")) {
+                        covListDTO.setQuantity("");
+                    }
                     // PB附加医保外医疗费用责任险(三者) PD11附加医保外医疗费用责任险(司机)
                     // PD12附加医保外医疗费用责任险(乘客)SR附加机动车道路救援服务特约条款
                     if(kindInfoVo.getKindCode().equals("PB") || kindInfoVo.getKindCode().equals("PD11") ||
@@ -239,8 +247,7 @@ public class HtCrawlerQuoteRequest implements Serializable {
                     covListDTO.setEnddate(ciRiskInfoVo.getEndDate());
                     covListDTO.setIsdedu("1");
                     covListDTO.setKindpremiun("");
-                    covListDTO.setQuantity(kindInfoVo.getQuantity());
-                    covListDTO.setServiceTimes("");
+                    covListDTO.setServiceTimes(kindInfoVo.getKindCode().equals("SR") ? kindInfoVo.getServiceTimes() : "");
                     covListDTO.setServiceCode("");
                     covListDTO.setBilldate(ciRiskInfoVo.getStartDate());
 

+ 1 - 1
tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/crawler/entity/Request/HtCrawlerSaveOneStepRequest.java

@@ -430,7 +430,7 @@ public class HtCrawlerSaveOneStepRequest implements Serializable {
         this.isYD = "";
         this.comcodeByUserVo = this.fullComCode;
         this.newLicenseno = "engineSix";
-
+        //归属区分
         this.isTeamCarFlag = "";
         this.teamcarmodelcode = "";
         this.teamcarmodelname = "";

+ 22 - 8
tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/crawler/service/Impl/HuaTaiCrawlerRequestImpl.java

@@ -555,13 +555,26 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
     private QuoteVo handleQuoteErrors(String decryptData, QuoteVo q) {
         boolean hasError = decryptData.contains("erroeInfo") || decryptData.contains("errrorFlag");
         if (!hasError) return q;
+        if (decryptData.contains("本机构并未配置此险种") || decryptData.contains("重复投保的其它公司") ||
+                (decryptData.contains("发生重复投保") && !decryptData.contains("终保日期"))) {
+            try {
+                throw new SystemException(MAPPER.readValue(decryptData, Map.class).get("erroeInfo").toString());
+            } catch (JsonProcessingException e) {
+                throw new RuntimeException(e);
+            }
+        }
 
-        boolean dup = decryptData.contains("发生重复投保") && decryptData.contains("终保日期");
-
-        if (dup) {
+        if (decryptData.contains("发生重复投保") && decryptData.contains("终保日期")) {
             q = handleDuplicateInsurance(decryptData, q);
             return q;
         }
+        if (decryptData.contains("erroeInfo") || decryptData.contains("errrorFlag")) {
+            try {
+                throw new SystemException(MAPPER.readValue(decryptData, Map.class).get("erroeInfo").toString());
+            } catch (JsonProcessingException e) {
+                throw new RuntimeException(e);
+            }
+        }
         return q;
     }
 
@@ -586,6 +599,8 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
 
     private HtCrawlerQuoteResponse.DataDTO resolveQuoteResponse(QuoteVo q, String decryptData, String mealid, String limitAmount,
                                                               HttpHeaders h, String personalInsuredJSON) throws Exception {
+        //单交不能重复投
+        if (decryptData.contains("存在有效交强险保单") || decryptData.contains("重复投保的其它公司")) throw new Exception(decryptData);
         HtCrawlerQuoteResponse.DataDTO data = JSONObject.parseObject(decryptData, HtCrawlerQuoteResponse.DataDTO.class);
         if (data.getApplicationdto() != null) return data;
 
@@ -681,6 +696,7 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
         doLoginCookie(attr);
 
         HtCrawlerOrder order = orderService.findByOrdersNo(vo.getOrder().getOrdersNo());
+        if("N".equals(order.getCiCategory()) || "6C".equals(order.getCiCategory())) throw new SystemException("核保失败-------强制下发修改意见,1.N类、6C类业务,请确认业务类别后再提交核保。");
         vo.getOrder().setQuoteNo(order.getQuotationRelaNo());
 
         HtCrawlerSubmitRequest submit = new HtCrawlerSubmitRequest(vo, params, order.getCiCategory(), order.getBiCategory());
@@ -693,7 +709,7 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
         if (res.contains("起保时间不正确")) {
             throw new SystemException("起保时间不正确-------即时起保分钟数必须为00/15/30/45\n请重新选择起保时间!");
         }
-        if (res.contains("需转人工核保")) return handleManualUnderwriting(order, params);
+        if (res.contains("转人工")) return handleManualUnderwriting(order, params);
         if (res.contains("已通过核保未实收") || isPassHB(map)) return handlePassedUnderwriting(order, params, vo);
 
         UnderwritingResultsVo r = new UnderwritingResultsVo();
@@ -741,10 +757,7 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
             throw new SystemException("审核未通过:" + (s >= 0 && e > s ? html.substring(s, e) : "审核未通过"));
         } catch (SystemException se) { throw se; }
         catch (Exception e) {
-            log.error("人工核保处理异常", e);
-            UnderwritingResultsVo r = new UnderwritingResultsVo();
-            r.setUnderwritingStatus(InsOrderStatusEnum.WAIT_AUDIT);
-            return r;
+            throw new SystemException(e.getMessage());
         }
     }
 
@@ -1078,6 +1091,7 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
         UriComponentsBuilder b = UriComponentsBuilder.fromHttpUrl(url);
         if (queryParams != null) queryParams.forEach(b::queryParam);
         String body = RT.exchange(b.toUriString(), HttpMethod.POST, new HttpEntity<>(data, headers), String.class).getBody();
+        log.info("转人工响应结果,{}", body);
         return MAPPER.readValue(body, Map.class);
     }
 

+ 8 - 7
tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/crawler/util/CookieUtils.java

@@ -89,13 +89,14 @@ public class CookieUtils {
             this.bigIpCookie = (String) cookies.get("BIGipServerypKFOfHGLAALYYraCSdVMw");
 
             // 如果不是特殊账号,获取归属信息
-            if (!specialUsers.contains(username)) {
-                try {
-                    getGuishu(comCode, useridName, dlrCode, dlxyCode);
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
+            //if (!specialUsers.contains(username)) {
+            //    try {
+            //        getGuishu(comCode, useridName, dlrCode, dlxyCode);
+            //    } catch (Exception e) {
+            //        e.printStackTrace();
+            //    }
+            //}
+            getGuishu(comCode, useridName, dlrCode, dlxyCode);
 
             Map<String, Object> resultMap = new HashMap<>();
             resultMap.put("code", 200);