Просмотр исходного кода

紫金修改包括一下实体

wks 1 год назад
Родитель
Сommit
1c68037c0b
20 измененных файлов с 319 добавлено и 41 удалено
  1. 28 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/base/ProductsType.java
  2. 1 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/base/QuoteRuleGroup.java
  3. 39 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/InsuranceUploadImageVo.java
  4. 4 2
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/image/ImageVo.java
  5. 47 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/image/InsuranceImageVo.java
  6. 9 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/quote/AccidentalDrivingVo.java
  7. 0 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/quote/CarInfoVo.java
  8. 7 4
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/service/QuotationBaseService.java
  9. 7 4
      tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/service/impl/DaJiaCrawlerRequestImpl.java
  10. 8 2
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/SummaryQuotationApplication.java
  11. 15 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/converter/QuoteInfoConverter.java
  12. 2 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsuranceCompanyRequestServiceImpl.java
  13. 7 4
      tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/service/impl/ZhongMeiApiRequestImpl.java
  14. 22 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/constant/enums/CarCheckReasonEnum.java
  15. 19 7
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/CalculatePremiumRequest.java
  16. 1 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/NewPayRequest.java
  17. 25 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/SubmitVerifyRequest.java
  18. 7 0
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/UploadFileRequest.java
  19. 8 2
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/repository/ZiJinApiOrderRepository.java
  20. 63 15
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/service/Impl/ZiJinApiRequestImpl.java

+ 28 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/base/ProductsType.java

@@ -0,0 +1,28 @@
+package com.jzg.quotation.commons.constant.enums.base;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @version
+ * @description: 产品代码
+ * @author: wenks
+ * @date: 2025/2/26 18:35
+ **/
+@AllArgsConstructor
+@Getter
+public enum ProductsType {
+
+    PT_0330("0330", "单交"),
+    PT_034001("034001", "单商"),
+    PT_034002("034002", "单三"),
+    PT_0330034002("0330034002", "交三"),
+    PT_0330034001("0330034001", "交商");
+
+    // 编号
+    private final String code;
+    // 说明
+    private final String desc;
+
+
+}

+ 1 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/base/QuoteRuleGroup.java

@@ -19,6 +19,7 @@ public enum QuoteRuleGroup {
     CAR_NATURE("CAR_NATURE", "使用性质"),
     VEHICLE_USE("VEHICLE_USE", "车辆用途"),
     CAR_KIND("CAR_KIND", "车辆种类"),
+    CAR_TYPE("CAR_TYPE", "行驶证车辆类型"),
     ENERGY_TYPE("ENERGY_TYPE", "能源类型"),
     PROPERTY("PROPERTY", "所属性质"),
     TRANSFER_SIGN("TRANSFER_SIGN", "过户标志"),

+ 39 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/InsuranceUploadImageVo.java

@@ -0,0 +1,39 @@
+package com.jzg.quotation.commons.entity.vo.aggregated;
+
+import com.jzg.quotation.commons.entity.vo.base.OrderBase;
+import com.jzg.quotation.commons.entity.vo.image.InsuranceImageVo;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @version
+ * @description: 传入保司的上传影像
+ * @author: wenks
+ * @date: 2025/2/26 17:27
+ **/
+@NoArgsConstructor
+@AllArgsConstructor
+@Data
+public class InsuranceUploadImageVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -1201520981954573929L;
+
+    /**
+     * 订单交互信息
+     */
+    private OrderBase order;
+
+    /**
+     * 影像分类
+     */
+    private List<InsuranceImageVo> imageVoList;
+
+
+
+}

+ 4 - 2
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/image/ImageVo.java

@@ -6,7 +6,6 @@ import lombok.NoArgsConstructor;
 
 
 /**
- * @version
  * @description: 上传影像实体
  * @author: wenks
  * @date: 2025/2/26 14:21
@@ -20,7 +19,10 @@ public class ImageVo {
      * 影像类型
      */
     private String imageType;
-
+    /**
+     * 影像名称
+     */
+    private String imageName;
     /**
      * 影像base64 影像类型
      */

+ 47 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/image/InsuranceImageVo.java

