Przeglądaj źródła

中煤报价相关

shenweidong 1 rok temu
rodzic
commit
43304d6064

+ 20 - 1
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/entity/request/InsurancePolicyPrintRequest.java

@@ -10,7 +10,7 @@ import lombok.NoArgsConstructor;
 import java.io.Serial;
 
 /**
- * @description: 电子保单下载
+ * @description: 中煤财险 电子保单下载 请求
  * @author: shenwd
  * @date:2025/2/24 17:08
  **/
@@ -21,18 +21,37 @@ public class InsurancePolicyPrintRequest extends BaseRequest {
 
     @Serial
     private static final long serialVersionUID = -5981502952732639737L;
+    /**
+     * 保单号
+     * 车险保单送车险保单号,非车险保单送非车险保单号
+     */
     @JsonProperty("policyNo")
     private String policyNo;
 
+    /**
+     * 险种代码
+     * 0330:交强  0361:燃油商业  0365:新能源商业
+     * 非车险不传
+     */
     @JsonProperty("riskCode")
     private String riskCode;
 
+    /**
+     * 业务类型
+     * 车险保单下载传P
+     * 非车险保单下载传EP
+     */
     @JsonProperty("businessType")
     private String businessType = "P";
 
     @JsonProperty("endorSeqNo")
     private String endorSeqNo = "000";
 
+    /**
+     * 单证类型
+     * DZ_AJ : 标志
+     * DZ_AE : 保单
+     */
     @JsonProperty("documentType")
     private String documentType;
 

+ 7 - 1
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/entity/response/InsurancePolicyPrintResponse.java

@@ -9,7 +9,7 @@ import java.io.Serial;
 import java.util.List;
 
 /**
- * @description: todo
+ * @description: 中煤财险 下载保单 返回数据
  * @author: shenwd
  * @date:2025/2/24 17:06
  **/
@@ -20,9 +20,15 @@ public class InsurancePolicyPrintResponse extends BaseResponse {
 
     @Serial
     private static final long serialVersionUID = 4370219849517321256L;
+    /**
+     * 电子保单下载链接
+     */
     @JsonProperty("downloadUrl")
     private List<String> downloadUrl;
 
+    /**
+     * 电子保单下载返回状态码
+     */
     @JsonProperty("statusCode")
     private String statusCode;
 

+ 3 - 2
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/repository/ZmApiOrderRepository.java

@@ -11,8 +11,9 @@ import org.springframework.data.mongodb.repository.Query;
  **/
 public interface ZmApiOrderRepository extends MongoRepository<ZmApiOrder, String> {
 
-    ZmApiOrder getByOrdersNo(String ordersNo);
+    @Query("{'ordersNo' : ?0}")
+    ZmApiOrder findByOrdersNo(String ordersNo);
 
-    @Query(value = "{'fieldname': ?0 }", delete = true)
+    @Query(value = "{'ordersNo': ?0 }", delete = true)
     void deleteByOrdersNo(String ordersNo);
 }

+ 19 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/service/ZhongmeiApiOrderService.java

@@ -0,0 +1,19 @@
+package com.jzg.quote.zhongmei.api.service;
+
+import com.jzg.quote.zhongmei.api.entity.po.ZmApiOrder;
+
+/**
+ * @description: 中煤财险 mongodb中操作数据
+ * @author: shenwd
+ * @date: 2025/3/6 11:16
+ **/
+public interface ZhongmeiApiOrderService {
+
+    ZmApiOrder findByOrdersNo(String ordersNo);
+
+    void deleteByOrdersNo(String ordersNo);
+
+    ZmApiOrder save(ZmApiOrder zmApiOrder);
+
+    ZmApiOrder update(ZmApiOrder zmApiOrder);
+}

+ 18 - 15
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/service/impl/ZhongMeiApiRequestImpl.java

@@ -8,7 +8,6 @@ import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.UnderwritingVo;
 import com.jzg.quotation.commons.entity.vo.base.OrderBase;
-import com.jzg.quotation.commons.entity.vo.base.OrderBase;
 import com.jzg.quotation.commons.entity.vo.quote.AccidentalDrivingVo;
 import com.jzg.quotation.commons.entity.vo.quote.AttributionInformationVo;
 import com.jzg.quotation.commons.entity.vo.quote.CarInfoVo;
@@ -22,15 +21,12 @@ import com.jzg.quote.zhongmei.api.entity.ZmApiConfigureParameters;
 import com.jzg.quote.zhongmei.api.entity.po.ZmApiOrder;
 import com.jzg.quote.zhongmei.api.entity.request.*;
 import com.jzg.quote.zhongmei.api.entity.response.*;
-import com.jzg.quote.zhongmei.api.repository.ZmApiOrderRepository;
 import com.jzg.quote.zhongmei.api.service.ZhongMeiApiRequest;
+import com.jzg.quote.zhongmei.api.service.ZhongmeiApiOrderService;
 import lombok.RequiredArgsConstructor;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.MediaType;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
 import java.util.List;
 
 @Service(value = InsuranceCode.INSURANCE_ZMBX)
@@ -39,7 +35,8 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
 
     private final ZmApiRequestComponent zmApiRequestComponent;
 
-    private final ZmApiOrderRepository zmApiOrderRepository;
+    private final ZhongmeiApiOrderService zhongmeiApiOrderService;
+
     @Override
     public QuoteResultsVo quote(QuoteVo quoteVo) {
         OrderBase order = quoteVo.getOrder();
@@ -67,7 +64,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
         zmApiOrder.setOrdersNo(order.getOrdersNo());
         zmApiOrder.setBussinessNo(quotedPriceResponse.getBusinessNo());
         zmApiOrder.setPolicyHolderInfo(quoteVo.getPolicyHolderInfo());
-        zmApiOrderRepository.save(zmApiOrder);
+        zhongmeiApiOrderService.save(zmApiOrder);
         return ZmApiQuoteResultsVoBuild.buildQuoteResultsVo(order.getOrdersNo(), quoteVo, quotedPriceResponse);
     }
 
@@ -78,7 +75,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
         //获取配置信息
         ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
 
-        ZmApiOrder zmApiOrder = zmApiOrderRepository.getByOrdersNo(orderBase.getOrdersNo());
+        ZmApiOrder zmApiOrder = zhongmeiApiOrderService.findByOrdersNo(orderBase.getOrdersNo());
         BaseRequestHead baseRequestHead = new BaseRequestHead(parameters);
         SubmitRequest submitRequest = new SubmitRequest();
         submitRequest.setHead(baseRequestHead);
@@ -95,15 +92,14 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
                 parameters.getDistrict(), policyHolderInfo.getAddr());
         SubmitResponse submitResponse = zmApiRequestComponent.submit(submitRequest, SubmitResponse.class);
         if (submitResponse != null && !StringUtils.isEmpty(submitResponse.getPayUrl())) {
-            zmApiOrderRepository.deleteByOrdersNo(zmApiOrder.getOrdersNo());
             zmApiOrder.setPayUrl(submitResponse.getPayUrl());
-            zmApiOrderRepository.save(zmApiOrder);
+            zhongmeiApiOrderService.update(zmApiOrder);
         }
     }
 
     @Override
     public String getPaymentLink(OrderBase orderBase) {
-        ZmApiOrder zmApiOrder = zmApiOrderRepository.getByOrdersNo(orderBase.getOrdersNo());
+        ZmApiOrder zmApiOrder = zhongmeiApiOrderService.findByOrdersNo(orderBase.getOrdersNo());
         String payUrl = zmApiOrder.getPayUrl();
         //如果mongodb中没有支付链接,说明是人工审核,需要调用核保状态查询接口
         if (StringUtils.isEmpty(payUrl)) {
@@ -128,7 +124,7 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
         ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, attributionInformationVo.getConfigInfo());
 
         // 获取主投保单号
-        ZmApiOrder zmApiOrder = zmApiOrderRepository.getByOrdersNo(orderBase.getOrdersNo());
+        ZmApiOrder zmApiOrder = zhongmeiApiOrderService.findByOrdersNo(orderBase.getOrdersNo());
         String bussinessNo = zmApiOrder.getBussinessNo();
 
         // 上传影像
@@ -148,12 +144,19 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
 
         //先调用缴费查询接口获取保单号
         OrderStatusRequest orderStatusRequest = new OrderStatusRequest();
-        orderStatusRequest.setHead(new BaseRequestHead(parameters));
-        ZmApiOrder zmApiOrder = zmApiOrderRepository.getByOrdersNo(orderBase.getOrdersNo());
+        BaseRequestHead baseRequestHead = new BaseRequestHead(parameters);
+        orderStatusRequest.setHead(baseRequestHead);
+        ZmApiOrder zmApiOrder = zhongmeiApiOrderService.findByOrdersNo(orderBase.getOrdersNo());
         orderStatusRequest.setBusinessNo(zmApiOrder.getBussinessNo());
         OrderStatusResponse orderStatusResponse = zmApiRequestComponent.orderStatus(orderStatusRequest, OrderStatusResponse.class);
 
-        //调用下载保单接口
+        //获取保单号,然后调用下载保单接口
+        InsurancePolicyPrintRequest insurancePolicyPrintRequest = new InsurancePolicyPrintRequest();
+        insurancePolicyPrintRequest.setHead(baseRequestHead);
+        // 需设置参数 保单号,险种编码,业务类型,单证类型
+
+        InsurancePolicyPrintResponse printResponse = zmApiRequestComponent.insurancePolicyPrint(insurancePolicyPrintRequest, InsurancePolicyPrintResponse.class);
+
 
     }
 

