Explorar el Código

修改bug:
修改报价和核保接口如果异常之后,记录错误信息没有记录上的问题

jiakai hace 4 meses
padre
commit
4b68ec7309

+ 3 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java

@@ -250,8 +250,9 @@ public class UnifyOrderManager {
         } catch (Exception e) {
             log.error("车险报价异常", e);
             Throwable root = e.getCause() != null ? e.getCause() : e;
-            insOrdersService.orderAfterUpdateFailedQuote(ordersNo, root.getMessage());
-            throw new SystemException(root.getMessage());
+            String errMsg = root.getMessage() != null ? root.getMessage() : "系统异常,报价失败";
+            insOrdersService.orderAfterUpdateFailedQuote(ordersNo, errMsg);
+            throw new SystemException(errMsg);
         }
         return quoteResultsVo.getQuoteStatusEnum()
                 .equals(InsOrderStatusEnum.WAIT_AUDIT) ? HttpResult.ok(quoteResultsVo) : HttpResult.error(500, quoteResultsVo, quoteResultsVo.getErrorMessage());

+ 1 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java

@@ -868,6 +868,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         //设置订单状态
         StateResult stateResult = orderStateListener.statusChange(underwritingResultsVo.getUnderwritingStatus(), insOrders.getOrderStatus());
         insOrders.setOrderStatus(String.valueOf(stateResult.getCurrentState()));
+        insOrders.setErrorMessage(underwritingResultsVo.getUnderwritingResult());
 
         //如果保司订单号存在则进行更新  有的保司在核保获取订单号
         if (Objects.nonNull(underwritingResultsVo.getCompanyOrderNo())) {

+ 21 - 3
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/Impl/ZiJinApiRequestImpl.java

@@ -138,17 +138,35 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
             logger.info("紫金/newPay获取新支付接口,结果为:{}", JSON.toJSONString(newPayRequestResponse));
             underwritingResultsVo.setPaymentLink(newPayRequestResponse.getTwoDimentionImageUrl());
         } catch (SystemException systemException) {
+            String uwMsg = systemException.getMessage();
+            uwMsg = (uwMsg == null || uwMsg.isBlank()) ? "核保接口异常" : uwMsg;
+
             QueryOrderDetailResponse queryOrderDetailResponse = ziJinApiRequestComponent.getOrderDetail(orderBase.getCompanyOrderNo(), httpHeaders);
-            logger.info("紫金/getOrderDetail订单详情查询服务接口,结果为:{}", JSON.toJSONString(queryOrderDetailResponse));
+            if (queryOrderDetailResponse == null) {
+                underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
+                underwritingResultsVo.setUnderwritingResult("核保失败:查询订单状态为空");
+                return underwritingResultsVo;
+            }
+
             QueryOrderDetailResponse.ResultObjDTO resultObj = queryOrderDetailResponse.getResultObj();
-            String uwMsg = systemException.getMessage();
+            logger.info("紫金/getOrderDetail订单详情查询服务接口,结果为:{}", JSON.toJSONString(queryOrderDetailResponse));
+
+            if (resultObj == null) {
+                underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
+                underwritingResultsVo.setUnderwritingResult("核保失败:订单状态未返回");
+                return underwritingResultsVo;
+            }
+
             if (OrderStatusEnum.O_3.getCode().equals(resultObj.getOrderStatus())) {
                 underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
                 underwritingResultsVo.setUnderwritingResult(OrderStatusEnum.O_3.getName() + ":" + uwMsg);
-                // 人工核保
             } else if (OrderStatusEnum.O_1.getCode().equals(resultObj.getOrderStatus())) {
                 underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.STAFF_PROCESS);
                 underwritingResultsVo.setUnderwritingResult("人工核保" + ":" + uwMsg);
+            } else {
+                // 兜底:未知状态
+                underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
+                underwritingResultsVo.setUnderwritingResult("核保失败:" + uwMsg);
             }
         }
         return underwritingResultsVo;