@@ -0,0 +1,47 @@
+package com.jzg.quotation.commons.entity.vo.image;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @description: 传入保司数据
+ * @author: wenks
+ * @date: 2025/2/26 17:25
+ **/
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+public class InsuranceImageVo {
+
+    /**
+     * 影像类型
+     */
+    private String imageType;
+
+    /**
+     * 影像base64 影像类型
+     */
+    private List<ImageDTO> imageBase64List;
+
+
+    @Data
+    public static class ImageDTO implements Serializable {
+
+        @Serial
+        private static final long serialVersionUID = -8193683303365881496L;
+        /**
+         * 影像名称
+         */
+        private String imageName;
+        /**
+         * 影像base64 影像类型
+         */
+        private String imageBase64Str;
+
+    }
+}

+ 9 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/quote/AccidentalDrivingVo.java

@@ -1,5 +1,6 @@
 package com.jzg.quotation.commons.entity.vo.quote;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -48,5 +49,13 @@ public class AccidentalDrivingVo implements Serializable {
      * 份数
      */
     private int quantity;
+    /**
+     * 总保额
+     */
+    private String sumAmount;
+    /**
+     * 总保费
+     */
+    private String sumPremium;
 
 }

+ 0 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/quote/CarInfoVo.java

@@ -115,7 +115,6 @@ public class CarInfoVo implements Serializable {
      * 车种明细
      */
     private String carKindDetailIdCode;
-
     /**
      * @see com.jzg.quotation.commons.constant.enums.quote.LicenseKindCode
      * 号牌种类

+ 7 - 4
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/service/QuotationBaseService.java

@@ -1,7 +1,10 @@
 package com.jzg.quotation.commons.service;
 
+import com.jzg.quotation.commons.entity.vo.aggregated.InsuranceUploadImageVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
+import com.jzg.quotation.commons.entity.vo.aggregated.UnderwritingVo;
+import com.jzg.quotation.commons.entity.vo.base.OrderBase;
 
 /**
  * @description: 报价基类
@@ -21,22 +24,22 @@ public interface QuotationBaseService {
     /**
      * 提交核保 子订单
      */
-    void underwriting(String subOrder);
+    void underwriting(UnderwritingVo underwritingVo);
 
     /**
      * 获取支付链接
      */
-    String getPaymentLink(String subOrder);
+    String getPaymentLink(OrderBase orderBase);
 
     /**
      * 上传影像
      */
-    void uploadImage(String subOrder);
+    void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo);
 
     /**
      * 下载保单
      */
-    void downloadPolicy(String subOrder);
+    void downloadPolicy(OrderBase orderBase);
     /**
      * 查询订单状态
      */

+ 7 - 4
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/service/impl/DaJiaCrawlerRequestImpl.java

@@ -2,9 +2,12 @@ package com.jzg.quotation.dajia.crawler.service.impl;
 
 
 import com.jzg.quotation.commons.constant.InsuranceCode;
+import com.jzg.quotation.commons.entity.vo.aggregated.InsuranceUploadImageVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
+import com.jzg.quotation.commons.entity.vo.aggregated.UnderwritingVo;
 import com.jzg.quotation.commons.entity.vo.base.LoginBase;
+import com.jzg.quotation.commons.entity.vo.base.OrderBase;
 import com.jzg.quotation.commons.entity.vo.quote.AttributionInformationVo;
 import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
 import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
@@ -64,22 +67,22 @@ public class DaJiaCrawlerRequestImpl implements DaJiaCrawlerRequest {
     }
 
     @Override
