Browse Source

1. 永诚地区解决识别重庆市问题。
2. 永诚解决车型没有年份问题。
3. 永诚增加返回平台警告信息。
4. 永诚增加返回信息投保时间。

ligang134 3 years ago
parent
commit
518f367245

+ 2 - 0
README.md

@@ -140,6 +140,8 @@
 * 更新内容:
   1. 永诚解决报价单缺失问题。
   2. 解决pc登录验证码有时候会输入多次问题。
+  3. 永诚地区解决识别重庆市问题。
+  4. 永诚解决车型没有年份问题。
 
 
 

+ 17 - 0
src/main/java/com/ydtech/modules/ins/model/vo/QuoteRespVo.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.ins.model.vo;
 
 import com.ydtech.modules.ins.model.request.ZhongmeiQuoteResponse;
 import com.ydtech.modules.order.entity.TaxArrears;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.List;
@@ -31,6 +32,22 @@ public class QuoteRespVo {
 
     private String companyId;   //子订单ID
 
+    //add 警告信息 lig 2023-09-12
+    @ApiModelProperty("警告信息")
+    private List<String> warnMessageList;
+
+    //add 交强商业开始结束起保日期 lig 2023-09-12
+    @ApiModelProperty("开始起保日期交强")
+    private String startDateJq;
+    @ApiModelProperty("结束起保日期交强")
+    private String endDateJq;
+    @ApiModelProperty("开始起保日期交强")
+    private String startDateSy;
+    @ApiModelProperty("结束起保日期交强")
+    private String endDateSy;
+
+    //add end 交强商业开始结束起保日期 lig 2023-09-12
+
     /**
      * 驾意险信息
      */

+ 22 - 0
src/main/java/com/ydtech/modules/ins/model/yc/YcBuildData.java

@@ -4,6 +4,7 @@ import com.ydtech.constants.enums.InsurKind;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
 import com.ydtech.modules.ins.model.yc.ruote.response.RuoteResponse;
+import com.ydtech.modules.ins.model.yc.ruote.response.TfiWarnListResponse;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.utils.StringUtils;
 import lombok.Data;
@@ -13,6 +14,8 @@ import org.springframework.util.ObjectUtils;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 永诚构造数据
@@ -245,7 +248,26 @@ public class YcBuildData {
         quoteRespVo.setJqPremium(jqPremium);
         quoteRespVo.setSyPremium(syPremium);
 
+        //起保日期
+        quoteRespVo.setStartDateJq(StringUtils.toString(rd.getBase().getTInsrncBgnTmJQ()));
+        quoteRespVo.setEndDateJq(StringUtils.toString(rd.getBase().getTInsrncEndTmJQ()));
 
+        quoteRespVo.setStartDateSy(StringUtils.toString(rd.getBase().getTInsrncBgnTmSY()));
+        quoteRespVo.setEndDateSy(StringUtils.toString(rd.getBase().getTInsrncEndTmSY()));
+
+
+
+
+        //平台返回信息
+        if(null != rd.getTfiWarnList()){
+            //排空
+            List<TfiWarnListResponse.TfiWarnData> tfiWarnData = rd.getTfiWarnList().getTfiWarnData().stream().filter(item -> null != item).filter(item -> StringUtils.isNotEmpty(item.getWarnMessage())).collect(Collectors.toList());
+            List<String> warnMessageList = new ArrayList<>();
+            tfiWarnData.stream().forEach(a ->{
+                warnMessageList.add(a.getWarnMessage());
+            });
+            quoteRespVo.setWarnMessageList(warnMessageList);
+        }
 
 
 

+ 49 - 32
src/main/java/com/ydtech/modules/ins/model/yc/ruote/Base.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.ins.model.yc.ruote;
 
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
 import com.ydtech.components.InsAlltrustRequestApiComponents;
+import com.ydtech.constants.enums.InsuranceRisk;
 import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
 import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
 import com.ydtech.modules.ins.model.vo.RiskInfoVo;
@@ -289,7 +290,7 @@ public class Base {
     private String CBsnsTyp;
 
 
-    public static Base buildBase(CustomerInfoVo policyHolderInfo, CustomerInfoVo insuredPersonInfo,List<RiskInfoVo> riskList, YcConfigureParameters ycConfigureParameters) {
+    public static Base buildBase(CustomerInfoVo policyHolderInfo, CustomerInfoVo insuredPersonInfo, List<RiskInfoVo> riskList, YcConfigureParameters ycConfigureParameters) {
 //    public static Base buildBase(YaQuoteInfoVo yaQuoteInfoVo, InsAlltrustRequestApiComponents apiComponents) {
 //    public static Base buildBase(YaQuoteInfoVo yaQuoteInfoVo,Agent agent) {
         Base base = new Base();
@@ -333,40 +334,56 @@ public class Base {
         base.setAppContact(policyHolderInfo.getName());
         base.setAppYWFlag("N");
 
-        riskList.stream().forEach(a -> {
+        //交强
+        RiskInfoVo ciRiskInfo = (RiskInfoVo) riskList.stream().filter(x -> x.getRiskCode().equals(InsuranceRisk.TRAFFIC.getCode())).findFirst().orElse(null);
+        //商业
+        RiskInfoVo biRiskInfo = (RiskInfoVo) riskList.stream().filter(x -> x.getRiskCode().equals(InsuranceRisk.BUSINESS.getCode())).findFirst().orElse(null);
 
-//            LocalDate lStartDate = DateTimeUtil.parseLocalDate(a.getStartDate(), DateTimeUtil.DATETIME_PATTERN);
-//            LocalDate lEndDate = DateTimeUtil.parseLocalDate(a.getEndDate(), DateTimeUtil.DATETIME_PATTERN);
-//
+
+//        riskList.stream().forEach(a -> {
+//            //交强险
+//            if (a.getRiskCode().equals(InsuranceRisk.TRAFFIC)) {
+//                base.setTInsrncBgnTmJQ(a.getStartDate());
+//                base.setTInsrncEndTmJQ(a.getEndDate());
+//                base.setCAppJqFlag("Y");
+//                base.setCProdNoJQ("0326");
+//            }
+//            //商业险
+//            if (a.getRiskCode().equals(InsuranceRisk.BUSINESS)) {
+//                base.setTInsrncBgnTmSY(a.getStartDate());
+//                base.setTInsrncEndTmSY(a.getEndDate());
+//                base.setAppSYFlag("Y");
+//                base.setCProdNoSY("0364");
 //
-//            if(lStartDate.isAfter(LocalDate.now().plusDays(1))){
-//                lStartDate = lStartDate.plusDays(-1);
-//                lEndDate = lEndDate.plusDays(-1);
 //            }
-//            String lStartDate = DateTimeUtil.parseLocalDateToString(a.getStartDate(), DateTimeUtil.DATETIME_PATTERN);
-//            String lEndDate = DateTimeUtil.parseLocalDateToString(a.getEndDate(), DateTimeUtil.DATETIME_PATTERN);
-
-
-            //商业险
-            if (a.getRiskCode().equals("0510")) {
-                base.setTInsrncBgnTmSY(a.getStartDate());
-                base.setTInsrncEndTmSY(a.getEndDate());
-                base.setAppSYFlag("Y");
-                base.setCProdNoSY("0364");
-
-            }
-
-            //交强险
-            if (a.getRiskCode().equals("0507")) {
-//                base.setTInsrncBgnTmJQ("2023-10-20 00:00:00");
-//                base.setTInsrncEndTmJQ("2024-10-20 00:00:00");
-                base.setTInsrncBgnTmJQ(a.getStartDate());
-                base.setTInsrncEndTmJQ(a.getEndDate());
-                base.setCAppJqFlag("Y");
-                base.setCProdNoJQ("0326");
-            }
-        });
-
+//        });
+
+
+        if (null != ciRiskInfo) {
+
+            base.setTInsrncBgnTmJQ(ciRiskInfo.getStartDate());
+            base.setTInsrncEndTmJQ(ciRiskInfo.getEndDate());
+            base.setCAppJqFlag("Y");
+            base.setCProdNoJQ("0326");
+        }
+
+        if (null != biRiskInfo) {
+//            LocalDateTime startDateSy = DateTimeUtil.parseLocalDateTime(biRiskInfo.getStartDate(),DateTimeUtil.DATETIME_PATTERN);
+//            LocalDateTime endDateSy = DateTimeUtil.parseLocalDateTime(biRiskInfo.getEndDate(),DateTimeUtil.DATETIME_PATTERN);
+//            if(DateTimeUtil.inOneDay(startDateSy)){
+//                String syStart = DateTimeUtil.getStartTimeOfDayStr(startDateSy,DateTimeUtil.DATETIME_PATTERN);
+//                String syEnd = DateTimeUtil.getStartTimeOfDayStr(endDateSy,DateTimeUtil.DATETIME_PATTERN);
+//                base.setTInsrncBgnTmSY(syStart);
+//                base.setTInsrncEndTmSY(syEnd);
+//            }else{
+//                base.setTInsrncBgnTmSY(biRiskInfo.getStartDate());
+//                base.setTInsrncEndTmSY(biRiskInfo.getEndDate());
+//            }
+            base.setTInsrncBgnTmSY(biRiskInfo.getStartDate());
+            base.setTInsrncEndTmSY(biRiskInfo.getEndDate());
+            base.setAppSYFlag("Y");
+            base.setCProdNoSY("0364");
+        }
 
         return base;
     }

+ 4 - 4
src/main/java/com/ydtech/modules/ins/model/yc/ruote/response/RuoteResponse.java

@@ -1,13 +1,9 @@
 package com.ydtech.modules.ins.model.yc.ruote.response;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
 import lombok.Data;
 
-import java.util.List;
-
 
 /**
  * @description:报价 响应
@@ -23,6 +19,9 @@ public class RuoteResponse {
     @JacksonXmlProperty(localName = "Head")
     private Head Head;
 
+    @JacksonXmlProperty(localName = "TfiWarnList")
+    private TfiWarnListResponse tfiWarnList;
+
     //    @JsonProperty("base")
     @JacksonXmlProperty(localName = "Base")
     private BaseResponse base;
@@ -79,4 +78,5 @@ public class RuoteResponse {
 
     }
 
+
 }

+ 143 - 39
src/main/java/com/ydtech/modules/ins/service/impl/InsAlltrustApiServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.ins.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fasterxml.jackson.annotation.JsonInclude;
@@ -245,16 +246,16 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
         CarModel_Req carModelReq = new CarModel_Req();
         carModelReq.setFrameNo(carInfo.getFrameNo());
         carModelReq.setEngineNo(carInfo.getEngineNo());
-        carModelReq.setEnrollDate(carInfo.getRegisterDate().replaceAll("-",""));
+        carModelReq.setEnrollDate(carInfo.getRegisterDate().replaceAll("-", ""));
 
-        log.info("===永诚--车型查询接口请求   =====参数确认:--"+ycConfigureParameters.getDptCde()+"===");
+        log.info("===永诚--车型查询接口请求   =====参数确认:--" + ycConfigureParameters.getDptCde() + "===");
         ModelsQueryXml m = buildModelsQueryParam(carModelReq, ycConfigureParameters);
         ObjectMapper xmlMapper = this.gainXmlMapper();
 
-        log.info("===永诚--车型查询接口请求开始--"+carInfo.getLicenseNo()+"===");
+        log.info("===永诚--车型查询接口请求开始--" + carInfo.getLicenseNo() + "===");
         InsApiLog apiLog = httpPost(xmlMapper, m, YcBuildData.API_MODEL);
         String responseData = apiLog.getResponseData();
-        log.info("===永诚--车型查询接口请求结束--"+carInfo.getLicenseNo()+"===");
+        log.info("===永诚--车型查询接口请求结束--" + carInfo.getLicenseNo() + "===");
         ModelsQueryResponse rd = null;
         try {
             String cleanStr = YcBuildData.cleanResponseStr(responseData);
@@ -264,35 +265,49 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
         } catch (IOException e) {
             throw new SystemException("车型查询接口异常,请联系管理。");
         }
-            BigDecimal matchNum = BigDecimal.ZERO;
+        BigDecimal matchNum = BigDecimal.ZERO;
 
-            //获取上市年份大于等于注册日期的车辆信息
-            List<ModelsQueryResponse.VehicleInfo> vehicleInfoList = buildCarModel(rd).stream().filter(a ->DateTimeUtil.dateIsAfter(carInfo.getRegisterDate(),a.getVehicleYear())).collect(Collectors.toList());
 
-            if(null == vehicleInfoList && vehicleInfoList.size()<1)throw new SystemException("车型年款匹配失败");
+        if (CollUtil.isEmpty(rd.getVehicleInfoList())) throw new SystemException("永诚车型库查找失败");
 
+        //获取上市年份大于等于注册日期的车辆信息
+        List<ModelsQueryResponse.VehicleInfo> vehicleInfoList = rd.getVehicleInfoList().stream().filter(a -> DateTimeUtil.dateIsAfter(carInfo.getRegisterDate(), a.getVehicleYear())).collect(Collectors.toList());
 
-            //匹配车辆信息
-            vehicleInfoList.stream().forEach(a ->{
-                //购置价匹配
-                if(a.getVehiclePrice().equals(carInfo.getPurchasePrice())){
-                    carInfo.setModelCode(a.getVehicleId());
+        if (CollUtil.isEmpty(vehicleInfoList)) {
+            carInfo.setModelCode(rd.getVehicleInfoList().get(0).getVehicleId());
 //                        carInfo.setCiModelCode(a.getModelCode());
-                    carInfo.setCiCarName(a.getVehicleName());
-                    carInfo.setModelcname(a.getVehicleName());
-
-                    matchNum.add(BigDecimal.ONE);
-                }
+            carInfo.setCiCarName(rd.getVehicleInfoList().get(0).getVehicleName());
+            carInfo.setModelcname(rd.getVehicleInfoList().get(0).getVehicleName());
+            matchNum.add(BigDecimal.ONE);
+        }else{
+            //未匹配
+            if (matchNum == BigDecimal.ZERO) {
+                vehicleInfoList.stream().forEach(a -> {
+                    //购置价匹配
+                    if (a.getVehiclePrice().equals(carInfo.getPurchasePrice())) {
+                        carInfo.setModelCode(a.getVehicleId());
+                        //                        carInfo.setCiModelCode(a.getModelCode());
+                        carInfo.setCiCarName(a.getVehicleName());
+                        carInfo.setModelcname(a.getVehicleName());
+
+                        matchNum.add(BigDecimal.ONE);
+                        return;
+                    }
 
+                });
+            }
 
-            });
             //未匹配
-            if(matchNum == BigDecimal.ZERO){
+            if (matchNum == BigDecimal.ZERO) {
                 carInfo.setModelCode(vehicleInfoList.get(0).getVehicleId());
 //                        carInfo.setCiModelCode(a.getModelCode());
                 carInfo.setCiCarName(vehicleInfoList.get(0).getVehicleName());
                 carInfo.setModelcname(vehicleInfoList.get(0).getVehicleName());
             }
+        }
+
+
+
 
 //            long count = vehicleInfoList.stream().filter(x -> x.getModelCode().equals(carInfo.getModelCode())).count();
 //
@@ -301,14 +316,6 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
 //            }
 
 
-
-
-
-
-
-
-
-
     }
 
 
@@ -355,10 +362,23 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
 //
 //        }
 
+        boolean boo = false;
+        while (!boo) {
+            RuoteResponse rr = requestApi(m, new RuoteResponse(), iac, YcBuildData.API_QUOTE, InsQuoteFlow.Q_S_0);
+            //处理返回信息
+            //1、起保日期处理
+
+            //2、转报处理
+            boo = reinsurance(rr, m);
+            if (!boo) continue;
+
+            if (null == rr) return HttpResult.error("远程请求报价失败");
+            if (!rr.getHead().getErrorCode().equals("000000")) return HttpResult.error(rr.getHead().getErrorMessage());
+        }
         RuoteResponse rr = requestApi(m, new RuoteResponse(), iac, YcBuildData.API_QUOTE, InsQuoteFlow.Q_S_0);
         if (null == rr) return HttpResult.error("远程请求报价失败");
         if (!rr.getHead().getErrorCode().equals("000000")) return HttpResult.error(rr.getHead().getErrorMessage());
-        RuoteResponse rr2 = quoteExternalApi(rr,quoteVo,iac,m);
+        RuoteResponse rr2 = quoteExternalApi(rr, quoteVo, iac, m);
         if (!rr2.getHead().getErrorCode().equals("000000")) return HttpResult.error(rr2.getHead().getErrorMessage());
 //        if (!rr2.getHead().getErrorCode().equals("009999")) {
 //            int index1 = rr2.getHead().getErrorMessage().indexOf("起保日期");
@@ -382,11 +402,10 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
     }
 
 
-
     /**
      * 报价响应处理
      */
-    public RuoteResponse quoteExternalApi(RuoteResponse rr,BaseQuoteVo<AccidentalDrivingVo> quoteVo,InsAreaCompany iac,Ruote m ) {
+    public RuoteResponse quoteExternalApi(RuoteResponse rr, BaseQuoteVo<AccidentalDrivingVo> quoteVo, InsAreaCompany iac, Ruote m) {
         int i = 0;
         if (rr.getHead().getErrorCode().equals("000000") && i < 3) {
             i++;
@@ -418,7 +437,7 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
 //                return requestApi(m, new RuoteResponse(), iac, YcBuildData.API_QUOTE, InsQuoteFlow.Q_S_0);
 //                RuoteResponse rrTemp = requestApi(m, new RuoteResponse(), iac, YcBuildData.API_QUOTE, InsQuoteFlow.Q_S_0);
                 rr = requestApi(m, new RuoteResponse(), iac, YcBuildData.API_QUOTE, InsQuoteFlow.Q_S_0);
-                quoteExternalApi(rr,quoteVo,iac,m );
+                quoteExternalApi(rr, quoteVo, iac, m);
 
 
 //                if(ocrMap.get("code").equals("400")){
@@ -446,6 +465,90 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
     }
 
 
+    /**
+     * 报价  重复投保业务处理
+     */
+    public boolean repetitionInsure(RuoteResponse rr, Ruote m) {
+//        if (rr.getHead().getErrorCode().equals("009999") && rr.getHead().getErrorMessage().indexOf("重复投保") > 1) {
+//
+//            String errorMsg = rr.getHead().getErrorMessage();
+//            //截取0 到 机动车交通事故强制险
+//            String ciMsg = errorMsg.substring(0, errorMsg.indexOf("机动车交通事故强制险"));
+//
+//            String cCheckCodeJQ = rr.getVhl().getCCheckCodeJQ();
+//            String cCheckCodeSY = rr.getVhl().getCCheckCodeSY();
+//
+//            //转保调用自动识别转保码
+//            if (StringUtils.isNotEmpty(cCheckCodeJQ) || StringUtils.isNotEmpty(cCheckCodeSY)) {
+//                //调用python ocr
+//                String sendBody = "";
+//                Map bodyMap = new HashMap();
+//                bodyMap.put("jqImage", StringUtils.isNotEmpty(cCheckCodeJQ) ? cCheckCodeJQ : "");
+//                bodyMap.put("syImage", StringUtils.isNotEmpty(cCheckCodeSY) ? cCheckCodeSY : "");
+//                sendBody = JsonUtils.toJson(bodyMap);
+//                String ocrStr = HttpUtil.sendPost("http://47.92.254.66:8088/getres", sendBody);
+//                Map ocrMap = JsonUtils.toObject(ocrStr, Map.class);
+//
+//
+//                m.getRequestLabel().getCondition().getVhl().setCBusType("2");
+//                //交强
+//                m.getRequestLabel().getCondition().getVhl().setCCheckCodeJQ(ocrMap.get("jqImageCode").toString());
+////                m.getRequestLabel().getCondition().getVhl().setCCheckCodeJQ(ocrMap.get("jqImageCode").toString());
+//                m.getRequestLabel().getCondition().getVhl().setCQryCdeJQ(rr.getVhl().getCQryCdeJQ());
+//
+//                //商业
+//                m.getRequestLabel().getCondition().getVhl().setCCheckCodeSY(ocrMap.get("syImageCode").toString());
+//                m.getRequestLabel().getCondition().getVhl().setCQryCdeSY(rr.getVhl().getCQryCdeSY());
+//
+//                return false;
+//
+//            }
+//        }
+        return true;
+
+
+    }
+
+    /**
+     * 报价  转保业务处理
+     */
+    public boolean reinsurance(RuoteResponse rr, Ruote m) {
+        if (rr.getHead().getErrorCode().equals("000000")) {
+            String cCheckCodeJQ = rr.getVhl().getCCheckCodeJQ();
+            String cCheckCodeSY = rr.getVhl().getCCheckCodeSY();
+
+            //转保调用自动识别转保码
+            if (StringUtils.isNotEmpty(cCheckCodeJQ) || StringUtils.isNotEmpty(cCheckCodeSY)) {
+                //调用python ocr
+                String sendBody = "";
+                Map bodyMap = new HashMap();
+                bodyMap.put("jqImage", StringUtils.isNotEmpty(cCheckCodeJQ) ? cCheckCodeJQ : "");
+                bodyMap.put("syImage", StringUtils.isNotEmpty(cCheckCodeSY) ? cCheckCodeSY : "");
+                sendBody = JsonUtils.toJson(bodyMap);
+                String ocrStr = HttpUtil.sendPost("http://47.92.254.66:8088/getres", sendBody);
+                Map ocrMap = JsonUtils.toObject(ocrStr, Map.class);
+
+
+                m.getRequestLabel().getCondition().getVhl().setCBusType("2");
+                //交强
+                m.getRequestLabel().getCondition().getVhl().setCCheckCodeJQ(ocrMap.get("jqImageCode").toString());
+//                m.getRequestLabel().getCondition().getVhl().setCCheckCodeJQ(ocrMap.get("jqImageCode").toString());
+                m.getRequestLabel().getCondition().getVhl().setCQryCdeJQ(rr.getVhl().getCQryCdeJQ());
+
+                //商业
+                m.getRequestLabel().getCondition().getVhl().setCCheckCodeSY(ocrMap.get("syImageCode").toString());
+                m.getRequestLabel().getCondition().getVhl().setCQryCdeSY(rr.getVhl().getCQryCdeSY());
+
+                return false;
+
+            }
+        }
+        return true;
+
+
+    }
+
+
     /**
      * 3 核保
      *
@@ -664,7 +767,7 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
                 return HttpResult.error("报价订单不存在");
             }
 
-            if(StringUtils.isEmpty(iac.getAgreementId()))return HttpResult.error("协议号空");
+            if (StringUtils.isEmpty(iac.getAgreementId())) return HttpResult.error("协议号空");
 
             // 获取协议配置信息
             YcConfigureParameters ycConfigureParameters = gainYcConfigParams(iac.getAgreementId());
@@ -692,7 +795,7 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
 //            CallbackAnOrderResponse callbackAnOrderResponse = xmlMapper.readValue(cleanStr, CallbackAnOrderResponse.class);
 
             if (StringUtils.isNotEmpty(cleanStr)) {
-                if(cleanStr.equals("账户不存在或没有权限")) return HttpResult.ok("账户不存在或没有权限");
+                if (cleanStr.equals("账户不存在或没有权限")) return HttpResult.ok("账户不存在或没有权限");
                 log.info("永诚API方式 - 补传回调 - 参数:" + cleanStr);
                 CallBackRequest param = CallBackRequest.buildCallBackParam(cleanStr);
 
@@ -741,6 +844,7 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
 //        log.debug("=========永诚API方式 - xml请求 - 补传回调结束!======");
         return httpResult;
     }
+
     /**
      * 补传回调
      */
@@ -748,12 +852,12 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
     public void callbackAnOrder() {
 
         LambdaQueryWrapper<InsAreaCompany> lqw = new LambdaQueryWrapper<>();
-        lqw.eq(InsAreaCompany::getOrderstatus,InsOrderStatus.S_2.getCode());
+        lqw.eq(InsAreaCompany::getOrderstatus, InsOrderStatus.S_2.getCode());
         lqw.gt(InsAreaCompany::getAudittime, LocalDate.now().minusDays(1));
         List<InsAreaCompany> list = insAreaCompanyService.list(lqw);
 
-        if(null != list && list.size()>0){
-            list.stream().forEach(a ->{
+        if (null != list && list.size() > 0) {
+            list.stream().forEach(a -> {
                 callbackAnOrder(a.getId());
             });
         }
@@ -1162,7 +1266,7 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
     }
 
     /**
-     *  日志返回处理
+     * 日志返回处理
      *
      * @author: lig
      * @date: 2023年09月02日 0002
@@ -1182,7 +1286,7 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
             throw new RuntimeException("永诚API方式-xml转换失败");
         }
 //        InsApiLog iplog = HttpXmlUtil.sendXmlPost(apiComponents.getUrl() + apiName, xmlString);
-        return HttpXmlUtil.sendXmlPostReq(apiComponents.getUrl() + apiName, xmlString,null);
+        return HttpXmlUtil.sendXmlPostReq(apiComponents.getUrl() + apiName, xmlString, null);
 
     }
 //    /**

+ 62 - 14
src/main/java/com/ydtech/utils/DateTimeUtil.java

@@ -1,5 +1,7 @@
 package com.ydtech.utils;
 
+import cn.hutool.core.collection.CollUtil;
+
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.*;
@@ -8,9 +10,7 @@ import java.time.temporal.ChronoField;
 import java.time.temporal.ChronoUnit;
 import java.time.temporal.TemporalAccessor;
 import java.time.temporal.TemporalAdjusters;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Locale;
+import java.util.*;
 
 /**
  * 日期时间工具类   后期替换DateUtil工具类
@@ -465,25 +465,73 @@ public class DateTimeUtil {
 
     }
 
+    /**
+     *  一天内  true 时间大于00:00:00   小于23:59:59
+     * @param dateTime
+     *
+     * @author: lig
+     * @date: 2023年09月11日 0011
+     */
+    public static boolean inOneDay(LocalDateTime dateTime){
+//        LocalDateTime sDateTime = parseLocalDateTime(dateTime,DATETIME_PATTERN);
+        LocalDateTime minTime = LocalDateTime.of(dateTime.toLocalDate(), LocalTime.MIN);
+        LocalDateTime maxTime = LocalDateTime.of(dateTime.toLocalDate(), LocalTime.MAX);
+        if(dateTime.isAfter(minTime) && dateTime.isBefore(maxTime)){
+//            System.err.println("时间大于0点 小于23.59:"+sDateTime.isAfter(minTime));
+            return true;
+        }
+        return false;
+    }
+
+
 
     public static void main(String[] args) throws ParseException {
 
-        String dateStr = "2018-06-20 00:00:00";
-        String dateStr2 = "201806";
-        if(dateStr2.length() < 7)dateStr2 = dateStr2 +"01";
-//        String aaa = DateTimeUtil.parseLocalDateToString(dateStr, DateTimeUtil.DATETIME_PATTERN);
-//        System.out.println("aaaa: " + aaa);
+        List list = null;
+        System.out.println(CollUtil.isEmpty(list));
+        System.out.println("222:"+list.isEmpty());
 
+        String dateStr = "2023-10-02 23:59:59";
+        LocalDateTime sDateTime = parseLocalDateTime(dateStr,DATETIME_PATTERN);
+        System.out.println("前一年:"+ DateTimeUtil.parseLocalDateToString(sDateTime.minusYears(1).toString(), DateTimeUtil.DATETIME_PATTERN));
+//        LocalDateTime one = ;
 
-        LocalDate lRegisterDate = DateTimeUtil.parseLocalDate(dateStr, DateTimeUtil.DATETIME_PATTERN);
-        LocalDate lVehicleYearDate = DateTimeUtil.parseLocalDate(dateStr2, DateTimeUtil.UNSIGNED_DATE_PATTERN);
 
-        if(lVehicleYearDate.isAfter(lRegisterDate)){
 
-        }
 
-        System.err.println("注册日期:"+lRegisterDate);
-        System.err.println("上市日期:"+lVehicleYearDate);
+//        String dateStr = "2018-06-20 23:59:59";
+//
+//        LocalDateTime sDateTime = parseLocalDateTime(dateStr,DATETIME_PATTERN);
+//
+//        LocalDateTime minTime = LocalDateTime.of(sDateTime.toLocalDate(), LocalTime.MIN);
+//
+//        LocalDateTime maxTime = LocalDateTime.of(sDateTime.toLocalDate(), LocalTime.MAX);
+//
+//        System.err.println("000:"+maxTime.toString());
+//
+//        System.err.println("2222:"+sDateTime.isBefore(maxTime));
+//
+//
+//        if(sDateTime.isAfter(minTime) && sDateTime.isBefore(maxTime)){
+//            System.err.println("时间大于0点 小于23.59:"+sDateTime.isAfter(minTime));
+//
+//        }
+
+//        String dateStr2 = "201806";
+//        if(dateStr2.length() < 7)dateStr2 = dateStr2 +"01";
+////        String aaa = DateTimeUtil.parseLocalDateToString(dateStr, DateTimeUtil.DATETIME_PATTERN);
+////        System.out.println("aaaa: " + aaa);
+//
+//
+//        LocalDate lRegisterDate = DateTimeUtil.parseLocalDate(dateStr, DateTimeUtil.DATETIME_PATTERN);
+//        LocalDate lVehicleYearDate = DateTimeUtil.parseLocalDate(dateStr2, DateTimeUtil.UNSIGNED_DATE_PATTERN);
+//
+//        if(lVehicleYearDate.isAfter(lRegisterDate)){
+//
+//        }
+//
+//        System.err.println("注册日期:"+lRegisterDate);
+//        System.err.println("上市日期:"+lVehicleYearDate);
 
 
 

+ 24 - 0
src/main/java/com/ydtech/utils/HttpUtil.java

@@ -6,6 +6,7 @@ import cn.hutool.http.HttpResponse;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
 import org.apache.commons.httpclient.methods.multipart.FilePart;
+import org.slf4j.Logger;
 
 
 import java.io.*;
@@ -93,6 +94,29 @@ public class HttpUtil {
 
         return respStr;
     }
+    /**
+     *   带header和json作为body的post
+     * @param url
+     * @param bodyStr   body传的json
+     *
+     * @author: lig
+     * @date: 2023年08月14日 0014
+     */
+    public static String sendPost(String url,String bodyStr,Logger log){
+        System.err.println("请求[post、json、body]参数:"+bodyStr);
+        log.info("请求[post、json、body]参数:"+bodyStr);
+        HttpRequest request = HttpRequest.post(url)
+                .header("Content-Type", "application/json")//以json的方式传递
+//     .header("authorization","Bearer abcdefghijklmnopqrstuvwxyz")
+                .body(bodyStr);
+
+        HttpResponse response = request.execute();
+        String respStr = response.body();
+        System.err.println("返回[post、json、body]参数:"+ respStr);
+        log.info("返回[post、json、body]参数:"+bodyStr);
+
+        return respStr;
+    }
 
 
     /**

+ 626 - 38
src/main/java/com/ydtech/utils/HttpXmlUtil.java

@@ -829,42 +829,630 @@ public class HttpXmlUtil {
             "    &lt;sypolicyUrl&gt;&lt;/sypolicyUrl&gt;\n" +
             "&lt;/packet&gt;</response></ns2:dzbdUrlResponse></S:Body></S:Envelope>";
 
-    private static String HHH = ":<?xml version=\"1.0\" ?><S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"><S:Body><ns2:newQueryYwCvrgResponse xmlns:ns2=\"http://newWS.front.app.echannel.ebiz.alltrust.com/\"><response>&lt;?xml version='1.0' encoding='UTF-8'?&gt;\n" +
-            "&lt;packet&gt;\n" +
-            "    &lt;head&gt;\n" +
-            "        &lt;responseCompleteMessageStatus&gt;\n" +
-            "            &lt;messageStatusCode&gt;E0000&lt;/messageStatusCode&gt;\n" +
-            "            &lt;messageStatusDescription&gt;成功,共5个方案!&lt;/messageStatusDescription&gt;\n" +
-            "        &lt;/responseCompleteMessageStatus&gt;\n" +
-            "    &lt;/head&gt;\n" +
-            "    &lt;responseYwCvrg&gt;\n" +
-            "        &lt;cvrgList&gt;\n" +
-            "            &lt;cInsuranceType&gt;A-5座车方案&lt;/cInsuranceType&gt;\n" +
-            "            &lt;cInsuranceTypeCode&gt;100&lt;/cInsuranceTypeCode&gt;\n" +
-            "            &lt;nPurchaseLimitsNum&gt;5&lt;/nPurchaseLimitsNum&gt;\n" +
-            "        &lt;/cvrgList&gt;\n" +
-            "        &lt;cvrgList&gt;\n" +
-            "            &lt;cInsuranceType&gt;5座车交强险方案&lt;/cInsuranceType&gt;\n" +
-            "            &lt;cInsuranceTypeCode&gt;119&lt;/cInsuranceTypeCode&gt;\n" +
-            "            &lt;nPurchaseLimitsNum&gt;5&lt;/nPurchaseLimitsNum&gt;\n" +
-            "        &lt;/cvrgList&gt;\n" +
-            "        &lt;cvrgList&gt;\n" +
-            "            &lt;cInsuranceType&gt;A-1- 5座车方案&lt;/cInsuranceType&gt;\n" +
-            "            &lt;cInsuranceTypeCode&gt;103&lt;/cInsuranceTypeCode&gt;\n" +
-            "            &lt;nPurchaseLimitsNum&gt;5&lt;/nPurchaseLimitsNum&gt;\n" +
-            "        &lt;/cvrgList&gt;\n" +
-            "        &lt;cvrgList&gt;\n" +
-            "            &lt;cInsuranceType&gt;陕分线上代理(5座版)&lt;/cInsuranceType&gt;\n" +
-            "            &lt;cInsuranceTypeCode&gt;160&lt;/cInsuranceTypeCode&gt;\n" +
-            "            &lt;nPurchaseLimitsNum&gt;5&lt;/nPurchaseLimitsNum&gt;\n" +
-            "        &lt;/cvrgList&gt;\n" +
-            "        &lt;cvrgList&gt;\n" +
-            "            &lt;cInsuranceType&gt;A - 5座车方案&lt;/cInsuranceType&gt;\n" +
-            "            &lt;cInsuranceTypeCode&gt;104&lt;/cInsuranceTypeCode&gt;\n" +
-            "            &lt;nPurchaseLimitsNum&gt;5&lt;/nPurchaseLimitsNum&gt;\n" +
-            "        &lt;/cvrgList&gt;\n" +
-            "    &lt;/responseYwCvrg&gt;\n" +
-            "&lt;/packet&gt;</response></ns2:newQueryYwCvrgResponse></S:Body></S:Envelope>";
+    private static String HHH = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"><S:Body><ns2:queryVehicleXnyQuotationServiceResponse xmlns:ns2=\"http://newWS.front.app.echannel.ebiz.alltrust.com/\"><response>&lt;?xml version='1.0' encoding='UTF-8'?&gt;\n" +
+            "&lt;responseMessage&gt;\n" +
+            "    &lt;Applicant&gt;\n" +
+            "        &lt;CAppNme&gt;乔佳飞&lt;/CAppNme&gt;\n" +
+            "        &lt;CAreaCde&gt;103132&lt;/CAreaCde&gt;\n" +
+            "        &lt;CCertfCde&gt;140121198702020677&lt;/CCertfCde&gt;\n" +
+            "        &lt;CCertfCls&gt;120001&lt;/CCertfCls&gt;\n" +
+            "        &lt;CCity&gt;140100&lt;/CCity&gt;\n" +
+            "        &lt;CClntAddr&gt;山西省清徐县清源镇西关村紫林路15号&lt;/CClntAddr&gt;\n" +
+            "        &lt;CClntMrk&gt;1&lt;/CClntMrk&gt;\n" +
+            "        &lt;CCntrNme&gt;天勤&lt;/CCntrNme&gt;\n" +
+            "        &lt;CCounty&gt;140121&lt;/CCounty&gt;\n" +
+            "        &lt;CMobile&gt;15021040107&lt;/CMobile&gt;\n" +
+            "        &lt;CProvince&gt;140000&lt;/CProvince&gt;\n" +
+            "        &lt;CRelCde&gt;601005&lt;/CRelCde&gt;\n" +
+            "        &lt;CResvTxt5&gt;000&lt;/CResvTxt5&gt;\n" +
+            "        &lt;CSex&gt;106001&lt;/CSex&gt;\n" +
+            "        &lt;TBirthday&gt;1987-02-02&lt;/TBirthday&gt;\n" +
+            "        &lt;TCertfClsValiDate&gt;2037-03-09&lt;/TCertfClsValiDate&gt;\n" +
+            "        &lt;cAppCustRiskRank&gt;&lt;/cAppCustRiskRank&gt;\n" +
+            "        &lt;cAppHighRiskReason&gt;&lt;/cAppHighRiskReason&gt;\n" +
+            "    &lt;/Applicant&gt;\n" +
+            "    &lt;Insured&gt;\n" +
+            "        &lt;CAreaCde&gt;103132&lt;/CAreaCde&gt;\n" +
+            "        &lt;CCertfCde&gt;140121198702020677&lt;/CCertfCde&gt;\n" +
+            "        &lt;CCertfCls&gt;120001&lt;/CCertfCls&gt;\n" +
+            "        &lt;CCity&gt;140100&lt;/CCity&gt;\n" +
+            "        &lt;CClntAddr&gt;山西省清徐县清源镇西关村紫林路15号&lt;/CClntAddr&gt;\n" +
+            "        &lt;CClntMrk&gt;1&lt;/CClntMrk&gt;\n" +
+            "        &lt;CCounty&gt;140121&lt;/CCounty&gt;\n" +
+            "        &lt;CInsuredNme&gt;乔佳飞&lt;/CInsuredNme&gt;\n" +
+            "        &lt;CMobile&gt;15021040107&lt;/CMobile&gt;\n" +
+            "        &lt;CProvince&gt;140000&lt;/CProvince&gt;\n" +
+            "        &lt;CRelCdes&gt;601005&lt;/CRelCdes&gt;\n" +
+            "        &lt;CSex&gt;106001&lt;/CSex&gt;\n" +
+            "        &lt;TBirthday&gt;1987-02-02&lt;/TBirthday&gt;\n" +
+            "        &lt;TCertfClsValiDate&gt;2037-03-09&lt;/TCertfClsValiDate&gt;\n" +
+            "        &lt;TEffectedDate&gt;&lt;/TEffectedDate&gt;\n" +
+            "        &lt;cInsuredCustRiskRank&gt;&lt;/cInsuredCustRiskRank&gt;\n" +
+            "        &lt;cInsuredHighRiskReason&gt;&lt;/cInsuredHighRiskReason&gt;\n" +
+            "    &lt;/Insured&gt;\n" +
+            "    &lt;Head&gt;\n" +
+            "        &lt;errorCode&gt;000000&lt;/errorCode&gt;\n" +
+            "        &lt;errorMessage&gt;交易成功&lt;/errorMessage&gt;\n" +
+            "    &lt;/Head&gt;\n" +
+            "    &lt;Base&gt;\n" +
+            "        &lt;CAgrSlsBsns&gt;&lt;/CAgrSlsBsns&gt;\n" +
+            "        &lt;CAgtAgrSeqNO&gt;14B800P0000801&lt;/CAgtAgrSeqNO&gt;\n" +
+            "        &lt;CAgtZgNo&gt;202930000000800&lt;/CAgtZgNo&gt;\n" +
+            "        &lt;CBankCde&gt;&lt;/CBankCde&gt;\n" +
+            "        &lt;CBrkrNme&gt;太原天勤保险代理有限公司&lt;/CBrkrNme&gt;\n" +
+            "        &lt;CChaClassCde&gt;&lt;/CChaClassCde&gt;\n" +
+            "        &lt;CChaClassNme&gt;&lt;/CChaClassNme&gt;\n" +
+            "        &lt;CChaNme&gt;专业代理&lt;/CChaNme&gt;\n" +
+            "        &lt;CChaSpecail&gt;&lt;/CChaSpecail&gt;\n" +
+            "        &lt;CClientQuality&gt;192099&lt;/CClientQuality&gt;\n" +
+            "        &lt;CDataSrc&gt;iBusi&lt;/CDataSrc&gt;\n" +
+            "        &lt;CDptCde&gt;14B8&lt;/CDptCde&gt;\n" +
+            "        &lt;CDutyNme&gt;&lt;/CDutyNme&gt;\n" +
+            "        &lt;CProdNoJQ&gt;0326&lt;/CProdNoJQ&gt;\n" +
+            "        &lt;CProdNoSY&gt;0364&lt;/CProdNoSY&gt;\n" +
+            "        &lt;CRatioTyp&gt;340001&lt;/CRatioTyp&gt;\n" +
+            "        &lt;CSalegrpCde&gt;14B80002&lt;/CSalegrpCde&gt;\n" +
+            "        &lt;CServiceProvider&gt;&lt;/CServiceProvider&gt;\n" +
+            "        &lt;CShareSlsTyp&gt;199008&lt;/CShareSlsTyp&gt;\n" +
+            "        &lt;CSlsTyp&gt;189009&lt;/CSlsTyp&gt;\n" +
+            "        &lt;CWeRisk&gt;G&lt;/CWeRisk&gt;\n" +
+            "        &lt;cprmCur&gt;01&lt;/cprmCur&gt;\n" +
+            "        &lt;NAppTaxAmtJQ&gt;37.64&lt;/NAppTaxAmtJQ&gt;\n" +
+            "        &lt;NAppTaxAmtSY&gt;58.51&lt;/NAppTaxAmtSY&gt;\n" +
+            "        &lt;NBefTaxPrmJQ&gt;627.36&lt;/NBefTaxPrmJQ&gt;\n" +
+            "        &lt;NBefTaxPrmSY&gt;975.12&lt;/NBefTaxPrmSY&gt;\n" +
+            "        &lt;NCommRateJQ&gt;0.0&lt;/NCommRateJQ&gt;\n" +
+            "        &lt;NCommRateSY&gt;0.0&lt;/NCommRateSY&gt;\n" +
+            "        &lt;NCommissionRateUpperJQ&gt;0.0&lt;/NCommissionRateUpperJQ&gt;\n" +
+            "        &lt;NCommissionRateUpperSY&gt;0.0&lt;/NCommissionRateUpperSY&gt;\n" +
+            "        &lt;NPrm&gt;1698.63&lt;/NPrm&gt;\n" +
+            "        &lt;NPrmSY&gt;1033.63&lt;/NPrmSY&gt;\n" +
+            "        &lt;NRatioCoef&gt;1.0&lt;/NRatioCoef&gt;\n" +
+            "        &lt;namt&gt;3210000.0&lt;/namt&gt;\n" +
+            "        &lt;namtSY&gt;3010000.0&lt;/namtSY&gt;\n" +
+            "        &lt;TInsrncBgnTmJQ&gt;2023-10-02 13:00:00&lt;/TInsrncBgnTmJQ&gt;\n" +
+            "        &lt;TInsrncBgnTmSY&gt;2023-09-13 00:00:00&lt;/TInsrncBgnTmSY&gt;\n" +
+            "        &lt;TInsrncEndTmJQ&gt;2024-10-02 13:00:00&lt;/TInsrncEndTmJQ&gt;\n" +
+            "        &lt;TInsrncEndTmSY&gt;2024-09-12 00:00:00&lt;/TInsrncEndTmSY&gt;\n" +
+            "        &lt;cExceptionTyp&gt;Typ004&lt;/cExceptionTyp&gt;\n" +
+            "        &lt;tLastEndDateSY&gt;2023-10-03 00:00:00&lt;/tLastEndDateSY&gt;\n" +
+            "        &lt;tLastStartDateSY&gt;2022-10-03 00:00:00&lt;/tLastStartDateSY&gt;\n" +
+            "    &lt;/Base&gt;\n" +
+            "    &lt;Vhl&gt;\n" +
+            "        &lt;CAppointAreaCode&gt;&lt;/CAppointAreaCode&gt;\n" +
+            "        &lt;CBizMrk&gt;338001&lt;/CBizMrk&gt;\n" +
+            "        &lt;CBusType&gt;2&lt;/CBusType&gt;\n" +
+            "        &lt;CCheckCodeJQ&gt;&lt;/CCheckCodeJQ&gt;\n" +
+            "        &lt;CCheckCodeSY&gt;&lt;/CCheckCodeSY&gt;\n" +
+            "        &lt;CChgOwnerFlag&gt;0&lt;/CChgOwnerFlag&gt;\n" +
+            "        &lt;CDevice8Mrk&gt;0&lt;/CDevice8Mrk&gt;\n" +
+            "        &lt;CDisplacementLvl&gt;90&lt;/CDisplacementLvl&gt;\n" +
+            "        &lt;CEcdemicMrk&gt;1&lt;/CEcdemicMrk&gt;\n" +
+            "        &lt;CEngNo&gt;2046559&lt;/CEngNo&gt;\n" +
+            "        &lt;CFrmNo&gt;LVHFS4662M6046559&lt;/CFrmNo&gt;\n" +
+            "        &lt;CFstRegYm&gt;2021-10-09&lt;/CFstRegYm&gt;\n" +
+            "        &lt;CGlassTyp&gt;303011001&lt;/CGlassTyp&gt;\n" +
+            "        &lt;CInspectRec&gt;&lt;/CInspectRec&gt;\n" +
+            "        &lt;CInspectTm&gt;&lt;/CInspectTm&gt;\n" +
+            "        &lt;CInspectionCde&gt;305005003&lt;/CInspectionCde&gt;\n" +
+            "        &lt;CInspectorNme&gt;&lt;/CInspectorNme&gt;\n" +
+            "        &lt;CModelCde&gt;BTABKD0005&lt;/CModelCde&gt;\n" +
+            "        &lt;CModelNme&gt;本田DHW7103FSCSF轿车&lt;/CModelNme&gt;\n" +
+            "        &lt;CMortgageMrk&gt;0&lt;/CMortgageMrk&gt;\n" +
+            "        &lt;CNewMrk&gt;1&lt;/CNewMrk&gt;\n" +
+            "        &lt;CPlateColor&gt;&lt;/CPlateColor&gt;\n" +
+            "        &lt;CPlateModelCde&gt;BDFOXBUC0003&lt;/CPlateModelCde&gt;\n" +
+            "        &lt;CPlateNo&gt;晋A87JB9&lt;/CPlateNo&gt;\n" +
+            "        &lt;CPlateTyp&gt;02&lt;/CPlateTyp&gt;\n" +
+            "        &lt;CQryCdeJQ&gt;01AICS140023091804482613246523&lt;/CQryCdeJQ&gt;\n" +
+            "        &lt;CQryCdeSY&gt;V0101AICS140023091804482614451&lt;/CQryCdeSY&gt;\n" +
+            "        &lt;CQuestionJQ&gt;&lt;/CQuestionJQ&gt;\n" +
+            "        &lt;CQuestionSY&gt;&lt;/CQuestionSY&gt;\n" +
+            "        &lt;CRegOwner&gt;乔佳飞&lt;/CRegOwner&gt;\n" +
+            "        &lt;CRegVhlTyp&gt;K33&lt;/CRegVhlTyp&gt;\n" +
+            "        &lt;CResvTxt11&gt;&lt;/CResvTxt11&gt;\n" +
+            "        &lt;CResvTxt2&gt;&lt;/CResvTxt2&gt;\n" +
+            "        &lt;CResvTxt7&gt;&lt;/CResvTxt7&gt;\n" +
+            "        &lt;CUsageCde&gt;336001&lt;/CUsageCde&gt;\n" +
+            "        &lt;CUseYear&gt;341100002&lt;/CUseYear&gt;\n" +
+            "        &lt;CVhlCheck&gt;&lt;/CVhlCheck&gt;\n" +
+            "        &lt;CVhlTyp&gt;337001&lt;/CVhlTyp&gt;\n" +
+            "        &lt;fuelType&gt;32773001&lt;/fuelType&gt;\n" +
+            "        &lt;NActualValue&gt;85166&lt;/NActualValue&gt;\n" +
+            "        &lt;NIlogUuid&gt;&lt;/NIlogUuid&gt;\n" +
+            "        &lt;NMonDespRate&gt;0&lt;/NMonDespRate&gt;\n" +
+            "        &lt;NNewPriceValue&gt;98800&lt;/NNewPriceValue&gt;\n" +
+            "        &lt;NNewPurchaseValue&gt;85166&lt;/NNewPurchaseValue&gt;\n" +
+            "        &lt;NPoWeight&gt;0&lt;/NPoWeight&gt;\n" +
+            "        &lt;NResvNum1&gt;4&lt;/NResvNum1&gt;\n" +
+            "        &lt;NSeatNum&gt;5&lt;/NSeatNum&gt;\n" +
+            "        &lt;NTonage&gt;0&lt;/NTonage&gt;\n" +
+            "        &lt;noticeType&gt;&lt;/noticeType&gt;\n" +
+            "        &lt;TTransferDate&gt;&lt;/TTransferDate&gt;\n" +
+            "        &lt;TTransferTm&gt;&lt;/TTransferTm&gt;\n" +
+            "        &lt;cBuiResultFlag&gt;&lt;/cBuiResultFlag&gt;\n" +
+            "        &lt;cChdUbiData&gt;&lt;/cChdUbiData&gt;\n" +
+            "        &lt;cOperationVehicleProba&gt;&lt;/cOperationVehicleProba&gt;\n" +
+            "        &lt;cRiskScore&gt;&lt;/cRiskScore&gt;\n" +
+            "        &lt;cSuspectOperationVehicle&gt;&lt;/cSuspectOperationVehicle&gt;\n" +
+            "    &lt;/Vhl&gt;\n" +
+            "    &lt;CarModel/&gt;\n" +
+            "    &lt;Vhlowner&gt;\n" +
+            "        &lt;CAreaCde&gt;103132&lt;/CAreaCde&gt;\n" +
+            "        &lt;CCity&gt;140100&lt;/CCity&gt;\n" +
+            "        &lt;CCounty&gt;140121&lt;/CCounty&gt;\n" +
+            "        &lt;CMobile&gt;15021040107&lt;/CMobile&gt;\n" +
+            "        &lt;COwnerCls&gt;1&lt;/COwnerCls&gt;\n" +
+            "        &lt;COwnerNme&gt;乔佳飞&lt;/COwnerNme&gt;\n" +
+            "        &lt;CProvince&gt;140000&lt;/CProvince&gt;\n" +
+            "        &lt;CSex&gt;106001&lt;/CSex&gt;\n" +
+            "        &lt;TBirthday&gt;1987-02-02&lt;/TBirthday&gt;\n" +
+            "    &lt;/Vhlowner&gt;\n" +
+            "    &lt;CvrgListSY&gt;\n" +
+            "        &lt;cvrgSY&gt;\n" +
+            "            &lt;CCvrgNo&gt;030018&lt;/CCvrgNo&gt;\n" +
+            "            &lt;CIsMust&gt;&lt;/CIsMust&gt;\n" +
+            "            &lt;CPureRiskPremiumFlag&gt;&lt;/CPureRiskPremiumFlag&gt;\n" +
+            "            &lt;CResvTxt2&gt;&lt;/CResvTxt2&gt;\n" +
+            "            &lt;CResvTxt4&gt;&lt;/CResvTxt4&gt;\n" +
+            "            &lt;CTaxFree&gt;1&lt;/CTaxFree&gt;\n" +
+            "            &lt;NAppTaxAmt&gt;56.47&lt;/NAppTaxAmt&gt;\n" +
+            "            &lt;NBasePrm&gt;601.16&lt;/NBasePrm&gt;\n" +
+            "            &lt;NBefAnnPrm&gt;801.55&lt;/NBefAnnPrm&gt;\n" +
+            "            &lt;NBefPrm&gt;801.55&lt;/NBefPrm&gt;\n" +
+            "            &lt;NBefTaxPrm&gt;941.08&lt;/NBefTaxPrm&gt;\n" +
+            "            &lt;NCalcAnnPrm&gt;997.55&lt;/NCalcAnnPrm&gt;\n" +
+            "            &lt;NCvrgTaxRate&gt;0.06&lt;/NCvrgTaxRate&gt;\n" +
+            "            &lt;NLiabDaysLmt&gt;&lt;/NLiabDaysLmt&gt;\n" +
+            "            &lt;NPerAmt&gt;3000000.0&lt;/NPerAmt&gt;\n" +
+            "            &lt;NPrm&gt;997.55&lt;/NPrm&gt;\n" +
+            "            &lt;NPureRiskPremiun&gt;&lt;/NPureRiskPremiun&gt;\n" +
+            "            &lt;NRate&gt;0&lt;/NRate&gt;\n" +
+            "            &lt;NResvNum2&gt;0&lt;/NResvNum2&gt;\n" +
+            "        &lt;/cvrgSY&gt;\n" +
+            "        &lt;cvrgSY&gt;\n" +
+            "            &lt;CCvrgNo&gt;030101&lt;/CCvrgNo&gt;\n" +
+            "            &lt;CIsMust&gt;&lt;/CIsMust&gt;\n" +
+            "            &lt;CPureRiskPremiumFlag&gt;&lt;/CPureRiskPremiumFlag&gt;\n" +
+            "            &lt;CResvTxt2&gt;&lt;/CResvTxt2&gt;\n" +
+            "            &lt;CResvTxt4&gt;&lt;/CResvTxt4&gt;\n" +
+            "            &lt;CTaxFree&gt;1&lt;/CTaxFree&gt;\n" +
+            "            &lt;NAppTaxAmt&gt;2.04&lt;/NAppTaxAmt&gt;\n" +
+            "            &lt;NBasePrm&gt;21.74&lt;/NBasePrm&gt;\n" +
+            "            &lt;NBefAnnPrm&gt;28.99&lt;/NBefAnnPrm&gt;\n" +
+            "            &lt;NBefPrm&gt;28.99&lt;/NBefPrm&gt;\n" +
+            "            &lt;NBefTaxPrm&gt;34.04&lt;/NBefTaxPrm&gt;\n" +
+            "            &lt;NCalcAnnPrm&gt;36.08&lt;/NCalcAnnPrm&gt;\n" +
+            "            &lt;NCvrgTaxRate&gt;0.06&lt;/NCvrgTaxRate&gt;\n" +
+            "            &lt;NLiabDaysLmt&gt;1&lt;/NLiabDaysLmt&gt;\n" +
+            "            &lt;NPerAmt&gt;10000.0&lt;/NPerAmt&gt;\n" +
+            "            &lt;NPrm&gt;36.08&lt;/NPrm&gt;\n" +
+            "            &lt;NPureRiskPremiun&gt;&lt;/NPureRiskPremiun&gt;\n" +
+            "            &lt;NRate&gt;0.2174&lt;/NRate&gt;\n" +
+            "            &lt;NResvNum2&gt;0&lt;/NResvNum2&gt;\n" +
+            "        &lt;/cvrgSY&gt;\n" +
+            "    &lt;/CvrgListSY&gt;\n" +
+            "    &lt;PrmCoef&gt;\n" +
+            "        &lt;CClaimAdjustLevel&gt;0&lt;/CClaimAdjustLevel&gt;\n" +
+            "        &lt;CClaimAdjustReason&gt;&lt;/CClaimAdjustReason&gt;\n" +
+            "        &lt;CInsuranceGroup&gt;JSGBDS&lt;/CInsuranceGroup&gt;\n" +
+            "        &lt;CNoClaimAdjustReason&gt;&lt;/CNoClaimAdjustReason&gt;\n" +
+            "        &lt;CTraSafFloRate&gt;&lt;/CTraSafFloRate&gt;\n" +
+            "        &lt;NAdditionalCostRate&gt;0.25&lt;/NAdditionalCostRate&gt;\n" +
+            "        &lt;NAgoClmRecQuick&gt;1&lt;/NAgoClmRecQuick&gt;\n" +
+            "        &lt;NAutonomyAdjust&gt;1&lt;/NAutonomyAdjust&gt;\n" +
+            "        &lt;NChannelAdjust&gt;1&lt;/NChannelAdjust&gt;\n" +
+            "        &lt;NClaimTimes&gt;2&lt;/NClaimTimes&gt;\n" +
+            "        &lt;NInsureYears&gt;2&lt;/NInsureYears&gt;\n" +
+            "        &lt;NPeccancyAdjustValue&gt;1&lt;/NPeccancyAdjustValue&gt;\n" +
+            "        &lt;NPricingAdjustValue&gt;1.244527&lt;/NPricingAdjustValue&gt;\n" +
+            "        &lt;NResvNum3&gt;0&lt;/NResvNum3&gt;\n" +
+            "        &lt;NResvNum5&gt;1.2445&lt;/NResvNum5&gt;\n" +
+            "        &lt;NTotDisc&gt;1.2445&lt;/NTotDisc&gt;\n" +
+            "        &lt;NUwdisc&gt;0&lt;/NUwdisc&gt;\n" +
+            "        &lt;nabsoDedu&gt;1&lt;/nabsoDedu&gt;\n" +
+            "    &lt;/PrmCoef&gt;\n" +
+            "    &lt;FeeListSY&gt;\n" +
+            "        &lt;feeSY&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;A&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeSY&gt;\n" +
+            "        &lt;feeSY&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;Y0&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeSY&gt;\n" +
+            "        &lt;feeSY&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;Y1&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeSY&gt;\n" +
+            "        &lt;feeSY&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;Y2&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeSY&gt;\n" +
+            "        &lt;feeSY&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;Y3&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeSY&gt;\n" +
+            "        &lt;feeSY&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;Y5&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeSY&gt;\n" +
+            "        &lt;feeSY&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;Y10&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeSY&gt;\n" +
+            "        &lt;feeSY&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;Y11&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeSY&gt;\n" +
+            "        &lt;feeSY&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;Y12&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeSY&gt;\n" +
+            "        &lt;feeSY&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;036&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeSY&gt;\n" +
+            "        &lt;feeSY&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;037&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeSY&gt;\n" +
+            "        &lt;feeSY&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;038&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeSY&gt;\n" +
+            "    &lt;/FeeListSY&gt;\n" +
+            "    &lt;CVehiclePriceList/&gt;\n" +
+            "    &lt;CvrgListJQ&gt;\n" +
+            "        &lt;cvrgJQ&gt;\n" +
+            "            &lt;appTaxAmt&gt;37.64&lt;/appTaxAmt&gt;\n" +
+            "            &lt;basicPremium&gt;950.0&lt;/basicPremium&gt;\n" +
+            "            &lt;befTaxPrm&gt;627.36&lt;/befTaxPrm&gt;\n" +
+            "            &lt;beforeDiscountPremium&gt;950.0&lt;/beforeDiscountPremium&gt;\n" +
+            "            &lt;beforeDiscountYearPremium&gt;950.0&lt;/beforeDiscountYearPremium&gt;\n" +
+            "            &lt;coverageAmount&gt;200000.0&lt;/coverageAmount&gt;\n" +
+            "            &lt;coverageCode&gt;030050&lt;/coverageCode&gt;\n" +
+            "            &lt;coverageNumber&gt;0&lt;/coverageNumber&gt;\n" +
+            "            &lt;coveragePremium&gt;665.0&lt;/coveragePremium&gt;\n" +
+            "            &lt;coverageRate&gt;0.0&lt;/coverageRate&gt;\n" +
+            "            &lt;coverageSeq&gt;1&lt;/coverageSeq&gt;\n" +
+            "            &lt;cvrgTaxRate&gt;0.06&lt;/cvrgTaxRate&gt;\n" +
+            "            &lt;maxAmount&gt;627.36&lt;/maxAmount&gt;\n" +
+            "            &lt;minAmount&gt;37.64&lt;/minAmount&gt;\n" +
+            "            &lt;originalPremium&gt;665.0&lt;/originalPremium&gt;\n" +
+            "            &lt;taxFree&gt;1&lt;/taxFree&gt;\n" +
+            "        &lt;/cvrgJQ&gt;\n" +
+            "    &lt;/CvrgListJQ&gt;\n" +
+            "    &lt;Tax&gt;\n" +
+            "        &lt;address&gt;山西省清徐县清源镇西关村紫林路15号&lt;/address&gt;\n" +
+            "        &lt;annualTaxamt&gt;180&lt;/annualTaxamt&gt;\n" +
+            "        &lt;calcFlag&gt;1&lt;/calcFlag&gt;\n" +
+            "        &lt;calculatedType&gt;349003001&lt;/calculatedType&gt;\n" +
+            "        &lt;calculatedTypeLastYear&gt;&lt;/calculatedTypeLastYear&gt;\n" +
+            "        &lt;conruty&gt;&lt;/conruty&gt;\n" +
+            "        &lt;currentTax&gt;90&lt;/currentTax&gt;\n" +
+            "        &lt;decStatus&gt;0&lt;/decStatus&gt;\n" +
+            "        &lt;declareDate&gt;&lt;/declareDate&gt;\n" +
+            "        &lt;department&gt;&lt;/department&gt;\n" +
+            "        &lt;endDateLastYear&gt;&lt;/endDateLastYear&gt;\n" +
+            "        &lt;exhaust&gt;0.988&lt;/exhaust&gt;\n" +
+            "        &lt;formerTax&gt;0&lt;/formerTax&gt;\n" +
+            "        &lt;idType&gt;120001&lt;/idType&gt;\n" +
+            "        &lt;lastCompany&gt;&lt;/lastCompany&gt;\n" +
+            "        &lt;lastPaidYear&gt;&lt;/lastPaidYear&gt;\n" +
+            "        &lt;lateFee&gt;0&lt;/lateFee&gt;\n" +
+            "        &lt;lateFeeChange&gt;0.00&lt;/lateFeeChange&gt;\n" +
+            "        &lt;lateFeeValue&gt;0.00&lt;/lateFeeValue&gt;\n" +
+            "        &lt;licenceType&gt;&lt;/licenceType&gt;\n" +
+            "        &lt;locationCode&gt;&lt;/locationCode&gt;\n" +
+            "        &lt;payChange&gt;0.00&lt;/payChange&gt;\n" +
+            "        &lt;payChangeLastYear&gt;0.00&lt;/payChangeLastYear&gt;\n" +
+            "        &lt;payEvidenceNo&gt;&lt;/payEvidenceNo&gt;\n" +
+            "        &lt;payLastYear&gt;1&lt;/payLastYear&gt;\n" +
+            "        &lt;payNo&gt;&lt;/payNo&gt;\n" +
+            "        &lt;payValueCurrent&gt;0.00&lt;/payValueCurrent&gt;\n" +
+            "        &lt;payValueLastYear&gt;0.00&lt;/payValueLastYear&gt;\n" +
+            "        &lt;pcCode&gt;&lt;/pcCode&gt;\n" +
+            "        &lt;poCategory&gt;&lt;/poCategory&gt;\n" +
+            "        &lt;positionCode&gt;&lt;/positionCode&gt;\n" +
+            "        &lt;reduceNo&gt;0012061009&lt;/reduceNo&gt;\n" +
+            "        &lt;remark&gt;&lt;/remark&gt;\n" +
+            "        &lt;returnTaxFlag&gt;&lt;/returnTaxFlag&gt;\n" +
+            "        &lt;startDateLastYear&gt;&lt;/startDateLastYear&gt;\n" +
+            "        &lt;sumUpTax&gt;90.0&lt;/sumUpTax&gt;\n" +
+            "        &lt;taxBeginDateCurrentYear&gt;2023-01-01 00:00:00&lt;/taxBeginDateCurrentYear&gt;\n" +
+            "        &lt;taxBeginDateLastYear&gt;&lt;/taxBeginDateLastYear&gt;\n" +
+            "        &lt;taxBillType&gt;&lt;/taxBillType&gt;\n" +
+            "        &lt;taxBillingNo&gt;&lt;/taxBillingNo&gt;\n" +
+            "        &lt;taxCurrentType&gt;349002004&lt;/taxCurrentType&gt;\n" +
+            "        &lt;taxDocumentDate&gt;&lt;/taxDocumentDate&gt;\n" +
+            "        &lt;taxEndDateCurrentYear&gt;2023-12-31 00:00:00&lt;/taxEndDateCurrentYear&gt;\n" +
+            "        &lt;taxFreeAmount&gt;&lt;/taxFreeAmount&gt;\n" +
+            "        &lt;taxPaidAreaCode&gt;&lt;/taxPaidAreaCode&gt;\n" +
+            "        &lt;taxPaidDate&gt;2023-09-12&lt;/taxPaidDate&gt;\n" +
+            "        &lt;taxPayerName&gt;乔佳飞&lt;/taxPayerName&gt;\n" +
+            "        &lt;taxPeriod&gt;&lt;/taxPeriod&gt;\n" +
+            "        &lt;taxPrintNo&gt;&lt;/taxPrintNo&gt;\n" +
+            "        &lt;taxReduceProp&gt;0.5&lt;/taxReduceProp&gt;\n" +
+            "        &lt;taxReduceRsn&gt;349006006&lt;/taxReduceRsn&gt;\n" +
+            "        &lt;taxReduceType&gt;3490020042&lt;/taxReduceType&gt;\n" +
+            "        &lt;taxStandard&gt;0&lt;/taxStandard&gt;\n" +
+            "        &lt;taxerCode&gt;&lt;/taxerCode&gt;\n" +
+            "        &lt;taxpayerAddress&gt;山西省清徐县清源镇西关村紫林路15号&lt;/taxpayerAddress&gt;\n" +
+            "        &lt;taxpayerNo&gt;140121198702020677&lt;/taxpayerNo&gt;\n" +
+            "        &lt;taxpayerType&gt;338001&lt;/taxpayerType&gt;\n" +
+            "        &lt;tel&gt;15021040107&lt;/tel&gt;\n" +
+            "        &lt;ticketType&gt;&lt;/ticketType&gt;\n" +
+            "        &lt;totalChange&gt;0&lt;/totalChange&gt;\n" +
+            "        &lt;totalTaxValue&gt;0.00&lt;/totalTaxValue&gt;\n" +
+            "        &lt;unitRate&gt;180.0&lt;/unitRate&gt;\n" +
+            "        &lt;unittypeCde&gt;&lt;/unittypeCde&gt;\n" +
+            "        &lt;untaxedPolicyNo&gt;&lt;/untaxedPolicyNo&gt;\n" +
+            "        &lt;useStatus&gt;&lt;/useStatus&gt;\n" +
+            "        &lt;vehecleTypeDetail&gt;3490010013&lt;/vehecleTypeDetail&gt;\n" +
+            "        &lt;vehicleCategory&gt;K33&lt;/vehicleCategory&gt;\n" +
+            "        &lt;vehicleNo&gt;晋A87JB9&lt;/vehicleNo&gt;\n" +
+            "        &lt;vehicleQuality&gt;0&lt;/vehicleQuality&gt;\n" +
+            "        &lt;vehicleType&gt;349001001&lt;/vehicleType&gt;\n" +
+            "        &lt;zip&gt;&lt;/zip&gt;\n" +
+            "    &lt;/Tax&gt;\n" +
+            "    &lt;Agent&gt;\n" +
+            "        &lt;agentBankType&gt;&lt;/agentBankType&gt;\n" +
+            "        &lt;agentCategory&gt;&lt;/agentCategory&gt;\n" +
+            "        &lt;agentCategoryNme&gt;&lt;/agentCategoryNme&gt;\n" +
+            "        &lt;agentCode&gt;14B800P00008&lt;/agentCode&gt;\n" +
+            "        &lt;agentMajorType&gt;&lt;/agentMajorType&gt;\n" +
+            "        &lt;agentNme&gt;太原天勤保险代理有限公司&lt;/agentNme&gt;\n" +
+            "        &lt;agentProfId&gt;202930000000800&lt;/agentProfId&gt;\n" +
+            "        &lt;agentSaleNme&gt;专业代理&lt;/agentSaleNme&gt;\n" +
+            "        &lt;agentStaffNme&gt;&lt;/agentStaffNme&gt;\n" +
+            "        &lt;agentStockMrk&gt;189009&lt;/agentStockMrk&gt;\n" +
+            "        &lt;agentStockType&gt;199008&lt;/agentStockType&gt;\n" +
+            "        &lt;agentType&gt;191010&lt;/agentType&gt;\n" +
+            "        &lt;commissionProprortion&gt;0.04&lt;/commissionProprortion&gt;\n" +
+            "        &lt;conferCode&gt;14B800P0000801&lt;/conferCode&gt;\n" +
+            "        &lt;cusLvl&gt;&lt;/cusLvl&gt;\n" +
+            "        &lt;custNature&gt;192099&lt;/custNature&gt;\n" +
+            "        &lt;dutyCde&gt;&lt;/dutyCde&gt;\n" +
+            "        &lt;dutyCnm&gt;&lt;/dutyCnm&gt;\n" +
+            "        &lt;extPrm&gt;0.0&lt;/extPrm&gt;\n" +
+            "        &lt;extProp&gt;0.0&lt;/extProp&gt;\n" +
+            "        &lt;fromCde&gt;&lt;/fromCde&gt;\n" +
+            "        &lt;qlftNo&gt;202930000000800&lt;/qlftNo&gt;\n" +
+            "        &lt;subCoNo&gt;14B800P0000801&lt;/subCoNo&gt;\n" +
+            "        &lt;supportServicePacket&gt;&lt;/supportServicePacket&gt;\n" +
+            "        &lt;supportServiceProvider&gt;&lt;/supportServiceProvider&gt;\n" +
+            "    &lt;/Agent&gt;\n" +
+            "    &lt;VehicleAdjust&gt;\n" +
+            "        &lt;CInsuranceGroup&gt;JSGBDS&lt;/CInsuranceGroup&gt;\n" +
+            "        &lt;drinkDrivingDealTime&gt;0&lt;/drinkDrivingDealTime&gt;\n" +
+            "        &lt;drinkDrivingNonDealTime&gt;0&lt;/drinkDrivingNonDealTime&gt;\n" +
+            "        &lt;drinkDrivingTime&gt;0&lt;/drinkDrivingTime&gt;\n" +
+            "        &lt;drunkDrivingDealTime&gt;0&lt;/drunkDrivingDealTime&gt;\n" +
+            "        &lt;drunkDrivingFloatingRate&gt;&lt;/drunkDrivingFloatingRate&gt;\n" +
+            "        &lt;drunkDrivingLastYear&gt;&lt;/drunkDrivingLastYear&gt;\n" +
+            "        &lt;drunkDrivingNonDealTime&gt;0&lt;/drunkDrivingNonDealTime&gt;\n" +
+            "        &lt;drunkDrivingTime&gt;0&lt;/drunkDrivingTime&gt;\n" +
+            "        &lt;dutyReparFloatingRate&gt;0.7&lt;/dutyReparFloatingRate&gt;\n" +
+            "        &lt;JQRecordDanger&gt;347014&lt;/JQRecordDanger&gt;\n" +
+            "        &lt;otherFirstNoProveYear&gt;&lt;/otherFirstNoProveYear&gt;\n" +
+            "        &lt;overCommitmentLastYear&gt;&lt;/overCommitmentLastYear&gt;\n" +
+            "        &lt;overallFloatingCoefficient&gt;0.7&lt;/overallFloatingCoefficient&gt;\n" +
+            "        &lt;rateFloatFlag&gt;&lt;/rateFloatFlag&gt;\n" +
+            "        &lt;recDiscount&gt;0.7&lt;/recDiscount&gt;\n" +
+            "        &lt;roadAccidentFloatingRate&gt;347014&lt;/roadAccidentFloatingRate&gt;\n" +
+            "        &lt;roadAccidentFloatingRateValue&gt;-30&lt;/roadAccidentFloatingRateValue&gt;\n" +
+            "        &lt;roadViolatFloatingRate&gt;1&lt;/roadViolatFloatingRate&gt;\n" +
+            "        &lt;secondaryOrganization&gt;14&lt;/secondaryOrganization&gt;\n" +
+            "        &lt;taxDiscount&gt;&lt;/taxDiscount&gt;\n" +
+            "        &lt;typeMismatchLastYear&gt;&lt;/typeMismatchLastYear&gt;\n" +
+            "        &lt;voilateRoadSignLastYear&gt;&lt;/voilateRoadSignLastYear&gt;\n" +
+            "        &lt;weDiscount&gt;&lt;/weDiscount&gt;\n" +
+            "        &lt;cInsuranceGroup&gt;JSGBDS&lt;/cInsuranceGroup&gt;\n" +
+            "    &lt;/VehicleAdjust&gt;\n" +
+            "    &lt;FeeListJQ&gt;\n" +
+            "        &lt;feeJQ&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;Y0&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeJQ&gt;\n" +
+            "        &lt;feeJQ&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;Y1&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeJQ&gt;\n" +
+            "        &lt;feeJQ&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;Y2&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeJQ&gt;\n" +
+            "        &lt;feeJQ&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;Y5&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeJQ&gt;\n" +
+            "        &lt;feeJQ&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;A&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeJQ&gt;\n" +
+            "        &lt;feeJQ&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;036&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeJQ&gt;\n" +
+            "        &lt;feeJQ&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;037&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeJQ&gt;\n" +
+            "        &lt;feeJQ&gt;\n" +
+            "            &lt;CAppNo&gt;&lt;/CAppNo&gt;\n" +
+            "            &lt;CFeetypCde&gt;038&lt;/CFeetypCde&gt;\n" +
+            "            &lt;CSellfeeBusicls&gt;&lt;/CSellfeeBusicls&gt;\n" +
+            "            &lt;NFee&gt;0.0&lt;/NFee&gt;\n" +
+            "            &lt;NFeeProp&gt;0.0&lt;/NFeeProp&gt;\n" +
+            "            &lt;NGotPrm&gt;&lt;/NGotPrm&gt;\n" +
+            "        &lt;/feeJQ&gt;\n" +
+            "    &lt;/FeeListJQ&gt;\n" +
+            "    &lt;FixspecListJQ&gt;\n" +
+            "        &lt;fixspecDataJQ&gt;\n" +
+            "            &lt;modify&gt;0&lt;/modify&gt;\n" +
+            "            &lt;ruleMrk&gt;1&lt;/ruleMrk&gt;\n" +
+            "            &lt;seqNo&gt;1&lt;/seqNo&gt;\n" +
+            "            &lt;specContent&gt;所有权发生转移,应及时到保险公司办理变更,未办理变更手续,且因转让导致保险车辆危险程度显著增加而发生保险事故的,保险人不负赔偿责任。&lt;/specContent&gt;\n" +
+            "            &lt;specNo&gt;202100024&lt;/specNo&gt;\n" +
+            "        &lt;/fixspecDataJQ&gt;\n" +
+            "        &lt;fixspecDataJQ&gt;\n" +
+            "            &lt;modify&gt;0&lt;/modify&gt;\n" +
+            "            &lt;ruleMrk&gt;1&lt;/ruleMrk&gt;\n" +
+            "            &lt;seqNo&gt;2&lt;/seqNo&gt;\n" +
+            "            &lt;specContent&gt;投保次日起,您可以关注本公司网页(http://www.yongcheng.com/new/policyAndClaim/query/type/policy/index) 查询、验真、下载电子保单、批单。电子保单、批单使用方法已发送至您在本公司预留的邮箱地址内,请您查收!&lt;/specContent&gt;\n" +
+            "            &lt;specNo&gt;202100011&lt;/specNo&gt;\n" +
+            "        &lt;/fixspecDataJQ&gt;\n" +
+            "        &lt;fixspecDataJQ&gt;\n" +
+            "            &lt;modify&gt;0&lt;/modify&gt;\n" +
+            "            &lt;ruleMrk&gt;1&lt;/ruleMrk&gt;\n" +
+            "            &lt;seqNo&gt;3&lt;/seqNo&gt;\n" +
+            "            &lt;specContent&gt;本保单车辆发生保险事故时,对事故车辆保险公司可以以不限于实物的方式进行赔付。&lt;/specContent&gt;\n" +
+            "            &lt;specNo&gt;201900114&lt;/specNo&gt;\n" +
+            "        &lt;/fixspecDataJQ&gt;\n" +
+            "        &lt;fixspecDataJQ&gt;\n" +
+            "            &lt;modify&gt;0&lt;/modify&gt;\n" +
+            "            &lt;ruleMrk&gt;1&lt;/ruleMrk&gt;\n" +
+            "            &lt;seqNo&gt;4&lt;/seqNo&gt;\n" +
+            "            &lt;specContent&gt;收到本保险单后请认真核对,如与投保事实不符,请立即通知本公司采用保险批单更改,其他方式的更改无效;如超过48小时未提出异议的,视为投保人同意本保险单所载内容&lt;/specContent&gt;\n" +
+            "            &lt;specNo&gt;202100224&lt;/specNo&gt;\n" +
+            "        &lt;/fixspecDataJQ&gt;\n" +
+            "    &lt;/FixspecListJQ&gt;\n" +
+            "    &lt;FixspecListSY&gt;\n" +
+            "        &lt;fixspecDataSY&gt;\n" +
+            "            &lt;modify&gt;0&lt;/modify&gt;\n" +
+            "            &lt;ruleMrk&gt;1&lt;/ruleMrk&gt;\n" +
+            "            &lt;seqNo&gt;1&lt;/seqNo&gt;\n" +
+            "            &lt;specContent&gt;本保单车辆发生保险事故时,对事故车辆保险公司可以以不限于实物的方式进行赔付。&lt;/specContent&gt;\n" +
+            "            &lt;specNo&gt;201900114&lt;/specNo&gt;\n" +
+            "        &lt;/fixspecDataSY&gt;\n" +
+            "        &lt;fixspecDataSY&gt;\n" +
+            "            &lt;modify&gt;0&lt;/modify&gt;\n" +
+            "            &lt;ruleMrk&gt;1&lt;/ruleMrk&gt;\n" +
+            "            &lt;seqNo&gt;2&lt;/seqNo&gt;\n" +
+            "            &lt;specContent&gt;投保次日起,您可以关注本公司网页(http://www.yongcheng.com/new/policyAndClaim/query/type/policy/index) 查询、验真、下载电子保单、批单。电子保单、批单使用方法已发送至您在本公司预留的邮箱地址内,请您查收!&lt;/specContent&gt;\n" +
+            "            &lt;specNo&gt;202100012&lt;/specNo&gt;\n" +
+            "        &lt;/fixspecDataSY&gt;\n" +
+            "        &lt;fixspecDataSY&gt;\n" +
+            "            &lt;modify&gt;0&lt;/modify&gt;\n" +
+            "            &lt;ruleMrk&gt;1&lt;/ruleMrk&gt;\n" +
+            "            &lt;seqNo&gt;3&lt;/seqNo&gt;\n" +
+            "            &lt;specContent&gt;本保单车上人员责任险仅承保驾驶人,赔偿限额为10000.0元。&lt;/specContent&gt;\n" +
+            "            &lt;specNo&gt;201500028&lt;/specNo&gt;\n" +
+            "        &lt;/fixspecDataSY&gt;\n" +
+            "        &lt;fixspecDataSY&gt;\n" +
+            "            &lt;modify&gt;0&lt;/modify&gt;\n" +
+            "            &lt;ruleMrk&gt;1&lt;/ruleMrk&gt;\n" +
+            "            &lt;seqNo&gt;4&lt;/seqNo&gt;\n" +
+            "            &lt;specContent&gt;收到本保险单后请认真核对,如与投保事实不符,请立即通知本公司采用保险批单更改,其他方式的更改无效;如超过48小时未提出异议的,视为投保人同意本保险单所载内容&lt;/specContent&gt;\n" +
+            "            &lt;specNo&gt;202100025&lt;/specNo&gt;\n" +
+            "        &lt;/fixspecDataSY&gt;\n" +
+            "        &lt;fixspecDataSY&gt;\n" +
+            "            &lt;modify&gt;0&lt;/modify&gt;\n" +
+            "            &lt;ruleMrk&gt;1&lt;/ruleMrk&gt;\n" +
+            "            &lt;seqNo&gt;5&lt;/seqNo&gt;\n" +
+            "            &lt;specContent&gt;所有权发生转移,应及时到保险公司办理变更,未办理变更手续,且因转让导致保险车辆危险程度显著增加而发生保险事故的,保险人不负赔偿责任。&lt;/specContent&gt;\n" +
+            "            &lt;specNo&gt;202100124&lt;/specNo&gt;\n" +
+            "        &lt;/fixspecDataSY&gt;\n" +
+            "        &lt;fixspecDataSY&gt;\n" +
+            "            &lt;modify&gt;0&lt;/modify&gt;\n" +
+            "            &lt;ruleMrk&gt;1&lt;/ruleMrk&gt;\n" +
+            "            &lt;seqNo&gt;6&lt;/seqNo&gt;\n" +
+            "            &lt;specContent&gt;保险车辆发生交通事故后应保留第一现场,并在48小时内通知保险公司,故意或因重大过失未及时通知,致使保险事故的性质、原因、损失程度等难以确定的,保险公司对无法确定的部分,不承担赔偿责任。&lt;/specContent&gt;\n" +
+            "            &lt;specNo&gt;201500015&lt;/specNo&gt;\n" +
+            "        &lt;/fixspecDataSY&gt;\n" +
+            "    &lt;/FixspecListSY&gt;\n" +
+            "    &lt;TfiWarnList&gt;\n" +
+            "        &lt;tfiWarnData&gt;\n" +
+            "            &lt;warnDate&gt;&lt;/warnDate&gt;\n" +
+            "            &lt;warnMessage&gt;&lt;/warnMessage&gt;\n" +
+            "            &lt;warnName&gt;提示&lt;/warnName&gt;\n" +
+            "        &lt;/tfiWarnData&gt;\n" +
+            "        &lt;tfiWarnData/&gt;\n" +
+            "        &lt;tfiWarnData&gt;\n" +
+            "            &lt;warnDate&gt;&lt;/warnDate&gt;\n" +
+            "            &lt;warnMessage&gt;车险平台返回信息重复投保保单号: 6605212022140929002703保险公司代码:GPIC保险公司名称:中国人寿财产保险公司号牌号码:晋A87JB9号牌种类代码:02号牌种类名称:小型汽车号牌车架号:LVHFS4662M6046559发动机号:2046559签单日期:20220923起保日期:202210030000终保日期:202310030000险种代码:0301200    险种名称:机动车损失保险险种代码:0301003    险种名称:道路救援服务特约条款险种代码:0301600    险种名称:机动车第三者责任保险险种代码:0301701    险种名称:机动车车上人员责任保险(司机)险种代码:0301702    险种名称:机动车车上人员责任保险(乘客)以上为所有结果信息,完毕!*_*&lt;/warnMessage&gt;\n" +
+            "            &lt;warnName&gt;提示&lt;/warnName&gt;\n" +
+            "        &lt;/tfiWarnData&gt;\n" +
+            "        &lt;tfiWarnData/&gt;\n" +
+            "    &lt;/TfiWarnList&gt;\n" +
+            "&lt;/responseMessage&gt;</response></ns2:queryVehicleXnyQuotationServiceResponse></S:Body></S:Envelope>";
 
 
     public static void main(String[] agr) throws JsonProcessingException {
@@ -891,7 +1479,7 @@ public class HttpXmlUtil {
 
 
         //报价
-        String responseStr = AAA;
+//        String responseStr = AAA;
 //        String responseStr = BBB;
 //        报价响应
 //        String responseStr = CCC;
@@ -899,7 +1487,7 @@ public class HttpXmlUtil {
 //        String responseStr = EEE;
 //        String responseStr = FFF;
 //        String responseStr = GGG;
-//        String responseStr = HHH;
+        String responseStr = HHH;
 
         String str = YcBuildData.cleanResponseStr(responseStr);
 

+ 8 - 1
src/main/java/com/ydtech/utils/IDCardUtils.java

@@ -341,6 +341,11 @@ public class IDCardUtils {
      */
     public static Map<String, String> addressResolution(String address) {
         String regex = "(?<province>[^省]+自治区|.*?省|.*?行政区|.*?市|.*?蒙古)(?<city>[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市|.*?县)(?<district>[^县]+县|.*?区|.+市|.*?旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇)?(?<detail>.*)";
+
+        if(address.indexOf("重庆市") == 0){
+            regex = "(?<province>[^市].*?市)(?<city>[^县]+县|.*?区|.+市|.*?旗|.+海域|.+岛)(?<district>[^县]+县|.*?区|.+市|.*?旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇)?(?<detail>.*)";
+        }
+
         Matcher m = Pattern.compile(regex).matcher(address);
         String province = null, city = null, district = null, town = null, detail = null;
 //        List<Map<String, String>> table = new ArrayList<Map<String, String>>();
@@ -366,7 +371,9 @@ public class IDCardUtils {
     public static void main(String[] args) throws ParseException {
 
 
-        Map m = addressResolution("内蒙古锡林郭勒盟太仆寺旗红旗镇建中村张油坊营子3组48号");
+//        Map m = addressResolution("内蒙古锡林郭勒盟太仆寺旗红旗镇建中村张油坊营子3组48号");
+//        Map m = addressResolution("重庆市永川区朱沱镇大江住址路48号附59号");
+        Map m = addressResolution("重庆市永川区朱沱镇大江住址路48号附59号");
 
         // String IDCardNum="210102820826411";
         // String IDCardNum="210102198208264114";