Эх сурвалжийг харах

fix 恒邦返回上年参保数据

liub 1 сар өмнө
parent
commit
e782a18b22

+ 13 - 1
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/build/HbCrawlerQuoteResultVoBuild.java

@@ -33,13 +33,21 @@ public final class HbCrawlerQuoteResultVoBuild {
         throw new IllegalStateException("Utility class");
         throw new IllegalStateException("Utility class");
     }
     }
 
 
-    public static QuoteResultsVo build(QuoteVo quoteVo, HbCrawlerProposalResponse proposalResponse, String calculationResult, String depreciationPrice) {
+    public static QuoteResultsVo build(QuoteVo quoteVo, HbCrawlerProposalResponse proposalResponse, String calculationResult, String depreciationPrice, String duplicateMessage) {
         QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
         QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
         quoteResultsVo.setOrdersNo(quoteVo.getOrder().getOrdersNo());
         quoteResultsVo.setOrdersNo(quoteVo.getOrder().getOrdersNo());
         quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.WAIT_AUDIT);
         quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.WAIT_AUDIT);
         if (!calculationResult.equals("成功")) {
         if (!calculationResult.equals("成功")) {
             quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.QUOTE_FAIL);
             quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.QUOTE_FAIL);
             quoteResultsVo.setErrorMessage(calculationResult);
             quoteResultsVo.setErrorMessage(calculationResult);
+            // 重试失败仍有重复投保信息时,放入评分字段
+            if (calculationResult.contains("重复投保")) {
+                QuoteResultsVo.ScoreVo scoreVo = new QuoteResultsVo.ScoreVo();
+                JSONArray scoreJson = new JSONArray();
+                scoreJson.add(new JSONObject().fluentPut("scoreName", "重复投保信息").fluentPut("scoreKey", "duplicateInfo").fluentPut("score", calculationResult));
+                scoreVo.setScoreJson(scoreJson);
+                quoteResultsVo.setScoreVo(scoreVo);
+            }
             return quoteResultsVo;
             return quoteResultsVo;
         }
         }
         //交强险
         //交强险
@@ -62,6 +70,10 @@ public final class HbCrawlerQuoteResultVoBuild {
             scoreJson.add(new JSONObject().fluentPut("scoreName", "交强光博分").fluentPut("scoreKey", "score").fluentPut("score", proposalResponse.getBusiCarInsureRisk().getBillelr2()));
             scoreJson.add(new JSONObject().fluentPut("scoreName", "交强光博分").fluentPut("scoreKey", "score").fluentPut("score", proposalResponse.getBusiCarInsureRisk().getBillelr2()));
 
 
         }
         }
+        // 重试成功时,将提前记录的重复投保信息放入评分字段
+        if (duplicateMessage != null) {
+            scoreJson.add(new JSONObject().fluentPut("scoreName", "重复投保信息").fluentPut("scoreKey", "duplicateInfo").fluentPut("score", duplicateMessage));
+        }
 
 
         scoreVo.setScoreJson(scoreJson);
         scoreVo.setScoreJson(scoreJson);
         quoteResultsVo.setScoreVo(scoreVo);
         quoteResultsVo.setScoreVo(scoreVo);

+ 6 - 8
tenant/insurance/quotation-hengbang/src/main/java/com/jzg/quotation/hengbang/crawler/service/Impl/HengBangCrawlerRequestImpl.java

@@ -167,6 +167,8 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
             return buildErrorResult(quoteVo);
             return buildErrorResult(quoteVo);
         }
         }
         String errorMsg = resJsonObj.getString("message");
         String errorMsg = resJsonObj.getString("message");
+        // 提前记录重复投保信息,避免重试成功后丢失
+        String duplicateMessage = errorMsg.contains("重复投保") ? errorMsg : null;
 
 
         HbCrawlerProposalResponse proposalResponse = null;
         HbCrawlerProposalResponse proposalResponse = null;
         // 脱保情况 重新赋值核心建议起保时间 二次报价
         // 脱保情况 重新赋值核心建议起保时间 二次报价
@@ -240,7 +242,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
             hbCrawlerOrder.setPlyappno(plyappno);
             hbCrawlerOrder.setPlyappno(plyappno);
             hbCrawlerOrderService.save(hbCrawlerOrder);
             hbCrawlerOrderService.save(hbCrawlerOrder);
         }
         }
-        return HbCrawlerQuoteResultVoBuild.build(quoteVo, proposalResponse, errorMsg,depreciationPrice);
+        return HbCrawlerQuoteResultVoBuild.build(quoteVo, proposalResponse, errorMsg, depreciationPrice, duplicateMessage);
     }
     }
 
 
     /**
     /**
@@ -263,7 +265,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
      * 构建异常返回结果
      * 构建异常返回结果
      */
      */
     private QuoteResultsVo buildErrorResult(QuoteVo quoteVo) {
     private QuoteResultsVo buildErrorResult(QuoteVo quoteVo) {
-        return HbCrawlerQuoteResultVoBuild.build(quoteVo, null, "恒邦calculation接口返回异常",null);
+        return HbCrawlerQuoteResultVoBuild.build(quoteVo, null, "恒邦calculation接口返回异常", null, null);
     }
     }
 
 
     /**
     /**
@@ -591,9 +593,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
             contentDTOList.forEach(contentDTO -> {
             contentDTOList.forEach(contentDTO -> {
                 //获取参数sign的值
                 //获取参数sign的值
                 String sign = getSign(contentDTO.getPOLICY_CATEGORY(), contentDTO.getBUSINESS_NO());
                 String sign = getSign(contentDTO.getPOLICY_CATEGORY(), contentDTO.getBUSINESS_NO());
-                StringBuilder downloadUrl = new StringBuilder(RequestUrl.DOWNLOAD_POLICY.getRequestUrl(hbCrawlerProperties.getBaseUrl()));
-                downloadUrl.append(contentDTO.getPOLICY_CATEGORY()).append("/").append(contentDTO.getBUSINESS_NO()).append("?sign=").append(sign);
-                downloadUrls.add(downloadUrl.toString());
+                downloadUrls.add(RequestUrl.DOWNLOAD_POLICY.getRequestUrl(hbCrawlerProperties.getBaseUrl()) + contentDTO.getPOLICY_CATEGORY() + "/" + contentDTO.getBUSINESS_NO() + "?sign=" + sign);
             });
             });
         }
         }
         return null;
         return null;
@@ -607,9 +607,7 @@ public class HengBangCrawlerRequestImpl implements HengBangCrawlerRequest {
      * @return
      * @return
      */
      */
     public String getSign(String riskType, String businessNo) {
     public String getSign(String riskType, String businessNo) {
-        StringBuilder signBuilder = new StringBuilder(DateTimeUtil.getLocalDateStr());
-        signBuilder.append(RequestConstant.POLICY_TYPE_POLICY).append(riskType).append(businessNo);
-        return DigestUtil.md5Hex(signBuilder.toString());
+        return DigestUtil.md5Hex(DateTimeUtil.getLocalDateStr() + RequestConstant.POLICY_TYPE_POLICY + riskType + businessNo);
     }
     }
 
 
     /**
     /**