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

1. 紫金、泰康 根据身份证号设置投保人性别
2. 紫金:单交不设置商业险时间

wangrq 3 месяцев назад
Родитель
Сommit
75ded91477

+ 2 - 1
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/crawler/service/TKSimpleService.java

@@ -6,6 +6,7 @@ import com.jzg.commons.constants.quote.enums.quote.VehicleUseCode;
 import com.jzg.commons.entity.orders.po.InsOrdersCarUserInfo;
 import com.jzg.commons.entity.quote.vo.*;
 import com.jzg.commons.exception.SystemException;
+import com.jzg.commons.util.IDCardUtils;
 import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
 import com.jzg.quotation.commons.utils.TimeProcessing;
 import com.jzg.quotation.taikang.crawler.CodeUtil;
@@ -687,7 +688,7 @@ public class TKSimpleService {
             carOwnerVo.setName(commonCustomersInfo.getName());
             carOwnerVo.setBirthDate(commonCustomersInfo.getBirthday());
             carOwnerVo.setSerialno(BigDecimal.ZERO);
-            carOwnerVo.setSex(commonCustomersInfo.getGender()); // todo
+            carOwnerVo.setSex(IDCardUtils.getSex(commonCustomersInfo.getIdentifyNumber()));
             carOwnerVo.setInsuredAddress("");
         }
 

+ 19 - 19
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/build/ZiJinCrawlerQuoteRequestBuild.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.jzg.commons.constants.quote.enums.quote.EnergyTypeCode;
 import com.jzg.commons.constants.quote.enums.quote.LicenseKindCode;
 import com.jzg.commons.entity.quote.vo.*;
+import com.jzg.commons.util.IDCardUtils;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.quotation.zijin.api.constant.enums.MotorVehicleInsuranceEnum;
 import com.jzg.quotation.zijin.api.constant.enums.RiskCodeEnum;