+ 55 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/service/impl/ZhongmeiApiOrderServiceImpl.java

@@ -0,0 +1,55 @@
+package com.jzg.quote.zhongmei.api.service.impl;
+
+import com.jzg.quote.zhongmei.api.entity.po.ZmApiOrder;
+import com.jzg.quote.zhongmei.api.repository.ZmApiOrderRepository;
+import com.jzg.quote.zhongmei.api.service.ZhongmeiApiOrderService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @description: 中煤财险 mongodb 操作数据
+ * @author: shenwd
+ * @date: 2025/3/6 11:18
+ **/
+@Service
+@RequiredArgsConstructor
+@Transactional
+public class ZhongmeiApiOrderServiceImpl implements ZhongmeiApiOrderService {
+
+    private final ZmApiOrderRepository zmApiOrderRepository;
+    /**
+     * @param ordersNo
+     * @return
+     */
+    @Override
+    public ZmApiOrder findByOrdersNo(String ordersNo) {
+        return zmApiOrderRepository.findByOrdersNo(ordersNo);
+    }
+
+    /**
+     * @param ordersNo
+     */
+    @Override
+    public void deleteByOrdersNo(String ordersNo) {
+        zmApiOrderRepository.deleteByOrdersNo(ordersNo);
+    }
+
+    /**
+     * @param zmApiOrder
+     */
+    @Override
+    public ZmApiOrder save(ZmApiOrder zmApiOrder) {
+        return zmApiOrderRepository.save(zmApiOrder);
+    }
+
+    /**
+     * @param zmApiOrder
+     * @return
+     */
+    @Override
+    public ZmApiOrder update(ZmApiOrder zmApiOrder) {
+        zmApiOrderRepository.deleteByOrdersNo(zmApiOrder.getOrdersNo());
+        return zmApiOrderRepository.save(zmApiOrder);
+    }
+}