浏览代码

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

785834757 1 年之前
父节点
当前提交
860bc901f4

+ 1 - 1
src/main/java/com/ydtech/modules/ins/model/yc/audit/response/AuditResponse.java

@@ -107,7 +107,7 @@ public class AuditResponse {
     }
 
     /**
-     * 交强提示信息(sailResponseMessagedate)
+     * 交强提示信息(sailReysponseMessagedate)
      *
      * @author: lig
      * @date: 2023年02月16日 0016

+ 112 - 44
src/main/java/com/ydtech/modules/order/entity/api/huatai/request/HuaTaiQuotedPriceRequest.java

@@ -33,6 +33,8 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @Author: CXP
@@ -284,21 +286,22 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
                 //CY	参见车身颜色代码
                 @JSONField(name = "ColorCode")
                 private String colorCode;
-                //CY	验车状态代码(1-未验车;2-免验车;4-已验车)
-                @JSONField(name = "CarCheckStatus")
-                private String carCheckStatus;
-                //CY	验车人(已验车必录)
-                @JSONField(name = "CarChecker")
-                private String carChecker;
-                //CY	验车时间(已验车必录)(格式:YYYY-MM-DD HH24:MI:SS)
-                @JSONField(name = "CarCheckTime")
-                private String carCheckTime;
-                //CY	验车记录(已验车必录)
-                @JSONField(name = "CarCheckRecord")
-                private String carCheckRecord;
-                //CY	车况(0-好;1-中;2-差)
-                @JSONField(name = "VehicleCondition")
-                private String vehicleCondition;
+                // 5.0.0版本 删除字段
+//                //CY	验车状态代码(1-未验车;2-免验车;4-已验车)
+//                @JSONField(name = "CarCheckStatus")
+//                private String carCheckStatus;
+//                //CY	验车人(已验车必录)
+//                @JSONField(name = "CarChecker")
+//                private String carChecker;
+//                //CY	验车时间(已验车必录)(格式:YYYY-MM-DD HH24:MI:SS)
+//                @JSONField(name = "CarCheckTime")
+//                private String carCheckTime;
+//                //CY	验车记录(已验车必录)
+//                @JSONField(name = "CarCheckRecord")
+//                private String carCheckRecord;
+//                //CY	车况(0-好;1-中;2-差)
+//                @JSONField(name = "VehicleCondition")
+//                private String vehicleCondition;
                 //Y	参见交管车辆类型代码
                 @JSONField(name = "VehicleType")
                 private String vehicleType;
@@ -354,12 +357,62 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
                     this.plateType = "02";
                     this.property = "04";
                     this.colorCode = null;
-                    this.carCheckStatus = "2";
-                    this.vehicleCondition = "0";
+//                    this.carCheckStatus = "2";
+//                    this.vehicleCondition = "0";
                     this.vehicleType = carInfoVo.getCartype();
                     this.registModelCode = fullCarDataDto.getModelName();
                     this.plateColorCode = "01";
                 }
+
+
+
+                public PolicyCarDto(CarInfoVo carInfoVo) {
+                    this.approvedPassengersCapacity = Integer.parseInt(carInfoVo.getSeatCount());
+                    this.displacement = Double.parseDouble(carInfoVo.getEnginedesc());
+//                    this.displacement = fullCarDataDto.getDisplacement();
+                    this.plateNo = carInfoVo.getLicenseNo();
+                    this.registerDate = carInfoVo.getRegisterDate() + " " + TimeConstants.START_TIME;
+                    this.issueDate = carInfoVo.getIssueDate() + " " + TimeConstants.START_TIME;
+                    this.purchasePrice = String.valueOf(carInfoVo.getPurchasePrice());
+                    this.hKFlag = false;
+                    this.engine = carInfoVo.getEngineNo();
+                    this.ecdemicVehicleFlag = false;
+                    if (carInfoVo.isTransferFlag()) {
+                        this.specialCarFlag = "1";
+                        this.transferDate = carInfoVo.getTransferDate() + " " + TimeConstants.START_TIME;
+                    } else {
+                        this.specialCarFlag = "";
+                    }
+                    this.Power = carInfoVo.getPowerScale();
+                    if (carInfoVo.isTransferFlagBi()) {
+                        this.chgOwnerFlag = "1";
+                        this.transferDate = carInfoVo.getTransferDate() + " " + TimeConstants.START_TIME;
+                    } else {
+                        this.chgOwnerFlag = "0";
+                    }
+
+                    this.vin = carInfoVo.getFrameNo();
+                    this.loanStatus = "0";
+                    this.modelName = carInfoVo.getModelcname();
+                    this.unladenMass = carInfoVo.getCompleteKerbMass();
+                    this.FullType = carInfoVo.getEnergyType();
+
+                    MotorUsageTypeCode usageTypeCode = Enum.valueOf(MotorUsageTypeCode.class,
+                            MotorUsageTypeCode.TITLE + carInfoVo.getVehicleUse());
+                    this.motorUsageTypeCode = usageTypeCode.getCode();
+
+                    MotorTypeCode motorTypeCode1 = Enum.valueOf(MotorTypeCode.class, MotorTypeCode.TITLE + carInfoVo.getCimodelclass());
+                    this.motorTypeCode = motorTypeCode1.getCode();
+
+                    this.plateType = "02";
+                    this.property = "04";
+                    this.colorCode = null;
+//                    this.carCheckStatus = "2";
+//                    this.vehicleCondition = "0";
+                    this.vehicleType = carInfoVo.getCartype();
+                    this.registModelCode = carInfoVo.getModelCode();
+                    this.plateColorCode = "01";
+                }
             }
 
             @NoArgsConstructor
@@ -389,6 +442,13 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
                     this.localModelCode = fullCarDataDto.getLocalModelCode();
                     this.energyTypes = fullCarDataDto.getEnergyTypes();
                 }
+
+                public SimpleStadarCarDto(CarInfoVo carInfoVo) {
+                    this.modelCode = carInfoVo.getModelCode();
+                    this.approvedPassengersCapacity = Integer.parseInt(carInfoVo.getSeatCount());
+                    this.localModelCode = carInfoVo.getModelCode();
+                    this.energyTypes = carInfoVo.getEnergyType();
+                }
             }
 
         }
@@ -482,9 +542,11 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
             //Y	终保日期(格式:YYYY-MM-DD HH24:MI:SS)
             @JSONField(name = "expiryDate")
             private String expiryDate;
+
+            // 5.0.0 版本 删除字段
             //Y	生成日期(格式:YYYY-MM-DD HH24:MI:SS)
-            @JSONField(name = "productionDate")
-            private String productionDate;
+//            @JSONField(name = "productionDate")
+//            private String productionDate;
 
             public ContractMainDto(RiskInfoVo riskInfoVo, HuaTaiConfigureParameters huaTaiConfigureParameters,
                                    HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto fullCarDataDto) {
@@ -510,7 +572,7 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
                     this.expiryDate = expiryDateTime.format(formatter);
                 }
 
-                this.productionDate = df.format(new Date());
+//                this.productionDate = df.format(new Date());
             }
         }
 
@@ -530,9 +592,11 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
             //Y	参见险别代码
             @JSONField(name = "kindCode")
             private String kindCode;
+
+            //5.0.0 版本删除字段
             //Y	险别名称(传值要求参见险别代码)
-            @JSONField(name = "kindName")
-            private String kindName;
+//            @JSONField(name = "kindName")
+//            private String kindName;
             //CY	单位保额(传值要求参见险别代码)
             @JSONField(name = "unitAmount")
             private String unitAmount;
@@ -566,7 +630,7 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
                     String s = InsuranceTypeCorrespondence.getHuaTaiConnectInsuranceType()[i];
                     ContractEnum contractEnum = Enum.valueOf(ContractEnum.class, "H_" + s);
                     coverageDto.kindCode = contractEnum.getKindCode();
-                    coverageDto.kindName = contractEnum.getKindName();
+//                    coverageDto.kindName = contractEnum.getKindName();
                     coverageDto.amount = (int) kindInfoVo.getAmount();
                     coverageDto.validDate = contractMain.getValidDate();
                     coverageDto.expiryDate = contractMain.getExpiryDate();
@@ -607,7 +671,7 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
              */
             public CoverageDto fetchTraffic(ContractMainDto contractMain) {
                 this.amount = 200000;
-                this.kindName = ContractEnum.H_BZ.getKindName();
+//                this.kindName = ContractEnum.H_BZ.getKindName();
                 this.kindCode = ContractEnum.H_BZ.getKindCode();
                 this.validDate = contractMain.getValidDate();
                 this.expiryDate = contractMain.getExpiryDate();
@@ -659,18 +723,19 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
             //CY	减税/免税/完税凭证号(减税、免税、完税必传)
             @JSONField(name = "DocumentNumber")
             private String DocumentNumber;
-            //Y	纳税人是否同车主(1-是;0-否)
-            @JSONField(name = "isSameWithOwner")
-            private String isSameWithOwner;
-            //CY	纳税人证件类型代码,参见证件类型代码(纳税人不同车主时必填)
-            @JSONField(name = "taxpayerIdentifyType")
-            private String taxpayerIdentifyType;
-            //CY	纳税人证件号码(纳税人不同车主时必填)
-            @JSONField(name = "TaxPayerIdentificationCode")
-            private String TaxPayerIdentificationCode;
-            //CY	纳税人名称(纳税人不同车主时必填)
-            @JSONField(name = "TaxPayerName")
-            private String TaxPayerName;
+            // 5.0.0版本 删除字段
+//            //Y	纳税人是否同车主(1-是;0-否)
+//            @JSONField(name = "isSameWithOwner")
+//            private String isSameWithOwner;
+//            //CY	纳税人证件类型代码,参见证件类型代码(纳税人不同车主时必填)
+//            @JSONField(name = "taxpayerIdentifyType")
+//            private String taxpayerIdentifyType;
+//            //CY	纳税人证件号码(纳税人不同车主时必填)
+//            @JSONField(name = "TaxPayerIdentificationCode")
+//            private String TaxPayerIdentificationCode;
+//            //CY	纳税人名称(纳税人不同车主时必填)
+//            @JSONField(name = "TaxPayerName")
+//            private String TaxPayerName;
             //CY	参见纳税地区代码(完税必传)
             @JSONField(name = "taxLocationCode")
             private String taxLocationCode;
@@ -693,7 +758,7 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
             public TaxDto(VehicleAndVesselTax vesselTax) {
 
                 this.taxConditionCode = "1N";
-                this.isSameWithOwner = "1";
+//                this.isSameWithOwner = "1";
             }
         }
 