-    public void underwriting(String subOrder) {
+    public void underwriting(UnderwritingVo underwritingVo) {
 
     }
 
     @Override
-    public String getPaymentLink(String subOrder) {
+    public String getPaymentLink(OrderBase orderBase) {
         return "";
     }
 
     @Override
-    public void uploadImage(String subOrder) {
+    public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
 
     }
 
     @Override
-    public void downloadPolicy(String subOrder) {
+    public void downloadPolicy(OrderBase orderBase) {
 
     }
 

+ 8 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/SummaryQuotationApplication.java

@@ -5,11 +5,17 @@ import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.ComponentScan;
+import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
+import org.springframework.data.mongodb.repository.support.SimpleMongoRepository;
 
 
-@ComponentScan(basePackages = {"com.jzg.**", "com.jzg.quotation.*.*.repository"})
-@MapperScan({"com.jzg.**.mapper","com.jzg.commons.mapper"})
+@ComponentScan(basePackages = {"com.jzg.**"})
+@MapperScan({"com.jzg.**.mapper", "com.jzg.commons.mapper"})
 @SpringBootApplication
+@EnableMongoRepositories(
+        basePackages = "com.jzg.quotation.zijin.api.repository",
+        repositoryBaseClass = SimpleMongoRepository.class // 强制同步模式
+)
 public class SummaryQuotationApplication {
 
     public static void main(String[] args) {

+ 15 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/converter/QuoteInfoConverter.java

@@ -4,6 +4,7 @@ import com.jzg.quotation.commons.constant.enums.base.QuoteRuleGroup;
 import com.jzg.quotation.commons.entity.vo.quote.CarInfoVo;
 import com.jzg.quotation.commons.entity.vo.quote.KindInfoVo;
 import com.jzg.quotation.summary.entity.po.QuoteRuleMapping;
+import org.springframework.util.StringUtils;
 
 import java.util.List;
 import java.util.Map;
@@ -25,13 +26,27 @@ public class QuoteInfoConverter {
     public static void converterCarInfoVo(CarInfoVo carInfoVo, List<QuoteRuleMapping> quoteRuleMappingList) {
         Map<String, Map<String, String>> groupCodeMap = quoteRuleMappingList.stream()
                 .collect(Collectors.groupingBy(QuoteRuleMapping::getGroupCode, Collectors.toMap(QuoteRuleMapping::getPlatformCode, QuoteRuleMapping::getRuleCode)));
+        // 使用性质
         carInfoVo.setCarNatureCode(groupCodeMap.get(QuoteRuleGroup.CAR_NATURE.getCode()).get(carInfoVo.getCarNatureCode()));
+        // 车辆用途
         carInfoVo.setVehicleUseCode(groupCodeMap.get(QuoteRuleGroup.VEHICLE_USE.getCode()).get(carInfoVo.getVehicleUseCode()));
+        // 车辆种类
         carInfoVo.setCarKindCode(groupCodeMap.get(QuoteRuleGroup.CAR_KIND.getCode()).get(carInfoVo.getCarKindCode()));
+        // 能源类型
         carInfoVo.setEnergyTypeCode(groupCodeMap.get(QuoteRuleGroup.ENERGY_TYPE.getCode()).get(carInfoVo.getEnergyTypeCode()));
+        // 车辆类型 有的保险公司不需要映射
+        String carType = groupCodeMap.get(QuoteRuleGroup.CAR_TYPE.getCode()).get(carInfoVo.getCarTypeCode());
+        if(StringUtils.hasText(carType)) {
+            carInfoVo.setCarTypeCode(carType);
+        }
+        // 所属性质
         carInfoVo.setPropertyCode(groupCodeMap.get(QuoteRuleGroup.PROPERTY.getCode()).get(carInfoVo.getPropertyCode()));
+        // 车辆明细
         carInfoVo.setLicenseColorCode(groupCodeMap.get(QuoteRuleGroup.CAR_KIND_DETAIL.getCode()).get(carInfoVo.getLicenseColorCode()));
+        // 号牌颜色
         carInfoVo.setLicenseColorCode(groupCodeMap.get(QuoteRuleGroup.LICENSE_COLOR.getCode()).get(carInfoVo.getLicenseColorCode()));
+        // 号牌种类
+        carInfoVo.setLicenseKindCode(groupCodeMap.get(QuoteRuleGroup.LICENSE_KIND.getCode()).get(carInfoVo.getLicenseKindCode()));
     }
 
     /**

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

@@ -72,4 +72,6 @@ public class InsuranceCompanyRequestServiceImpl implements InsuranceCompanyReque
     }
 
 
+
+
 }

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

@@ -2,8 +2,11 @@ package com.jzg.quote.zhongmei.api.service.impl;
 
 
 import com.jzg.quotation.commons.constant.InsuranceCode;
+import com.jzg.quotation.commons.entity.vo.aggregated.InsuranceUploadImageVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
+import com.jzg.quotation.commons.entity.vo.aggregated.UnderwritingVo;
+import com.jzg.quotation.commons.entity.vo.base.OrderBase;
 import com.jzg.quote.zhongmei.api.service.ZhongMeiApiRequest;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -18,22 +21,22 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
     }
 
     @Override
-    public void underwriting(String subOrder) {
+    public void underwriting(UnderwritingVo underwritingVo) {
 
     }
 
     @Override
-    public String getPaymentLink(String subOrder) {
+    public String getPaymentLink(OrderBase orderBase) {
         return "";
     }
 
     @Override
-    public void uploadImage(String subOrder) {
+    public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
 
     }
 
     @Override
-    public void downloadPolicy(String subOrder) {
+    public void downloadPolicy(OrderBase orderBase) {
 
     }
 }

+ 22 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/constant/enums/CarCheckReasonEnum.java

@@ -0,0 +1,22 @@
+package com.jzg.quotation.zijin.api.constant.enums;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+
+
+@AllArgsConstructor
+@Getter
+public enum CarCheckReasonEnum {
+
+    CCR_1("1", "新车"),
+    CCR_2("2", "按期续保"),
+    CCR_3("3", "单保三者"),
+    CCR_4("4", "车队业务");
+
+    private final String code;
+
+    private final String name;
+
+}

+ 19 - 7
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/CalculatePremiumRequest.java

@@ -4,10 +4,7 @@ import cn.hutool.core.util.IdcardUtil;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.jzg.quotation.commons.constant.enums.quote.KindCode;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
-import com.jzg.quotation.commons.entity.vo.quote.CarInfoVo;
-import com.jzg.quotation.commons.entity.vo.quote.CustomerInfoVo;
-import com.jzg.quotation.commons.entity.vo.quote.KindInfoVo;
-import com.jzg.quotation.commons.entity.vo.quote.RiskInfoVo;
+import com.jzg.quotation.commons.entity.vo.quote.*;
 import com.jzg.quotation.zijin.api.constant.enums.CalculateFlagEnum;
 import com.jzg.quotation.zijin.api.constant.enums.RiskCodeEnum;
 import com.jzg.quotation.zijin.api.entity.ZiJinApiConfigureParameters;
@@ -24,6 +21,7 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 /**
  * @description: 紫金财险 保费计算 入参实体
@@ -112,7 +110,6 @@ public class CalculatePremiumRequest implements Serializable {
     private String demandNoCheckFlag = "1";
 
     public CalculatePremiumRequest(QuoteVo quoteVo, ModelQueryResponse.VehicleModelInfosDTO vehicleModelInfosDTO, String actualValue, ZiJinApiConfigureParameters parameters, ModelQueryResponse modelQueryResponse) {
-//        List<ZjQuoteAccidentVo> accidentalDrivingVo = quoteVo.getAccidentalDrivingVo();
         // 基本信息
         this.baseInfo = new BaseInfoDTO(quoteVo.getCiRiskInfoVo(), quoteVo.getBiRiskInfoVo());
         // 车主信息
@@ -123,8 +120,8 @@ public class CalculatePremiumRequest implements Serializable {
         this.itemKindList = ItemKindListDTO.toItemKindListDTOList(actualValue, quoteVo.getKindInfoVo());
         // 浮动因子信息
 //        this.profitDataList = ProfitDataListDTO.toCoefficient(quoteVo.getCoefficient());
-        // 驾意险
-//        this.carPolicySubInfoList = CarPolicySubInfoListDTO.toCarPolicySubInfoListDTO(accidentalDrivingVo);
+        List<AccidentalDrivingVo> accidentalDrivings = quoteVo.getAccidentalDrivings();
+        this.carPolicySubInfoList = CarPolicySubInfoListDTO.toCarPolicySubInfoListDTO(accidentalDrivings);
         // 交强险
         if (!"1".equals(this.baseInfo.calculateFlag)) {
             itemKindList.add(ItemKindListDTO.getCompulsoryInsurance());
@@ -1158,6 +1155,21 @@ public class CalculatePremiumRequest implements Serializable {
         @JsonProperty("sumPremium")
         private String sumPremium;
 
+        public CarPolicySubInfoListDTO(AccidentalDrivingVo accidentalDrivingVo) {
+            this.riskCode = accidentalDrivingVo.getRiskCode();
+            this.riskName = accidentalDrivingVo.getRiskName();
+            this.insureGradeNo = accidentalDrivingVo.getProductCode();
+            this.quantity = String.valueOf(accidentalDrivingVo.getQuantity());
+            this.sumAmount = accidentalDrivingVo.getSumAmount();
+            this.sumPremium = accidentalDrivingVo.getSumPremium();
+        }
+
+        public static List<CarPolicySubInfoListDTO> toCarPolicySubInfoListDTO(List<AccidentalDrivingVo> accidentalDrivings) {
+            return accidentalDrivings.stream().map(CarPolicySubInfoListDTO::new).collect(Collectors.toList());
+        }
+
     }
 
+
+
 }

+ 1 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/NewPayRequest.java

@@ -35,4 +35,5 @@ public class NewPayRequest implements Serializable {
     @JsonProperty("proposalCityCode")
     private String proposalCityCode;
 
+
 }

+ 25 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/SubmitVerifyRequest.java

@@ -1,12 +1,17 @@
 package com.jzg.quotation.zijin.api.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.commons.constant.enums.base.ProductsType;
+import com.jzg.quotation.commons.entity.vo.underwriting.SpecialAppointmentsVo;
+import com.jzg.quotation.zijin.api.constant.enums.CarCheckReasonEnum;
+import com.jzg.quotation.zijin.api.entity.po.ZiJinApiOrder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
 import java.io.Serializable;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @description: 紫金财险 提交核保参数 入参实体
@@ -32,6 +37,19 @@ public class SubmitVerifyRequest implements Serializable {
     @JsonProperty("orderNo")
     private String orderNo;
 
+    public SubmitVerifyRequest(ZiJinApiOrder ziJinApiOrder, String productId, List<SpecialAppointmentsVo> specialAppointmentsVos) {
+        this.orderId = ziJinApiOrder.getOrderId();
+        this.orderNo = ziJinApiOrder.getOrderNo();
+        this.engageList = specialAppointmentsVos.stream().map(EngageListDTO::new).collect(Collectors.toList());
+        String code;
+        if (productId.equals(ProductsType.PT_034002.getCode())) {
+            code = CarCheckReasonEnum.CCR_3.getCode();
+        } else {
+            code = CarCheckReasonEnum.CCR_2.getCode();
+        }
+        this.underWritingRequestVehicleDto = new UnderWritingRequestVehicleDTO(code);
+    }
+
     @NoArgsConstructor
     @Data
     public static class EngageListDTO implements Serializable {
@@ -51,12 +69,19 @@ public class SubmitVerifyRequest implements Serializable {
         @JsonProperty("riskCode")
         private String riskCode;
 
+        public EngageListDTO(SpecialAppointmentsVo specialAppointmentsVo) {
+            this.clauseCode = specialAppointmentsVo.getClauseCode();
+            this.clauseName = specialAppointmentsVo.getClauses();
+            this.clauses = specialAppointmentsVo.getClausesContext();
+            this.riskCode = specialAppointmentsVo.getRiskCode();
+        }
     }
 
     @NoArgsConstructor
     @Data
     public static class UnderWritingRequestVehicleDTO implements Serializable {
 
+        @Serial
         private static final long serialVersionUID = 5446089370940891817L;
 
         @JsonProperty("carCheckStatus")

+ 7 - 0
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/entity/request/UploadFileRequest.java

@@ -1,6 +1,7 @@
 package com.jzg.quotation.zijin.api.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.commons.entity.vo.image.InsuranceImageVo;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -33,4 +34,10 @@ public class UploadFileRequest implements Serializable {
     @JsonProperty("fileType")
     private String fileType;
 
+    public UploadFileRequest(InsuranceImageVo.ImageDTO imageBase64, String imageType, String orderNo) {
+        this.orderNo = orderNo;
+        this.fileBase64 = imageBase64.getImageBase64Str();
+        this.fileName = imageBase64.getImageName();
+        this.fileType = imageType;
+    }
 }

+ 8 - 2
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/repository/ZiJinApiOrderRepository.java

@@ -2,9 +2,15 @@ package com.jzg.quotation.zijin.api.repository;
 
 import com.jzg.quotation.zijin.api.entity.po.ZiJinApiOrder;
 import org.springframework.data.mongodb.repository.MongoRepository;
-import org.springframework.stereotype.Repository;
 
-@Repository
+
+/**
+ * @description: 紫金财险映射类
+ * @author: wenks
+ * @date: 2025/2/26 16:55
+ **/
 public interface ZiJinApiOrderRepository extends MongoRepository<ZiJinApiOrder, String> {
 
+    ZiJinApiOrder getById(String id);
+
 }

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

@@ -1,28 +1,33 @@
 package com.jzg.quotation.zijin.api.service.Impl;
 
+import com.jzg.quotation.commons.entity.vo.aggregated.InsuranceUploadImageVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
+import com.jzg.quotation.commons.entity.vo.aggregated.UnderwritingVo;
 import com.jzg.quotation.commons.entity.vo.base.OrderBase;
+import com.jzg.quotation.commons.entity.vo.image.InsuranceImageVo;
 import com.jzg.quotation.commons.entity.vo.quote.AttributionInformationVo;
 import com.jzg.quotation.commons.entity.vo.quote.CarInfoVo;
+import com.jzg.quotation.commons.entity.vo.underwriting.SpecialAppointmentsVo;
 import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
 import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
 import com.jzg.quotation.zijin.api.build.ZiJinAPIQuoteResultsVoBuild;
 import com.jzg.quotation.zijin.api.component.ZiJinApiRequestComponent;
 import com.jzg.quotation.zijin.api.entity.ZiJinApiConfigureParameters;
 import com.jzg.quotation.zijin.api.entity.po.ZiJinApiOrder;
-import com.jzg.quotation.zijin.api.entity.request.CalculatePremiumRequest;
-import com.jzg.quotation.zijin.api.entity.request.ModelQueryRequest;
-import com.jzg.quotation.zijin.api.entity.request.QueryActualValueRequest;
-import com.jzg.quotation.zijin.api.entity.response.CalculatePremiumResponse;
-import com.jzg.quotation.zijin.api.entity.response.ModelQueryResponse;
-import com.jzg.quotation.zijin.api.entity.response.QueryActualValueResponse;
+import com.jzg.quotation.zijin.api.entity.request.*;
+import com.jzg.quotation.zijin.api.entity.response.*;
 import com.jzg.quotation.zijin.api.repository.ZiJinApiOrderRepository;
 import com.jzg.quotation.zijin.api.service.ZiJinApiRequest;
 import lombok.RequiredArgsConstructor;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @description: 紫金财险 API 计算
  * @author: wenks
@@ -52,43 +57,86 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
         // 计算车辆价格
         QueryActualValueRequest queryActualValueRequest = new QueryActualValueRequest(carInfoVo, vehicleModelInfosDTO.getPurchasePrice(), "");
         QueryActualValueResponse queryActualValueResponse = ziJinApiRequestComponent.queryActualValue(queryActualValueRequest, httpHeaders);
+        // 报价
+        CalculatePremiumRequest calculatePremiumRequest = new CalculatePremiumRequest(quoteVo, vehicleModelInfosDTO, queryActualValueResponse.getActualValue(), parameters, modelQueryResponse);
+        CalculatePremiumResponse calculatePremiumResponse = ziJinApiRequestComponent.calculatePremium(calculatePremiumRequest, httpHeaders);
         // 处理重复投保
 
         // 处理验车码
 
         // 处理验车码识别错误
 
-        // 报价
-        CalculatePremiumRequest calculatePremiumRequest = new CalculatePremiumRequest(quoteVo, vehicleModelInfosDTO, queryActualValueResponse.getActualValue(), parameters, modelQueryResponse);
-        CalculatePremiumResponse calculatePremiumResponse = ziJinApiRequestComponent.calculatePremium(calculatePremiumRequest, httpHeaders);
-
         // 存储信息
         ZiJinApiOrder ziJinApiOrder = new ZiJinApiOrder();
         ziJinApiOrder.setId(order.getOrdersNo());
         ziJinApiOrder.setOrderNo(modelQueryResponse.getOrderNo());
         ziJinApiOrder.setOrderId(modelQueryResponse.getOrderId());
         ziJinApiOrderRepository.save(ziJinApiOrder);
-
         return ZiJinAPIQuoteResultsVoBuild.buildQuoteResultsVo(order.getOrdersNo(), quoteVo, calculatePremiumResponse);
     }
 
     @Override
-    public void underwriting(String subOrder) {
+    public void underwriting(UnderwritingVo underwritingVo) {
+        OrderBase orderBase = underwritingVo.getOrder();
+        ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
+        // 配置信息
+        ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
+        HttpHeaders httpHeaders = ziJinApiRequestComponent.getHttpHeaders(parameters);
+        List<SpecialAppointmentsVo> specialAppointmentsVos = underwritingVo.getSpecialAppointmentsVos();
+        SubmitVerifyRequest submitVerifyRequest = new SubmitVerifyRequest(ziJinApiOrder, "", specialAppointmentsVos);
+        SubmitVerifyResponse submitVerifyResponse = ziJinApiRequestComponent.submitVerify(submitVerifyRequest, httpHeaders);
 
     }
 
     @Override
-    public String getPaymentLink(String subOrder) {
+    public String getPaymentLink(OrderBase orderBase) {
+        ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
+        ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
+        HttpHeaders httpHeaders = ziJinApiRequestComponent.getHttpHeaders(parameters);
+        NewPayRequest newPayRequest = new NewPayRequest("", ziJinApiOrder.getOrderNo(), parameters.getOrderOrigin(), parameters.getProposalCityCode());
+        NewPayRequestResponse newPayRequestResponse = ziJinApiRequestComponent.newPay(newPayRequest, httpHeaders);
         return "";
     }
 
     @Override
-    public void uploadImage(String subOrder) {
+    public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
+        // 获取订单信息
+        OrderBase orderBase = insuranceUploadImageVo.getOrder();
+        ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
+        // 配置信息
+        ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
+        HttpHeaders httpHeaders = ziJinApiRequestComponent.getHttpHeaders(parameters);
+        // 获取影像信息
+        List<UploadImageInfoListRequest.ItemFileDataListDTO> itemFileDataListDTOS = uploadFile(insuranceUploadImageVo, ziJinApiOrder, httpHeaders);
+        // 文件信息与订单关联
+        UploadImageInfoListRequest uploadImageInfoListRequest = new UploadImageInfoListRequest(itemFileDataListDTOS,
+                ziJinApiOrder.getOrderNo());
+        BaseResponse baseResponse = ziJinApiRequestComponent.uploadImageInfoList(uploadImageInfoListRequest, httpHeaders);
+    }
 
+    @NotNull
+    private List<UploadImageInfoListRequest.ItemFileDataListDTO> uploadFile(InsuranceUploadImageVo insuranceUploadImageVo, ZiJinApiOrder ziJinApiOrder, HttpHeaders httpHeaders) {
+        List<InsuranceImageVo> imageVoList = insuranceUploadImageVo.getImageVoList();
+        // 封装文件订单
+        List<UploadImageInfoListRequest.ItemFileDataListDTO> itemFileDataListDTOS = new ArrayList<>();
+        imageVoList.forEach(imageVo -> {
+            imageVo.getImageBase64List().forEach(imageBase64 -> {
+                UploadFileRequest uploadImageRequest = new UploadFileRequest(imageBase64, imageVo.getImageType(), ziJinApiOrder.getOrderNo());
+                // 文件上传
+                UploadFileResponse uploadFileResponse = ziJinApiRequestComponent.uploadFile(uploadImageRequest, httpHeaders);
+                // 文件信息与订单关联 itemFileDataList
+                UploadImageInfoListRequest.ItemFileDataListDTO itemFileDataListDTO =
+                        new UploadImageInfoListRequest.ItemFileDataListDTO(uploadImageRequest, uploadFileResponse.getFileId());
+                itemFileDataListDTOS.add(itemFileDataListDTO);
+            });
+        });
+        return itemFileDataListDTOS;
     }
 
     @Override
-    public void downloadPolicy(String subOrder) {
+    public void downloadPolicy(OrderBase orderBase) {
+        ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
+
 
     }