jinshihui 9 месяцев назад
Родитель
Сommit
fae4a3ba7f

+ 56 - 1
tenant/insurance/quotation-taishan/src/main/java/com/jzg/quotation/taishan/crawler/component/TaiShanCrawlerRequestComponent.java

@@ -159,7 +159,7 @@ public class TaiShanCrawlerRequestComponent {
      */
     public TaiShanCrawlerUnderwritingResponse underwriting(TaiShanCrawlerUnderwritingRequest taiShanCrawlerUnderwritingRequest, HttpHeaders headers) {
         MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
-        params.add("orderNo",taiShanCrawlerUnderwritingRequest.getOrderNo());
+        params.add("orderNo", taiShanCrawlerUnderwritingRequest.getOrderNo());
         log.info("核保请求参数: {}", params);
         try {
             TaiShanCrawlerUnderwritingResponse response = requestComponent.get(
@@ -222,4 +222,59 @@ public class TaiShanCrawlerRequestComponent {
         ResponseEntity<TaiShanCrawlerGenerateQRCodeResponse> responseEntity = requestComponent.postWithMono(RequestUrl.QRCODE.getRequestUrl(taiShanCrawlerProperties.getBaseUrl()), jsonString, TaiShanCrawlerGenerateQRCodeResponse.class, headers);
         return responseEntity.getBody();
     }
+
+    /**
+     * 查询订单状态
+     *
+     * @param taiShanCrawlerOrderQueryRequest
+     * @param headers
+     * @return TaiShanCrawlerOrderQueryResponse
+     */
+    public TaiShanCrawlerOrderQueryResponse queryOrderStatus(TaiShanCrawlerOrderQueryRequest taiShanCrawlerOrderQueryRequest, HttpHeaders headers) {
+        String jsonString = JSON.toJSONString(taiShanCrawlerOrderQueryRequest);
+        log.info("taiShanCrawlerOrderQueryRequest请求参数的值:{}", jsonString);
+
+        ResponseEntity<TaiShanCrawlerOrderQueryResponse> response = requestComponent.postWithMono(
+                RequestUrl.QUERY_ORDER_STATUS.getRequestUrl(taiShanCrawlerProperties.getBaseUrl()),
+                jsonString,
+                TaiShanCrawlerOrderQueryResponse.class,
+                headers
+        );
+        return response.getBody();
+    }
+
+    /**
+     * 查询保单信息
+     *
+     * @param taiShanCrawlerPolicyQueryRequest
+     * @param headers
+     * @return TaiShanCrawlerPolicyQueryResponse
+     */
+    public TaiShanCrawlerPolicyQueryResponse queryPolicy(TaiShanCrawlerPolicyQueryRequest taiShanCrawlerPolicyQueryRequest, HttpHeaders headers) {
+        String jsonString = JSON.toJSONString(taiShanCrawlerPolicyQueryRequest);
+        log.info("taiShanCrawlerPolicyQueryRequest请求参数的值:{}", jsonString);
+
+        ResponseEntity<TaiShanCrawlerPolicyQueryResponse> response = requestComponent.postWithMono(
+                RequestUrl.QUERY_POLICY_LIST.getRequestUrl(taiShanCrawlerProperties.getBaseUrl()),
+                jsonString,
+                TaiShanCrawlerPolicyQueryResponse.class,
+                headers
+        );
+        return response.getBody();
+    }
+
+    /**
+     * 下载电子保单
+     *
+     * @param taiShanCrawlerDownLoadPolicyRequest
+     * @param headers
+     * @return TaiShanCrawlerDownLoadPolicyResponse
+     */
+     public TaiShanCrawlerDownLoadPolicyResponse downloadPolicy(TaiShanCrawlerDownLoadPolicyRequest taiShanCrawlerDownLoadPolicyRequest, HttpHeaders headers) {
+        String jsonString = JSON.toJSONString(taiShanCrawlerDownLoadPolicyRequest);
+        log.info("taiShanCrawlerDownLoadPolicyRequest请求参数的值:{}", jsonString);
+
+        ResponseEntity<TaiShanCrawlerDownLoadPolicyResponse> responseEntity = requestComponent.postWithMono(RequestUrl.ELECTRON_POLICY_IO_DOWNLOAD.getRequestUrl(taiShanCrawlerProperties.getBaseUrl()), jsonString, TaiShanCrawlerDownLoadPolicyResponse.class, headers);
+        return responseEntity.getBody();
+    }
 }

+ 106 - 9
tenant/insurance/quotation-taishan/src/main/java/com/jzg/quotation/taishan/crawler/service/impl/TaiShanCrawlerRequestImpl.java

@@ -201,6 +201,7 @@ public class TaiShanCrawlerRequestImpl implements TaiShanCrawlerRequest {
 
     /**
      * 上传影像件
+     *
      * @param insuranceUploadImageVo
      */
     @Override
@@ -252,6 +253,7 @@ public class TaiShanCrawlerRequestImpl implements TaiShanCrawlerRequest {
 
     /**
      * 获取支付链接
+     *
      * @param paymentLinkVo
      * @return PaymentLinkResultsVo
      */
@@ -279,12 +281,12 @@ public class TaiShanCrawlerRequestImpl implements TaiShanCrawlerRequest {
             //获取支付卡
             TaiShanCrawlerPaymentCardResponse taiShanCrawlerPaymentCardResponse = taiShanCrawlerRequestComponent.getPaymentCard(taiShanCrawlerPaymentCardRequest, headers);
             log.info("taiShanCrawlerPaymentCardResponse参数的值:{}", JSON.toJSONString(taiShanCrawlerPaymentCardResponse));
-            if("200".equals(taiShanCrawlerPaymentCardResponse.getCode())) {
+            if ("200".equals(taiShanCrawlerPaymentCardResponse.getCode())) {
                 log.info("获取支付卡成功");
                 //生成支付二维码
                 TaiShanCrawlerGenerateQRCodeRequest taiShanCrawlerGenerateQRCodeRequest = new TaiShanCrawlerGenerateQRCodeRequest();
                 // 设置生成二维码请求参数
-                if(taiShanCrawlerPaymentCardResponse.getResult() != null) {
+                if (taiShanCrawlerPaymentCardResponse.getResult() != null) {
                     taiShanCrawlerGenerateQRCodeRequest.setManuFlg("YS");
                     taiShanCrawlerGenerateQRCodeRequest.setPaymentNo(taiShanCrawlerPaymentCardResponse.getResult().getBatchNo());
                     taiShanCrawlerGenerateQRCodeRequest.setIfElec("1");
@@ -301,7 +303,7 @@ public class TaiShanCrawlerRequestImpl implements TaiShanCrawlerRequest {
                 }
                 TaiShanCrawlerGenerateQRCodeResponse taiShanCrawlerGenerateQRCodeResponse = taiShanCrawlerRequestComponent.generateQRCode(taiShanCrawlerGenerateQRCodeRequest, headers);
                 log.info("taiShanCrawlerGenerateQRCodeResponse参数的值:{}", JSON.toJSONString(taiShanCrawlerGenerateQRCodeResponse));
-                if("200".equals(taiShanCrawlerGenerateQRCodeResponse.getCode())) {
+                if ("200".equals(taiShanCrawlerGenerateQRCodeResponse.getCode())) {
                     log.info("生成支付二维码成功");
                     paymentLinkResultsVo.setPayLinkStatus(true);
                     paymentLinkResultsVo.setPaymentLink(taiShanCrawlerGenerateQRCodeResponse.getResult());
@@ -322,16 +324,111 @@ public class TaiShanCrawlerRequestImpl implements TaiShanCrawlerRequest {
         }
     }
 
-
-
+    /**
+     * 查询订单状态
+     *
+     * @param orderStatusVo
+     * @return OrderStatusResultVo
+     * @throws Exception
+     */
     @Override
-    public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
-        return null;
+    public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) throws Exception {
+        try {
+            AttributionInformationVo attributionInformationVo = orderStatusVo.getOrder().getAttributionInformationVo();
+            HttpHeaders headers = taiShanCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+            TaiShanCrawlerOrder ziJinCrawlerOrder = taiShanCrawlerOrderService.getByOrdersNo(orderStatusVo.getOrder().getOrdersNo());
+
+            TaiShanCrawlerOrderQueryRequest taiShanCrawlerOrderQueryRequest = new TaiShanCrawlerOrderQueryRequest();
+            taiShanCrawlerOrderQueryRequest.setApplicantName("");                          // 投保人姓名
+            taiShanCrawlerOrderQueryRequest.setContainSubFlag("1");                        // 是否包含下级标识(1-包含,0-不包含)
+            taiShanCrawlerOrderQueryRequest.setUnderWriteCompany("11030001");             // 承保公司代码
+            taiShanCrawlerOrderQueryRequest.setLoginCompany("11030001");                  // 登录公司代码
+            taiShanCrawlerOrderQueryRequest.setInsuredName("");                           // 被保险人姓名
+            taiShanCrawlerOrderQueryRequest.setOrderNo("O1369202511211436074935");       // 订单号
+            taiShanCrawlerOrderQueryRequest.setProposalNo("");                            // 投保单号
+            taiShanCrawlerOrderQueryRequest.setPolicyNo("");                              // 保单号
+            taiShanCrawlerOrderQueryRequest.setOwnerName("");                             // 车主姓名
+            taiShanCrawlerOrderQueryRequest.setPageNum(1);                                // 当前页码
+            taiShanCrawlerOrderQueryRequest.setPageSize(10);                              // 每页显示条数
+            taiShanCrawlerOrderQueryRequest.setPlateNo("");                               // 车牌号
+            taiShanCrawlerOrderQueryRequest.setStatus("");                                // 状态
+            taiShanCrawlerOrderQueryRequest.setDptRelCde("00;11;1103;11030001");        // 部门关系代码(层级结构)
+            taiShanCrawlerOrderQueryRequest.setEngineNo("");                              // 发动机号
+            taiShanCrawlerOrderQueryRequest.setComPoints("");                             // 商业险积分/佣金点数
+            taiShanCrawlerOrderQueryRequest.setRenewalClass("");                          // 续保类别
+            taiShanCrawlerOrderQueryRequest.setVin("");                                   // 车架号(车辆识别代码)
+            taiShanCrawlerOrderQueryRequest.setOperatorCode("");                          // 操作员代码
+            taiShanCrawlerOrderQueryRequest.setSaleNo("");                                // 销售员编号
+            taiShanCrawlerOrderQueryRequest.setEndOperateDate("");             // 操作结束日期
+            taiShanCrawlerOrderQueryRequest.setStartOperateDate("");            // 操作开始日期
+            taiShanCrawlerOrderQueryRequest.setEndProposalTime("");             // 投保结束时间
+            taiShanCrawlerOrderQueryRequest.setStartProposalTime("");           // 投保开始时间
+
+            TaiShanCrawlerOrderQueryResponse taiShanCrawlerOrderQueryResponse = taiShanCrawlerRequestComponent.queryOrderStatus(taiShanCrawlerOrderQueryRequest, headers);
+            log.info("taiShanCrawlerOrderQueryResponse对象的值:{}", JSON.toJSONString(taiShanCrawlerOrderQueryResponse));
+            if ("200".equals(taiShanCrawlerOrderQueryResponse.getCode())) {
+                //获取订单状态
+                String orderStatus = taiShanCrawlerOrderQueryResponse.getResult().getList().get(0).getStatus();
+                //将保司返回的订单状态转换为系统定义的订单状态枚举类型
+                InsOrderStatusEnum orderStatusEnum = null;
+                if ("1".equals(orderStatus)) {
+                    orderStatusEnum = InsOrderStatusEnum.valueOf("QUOTE_ING");
+                    orderStatus = orderStatusEnum.getCode();
+                }
+                OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
+                //将订单状态转换为枚举类型
+                orderStatusResultVo.setOrderStatus(orderStatusEnum);
+                orderStatusResultVo.setOrderStatusStr(orderStatus);
+                return orderStatusResultVo;
+            } else {
+                log.error("查询订单状态失败,错误码:{},错误信息:{}", taiShanCrawlerOrderQueryResponse.getCode(), taiShanCrawlerOrderQueryResponse.getMessage());
+                throw new RuntimeException("查询订单状态失败,错误码:" + taiShanCrawlerOrderQueryResponse.getCode() + ",错误信息:" + taiShanCrawlerOrderQueryResponse.getMessage());
+            }
+        } catch (RuntimeException e) {
+            e.printStackTrace();
+            throw new RuntimeException(e);
+        }
     }
 
+    /**
+     * 下载保单
+     *
+     * @param downloadPolicyVo
+     * @return DownloadPolicyResultVo
+     */
     @Override
-    public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) throws Exception {
-        return null;
+    public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
+        try {
+            AttributionInformationVo attributionInformationVo = downloadPolicyVo.getOrder().getAttributionInformationVo();
+            HttpHeaders headers = taiShanCrawlerQuoteProcessService.getHeaders(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
+            TaiShanCrawlerOrder taiShanCrawlerOrder = taiShanCrawlerOrderService.getByOrdersNo(downloadPolicyVo.getOrder().getOrdersNo());
+            DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
+            // 下载交强险保单
+            if (StringUtils.hasLength(taiShanCrawlerOrder.getCiPolicyNo())) {
+                String ciPolicyNo = taiShanCrawlerOrder.getCiPolicyNo();
+                TaiShanCrawlerDownLoadPolicyRequest taiShanCrawlerDownLoadPolicyRequest = new TaiShanCrawlerDownLoadPolicyRequest();
+                taiShanCrawlerDownLoadPolicyRequest.setIds(ciPolicyNo);
+
+                TaiShanCrawlerDownLoadPolicyResponse taiShanCrawlerDownLoadPolicyResponse = taiShanCrawlerRequestComponent.downloadPolicy(taiShanCrawlerDownLoadPolicyRequest, headers);
+                log.info("taiShanCrawlerDownLoadPolicyResponse对象的值:{}", JSON.toJSONString(taiShanCrawlerDownLoadPolicyResponse));
+                downloadPolicyResultVo.setJqUrl(taiShanCrawlerDownLoadPolicyResponse.getResult());
+            }
+
+            //下载商业险保单
+            if (StringUtils.hasLength(taiShanCrawlerOrder.getBiPolicyNo())) {
+                String biPolicyNo = taiShanCrawlerOrder.getBiPolicyNo();
+                TaiShanCrawlerDownLoadPolicyRequest taiShanCrawlerDownLoadPolicyRequest = new TaiShanCrawlerDownLoadPolicyRequest();
+                taiShanCrawlerDownLoadPolicyRequest.setIds(biPolicyNo);
+
+                TaiShanCrawlerDownLoadPolicyResponse taiShanCrawlerDownLoadPolicyResponse = taiShanCrawlerRequestComponent.downloadPolicy(taiShanCrawlerDownLoadPolicyRequest, headers);
+                log.info("taiShanCrawlerDownLoadPolicyResponse对象的值:{}", JSON.toJSONString(taiShanCrawlerDownLoadPolicyResponse));
+                downloadPolicyResultVo.setSyUrl(taiShanCrawlerDownLoadPolicyResponse.getResult());
+            }
+            return downloadPolicyResultVo;
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException(e);
+        }
     }