|
|
@@ -1,5 +1,6 @@
|
|
|
package com.jzg.quotation.chengtai.crawler.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
|
|
|
import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
|
|
|
import com.jzg.commons.entity.quote.vo.QuoteVo;
|
|
|
@@ -39,10 +40,13 @@ public class ChengTaiCrawlerRequestImpl implements ChengTaiCrawlerRequest {
|
|
|
|
|
|
private final ChengTaiCrawlerCacheComponent chengTaiCrawlerCacheComponent;
|
|
|
|
|
|
+ private final static String USER_NAME="0105B122";
|
|
|
+ private final static String PASS_WORD="Tqct2025..";
|
|
|
+
|
|
|
@Override
|
|
|
public void login(LoginBase loginBase) {
|
|
|
try {
|
|
|
- chengTaiCrawlerQuoteProcessService.login(loginBase.getUsername(), loginBase.getUsername());
|
|
|
+ chengTaiCrawlerQuoteProcessService.login(loginBase.getUsername(), loginBase.getPassword());
|
|
|
} catch (Exception ignored) {
|
|
|
throw new SystemException("登录失败");
|
|
|
}
|
|
|
@@ -50,6 +54,8 @@ public class ChengTaiCrawlerRequestImpl implements ChengTaiCrawlerRequest {
|
|
|
|
|
|
@Override
|
|
|
public QuoteResultsVo quote(QuoteVo quoteVo) throws Exception {
|
|
|
+
|
|
|
+// chengTaiCrawlerQuoteProcessService.login(USER_NAME, PASS_WORD);
|
|
|
// 步骤一 获取token
|
|
|
AttributionInformationVo attributionInformationVo = quoteVo.getOrder().getAttributionInformationVo();
|
|
|
ChengTaiCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
|
|
|
@@ -58,10 +64,18 @@ public class ChengTaiCrawlerRequestImpl implements ChengTaiCrawlerRequest {
|
|
|
// 步骤二 构建归属信息
|
|
|
ChengTaiSaleInfoBo saleInfoBo = chengTaiCrawlerQuoteProcessService.buildClientIdentify(parameters, httpHeaders);
|
|
|
// 步骤三 车型查询
|
|
|
- ChengTaiFindCarModelResponse.DataDTO carModel = chengTaiRequestCrawlerComponent.findCarModel(quoteVo.getCarInfoVo(), httpHeaders);
|
|
|
+ ChengTaiQueryCarInfoResponse.CarModelListDTO carModelList = chengTaiRequestCrawlerComponent.queryCarInfo(quoteVo.getCarInfoVo(),parameters, httpHeaders);
|
|
|
+ ChengTaiQueryCarInfoResponse.CarModelListDTO.FullCarDataDTO fullCarData = carModelList.getFullCarData();
|
|
|
+ String modelCode = fullCarData.getModelCode();
|
|
|
+
|
|
|
+ ChengTaiFindCarModelResponse.DataDTO carModel1 = getCarModel(fullCarData);
|
|
|
+
|
|
|
+
|
|
|
+ ChengTaiFindCarModelResponse.DataDTO carModel = chengTaiRequestCrawlerComponent.findCarModel(quoteVo.getCarInfoVo(), modelCode, httpHeaders);
|
|
|
+
|
|
|
ChengTaiGetCIModelCodeResponse ciModelCode = chengTaiRequestCrawlerComponent.getCIModelCode(carModel.getModelcode(), httpHeaders);
|
|
|
// 步骤四 新车购置价
|
|
|
- CarDepreciationCalculator.DepreciationResult depreciationResult = chengTaiCrawlerQuoteProcessService.generateClaimableValue(quoteVo.getCarInfoVo(), carModel.getPurchasePrice());
|
|
|
+ CarDepreciationCalculator.DepreciationResult depreciationResult = chengTaiCrawlerQuoteProcessService.generateClaimableValue(quoteVo.getCarInfoVo(), fullCarData.getPurchasePrice().toString());
|
|
|
// 步骤五 客户识别
|
|
|
// 投保人
|
|
|
CustomerInfoVo policyHolderInfo = quoteVo.getPolicyHolderInfo();
|
|
|
@@ -86,6 +100,85 @@ public class ChengTaiCrawlerRequestImpl implements ChengTaiCrawlerRequest {
|
|
|
return ChengTaiCrawlerQuoteResultsVoBuild.buildQuoteResultsVo(quoteVo.getOrder().getOrdersNo(), premiumca);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * "modelcode": "RAD1040SHD",
|
|
|
+ * "modelcname": "斯柯达SVW71613RS轿车",
|
|
|
+ * "vehicleclass": "轿车类",
|
|
|
+ * "vehicleType": "其他",
|
|
|
+ * "factory": "上海大众汽车有限公司",
|
|
|
+ * "factoryid": "MK0650",
|
|
|
+ * "carbrand": "上汽大众斯柯达",
|
|
|
+ * "brandid": "SKA1",
|
|
|
+ * "familyname": "昕锐",
|
|
|
+ * "familycode": "SKA1AA",
|
|
|
+ * "purchaseprice": "73703",
|
|
|
+ * "analogymodelprice": "0",
|
|
|
+ * "purchasepricenottax": "67900",
|
|
|
+ * "analogymodelpricenottax": "0",
|
|
|
+ * "carstyle": "合资车",
|
|
|
+ * "syxclassid": "KA01",
|
|
|
+ * "syxclassname": "六座以下客车",
|
|
|
+ * "jqxclassid": "KA01",
|
|
|
+ * "cimodelclass": "六座以下客车",
|
|
|
+ * "shorthandcode": "SKD-SVW71613RS",
|
|
|
+ * "exhaustscale": "1598.0",
|
|
|
+ * "seatcount": "5",
|
|
|
+ * "caryear": "201509",
|
|
|
+ * "transmissionttype": "手动档",
|
|
|
+ * "remark": "手动档 前行版 国Ⅴ",
|
|
|
+ * "vehiclequalitymin": "1120",
|
|
|
+ * "validind": "1",
|
|
|
+ * "power": "81",
|
|
|
+ * "vehiclemodel": "SVW71613RS",
|
|
|
+ * "powertype": "汽油",
|
|
|
+ * "hfnamenew": "正常",
|
|
|
+ * "hfcodenew": "0",
|
|
|
+ * "fullweightmax": "1120",
|
|
|
+ * "fullweightmin": "1120",
|
|
|
+ * "updateVersion": "20210518163000"
|
|
|
+ */
|
|
|
+ private ChengTaiFindCarModelResponse.DataDTO getCarModel(ChengTaiQueryCarInfoResponse.CarModelListDTO.FullCarDataDTO fullCarData) {
|
|
|
+ ChengTaiFindCarModelResponse.DataDTO dataDTO = new ChengTaiFindCarModelResponse.DataDTO();
|
|
|
+ dataDTO.setModelcode(fullCarData.getModelCode());
|
|
|
+ dataDTO.setModelcname(fullCarData.getModelName());
|
|
|
+ dataDTO.setVehicleclass(fullCarData.getCarKind());
|
|
|
+ dataDTO.setVehicleType("其他");
|
|
|
+ dataDTO.setFactory(fullCarData.getFactory());
|
|
|
+ dataDTO.setFactoryid(fullCarData.getFactoryCode());
|
|
|
+ dataDTO.setCarbrand(fullCarData.getBrand());
|
|
|
+ dataDTO.setBrandid(fullCarData.getBrandCode());
|
|
|
+ dataDTO.setFamilyname(fullCarData.getSeries());
|
|
|
+ dataDTO.setFamilycode(fullCarData.getSeriesCode());
|
|
|
+ dataDTO.setPurchaseprice(fullCarData.getPurchasePrice().toString().replace(".0",""));
|
|
|
+ dataDTO.setAnalogymodelprice("0");
|
|
|
+ dataDTO.setPurchasepricenottax(fullCarData.getPurchasePriceTax().toString().replace(".0",""));
|
|
|
+ dataDTO.setAnalogymodelpricenottax("0");
|
|
|
+ dataDTO.setCarstyle(fullCarData.getSeriesName());
|
|
|
+ dataDTO.setSyxclassid(fullCarData.getInsCarClass());
|
|
|
+ dataDTO.setSyxclassname(fullCarData.getInsCarClassName());
|
|
|
+ dataDTO.setJqxclassid(fullCarData.getInsCarClass());
|
|
|
+ dataDTO.setCimodelclass(fullCarData.getInsCarClassName());
|
|
|
+ dataDTO.setShorthandcode(fullCarData.getShortHandCode());
|
|
|
+ dataDTO.setExhaustscale(fullCarData.getDisplacement().toString());
|
|
|
+ dataDTO.setSeatcount(fullCarData.getApprovedPassengersCapacity().toString().replace(".0",""));
|
|
|
+ dataDTO.setCaryear(fullCarData.getCarYear());
|
|
|
+ dataDTO.setTransmissionttype(fullCarData.getTransmissionType());
|
|
|
+ dataDTO.setRemark(fullCarData.getVehicleName());
|
|
|
+ dataDTO.setVehiclequalitymin(fullCarData.getUnladenMass().toString().replace(".0",""));
|
|
|
+ dataDTO.setValidind("1");
|
|
|
+ dataDTO.setPower(fullCarData.getPower().toString().replace(".0",""));
|
|
|
+ dataDTO.setVehiclemodel(fullCarData.getVehicleModel());
|
|
|
+ dataDTO.setPowertype(fullCarData.getPowerType());
|
|
|
+ dataDTO.setHfnamenew(fullCarData.getHfName());
|
|
|
+ dataDTO.setHfcodenew(fullCarData.getHfCode());
|
|
|
+ dataDTO.setFullweightmax(fullCarData.getQualityMax().toString().replace(".0",""));
|
|
|
+ dataDTO.setFullweightmin(fullCarData.getQualityMin().toString().replace(".0",""));
|
|
|
+ dataDTO.setUpdateVersion("");
|
|
|
+
|
|
|
+ return dataDTO;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) throws Exception {
|
|
|
HttpHeaders httpHeaders = chengTaiCrawlerQuoteProcessService.getTokenHeaders(underwritingVo.getOrder().getAttributionInformationVo().getUsername(), underwritingVo.getOrder().getAttributionInformationVo().getPassword());
|