فهرست منبع

渤海财险 修改非车险
平安财险 加实体

wks 2 سال پیش
والد
کامیت
9e6066e8b5

+ 1 - 0
src/main/java/com/ydtech/modules/ins/model/guoren/InsuranceSlipReq.java

@@ -26,6 +26,7 @@ public class InsuranceSlipReq {
     @JSONField(name = "prpTinsured")
 
     private PrpTinsuredDTO prpTinsured;
+
     @JsonProperty(value = "biPrptenages")
     @JSONField(name = "biPrptenages")
     private List<?> biPrptenages;

+ 3 - 0
src/main/java/com/ydtech/modules/order/entity/InsAreaCompany.java

@@ -367,6 +367,9 @@ public class InsAreaCompany implements Serializable {
         this.lossRation = quoteRespVo.getLossRation();
         this.jqLossRation = quoteRespVo.getJqLossRation();
         this.syLossRation = quoteRespVo.getSyLossRation();
+
+        this.jqapplyno = quoteRespVo.getJqApplyNo();
+        this.syapplyno = quoteRespVo.getSyApplyNo();
     }
 
     public void setPaymentLink(String paymentLink) {

+ 52 - 0
src/main/java/com/ydtech/modules/order/entity/api/bohai/response/UnderwritingResponse.java

@@ -3,12 +3,16 @@ package com.ydtech.modules.order.entity.api.bohai.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ydtech.modules.order.entity.api.bohai.constants.ResultCode;
+import com.ydtech.modules.order.entity.dto.DrivingInsuranceDto;
+import com.ydtech.utils.ObjectUtil;
 import com.ydtech.utils.StringUtils;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
+import org.springframework.util.ObjectUtils;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.List;
 
 
@@ -48,12 +52,26 @@ public class UnderwritingResponse extends BoHaiBaseResponse {
         @JsonProperty("total")
         private String total;
 
+        @JsonProperty("propertyPolicies")
+        private List<UnAutoPolicyDTO>  propertyPolicies;
+
+        @JsonProperty("casualtyPolicies")
+        private List<UnAutoPolicyDTO> casualtyPolicies;
+
         @JsonProperty("businessPolicy")
         private BusinessPolicyDTO businessPolicy;
 
         @JsonProperty("trafficPolicy")
         private TrafficPolicyDTO trafficPolicy;
 
+        public List<UnAutoPolicyDTO> getPropertyPolicies() {
+            return ObjectUtils.isEmpty(propertyPolicies)  ? new ArrayList<>() : propertyPolicies;
+        }
+
+        public List<UnAutoPolicyDTO> getCasualtyPolicies() {
+            return ObjectUtils.isEmpty(casualtyPolicies)  ? new ArrayList<>() : casualtyPolicies;
+        }
+
         public int verificationUnderwriting() {
             int traffic = 1;
             int business = 1;
@@ -134,5 +152,39 @@ public class UnderwritingResponse extends BoHaiBaseResponse {
                 private String specialTermText;
             }
         }
+
+        @NoArgsConstructor
+        @Data
+        public static class UnAutoPolicyDTO implements Serializable{
+
+            private static final long serialVersionUID = 6048226723767902266L;
+
+            /**
+             * 产品编码
+             */
+            @JsonProperty("productCode")
+            private String productCode;
+
+            /**
+             * 套餐编码
+             */
+            @JsonProperty("packageCode")
+            private String packageCode;
+
+            /**
+             * 投保单号
+             */
+            @JsonProperty("applicationNo")
+            private String applicationNo;
+
+            public DrivingInsuranceDto toDrivingInsuranceDto(){
+                DrivingInsuranceDto drivingInsuranceDto = new DrivingInsuranceDto();
+                drivingInsuranceDto.setCode(this.getProductCode());
+                drivingInsuranceDto.setName(this.getPackageCode());
+                drivingInsuranceDto.setApplicationNumber(this.getApplicationNo());
+                return drivingInsuranceDto;
+            }
+
+        }
     }
 }

+ 1 - 0
src/main/java/com/ydtech/modules/order/entity/api/huatai/HuaTaiBaseResponse.java

@@ -14,6 +14,7 @@ public abstract class HuaTaiBaseResponse implements Serializable {
 
 
     private static final long serialVersionUID = -990496711871560039L;
+
     @JsonProperty(value = "head")
     private HuaTaiBaseResponseHead head;
 

+ 45 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/IndexRequest.java

@@ -0,0 +1,45 @@
+package com.ydtech.modules.order.entity.api.pingan.request;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class IndexRequest extends PingAnBaseRequest {
+
+    private static final long serialVersionUID = -2587880061389730743L;
+
+    private String cityCode;
+
+    private String inputBy;
+
+    private String saleCode;
+
+    private VehicleDTO vehicle;
+
+    private boolean isAllowRepeat;
+
+    @Data
+    public static class VehicleDTO implements Serializable {
+
+        private static final long serialVersionUID = 408333879699278346L;
+
+        private String licenseNo;
+
+        private String frameNo;
+
+    }
+
+    @Data
+    public static class BizQuoteDTO implements Serializable {
+
+        private static final long serialVersionUID = -4583474052247976539L;
+
+        private String loanVehicleFlag;
+
+    }
+
+}

+ 22 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/PingAnBaseRequest.java

@@ -0,0 +1,22 @@
+package com.ydtech.modules.order.entity.api.pingan.request;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class PingAnBaseRequest implements Serializable {
+
+    private static final long serialVersionUID = 8554995712964526165L;
+
+    /**
+     * 合作伙伴操作用户ID,用来记录合作伙伴操作人身份
+     */
+    private String userId;
+    /**
+     * 流程ID
+     */
+    private String flowid;
+
+
+}

+ 24 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/SearchPAVehicleListRequest.java

@@ -0,0 +1,24 @@
+package com.ydtech.modules.order.entity.api.pingan.request;
+
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+ * @description: 平安车型搜索接口 请求参数
+ * @author: wenks
+ * @date: 2024/3/20 10:14
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class SearchPAVehicleListRequest extends PingAnBaseRequest {
+
+    private static final long serialVersionUID = 6733489357016348708L;
+
+    /**
+     * 车型关键字
+     */
+    private String keyword;
+
+}

+ 16 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/response/PingAnBaseResponse.java

@@ -0,0 +1,16 @@
+package com.ydtech.modules.order.entity.api.pingan.response;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class PingAnBaseResponse implements Serializable {
+
+    private static final long serialVersionUID = -4960017696151958700L;
+
+    private String resultMessage;
+
+    private String resultCode;
+
+}

+ 111 - 0
src/main/java/com/ydtech/modules/order/entity/api/pingan/response/SearchPAVehicleListResponse.java

@@ -0,0 +1,111 @@
+package com.ydtech.modules.order.entity.api.pingan.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+
+
+/**
+ * @version
+ * @description: 平安车型搜索接口 响应参数
+ * @author: wenks
+ * @date: 2024/3/20 10:14
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class SearchPAVehicleListResponse extends PingAnBaseResponse {
+
+    private static final long serialVersionUID = 3896621571201019470L;
+
+    private List<ModelsDto> models;
+
+    @AllArgsConstructor
+    @NoArgsConstructor
+    @Data
+    public static class ModelsDto {
+
+        /**
+         * 车型编码索引
+         */
+        private String modelIndex;
+
+        /**
+         * 车型编码-非精友编码(可以通过车型编码,
+         * 脱离流程。暂定仅3个月有效,无法通过pa
+         * ModelCode反推精友编码)modelIndex
+         * 与paModelCode都会返回,可以选择一种
+         * 进行投保
+         */
+        private String paModelCode;
+
+        /**
+         * 品牌名
+         */
+        private String brandName;
+
+        /**
+         * 车型名称
+         */
+        private String modelName;
+
+        /**
+         * 车型详情
+         */
+        private String description;
+
+        /**
+         * 新车购置价
+         */
+        private String price;
+
+        /**
+         * 座位数
+         */
+        private String seats;
+
+        /**
+         * 上市时间
+         */
+        private String marketDate;
+
+        /**
+         * 排气量(升)
+         */
+        private String exhaustMeasure;
+
+        /**
+         * 整备质量(kg)
+         */
+        private String fullWeight;
+
+        /**
+         * 燃料类型(精友)
+         * D1:汽油
+         * D2:柴油
+         * D3:天然气
+         * D4:液化石油气
+         * D5:混合动力
+         * D6:电动
+         * D7:两用燃料
+         * D8:燃料电池
+         * D9:甲醇
+         * D11 :其他
+         * D12 :插电式混合动力
+         * D13 :混合油
+         * D14 :太阳能
+         * D15 :无
+         */
+        private String powerTypeCode;
+
+        /**
+         * 车辆种类
+         */
+        private String vehicleType;
+
+    }
+
+}