@@ -751,12 +816,13 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
         //Y	手机号码
         @JSONField(name = "mobile")
         private String mobile;
+        // 5.0.0 版本删除字段
         //Y	证件有效起期(格式:YYYY-MM-DD HH24:MI:SS)
-        @JSONField(name = "identifyValidDate")
-        private String identifyValidDate;
-        //Y	证件有效止期(格式:YYYY-MM-DD HH24:MI:SS)
-        @JSONField(name = "identifyValidEndDate")
-        private String identifyValidEndDate;
+//        @JSONField(name = "identifyValidDate")
+//        private String identifyValidDate;
+//        //Y	证件有效止期(格式:YYYY-MM-DD HH24:MI:SS)
+//        @JSONField(name = "identifyValidEndDate")
+//        private String identifyValidEndDate;
         //Y	客户职业(传值要求通过职业查询接口获得)
         @JSONField(name = "occupationCode")
         private String occupationCode;
@@ -782,8 +848,8 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
             this.role = role;
             int randomNum = new Random().nextInt(HuaTaiBaseCode.getOccupation().size());
             this.occupationCode = HuaTaiBaseCode.getOccupation().get(randomNum);//后续需要根据接口维护返参到表里
-            this.identifyValidDate = customerInfoVo.getIdentifyValidDate() + " " + TimeConstants.START_TIME;
-            this.identifyValidEndDate = customerInfoVo.getIdentifyValidEndDate() + " " + TimeConstants.END_TIME;
+//            this.identifyValidDate = customerInfoVo.getIdentifyValidDate() + " " + TimeConstants.START_TIME;
+//            this.identifyValidEndDate = customerInfoVo.getIdentifyValidEndDate() + " " + TimeConstants.END_TIME;
             if ("2".equals(role)) {
                 this.carInsuredRelation = "1";
             }
