Bläddra i källkod

解决永诚新车车牌问题。

ligang134 2 år sedan
förälder
incheckning
001b58847e

+ 65 - 42
src/main/java/com/ydtech/modules/ins/service/impl/InsAlltrustApiServiceImpl.java

@@ -102,7 +102,7 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
     private AuthorityDataXml authorityDataXml = null;
 
 
-    private ObjectMapper xmlMapper = null;
+//    private ObjectMapper xmlMapper = null;
 
     //请求信息列表
     List<String> requestInfoList = new ArrayList<>();
@@ -186,15 +186,14 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
 //    }
 
     private ObjectMapper gainXmlMapper() {
-        if (null == xmlMapper) {
-            xmlMapper = new XmlMapper();
-            xmlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-            xmlMapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
-            xmlMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
-            xmlMapper.setPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE);
-            xmlMapper.enable(MapperFeature.USE_STD_BEAN_NAMING);
-            xmlMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
-        }
+        ObjectMapper xmlMapper = new XmlMapper();
+
+        xmlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+        xmlMapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
+        xmlMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+        xmlMapper.setPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE);
+        xmlMapper.enable(MapperFeature.USE_STD_BEAN_NAMING);
+        xmlMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
         return xmlMapper;
     }
 
@@ -294,7 +293,7 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
 
 
         HttpResult httpResult = new HttpResult();
-        ObjectMapper xmlMapper = this.gainXmlMapper();
+//        ObjectMapper xmlMapper = this.gainXmlMapper();
 
         InsAreaCompany iac = null;
 