+ 26 - 12
src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.order.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
@@ -139,7 +140,9 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         QuotationRequest quotationRequest = new QuotationRequest(parameters, quoteInfoVo.getRiskList(), quoteInfoVo.getKindList(),
                 currentValue, orderNo, carInfo, quoteVo.getAccidentalDrivingVo());
         QuotationResponse response = boHaiRequestApiComponent.quotation(quotationRequest, parameters.getSysSourceCode());
-        return getQuoteRespVo(response, quoteInfoVo, vehicleModelsDTO, ptlAgreementAttribution, orderNo);
+        List<BoHaiQuoteAccidentVo> accidentalDrivingVo = quoteVo.getAccidentalDrivingVo();
+
+        return getQuoteRespVo(response, quoteInfoVo, vehicleModelsDTO, ptlAgreementAttribution, orderNo, accidentalDrivingVo);
     }
 
     @Override
@@ -180,18 +183,28 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         UnderwritingRequest underwritingRequest = new UnderwritingRequest(parameters, insAreaCompany.getId());
         UnderwritingResponse underwritingResponse = boHaiRequestApiComponent.underwriting(underwritingRequest,
                 parameters.getSysSourceCode());
-        int i = underwritingResponse.getData().verificationUnderwriting();
+        UnderwritingResponse.DataDTO data = underwritingResponse.getData();
+        int i = data.verificationUnderwriting();
         // 交强
