|
|
@@ -0,0 +1,975 @@
|
|
|
+package com.jzg.quotation.chengtai.crawler.entity.request;
|
|
|
+
|
|
|
+import com.fasterxml.jackson.annotation.JsonProperty;
|
|
|
+import com.jzg.commons.entity.quote.vo.*;
|
|
|
+import com.jzg.quotation.chengtai.crawler.entity.response.ChengTaiClientIdentifyResponse;
|
|
|
+import com.jzg.quotation.chengtai.crawler.entity.response.ChengTaiFindCarModelResponse;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import lombok.Data;
|
|
|
+import lombok.NoArgsConstructor;
|
|
|
+
|
|
|
+import java.io.Serial;
|
|
|
+import java.io.Serializable;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @ClassName ChengTaiPremiumcaRequest
|
|
|
+ * @Description 诚泰财险【爬虫】保费计算请求参数
|
|
|
+ * @Author wenks
|
|
|
+ * @Date 2025/9/11 17:30
|
|
|
+ * @Version 1.0
|
|
|
+ */
|
|
|
+@Data
|
|
|
+public class ChengTaiPremiumcaRequest implements Serializable {
|
|
|
+
|
|
|
+ @Serial
|
|
|
+ private static final long serialVersionUID = 805487501110961692L;
|
|
|
+
|
|
|
+ @JsonProperty("combo")
|
|
|
+ private ComboDTO combo;
|
|
|
+
|
|
|
+ @JsonProperty("flag")
|
|
|
+ private FlagDTO flag;
|
|
|
+
|
|
|
+ @JsonProperty("businessMain")
|
|
|
+ private BusinessMainDTO businessMain;
|
|
|
+
|
|
|
+ @JsonProperty("saleInfo")
|
|
|
+ private SaleInfoDTO saleInfo;
|
|
|
+
|
|
|
+ @JsonProperty("insuredObject")
|
|
|
+ private InsuredObjectDTO insuredObject;
|
|
|
+
|
|
|
+ @JsonProperty("applicant")
|
|
|
+ private PersonnelDTO applicant;
|
|
|
+
|
|
|
+ @JsonProperty("insured")
|
|
|
+ private PersonnelDTO insured;
|
|
|
+
|
|
|
+ @JsonProperty("owner")
|
|
|
+ private OwnerDTO owner;
|
|
|
+
|
|
|
+ @JsonProperty("biContract")
|
|
|
+ private BiContractDTO biContract;
|
|
|
+
|
|
|
+ @JsonProperty("ciContract")
|
|
|
+ private CiContractDTO ciContract;
|
|
|
+
|
|
|
+ @JsonProperty("accidentMain")
|
|
|
+ private AccidentMainDTO accidentMain;
|
|
|
+
|
|
|
+ @JsonProperty("accContract")
|
|
|
+ private AccContractDTO accContract;
|
|
|
+
|
|
|
+ @JsonProperty("submitReqBody")
|
|
|
+ private SubmitReqBodyDTO submitReqBody;
|
|
|
+
|
|
|
+ @JsonProperty("acciSaleInfo")
|
|
|
+ private AcciSaleInfoDTO acciSaleInfo;
|
|
|
+
|
|
|
+ public ChengTaiPremiumcaRequest(QuoteVo quoteVo, ChengTaiFindCarModelResponse.DataDTO carModel,
|
|
|
+ ChengTaiClientIdentifyResponse policyHolder, ChengTaiClientIdentifyResponse insuredPerson,
|
|
|
+ String actualValue) {
|
|
|
+ this.combo = new ComboDTO("1");
|
|
|
+ this.flag = new FlagDTO(false, false);
|
|
|
+ // 投保人
|
|
|
+ this.applicant = new PersonnelDTO(policyHolder);
|
|
|
+ // 被保人
|
|
|
+ this.insured = new PersonnelDTO(insuredPerson);
|
|
|
+ // 车主
|
|
|
+ this.owner = new OwnerDTO(quoteVo.getOwnersInfo());
|
|
|
+ // 车辆信息
|
|
|
+ this.insuredObject = new InsuredObjectDTO(quoteVo.getCarInfoVo(), actualValue, carModel);
|
|
|
+ // 交强险
|
|
|
+ this.ciContract = new CiContractDTO(quoteVo.getCiRiskInfoVo(), policyHolder);
|
|
|
+ // 商业险
|
|
|
+ this.biContract = new BiContractDTO(quoteVo.getBiRiskInfoVo(), quoteVo.getKindInfoVo());
|
|
|
+ }
|
|
|
+
|
|
|
+ @AllArgsConstructor
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class ComboDTO {
|
|
|
+ @JsonProperty("state")
|
|
|
+ private String state;
|
|
|
+ }
|
|
|
+
|
|
|
+ @AllArgsConstructor
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class FlagDTO {
|
|
|
+ @JsonProperty("isCopy")
|
|
|
+ private Boolean isCopy;
|
|
|
+ @JsonProperty("isRenewalFlag")
|
|
|
+ private Boolean isRenewalFlag;
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class BusinessMainDTO {
|
|
|
+ @JsonProperty("operatorCode")
|
|
|
+ private String operatorCode;
|
|
|
+ @JsonProperty("operatorName")
|
|
|
+ private String operatorName;
|
|
|
+ @JsonProperty("operateDate")
|
|
|
+ private String operateDate;
|
|
|
+ @JsonProperty("issueDate")
|
|
|
+ private String issueDate;
|
|
|
+ @JsonProperty("inputDate")
|
|
|
+ private String inputDate;
|
|
|
+ @JsonProperty("language")
|
|
|
+ private String language;
|
|
|
+ @JsonProperty("moneySuspiciousInd")
|
|
|
+ private String moneySuspiciousInd;
|
|
|
+ @JsonProperty("codInd")
|
|
|
+ private String codInd;
|
|
|
+ @JsonProperty("argueSolution")
|
|
|
+ private String argueSolution;
|
|
|
+ @JsonProperty("relateTradeType")
|
|
|
+ private String relateTradeType;
|
|
|
+ @JsonProperty("issueCompany")
|
|
|
+ private String issueCompany;
|
|
|
+ @JsonProperty("issueCompanyName")
|
|
|
+ private String issueCompanyName;
|
|
|
+ @JsonProperty("resourceType")
|
|
|
+ private String resourceType;
|
|
|
+ @JsonProperty("businessType")
|
|
|
+ private String businessType;
|
|
|
+ @JsonProperty("smsCheckFlag")
|
|
|
+ private String smsCheckFlag;
|
|
|
+ @JsonProperty("isTerror")
|
|
|
+ private String isTerror;
|
|
|
+ @JsonProperty("planCode")
|
|
|
+ private String planCode;
|
|
|
+ @JsonProperty("smsCodeFlag")
|
|
|
+ private String smsCodeFlag;
|
|
|
+ @JsonProperty("registerWay")
|
|
|
+ private String registerWay;
|
|
|
+ @JsonProperty("carmodel")
|
|
|
+ private String carmodel;
|
|
|
+ @JsonProperty("isCarReform")
|
|
|
+ private String isCarReform;
|
|
|
+ @JsonProperty("cashBusiness")
|
|
|
+ private String cashBusiness;
|
|
|
+ @JsonProperty("publicChanged")
|
|
|
+ private Boolean publicChanged;
|
|
|
+ @JsonProperty("biChanged")
|
|
|
+ private Boolean biChanged;
|
|
|
+ @JsonProperty("ciChanged")
|
|
|
+ private Boolean ciChanged;
|
|
|
+ @JsonProperty("carRegistFlag")
|
|
|
+ private String carRegistFlag;
|
|
|
+ @JsonProperty("biConfigAutoFlag")
|
|
|
+ private String biConfigAutoFlag;
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class SaleInfoDTO {
|
|
|
+ @JsonProperty("businessMode")
|
|
|
+ private String businessMode;
|
|
|
+ @JsonProperty("businessSource")
|
|
|
+ private String businessSource;
|
|
|
+ @JsonProperty("comCode")
|
|
|
+ private String comCode;
|
|
|
+ @JsonProperty("comName")
|
|
|
+ private String comName;
|
|
|
+ @JsonProperty("channelType")
|
|
|
+ private String channelType;
|
|
|
+ @JsonProperty("agreementNo")
|
|
|
+ private String agreementNo;
|
|
|
+ @JsonProperty("agreementNoName")
|
|
|
+ private String agreementNoName;
|
|
|
+ @JsonProperty("agentCode")
|
|
|
+ private String agentCode;
|
|
|
+ @JsonProperty("agentName")
|
|
|
+ private String agentName;
|
|
|
+ @JsonProperty("solutionCode")
|
|
|
+ private String solutionCode;
|
|
|
+ @JsonProperty("permitNo")
|
|
|
+ private String permitNo;
|
|
|
+ @JsonProperty("channelTypeDetail")
|
|
|
+ private String channelTypeDetail;
|
|
|
+ @JsonProperty("handlerCode")
|
|
|
+ private String handlerCode;
|
|
|
+ @JsonProperty("handlerName")
|
|
|
+ private String handlerName;
|
|
|
+ @JsonProperty("cooperateSiteCode")
|
|
|
+ private String cooperateSiteCode;
|
|
|
+ @JsonProperty("cooperateSiteName")
|
|
|
+ private String cooperateSiteName;
|
|
|
+ @JsonProperty("userCode")
|
|
|
+ private String userCode;
|
|
|
+ @JsonProperty("userName")
|
|
|
+ private String userName;
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class InsuredObjectDTO {
|
|
|
+ @JsonProperty("policyCar")
|
|
|
+ private PolicyCarDTO policyCar;
|
|
|
+
|
|
|
+ public InsuredObjectDTO(CarInfoVo carInfoVo, String actualValue, ChengTaiFindCarModelResponse.DataDTO carModel) {
|
|
|
+ this.policyCar = new PolicyCarDTO(carInfoVo, actualValue, carModel);
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class PolicyCarDTO {
|
|
|
+ @JsonProperty("vhlInfoType")
|
|
|
+ private String vhlInfoType;
|
|
|
+ @JsonProperty("plateNo")
|
|
|
+ private String plateNo;
|
|
|
+ @JsonProperty("vin")
|
|
|
+ private String vin;
|
|
|
+ @JsonProperty("engine")
|
|
|
+ private String engine;
|
|
|
+ @JsonProperty("noLicenseFlag")
|
|
|
+ private String noLicenseFlag;
|
|
|
+ @JsonProperty("brandName")
|
|
|
+ private String brandName;
|
|
|
+ @JsonProperty("modelCode")
|
|
|
+ private String modelCode;
|
|
|
+ @JsonProperty("printBrandName")
|
|
|
+ private String printBrandName;
|
|
|
+ @JsonProperty("registerDate")
|
|
|
+ private String registerDate;
|
|
|
+ @JsonProperty("issueDate")
|
|
|
+ private String issueDate;
|
|
|
+ @JsonProperty("enrollDate")
|
|
|
+ private String enrollDate;
|
|
|
+ @JsonProperty("transferMark")
|
|
|
+ private String transferMark;
|
|
|
+ @JsonProperty("carKindCode")
|
|
|
+ private String carKindCode;
|
|
|
+ @JsonProperty("carKindName")
|
|
|
+ private String carKindName;
|
|
|
+ @JsonProperty("useNatureCode")
|
|
|
+ private String useNatureCode;
|
|
|
+ @JsonProperty("useNatureName")
|
|
|
+ private String useNatureName;
|
|
|
+ @JsonProperty("attachNature")
|
|
|
+ private String attachNature;
|
|
|
+ @JsonProperty("attachNatureName")
|
|
|
+ private String attachNatureName;
|
|
|
+ @JsonProperty("purchasePrice")
|
|
|
+ private Integer purchasePrice;
|
|
|
+ @JsonProperty("orignPurchasePrice")
|
|
|
+ private Integer orignPurchasePrice;
|
|
|
+ @JsonProperty("actualValue")
|
|
|
+ private String actualValue;
|
|
|
+ @JsonProperty("consultValue")
|
|
|
+ private String consultValue;
|
|
|
+ @JsonProperty("plateType")
|
|
|
+ private String plateType;
|
|
|
+ @JsonProperty("plateTypeName")
|
|
|
+ private String plateTypeName;
|
|
|
+ @JsonProperty("vehicleType")
|
|
|
+ private String vehicleType;
|
|
|
+ @JsonProperty("vehicleTypeName")
|
|
|
+ private String vehicleTypeName;
|
|
|
+ @JsonProperty("energyTypes")
|
|
|
+ private String energyTypes;
|
|
|
+ @JsonProperty("carCheckStatus")
|
|
|
+ private String carCheckStatus;
|
|
|
+ @JsonProperty("carCheckerName")
|
|
|
+ private String carCheckerName;
|
|
|
+ @JsonProperty("carCheckTime")
|
|
|
+ private String carCheckTime;
|
|
|
+ @JsonProperty("approvedPassengersCapacity")
|
|
|
+ private Integer approvedPassengersCapacity;
|
|
|
+ @JsonProperty("approvedLoad")
|
|
|
+ private Integer approvedLoad;
|
|
|
+ @JsonProperty("power")
|
|
|
+ private String power;
|
|
|
+ @JsonProperty("displacement")
|
|
|
+ private Integer displacement;
|
|
|
+ @JsonProperty("exhaustScaleUnit")
|
|
|
+ private String exhaustScaleUnit;
|
|
|
+ @JsonProperty("loanVehicleFlag")
|
|
|
+ private String loanVehicleFlag;
|
|
|
+ @JsonProperty("ecdemicVehicleFlag")
|
|
|
+ private String ecdemicVehicleFlag;
|
|
|
+ @JsonProperty("deptCode")
|
|
|
+ private String deptCode;
|
|
|
+ @JsonProperty("deptName")
|
|
|
+ private String deptName;
|
|
|
+ @JsonProperty("useYears")
|
|
|
+ private String useYears;
|
|
|
+ @JsonProperty("seriesCode")
|
|
|
+ private String seriesCode;
|
|
|
+ @JsonProperty("series")
|
|
|
+ private String series;
|
|
|
+ @JsonProperty("seriesType")
|
|
|
+ private String seriesType;
|
|
|
+ @JsonProperty("brandCode")
|
|
|
+ private String brandCode;
|
|
|
+ @JsonProperty("brand")
|
|
|
+ private String brand;
|
|
|
+ @JsonProperty("shortHandCode")
|
|
|
+ private String shortHandCode;
|
|
|
+ @JsonProperty("vehicleKindCode")
|
|
|
+ private String vehicleKindCode;
|
|
|
+ @JsonProperty("carName")
|
|
|
+ private String carName;
|
|
|
+ @JsonProperty("monthDepRate")
|
|
|
+ private Double monthDepRate;
|
|
|
+ @JsonProperty("matchCiModelCode")
|
|
|
+ private String matchCiModelCode;
|
|
|
+ @JsonProperty("unladenMass")
|
|
|
+ private String unladenMass;
|
|
|
+ @JsonProperty("ciModelCode")
|
|
|
+ private String ciModelCode;
|
|
|
+ @JsonProperty("noticeType")
|
|
|
+ private String noticeType;
|
|
|
+ @JsonProperty("newCarSign")
|
|
|
+ private String newCarSign;
|
|
|
+ @JsonProperty("runArea")
|
|
|
+ private String runArea;
|
|
|
+ @JsonProperty("runAreaName")
|
|
|
+ private String runAreaName;
|
|
|
+ @JsonProperty("factoryName")
|
|
|
+ private String factoryName;
|
|
|
+ @JsonProperty("carTypeCode")
|
|
|
+ private String carTypeCode;
|
|
|
+ @JsonProperty("countryNature")
|
|
|
+ private String countryNature;
|
|
|
+ @JsonProperty("isEnergy")
|
|
|
+ private String isEnergy;
|
|
|
+ @JsonProperty("fraud")
|
|
|
+ private String fraud;
|
|
|
+ @JsonProperty("endorTransferMark")
|
|
|
+ private String endorTransferMark;
|
|
|
+ @JsonProperty("cimodelclass")
|
|
|
+ private String cimodelclass;
|
|
|
+
|
|
|
+ public PolicyCarDTO(CarInfoVo carInfoVo, String actualValue, ChengTaiFindCarModelResponse.DataDTO carModel) {
|
|
|
+ this.vhlInfoType = "1";
|
|
|
+ this.plateNo = carInfoVo.getLicenseNo();
|
|
|
+ this.vin = carInfoVo.getVinNo();
|
|
|
+ this.engine = carInfoVo.getEngineNo();
|
|
|
+ this.noLicenseFlag = "0";
|
|
|
+ this.brandName = carModel.getModelcname();
|
|
|
+ this.modelCode = carModel.getModelcode();
|
|
|
+ this.printBrandName = carModel.getModelcname();
|
|
|
+ this.registerDate = carInfoVo.getRegisterDate();
|
|
|
+ this.issueDate = carInfoVo.getIssueDate();
|
|
|
+ this.enrollDate = carInfoVo.getRegisterDate();
|
|
|
+ this.transferMark = carInfoVo.isTransfer() ? "1" : "0";
|
|
|
+ this.carKindCode = carInfoVo.getCarKindCode();
|
|
|
+ this.carKindName = carInfoVo.getCarKindName();
|
|
|
+ this.useNatureCode = carInfoVo.getVehicleUseCode();
|
|
|
+ this.useNatureName = carInfoVo.getVehicleUseName();
|
|
|
+ this.attachNature = carInfoVo.getProperty();
|
|
|
+ this.attachNatureName = carInfoVo.getPropertyName();
|
|
|
+ this.purchasePrice = Integer.valueOf(carModel.getPurchasepricenottax());
|
|
|
+ this.orignPurchasePrice = Integer.valueOf(carModel.getPurchasepricenottax());
|
|
|
+ this.actualValue = actualValue;
|
|
|
+ this.consultValue = actualValue;
|
|
|
+ this.plateType = carInfoVo.getLicenseColorCode();
|
|
|
+ this.plateTypeName = carInfoVo.getLicenseColorName();
|
|
|
+ this.vehicleType = carInfoVo.getCarTypeCode();
|
|
|
+ this.vehicleTypeName = carInfoVo.getCarTypeName();
|
|
|
+ this.energyTypes = carInfoVo.getEnergyTypeCode();
|
|
|
+
|
|
|
+ this.carCheckStatus = carCheckStatus;
|
|
|
+ this.carCheckerName = carCheckerName;
|
|
|
+ this.carCheckTime = carCheckTime;
|
|
|
+ this.approvedPassengersCapacity = Integer.valueOf(carInfoVo.getSeatCount());
|
|
|
+ this.approvedLoad = approvedLoad;
|
|
|
+ this.power = carModel.getPower();
|
|
|
+ this.displacement = Integer.valueOf(carModel.getExhaustscale());
|
|
|
+ this.exhaustScaleUnit = "cc";
|
|
|
+ this.loanVehicleFlag = "0";
|
|
|
+ this.ecdemicVehicleFlag = "0";
|
|
|
+ this.deptCode = "";
|
|
|
+ this.deptName = deptName;
|
|
|
+ this.useYears = useYears;
|
|
|
+ this.seriesCode = seriesCode;
|
|
|
+ this.series = series;
|
|
|
+ this.seriesType = seriesType;
|
|
|
+ this.brandCode = brandCode;
|
|
|
+ this.brand = brand;
|
|
|
+ this.shortHandCode = shortHandCode;
|
|
|
+ this.vehicleKindCode = vehicleKindCode;
|
|
|
+ this.carName = carName;
|
|
|
+ this.monthDepRate = monthDepRate;
|
|
|
+ this.matchCiModelCode = matchCiModelCode;
|
|
|
+ this.unladenMass = unladenMass;
|
|
|
+ this.ciModelCode = ciModelCode;
|
|
|
+ this.noticeType = carModel.getVehiclemodel();
|
|
|
+ this.newCarSign = "0";
|
|
|
+ this.runArea = "02";
|
|
|
+ this.runAreaName = "境内";
|
|
|
+ this.factoryName = "其他";
|
|
|
+ this.carTypeCode = "01";
|
|
|
+ this.countryNature = "0";
|
|
|
+ this.isEnergy = "0";
|
|
|
+ this.fraud = "0";
|
|
|
+ this.endorTransferMark = endorTransferMark;
|
|
|
+ this.cimodelclass = carModel.getCimodelclass();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class PersonnelDTO {
|
|
|
+ @JsonProperty("type")
|
|
|
+ private String type;
|
|
|
+ @JsonProperty("role")
|
|
|
+ private String role;
|
|
|
+ @JsonProperty("isTerror")
|
|
|
+ private String isTerror;
|
|
|
+ @JsonProperty("customerId")
|
|
|
+ private String customerId;
|
|
|
+ @JsonProperty("name")
|
|
|
+ private String name;
|
|
|
+ @JsonProperty("identifyTypeCode")
|
|
|
+ private String identifyTypeCode;
|
|
|
+ @JsonProperty("identifyTypeName")
|
|
|
+ private String identifyTypeName;
|
|
|
+ @JsonProperty("identifyNumber")
|
|
|
+ private String identifyNumber;
|
|
|
+ @JsonProperty("province")
|
|
|
+ private String province;
|
|
|
+ @JsonProperty("city")
|
|
|
+ private String city;
|
|
|
+ @JsonProperty("district")
|
|
|
+ private String district;
|
|
|
+ @JsonProperty("provinceName")
|
|
|
+ private String provinceName;
|
|
|
+ @JsonProperty("cityName")
|
|
|
+ private String cityName;
|
|
|
+ @JsonProperty("districtName")
|
|
|
+ private String districtName;
|
|
|
+ @JsonProperty("addr")
|
|
|
+ private String addr;
|
|
|
+ @JsonProperty("completeAddress")
|
|
|
+ private String completeAddress;
|
|
|
+ @JsonProperty("mobile")
|
|
|
+ private String mobile;
|
|
|
+ @JsonProperty("specialClient")
|
|
|
+ private String specialClient;
|
|
|
+ @JsonProperty("identifyValidDate")
|
|
|
+ private String identifyValidDate;
|
|
|
+ @JsonProperty("identifyValidEndDate")
|
|
|
+ private String identifyValidEndDate;
|
|
|
+ @JsonProperty("sex")
|
|
|
+ private String sex;
|
|
|
+ @JsonProperty("birthday")
|
|
|
+ private String birthday;
|
|
|
+ @JsonProperty("email")
|
|
|
+ private String email;
|
|
|
+ @JsonProperty("operateFlag")
|
|
|
+ private String operateFlag;
|
|
|
+ @JsonProperty("longTerm")
|
|
|
+ private String longTerm;
|
|
|
+ @JsonProperty("terrorNationality")
|
|
|
+ private String terrorNationality;
|
|
|
+ @JsonProperty("terrorNationalityName")
|
|
|
+ private String terrorNationalityName;
|
|
|
+ @JsonProperty("isPolitics")
|
|
|
+ private String isPolitics;
|
|
|
+ @JsonProperty("individualBusinessInd")
|
|
|
+ private String individualBusinessInd;
|
|
|
+ @JsonProperty("microBusinessesInd")
|
|
|
+ private String microBusinessesInd;
|
|
|
+ @JsonProperty("signedbyOrig")
|
|
|
+ private String signedbyOrig;
|
|
|
+ @JsonProperty("comCode")
|
|
|
+ private String comCode;
|
|
|
+
|
|
|
+ public PersonnelDTO(ChengTaiClientIdentifyResponse policyHolder) {
|
|
|
+ this.type = policyHolder.getType();
|
|
|
+ this.role = policyHolder.getRole();
|
|
|
+ this.isTerror = policyHolder.getIsTerror();
|
|
|
+ this.customerId = policyHolder.getCustomerId();
|
|
|
+ this.name = policyHolder.getName();
|
|
|
+ this.identifyTypeCode = policyHolder.getIdentifyTypeCode();
|
|
|
+ this.identifyTypeName = policyHolder.getIdentifyTypeName();
|
|
|
+ this.identifyNumber = policyHolder.getIdentifyNumber();
|
|
|
+ this.province = policyHolder.getProvince();
|
|
|
+ this.city = policyHolder.getCity();
|
|
|
+ this.district = policyHolder.getDistrict();
|
|
|
+ this.provinceName = policyHolder.getProvinceName();
|
|
|
+ this.cityName = policyHolder.getCityName();
|
|
|
+ this.districtName = policyHolder.getDistrictName();
|
|
|
+ this.addr = policyHolder.getAddr();
|
|
|
+ this.completeAddress = policyHolder.getCompleteAddress();
|
|
|
+ this.mobile = policyHolder.getMobile();
|
|
|
+ this.specialClient = policyHolder.getSpecialClient();
|
|
|
+ this.identifyValidDate = policyHolder.getIdentifyValidDate();
|
|
|
+ this.identifyValidEndDate = policyHolder.getIdentifyValidEndDate();
|
|
|
+ this.sex = policyHolder.getSex();
|
|
|
+ this.birthday = policyHolder.getBirthday();
|
|
|
+ this.email = policyHolder.getEmail();
|
|
|
+ this.operateFlag = "Q";
|
|
|
+ this.longTerm = policyHolder.getLongTerm();
|
|
|
+ this.terrorNationality = policyHolder.getTerrorNationality();
|
|
|
+ this.terrorNationalityName = policyHolder.getTerrorNationalityName();
|
|
|
+ this.isPolitics = policyHolder.getIsPolitics();
|
|
|
+ this.individualBusinessInd = policyHolder.getIndividualBusinessInd();
|
|
|
+ this.microBusinessesInd = policyHolder.getMicroBusinessesInd();
|
|
|
+ this.signedbyOrig = "0";
|
|
|
+ this.comCode = policyHolder.getComCode();
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class OwnerDTO {
|
|
|
+ @JsonProperty("type")
|
|
|
+ private String type;
|
|
|
+ @JsonProperty("role")
|
|
|
+ private String role;
|
|
|
+ @JsonProperty("name")
|
|
|
+ private String name;
|
|
|
+ @JsonProperty("identifyTypeCode")
|
|
|
+ private String identifyTypeCode;
|
|
|
+ @JsonProperty("identifyTypeName")
|
|
|
+ private String identifyTypeName;
|
|
|
+ @JsonProperty("identifyNumber")
|
|
|
+ private String identifyNumber;
|
|
|
+ @JsonProperty("sex")
|
|
|
+ private String sex;
|
|
|
+ @JsonProperty("age")
|
|
|
+ private Integer age;
|
|
|
+ @JsonProperty("birthday")
|
|
|
+ private String birthday;
|
|
|
+ @JsonProperty("identifyValidDate")
|
|
|
+ private String identifyValidDate;
|
|
|
+ @JsonProperty("identifyValidEndDate")
|
|
|
+ private String identifyValidEndDate;
|
|
|
+ @JsonProperty("longTerm")
|
|
|
+ private String longTerm;
|
|
|
+
|
|
|
+ public OwnerDTO(CustomerInfoVo ownersInfo) {
|
|
|
+ this.type = "1";
|
|
|
+ this.role = "3";
|
|
|
+ this.name = ownersInfo.getName();
|
|
|
+ this.identifyTypeCode = ownersInfo.getIdentifyType();
|
|
|
+ this.identifyTypeName = ownersInfo.getIdentifyTypeName();
|
|
|
+ this.identifyNumber = ownersInfo.getIdentifyNumber();
|
|
|
+ this.sex = ownersInfo.getGender();
|
|
|
+ this.age = ownersInfo.getAge();
|
|
|
+ this.birthday = ownersInfo.getBirthday();
|
|
|
+ this.identifyValidDate = ownersInfo.getIdentifyValidDate();
|
|
|
+ this.identifyValidEndDate = ownersInfo.getIdentifyValidEndDate();
|
|
|
+ this.longTerm = "0";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class BiContractDTO {
|
|
|
+ @JsonProperty("contractMain")
|
|
|
+ private ContractMainDTO contractMain;
|
|
|
+ @JsonProperty("coverage")
|
|
|
+ private List<CoverageDTO> coverage;
|
|
|
+
|
|
|
+ public BiContractDTO(RiskInfoVo biRiskInfoVo, List<KindInfoVo> kindInfoVo) {
|
|
|
+ this.contractMain = new ContractMainDTO(biRiskInfoVo);
|
|
|
+ this.coverage = kindInfoVo.stream().map(CoverageDTO::new).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class ContractMainDTO {
|
|
|
+ @JsonProperty("riskCode")
|
|
|
+ private String riskCode;
|
|
|
+ @JsonProperty("riskName")
|
|
|
+ private String riskName;
|
|
|
+ @JsonProperty("validAtOnce")
|
|
|
+ private String validAtOnce;
|
|
|
+ @JsonProperty("validDate")
|
|
|
+ private String validDate;
|
|
|
+ @JsonProperty("expiryDate")
|
|
|
+ private String expiryDate;
|
|
|
+ @JsonProperty("renewalFlag")
|
|
|
+ private String renewalFlag;
|
|
|
+ @JsonProperty("currency")
|
|
|
+ private String currency;
|
|
|
+ @JsonProperty("underWriteInd")
|
|
|
+ private String underWriteInd;
|
|
|
+
|
|
|
+
|
|
|
+ public ContractMainDTO(RiskInfoVo biRiskInfoVo) {
|
|
|
+ this.riskCode = riskCode;
|
|
|
+ this.riskName = riskName;
|
|
|
+ this.validAtOnce = validAtOnce;
|
|
|
+ this.validDate = validDate;
|
|
|
+ this.expiryDate = expiryDate;
|
|
|
+ this.renewalFlag = renewalFlag;
|
|
|
+ this.currency = currency;
|
|
|
+ this.underWriteInd = underWriteInd;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class CoverageDTO {
|
|
|
+ @JsonProperty("amount")
|
|
|
+ private Integer amount;
|
|
|
+ @JsonProperty("basePremium")
|
|
|
+ private String basePremium;
|
|
|
+ @JsonProperty("coveragePremium")
|
|
|
+ private String coveragePremium;
|
|
|
+ @JsonProperty("calculateFlag")
|
|
|
+ private String calculateFlag;
|
|
|
+ @JsonProperty("ifMainKind")
|
|
|
+ private String ifMainKind;
|
|
|
+ @JsonProperty("kindCode")
|
|
|
+ private String kindCode;
|
|
|
+ @JsonProperty("kindFlag")
|
|
|
+ private Boolean kindFlag;
|
|
|
+ @JsonProperty("kindName")
|
|
|
+ private String kindName;
|
|
|
+ @JsonProperty("notDeductibleCalculateFlag")
|
|
|
+ private String notDeductibleCalculateFlag;
|
|
|
+ @JsonProperty("notDeductibleIfMainKind")
|
|
|
+ private String notDeductibleIfMainKind;
|
|
|
+ @JsonProperty("notDeductibleKindFlag")
|
|
|
+ private Boolean notDeductibleKindFlag;
|
|
|
+ @JsonProperty("relatedInd")
|
|
|
+ private String relatedInd;
|
|
|
+ @JsonProperty("validDate")
|
|
|
+ private String validDate;
|
|
|
+ @JsonProperty("expiryDate")
|
|
|
+ private String expiryDate;
|
|
|
+ @JsonProperty("currency")
|
|
|
+ private String currency;
|
|
|
+ @JsonProperty("shortRate")
|
|
|
+ private Integer shortRate;
|
|
|
+ @JsonProperty("shortRateType")
|
|
|
+ private String shortRateType;
|
|
|
+ @JsonProperty("quantity")
|
|
|
+ private String quantity;
|
|
|
+ @JsonProperty("unitAmount")
|
|
|
+ private String unitAmount;
|
|
|
+ @JsonProperty("show")
|
|
|
+ private Boolean show;
|
|
|
+
|
|
|
+ public CoverageDTO(KindInfoVo kindInfoVo) {
|
|
|
+ this.amount = amount;
|
|
|
+ this.basePremium = basePremium;
|
|
|
+ this.coveragePremium = coveragePremium;
|
|
|
+ this.calculateFlag = calculateFlag;
|
|
|
+ this.ifMainKind = ifMainKind;
|
|
|
+ this.kindCode = kindCode;
|
|
|
+ this.kindFlag = kindFlag;
|
|
|
+ this.kindName = kindName;
|
|
|
+ this.notDeductibleCalculateFlag = notDeductibleCalculateFlag;
|
|
|
+ this.notDeductibleIfMainKind = notDeductibleIfMainKind;
|
|
|
+ this.notDeductibleKindFlag = notDeductibleKindFlag;
|
|
|
+ this.relatedInd = relatedInd;
|
|
|
+ this.validDate = validDate;
|
|
|
+ this.expiryDate = expiryDate;
|
|
|
+ this.currency = currency;
|
|
|
+ this.shortRate = shortRate;
|
|
|
+ this.shortRateType = shortRateType;
|
|
|
+ this.quantity = quantity;
|
|
|
+ this.unitAmount = unitAmount;
|
|
|
+ this.show = show;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class CiContractDTO {
|
|
|
+ @JsonProperty("contractMain")
|
|
|
+ private ContractMainDTO contractMain;
|
|
|
+ @JsonProperty("coverage")
|
|
|
+ private List<CoverageDTO> coverage;
|
|
|
+ @JsonProperty("tax")
|
|
|
+ private TaxDTO tax;
|
|
|
+
|
|
|
+ public CiContractDTO(RiskInfoVo ciRiskInfoVo, ChengTaiClientIdentifyResponse policyHolder) {
|
|
|
+ this.contractMain = new ContractMainDTO(ciRiskInfoVo.getStartDate(), ciRiskInfoVo.getEndDate());
|
|
|
+ this.coverage = CoverageDTO.getCoverage(ciRiskInfoVo.getStartDate(), ciRiskInfoVo.getEndDate());
|
|
|
+ this.tax = new TaxDTO(policyHolder);
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class ContractMainDTO {
|
|
|
+ @JsonProperty("riskCode")
|
|
|
+ private String riskCode;
|
|
|
+ @JsonProperty("riskName")
|
|
|
+ private String riskName;
|
|
|
+ @JsonProperty("validAtOnce")
|
|
|
+ private String validAtOnce;
|
|
|
+ @JsonProperty("validDate")
|
|
|
+ private String validDate;
|
|
|
+ @JsonProperty("expiryDate")
|
|
|
+ private String expiryDate;
|
|
|
+ @JsonProperty("renewalFlag")
|
|
|
+ private String renewalFlag;
|
|
|
+ @JsonProperty("currency")
|
|
|
+ private String currency;
|
|
|
+ @JsonProperty("sumAmount")
|
|
|
+ private String sumAmount;
|
|
|
+ @JsonProperty("underWriteInd")
|
|
|
+ private String underWriteInd;
|
|
|
+
|
|
|
+ public ContractMainDTO(String startDate, String endDate) {
|
|
|
+ this.riskCode = "1002";
|
|
|
+ this.riskName = "交强险";
|
|
|
+ this.validAtOnce = "0";
|
|
|
+ this.validDate = startDate;
|
|
|
+ this.expiryDate = endDate;
|
|
|
+ this.renewalFlag = "-1";
|
|
|
+ this.currency = "CNY";
|
|
|
+ this.sumAmount = "200000";
|
|
|
+ this.underWriteInd = "z1";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class TaxDTO {
|
|
|
+ @JsonProperty("taxConditionCode")
|
|
|
+ private String taxConditionCode;
|
|
|
+ @JsonProperty("taxStartDate")
|
|
|
+ private String taxStartDate;
|
|
|
+ @JsonProperty("taxEndDate")
|
|
|
+ private String taxEndDate;
|
|
|
+ @JsonProperty("calculateMode")
|
|
|
+ private String calculateMode;
|
|
|
+ @JsonProperty("taxPayerIdentityType")
|
|
|
+ private String taxPayerIdentityType;
|
|
|
+ @JsonProperty("taxPayerIdentityNo")
|
|
|
+ private String taxPayerIdentityNo;
|
|
|
+ @JsonProperty("taxPayerIdentificationCode")
|
|
|
+ private String taxPayerIdentificationCode;
|
|
|
+ @JsonProperty("taxPayerName")
|
|
|
+ private String taxPayerName;
|
|
|
+ @JsonProperty("lastPaidYear")
|
|
|
+ private Integer lastPaidYear;
|
|
|
+ @JsonProperty("unladenMass")
|
|
|
+ private String unladenMass;
|
|
|
+
|
|
|
+ public TaxDTO(ChengTaiClientIdentifyResponse policyHolder) {
|
|
|
+ this.taxConditionCode = "1N";
|
|
|
+ this.taxStartDate = taxStartDate;
|
|
|
+ this.taxEndDate = taxEndDate;
|
|
|
+ this.calculateMode = "1";
|
|
|
+ this.taxPayerIdentityType = taxPayerIdentityType;
|
|
|
+ this.taxPayerIdentityNo = taxPayerIdentityNo;
|
|
|
+ this.taxPayerIdentificationCode = taxPayerIdentificationCode;
|
|
|
+ this.taxPayerName = taxPayerName;
|
|
|
+ this.lastPaidYear = lastPaidYear;
|
|
|
+ this.unladenMass = unladenMass;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class CoverageDTO {
|
|
|
+ @JsonProperty("rate")
|
|
|
+ private Integer rate;
|
|
|
+ @JsonProperty("amount")
|
|
|
+ private String amount;
|
|
|
+ @JsonProperty("calculateFlag")
|
|
|
+ private String calculateFlag;
|
|
|
+ @JsonProperty("currency")
|
|
|
+ private String currency;
|
|
|
+ @JsonProperty("validDate")
|
|
|
+ private String validDate;
|
|
|
+ @JsonProperty("expiryDate")
|
|
|
+ private String expiryDate;
|
|
|
+ @JsonProperty("ifMainKind")
|
|
|
+ private String ifMainKind;
|
|
|
+ @JsonProperty("kindCode")
|
|
|
+ private String kindCode;
|
|
|
+ @JsonProperty("kindName")
|
|
|
+ private String kindName;
|
|
|
+ @JsonProperty("shortRate")
|
|
|
+ private Integer shortRate;
|
|
|
+ @JsonProperty("shortRateType")
|
|
|
+ private String shortRateType;
|
|
|
+
|
|
|
+ public static List<CoverageDTO> getCoverage(String startDate, String endDate) {
|
|
|
+ CoverageDTO coverageDTO = new CoverageDTO();
|
|
|
+ coverageDTO.setRate(0);
|
|
|
+ coverageDTO.setAmount("200000");
|
|
|
+ coverageDTO.setCalculateFlag("1");
|
|
|
+ coverageDTO.setCurrency("CNY");
|
|
|
+ coverageDTO.setValidDate(startDate);
|
|
|
+ coverageDTO.setExpiryDate(endDate);
|
|
|
+ coverageDTO.setIfMainKind("1");
|
|
|
+ coverageDTO.setKindCode("BZ");
|
|
|
+ coverageDTO.setKindName("机动车交通事故责任强制保险");
|
|
|
+ coverageDTO.setShortRate(100);
|
|
|
+ coverageDTO.setShortRateType("2");
|
|
|
+ return List.of(coverageDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class AccidentMainDTO {
|
|
|
+ @JsonProperty("id")
|
|
|
+ private String id;
|
|
|
+ @JsonProperty("planCode")
|
|
|
+ private String planCode;
|
|
|
+ @JsonProperty("comCode")
|
|
|
+ private String comCode;
|
|
|
+ @JsonProperty("totalPremium")
|
|
|
+ private Integer totalPremium;
|
|
|
+ @JsonProperty("coverages")
|
|
|
+ private List<CoveragesDTO> coverages;
|
|
|
+ @JsonProperty("validDate")
|
|
|
+ private String validDate;
|
|
|
+ @JsonProperty("expiryDate")
|
|
|
+ private String expiryDate;
|
|
|
+ @JsonProperty("insuredAmount")
|
|
|
+ private Integer insuredAmount;
|
|
|
+ @JsonProperty("createTime")
|
|
|
+ private String createTime;
|
|
|
+ @JsonProperty("riskCode")
|
|
|
+ private String riskCode;
|
|
|
+ @JsonProperty("amount")
|
|
|
+ private Integer amount;
|
|
|
+ @JsonProperty("name")
|
|
|
+ private String name;
|
|
|
+ @JsonProperty("detail")
|
|
|
+ private String detail;
|
|
|
+ @JsonProperty("seat")
|
|
|
+ private String seat;
|
|
|
+ @JsonProperty("feePercent")
|
|
|
+ private Integer feePercent;
|
|
|
+ @JsonProperty("assumpsit")
|
|
|
+ private String assumpsit;
|
|
|
+ @JsonProperty("carKindCode")
|
|
|
+ private String carKindCode;
|
|
|
+ @JsonProperty("useNatureCode")
|
|
|
+ private String useNatureCode;
|
|
|
+ @JsonProperty("type")
|
|
|
+ private String type;
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class CoveragesDTO {
|
|
|
+ @JsonProperty("id")
|
|
|
+ private String id;
|
|
|
+ @JsonProperty("createTime")
|
|
|
+ private String createTime;
|
|
|
+ @JsonProperty("liabilityCode")
|
|
|
+ private String liabilityCode;
|
|
|
+ @JsonProperty("amount")
|
|
|
+ private Integer amount;
|
|
|
+ @JsonProperty("premium")
|
|
|
+ private Integer premium;
|
|
|
+ @JsonProperty("totalPremium")
|
|
|
+ private Integer totalPremium;
|
|
|
+ @JsonProperty("name")
|
|
|
+ private String name;
|
|
|
+ @JsonProperty("productId")
|
|
|
+ private String productId;
|
|
|
+ @JsonProperty("productCode")
|
|
|
+ private String productCode;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class AccContractDTO {
|
|
|
+ @JsonProperty("contractMain")
|
|
|
+ private ContractMainDTO contractMain;
|
|
|
+ @JsonProperty("coverage")
|
|
|
+ private List<CoverageDTO> coverage;
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class ContractMainDTO {
|
|
|
+ @JsonProperty("schemeName")
|
|
|
+ private String schemeName;
|
|
|
+ @JsonProperty("riskCode")
|
|
|
+ private String riskCode;
|
|
|
+ @JsonProperty("validDate")
|
|
|
+ private String validDate;
|
|
|
+ @JsonProperty("expiryDate")
|
|
|
+ private String expiryDate;
|
|
|
+ @JsonProperty("totalPremium")
|
|
|
+ private Integer totalPremium;
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class CoverageDTO {
|
|
|
+ @JsonProperty("kindCode")
|
|
|
+ private String kindCode;
|
|
|
+ @JsonProperty("kindName")
|
|
|
+ private String kindName;
|
|
|
+ @JsonProperty("validDate")
|
|
|
+ private String validDate;
|
|
|
+ @JsonProperty("expiryDate")
|
|
|
+ private String expiryDate;
|
|
|
+ @JsonProperty("amount")
|
|
|
+ private Integer amount;
|
|
|
+ @JsonProperty("coveragePremium")
|
|
|
+ private Integer coveragePremium;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class SubmitReqBodyDTO {
|
|
|
+ @JsonProperty("businessType")
|
|
|
+ private String businessType;
|
|
|
+ @JsonProperty("mandatoryReviewFlag")
|
|
|
+ private Boolean mandatoryReviewFlag;
|
|
|
+ @JsonProperty("reinsuranceFlag")
|
|
|
+ private String reinsuranceFlag;
|
|
|
+ @JsonProperty("acciRelatedFlag")
|
|
|
+ private String acciRelatedFlag;
|
|
|
+ }
|
|
|
+
|
|
|
+ @NoArgsConstructor
|
|
|
+ @Data
|
|
|
+ public static class AcciSaleInfoDTO {
|
|
|
+ @JsonProperty("comCode")
|
|
|
+ private String comCode;
|
|
|
+ @JsonProperty("comName")
|
|
|
+ private String comName;
|
|
|
+ @JsonProperty("handlerCode")
|
|
|
+ private String handlerCode;
|
|
|
+ @JsonProperty("handlerName")
|
|
|
+ private String handlerName;
|
|
|
+ @JsonProperty("agreementNo")
|
|
|
+ private String agreementNo;
|
|
|
+ @JsonProperty("agentCode")
|
|
|
+ private String agentCode;
|
|
|
+ @JsonProperty("agentName")
|
|
|
+ private String agentName;
|
|
|
+ @JsonProperty("solutionCode")
|
|
|
+ private String solutionCode;
|
|
|
+ @JsonProperty("permitNo")
|
|
|
+ private String permitNo;
|
|
|
+ @JsonProperty("businessMode")
|
|
|
+ private String businessMode;
|
|
|
+ @JsonProperty("businessSource")
|
|
|
+ private String businessSource;
|
|
|
+ @JsonProperty("channelType")
|
|
|
+ private String channelType;
|
|
|
+ @JsonProperty("channelTypeDetail")
|
|
|
+ private String channelTypeDetail;
|
|
|
+ @JsonProperty("cooperateSiteCode")
|
|
|
+ private String cooperateSiteCode;
|
|
|
+ @JsonProperty("cooperateSiteName")
|
|
|
+ private String cooperateSiteName;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|