@@ -317,7 +316,8 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
         String textHead = "==========永诚API方式 - 车架号:" + carInfo.getVinNo() + " - 报价 ";
         while (!boo) {
             rr = requestApi(m, new RuoteResponse(), iac, YcBuildData.API_QUOTE, InsQuoteFlow.Q_S_0, textHead);
-            if (rr.getHead().getErrorCode().equals("009999") && (rr.getHead().getErrorMessage().contains("车主" ) || rr.getHead().getErrorMessage().contains("投保人" ) || rr.getHead().getErrorMessage().contains("被保人" ))) return HttpResult.error(rr.getHead().getErrorMessage());
+            if (rr.getHead().getErrorCode().equals("009999") && (rr.getHead().getErrorMessage().contains("车主") || rr.getHead().getErrorMessage().contains("投保人") || rr.getHead().getErrorMessage().contains("被保人")))
+                return HttpResult.error(rr.getHead().getErrorMessage());
             //处理返回信息
             //1、交强险重复投保处理
             boo = ciRepetitionInsure(rr, m);
@@ -1338,8 +1338,16 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
         String xmlString = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tns=\"http://newWS.front.app.echannel.ebiz.alltrust.com/\">";
         xmlString += "<soapenv:Body>";
         try {
-            mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
-            xmlString += mapper.writeValueAsString(requestData);
+
+            ObjectMapper xmlMapper = new XmlMapper();
+            xmlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+            xmlMapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
+            xmlMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+            xmlMapper.setPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE);
+            xmlMapper.enable(MapperFeature.USE_STD_BEAN_NAMING);
+            xmlMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
+
+            xmlString += xmlMapper.writeValueAsString(requestData);
 
             xmlString += "</soapenv:Body>\n" +
                     "</soapenv:Envelope>";
@@ -1908,22 +1916,26 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
         List<String> applicantProvinceData = applicant.getProvinceData();
 
         if (CollUtil.isNotEmpty(ownerProvinceData) && CollUtil.isNotEmpty(insuredProvinceData) && CollUtil.isNotEmpty(applicantProvinceData)) {
-            yaQuoteInfoVo.getOwnerInfo().setProvinceData(ownerProvinceData);
-            m.getRequestLabel().getCondition().getVhlowner().setCProvince(ownerProvinceData.get(0));
-            m.getRequestLabel().getCondition().getVhlowner().setCCity(ownerProvinceData.get(1));
-            m.getRequestLabel().getCondition().getVhlowner().setCCounty(ownerProvinceData.get(2));
-
 
-            yaQuoteInfoVo.getInsuredPersonInfo().setProvinceData(insuredProvinceData);
-            m.getRequestLabel().getCondition().getInsured().setCProvince(insuredProvinceData.get(0));
-            m.getRequestLabel().getCondition().getInsured().setCCity(insuredProvinceData.get(1));
-            m.getRequestLabel().getCondition().getInsured().setCCounty(insuredProvinceData.get(2));
+            //构造参数
+            buildRegionParam(m, yaQuoteInfoVo, ownerProvinceData, insuredProvinceData, applicantProvinceData);
 
-
-            yaQuoteInfoVo.getPolicyHolderInfo().setProvinceData(applicantProvinceData);
-            m.getRequestLabel().getCondition().getApplicant().setCProvince(applicantProvinceData.get(0));
-            m.getRequestLabel().getCondition().getApplicant().setCCity(applicantProvinceData.get(1));
-            m.getRequestLabel().getCondition().getApplicant().setCCounty(applicantProvinceData.get(2));
+//            yaQuoteInfoVo.getOwnerInfo().setProvinceData(ownerProvinceData);
+//            m.getRequestLabel().getCondition().getVhlowner().setCProvince(ownerProvinceData.get(0));
+//            m.getRequestLabel().getCondition().getVhlowner().setCCity(ownerProvinceData.get(1));
+//            m.getRequestLabel().getCondition().getVhlowner().setCCounty(ownerProvinceData.get(2));
+//
+//
+//            yaQuoteInfoVo.getInsuredPersonInfo().setProvinceData(insuredProvinceData);
+//            m.getRequestLabel().getCondition().getInsured().setCProvince(insuredProvinceData.get(0));
+//            m.getRequestLabel().getCondition().getInsured().setCCity(insuredProvinceData.get(1));
+//            m.getRequestLabel().getCondition().getInsured().setCCounty(insuredProvinceData.get(2));
+//
+//
+//            yaQuoteInfoVo.getPolicyHolderInfo().setProvinceData(applicantProvinceData);
+//            m.getRequestLabel().getCondition().getApplicant().setCProvince(applicantProvinceData.get(0));
+//            m.getRequestLabel().getCondition().getApplicant().setCCity(applicantProvinceData.get(1));
+//            m.getRequestLabel().getCondition().getApplicant().setCCounty(applicantProvinceData.get(2));
             return;
         }
 
@@ -1983,9 +1995,6 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
         if (StringUtils.isNotEmpty(sb)) throw new SystemException(sb.toString());
 
         if (CollUtil.isNotEmpty(ownerMap)) {
-            m.getRequestLabel().getCondition().getVhlowner().setCProvince(ownerMap.get("provinceCode"));
-            m.getRequestLabel().getCondition().getVhlowner().setCCity(ownerMap.get("cityCode"));
-            m.getRequestLabel().getCondition().getVhlowner().setCCounty(ownerMap.get("areaCode"));
             ownerProvinceData.add(ownerMap.get("provinceCode"));
             ownerProvinceData.add(ownerMap.get("cityCode"));
             ownerProvinceData.add(ownerMap.get("areaCode"));
@@ -1993,29 +2002,21 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
         }
 
         if (CollUtil.isNotEmpty(insureMap)) {
-            m.getRequestLabel().getCondition().getInsured().setCProvince(insureMap.get("provinceCode"));
-            m.getRequestLabel().getCondition().getInsured().setCCity(insureMap.get("cityCode"));
-            m.getRequestLabel().getCondition().getInsured().setCCounty(insureMap.get("areaCode"));
             insuredProvinceData.add(insureMap.get("provinceCode"));
             insuredProvinceData.add(insureMap.get("cityCode"));
             insuredProvinceData.add(insureMap.get("areaCode"));
 
         }
 
-
         if (CollUtil.isNotEmpty(applicantMap)) {
-            m.getRequestLabel().getCondition().getApplicant().setCProvince(applicantMap.get("provinceCode"));
-            m.getRequestLabel().getCondition().getApplicant().setCCity(applicantMap.get("cityCode"));
-            m.getRequestLabel().getCondition().getApplicant().setCCounty(applicantMap.get("areaCode"));
             applicantProvinceData.add(applicantMap.get("provinceCode"));
             applicantProvinceData.add(applicantMap.get("cityCode"));
             applicantProvinceData.add(applicantMap.get("areaCode"));
         }
 
 
-        yaQuoteInfoVo.getOwnerInfo().setProvinceData(ownerProvinceData);
-        yaQuoteInfoVo.getInsuredPersonInfo().setProvinceData(insuredProvinceData);
-        yaQuoteInfoVo.getPolicyHolderInfo().setProvinceData(applicantProvinceData);
+        //构造参数
+        buildRegionParam(m, yaQuoteInfoVo, ownerProvinceData, insuredProvinceData, applicantProvinceData);
 
 
     }
