Procházet zdrojové kódy

修改报价返回核心报价车型

wks před 2 roky
rodič
revize
cbff1f5cd1
20 změnil soubory, kde provedl 485 přidání a 222 odebrání
  1. 14 0
      src/main/java/com/ydtech/modules/ins/model/guoren/VinQueryResp.java
  2. 22 2
      src/main/java/com/ydtech/modules/ins/model/vo/CarInfoVo.java
  3. 4 0
      src/main/java/com/ydtech/modules/ins/model/vo/QuoteRespVo.java
  4. 15 0
      src/main/java/com/ydtech/modules/ins/model/yc/modelsQuery/ModelsQueryResponse.java
  5. 1 15
      src/main/java/com/ydtech/modules/ins/model/yc/ruote/Vhl.java
  6. 13 8
      src/main/java/com/ydtech/modules/order/entity/api/dajia/request/ODR1008Request.java
  7. 51 0
      src/main/java/com/ydtech/modules/order/entity/api/dajia/response/ODR2009Response.java
  8. 3 4
      src/main/java/com/ydtech/modules/order/entity/api/huatai/request/HuaTaiQuotedPriceRequest.java
  9. 12 0
      src/main/java/com/ydtech/modules/order/entity/api/huatai/response/HuaTaiModelsQueryResponse.java
  10. 14 0
      src/main/java/com/ydtech/modules/order/entity/api/zhongmei/response/ModelsQueryResponse.java
  11. 13 0
      src/main/java/com/ydtech/modules/order/entity/api/zijin/response/ModelQueryResponse.java
  12. 71 0
      src/main/java/com/ydtech/modules/order/entity/crawler/response/CrawlerQuoteResponse.java
  13. 37 0
      src/main/java/com/ydtech/modules/order/entity/vo/CoreModelsVo.java
  14. 106 83
      src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java
  15. 3 1
      src/main/java/com/ydtech/modules/order/service/impl/GuorenOrderApiServiceImpl.java
  16. 51 83
      src/main/java/com/ydtech/modules/order/service/impl/HuaTaiOrderApiServiceImpl.java
  17. 5 0
      src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java
  18. 20 13
      src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java
  19. 27 13
      src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java
  20. 3 0
      src/main/java/com/ydtech/modules/order/service/impl/ZijinOrderApiServiceImpl.java

+ 14 - 0
src/main/java/com/ydtech/modules/ins/model/guoren/VinQueryResp.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.ins.model.guoren;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.vo.CoreModelsVo;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -220,5 +221,18 @@ public class VinQueryResp {
             @JSONField(name = "message")
             private String message;
         }
+
+        public CoreModelsVo toCoreModelsVo(){
+            CoreModelsVo coreModelsVo = new CoreModelsVo();
+            coreModelsVo.setModelCode(this.modelCodeBC);
+            coreModelsVo.setModelName(this.brandNameBC);
+            coreModelsVo.setPower(this.power);
+            coreModelsVo.setCarYear(this.carYear);
+            coreModelsVo.setEnginedesc(this.exHaustScale);
+            coreModelsVo.setPurchasePrice(this.priceShow);
+            coreModelsVo.setSeatCount(this.seatMax);
+            return coreModelsVo;
+        }
+
     }
 }

+ 22 - 2
src/main/java/com/ydtech/modules/ins/model/vo/CarInfoVo.java

@@ -17,42 +17,61 @@ public class CarInfoVo {
 
     @ApiModelProperty(value = "品牌型号")
     private String brandName;
+
     @ApiModelProperty(value = "车型品牌")
     private String carBrand;
+
     @ApiModelProperty(value = "行业车型名称")
     private String ciCarName;
+
     @ApiModelProperty(value = "行业车型编码")
     private String ciModelCode;
+
     @ApiModelProperty(value = "整备质量")
     private String completeKerbMass;
+
     @ApiModelProperty(value = "发动机号")
     private String engineNo;
+
     @ApiModelProperty(value = "排量")
     private String exhaustScale;
+
     @ApiModelProperty(value = "工厂名称")
     private String factory;
+
     @ApiModelProperty(value = "工厂编码")
     private String factoryid;
+
     @ApiModelProperty(value = "车架号")
     private String frameNo;
+
     @ApiModelProperty(value = "车牌")
     private String licenseNo;
+
     @ApiModelProperty(value = "车牌种类")
     private String licenseTypeCode;
+
     @ApiModelProperty(value = "精友车型编码")
     private String modelCode;
+
     @ApiModelProperty(value = "新车购置价")
     private String purchasePrice;
+
     @ApiModelProperty(value = "座位数")
     private String seatCount;
+
     @ApiModelProperty(value = "车辆类型(轿车类,特种车类)")
     private String vehicleclass;
+
     @ApiModelProperty(value = "车架号")
     private String vinNo;
+
     @ApiModelProperty(value = "车型")
     private String familyName;
+
     @ApiModelProperty(value = "车型名称")
     private String modelcname;
+
     @ApiModelProperty(value = "能源类型编码(D1天然气(NG/CNG/LNG)  D3汽油  D2柴油)")
     private String powertypecode;
     /**
@@ -85,8 +104,6 @@ public class CarInfoVo {
 
     @ApiModelProperty(value = "排量(和exhaustScale区分开)")
     private String enginedesc;
-    private String displacement;
-    private String tonCount;
 
     @ApiModelProperty(value = "行驶证注册日期")
     @CheckDateTime(format = "yyyy-MM-dd", message = "行驶证注册日期的正确格式为yyyy-MM-dd")
@@ -115,10 +132,13 @@ public class CarInfoVo {
 
     @ApiModelProperty(value = "过户日期")
     private String transferDate;
+
     @ApiModelProperty(value = "是否贷款车")
     private boolean loanStatus;
+
     @ApiModelProperty(value = "第一受益人(贷款车才有第一受益人)")
     private String firstBeneMan;
+
     @ApiModelProperty(value = "是否有车牌号(判断是否是新车)")
     private boolean noLicenseFlag;
 

+ 4 - 0
src/main/java/com/ydtech/modules/ins/model/vo/QuoteRespVo.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.ins.model.vo;
 
 
 import com.ydtech.modules.order.entity.TaxArrears;
+import com.ydtech.modules.order.entity.vo.CoreModelsVo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -118,6 +119,9 @@ public class QuoteRespVo {
     @ApiModelProperty("商业赔付率")
     private double syLossRation;
 
+    @ApiModelProperty("核心返回车型")
+    private CoreModelsVo coreModels;
+
     public List<AccidentResponseVo> getAccidentInfo() {
         return accident == null ? Collections.emptyList() : accident;
     }

+ 15 - 0
src/main/java/com/ydtech/modules/ins/model/yc/modelsQuery/ModelsQueryResponse.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
 import com.ydtech.modules.ins.model.ya.VehicleJingyou;
+import com.ydtech.modules.order.entity.vo.CoreModelsVo;
 import lombok.Data;
 
 import java.util.List;
@@ -274,6 +275,20 @@ public class ModelsQueryResponse {
         private String vehicleTonnage;
 
 
+
+        public CoreModelsVo toCoreModelsVo(){
+            CoreModelsVo coreModelsVo = new CoreModelsVo();
+            coreModelsVo.setModelCode(this.vehicleId);
+            coreModelsVo.setModelName(this.vehicleName);
+            coreModelsVo.setCarYear(this.vehicleYear);
+            coreModelsVo.setPower(this.vehiclePower);
+            coreModelsVo.setEnginedesc(this.vehicleDisplacement);
+            coreModelsVo.setPurchasePrice(this.vehiclePrice);
+            coreModelsVo.setSeatCount(this.vehicleSeat);
+            return coreModelsVo;
+        }
+
+
     }
 
 }

+ 1 - 15
src/main/java/com/ydtech/modules/ins/model/yc/ruote/Vhl.java

@@ -3,7 +3,7 @@ package com.ydtech.modules.ins.model.yc.ruote;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
-import com.ydtech.modules.ins.model.yc.modelsQuery.ModelsQueryResponse;
+import com.ydtech.modules.order.entity.vo.CoreModelsVo;
 import com.ydtech.utils.StringUtils;
 import lombok.Data;
 import org.apache.http.client.utils.DateUtils;
@@ -327,7 +327,6 @@ public class Vhl {
 //    @JacksonXmlProperty(localName = "CBrand")
 //    private String CBrand;
 
-
     /**
      * @description: 车辆信息
      */
@@ -422,18 +421,5 @@ public class Vhl {
         return vhl;
     }
 
-    public static void main(String[] args) {
-        Date d = DateUtils.parseDate("2020-12-24");
-        String a = "2020-12-24";
-
-        LocalDate lDate = LocalDate.parse(a);
-        LocalDate newlDate = LocalDate.now();
-
-
-        //年差
-        int years = newlDate.getYear() - lDate.getYear();
-        System.err.println("2222222:" + years);
-    }
-
 
 }

+ 13 - 8
src/main/java/com/ydtech/modules/order/entity/api/dajia/request/ODR1008Request.java

@@ -10,6 +10,7 @@ import com.ydtech.modules.order.entity.api.dajia.DaJiaConfigureParameters;
 import com.ydtech.modules.order.entity.api.dajia.constants.*;
 import com.ydtech.modules.order.entity.api.dajia.response.ODR2009Response;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.entity.vo.CoreModelsVo;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
