Przeglądaj źródła

添加泰康 测试

wlq 1 rok temu
rodzic
commit
b70fc848d0

+ 1 - 0
tenant/insurance/quotation-summary/src/test/java/com/jzg/quotation/taikang/service/TKQuotationBaseServiceImplTest.java

@@ -22,6 +22,7 @@ public class TKQuotationBaseServiceImplTest {
         commonCarInfoVo.setLicenseNo("晋K7059T");
         commonCarInfoVo.setCarKindCode(CarKindCode.CAR_KIND_CODE_A0.getCode());
         commonCarInfoVo.setVehicleUseCode("05");
+        commonCarInfoVo.setPurchasePrice("203000");
 
         CustomerInfoVo customerInfoVo = new CustomerInfoVo();
         customerInfoVo.setName("刘书君");

+ 30 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/CodeUtil.java

@@ -0,0 +1,30 @@
+package com.jzg.quotation.taikang;
+
+import java.util.function.Consumer;
+import java.util.function.Supplier;
+
+public class CodeUtil {
+    public static <T> void autoSetter (Supplier<T> getter, Consumer<T> setter, Supplier<T> valueGetter, Supplier<T> defaultValueGetter) {
+        T t = getter.get();
+        if (t != null) {
+            return;
+        }
+
+        T t1 = valueGetter.get();
+
+        if (t1 == null) {
+            t1 = defaultValueGetter.get();
+        }
+
+        setter.accept(t1);
+    }
+    public static <T> void autoSetter (Consumer<T> setter, Supplier<T> valueGetter, Supplier<T> defaultValueGetter) {
+        T t1 = valueGetter.get();
+
+        if (t1 == null && defaultValueGetter != null) {
+            t1 = defaultValueGetter.get();
+        }
+
+        setter.accept(t1);
+    }
+}

+ 5 - 5
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/model/entity/TKCarModel.java

@@ -48,7 +48,7 @@ public class TKCarModel extends UnknownFieldEntity implements CarModelsFilter {
      *
      * ####重置价值
      */
-    private BigDecimal replacementValue;
+    private String replacementValue;
 
     /**
      * 车牌类型
@@ -93,7 +93,7 @@ public class TKCarModel extends UnknownFieldEntity implements CarModelsFilter {
     /**
      * 排量
      */
-    private BigDecimal displacement;
+    private String displacement;
 
     /**
      * 行业车型名称
@@ -122,10 +122,10 @@ public class TKCarModel extends UnknownFieldEntity implements CarModelsFilter {
 
     @Override
     public String getPurchasePrice() {
-        BigDecimal replacementValue = getReplacementValue();
-        if (replacementValue == null) {
+        String replacementValue1 = getReplacementValue();
+        if (replacementValue1 == null) {
             return "";
         }
-        return replacementValue.toString();
+        return replacementValue1;
     }
 }

+ 2 - 2
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/service/TKQuotationBaseServiceImpl.java

@@ -106,12 +106,12 @@ public class TKQuotationBaseServiceImpl implements QuotationBaseService {
         TKAreaInfoVo tkAreaInfoVo = tkSimpleService.dataCreateArea(session, mainOrderId, commonCarInfoVo, agentFuzzyResult, agentCode, agentQueryResult, province);
 
         // # 查询车型
-        TKCarModel tkCarModel = tkSimpleService.queryCarModel(session, mainOrderId, commonCarInfoVo, tkAreaInfoVo);
+        CarModelinfoQueryResult carModelinfoQueryResult = tkSimpleService.queryCarModel(session, mainOrderId, commonCarInfoVo, tkAreaInfoVo);
 
         // todo 暂时不知道是否需要执行 /car/modelinfo/checkVehicleType 接口
 
         // # 创建车险投保单
-        tkSimpleService.orderCreate(session, mainOrderId, commonQuoteVo, tkAreaInfoVo, tkCarModel);
+        tkSimpleService.orderCreate(session, mainOrderId, commonQuoteVo, tkAreaInfoVo, carModelinfoQueryResult);
 
         // # 初始化车险投保单
         PreciseInitResult preciseInitResult = tkSimpleService.orderInit(session, mainOrderId);

+ 33 - 35
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/service/TKSimpleService.java

@@ -5,6 +5,7 @@ import com.jzg.quotation.commons.constant.enums.quote.CarKindCode;
 import com.jzg.quotation.commons.constant.enums.quote.VehicleUseCode;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
 import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
+import com.jzg.quotation.taikang.CodeUtil;
 import com.jzg.quotation.taikang.model.TKLoginSession;
 import com.jzg.quotation.taikang.model.api.*;
 import com.jzg.quotation.taikang.model.entity.*;
@@ -303,7 +304,7 @@ public class TKSimpleService {
      * @param area
      * @return
      */
-    public List<TKCarModel> queryCarModelsByLicenseNo(TKLoginSession session, String mainOrderId, CarInfoVo commonCarInfoVo, TKAreaInfoVo area) {
+    public CarModelinfoQueryResult queryCarModelsByLicenseNo(TKLoginSession session, String mainOrderId, CarInfoVo commonCarInfoVo, TKAreaInfoVo area) {
         if (StringUtils.isBlank(commonCarInfoVo.getLicenseNo())) {
             return null;
         }
@@ -343,9 +344,7 @@ public class TKSimpleService {
 
         CarModelinfoQueryResult carModelinfoQueryResult = httpService.carModelinfoQuery(session.getToken(), carModelinfoQueryParam);
 
-        List<TKCarModel> TKCarModels = CarModelinfoQueryResult.hasModel(carModelinfoQueryResult);
-
-        return TKCarModels;
+        return carModelinfoQueryResult;
     }
 
     /**
@@ -362,7 +361,7 @@ public class TKSimpleService {
      * @param area
      * @return
      */
-    public List<TKCarModel> queryCarModelsByVinNo(TKLoginSession session, String mainOrderId, CarInfoVo commonCarInfoVo, TKAreaInfoVo area) {
+    public CarModelinfoQueryResult queryCarModelsByVinNo(TKLoginSession session, String mainOrderId, CarInfoVo commonCarInfoVo, TKAreaInfoVo area) {
         if (StringUtils.isBlank(commonCarInfoVo.getVinNo())) {
             return null;
         }
@@ -396,9 +395,7 @@ public class TKSimpleService {
 
         CarModelinfoQueryResult carModelinfoQueryResult = httpService.carModelinfoQuery(session.getToken(), carModelinfoQueryParam);
 
-        List<TKCarModel> TKCarModels = CarModelinfoQueryResult.hasModel(carModelinfoQueryResult);
-
-        return TKCarModels;
+        return carModelinfoQueryResult;
     }
 
     /**
@@ -410,27 +407,20 @@ public class TKSimpleService {
      * @param area
      * @return
      */
-    public TKCarModel queryCarModel(TKLoginSession session, String mainOrderId, CarInfoVo commonCarInfoVo, TKAreaInfoVo area) {
+    public CarModelinfoQueryResult queryCarModel(TKLoginSession session, String mainOrderId, CarInfoVo commonCarInfoVo, TKAreaInfoVo area) {
         // 第一次查车型,使用车牌号的方式
-        List<TKCarModel> TKCarModels = queryCarModelsByLicenseNo(session, mainOrderId, commonCarInfoVo, area);
+        CarModelinfoQueryResult carModelinfoQueryResult = queryCarModelsByLicenseNo(session, mainOrderId, commonCarInfoVo, area);
 
-        if (TKCarModels == null) {
-            // 第二次查车型,如果第一次没查到,使用车架号的方式
-            TKCarModels = queryCarModelsByVinNo(session, mainOrderId, commonCarInfoVo, area);
-        }
+        List<TKCarModel> tkCarModels = CarModelinfoQueryResult.hasModel(carModelinfoQueryResult);
 
-        if (TKCarModels == null) {
-            throw new RuntimeException("没有找到车型!(1)");
-        }
+        if (tkCarModels == null) {
+            // 第二次查车型,如果第一次没查到,使用车架号的方式
+            carModelinfoQueryResult = queryCarModelsByVinNo(session, mainOrderId, commonCarInfoVo, area);
 
-        if (TKCarModels.size() == 1) {
-            return TKCarModels.get(0);
+            tkCarModels = CarModelinfoQueryResult.hasModel(carModelinfoQueryResult);
         }
 
-        // 找到车型,后面要使用
-        TKCarModel TKCarModel = CarModelsFilterUtils.to(TKCarModels, commonCarInfoVo);
-
-        return TKCarModel;
+        return carModelinfoQueryResult;
     }
 
     public TKAreaInfoVo dataCreateArea(TKLoginSession session,
@@ -451,8 +441,8 @@ public class TKSimpleService {
         agent.setAgentName(agentQueryResult.getAgentName());
         agent.setAgentPhone(agentQueryResult.getAgentPhone());
         agent.setAgencyCode(agentQueryResult.getComCode());
-        agent.setAgencyName(agentQueryResult.getAgentName());
-        agent.setAgencyCode(agentQueryResult.getAgentPhone());
+        agent.setAgencyName(agentQueryResult.getAgencyName());
+        agent.setAgencyCode(agentQueryResult.getAgencyCode());
         // 注意,agent 上 comCode 要与页面选择出来的 city 的 comCode 保持一致。
         agent.setComCode(city.getComCode());
         agent.setFromID(agentFuzzy.getFromID());
@@ -591,18 +581,22 @@ public class TKSimpleService {
      * @param mainOrderId
      * @param commonQuoteVo
      * @param tkAreaInfoVo
-     * @param tkCarModel
+     * @param carModelinfoQueryResult
      */
     public void orderCreate(TKLoginSession session,
                             String mainOrderId,
                             QuoteVo commonQuoteVo,
                             TKAreaInfoVo tkAreaInfoVo,
-                            TKCarModel tkCarModel) {
+                            CarModelinfoQueryResult carModelinfoQueryResult) {
         // 全局固定参数
         String tplatformId = session.getTplatformId();
         String tplatLoginKey = session.getTplatLoginKey();
         String fromId = session.getFromid();
 
+        // 找到车型,后面要使用
+        TKCarModel tkCarModel = CarModelsFilterUtils.to(carModelinfoQueryResult.getCarModel(), commonQuoteVo.getCarInfoVo());
+
+        CarModelinfoQueryResult.CarInfoDto carInfoDto = carModelinfoQueryResult.getCarInfoDto();
 
         // 车辆所有人信息
         TKCarOwnerVo carOwnerVo = new TKCarOwnerVo();
@@ -650,9 +644,17 @@ public class TKSimpleService {
                 throw new RuntimeException("未知车辆大类:" + carKindCode);
             }
 
-            car.setVinNo(commonCarInfoVo.getVinNo()); // 车架号
-            car.setEngineNo(commonCarInfoVo.getEngineNo()); // 发动机号
-            car.setEnrollDate(commonCarInfoVo.getRegisterDate()); // 初登日期
+            CodeUtil.autoSetter(car::setLicenseNo, commonCarInfoVo::getLicenseNo, tkCarModel::getLicenseNo);
+            CodeUtil.autoSetter(car::setVinNo, commonCarInfoVo::getVinNo, carInfoDto::getVinCode);
+            CodeUtil.autoSetter(car::setEngineNo, commonCarInfoVo::getEngineNo, carInfoDto::getEngineNo);  // 发动机号
+            CodeUtil.autoSetter(car::setEnrollDate, commonCarInfoVo::getRegisterDate, carInfoDto::getRegisterDate);  // 初登日期
+            CodeUtil.autoSetter(car::setTransferDate, commonCarInfoVo::getTransferDate, null);
+            CodeUtil.autoSetter(car::setPurchasePrice, commonCarInfoVo::getPurchasePrice, tkCarModel::getReplacementValue);
+            CodeUtil.autoSetter(car::setSelectedSeat, commonCarInfoVo::getSeatCount, () -> tkCarModel.getVehicleJingyou().getSeat());
+            CodeUtil.autoSetter(car::setExhaustScale, commonCarInfoVo::getDisplacement, tkCarModel::getDisplacement);  // 排量
+            CodeUtil.autoSetter(car::setBrandName, commonCarInfoVo::getBrandName, tkCarModel::getModelName); // todo 与 tkCarModel.getModelName() 重复
+
+            car.setSeatFlag("1"); // todo
 
             Double tonCount = commonCarInfoVo.getTonCountDouble();
             if (tonCount != null && tonCount > 2) {
@@ -697,10 +699,6 @@ public class TKSimpleService {
                 car.setUseNatureCodeCode("8B");
             }
 
-            car.setSelectedSeat(commonCarInfoVo.getSeatCount());
-            car.setLicenseNo(commonCarInfoVo.getLicenseNo());
-            car.setBrandName(commonCarInfoVo.getBrandName()); // todo 与 tkCarModel.getModelName() 重复
-            car.setExhaustScale(commonCarInfoVo.getDisplacement()); // 排量
             TKSimpleService.setLicenseTypeByLicenseNo(car, car.getLicenseNo());
         }
 
@@ -724,7 +722,7 @@ public class TKSimpleService {
         // 其他信息
         SaveBasicInfoParam.OtherInfo otherInfo = new SaveBasicInfoParam.OtherInfo();
         otherInfo.setIsQueryVehicleFlag(false);
-        otherInfo.setShowEngineNoFlag("1");
+        otherInfo.setShowEngineNoFlag("0"); // todo 抓到几个包,都是 0。看代码时发现是 1。
         otherInfo.setJyQueryFlag(false);
         otherInfo.setOcrFlag(2);
         otherInfo.setNewCarFlag("0"); // todo

+ 25 - 25
tenant/insurance/quotation-taikang/src/test/data/A.json

@@ -3,31 +3,33 @@
   "fromId": "67107",
   "tplatformId": "feda77e829d4dedbbd8b4e236bacfac5",
   "tplatLoginKey": "5fb6bdba974e17ec0db8c8ad4faab1ba1",
-  "orderID": "WBPC202503071419220680000",
-  "orderID": "WBPC202503071420009880000",
+  "orderID": "WBPC202503261127377840000",
+  "orderId": "WBPC202503261127377840000",
   "preFilledLastPolicyFlag": "",
   "isJgFlag": "",
   "carInfoVo": {
+    "engineNo": "2213415",
     "brandName": "本田GHA6480KAC5A多用途乘用车",
     "licenseNo": "晋K7059T",
     "tonnageFlag": "0",
     "carBookingTime": "",
     "billDate": "",
     "useNatureCodeCode": "8A",
+    "purchasePrice": "203000",
+    "enrollDate": "2019-03-25",
+    "selectedSeat": "5",
+    "vinNo": "LHGTG1812K8026217",
     "licenseType": "02",
     "modelName": "本田GHA6480KAC5A多用途乘用车",
     "carType": "A",
     "fuelType": "0",
+    "exhaustScale": "1498.0",
+    "seatFlag": "1",
     "chgOwnerFlag": "0",
     "billNo": "",
-    "vinNo": "LHGTG1812K8026217",
-    "engineNo": "2213415",
-    "enrollDate": "2019-03-25",
-    "transferDate": "",
-    "selectedSeat": "5",
     "carModel": [
       {
-        "vehicleWeight": 1708,
+        "vehicleWeight": 1708.0,
         "vehicleJingyou": {
           "factoryCode": "MK03138",
           "vehicleName": "本田GHA6480KAC5A多用途乘用车",
@@ -68,36 +70,33 @@
           "fullWeightMin": "1708.000",
           "hfCode": "0"
         },
+        "licenseNo": "晋K7059T",
         "marketYear": "201703",
         "brandCN": "广汽本田",
+        "replacementValue": "203000.0",
+        "licenseType": "02",
         "modelName": "本田GHA6480KAC5A多用途乘用车",
         "fuelType": "0",
+        "ratedPassengerCapacity": 0.0,
         "modelCode": "BTABGD0009",
         "series": "冠道",
-        "replacementValue": 203000,
-        "ratedPassengerCapacity": 0,
-        "airbagNum": 0,
-        "displacement": 1498,
-        "tonnage": 0,
+        "airbagNum": 0.0,
+        "displacement": "1498.0",
+        "industryModelName": "本田GHA6480KAC5A 精英版",
+        "tonnage": 0.0,
         "industryModelCode": "BGQEGAUC0003",
-        "industryModelName": "本田GHA6480KAC5A 精英版"
+        "purchasePrice": "203000.0",
+        "carYear": "201703"
       }
     ],
-    "licenseType": "02",
-    "licenseNo": "晋K7059T",
-    "purchasePrice": "203000",
-    "exhaustScale": "1498",
-    "seatFlag": 1,
     "licenseTypeChinese": "小型汽车号牌"
   },
   "carOwnerVo": {
-    "birthDate": "1983-03-14",
-    "sex": 2,
     "name": "刘书君",
     "id": "372501198303144024",
     "carOwnerNature": "1",
     "certificateType": "01",
-    "serialno": "0",
+    "serialno": 0,
     "insuredAddress": ""
   },
   "otherInfo": {
@@ -107,7 +106,7 @@
     "ocrFlag": 2,
     "newCarFlag": "0",
     "kindLimitCode": "",
-    "retrospectId": "344bb07c-b19b-41fa-bee3-521728657aef"
+    "retrospectId": ""
   },
   "insureInfo": {
     "appliInfo": {},
@@ -122,9 +121,9 @@
     "agent": {
       "agentName": "褚友爱",
       "agentCode": "R35016546",
-      "agencyName": "山西分公司",
-      "agencyCode": "R10115",
       "agentPhone": "13613412686",
+      "agencyName": "山西分公司",
+      "agencyCode": "R10",
       "status": "1",
       "comCode": "0114",
       "fromID": "64827",
@@ -132,6 +131,7 @@
       "intermediaryName": "泰康人寿(个险)(64827)"
     },
     "channelCode": "OffWeb",
+    "orderID": "WBPC202503261127377840000",
     "bjFlag": 0,
     "licenseNo": "晋K7059T",
     "isNewCarWithoutLicense": 0,

+ 41 - 33
tenant/insurance/quotation-taikang/src/test/data/B.json

@@ -1,28 +1,37 @@
 {
   "channelCode": "OffWeb",
+  "orderID": "WBPC202503071419220680000",
+  "preFilledLastPolicyFlag": "",
+  "isJgFlag": "",
   "fromId": "67107",
   "tplatformId": "feda77e829d4dedbbd8b4e236bacfac5",
   "tplatLoginKey": "5fb6bdba974e17ec0db8c8ad4faab1ba1",
-  "orderID": "WBPC202503211734162480000",
-  "orderId": "WBPC202503211734162480000",
-  "preFilledLastPolicyFlag": "0",
-  "isJgFlag": "0",
+  "authFailContinueFlag": "",
   "carInfoVo": {
+    "fuelType": "0",
+    "modelName": "本田GHA6480KAC5A多用途乘用车",
     "brandName": "本田GHA6480KAC5A多用途乘用车",
-    "licenseNo": "晋K7059T",
     "tonnageFlag": "0",
-    "carBookingTime": "",
-    "billDate": "",
-    "useNatureCodeCode": "8A",
-    "licenseType": "02",
-    "modelName": "本田GHA6480KAC5A多用途乘用车",
     "carType": "A",
-    "fuelType": "0",
-    "chgOwnerFlag": "0",
+    "useNatureCodeCode": "8A",
+    "vinNo": "LHGTG1812K8026217",
+    "engineNo": "2213415",
+    "enrollDate": "2019-03-25",
+    "transferDate": "",
+    "selectedSeat": "5",
+    "purchasePrice": "203000",
+    "exhaustScale": "1498",
+    "seatFlag": 1,
+    "billDate": "",
+    "carBookingTime": "",
     "billNo": "",
+    "chgOwnerFlag": "0",
+    "licenseNo": "晋K7059T",
+    "licenseType": "02",
+    "licenseTypeChinese": "小型汽车号牌",
     "carModel": [
       {
-        "vehicleWeight": 1708.0,
+        "vehicleWeight": 1708,
         "vehicleJingyou": {
           "factoryCode": "MK03138",
           "vehicleName": "本田GHA6480KAC5A多用途乘用车",
@@ -64,59 +73,57 @@
           "hfCode": "0"
         },
         "licenseNo": "晋K7059T",
-        "licenseType": "02",
-        "purchasePrice": "203000.0",
-        "carYear": "201703",
         "marketYear": "201703",
         "brandCN": "广汽本田",
+        "replacementValue": 203000,
+        "licenseType": "02",
         "modelName": "本田GHA6480KAC5A多用途乘用车",
         "fuelType": "0",
+        "ratedPassengerCapacity": 0,
         "modelCode": "BTABGD0009",
         "series": "冠道",
-        "replacementValue": 203000.0,
-        "ratedPassengerCapacity": 0.0,
-        "airbagNum": 0.0,
-        "displacement": 1498.0,
-        "tonnage": 0.0,
-        "industryModelCode": "BGQEGAUC0003",
-        "industryModelName": "本田GHA6480KAC5A 精英版"
+        "airbagNum": 0,
+        "displacement": 1498,
+        "tonnage": 0,
+        "industryModelName": "本田GHA6480KAC5A 精英版",
+        "industryModelCode": "BGQEGAUC0003"
       }
-    ],
-    "licenseTypeChinese": "小型汽车号牌"
+    ]
   },
   "carOwnerVo": {
+    "carOwnerNature": "1",
+    "birthDate": "1983-03-14",
     "name": "刘书君",
     "id": "372501198303144024",
-    "carOwnerNature": "1",
     "certificateType": "01",
-    "serialno": 0,
+    "serialno": "0",
+    "sex": 2,
     "insuredAddress": ""
   },
   "otherInfo": {
     "isQueryVehicleFlag": false,
-    "showEngineNoFlag": "1",
+    "showEngineNoFlag": "0",
     "jyQueryFlag": false,
     "ocrFlag": 2,
     "newCarFlag": "0",
     "kindLimitCode": "",
-    "retrospectId": ""
+    "retrospectId": "344bb07c-b19b-41fa-bee3-521728657aef"
   },
   "insureInfo": {
     "appliInfo": {},
     "contacts": {},
     "insuredInfo": {}
   },
-  "tkcarTaxVo": {
+  "carTaxVo": {
     "isPayTax": "1"
   },
-  "authFailContinueFlag": "",
   "areaInfoVo": {
     "agent": {
       "agentName": "褚友爱",
       "agentCode": "R35016546",
-      "agencyName": "褚友爱",
-      "agencyCode": "13613412686",
       "agentPhone": "13613412686",
+      "agencyName": "山西分公司",
+      "agencyCode": "R10115",
       "status": "1",
       "comCode": "0114",
       "fromID": "64827",
@@ -124,6 +131,7 @@
       "intermediaryName": "泰康人寿(个险)(64827)"
     },
     "channelCode": "OffWeb",
+    "orderID": "WBPC202503071420009880000",
     "bjFlag": 0,
     "licenseNo": "晋K7059T",
     "isNewCarWithoutLicense": 0,

+ 2 - 2
tenant/insurance/quotation-taikang/src/test/java/com/jzg/quotation/taikang/service/TKHttpAPIServiceTest1.java

@@ -705,7 +705,7 @@ public class TKHttpAPIServiceTest1 {
         TKCarModel.setLicenseNo("晋LEL232");
         TKCarModel.setMarketYear("201601");
         TKCarModel.setBrandCN("一汽奥迪");
-        TKCarModel.setReplacementValue(new BigDecimal("380000"));
+        TKCarModel.setReplacementValue("380000");
         TKCarModel.setLicenseType("02");
         TKCarModel.setModelName("奥迪FV7251FBCBG轿车");
         TKCarModel.setFuelType("0");
@@ -714,7 +714,7 @@ public class TKHttpAPIServiceTest1 {
         TKCarModel.setSeries("一汽奥迪A6");
         TKCarModel.setAirbagNum(new BigDecimal("0"));
         TKCarModel.setTonnage(new BigDecimal("0"));
-        TKCarModel.setDisplacement(new BigDecimal("2498"));
+        TKCarModel.setDisplacement("2498");
         TKCarModel.setIndustryModelName("奥迪FV7251FBCBG 舒适型");
         TKCarModel.setIndustryModelCode("BYQMAMUC0042");