@@ -2189,7 +2190,8 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
 
         String cleanStr = YcBuildData.cleanResponseStr(responseData);
         try {
-            response = (T) xmlMapper.readValue(cleanStr, response.getClass());
+
+            response = (T) gainXmlMapper().readValue(cleanStr, response.getClass());
             return response;
         } catch (JsonProcessingException e) {
             log.debug("=========永诚API方式 - xml请求 - {}解析报错:{}", iqf.getDesc(), e.getMessage());
@@ -2299,4 +2301,25 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
     }
 
 
+    private void buildRegionParam(Ruote m,BaseQuoteInfoVo yaQuoteInfoVo,List<String> ownerProvinceData,List<String> insuredProvinceData,List<String> applicantProvinceData) {
+        yaQuoteInfoVo.getOwnerInfo().setProvinceData(ownerProvinceData);
+        m.getRequestLabel().getCondition().getVhlowner().setCProvince(ownerProvinceData.get(0));
+        m.getRequestLabel().getCondition().getVhlowner().setCCity(ownerProvinceData.get(1));
+        m.getRequestLabel().getCondition().getVhlowner().setCCounty(ownerProvinceData.get(2));
+
+
+        yaQuoteInfoVo.getInsuredPersonInfo().setProvinceData(insuredProvinceData);
+        m.getRequestLabel().getCondition().getInsured().setCProvince(insuredProvinceData.get(0));
+        m.getRequestLabel().getCondition().getInsured().setCCity(insuredProvinceData.get(1));
+        m.getRequestLabel().getCondition().getInsured().setCCounty(insuredProvinceData.get(2));
+
+
+        yaQuoteInfoVo.getPolicyHolderInfo().setProvinceData(applicantProvinceData);
+        m.getRequestLabel().getCondition().getApplicant().setCProvince(applicantProvinceData.get(0));
+        m.getRequestLabel().getCondition().getApplicant().setCCity(applicantProvinceData.get(1));
+        m.getRequestLabel().getCondition().getApplicant().setCCounty(applicantProvinceData.get(2));
+
+    }
+
+
 }

+ 3 - 1
src/main/java/com/ydtech/modules/order/entity/bo/UnderwritingRulesBo.java

@@ -159,7 +159,9 @@ public class UnderwritingRulesBo implements Serializable {
     }
 
     private void setTheVehicleFactor(CarInfoVo carInfo) {
-        this.licenseNo = carInfo.getLicenseNo().substring(0, 2);
+        if(carInfo.isNoLicenseFlag()){
+            this.licenseNo = carInfo.getLicenseNo().substring(0, 2);
+        }
         this.carPrice = Integer.valueOf(carInfo.getPurchasePrice());
 //        this.carAge = carAge;
     }