@@ -53,23 +54,19 @@ public class ZiJinCrawlerQuoteRequestBuild {
      * @return 报价请求对象
      */
     public ZiJinCrawlerQuotationRequest buildZiJinCrawlerQuotationRequest(QuoteVo quoteVo, ZiJinCrawlerConfigureParameters parameters, AttributionInformationVo attributionInformationVo, ZiJinCrawlerGetOrderNoResponse ziJinCrawlerGetOrderNoResponse, HttpHeaders headers, ZiJinCrawlerGetCarActualValueResponse ziJinCrawlerGetCarActualValueResponse, ZiJinCrawlerGetOrderNoRequest ziJinCrawlerGetOrderNoRequest, ZiJinCrawlerCarResponse ziJinCrawlerCarResponse) {
-        // 报价接口
         ZiJinCrawlerQuotationRequest ziJinCrawlerQuotationRequest = new ZiJinCrawlerQuotationRequest();
         // 设置基础信息
         ziJinCrawlerQuotationRequest.setBaseInfo(buildBaseInfo(quoteVo, parameters, attributionInformationVo.getUsername()));
-
         // 设置车主信息
         ZiJinCrawlerQuotationRequest.CarOwnerInfo carOwnerInfo = buildCarOwnerInfo(quoteVo);
         ziJinCrawlerQuotationRequest.setCarOwnerInfo(carOwnerInfo);
 
-        // 设置保险标志(固定"0")
-        ziJinCrawlerQuotationRequest.setInsuranceSign("0");
-
         // 设置被保险人列表
         ziJinCrawlerQuotationRequest.setInsuredList(buildInsuredList(quoteVo, carOwnerInfo));
-
         // 设置订单ID - 从getOrderNo接口返回的动态获取
         ziJinCrawlerQuotationRequest.setOrderId(ziJinCrawlerGetOrderNoResponse.getOrderId());
+        // 设置保险标志(固定"0")
+        ziJinCrawlerQuotationRequest.setInsuranceSign("0");
         // 设置订单来源(固定"KSCD_PROD")
         ziJinCrawlerQuotationRequest.setOrderOrigin("KSCD_PROD");
         // 设置需求单校验标志(固定"1")
@@ -241,27 +238,31 @@ public class ZiJinCrawlerQuoteRequestBuild {
         baseInfo.setHandler1Code(parameters.getUserCode());
         baseInfo.setHandler1Name(parameters.getUserName());
         baseInfo.setOperatorCode(operatorCode);
-        baseInfo.setStartDate(quoteVo.getCiRiskInfoVo().getStartDate().substring(0, 10));
+        // 交强险日期
         baseInfo.setStartDateCI(quoteVo.getCiRiskInfoVo().getStartDate().substring(0, 10));
-        baseInfo.setStartHour("00");
         baseInfo.setStartHourCI("00");
-        baseInfo.setStartMinute("00");
         baseInfo.setStartMinuteCI("00");
-        baseInfo.setEndDate(quoteVo.getCiRiskInfoVo().getEndDate().substring(0, 10));
         baseInfo.setEndDateCI(quoteVo.getCiRiskInfoVo().getEndDate().substring(0, 10));
-        baseInfo.setEndHour("24");
         baseInfo.setEndHourCI("24");
-        baseInfo.setEndMinute("00");
         baseInfo.setEndMinuteCI("00");
+        // 商业险日期
+        if (quoteVo.getBiRiskInfoVo() != null) {
+            baseInfo.setStartDate(quoteVo.getBiRiskInfoVo().getStartDate().substring(0, 10));
+            baseInfo.setStartHour("00");
+            baseInfo.setStartMinute("00");
+            baseInfo.setEndDate(quoteVo.getBiRiskInfoVo().getEndDate().substring(0, 10));
+            baseInfo.setEndHour("24");
+            baseInfo.setEndMinute("00");
+        }
         // 经测试:燃油单强设为0,交三不设置(待确认),会返回转保标志,紫金系统可以忽略进行下一步报价
         baseInfo.setXbFlag(quoteVo.getBiRiskInfoVo() == null ? "0" : null);
         baseInfo.setXbFlagCI(quoteVo.getBiRiskInfoVo() == null ? "0" : null);
         baseInfo.setGoalInsuredFlag("0");
-        baseInfo.setConfigName("");
-        baseInfo.setId("1dec8ac2ced74973842a5b098669813a");
         baseInfo.setBusinessName(parameters.getBusinessNatureName());
+        baseInfo.setId("1dec8ac2ced74973842a5b098669813a");
         baseInfo.setIdMongo("1dec8ac2ced74973842a5b098669813a");
-        baseInfo.setDesc("");
+        baseInfo.setConfigName(parameters.getUserName());
+        baseInfo.setDesc(parameters.getUserName());
         baseInfo.setHanderCode(parameters.getUserCode());
         baseInfo.setHanderName(parameters.getUserName());
         baseInfo.setDemandNo("01ZKIC140026051910017933666448");
@@ -389,9 +390,8 @@ public class ZiJinCrawlerQuoteRequestBuild {
             insuredItem.setIdentifyType("01");// 01-身份证
         }
 
-        // 性别映射
-        String gender = customerInfo.getGender();
-        insuredItem.setSex("男".equals(gender) ? "1" : "2");
+        // 性别
+        insuredItem.setSex(IDCardUtils.getSex(customerInfo.getIdentifyNumber()));
 
         // 根据车主性质设置投保人/被保人类型
         // 个人车主("1"): 投保人/被保人都是自然人
@@ -653,7 +653,7 @@ public class ZiJinCrawlerQuoteRequestBuild {
         vehicleInfo.setPlatVehicleCode(iacVehicleCode);
 
         // 车型唯一ID
-        vehicleInfo.setVehicleStyleUniqueId("");
+        vehicleInfo.setVehicleStyleUniqueId(null);
 
         // 价格和商业信息
         vehicleInfo.setPurchasePrice(carInfoVo.getPurchasePrice());

+ 9 - 9
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/build/ZiJinCrawlerSaveQuoteInfoRequestBuild.java

@@ -1,7 +1,9 @@
 package com.jzg.quotation.zijin.crawler.build;
 
+import com.alibaba.nacos.common.utils.CollectionUtils;
 import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
+import com.jzg.commons.util.IDCardUtils;
 import com.jzg.quotation.zijin.api.constant.enums.RiskCodeEnum;
 import com.jzg.quotation.zijin.crawler.component.ZiJinCrawlerCacheComponent;
 import com.jzg.quotation.zijin.crawler.entity.request.ZiJinCrawlerQuotationRequest;
@@ -185,7 +187,6 @@ public class ZiJinCrawlerSaveQuoteInfoRequestBuild {
                 .certificateDate(carInfo.getCertificateDate() != null ? carInfo.getCertificateDate() : "")
                 .chgOwnerFlag(carInfo.getChgOwnerFlag())
                 .colorCode(carInfo.getColorCode())
-                // .completekerbmass(carInfo.getCompletekerbmass() != null ? Integer.parseInt(carInfo.getCompletekerbmass()) : 0)
                 .completekerbmass(carInfo.getCompletekerbmass())
                 .ecdemicVehicleFlag(carInfo.getEcdemicVehicleFlag() != null ? carInfo.getEcdemicVehicleFlag() : "0")
                 .engineNo(carInfo.getEngineNo() != null ? carInfo.getEngineNo() : "")
@@ -207,12 +208,11 @@ public class ZiJinCrawlerSaveQuoteInfoRequestBuild {
                 .power(carInfo.getPower() != null ? carInfo.getPower() : "0")
                 .printUseNatureCode("")
                 .purchasePrice(carInfo.getPurchasePrice() != null ? carInfo.getPurchasePrice() : "0")
-                // .seatCount(carInfo.getSeatCount() != null ? Integer.parseInt(carInfo.getSeatCount()) : 5)
                 .seatCount(carInfo.getSeatCount())
                 .useNatureCode(carInfo.getUseNatureCode())
                 .vehicleId(carInfo.getVehicleId())
-                .makeDate(carInfo.getMakeDate() != null ? carInfo.getMakeDate() : "")
-                .makeDateJQ(carInfo.getMakeDateJQ() != null ? carInfo.getMakeDateJQ() : "")
+                .makeDate(carInfo.getMakeDate())
+                .makeDateJQ(carInfo.getMakeDateJQ())
                 .aliasName(carInfo.getAliasName() != null ? carInfo.getAliasName() : "")
                 .carCheckStatus("2")
                 .carCheckReason("2")
@@ -220,7 +220,7 @@ public class ZiJinCrawlerSaveQuoteInfoRequestBuild {
                 .oriBrandName(carInfo.getOriBrandName() != null ? carInfo.getOriBrandName() : "")
                 .oriPurchasePrice(carInfo.getOriPurchasePrice() != null ? carInfo.getOriPurchasePrice() : "0")
                 .isInvokeJingYou(carInfo.getIsInvokeJingYou())
-                .vehicleStyleUniqueId(carInfo.getVehicleStyleUniqueId() != null ? carInfo.getVehicleStyleUniqueId() : "")
+                .vehicleStyleUniqueId(CollectionUtils.isNotEmpty(ziJinCrawlerQuotationResponse.getCarInfoList()) ? ziJinCrawlerQuotationResponse.getCarInfoList().get(0).getVehicleStyleUniqueId() : "")
                 .printModelName(carInfo.getPrintModelName() != null ? carInfo.getPrintModelName() : "")
                 .oriModelName(carInfo.getOriModelName() != null ? carInfo.getOriModelName() : "")
                 .vINNo(carInfo.getVinNo() != null ? carInfo.getVinNo() : "")
@@ -359,12 +359,12 @@ public class ZiJinCrawlerSaveQuoteInfoRequestBuild {
                         .insuredType(insured.getInsuredType() != null ? insured.getInsuredType() : "1")
                         .longAddress(insured.getInsuredFlag() == 2 ? addr : addr1)
                         .mobile(insured.getMobile())
-                        .sex("2") // 默认值,从request中无法获取性别
+                        .sex(IDCardUtils.getSex(insured.getIdentifyNumber()))
                         .nationality("中国")
                         .occupation("A1301002")
-                        .addressProvince("")
-                        .addressPrefecture("")
-                        .addressCounty("")
+                        .addressProvince(null)
+                        .addressPrefecture(null)
+                        .addressCounty(null)
                         .postCode(insured.getPostCode() != null ? insured.getPostCode() : "030053")
                         .insuredRelationship("1")
                         .validDate(insured.getInsuredFlag() == 2 ? identifyValidEndDate : identifyValidEndDate1)

+ 4 - 4
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/crawler/service/impl/ZiJinCrawlerRequestImpl.java

@@ -152,14 +152,14 @@ public class ZiJinCrawlerRequestImpl implements ZiJinCrawlerRequest {
                 String startTime = extractDuplicateEndTime(ziJinCrawlerQuotationResponse.getRtnMsg());
                 if (StringUtils.hasLength(startTime)) {
                     String newEndTime = TimeProcessing.minusOneSecondAfterYear(startTime);
-                    // 修改商业险起保时间(保司接口期望日期格式为 yyyy-MM-dd)
                     String startDate = TimeProcessing.dateTimeToDate(startTime);
                     String endDate = TimeProcessing.minusDays(TimeProcessing.dateTimeToDate(newEndTime), 1);
-                    ziJinCrawlerQuotationRequest.getBaseInfo().setStartDate(startDate);
-                    ziJinCrawlerQuotationRequest.getBaseInfo().setEndDate(endDate);
-                    // 修改交强险起保时间
+                    // 修改交强险起保时间(保司接口期望日期格式为 yyyy-MM-dd)
                     ziJinCrawlerQuotationRequest.getBaseInfo().setStartDateCI(startDate);
                     ziJinCrawlerQuotationRequest.getBaseInfo().setEndDateCI(endDate);
+                    // 修改商业险起保时间
+                    ziJinCrawlerQuotationRequest.getBaseInfo().setStartDate(quoteVo.getBiRiskInfoVo() != null ? startDate : null);
+                    ziJinCrawlerQuotationRequest.getBaseInfo().setEndDate(quoteVo.getBiRiskInfoVo() != null ? endDate : null);
                     log.info("紫金报价重复投保日期参数: startTime={}, endTime={}", startTime, newEndTime);
                     ziJinCrawlerQuotationResponse = ziJinCrawlerRequestComponent.quotation(ziJinCrawlerQuotationRequest, headers);
                     log.info("紫金报价重复投保后响应: {}", JSON.toJSONString(ziJinCrawlerQuotationResponse));