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

处理华泰商业险费用问题;调整核保、获取支付码逻辑

lixiaolong 1 месяц назад
Родитель
Сommit
a5d8343613

+ 8 - 9
tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/crawler/build/HuaTaiCrawlerQuoteResultsVoBuild.java

@@ -177,12 +177,12 @@ public class HuaTaiCrawlerQuoteResultsVoBuild {
         quoteResultsVo.getCosts().setNiPremium(StringUtils.isBlank(niPremium) ? "0" : niPremium);
         // 计算总保费 = 交强险 + 商业险 + 驾意险 + 车船税
         QuoteResultsVo.CostsVo costs = quoteResultsVo.getCosts();
-        double sumPremium = 0.0;
-        if (StringUtils.isNotBlank(costs.getCiPremium())) sumPremium += Double.parseDouble(costs.getCiPremium());
-        if (StringUtils.isNotBlank(costs.getBiPremium())) sumPremium += Double.parseDouble(costs.getBiPremium());
-        if (StringUtils.isNotBlank(costs.getNiPremium())) sumPremium += Double.parseDouble(costs.getNiPremium());
-        if (StringUtils.isNotBlank(costs.getVvTax())) sumPremium += Double.parseDouble(costs.getVvTax());
-        costs.setSumPremium(String.valueOf(sumPremium));
+        BigDecimal sumPremium = BigDecimal.ZERO;
+        if (StringUtils.isNotBlank(costs.getCiPremium())) sumPremium = sumPremium.add(new BigDecimal(costs.getCiPremium()));
+        if (StringUtils.isNotBlank(costs.getBiPremium())) sumPremium = sumPremium.add(new BigDecimal(costs.getBiPremium()));
+        if (StringUtils.isNotBlank(costs.getNiPremium())) sumPremium = sumPremium.add(new BigDecimal(costs.getNiPremium()));
+        if (StringUtils.isNotBlank(costs.getVvTax())) sumPremium = sumPremium.add(new BigDecimal(costs.getVvTax()));
+        costs.setSumPremium(sumPremium.toString());
     }
 
     /**
@@ -191,12 +191,11 @@ public class HuaTaiCrawlerQuoteResultsVoBuild {
      * @return
      */
     public static String getBiPremium(HtCrawlerQuoteResponse.DataDTO quoteResponseData) {
-        Double result = 0D;
+        BigDecimal result = BigDecimal.ZERO;
         List<HtCrawlerQuoteResponse.DataDTO.CoverageDTOList.CoverageDTO> coverageDTOList = quoteResponseData.getCoveragedtolist() == null ? null : quoteResponseData.getCoveragedtolist().getCoveragedto();
         for (HtCrawlerQuoteResponse.DataDTO.CoverageDTOList.CoverageDTO coverageDTO : coverageDTOList) {
             if (!ContractEnum.C_BZ.getKindCode().equals(coverageDTO.getComcoveragecode())) {
-                result += Double.parseDouble(coverageDTO.getStandardpremium());
-                break;
+                result = result.add(new BigDecimal(coverageDTO.getStandardpremium()));
             }
         }
         return String.valueOf(result == null ? "" : result);

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

@@ -52,6 +52,7 @@ import com.jzg.quotation.huatai.crawler.util.UploadUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
@@ -925,13 +926,16 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
     }
 
     private UnderwritingResultsVo handlePassedUnderwriting(HtCrawlerOrder order, HtCrawlerConfigureParameters params, UnderwritingVo vo, Map<String, Object> map) {
+        UnderwritingResultsVo r = new UnderwritingResultsVo();
+        r.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
         HtCrawlerPaymentLinkResponse pl = queryPaymentLink(order, params, new PaymentLinkVo());
         log.info("handlePassedUnderwriting_paymentLinkResponse: {}", JSONObject.toJSONString(pl));
-        UnderwritingResultsVo r = new UnderwritingResultsVo();
+        if (pl == null || pl.getImg() == null) {
+            return r;
+        }
         r.setPaymentLink(pl.getImg());
         r.setJqPolicyno(map.get("jqProposalno") == null ? "" : map.get("jqProposalno").toString());
         r.setSyPolicyno(map.get("syProposalno") == null ? "" : map.get("syProposalno").toString());
-        r.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
 
         order.setJqPolicyno(r.getJqPolicyno());
         order.setSyPolicyno(r.getSyPolicyno());
@@ -956,6 +960,9 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
         HtCrawlerConfigureParameters params = ConfigureParametersConversion.conversionEntity(
                 HtCrawlerConfigureParameters.class, attr.getConfigInfo());
         HtCrawlerPaymentLinkResponse pl = queryPaymentLink(order, params, vo);
+        if (pl == null || pl.getImg() == null) {
+            return new PaymentLinkResultsVo(false, null, "暂时获取不到支付链接,请耐心等待~");
+        }
         log.info("paymentLinkResponse: {}", JSONObject.toJSONString(pl));
         order.setPaymentLink(pl.getImg());
         orderService.update(order);
@@ -971,8 +978,16 @@ public class HuaTaiCrawlerRequestImpl implements HuaTaiCrawlerRequest {
         qp.add("quotationno", order.getQuotationRelaNo());
         String body = get(ORIGIN + "/htcsp/PaymentAction.do", buildPaymentListHeaders(req.getCookie()), qp);
         //返回的是html 页面,暂不打印
-        //log.info("queryPaymentList response: {}", body);
-        return req.getPaymentLink(new HtCrawlerPaymentLinkRequest(params, vo, body), buildPaymentListHeaders(req.getCookie()));
+        // log.info("queryPaymentList body: {}", body);
+        HtCrawlerPaymentLinkRequest htCrawlerPaymentLinkRequest = new HtCrawlerPaymentLinkRequest(params, vo, body);
+        log.info("htCrawlerPaymentLinkRequest: {}", JSONObject.toJSONString(htCrawlerPaymentLinkRequest));
+        HtCrawlerPaymentLinkResponse paymentLink = new HtCrawlerPaymentLinkResponse();
+        try {
+            paymentLink = req.getPaymentLink(htCrawlerPaymentLinkRequest, buildPaymentListHeaders(req.getCookie()));
+        } catch (Exception e) {
+            throw new SystemException("暂时获取不到支付链接,请耐心等待~");
+        }
+        return paymentLink;
     }
 
     // ====================== Cookie 检查 ======================