浏览代码

Merge remote-tracking branch 'origin/test' into test

Qchen 11 月之前
父节点
当前提交
3a2c8b4346

+ 5 - 2
src/main/java/com/ydtech/modules/order/controller/ZhongMeiOrderApiController.java

@@ -56,8 +56,11 @@ public class ZhongMeiOrderApiController {
     @ApiOperation(value = "车型查询接口")
     public HttpResult<List<CarModelDTO>> modelsQuery(@RequestBody ModelsQueryQueryVo modelsQueryQueryVo) {
         List<CarModelDTO> map = this.zhongMeiOrderApiService.modelsQuery(modelsQueryQueryVo.getModelName());
-        List<CarModelDTO> carModelDTOS =
-                map.stream().sorted(Comparator.comparing(CarModelDTO::getReplacementValue)).collect(Collectors.toList());
+        List<CarModelDTO> carModelDTOS = map.stream()
+                .sorted(Comparator.comparing(
+                        dto -> Float.parseFloat(dto.getReplacementValue())
+                ))
+                .collect(Collectors.toList());
         if (!StringUtils.isEmpty(modelsQueryQueryVo.getMarketYear())) {
             List<CarModelDTO> collect = carModelDTOS.stream().filter(x -> !StringUtils.isEmpty(x.getMarketYear()) && x.getMarketYear().startsWith(modelsQueryQueryVo.getMarketYear())).collect(Collectors.toList());
             return HttpResult.ok(collect);

+ 3 - 3
src/main/java/com/ydtech/modules/order/entity/api/zijin/request/CalculatePremiumRequest.java

@@ -144,7 +144,7 @@ public class CalculatePremiumRequest implements Serializable {
             itemKindList.add(ItemKindListDTO.getCompulsoryInsurance());
         }
         // 车辆信息
-        this.vehicleInfo = new VehicleInfoDTO(quoteInfoVo.getCarInfo(), vehicleModelInfosDTO, actualValue);
+        this.vehicleInfo = new VehicleInfoDTO(quoteInfoVo.getCarInfo(), vehicleModelInfosDTO, actualValue, modelQueryResponse);
         this.orderId = modelQueryResponse.getOrderId();
         this.orderNo = modelQueryResponse.getOrderNo();
         this.orderOrigin = zjConfigureParameters.getAppKey();
@@ -876,7 +876,7 @@ public class CalculatePremiumRequest implements Serializable {
         private String makeDateJQ;
 
 
-        public VehicleInfoDTO(CarInfoVo carInfo, ModelQueryResponse.VehicleModelInfosDTO vehicleModelInfosDTO, String actualValue) {
+        public VehicleInfoDTO(CarInfoVo carInfo, ModelQueryResponse.VehicleModelInfosDTO vehicleModelInfosDTO, String actualValue, ModelQueryResponse modelQueryResponse) {
             this.actualValue = actualValue;
             this.agreeActualValue = actualValue;
             if (carInfo.isTransferFlag()) {
@@ -936,7 +936,7 @@ public class CalculatePremiumRequest implements Serializable {
             this.oriPurchasePrice = vehicleModelInfosDTO.getPurchasePrice();
             this.oriBrandName = vehicleModelInfosDTO.getModelName();
             this.oriModelName = vehicleModelInfosDTO.getModelName();
-            this.vehicleStyleUniqueId = vehicleModelInfosDTO.getVehicleId();
+//            this.vehicleStyleUniqueId = vehicleModelInfosDTO.getVehicleId();
             this.isInvokeJingYou = "1";
 
             //纯电动 燃料电池 插电式混合动力 归属为新能源产品

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

@@ -530,6 +530,9 @@ public class CalculatePremiumResponse extends BaseResponse implements Serializab
         @JsonProperty("carName")
         private String carName;
 
+        @JsonProperty("carValue")
+        private Float carValue;
+
         @JsonProperty("modelIdCode")
         private String modelIdCode;
 
@@ -547,6 +550,9 @@ public class CalculatePremiumResponse extends BaseResponse implements Serializab
 
         @JsonProperty("vehicleFamily")
         private String vehicleFamily;
+
+        @JsonProperty("vehicleStyleUniqueId")
+        private String vehicleStyleUniqueId;
     }
 
     @NoArgsConstructor

+ 10 - 0
src/main/java/com/ydtech/modules/order/entity/crawler/request/CrawlerQuoteRequest.java

@@ -91,4 +91,14 @@ public class CrawlerQuoteRequest extends BaseQuoteInfoVo {
      */
     private String applyNo;
 
+    /**
+     * 恒邦折扣
+     */
+    private String hopecoefficient;
+
+    /**
+     * 华农
+     */
+    private String permitComName;
+
 }

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

@@ -380,6 +380,13 @@ public class CrawlerQuoteResponse extends CrawlerBaseResponse {
         @JsonProperty("sy_loss_ration")
         private String syLossRation;
 
+        /**
+         * 恒邦商业折扣率
+         * @return
+         */
+        @JsonProperty("hopecoefficient")
+        private String hopecoefficient;
+
 
         public String getDiscount() {
             return StringUtils.isEmpty(discount) ? "0" : discount;

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

@@ -158,6 +158,8 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         crawlerQuoteRequest.setIsInspect(t.getIsInspect());
         // 永安商业折扣
         crawlerQuoteRequest.setYaBusinessDiscount(t.getYaBusinessDiscount());
+        // 恒邦折扣
+        crawlerQuoteRequest.setHopecoefficient(t.getCoefficient());
         // 上次订单
         if (StringUtils.isNotEmpty(t.getLastCompanyId())) {
             InsAreaCompany insAreaCompany = insAreaCompanyService.getById(t.getLastCompanyId());
@@ -204,6 +206,17 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
             }
         }
 
+        // 华农添加代码
+        if (ptlAgreementAttribution.getInsCompanyId().equals("HNIC1000000")){
+            JSONArray fields = ptlAgreementAttribution.getFields();
+            for(int k=0;k<fields.size();k++){
+                JSONObject jsonObject = fields.getJSONObject(k);
+                if("permitComName".equals(jsonObject.getString("field"))){
+                    crawlerQuoteRequest.setPermitComName(jsonObject.getString("value"));
+                }
+            }
+        }
+
         // 发送请求
         CrawlerQuoteResponse response = insCrawlerOrderComponents.request(apiUrl, ptlAgreementAttribution.getInsCompanyId(),
                 PtlCrawlerApiType.API_2.getDesc(), crawlerQuoteRequest, CrawlerQuoteResponse.class);
@@ -283,6 +296,8 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
             }
         } else if (t.getCompanyId().equals("PICC000000")) {
             quoteRespVo.setPreDiscount(response.getOther().getBiDiscount());
+        } else if (t.getCompanyId().equals("CCIC1000000")) {
+            quoteRespVo.setSyAdjustRate(response.getOther().getHopecoefficient());
         }
 
         //处理订单信息

+ 15 - 5
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -2059,13 +2059,13 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             return dajiaBaseQuoteVo;
         } else if (baseQuoteVo.getCompanyId().equals("BPIC1000000")) {
             // 渤海财险
-            BaseQuoteVo<List<BoHaiQuoteAccidentVo>> bohaiBaseQuoteVo = new BaseQuoteVo<>();
+            BaseQuoteVo<Object> bohaiBaseQuoteVo = new BaseQuoteVo<>();
             BeanUtils.copyProperties(baseQuoteVo, bohaiBaseQuoteVo);
             QuoteAccidentalDrivingVo accidentalDrivingVo = baseQuoteVo.getAccidentalDrivingVo();
-            BoHaiQuoteAccidentVo boHaiQuoteAccidentVo = new BoHaiQuoteAccidentVo();
-            boHaiQuoteAccidentVo.setPackageCode(accidentalDrivingVo.getProjectCode());
-            boHaiQuoteAccidentVo.setProductCode(accidentalDrivingVo.getRiskCode());
-            boHaiQuoteAccidentVo.setCopies(String.valueOf(accidentalDrivingVo.getQuantity()));
+            JSONObject boHaiQuoteAccidentVo = new JSONObject();
+            boHaiQuoteAccidentVo.put("comboCode",accidentalDrivingVo.getProjectCode());
+            boHaiQuoteAccidentVo.put("comboName",accidentalDrivingVo.getProjectName());
+            boHaiQuoteAccidentVo.put("count",String.valueOf(accidentalDrivingVo.getQuantity()));
             bohaiBaseQuoteVo.setAccidentalDrivingVo(Collections.singletonList(boHaiQuoteAccidentVo));
             return bohaiBaseQuoteVo;
         } else if (baseQuoteVo.getCompanyId().equals("CHAC1000000")) {
@@ -2105,6 +2105,16 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             jsonObject.put("rideRiskCode", accidentObject.getString("riskCode"));
             ziJinYangBaseQuoteVo.setAccidentalDrivingVo(jsonObject);
             return ziJinYangBaseQuoteVo;
+        } else if (baseQuoteVo.getCompanyId().equals("CCIC1000000")){
+            BaseQuoteVo<Object> daDiBaseQuoteVo = new BaseQuoteVo<>();
+            BeanUtils.copyProperties(baseQuoteVo, daDiBaseQuoteVo);
+            JSONObject accidentObject = JSONObject.parseObject(JSONObject.toJSONString(daDiBaseQuoteVo.getAccidentalDrivingVo()));
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("formulaGroupCode", accidentObject.getString("riskCode"));
+            jsonObject.put("formulaCode", accidentObject.getString("projectCode"));
+            jsonObject.put("count", accidentObject.getString("quantity"));
+            daDiBaseQuoteVo.setAccidentalDrivingVo(jsonObject);
+            return daDiBaseQuoteVo;
         }
 
         return null;

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

@@ -52,6 +52,7 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @Service
 @Slf4j
@@ -161,6 +162,16 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
         CalculatePremiumResponse calculatePremiumResponse = zijinRequestApiComponents.calculatePremium(calculatePremiumRequest,
                 httpHeaders, modelQueryRequest, message, queryActualValueRequest, REPEAT_NUMBER, RETRY_NUMBER);
 
+        List<CalculatePremiumResponse.CarInfoListDTO> collect = calculatePremiumResponse.getCarInfoList().stream().sorted(Comparator.comparing(CalculatePremiumResponse.CarInfoListDTO::getCarValue).reversed()).collect(Collectors.toList());
+
+        // 如果报价返回的车型大于1的话 则赋值车价最低的 进行重新报价
+        if (collect.size() > 1) {
+            calculatePremiumRequest.getVehicleInfo().setVehicleStyleUniqueId(collect.get(0).getVehicleStyleUniqueId());
+            calculatePremiumResponse = zijinRequestApiComponents.calculatePremium(calculatePremiumRequest,
+                    httpHeaders, modelQueryRequest, message, queryActualValueRequest, REPEAT_NUMBER, RETRY_NUMBER);
+        }
+
+
         if(!calculatePremiumResponse.getRtnCode().equals(ResultEnum.C_0000)){
             QuoteRespVo resp  = new QuoteRespVo();
             InsOrders order = insOrdersService.getById(quoteVo.getOrderNo());

+ 2 - 1
src/main/java/com/ydtech/modules/scheme/service/impl/RuleFilteringServiceImpl.java

@@ -79,7 +79,8 @@ public class RuleFilteringServiceImpl implements RuleFilteringService {
         if(Objects.isNull(value)){
             PtlAgreementUndwrtRulesAttr one = ptlAgreementUndwrtRulesAttrService.getOne(new LambdaQueryWrapper<PtlAgreementUndwrtRulesAttr>()
                     .eq(PtlAgreementUndwrtRulesAttr::getAttrCode, attrLink.getAttrCode()));
-            throw new SystemException(one.getAttrName() + "规则校验失败,请检查");
+            return false;
+//            throw new SystemException(one.getAttrName() + "规则校验失败,请检查");
         }
         if (rulesAttr.getAttrType().equals("checkbox")) {
             return checkBoxEqual(attrLink, value);

+ 1 - 1
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -239,7 +239,7 @@
             AND json_extract(io.insureinfo, '$.name') = #{params.insuredName}
         </if>
         <if test="params.companyId != null and params.companyId != ''">
-            AND io.company_id = #{params.companyId}
+            AND iac.company_id = #{params.companyId}
         </if>
         <if test="params.engineNo != null and params.engineNo != ''">
             and JSON_EXTRACT( io.carinfo, '$.engineNo' ) = #{params.engineNo}