@@ -793,6 +859,8 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
             return Arrays.asList(new CustomerDto(ownerInfo, "3"), new CustomerDto(policyHolderInfo, "1"),
                     new CustomerDto(insuredPersonInfo, "2"));
         }
+
+
     }
 
 }

+ 179 - 75
src/main/java/com/ydtech/modules/order/entity/api/huatai/request/HuaTaiSubmitRequest.java

@@ -2,6 +2,9 @@ package com.ydtech.modules.order.entity.api.huatai.request;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import com.ydtech.constants.enums.InsuranceRisk;
+import com.ydtech.modules.admin.model.vo.PersonAreaVo;
+import com.ydtech.modules.admin.service.SysAreaService;
+import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
 import com.ydtech.modules.ins.model.vo.RiskInfoVo;
 import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
@@ -18,11 +21,14 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 @EqualsAndHashCode(callSuper = true)
@@ -31,6 +37,8 @@ import java.util.stream.Collectors;
 public class HuaTaiSubmitRequest extends HuaTaiBaseRequest {
 
     private static final long serialVersionUID = -3434101420731502321L;
+
+
     @JSONField(name = "businessData")
     //投保单信息
     private BusinessDataDto businessData;
@@ -45,8 +53,9 @@ public class HuaTaiSubmitRequest extends HuaTaiBaseRequest {
     }
 
     public HuaTaiSubmitRequest(YaQuoteInfoVo yaQuoteInfoVo, InsAreaCompany insAreaCompany,
-                               HuaTaiConfigureParameters huaTaiConfigureParameters, List<InsHuataiContributingVo> engageList) {
-        this.businessData = new BusinessDataDto(yaQuoteInfoVo, insAreaCompany, huaTaiConfigureParameters, engageList);
+                               HuaTaiConfigureParameters huaTaiConfigureParameters, List<InsHuataiContributingVo> engageList,
+                               PersonAreaVo ownerPersonAreaVo,PersonAreaVo insuredPersonAreaVo,PersonAreaVo policyPersonAreaVo) {
+        this.businessData = new BusinessDataDto(yaQuoteInfoVo, insAreaCompany, huaTaiConfigureParameters, engageList,ownerPersonAreaVo,insuredPersonAreaVo,policyPersonAreaVo);
         this.loginCom = huaTaiConfigureParameters.getComCode();
     }
 
@@ -69,8 +78,22 @@ public class HuaTaiSubmitRequest extends HuaTaiBaseRequest {
         @JSONField(name = "saleInfo")
         private SaleInfoDto saleInfo;
 
+        // 投保车辆信息
+        @JSONField(name = "insuredObject")
+        private InsuredDto insuredObject;
+
+
+        // 5.0.0版本新增 shareHolderList 控股股东信息(机构必传) 暂时不加
+//        @JSONField(name = "shareHolderList")
+//        private List<ShareHolderDto> shareHolderList;
+
+        // 5.0.0版本新增  收益所有人信息(机构必传) 暂时不加
+//        @JSONField(name = "eneficiaryMsgList")
+//        private List<EneficiaryMsgDto> eneficiaryMsgList;
+
         public BusinessDataDto(YaQuoteInfoVo yaQuoteInfoVo, InsAreaCompany insAreaCompany,
-                               HuaTaiConfigureParameters huaTaiConfigureParameters, List<InsHuataiContributingVo> engageList) {
+                               HuaTaiConfigureParameters huaTaiConfigureParameters, List<InsHuataiContributingVo> engageList,
+                               PersonAreaVo ownerPersonAreaVo,PersonAreaVo insuredPersonAreaVo,PersonAreaVo policyPersonAreaVo) {
             List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
             CustomerInfoVo ownerInfo = yaQuoteInfoVo.getOwnerInfo();
 
@@ -82,10 +105,12 @@ public class HuaTaiSubmitRequest extends HuaTaiBaseRequest {
             // 保险信息
             this.contract = new ContractDto().getContract(riskList, insAreaCompany, engageList);
             // 客户信息
-            this.customer = new CustomerDto().getCustomers(ownerInfo, policyHolderInfo, insuredPersonInfo, huaTaiConfigureParameters);
+            this.customer = new CustomerDto().getCustomers(ownerInfo, policyHolderInfo, insuredPersonInfo, huaTaiConfigureParameters,
+                    ownerPersonAreaVo,insuredPersonAreaVo,policyPersonAreaVo);
             //销售信息
             this.saleInfo = new SaleInfoDto(huaTaiConfigureParameters);
-
+            CarInfoVo carInfo = yaQuoteInfoVo.getCarInfo();
+            this.insuredObject = new InsuredDto(carInfo);
         }
     }
 
@@ -288,21 +313,21 @@ public class HuaTaiSubmitRequest extends HuaTaiBaseRequest {
         //CY	客户地址(省)代码(江西必传)
         @JSONField(name = "Province")
         private String province;
-        //CY	客户地址(省)名称(江西必传)
-        @JSONField(name = "ProvinceName")
-        private String provinceName;
+//        //CY	客户地址(省)名称(江西必传)
+//        @JSONField(name = "ProvinceName")
+//        private String provinceName;
         //CY	客户地址(市)代码(江西必传)
         @JSONField(name = "City")
         private String city;
-        //CY	客户地址(市)名称(江西必传)
-        @JSONField(name = "CityName")
-        private String cityName;
+//        //CY	客户地址(市)名称(江西必传)
+//        @JSONField(name = "CityName")
+//        private String cityName;
         //CY	客户地址(区)代码(江西必传)
         @JSONField(name = "District")
         private String district;
-        //CY	客户地址(区)名称(江西必传)
-        @JSONField(name = "DistrictName")
-        private String districtName;
+//        //CY	客户地址(区)名称(江西必传)
+//        @JSONField(name = "DistrictName")
+//        private String districtName;
         //CY	手机实际持有人姓名(上海出单必录)
         @JSONField(name = "ActualHolderName")
         private String actualHolderName;
@@ -369,9 +394,9 @@ public class HuaTaiSubmitRequest extends HuaTaiBaseRequest {
         //CY	执照、证明有效期(机构客户必传)
         @JSONField(name = "supportDocuValidDate")
         private String supportDocuValidDate;
-        //CY	办理人姓名(机构客户必传)
-        @JSONField(name = "TransactorName")
-        private String transactorName;
+//        //CY	办理人姓名(机构客户必传)
+//        @JSONField(name = "TransactorName")
+//        private String transactorName;
         //CY	办理人证件类型代码(机构客户必传)(参见客户证件类型代码)
         @JSONField(name = "transactorIdentifyType")
         private String transactorIdentifyType;
@@ -381,6 +406,10 @@ public class HuaTaiSubmitRequest extends HuaTaiBaseRequest {
         //CY	办理人手机号码(机构客户必传)
         @JSONField(name = "transactorMobile")
         private String transactorMobile;
+        //CY	办理人证件有效期(机构客户必传)
+        @JSONField(name = "transactorStartDate")
+        private String transactorStartDate;
+
         //CY	办理人证件有效期(机构客户必传)
         @JSONField(name = "transactorExpiryDate")
         private String transactorExpiryDate;
@@ -396,12 +425,13 @@ public class HuaTaiSubmitRequest extends HuaTaiBaseRequest {
         //CY	其他住所地或工作单位地址(个人客户必传)
         @JSONField(name = "otherWorkAddress")
         private String otherWorkAddress;
-        //CY	联系人信息
-        @JSONField(name = "insuredLinkerList")
-        private List<InsuredLinkerBean> insuredLinkerList;
+        // 5.0.0版本 删除字段
+//        //CY	联系人信息
+//        @JSONField(name = "insuredLinkerList")
+//        private List<InsuredLinkerBean> insuredLinkerList;
 
 
-        public CustomerDto(CustomerInfoVo customerInfoVo, String role, HuaTaiConfigureParameters huaTaiConfigureParameters) {
+        public CustomerDto(CustomerInfoVo customerInfoVo, String role, HuaTaiConfigureParameters huaTaiConfigureParameters,PersonAreaVo personAreaVo) {
             this.identifyNumber = customerInfoVo.getIdentifyNumber();
             this.identifyType = "01";
             this.name = customerInfoVo.getName();
@@ -410,9 +440,15 @@ public class HuaTaiSubmitRequest extends HuaTaiBaseRequest {
             this.type = "1";
             this.occupationCode = "20114";//后续需要根据接口维护返参到表里
             this.identifyValidDate = customerInfoVo.getIdentifyValidDate() + " " + TimeConstants.START_TIME;
-            this.identifyValidEndDate = customerInfoVo.getIdentifyValidEndDate() + " " + TimeConstants.END_TIME;
-            this.addr = customerInfoVo.getAddr();
+            this.identifyValidEndDate = customerInfoVo.getIdentifyValidEndDate() + " " + TimeConstants.START_TIME;
+
             this.email = "123@qq.com";
+            //根据身份证号获取省市县代码
+            this.province = personAreaVo.getProvinceCode();
+            this.city = personAreaVo.getCityCode();
+            this.district = personAreaVo.getCountyCode();
+            String infoAddr = this.parseAddress(customerInfoVo.getAddr());
+            this.addr = personAreaVo.getProvinceName() + personAreaVo.getCityName() + personAreaVo.getCountyName() + infoAddr;
             if (StringUtils.isNotEmpty(customerInfoVo.getEmail())) {
                 this.email = customerInfoVo.getEmail();
             }
@@ -427,70 +463,83 @@ public class HuaTaiSubmitRequest extends HuaTaiBaseRequest {
             this.workUnit = "其他";
             this.workAddress = customerInfoVo.getAddr();
             this.otherWorkAddress = customerInfoVo.getAddr();
-            this.insuredLinkerList = Arrays.asList(new InsuredLinkerBean(customerInfoVo, huaTaiConfigureParameters));
+//            this.insuredLinkerList = Arrays.asList(new InsuredLinkerBean(customerInfoVo, huaTaiConfigureParameters));
         }
 
         public List<CustomerDto> getCustomers(CustomerInfoVo ownerInfo, CustomerInfoVo policyHolderInfo, CustomerInfoVo insuredPersonInfo
-                , HuaTaiConfigureParameters huaTaiConfigureParameters) {
-            return Arrays.asList(new CustomerDto(ownerInfo, "3", huaTaiConfigureParameters), new CustomerDto(policyHolderInfo, "1",
-                    huaTaiConfigureParameters), new CustomerDto(insuredPersonInfo, "2", huaTaiConfigureParameters));
+                , HuaTaiConfigureParameters huaTaiConfigureParameters,PersonAreaVo ownerPersonAreaVo,PersonAreaVo insuredPersonAreaVo,PersonAreaVo policyPersonAreaVo) {
+            return Arrays.asList(new CustomerDto(ownerInfo, "3", huaTaiConfigureParameters,ownerPersonAreaVo), new CustomerDto(policyHolderInfo, "1",
+                    huaTaiConfigureParameters,policyPersonAreaVo), new CustomerDto(insuredPersonInfo, "2", huaTaiConfigureParameters,insuredPersonAreaVo));
         }
 
-    }
 
+        //过滤 省市县 获取详细地址
+        public String parseAddress(String idCardAddress) {
+            String regex = ".*?(乡|镇|街道|村|区)(.*)";
+            Pattern pattern = Pattern.compile(regex);
+            Matcher matcher = pattern.matcher(idCardAddress);
 
-    @AllArgsConstructor
-    @NoArgsConstructor
-    @Data
-    public static class InsuredLinkerBean implements Serializable {
-
-        private static final long serialVersionUID = -7819712018066777471L;
-        // Y	联系人名称
-        @JSONField(name = "linkName")
-        private String linkName;
-        // Y	联系人关联关系(默认传01,对应本人)
-        @JSONField(name = "linkerRelation")
-        private String linkerRelation;
-        // CY	单位电话(机构客户出单必传)
-        @JSONField(name = "unitPhoneNumber")
-        private String unitPhoneNumber;
-        //Y	省(需传省国标码)
-        @JSONField(name = "province")
-        private String province;
-        //Y	市(需传市国标码)
-        @JSONField(name = "city")
-        private String city;
-        //Y	区(需传区国标码)
-        @JSONField(name = "district")
-        private String district;
-        //Y	地址
-        @JSONField(name = "street")
-        private String street;
-        // Y	电话
-        @JSONField(name = "mobile")
-        private String mobile;
-        // CY	邮箱(电子保单必传)
-        @JSONField(name = "email")
-        private String email;
-
-        public InsuredLinkerBean(CustomerInfoVo customerInfoVo, HuaTaiConfigureParameters huaTaiConfigureParameters) {
-            this.linkName = customerInfoVo.getName();
-            this.linkerRelation = "01";
-
-            this.province = huaTaiConfigureParameters.getProvince();
-            this.city = huaTaiConfigureParameters.getCity();
-            this.district = huaTaiConfigureParameters.getDistrict();
-
-            this.street = customerInfoVo.getAddr();
-            this.mobile = customerInfoVo.getMobile();
-            this.email = "123@qq.com";
-            if (StringUtils.isNotEmpty(customerInfoVo.getEmail())) {
-                this.email = customerInfoVo.getEmail();
+            if (matcher.find()) {
+                return idCardAddress.substring(idCardAddress.indexOf(matcher.group(1))); // 从匹配点开始截取
             }
+            return idCardAddress; // 如果匹配失败,返回原始地址
         }
 
     }
 
+
+//    @AllArgsConstructor
+//    @NoArgsConstructor
+//    @Data
+//    public static class InsuredLinkerBean implements Serializable {
+//
+//        private static final long serialVersionUID = -7819712018066777471L;
+//        // Y	联系人名称
+//        @JSONField(name = "linkName")
+//        private String linkName;
+//        // Y	联系人关联关系(默认传01,对应本人)
+//        @JSONField(name = "linkerRelation")
+//        private String linkerRelation;
+//        // CY	单位电话(机构客户出单必传)
+//        @JSONField(name = "unitPhoneNumber")
+//        private String unitPhoneNumber;
+//        //Y	省(需传省国标码)
+//        @JSONField(name = "province")
+//        private String province;
+//        //Y	市(需传市国标码)
+//        @JSONField(name = "city")
+//        private String city;
+//        //Y	区(需传区国标码)
+//        @JSONField(name = "district")
+//        private String district;
+//        //Y	地址
+//        @JSONField(name = "street")
+//        private String street;
+//        // Y	电话
+//        @JSONField(name = "mobile")
+//        private String mobile;
+//        // CY	邮箱(电子保单必传)
+//        @JSONField(name = "email")
+//        private String email;
+//
+//        public InsuredLinkerBean(CustomerInfoVo customerInfoVo, HuaTaiConfigureParameters huaTaiConfigureParameters) {
+//            this.linkName = customerInfoVo.getName();
+//            this.linkerRelation = "01";
+//
+//            this.province = huaTaiConfigureParameters.getProvince();
+//            this.city = huaTaiConfigureParameters.getCity();
+//            this.district = huaTaiConfigureParameters.getDistrict();
+//
+//            this.street = customerInfoVo.getAddr();
+//            this.mobile = customerInfoVo.getMobile();
+//            this.email = "123@qq.com";
+//            if (StringUtils.isNotEmpty(customerInfoVo.getEmail())) {
+//                this.email = customerInfoVo.getEmail();
+//            }
+//        }
+//
+//    }
+
     @AllArgsConstructor
     @NoArgsConstructor
     @Data
@@ -510,4 +559,59 @@ public class HuaTaiSubmitRequest extends HuaTaiBaseRequest {
         }
 
     }
+
+    @AllArgsConstructor
+    @NoArgsConstructor
+    @Data
+    public static class InsuredDto implements Serializable {
+
+        private static final long serialVersionUID = 2631084372177408934L;
+        // 车辆信息
+        @JSONField(name = "policyCar")
+        private PolicyCarDto policyCar;
+
+        @JSONField(name = "simpleStadarCar")
+        private HuaTaiQuotedPriceRequest.BusinessDataDto.InsuredObjectDto.SimpleStadarCarDto simpleStadarCar;
+
+
+
+        @AllArgsConstructor
+        @Data
+        public static class PolicyCarDto implements Serializable {
+
+            private static final long serialVersionUID = -1000678860334502885L;
+
+            //Y 验车状态
+            @JSONField(name = "CarCheckStatus")
+            private String CarCheckStatus;
+
+            //CY	验车人(已验车必传)
+            @JSONField(name = "CarChecker")
+            private String CarChecker;
+
+            //CY	验车时间(已验车必传)(格式:YYYY-MM-DD HH24:MI:SS)
+            @JSONField(name = "CarCheckTime")
+            private String CarCheckTime;
+
+            //CY	验车记录(已验车必传)
+            @JSONField(name = "CarCheckRecord")
+            private String CarCheckRecord;
+
+            //N	车况(0-好;1-中;2-差)
+            @JSONField(name = "VehicleCondition")
+            private String VehicleCondition;
+            public PolicyCarDto() {
+                this.CarCheckStatus = "2";
+                this.VehicleCondition = "0";
+            }
+        }
+
+        public InsuredDto(CarInfoVo carInfoVo) {
+            this.policyCar = new PolicyCarDto();
+            this.simpleStadarCar = new HuaTaiQuotedPriceRequest.BusinessDataDto.InsuredObjectDto.SimpleStadarCarDto(carInfoVo);
+        }
+
+    }
+
+
 }

+ 5 - 0
src/main/java/com/ydtech/modules/order/entity/api/huatai/response/HuaTaiModelsQueryResponse.java

@@ -78,6 +78,10 @@ public class HuaTaiModelsQueryResponse extends HuaTaiBaseResponse {
             @JsonProperty("carYear")
             private String carYear;
 
+            //N     功率
+            @JsonProperty("power")
+            private String power;
+
             public CoreModelsVo toCoreModelsVo(){
                 CoreModelsVo coreModelsVo = new CoreModelsVo();
                 coreModelsVo.setModelCode(this.modelCode);
@@ -86,6 +90,7 @@ public class HuaTaiModelsQueryResponse extends HuaTaiBaseResponse {
                 coreModelsVo.setEnginedesc(String.valueOf(this.displacement));
                 coreModelsVo.setPurchasePrice(this.purchasePrice);
                 coreModelsVo.setSeatCount(String.valueOf(this.approvedPassengersCapacity));
+                coreModelsVo.setPower(this.power);
                 return coreModelsVo;
             }
 

+ 26 - 3
src/main/java/com/ydtech/modules/order/entity/api/huatai/response/HuaTaiQuotedPriceResponse.java

@@ -46,6 +46,10 @@ public class HuaTaiQuotedPriceResponse extends HuaTaiBaseResponse {
         //Y	险别信息(列表)
         @JsonProperty("coverage")
         private List<CoverageDto> coverage;
+        //5.0新增 特别约定
+        @JsonProperty("engage")
+        private List<EngageDto> engage;
+
         //Y	平台交互信息
         @JsonProperty("platFormMessage")
         private PlatFormMessageDto platFormMessage;
@@ -170,9 +174,9 @@ public class HuaTaiQuotedPriceResponse extends HuaTaiBaseResponse {
             //Y	系统车型编码
             @JsonProperty("modelCode")
             private String modelCode;
-            //Y	推荐标识(1-推荐;0-无标识)
-            @JsonProperty("modelFlag")
-            private String modelFlag;
+//            //Y	推荐标识(1-推荐;0-无标识)
+//            @JsonProperty("modelFlag")
+//            private String modelFlag;
             //Y	厂牌型号
             @JsonProperty("modelName")
             private String modelName;
@@ -293,5 +297,24 @@ public class HuaTaiQuotedPriceResponse extends HuaTaiBaseResponse {
             @JsonProperty("itemNo")
             private String itemNo;
         }
+
+        @NoArgsConstructor
+        @Data
+        public static class EngageDto implements Serializable{
+            private static final long serialVersionUID = -5558633804113575096L;
+
+            //特别约定编码
+            @JsonProperty("engageCode")
+            private String engageCode;
+
+            //特别约定名称
+            @JsonProperty("engageTitle")
+            private String engageTitle;
+
+            //特别约定内容
+            @JsonProperty("engageDetail")
+            private String engageDetail;
+
+        }
     }
 }

+ 5 - 1
src/main/java/com/ydtech/modules/order/service/impl/HuaTaiOrderApiServiceImpl.java

@@ -545,7 +545,11 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
     private HuaTaiSubmitResponse submitForUnderwriting(YaQuoteInfoVo yaQuoteInfoVo, InsAreaCompany insAreaCompany,
                                                        HuaTaiConfigureParameters huaTaiConfigureParameters,
                                                        List<InsHuataiContributingVo> engageList) {
-        HuaTaiSubmitRequest submitRequest = new HuaTaiSubmitRequest(yaQuoteInfoVo, insAreaCompany, huaTaiConfigureParameters, engageList);
+        PersonAreaVo ownerPersonAreaVo = sysAreaService.queryByAddress(yaQuoteInfoVo.getOwnerInfo().getAddr(), yaQuoteInfoVo.getOwnerInfo().getIdentifyNumber());
+        PersonAreaVo insuredPersonAreaVo = sysAreaService.queryByAddress(yaQuoteInfoVo.getInsuredPersonInfo().getAddr(), yaQuoteInfoVo.getInsuredPersonInfo().getIdentifyNumber());
+        PersonAreaVo policyPersonAreaVo = sysAreaService.queryByAddress(yaQuoteInfoVo.getPolicyHolderInfo().getAddr(), yaQuoteInfoVo.getPolicyHolderInfo().getIdentifyNumber());
+
+        HuaTaiSubmitRequest submitRequest = new HuaTaiSubmitRequest(yaQuoteInfoVo, insAreaCompany, huaTaiConfigureParameters, engageList,ownerPersonAreaVo,insuredPersonAreaVo,policyPersonAreaVo);
         submitRequest.setHead(new HuaTaiBaseRequestHead(huaTaiConfigureParameters));
         return huaTaiRequestApiComponents.submit(submitRequest, HuaTaiSubmitResponse.class, huaTaiConfigureParameters.getInsuredCode());
     }

+ 10 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -537,6 +537,16 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             quoteInfoVo.setKindList(new ArrayList<>());
         }
 
+        //单交过滤risk中的商业时间问题。
+        if(quoteInfoVo.getProductId().equals("0330")){
+            //说明存在商业信息
+            if(quoteInfoVo.getRiskList().size()>1){
+                //移除商业信息
+                quoteInfoVo.getRiskList().removeIf(risk -> risk.getRiskCode().equals("0510"));
+            }
+        }
+
+
         //添加后线人员不能报价的验证
         if (!"admin".equals(realUserId) && !realUserId.contains("M")) {
             throw new SystemException("后线人员不允许报价!!");