@@ -420,7 +421,7 @@ public class ODR1008Request extends DaJiaBaseRequest {
 
     public ODR1008Request(String orderNo, String busiId, BaseQuoteInfoVo quoteInfoVo, DaJiaConfigureParameters daJiaConfigureParameters,
                           ODR2009Response odr2009Response, PersonAreaVo policyHolderPersonArea, PersonAreaVo insuredPersonArea,
-                          PersonAreaVo ownerPersonArea) {
+                          PersonAreaVo ownerPersonArea, CoreModelsVo coreModelsVo) {
         super(daJiaConfigureParameters.getChannelCode(), ServiceCode.ODR1008.getCode());
         if (Objects.isNull(body)) {
             this.body = new BodyDTO();
@@ -433,7 +434,7 @@ public class ODR1008Request extends DaJiaBaseRequest {
         //设置被保人信息
         setInsuredInfo(quoteInfoVo, insuredPersonArea);
         //设置车辆信息
-        setVehicleInfo(quoteInfoVo, odr2009Response);
+        setVehicleInfo(quoteInfoVo, odr2009Response, coreModelsVo);
         //设置业务归属信息
         setBusinessInfo(daJiaConfigureParameters, busiId);
     }
@@ -620,7 +621,7 @@ public class ODR1008Request extends DaJiaBaseRequest {
     }
 
     //设置车辆信息
-    public void setVehicleInfo(BaseQuoteInfoVo quoteInfoVo, ODR2009Response odr2009Response) {
+    public void setVehicleInfo(BaseQuoteInfoVo quoteInfoVo, ODR2009Response odr2009Response, CoreModelsVo coreModelsVo) {
         BodyDTO.VehicleInfoDTO vehicleInfoDTO = new BodyDTO.VehicleInfoDTO();
         //设置发动机号
         vehicleInfoDTO.setVehicleEngNo(quoteInfoVo.getCarInfo().getEngineNo());
@@ -719,6 +720,10 @@ public class ODR1008Request extends DaJiaBaseRequest {
         if (!consistentPrice) {
             resultDTO = odr2009Response.getResult().get(0);
         }
+
+        // 设置报价车型
+        coreModelsVo = resultDTO.toCoreModelsVo();
+
         //厂牌车型码
         vehicleInfoDTO.setVehicleModelCde(resultDTO.getVehicleId());
         //新车购置价
@@ -726,7 +731,8 @@ public class ODR1008Request extends DaJiaBaseRequest {
         //车型名称
         vehicleInfoDTO.setVehicleModelNme(resultDTO.getVehicleName());
         //排气量
-        if ((null == resultDTO.getVehicleExhaust() || "0".equals(resultDTO.getVehicleExhaust())) && (null == resultDTO.getCfuelType() || "0".equals(resultDTO.getCfuelType()))) {
+        if ((null == resultDTO.getVehicleExhaust() || "0".equals(resultDTO.getVehicleExhaust())) && (null == resultDTO.getCfuelType() ||
+                "0".equals(resultDTO.getCfuelType()))) {
             //如果排量为空,则获取前台的传值
             vehicleInfoDTO.setVehicleNDisplacement(quoteInfoVo.getCarInfo().getExhaustScale());
         } else {
@@ -735,12 +741,11 @@ public class ODR1008Request extends DaJiaBaseRequest {
 
 //        vehicleInfoDTO.setVehicleNDisplacement("1.0");
         //功率
-        if(resultDTO.getPower() == null){
-            if(quoteInfoVo.getCarInfo().getPowerScale() != null && !"".equals(quoteInfoVo.getCarInfo().getPowerScale()))
-            {
+        if (resultDTO.getPower() == null) {
+            if (quoteInfoVo.getCarInfo().getPowerScale() != null && !"".equals(quoteInfoVo.getCarInfo().getPowerScale())) {
                 vehicleInfoDTO.setVehicleNPower(Double.parseDouble(quoteInfoVo.getCarInfo().getPowerScale()));
             }
-        }else{
+        } else {
             vehicleInfoDTO.setVehicleNPower(Double.parseDouble(resultDTO.getPower()));
         }
         //座位数

+ 51 - 0
src/main/java/com/ydtech/modules/order/entity/api/dajia/response/ODR2009Response.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.order.entity.api.dajia.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ydtech.modules.order.entity.api.dajia.DaJiaBaseResponse;
+import com.ydtech.modules.order.entity.vo.CoreModelsVo;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
@@ -31,42 +32,72 @@ public class ODR2009Response extends DaJiaBaseResponse {
 
         private static final long serialVersionUID = -8892193629620452567L;
 
+        /**
+         * 厂牌车型代码
+         */
         @JsonProperty("vehicleId")
         private String vehicleId;
+
         @JsonProperty("brandId")
         private String brandId;
+        /**
+         * 车型名称
+         */
         @JsonProperty("vehicleName")
         private String vehicleName;
+
         @JsonProperty("vehicleAlias")
         private Object vehicleAlias;
+
         @JsonProperty("vehicleMaker")
         private String vehicleMaker;
+        /**
+         * 上市年份
+         */
         @JsonProperty("yearPattern")
         private String yearPattern;
+
         @JsonProperty("brandName")
         private String brandName;
+
         @JsonProperty("familyName")
         private String familyName;
+
         @JsonProperty("vehicleClass")
         private String vehicleClass;
+
         @JsonProperty("vehicleType")
         private String vehicleType;
+
         @JsonProperty("syxClassname")
         private String syxClassname;
+
         @JsonProperty("jqxClassname")
         private String jqxClassname;
+
         @JsonProperty("searchCode")
         private String searchCode;
+        /**
+         * 排量
+         */
         @JsonProperty("vehicleExhaust")
         private String vehicleExhaust;
+
         @JsonProperty("vehicleTonnage")
         private Object vehicleTonnage;
+
+        /**
+         * 核定载客
+         */
         @JsonProperty("vehicleSeat")
         private String vehicleSeat;
+
         @JsonProperty("vehiclePriceTax")
         private String vehiclePriceTax;
+
         @JsonProperty("antiTheft")
         private String antiTheft;
+
         @JsonProperty("airbag")
         private String airbag;
         @JsonProperty("absFlag")
@@ -79,10 +110,16 @@ public class ODR2009Response extends DaJiaBaseResponse {
         private String qualityMax;
         @JsonProperty("qualityMin")
         private String qualityMin;
+        /**
+         * 车辆价格
+         */
         @JsonProperty("vehiclePrice")
         private String vehiclePrice;
         @JsonProperty("factoryId")
         private String factoryId;
+        /**
+         * 功率(千瓦)
+         */
         @JsonProperty("power")
         private String power;
         @JsonProperty("vehicleTypeNew")
@@ -123,5 +160,19 @@ public class ODR2009Response extends DaJiaBaseResponse {
         private String chaulge;
         @JsonProperty("tcertificateDate")
         private String tcertificateDate;
+
+        public CoreModelsVo toCoreModelsVo() {
+            CoreModelsVo coreModelsVo = new CoreModelsVo();
+            coreModelsVo.setModelCode(this.vehicleId);
+            coreModelsVo.setModelName(this.vehicleName);
+            coreModelsVo.setCarYear(this.yearPattern);
+            coreModelsVo.setPower(this.power);
+            coreModelsVo.setEnginedesc(this.vehicleExhaust);
+            coreModelsVo.setPurchasePrice(this.vehiclePrice);
+            coreModelsVo.setSeatCount(this.vehicleSeat);
+            return coreModelsVo;
+        }
+
+
     }
 }

+ 3 - 4
src/main/java/com/ydtech/modules/order/entity/api/huatai/request/HuaTaiQuotedPriceRequest.java

@@ -291,9 +291,9 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
 
                 public PolicyCarDto(CarInfoVo carInfoVo, HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto fullCarDataDto) {
                     this.approvedPassengersCapacity = Integer.parseInt(carInfoVo.getSeatCount());
-                    if(fullCarDataDto.getDisplacement() != 0) {
-                        this.displacement = Double.parseDouble(carInfoVo.getDisplacement());
-                    }else{
+                    if (fullCarDataDto.getDisplacement() != 0) {
+                        this.displacement = fullCarDataDto.getDisplacement();
+                    } else {
                         this.displacement = Double.parseDouble(carInfoVo.getExhaustScale());
                     }
 //                    this.displacement = fullCarDataDto.getDisplacement();
@@ -308,7 +308,6 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
                         this.specialCarFlag = "1";
                         this.transferDate = carInfoVo.getTransferDate() + " " + TimeConstants.START_TIME;
                     } else {
-
                         this.specialCarFlag = "";
                     }
 

+ 12 - 0
src/main/java/com/ydtech/modules/order/entity/api/huatai/response/HuaTaiModelsQueryResponse.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ydtech.modules.order.entity.api.huatai.HuaTaiBaseResponse;
 import com.ydtech.modules.order.entity.api.zhongmei.BaseResponse;
 import com.ydtech.modules.order.entity.filter.CarModelsFilter;
+import com.ydtech.modules.order.entity.vo.CoreModelsVo;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
@@ -78,6 +79,17 @@ public class HuaTaiModelsQueryResponse extends HuaTaiBaseResponse {
             @JsonProperty("carYear")
             private String carYear;
 
+            public CoreModelsVo toCoreModelsVo(){
+                CoreModelsVo coreModelsVo = new CoreModelsVo();
+                coreModelsVo.setModelCode(this.modelCode);
+                coreModelsVo.setModelName(this.modelName);
+                coreModelsVo.setCarYear(this.carYear);
+                coreModelsVo.setEnginedesc(String.valueOf(this.displacement));
+                coreModelsVo.setPurchasePrice(this.purchasePrice);
+                coreModelsVo.setSeatCount(String.valueOf(this.approvedPassengersCapacity));
+                return coreModelsVo;
+            }
+
             @Override
             public String getCarYear() {
                 return carYear;

+ 14 - 0
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/response/ModelsQueryResponse.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ydtech.modules.ins.model.zm.ZmCarModel;
 import com.ydtech.modules.order.entity.api.zhongmei.BaseResponse;
 import com.ydtech.modules.order.entity.filter.CarModelsFilter;
+import com.ydtech.modules.order.entity.vo.CoreModelsVo;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
@@ -165,6 +166,19 @@ public class ModelsQueryResponse extends BaseResponse {
         @JsonProperty("modelName")
         private String modelName;
 
+        public CoreModelsVo toCoreModelsVo() {
+            CoreModelsVo coreModelsVo = new CoreModelsVo();
+            coreModelsVo.setModelCode(this.localModelCode);
+            coreModelsVo.setModelName(this.modelName);
+            coreModelsVo.setCarYear(this.lfDate);
+            coreModelsVo.setPower(String.valueOf(this.power));
+            coreModelsVo.setEnginedesc(String.valueOf(this.displacement));
+            coreModelsVo.setPurchasePrice(this.purchasePrice);
+            coreModelsVo.setSeatCount(String.valueOf(this.approvedPassengersCapacity));
+            return coreModelsVo;
+        }
+
+
         public SimpleStadarCarDTO(ZmCarModel zmCarInfoVO) {
             this.approvedLoad = Double.parseDouble(zmCarInfoVO.getApprovedLoad());
             this.approvedPassengersCapacity = Integer.parseInt(zmCarInfoVO.getApprovedPassengersCapacity());

+ 13 - 0
src/main/java/com/ydtech/modules/order/entity/api/zijin/response/ModelQueryResponse.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.order.entity.api.zijin.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ydtech.modules.order.entity.filter.CarModelsFilter;
+import com.ydtech.modules.order.entity.vo.CoreModelsVo;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
@@ -297,5 +298,17 @@ public class ModelQueryResponse extends BaseResponse implements Serializable {
         @JsonProperty("vinNo")
         private String vinNo;
 
+        public CoreModelsVo toCoreModelsVo() {
+            CoreModelsVo coreModelsVo = new CoreModelsVo();
+            coreModelsVo.setModelCode(this.modelCode);
+            coreModelsVo.setModelName(this.modelName);
+            coreModelsVo.setCarYear(this.carYear);
+            coreModelsVo.setPower(this.power);
+            coreModelsVo.setEnginedesc(this.exhaustCapacity);
+            coreModelsVo.setPurchasePrice(this.purchasePrice);
+            coreModelsVo.setSeatCount(this.seatCount);
+            return coreModelsVo;
+        }
+
     }
 }

+ 71 - 0
src/main/java/com/ydtech/modules/order/entity/crawler/response/CrawlerQuoteResponse.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.order.entity.crawler.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ydtech.modules.ins.model.vo.AccidentResponseVo;
+import com.ydtech.modules.order.entity.vo.CoreModelsVo;
 import lombok.*;
 import org.springframework.util.ObjectUtils;
 
@@ -94,6 +95,12 @@ public class CrawlerQuoteResponse extends CrawlerBaseResponse {
     @JsonProperty("sy_repeatinfo")
     private String syRepeatInfo;
 
+    /**
+     * 核心返回车型
+     */
+    @JsonProperty("carInfo")
+    private CrawlerCarInfoVo carInfo;
+
     public Double getCarInsureShipTax() {
         return carInsureShipTax == null ? 0 : carInsureShipTax;
     }
@@ -238,6 +245,70 @@ public class CrawlerQuoteResponse extends CrawlerBaseResponse {
 
     }
 
+
+    @NoArgsConstructor
+    @Data
+    public static class CrawlerCarInfoVo implements Serializable {
+
+        private static final long serialVersionUID = -1251708327646266830L;
+
+        /**
+         * 年款
+         */
+        @JsonProperty("caryear")
+        private String caryear;
+
+        /**
+         * 排量
+         */
+        @JsonProperty("exhaustscale")
+        private String exhaustScale;
+
+        /**
+         * 车型编码
+         */
+        @JsonProperty("modelCode")
+        private String modelCode;
+
+        /**
+         * 车型名称
+         */
+        @JsonProperty("modelcname")
+        private String modelName;
+
+        /**
+         * 功率
+         */
+        @JsonProperty("power")
+        private String power;
+
+        /**
+         * 新车购置价
+         */
+        @JsonProperty("purchasePrice")
+        private String purchasePrice;
+
+        /**
+         * 座位数
+         */
+        @JsonProperty("seatCount")
+        private String seatCount;
+
+        public CoreModelsVo toCoreModelsVo() {
+            CoreModelsVo coreModelsVo = new CoreModelsVo();
+            coreModelsVo.setModelCode(this.modelCode);
+            coreModelsVo.setModelName(this.modelName);
+            coreModelsVo.setPower(this.power);
+            coreModelsVo.setCarYear(this.caryear);
+            coreModelsVo.setEnginedesc(this.exhaustScale);
+            coreModelsVo.setPurchasePrice(this.purchasePrice);
+            coreModelsVo.setSeatCount(this.seatCount);
+            return coreModelsVo;
+        }
+
+    }
+
+
     @Getter
     @AllArgsConstructor
     public enum QuoteGreenWayEnum {

+ 37 - 0
src/main/java/com/ydtech/modules/order/entity/vo/CoreModelsVo.java

@@ -0,0 +1,37 @@
+package com.ydtech.modules.order.entity.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 保司核心返回车型
+ * @author: wenks
+ * @date: 2024/2/22 10:29
+ **/
+@Data
+@ApiModel("保司核心返回车型")
+public class CoreModelsVo {
+
+    @ApiModelProperty(value = "行业车型编码")
+    private String modelCode;
+
+    @ApiModelProperty(value = "行业车型编码")
+    private String modelName;
+
+    @ApiModelProperty(value = "座位数")
+    private String seatCount;
+
+    @ApiModelProperty(value = "年款")
+    private String carYear;
+
+    @ApiModelProperty(value = "功率")
+    private String power;
+
+    @ApiModelProperty(value = "排量")
+    private String enginedesc;
+
+    @ApiModelProperty(value = "新车购置价")
+    private String purchasePrice;
+
+}

+ 106 - 83
src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java

@@ -20,7 +20,6 @@ import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.TaxArrears;
 import com.ydtech.modules.order.entity.api.dajia.DaJiaConfigureParameters;
 import com.ydtech.modules.order.entity.api.dajia.constants.CCvrgNo;
-import com.ydtech.modules.order.entity.api.dajia.constants.CPayTaxType;
 import com.ydtech.modules.order.entity.api.dajia.constants.CProdNo;
 import com.ydtech.modules.order.entity.api.dajia.constants.Message;
 import com.ydtech.modules.order.entity.api.dajia.request.*;
@@ -28,6 +27,7 @@ import com.ydtech.modules.order.entity.api.dajia.response.*;
 import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
+import com.ydtech.modules.order.entity.vo.CoreModelsVo;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
 import com.ydtech.modules.order.entity.vo.dajia.AccidentalInsuranceQueryVo;
 import com.ydtech.modules.order.entity.vo.dajia.InsAccidentalDrivingDajia;
@@ -43,7 +43,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
-import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.Period;
 import java.time.format.DateTimeFormatter;
@@ -129,16 +128,17 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
      * @param orderNo
      * @param quoteInfoVo
      * @param daJiaConfigureParameters
+     * @param coreModelsVo
      * @return
      * @throws Exception
      */
     private ODR1008Response ConfirmationVehicleCustomerInformation(String orderNo, String busiId, BaseQuoteInfoVo quoteInfoVo,
                                                                    DaJiaConfigureParameters daJiaConfigureParameters,
                                                                    ODR2009Response odr2009Request, PersonAreaVo policyHolderPersonArea,
-                                                                   PersonAreaVo insuredPersonArea,PersonAreaVo ownerPersonArea) throws Exception {
+                                                                   PersonAreaVo insuredPersonArea, PersonAreaVo ownerPersonArea, CoreModelsVo coreModelsVo) throws Exception {
 
         ODR1008Request odr1008Request = new ODR1008Request(orderNo, busiId, quoteInfoVo, daJiaConfigureParameters, odr2009Request,
-                policyHolderPersonArea, insuredPersonArea,ownerPersonArea);
+                policyHolderPersonArea, insuredPersonArea, ownerPersonArea, coreModelsVo);
         ODR1008Response odr1008Response = daJiaRequestApiComponents.carOrCustomInfoConfirm(odr1008Request);
         if (odr1008Response.getStatus().equals(Message.M0000.getCode())) {
             //车辆与客户信息确认返回
@@ -150,6 +150,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
     /**
      * 报价
+     *
      * @param quoteInfoVo 报价实体
      * @param t
      * @return
@@ -189,8 +190,11 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             ODR2009Response odr2009Response = daJiaRequestApiComponents.queryVehicleTypes(odr2009Request);
 
             // 3.车辆与客户信息确认
+            CoreModelsVo coreModelsVo = new CoreModelsVo();
+
             ODR1008Response odr1008Response = ConfirmationVehicleCustomerInformation(orderNo, busiId, quoteInfoVo,
-                    daJiaConfigureParameters, odr2009Response, policyHolderPersonArea, insuredPersonArea,ownerPersonArea);
+                    daJiaConfigureParameters, odr2009Response, policyHolderPersonArea, insuredPersonArea, ownerPersonArea,
+                    coreModelsVo);
             if (!odr1008Response.getStatus().equals(Message.M0000.getCode())) {
                 return HttpResult.error("车辆与客户信息确认接口失败");
             }
@@ -248,11 +252,14 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
                 //保费计算接口返回
                 QuoteRespVo quoteRespVo = getQuoteRespVo(odr1009Response, quoteInfoVo, nvhlodr1001Response);
+
+                // 设置报价车型
+                quoteRespVo.setCoreModels(coreModelsVo);
                 HttpResult<QuoteRespVo> quoteRespVoHttpResult = responseOrder(odr1009Response, quoteRespVo, ptlAgreementAttribution,
                         orderNo, quoteInfoVo, busiId, nvhlodr1001Response);
                 return quoteRespVoHttpResult;
             } else {
-                if(Message.M0003.getCode().equals(odr1009Response.getStatus())){
+                if (Message.M0003.getCode().equals(odr1009Response.getStatus())) {
                     return HttpResult.error("报价失败,原因:" + odr1009Response.getMessage());
                 }
                 if ("0".equals(odr1009Response.getResult().getJqAppStatus()) && "0002".equals(odr1009Response.getStatus())) {
@@ -269,12 +276,13 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
     /**
      * 获取重复投保时间
+     *
      * @param startDateStr
      * @param endDateStr
      * @param newStDate
      * @return
      */
-    public List<String> getDuplicateDate(String startDateStr,String  endDateStr,String newStDate){
+    public List<String> getDuplicateDate(String startDateStr, String endDateStr, String newStDate) {
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         //处理23:59:59
         if (endDateStr.endsWith("23:59:59")) {
@@ -300,6 +308,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
     /**
      * 报价 处理重复投保
+     *
      * @param orderNo
      * @param kindInfoVos
      * @param riskInfoVos
@@ -312,29 +321,33 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
      * @return
      * @throws Exception
      */
-    public ODR1009Response quotation(String orderNo, List<KindInfoVo> kindInfoVos, List<RiskInfoVo> riskInfoVos, BaseQuoteInfoVo quoteInfoVo,
+    public ODR1009Response quotation(String orderNo, List<KindInfoVo> kindInfoVos, List<RiskInfoVo> riskInfoVos,
+                                     BaseQuoteInfoVo quoteInfoVo,
                                      ODR1016Response odr1016Response, InsAccidentalDrivingDajia insAccidentalDrivingDajia,
-                                     List<InsAccidentalDrivingSubDajia> insAccidentalDrivingSubDajias,DaJiaConfigureParameters daJiaConfigureParameters,
+                                     List<InsAccidentalDrivingSubDajia> insAccidentalDrivingSubDajias,
+                                     DaJiaConfigureParameters daJiaConfigureParameters,
                                      boolean isEnergy) throws Exception {
 
         ODR1009Request odr1009Request = new ODR1009Request(orderNo, kindInfoVos, riskInfoVos, quoteInfoVo, odr1016Response,
                 insAccidentalDrivingDajia, insAccidentalDrivingSubDajias, daJiaConfigureParameters, isEnergy);
         ODR1009Response odr1009Response = daJiaRequestApiComponents.newPremiumXnyCalculation(odr1009Request);
-        if(odr1009Response.getStatus().equals(Message.M0002.getCode())) {
+        if (odr1009Response.getStatus().equals(Message.M0002.getCode())) {
             //获取重复投保信息
-            String jqAppStatusMessage = odr1009Response.getResult().getJqAppStatusMessage() == null ? "" : odr1009Response.getResult().getJqAppStatusMessage().toString();
-            String syAppStatusMessage = odr1009Response.getResult().getReInsuredInfo() == null ? "" : odr1009Response.getResult().getReInsuredInfo();
-            if(jqAppStatusMessage.contains("重复投保") || syAppStatusMessage.contains("重复投保")){
+            String jqAppStatusMessage = odr1009Response.getResult().getJqAppStatusMessage() == null ? "" :
+                    odr1009Response.getResult().getJqAppStatusMessage().toString();
+            String syAppStatusMessage = odr1009Response.getResult().getReInsuredInfo() == null ? "" :
+                    odr1009Response.getResult().getReInsuredInfo();
+            if (jqAppStatusMessage.contains("重复投保") || syAppStatusMessage.contains("重复投保")) {
                 //交强重复投保
-                for(RiskInfoVo riskInfoVo : riskInfoVos){
-                    if(riskInfoVo.getRiskCode().equals(InsuranceRisk.TRAFFIC.getCode()) && !jqAppStatusMessage.isEmpty()){
+                for (RiskInfoVo riskInfoVo : riskInfoVos) {
+                    if (riskInfoVo.getRiskCode().equals(InsuranceRisk.TRAFFIC.getCode()) && !jqAppStatusMessage.isEmpty()) {
                         String jqEndDate = getTheExpiryDate(jqAppStatusMessage, THE_FIRST_REGEX);
                         List<String> duplicateDate = getDuplicateDate(riskInfoVo.getStartDate(), riskInfoVo.getEndDate(), jqEndDate);
                         riskInfoVo.setStartDate(duplicateDate.get(0));
                         riskInfoVo.setEndDate(duplicateDate.get(1));
                     }
                     //商业重复投保
-                    if(riskInfoVo.getRiskCode().equals(InsuranceRisk.BUSINESS.getCode()) && !syAppStatusMessage.isEmpty()){
+                    if (riskInfoVo.getRiskCode().equals(InsuranceRisk.BUSINESS.getCode()) && !syAppStatusMessage.isEmpty()) {
                         String syEndDate = getTheExpiryDate(syAppStatusMessage, THE_SECOND_REGEX);
                         List<String> duplicateDate = getDuplicateDate(riskInfoVo.getStartDate(), riskInfoVo.getEndDate(), syEndDate);
                         riskInfoVo.setStartDate(duplicateDate.get(0));
@@ -362,22 +375,20 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
         insAreaCompany.setId(companyId);
         insAreaCompany.setOrderno(quoteInfoVo.getOrderNo());
         JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(odr1009Response.getResult()));
-        jsonObject.put("busiId",busiId);
+        jsonObject.put("busiId", busiId);
         insAreaCompany.setReptxt(jsonObject);
         insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
         insAreaCompany.setInsOrderNo(orderId);
         //交强投保单号
-        if(!Objects.isNull(odr1009Response.getResult().getBasePart().getJqProposalNo()))
-        {
+        if (!Objects.isNull(odr1009Response.getResult().getBasePart().getJqProposalNo())) {
             insAreaCompany.setJqapplyno(odr1009Response.getResult().getBasePart().getJqProposalNo().toString());
         }
         //商业投保单号
-        if(!Objects.isNull(odr1009Response.getResult().getBasePart().getSyProposalNo()))
-        {
+        if (!Objects.isNull(odr1009Response.getResult().getBasePart().getSyProposalNo())) {
             insAreaCompany.setSyapplyno(odr1009Response.getResult().getBasePart().getSyProposalNo().toString());
         }
         //驾意险信息
-        if(!Objects.isNull(nvhlodr1001Response)){
+        if (!Objects.isNull(nvhlodr1001Response)) {
             insAreaCompany.setCrossInsurance(JSONArray.parseArray(JSON.toJSONString(nvhlodr1001Response.getPolicyInfos())));
         }
         insAreaCompanyService.insertCompanyAndOrders(insAreaCompany);
@@ -385,7 +396,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
         quoteRespVo.setOrderno(quoteInfoVo.getOrderNo());
         // 车船税
         ODR1009Response.ResultDTO.VehicleTaxationDTO carShipTax = odr1009Response.getResult().getVehicleTaxation();
-        if(!Objects.isNull(carShipTax)) {
+        if (!Objects.isNull(carShipTax)) {
             TaxArrears taxArrears = new TaxArrears("往年欠税", Double.parseDouble(carShipTax.getTaxableAmt()),
                     Double.parseDouble(carShipTax.getTaxOverdueAmt()));
             List<TaxArrears> taxArrearsList = Collections.singletonList(taxArrears);
@@ -399,13 +410,14 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
     /**
      * 获取CCvrgNo Code
+     *
      * @param code
      * @return
      */
-    public CCvrgNo getCCvrgNoByCode(String code){
+    public CCvrgNo getCCvrgNoByCode(String code) {
         CCvrgNo[] values = CCvrgNo.values();
         for (CCvrgNo value : values) {
-            if(value.getCode().equals(code)){
+            if (value.getCode().equals(code)) {
                 return value;
             }
         }
@@ -414,11 +426,12 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
     /**
      * 根据id 获取驾意险信息
+     *
      * @param id
      * @param quantity
      * @return
      */
-    public InsAccidentalDrivingDajia getAccidentalDrivingByCode(String id,Integer quantity){
+    public InsAccidentalDrivingDajia getAccidentalDrivingByCode(String id, Integer quantity) {
         InsAccidentalDrivingDajia byId = insAccidentalDrivingDaJiaService.getById(id);
         byId.setQuantity(quantity);
         return byId;
@@ -436,7 +449,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
         QuoteRespVo quoteRespVo = new QuoteRespVo();
 
         // 交强
-        if(odr1009Response.getResult().getBasePart().getJqEffectiveDate() != null) {
+        if (odr1009Response.getResult().getBasePart().getJqEffectiveDate() != null) {
             quoteRespVo.setStartDateJq(String.valueOf(odr1009Response.getResult().getBasePart().getJqEffectiveDate()));
             quoteRespVo.setEndDateJq(String.valueOf(odr1009Response.getResult().getBasePart().getJqExpireDate()));
             quoteRespVo.setJqScore(String.valueOf(odr1009Response.getResult().getRiskRatio().getJqPubScores()));
@@ -444,7 +457,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
         }
 
         // 商业
-        if(odr1009Response.getResult().getBasePart().getSyEffectiveDate() != null){
+        if (odr1009Response.getResult().getBasePart().getSyEffectiveDate() != null) {
             quoteRespVo.setStartDateSy(odr1009Response.getResult().getBasePart().getSyEffectiveDate());
             quoteRespVo.setEndDateSy(odr1009Response.getResult().getBasePart().getSyExpireDate());
             quoteRespVo.setSyScore(odr1009Response.getResult().getRiskRatio().getSyPubScores());
@@ -459,22 +472,22 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
         //  报价险种放入保费
         List<QuoteRiskRespVo> riskList = new ArrayList<>();
         // risk列表
-        if(odr1009Response.getResult().getBasePart().getJqProposalNo() != null){
+        if (odr1009Response.getResult().getBasePart().getJqProposalNo() != null) {
             QuoteRiskRespVo jqRisk = new QuoteRiskRespVo();
             jqRisk.setRiskCode(InsuranceRisk.TRAFFIC.getCode());
             jqRisk.setRiskName(InsuranceRisk.TRAFFIC.getDesc());
-            if(!Objects.isNull(odr1009Response.getResult().getBasePart().getJqPremium())) {
+            if (!Objects.isNull(odr1009Response.getResult().getBasePart().getJqPremium())) {
                 jqRisk.setPremium(Double.parseDouble(odr1009Response.getResult().getBasePart().getJqPremium().toString()));
                 jqRisk.setStartDate(odr1009Response.getResult().getBasePart().getJqEffectiveDate().toString());
                 jqRisk.setEndDate(odr1009Response.getResult().getBasePart().getJqExpireDate().toString());
             }
             riskList.add(jqRisk);
         }
-        if(odr1009Response.getResult().getBasePart().getSyProposalNo() != null){
+        if (odr1009Response.getResult().getBasePart().getSyProposalNo() != null) {
             QuoteRiskRespVo syRisk = new QuoteRiskRespVo();
             syRisk.setRiskCode(InsuranceRisk.BUSINESS.getCode());
             syRisk.setRiskName(InsuranceRisk.BUSINESS.getDesc());
-            if(!Objects.isNull(odr1009Response.getResult().getBasePart().getSyPremium())) {
+            if (!Objects.isNull(odr1009Response.getResult().getBasePart().getSyPremium())) {
                 syRisk.setPremium(Double.parseDouble(odr1009Response.getResult().getBasePart().getSyPremium().toString()));
                 syRisk.setStartDate(odr1009Response.getResult().getBasePart().getSyEffectiveDate().toString());
                 syRisk.setEndDate(odr1009Response.getResult().getBasePart().getSyExpireDate().toString());
@@ -531,11 +544,10 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
         //判断是否出险
         String EscNum = "";
-        if(odr1009Response.getResult().getRiskRatio().getJqPreEscNum() != null && odr1009Response.getResult().getRiskRatio().getJqPreEscNum() > 0)
-        {
-            EscNum += "交强险出险次数:" + odr1009Response.getResult().getRiskRatio().getJqPreEscNum()+"次  ";
+        if (odr1009Response.getResult().getRiskRatio().getJqPreEscNum() != null && odr1009Response.getResult().getRiskRatio().getJqPreEscNum() > 0) {
+            EscNum += "交强险出险次数:" + odr1009Response.getResult().getRiskRatio().getJqPreEscNum() + "次  ";
         }
-        if(odr1009Response.getResult().getRiskRatio().getSyPreEscNum() != null && odr1009Response.getResult().getRiskRatio().getSyPreEscNum() > 0){
+        if (odr1009Response.getResult().getRiskRatio().getSyPreEscNum() != null && odr1009Response.getResult().getRiskRatio().getSyPreEscNum() > 0) {
             EscNum += "商业险出险次数:" + odr1009Response.getResult().getRiskRatio().getSyPreEscNum() + "次";
         }
         quoteRespVo.setAccidentInfoStr(EscNum);
@@ -580,20 +592,20 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                     insOrders);
             ODR1010Response odr1010Response = daJiaRequestApiComponents.underwriting(odr1010Request);
             if (odr1010Response.getStatus().equals(Message.M0000.getCode())) {
-                if("0".equals(odr1010Response.getResult().getJqAppStatus()) || "0".equals(odr1010Response.getResult().getSyAppStatus())){
-                    if("0".equals(odr1010Response.getResult().getJqAppStatus())) {
+                if ("0".equals(odr1010Response.getResult().getJqAppStatus()) || "0".equals(odr1010Response.getResult().getSyAppStatus())) {
+                    if ("0".equals(odr1010Response.getResult().getJqAppStatus())) {
                         return HttpResult.error("自核失败,原因:" + odr1010Response.getResult().getJqAppStatusMessage());
-                    }else{
+                    } else {
                         return HttpResult.error("自核失败,原因:" + odr1010Response.getResult().getSyAppStatusMessage());
                     }
                 }
-                if("1".equals(odr1010Response.getResult().getJqAppStatus()) || "1".equals(odr1010Response.getResult().getSyAppStatus())){
+                if ("1".equals(odr1010Response.getResult().getJqAppStatus()) || "1".equals(odr1010Response.getResult().getSyAppStatus())) {
                     //修改状态 转人工
                     insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
                     insAreaCompanyService.updateById(insAreaCompany);
-                    if("1".equals(odr1010Response.getResult().getJqAppStatus())) {
+                    if ("1".equals(odr1010Response.getResult().getJqAppStatus())) {
                         return HttpResult.error("自核转人工,原因:" + odr1010Response.getResult().getJqAppStatusMessage());
-                    }else{
+                    } else {
                         return HttpResult.error("自核转人工,原因:" + odr1010Response.getResult().getSyAppStatusMessage());
                     }
                 }
@@ -604,13 +616,13 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                 ODR1011Response payNo = null;
                 boolean flag = true;
                 Integer frequencyControl = 0;
-                while(flag){
+                while (flag) {
                     payNo = daJiaRequestApiComponents.getPayNo(odr1011Request);
-                    if("0000".equals(payNo.getStatus())){
+                    if ("0000".equals(payNo.getStatus())) {
                         flag = false;
                     }
                     frequencyControl += 1;
-                    if(frequencyControl > 20){
+                    if (frequencyControl > 20) {
                         throw new RuntimeException("获取支付二维码失败");
                     }
                     Thread.sleep(500);
@@ -624,7 +636,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                     return HttpResult.ok("核保成功");
                 }
             } else {
-                if(Message.M0003.getCode().equals(odr1010Response.getStatus()) || Message.M0002.getCode().equals(odr1010Response.getStatus())){
+                if (Message.M0003.getCode().equals(odr1010Response.getStatus()) || Message.M0002.getCode().equals(odr1010Response.getStatus())) {
                     return HttpResult.error("核保失败,原因:" + odr1010Response.getMessage());
                 }
                 if ("0".equals(odr1010Response.getResult().getJqAppStatus()) && "0003".equals(odr1010Response.getStatus())) {
@@ -634,13 +646,14 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                 }
             }
             return HttpResult.error("核保失败");
-        }catch(Exception e){
+        } catch (Exception e) {
             throw new RuntimeException(e.getMessage());
         }
     }
 
     /**
      * 上传影像
+     *
      * @param companyId
      * @return
      */
@@ -648,7 +661,8 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
     public HttpResult<Object> submitImage(String companyId) {
         try {
             InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
-            List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insAreaCompany.getOrderno(), insAreaCompany.getId());
+            List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insAreaCompany.getOrderno(),
+                    insAreaCompany.getId());
             //获取公司配置信息
             DaJiaConfigureParameters daJiaConfigureParameters = new DaJiaConfigureParameters();
             configureParametersComponents.toEntity(daJiaConfigureParameters, insAreaCompany.getAgreementId());
@@ -670,35 +684,39 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
     //region 订单状态查询
 
     //检测是否进入人工
-    public boolean checkArtificial(List<ODR2010Response.ResultDTO> result){
-        List<ODR2010Response.ResultDTO> artificialCollect = result.stream().filter(x -> x.getNotifyType().equals("2002")).collect(Collectors.toList());
-        if(artificialCollect.size() > 0){
+    public boolean checkArtificial(List<ODR2010Response.ResultDTO> result) {
+        List<ODR2010Response.ResultDTO> artificialCollect =
+                result.stream().filter(x -> x.getNotifyType().equals("2002")).collect(Collectors.toList());
+        if (artificialCollect.size() > 0) {
             return true;
         }
         return false;
     }
 
     //检测是否核保退回
-    public boolean checkBack(List<ODR2010Response.ResultDTO> result){
-        List<ODR2010Response.ResultDTO> backCollect = result.stream().filter(x -> x.getNotifyType().equals("2003") || x.getNotifyType().equals("2004")).collect(Collectors.toList());
-        if(backCollect.size() > 0){
+    public boolean checkBack(List<ODR2010Response.ResultDTO> result) {
+        List<ODR2010Response.ResultDTO> backCollect =
+                result.stream().filter(x -> x.getNotifyType().equals("2003") || x.getNotifyType().equals("2004")).collect(Collectors.toList());
+        if (backCollect.size() > 0) {
             return true;
         }
         return false;
     }
 
     //检测核保通过是否存在支付连接
-    public boolean checkPayLink(List<ODR2010Response.ResultDTO> result,InsAreaCompany insAreaCompany){
-        List<ODR2010Response.ResultDTO> traverseCollect = result.stream().filter(x -> x.getNotifyType().equals("2005")).collect(Collectors.toList());
-        if(traverseCollect.size() > 0 && ("".equals(insAreaCompany.getPaymentLink()) || insAreaCompany.getPaymentLink() != null)) {
+    public boolean checkPayLink(List<ODR2010Response.ResultDTO> result, InsAreaCompany insAreaCompany) {
+        List<ODR2010Response.ResultDTO> traverseCollect =
+                result.stream().filter(x -> x.getNotifyType().equals("2005")).collect(Collectors.toList());
+        if (traverseCollect.size() > 0 && ("".equals(insAreaCompany.getPaymentLink()) || insAreaCompany.getPaymentLink() != null)) {
             return true;
         }
         return false;
     }
 
     //检测是否存在保单生成状态
-    public boolean checkBdGen(List<ODR2010Response.ResultDTO> result){
-        List<ODR2010Response.ResultDTO> collect = result.stream().filter(x -> x.getNotifyType().equals("2009")).collect(Collectors.toList());
+    public boolean checkBdGen(List<ODR2010Response.ResultDTO> result) {
+        List<ODR2010Response.ResultDTO> collect =
+                result.stream().filter(x -> x.getNotifyType().equals("2009")).collect(Collectors.toList());
         return !collect.isEmpty();
     }
 
@@ -715,46 +733,47 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             //获取公司配置信息
             DaJiaConfigureParameters daJiaConfigureParameters = new DaJiaConfigureParameters();
             configureParametersComponents.toEntity(daJiaConfigureParameters, insAreaCompany.getAgreementId());
-            ODR2010Request odr2010Request = new ODR2010Request(insAreaCompany.getInsOrderNo(),daJiaConfigureParameters);
+            ODR2010Request odr2010Request = new ODR2010Request(insAreaCompany.getInsOrderNo(), daJiaConfigureParameters);
             ODR2010Response odr2010Response = daJiaRequestApiComponents.verifyPayment(odr2010Request);
-            if(odr2010Response.getStatus().equals(Message.M0000.getCode())){
+            if (odr2010Response.getStatus().equals(Message.M0000.getCode())) {
                 List<ODR2010Response.ResultDTO> result = odr2010Response.getResult();
                 //是否人工核保
-                if(checkArtificial(result))
-                {
+                if (checkArtificial(result)) {
                     //是否存在核保退回
-                    if(checkBack(result)){
+                    if (checkBack(result)) {
                         insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
                         insAreaCompanyService.updateById(insAreaCompany);
-                    }else
+                    } else
                         //存在 核保通过 并且 不存在支付连接 则 生成支付连接
-                        if(!checkPayLink(result,insAreaCompany)){
+                        if (!checkPayLink(result, insAreaCompany)) {
                             //核保成功  获取支付二维码
                             //驾意险 返回数据
                             List<NVHLODR1001Response.policyInfosDTO> policyInfosDTOS = null;
-                            if(!Objects.isNull(insAreaCompany.getCrossInsurance())){
-                                policyInfosDTOS = JSON.parseArray(JSON.toJSONString(insAreaCompany.getCrossInsurance()),NVHLODR1001Response.policyInfosDTO.class);
+                            if (!Objects.isNull(insAreaCompany.getCrossInsurance())) {
+                                policyInfosDTOS = JSON.parseArray(JSON.toJSONString(insAreaCompany.getCrossInsurance()),
+                                        NVHLODR1001Response.policyInfosDTO.class);
                             }
-                            ODR1011Request odr1011Request = new ODR1011Request(insAreaCompany.getInsOrderNo(),daJiaConfigureParameters,policyInfosDTOS);
+                            ODR1011Request odr1011Request = new ODR1011Request(insAreaCompany.getInsOrderNo(), daJiaConfigureParameters,
+                                    policyInfosDTOS);
                             ODR1011Response payNo = daJiaRequestApiComponents.getPayNo(odr1011Request);
-                            if(payNo.getStatus().equals(Message.M0000.getCode())) {
+                            if (payNo.getStatus().equals(Message.M0000.getCode())) {
                                 //获取支付二维码成功  保存支付二维码
                                 insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
                                 insAreaCompany.setPaymentLink(payNo.getResult().getSignInfoUrl());
                                 insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
-                            }else{
+                            } else {
                                 return HttpResult.error("获取支付二维码失败");
                             }
                         }
                 }
                 //是否存在保单生成
-                if(checkBdGen(result) && !"3".equals(insAreaCompany.getOrderstatus()))
-                {
-                    List<ODR2010Response.ResultDTO> collect = result.stream().filter(x -> x.getNotifyType().equals("2009")).collect(Collectors.toList());
+                if (checkBdGen(result) && !"3".equals(insAreaCompany.getOrderstatus())) {
+                    List<ODR2010Response.ResultDTO> collect =
+                            result.stream().filter(x -> x.getNotifyType().equals("2009")).collect(Collectors.toList());
 
                     //如果交强和商业都不为空
-                    if(insAreaCompany.getJqapplyno() != null && insAreaCompany.getSyapplyno() != null){
-                        if(collect.size() < 2){
+                    if (insAreaCompany.getJqapplyno() != null && insAreaCompany.getSyapplyno() != null) {
+                        if (collect.size() < 2) {
                             return HttpResult.ok("查询订单状态成功");
                         }
                     }
@@ -765,7 +784,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                             insAreaCompany.setJqpolicyno(collect.get(i).getPlyNo());
                         } else if (collect.get(i).getProdNo().equals(CProdNo.SY.getCode())) {
                             insAreaCompany.setSypolicyno(collect.get(i).getPlyNo());
-                        } else if(collect.get(i).getProdNo().equals(CProdNo.SY_XNY.getCode())){
+                        } else if (collect.get(i).getProdNo().equals(CProdNo.SY_XNY.getCode())) {
                             //新能源保单号
                             insAreaCompany.setSypolicyno(collect.get(i).getPlyNo());
                         }
@@ -780,7 +799,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                 }
             }
             return HttpResult.ok("查询订单状态成功");
-        }catch (Exception e){
+        } catch (Exception e) {
             throw new RuntimeException(e.getMessage());
         }
     }
@@ -789,6 +808,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
     /**
      * 获取保单
+     *
      * @param policyPrintVo
      * @return
      */
@@ -883,29 +903,32 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
 
             ODR1014Request odr1014Request = new ODR1014Request(insAreaCompany.getInsOrderNo(), daJiaConfigureParameters);
             ODR1014Response odr1014Response = daJiaRequestApiComponents.orderBack(odr1014Request);
-            if("0000".equals(odr1014Response.getStatus())){
+            if ("0000".equals(odr1014Response.getStatus())) {
                 return HttpResult.ok("退单成功");
-            }else{
+            } else {
                 return HttpResult.error("退单失败");
             }
-        }catch(Exception e){
+        } catch (Exception e) {
             throw new RuntimeException(e.getMessage());
         }
     }
 
     /**
      * 获取驾意险列表
+     *
      * @return
      */
     @Override
     public HttpResult<Object> accidentalDrivingList(AccidentalInsuranceQueryVo queryVo) {
-        List<InsAccidentalDrivingDajia> list = insAccidentalDrivingDaJiaService.list(new LambdaQueryWrapper<InsAccidentalDrivingDajia>().eq(InsAccidentalDrivingDajia::getAgreementId, queryVo.getAgreementId()));
+        List<InsAccidentalDrivingDajia> list =
+                insAccidentalDrivingDaJiaService.list(new LambdaQueryWrapper<InsAccidentalDrivingDajia>().eq(InsAccidentalDrivingDajia::getAgreementId, queryVo.getAgreementId()));
         return HttpResult.ok("获取驾意险列表成功", list);
     }
 
     @Override
     public HttpResult<Object> accidentalDrivingInfo(String accidentalId) {
-        List<InsAccidentalDrivingSubDajia> list = insAccidentalDrivingSubDaJiaService.list(new LambdaQueryWrapper<InsAccidentalDrivingSubDajia>().eq(InsAccidentalDrivingSubDajia::getAccId, accidentalId));
+        List<InsAccidentalDrivingSubDajia> list =
+                insAccidentalDrivingSubDaJiaService.list(new LambdaQueryWrapper<InsAccidentalDrivingSubDajia>().eq(InsAccidentalDrivingSubDajia::getAccId, accidentalId));
         return HttpResult.ok("获取驾意险详情成功", list);
     }
 

+ 3 - 1
src/main/java/com/ydtech/modules/order/service/impl/GuorenOrderApiServiceImpl.java

@@ -221,6 +221,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
                 specialAgreementVo);
         AssertionUtils.isEmpty(premiumResult, "保费计算失败");
 
+
         // 5、 生成订单
         QuoteRespVo quoteRespVo = buildQuoteRespVo(order, premiumResult, yaQuoteInfoVo, jsPremium);
         // 账号信息
@@ -242,7 +243,8 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         responseOrderExtend(iac, quoteRespVo, premiumResult, carPriceResult.getInputvo());
         insAreaCompanyService.insertCompanyAndOrders(iac);
         quoteRespVo.setCompanyId(iac.getId());
-
+        // 返回核心车型
+        quoteRespVo.setCoreModels(vinQ.toCoreModelsVo());
         //这里调用费用匹配功能
         feeRuleSchemeService.dealFeeOrderInfo(yaQuoteInfoVo, quoteRespVo, quoteVo.getAgreementId(), iac.getId());
 

+ 51 - 83
src/main/java/com/ydtech/modules/order/service/impl/HuaTaiOrderApiServiceImpl.java

@@ -92,9 +92,8 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
         // 账号信息
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(agreementId);
         // 通过 协议id获取配置实体
-        HuaTaiConfigureParameters huaTaiConfigureParameters =
-                configureParametersComponents.toEntity(HuaTaiConfigureParameters.class,
-                        ptlAgreementAttribution);
+        HuaTaiConfigureParameters huaTaiConfigureParameters = configureParametersComponents.toEntity(HuaTaiConfigureParameters.class,
+                ptlAgreementAttribution);
 
         HuaTaiBaseRequestHead baseRequestHead = new HuaTaiBaseRequestHead(huaTaiConfigureParameters);
 
@@ -104,51 +103,47 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
         huaTaiModelsQueryRequest.setHead(baseRequestHead);
         huaTaiModelsQueryRequest.setLoginCom(huaTaiConfigureParameters.getComCode());
         huaTaiModelsQueryRequest.setAgentCode(huaTaiConfigureParameters.getAgentCode());
-        List<HuaTaiModelsQueryResponse.CarModelDto> carModelDtos =
-                huaTaiRequestApiComponents.modelQuery(huaTaiModelsQueryRequest,
-                        HuaTaiModelsQueryResponse.class);
+        List<HuaTaiModelsQueryResponse.CarModelDto> carModelDtos = huaTaiRequestApiComponents.modelQuery(huaTaiModelsQueryRequest,
+                HuaTaiModelsQueryResponse.class);
 
         List<HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto> fullCarDataDtos = new ArrayList<>();
         for (HuaTaiModelsQueryResponse.CarModelDto carModelDto : carModelDtos) {
             fullCarDataDtos.add(carModelDto.getFullCarData());
         }
+
         // 2.2 过滤车型
         HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto fullCarDataDto =
-                new CarModelsFilterUtils<HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto>().to(fullCarDataDtos,
-                        carInfo);
-
+                new CarModelsFilterUtils<HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto>().to(fullCarDataDtos, carInfo);
 
         HuaTaiActualValueResponse actualValueResponse = null;
         for (RiskInfoVo riskInfoVo : quoteInfo.getRiskList()) {
             if ("0510".equals(riskInfoVo.getRiskCode())) {
                 String startDate = riskInfoVo.getStartDate();
-                HuaTaiActualValueRequest huaTaiActualValueRequest = new HuaTaiActualValueRequest(carInfo,
-                        fullCarDataDto, startDate, huaTaiConfigureParameters.getComCode());
+                HuaTaiActualValueRequest huaTaiActualValueRequest = new HuaTaiActualValueRequest(carInfo, fullCarDataDto, startDate,
+                        huaTaiConfigureParameters.getComCode());
                 huaTaiActualValueRequest.setHead(baseRequestHead);
-                actualValueResponse = huaTaiRequestApiComponents.actualValue(huaTaiActualValueRequest,
-                        HuaTaiActualValueResponse.class);
+                actualValueResponse = huaTaiRequestApiComponents.actualValue(huaTaiActualValueRequest, HuaTaiActualValueResponse.class);
             }
         }
 
-
         // 3 组装报价参数
-        HuaTaiQuotedPriceRequest quotedPriceRequest = new HuaTaiQuotedPriceRequest(quoteInfo, fullCarDataDto,
-                actualValueResponse,
+        HuaTaiQuotedPriceRequest quotedPriceRequest = new HuaTaiQuotedPriceRequest(quoteInfo, fullCarDataDto, actualValueResponse,
                 zmQuoteVo.getAccidentalDrivingVo(), huaTaiConfigureParameters);
         quotedPriceRequest.setHead(baseRequestHead);
 
-
         // 3.1 处理报价请求
         List<String> warnMessageList = new ArrayList<>();
-        HuaTaiQuotedPriceResponse quotedPriceResponse = huaTaiQuotationProcessorComponent.handler(quotedPriceRequest,
-                warnMessageList);
+        HuaTaiQuotedPriceResponse quotedPriceResponse = huaTaiQuotationProcessorComponent.handler(quotedPriceRequest, warnMessageList);
 
         if (!"0".equals(quotedPriceResponse.getHead().getReturnCode())) {
             throw new SystemException(quotedPriceResponse.getHead().getReturnMessage());
         }
 
         QuoteRespVo quoteRespVo = getQuoteRespVo(quotedPriceResponse, quoteInfo, warnMessageList);
-        return responseOrder(quotedPriceResponse, quoteRespVo, ptlAgreementAttribution,quoteInfo);
+        // 核心返回车型
+        quoteRespVo.setCoreModels(fullCarDataDto.toCoreModelsVo());
+
+        return responseOrder(quotedPriceResponse, quoteRespVo, ptlAgreementAttribution, quoteInfo);
     }
 
     /**
@@ -164,15 +159,13 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
 
         InsAreaCompany insAreaCompany = insAreaCompanyService.getById(companyId);
         // 1. 协议id获取配置实体
-        HuaTaiConfigureParameters huaTaiConfigureParameters =
-                configureParametersComponents.toEntity(HuaTaiConfigureParameters.class,
-                        insAreaCompany.getAgreementId());
+        HuaTaiConfigureParameters huaTaiConfigureParameters = configureParametersComponents.toEntity(HuaTaiConfigureParameters.class,
+                insAreaCompany.getAgreementId());
         InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
         YaQuoteInfoVo yaQuoteInfoVo = new YaQuoteInfoVo(insOrders);
 
         // 2. 调用转投保接口
-        HuaTaiSubmitResponse response = submitForUnderwriting(yaQuoteInfoVo, insAreaCompany,
-                huaTaiConfigureParameters, engageList);
+        HuaTaiSubmitResponse response = submitForUnderwriting(yaQuoteInfoVo, insAreaCompany, huaTaiConfigureParameters, engageList);
 
         if ("-1".equals(response.getHead().getReturnCode())) {
             throw new SystemException(response.getHead().getReturnMessage());
@@ -250,8 +243,7 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
             return getPayURL(insAreaCompany, huaTaiConfigureParameters);
         } else if ("1".equals(totalStatus)) {
             //调用提交核保接口
-            HuaTaiSubmitStatusQueryResponse submitStatusQueryResponse = submitStatus(insAreaCompany,
-                    huaTaiConfigureParameters, "1");
+            HuaTaiSubmitStatusQueryResponse submitStatusQueryResponse = submitStatus(insAreaCompany, huaTaiConfigureParameters, "1");
             HuaTaiSubmitCommon huaTaiSubmitCommon = getSubmitStatus(insAreaCompany, submitStatusQueryResponse);
             //根据核保返回信息进行更新
             if ("8".equals(huaTaiSubmitCommon.getTotalUnderWriteInd())) {//已通过核保未实收
@@ -300,8 +292,7 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
         return HttpResult.ok(list);
     }
 
-    private HttpResult<Object> getPayURL(InsAreaCompany insAreaCompany,
-                                         HuaTaiConfigureParameters huaTaiConfigureParameters) {
+    private HttpResult<Object> getPayURL(InsAreaCompany insAreaCompany, HuaTaiConfigureParameters huaTaiConfigureParameters) {
         String payUrl = getPaymentUrl(insAreaCompany, huaTaiConfigureParameters);
         if (StringUtils.isNotEmpty(payUrl)) {
             insAreaCompany.setPaymentLink(payUrl);
@@ -320,20 +311,18 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getById(companyId);
 
         // 1. 协议id获取配置实体
-        HuaTaiConfigureParameters huaTaiConfigureParameters =
-                configureParametersComponents.toEntity(HuaTaiConfigureParameters.class,
-                        insAreaCompany.getAgreementId());
+        HuaTaiConfigureParameters huaTaiConfigureParameters = configureParametersComponents.toEntity(HuaTaiConfigureParameters.class,
+                insAreaCompany.getAgreementId());
         InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
-        List<InsUploadImagesDto> insUploadImagesDtoList =
-                insTaskImagesService.findImageByOrderNo(insOrders.getOrderno(), insAreaCompany.getId());
+        List<InsUploadImagesDto> insUploadImagesDtoList = insTaskImagesService.findImageByOrderNo(insOrders.getOrderno(),
+                insAreaCompany.getId());
         if (insUploadImagesDtoList.isEmpty()) {
             return HttpResult.ok("上传文件成功");
         }
         HuaTaiUploadImageRequest request = new HuaTaiUploadImageRequest(insAreaCompany, huaTaiConfigureParameters);
         request.setHead(new HuaTaiBaseRequestHead(huaTaiConfigureParameters));
         //调用华泰影像接口获取上传链接地址
-        HuaTaiUploadImageResponse response = huaTaiRequestApiComponents.uploadImage(request,
-                HuaTaiUploadImageResponse.class);
+        HuaTaiUploadImageResponse response = huaTaiRequestApiComponents.uploadImage(request, HuaTaiUploadImageResponse.class);
 
         //爬虫方式进行图片上传
         huiTaiUploadImageComponents.uploadImage(companyId, response.getUrl(), insUploadImagesDtoList);
@@ -352,16 +341,14 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getById(companyId);
 
         // 1. 协议id获取配置实体
-        HuaTaiConfigureParameters huaTaiConfigureParameters =
-                configureParametersComponents.toEntity(HuaTaiConfigureParameters.class,
-                        insAreaCompany.getAgreementId());
+        HuaTaiConfigureParameters huaTaiConfigureParameters = configureParametersComponents.toEntity(HuaTaiConfigureParameters.class,
+                insAreaCompany.getAgreementId());
 
         if (insAreaCompany.getOrderstatus().equals(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode())) {
             return HttpResult.ok(InsOrderStatusEnum.ACCEPT_INSURANCE.getDesc());
         }
         // 2. 组装请求体
-        HuaTaiOrderStatusRequest orderStatusRequest = new HuaTaiOrderStatusRequest(insAreaCompany,
-                huaTaiConfigureParameters);
+        HuaTaiOrderStatusRequest orderStatusRequest = new HuaTaiOrderStatusRequest(insAreaCompany, huaTaiConfigureParameters);
         orderStatusRequest.setHead(new HuaTaiBaseRequestHead(huaTaiConfigureParameters));
         HuaTaiOrderStatusResponse orderStatusResponse = huaTaiRequestApiComponents.orderStatus(orderStatusRequest,
                 HuaTaiOrderStatusResponse.class);
@@ -408,8 +395,7 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
 
     private String getPaymentUrl(InsAreaCompany insAreaCompany, HuaTaiConfigureParameters huaTaiConfigureParameters) {
         String payUrl = "";
-        HuaTaiPaymentUrlRequest huaTaiPaymentUrlRequest = new HuaTaiPaymentUrlRequest(insAreaCompany,
-                huaTaiConfigureParameters);
+        HuaTaiPaymentUrlRequest huaTaiPaymentUrlRequest = new HuaTaiPaymentUrlRequest(insAreaCompany, huaTaiConfigureParameters);
         huaTaiPaymentUrlRequest.setHead(new HuaTaiBaseRequestHead(huaTaiConfigureParameters));
         HuaTaiPaymentUrlResponse paymentUrlResponse = huaTaiRequestApiComponents.getPaymentUrl(huaTaiPaymentUrlRequest,
                 HuaTaiPaymentUrlResponse.class);
@@ -429,9 +415,8 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
     public HttpResult<CrawlerPolicyPrintVo> getPolicyPrint(PolicyPrintVo policyPrintVo) {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getById(policyPrintVo.getCompanyId());
         // 1. 协议id获取配置实体
-        HuaTaiConfigureParameters huaTaiConfigureParameters =
-                configureParametersComponents.toEntity(HuaTaiConfigureParameters.class,
-                        insAreaCompany.getAgreementId());
+        HuaTaiConfigureParameters huaTaiConfigureParameters = configureParametersComponents.toEntity(HuaTaiConfigureParameters.class,
+                insAreaCompany.getAgreementId());
         InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
         String licensePlate = insOrders.getLicenseno();
         YaQuoteInfoVo yaQuoteInfoVo = new YaQuoteInfoVo(insOrders);
@@ -451,21 +436,17 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
                 HuaTaiInsurancePolicyPrintResponse.class);
         CrawlerPolicyPrintVo crawlerPolicyPrintVo = new CrawlerPolicyPrintVo();
         if ("0".equals(response.getHead().getReturnCode())) {
-            List<HuaTaiInsurancePolicyPrintResponse.ElecDownLoadResultDto> urlList =
-                    response.getElecDownLoadResultList();
+            List<HuaTaiInsurancePolicyPrintResponse.ElecDownLoadResultDto> urlList = response.getElecDownLoadResultList();
             //接口文档与返回示例不一致,待联调后修改
 
             if (urlList != null && !urlList.isEmpty()) {
                 for (HuaTaiInsurancePolicyPrintResponse.ElecDownLoadResultDto elecDownLoadResultDto : urlList) {
                     String url = elecDownLoadResultDto.getDownURL();
                     if (InsuranceRisk.TRAFFIC.getCode().equals(riskCode)) {
-                        crawlerPolicyPrintVo.setJqxPolicyUrl(gainCarInsPolicy(url, licensePlate + "-交强险保单.pdf",
-                                licensePlate, password));
-                        crawlerPolicyPrintVo.setJqxFlagUrl(gainCarInsPolicy(url, licensePlate + "-交强险标志.pdf",
-                                licensePlate, password));
+                        crawlerPolicyPrintVo.setJqxPolicyUrl(gainCarInsPolicy(url, licensePlate + "-交强险保单.pdf", licensePlate, password));
+                        crawlerPolicyPrintVo.setJqxFlagUrl(gainCarInsPolicy(url, licensePlate + "-交强险标志.pdf", licensePlate, password));
                     } else if (InsuranceRisk.BUSINESS.getCode().equals(riskCode)) {
-                        crawlerPolicyPrintVo.setSyxPolicyUrl(gainCarInsPolicy(url, licensePlate + "-商业险保单.pdf",
-                                licensePlate, password));
+                        crawlerPolicyPrintVo.setSyxPolicyUrl(gainCarInsPolicy(url, licensePlate + "-商业险保单.pdf", licensePlate, password));
                     }
                     /**
                      * 先下载到本地,然后再解压到固定路径
@@ -480,8 +461,7 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
 
     public String gainCarInsPolicy(String url, String fileName, String licensePlate, String password) {
         String dir = "carInsPolicy/" + licensePlate + "/";
-        return FileUtil.netUrlStoreToLocal(url, dir, fileName, uploadFilePath, apiUrl + showFileUrl, password,
-                licensePlate);
+        return FileUtil.netUrlStoreToLocal(url, dir, fileName, uploadFilePath, apiUrl + showFileUrl, password, licensePlate);
     }
 
     /**
@@ -495,8 +475,7 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
     private HuaTaiSubmitResponse submitForUnderwriting(YaQuoteInfoVo yaQuoteInfoVo, InsAreaCompany insAreaCompany,
                                                        HuaTaiConfigureParameters huaTaiConfigureParameters,
                                                        List<InsHuataiContributingVo> engageList) {
-        HuaTaiSubmitRequest submitRequest = new HuaTaiSubmitRequest(yaQuoteInfoVo, insAreaCompany,
-                huaTaiConfigureParameters, engageList);
+        HuaTaiSubmitRequest submitRequest = new HuaTaiSubmitRequest(yaQuoteInfoVo, insAreaCompany, huaTaiConfigureParameters, engageList);
         submitRequest.setHead(new HuaTaiBaseRequestHead(huaTaiConfigureParameters));
         return huaTaiRequestApiComponents.submit(submitRequest, HuaTaiSubmitResponse.class);
     }
@@ -513,8 +492,7 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
 
         List<HuaTaiQuotedPriceResponse.ContractDto.CoverageDto> syCoverageDtoList = null;
         HuaTaiQuotedPriceResponse.ContractDto.TaxDto taxDto = null;
-        List<HuaTaiQuotedPriceResponse.ContractDto> contractDtoList =
-                quotedPriceResponse.getBusinessData().getContract();
+        List<HuaTaiQuotedPriceResponse.ContractDto> contractDtoList = quotedPriceResponse.getBusinessData().getContract();
         for (HuaTaiQuotedPriceResponse.ContractDto contractDto : contractDtoList) {
             HuaTaiQuotedPriceResponse.ContractDto.ContractMainDto contractMain = contractDto.getContractMain();
             if (HuaTaiRiskCode.R_1002.getCode().equals(contractMain.getRiskCode())) {
@@ -584,9 +562,8 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
         return quoteRespVo;
     }
 
-    private HttpResult<QuoteRespVo> responseOrder(HuaTaiQuotedPriceResponse quotedPriceResponse,
-                                                  QuoteRespVo quoteRespVo,
-                                                  PtlAgreementAttribution ptlAgreementAttribution,BaseQuoteInfoVo quoteInfo) {
+    private HttpResult<QuoteRespVo> responseOrder(HuaTaiQuotedPriceResponse quotedPriceResponse, QuoteRespVo quoteRespVo,
+                                                  PtlAgreementAttribution ptlAgreementAttribution, BaseQuoteInfoVo quoteInfo) {
         //保存订单信息
         InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
         //华泰没有总订单号,使用自定义订单号
@@ -595,14 +572,12 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
         insAreaCompany.setJqapplyno(quoteRespVo.getJqApplyNo());
         insAreaCompany.setSyapplyno(quoteRespVo.getSyApplyNo());
         HuaTaiQuotedPriceResponse.ContractDto.TaxDto taxDto = null;
-        List<HuaTaiQuotedPriceResponse.ContractDto> contractDtoList =
-                quotedPriceResponse.getBusinessData().getContract();
+        List<HuaTaiQuotedPriceResponse.ContractDto> contractDtoList = quotedPriceResponse.getBusinessData().getContract();
         String jqQuerySequenceNo = " ";
         String syQuerySequenceNo = " ";
         for (HuaTaiQuotedPriceResponse.ContractDto contractDto : contractDtoList) {
             HuaTaiQuotedPriceResponse.ContractDto.ContractMainDto contractMain = contractDto.getContractMain();
-            HuaTaiQuotedPriceResponse.ContractDto.PlatFormMessageDto platFormMessageDto =
-                    contractDto.getPlatFormMessage();
+            HuaTaiQuotedPriceResponse.ContractDto.PlatFormMessageDto platFormMessageDto = contractDto.getPlatFormMessage();
             if ("1002".equals(contractMain.getRiskCode())) {
                 jqQuerySequenceNo = platFormMessageDto.getQuerySequenceNo();
                 taxDto = contractDto.getTax();
@@ -619,8 +594,7 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
         quoteRespVo.setCompanyId(insAreaCompany.getId());
         insAreaCompanyService.insertCompanyAndOrders(insAreaCompany);
         //这里调用费用匹配功能
-        feeRuleSchemeService.dealFeeOrderInfo(quoteInfo,quoteRespVo,ptlAgreementAttribution.getId(),
-                insAreaCompany.getId());
+        feeRuleSchemeService.dealFeeOrderInfo(quoteInfo, quoteRespVo, ptlAgreementAttribution.getId(), insAreaCompany.getId());
         return HttpResult.ok(quotedPriceResponse.getHead().getReturnMessage(), quoteRespVo);
     }
 
@@ -634,17 +608,15 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
     public HttpResult<Object> auditStatusQuery(String companyId) {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getById(companyId);
         // 1. 协议id获取配置实体
-        HuaTaiConfigureParameters huaTaiConfigureParameters =
-                configureParametersComponents.toEntity(HuaTaiConfigureParameters.class,
-                        insAreaCompany.getAgreementId());
+        HuaTaiConfigureParameters huaTaiConfigureParameters = configureParametersComponents.toEntity(HuaTaiConfigureParameters.class,
+                insAreaCompany.getAgreementId());
 
         if (insAreaCompany.getOrderstatus().equals(InsOrderStatusEnum.WAIT_PAY.getCode())) {
             return HttpResult.ok(InsOrderStatusEnum.WAIT_PAY.getDesc());
         }
 
         // 2. 组装请求体
-        HuaTaiSubmitStatusQueryResponse submitStatusQueryResponse = submitStatus(insAreaCompany,
-                huaTaiConfigureParameters, "2");
+        HuaTaiSubmitStatusQueryResponse submitStatusQueryResponse = submitStatus(insAreaCompany, huaTaiConfigureParameters, "2");
 
         HuaTaiSubmitCommon huaTaiSubmitCommon = getSubmitStatus(insAreaCompany, submitStatusQueryResponse);
 
@@ -665,8 +637,7 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
         }
     }
 
-    private HuaTaiSubmitCommon getSubmitStatus(InsAreaCompany insAreaCompany,
-                                               HuaTaiSubmitStatusQueryResponse submitStatusQueryResponse) {
+    private HuaTaiSubmitCommon getSubmitStatus(InsAreaCompany insAreaCompany, HuaTaiSubmitStatusQueryResponse submitStatusQueryResponse) {
         HuaTaiSubmitCommon huaTaiSubmitCommon = new HuaTaiSubmitCommon();
         boolean haveJQFlag = false;
         boolean haveSYFlag = false;
@@ -744,15 +715,12 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
      * @return
      */
     private HuaTaiSubmitStatusQueryResponse submitStatus(InsAreaCompany insAreaCompany,
-                                                         HuaTaiConfigureParameters huaTaiConfigureParameters,
-                                                         String operateType) {
-        HuaTaiSubmitStatusQueryRequest huaTaiSubmitStatusQueryRequest =
-                new HuaTaiSubmitStatusQueryRequest(insAreaCompany,
-                        huaTaiConfigureParameters, operateType);
+                                                         HuaTaiConfigureParameters huaTaiConfigureParameters, String operateType) {
+        HuaTaiSubmitStatusQueryRequest huaTaiSubmitStatusQueryRequest = new HuaTaiSubmitStatusQueryRequest(insAreaCompany,
+                huaTaiConfigureParameters, operateType);
         huaTaiSubmitStatusQueryRequest.setHead(new HuaTaiBaseRequestHead(huaTaiConfigureParameters));
         HuaTaiSubmitStatusQueryResponse submitStatusQueryResponse =
-                huaTaiRequestApiComponents.submitStatus(huaTaiSubmitStatusQueryRequest,
-                        HuaTaiSubmitStatusQueryResponse.class);
+                huaTaiRequestApiComponents.submitStatus(huaTaiSubmitStatusQueryRequest, HuaTaiSubmitStatusQueryResponse.class);
         return submitStatusQueryResponse;
     }
 }

+ 5 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java

@@ -120,6 +120,7 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         QuoteRespVo quoteRespVo = getQuoteRespVo(response, quoteInfoVo);
         //处理订单信息
         QuoteRespVo responseVo = responseOrder(response, quoteRespVo, ptlAgreementAttribution);
+
         //添加调用费用匹配功能
         String insCom = "";
         if (ptlAgreementAttribution.getInsCompanyId() != null && ptlAgreementAttribution.getInsCompanyId().length() > 4) {
@@ -332,6 +333,10 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         quoteRespVo.setStartDateSy(response.getSyStartDate());
         quoteRespVo.setEndDateSy(response.getSyEndDate());
 
+        // 核心返回车型信息
+        CrawlerQuoteResponse.CrawlerCarInfoVo carInfo = response.getCarInfo();
+        quoteRespVo.setCoreModels(carInfo.toCoreModelsVo());
+
         // 重复投保信息
         ArrayList<String> strings = new ArrayList<>();
         if (!StringUtils.isEmpty(response.getJqRepeatInfo())) {

+ 20 - 13
src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java

@@ -138,7 +138,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
 
     private final InsImagesUploadCacheComponents insImagesUploadCacheComponents;
 
-    public void gainVehicleModel(YcConfigureParameters ycConfigureParameters, CarInfoVo carInfo) {
+    public void gainVehicleModel(YcConfigureParameters ycConfigureParameters, CarInfoVo carInfo, CoreModelsVo coreModelsVo) {
         CarModel_Req carModelReq = new CarModel_Req();
         carModelReq.setFrameNo(carInfo.getFrameNo());
         carModelReq.setEngineNo(carInfo.getEngineNo());
@@ -178,7 +178,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
                     rd.getVehicleInfoList().stream().filter(a -> a.getVehiclePrice().equals(carInfo.getPurchasePrice())).collect(Collectors.toList());
 
             if (CollUtil.isNotEmpty(vehicleInfoList)) {
-                buildCarInfo(carInfo, vehicleInfoList.get(0));
+                buildCarInfo(carInfo, vehicleInfoList.get(0), coreModelsVo);
                 return;
             }
 
@@ -186,7 +186,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
             vehicleInfoList =
                     rd.getVehicleInfoList().stream().sorted(Comparator.comparing(ModelsQueryResponse.VehicleInfo::getVehiclePrice)).collect(Collectors.toList());
 
-            buildCarInfo(carInfo, vehicleInfoList.get(0));
+            buildCarInfo(carInfo, vehicleInfoList.get(0), coreModelsVo);
             return;
         }
 
@@ -195,7 +195,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
                 vehicleInfoList.stream().filter(a -> a.getVehiclePrice().equals(carInfo.getPurchasePrice())).findFirst().orElse(null);
 
         if (null != matchVehicleInfo) {
-            buildCarInfo(carInfo, matchVehicleInfo);
+            buildCarInfo(carInfo, matchVehicleInfo, coreModelsVo);
             return;
         }
 
@@ -204,7 +204,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         vehicleInfoList =
                 vehicleInfoList.stream().sorted(Comparator.comparing(ModelsQueryResponse.VehicleInfo::getVehicleYear).thenComparing((o1,
                                                                                                                                      o2) -> Integer.compare(StringUtils.toInt(o2.getVehiclePrice()), StringUtils.toInt(o1.getVehiclePrice()))).reversed()).collect(Collectors.toList());
-        buildCarInfo(carInfo, vehicleInfoList.get(0));
+        buildCarInfo(carInfo, vehicleInfoList.get(0), coreModelsVo);
 
     }
 
@@ -216,13 +216,13 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
      * @param quoteVo
      * @return
      */
-    private Ruote builderParams(BaseQuoteVo<AccidentalDrivingVo> quoteVo, BaseQuoteInfoVo yaQuoteInfoVo) {
+    private Ruote builderParams(BaseQuoteVo<AccidentalDrivingVo> quoteVo, BaseQuoteInfoVo yaQuoteInfoVo, CoreModelsVo coreModelsVo) {
         // 获取协议配置信息
         YcConfigureParameters ycConfigureParameters = gainYcConfigParams(quoteVo.getAgreementId());
         CarInfoVo carInfo = yaQuoteInfoVo.getCarInfo();
 
         //构造车辆信息
-        gainVehicleModel(ycConfigureParameters, carInfo);
+        gainVehicleModel(ycConfigureParameters, carInfo, coreModelsVo);
         AccidentalDrivingVo adVo = quoteVo.getAccidentalDrivingVo();
 
         //组装参数
@@ -351,9 +351,10 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         List<String> requestInfoList = new ArrayList<>();
         //获取报价信息
         BaseQuoteInfoVo yaQuoteInfoVo = insOrdersComponents.getQuoteInfo(quoteVo.getOrderNo());
+        CoreModelsVo coreModelsVo = new CoreModelsVo();
 
         //build参数
-        Ruote m = this.builderParams(quoteVo, yaQuoteInfoVo);
+        Ruote m = this.builderParams(quoteVo, yaQuoteInfoVo, coreModelsVo);
 
         //递归报价
         RuoteResponse rr = this.getResponse(m, yaQuoteInfoVo.getCarInfo().getVinNo(), requestInfoList);
@@ -381,6 +382,9 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         if (CollUtil.isNotEmpty(requestInfoList)) {
             quoteRespVo.getWarnMessageList().addAll(requestInfoList);
         }
+
+        // 核心车型返回
+        quoteRespVo.setCoreModels(coreModelsVo);
         //添加调用费用匹配功能
         feeRuleSchemeService.dealFeeOrderInfo(yaQuoteInfoVo, quoteRespVo, quoteVo.getAgreementId(), iac.getId());
         return HttpResult.ok("报价成功", quoteRespVo);
@@ -395,6 +399,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
 
         if (cAppJqFlag) {
             requestInfoList.add(errorMsg);
+
             log.info("永诚API方式 - xml请求 ------------报价 ->   交强重复投保----------------");
 
             //截取0 到 机动车交通事故强制险
@@ -821,12 +826,12 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
             return;
         }
 
-        AccidentUnderwritingRequest accidentUnderwritingRequest =
-                new AccidentUnderwritingRequest(ycConfigureParameters.getPassword(), ycConfigureParameters.getUserName(), insOrderNo);
+        AccidentUnderwritingRequest accidentUnderwritingRequest = new AccidentUnderwritingRequest(ycConfigureParameters.getPassword(),
+                ycConfigureParameters.getUserName(), insOrderNo);
 
         AccidentUnderwritingResponse accidentUnderwritingResponse = yongchengRequestApiComponents.submitPolicy(accidentUnderwritingRequest);
-        AccidentUnderwritingResponse.HeadDTO.ResponseCompleteMessageStatus responseCompleteMessageStatus
-                = accidentUnderwritingResponse.getHead().getResponseCompleteMessageStatus();
+        AccidentUnderwritingResponse.HeadDTO.ResponseCompleteMessageStatus responseCompleteMessageStatus =
+                accidentUnderwritingResponse.getHead().getResponseCompleteMessageStatus();
 
         if (!MessageStatusCode.E0000.getCode().equals(responseCompleteMessageStatus.getMessageStatusCode())) {
             throw new SystemException(responseCompleteMessageStatus.getMessageStatusDescription());
@@ -1316,12 +1321,14 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         return FileUtil.netUrlToFile(url, dir, fileName, uploadFilePath, apiUrl + showFileUrl);
     }
 
-    private void buildCarInfo(CarInfoVo carInfo, ModelsQueryResponse.VehicleInfo vehicleInfo) {
+    private void buildCarInfo(CarInfoVo carInfo, ModelsQueryResponse.VehicleInfo vehicleInfo, CoreModelsVo coreModelsVo) {
         carInfo.setModelCode(vehicleInfo.getVehicleId());
         carInfo.setCiCarName(vehicleInfo.getVehicleName());
         carInfo.setModelcname(vehicleInfo.getVehicleName());
 //        carInfo.setSeatCount(vehicleInfo.getVehicleSeat());
 
+        coreModelsVo = vehicleInfo.toCoreModelsVo();
+
     }
 
 }

+ 27 - 13
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -32,7 +32,10 @@ import com.ydtech.modules.order.entity.api.zhongmei.response.*;
 import com.ydtech.modules.order.entity.config.ZmConfigureParameters;
 import com.ydtech.modules.order.entity.filter.CarModelsFilterUtils;
 import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
-import com.ydtech.modules.order.entity.vo.*;
+import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
+import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
 import com.ydtech.modules.order.service.*;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementNonCarProductCosts;
@@ -114,7 +117,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         map.put("modelName", modelName);
         Response<List<ZmCarModel>> model = zhongmeiRequestComponents.modelQuery(map,
                 new ParameterizedTypeReference<Response<List<ZmCarModel>>>() {
-                });
+        });
         List<ZmCarModel> data = model.getData();
         if (data.isEmpty()) {
             throw new SystemException("未查到你想要的车型");
@@ -187,6 +190,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
             int seatCount = Integer.parseInt(carInfo.getSeatCount());
             simpleStadarCarDTO.setApprovedPassengersCapacity(seatCount);
         }
+
         // 3 组装参数
         QuotedPriceRequest quotedPriceRequest = new QuotedPriceRequest(quoteInfo, simpleStadarCarDTO, zmQuoteVo.getAccidentalDrivingVo(),
                 zmConfigureParameters);
@@ -212,6 +216,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
             quoteRespVo = getQuoteRespVo(quotedPriceResponse, quoteInfo);
         }
 
+        // 核心返回车型
+        quoteRespVo.setCoreModels(simpleStadarCarDTO.toCoreModelsVo());
         return responseOrder(quotedPriceResponse, quoteRespVo, ptlAgreementAttribution, quoteInfo);
     }
 
@@ -376,6 +382,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         String policyNo;
         String code = DocumentTypeEnum.code(policyPrintVo.getType());
         String riskCode = policyPrintVo.getRiskCode();
+
+        // 根据投保险种获取保单号
         if (InsuranceRisk.TRAFFIC.getCode().equals(riskCode)) {
             policyNo = insAreaCompany.getJqpolicyno();
         } else if (InsuranceRisk.BUSINESS.getCode().equals(riskCode)) {
@@ -400,7 +408,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         CarInfoVo carInfoVo = JSON.toJavaObject(order.getCarinfo(), CarInfoVo.class);
         if (!InsuranceRisk.ACCIDENT.getCode().equals(riskCode)) {//非车险不传险种代码
             request.setRiskCode(InsuranceTypeCorrespondence.getZhongMei_RISK().get(carInfoVo.getEnergyType()).get(riskCode));
-        }else {
+        } else {
             request.setBusinessType(DocumentTypeEnum.EP.getCode());
         }
         request.setPolicyNo(policyNo);
@@ -653,16 +661,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
                             ptlNonCarProductSchemeService.findAllProductSchemeInfo(tempProductDto.getProductId());
                     //处理保额信息
                     for (PtlNonCarProductSchemeVo schemeVo : schemeList) {
-                        double sumAmount = 0.0;
-                        List<PtlNonCarProductSchemeDetailVo> specialInfoList = schemeVo.getSpecialInfo();
-                        for (PtlNonCarProductSchemeDetailVo detailVo : specialInfoList) {
-                            if ("1".equals(detailVo.getCountType())) {
-                                sumAmount = sumAmount + Double.parseDouble(detailVo.getUnitAmount());
-                            } else if ("2".equals(detailVo.getCountType())) {
-                                sumAmount =
-                                        sumAmount + (Double.parseDouble(detailVo.getUnitAmount()) * Double.parseDouble(reqVo.getSeatNum()));
-                            }
-                        }
+                        double sumAmount = getSumAmount(reqVo, schemeVo);
                         schemeVo.setUnitAmount(String.valueOf(sumAmount));
                         //默认带出时,投保份数默认1份
                         schemeVo.setQuantity("1");
@@ -674,6 +673,21 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         }
         return HttpResult.ok(resultList);
     }
+
+    private static double getSumAmount(GeneralNonCarProductReqVo reqVo, PtlNonCarProductSchemeVo schemeVo) {
+        double sumAmount = 0.0;
+        List<PtlNonCarProductSchemeDetailVo> specialInfoList = schemeVo.getSpecialInfo();
+        for (PtlNonCarProductSchemeDetailVo detailVo : specialInfoList) {
+            if ("1".equals(detailVo.getCountType())) {
+                sumAmount = sumAmount + Double.parseDouble(detailVo.getUnitAmount());
+            } else if ("2".equals(detailVo.getCountType())) {
+                sumAmount =
+                        sumAmount + (Double.parseDouble(detailVo.getUnitAmount()) * Double.parseDouble(reqVo.getSeatNum()));
+            }
+        }
+        return sumAmount;
+    }
+
 }
 
 

+ 3 - 0
src/main/java/com/ydtech/modules/order/service/impl/ZijinOrderApiServiceImpl.java

@@ -156,6 +156,9 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
             objects.add(message);
             quoteRespVo.setWarnMessageList(objects);
         }
+
+        // 设置核心报价车型
+        quoteRespVo.setCoreModels(vehicleModelInfosDTO.toCoreModelsVo());
         return responseOrder(calculatePremiumResponse, quoteRespVo, ptlAgreementAttribution, calculatePremiumRequest.getOrderId(),
                 calculatePremiumRequest.getOrderNo(), quoteInfoVo);
     }