-        UnderwritingResponse.DataDTO.TrafficPolicyDTO trafficPolicy = underwritingResponse.getData().getTrafficPolicy();
+        UnderwritingResponse.DataDTO.TrafficPolicyDTO trafficPolicy = data.getTrafficPolicy();
         if (!ObjectUtils.isEmpty(trafficPolicy)) {
             insAreaCompany.setJqapplyno(trafficPolicy.getApplicationNo());
         }
         // 商业
-        UnderwritingResponse.DataDTO.BusinessPolicyDTO businessPolicy = underwritingResponse.getData().getBusinessPolicy();
+        UnderwritingResponse.DataDTO.BusinessPolicyDTO businessPolicy = data.getBusinessPolicy();
         if (!ObjectUtils.isEmpty(businessPolicy)) {
             insAreaCompany.setSyapplyno(businessPolicy.getApplicationNo());
         }
 
+        // 将驾意险保存起来
+        List<UnderwritingResponse.DataDTO.UnAutoPolicyDTO> policyDTOS = new ArrayList<>();
+        List<UnderwritingResponse.DataDTO.UnAutoPolicyDTO> casualtyPolicies = data.getCasualtyPolicies();
+        policyDTOS.addAll(casualtyPolicies);
+        List<UnderwritingResponse.DataDTO.UnAutoPolicyDTO> propertyPolicies = data.getPropertyPolicies();
+        policyDTOS.addAll(propertyPolicies);
+        JSONArray objects = JSON.parseArray(JSON.toJSONString(policyDTOS));
+        insAreaCompany.setCrossInsurance(objects);
+
         if (i == 1) {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
             // 支付请求
@@ -206,9 +219,8 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         } else {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.TO_BACK.getCode());
         }
-
-        String trafficResultMsg = underwritingResponse.getData().getTrafficResultMsg();
-        String businessResultMsg = underwritingResponse.getData().getBusinessResultMsg();
+        String trafficResultMsg = data.getTrafficResultMsg();
+        String businessResultMsg = data.getBusinessResultMsg();
         insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
         return HttpResult.error(trafficResultMsg + "/n" + businessResultMsg);
     }
@@ -379,8 +391,8 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
                                                   BaseQuoteInfoVo yaQuoteInfoVo,
                                                   VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleModelsDTO,
                                                   PtlAgreementAttribution ptlAgreementAttribution,
-                                                  String orderNo
-    ) {
+                                                  String orderNo,
+                                                  List<BoHaiQuoteAccidentVo> accidentalDrivingVo) {
 
         double sumPayTax = 0;
         double jqPremium = 0;
@@ -397,7 +409,6 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         // 交强
         quoteRespVo.setStartDateJq(trafficPolicy.getStartDate());
         quoteRespVo.setEndDateJq(trafficPolicy.getEndDate());
-        quoteRespVo.setJqApplyNo(trafficPolicy.getApplicationNo());
         // 商业险
         QuotationResponse.DataDTO.BusinessPolicyDTO businessPolicy = response.getData().getBusinessPolicy();
         List<QuoteKindRespVo> kindList1 = new ArrayList<>();
@@ -455,13 +466,14 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         quoteRespVo.setTotalAdjustRate(0);
         quoteRespVo.setOrderno(yaQuoteInfoVo.getOrderNo()); //订单号
         quoteRespVo.setCoreModels(vehicleModelsDTO.toCoreModelsVo());
-        return responseOrder(response, quoteRespVo, ptlAgreementAttribution, orderNo);
+        return responseOrder(response, quoteRespVo, ptlAgreementAttribution, orderNo, accidentalDrivingVo);
     }
 
     public HttpResult<QuoteRespVo> responseOrder(QuotationResponse response,
                                                  QuoteRespVo quoteRespVo,
                                                  PtlAgreementAttribution ptlAgreementAttribution,
-                                                 String orderId) {
+                                                 String orderId,
+                                                 List<BoHaiQuoteAccidentVo> accidentalDrivingVo) {
         // 保存订单信息
         InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
 
@@ -471,6 +483,8 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         insAreaCompany.setReptxt(JSON.parseObject(JSON.toJSONString(response)));
         insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
         insAreaCompany.setInsOrderNo(busUniqueId);
+        // 驾意险
+        insAreaCompany.setAccidentInfo(JSON.parseArray(JSON.toJSONString(accidentalDrivingVo)));
         // 车船税
         QuotationResponse.DataDTO.TrafficPolicyDTO.VehicleTaxDTO vehicleTax = response.getData().getTrafficPolicy().getVehicleTax();
         TaxArrears taxArrears = new TaxArrears("往年欠税", Double.parseDouble(vehicleTax.getOverdueTaxAmount()),