소스 검색

Merge branch 'test' of http://www.baoxianzhanggui.com:8090/sxzgd/java-insagent-pc into test

qinfenglong 2 년 전
부모
커밋
d143937b0f
31개의 변경된 파일544개의 추가작업 그리고 319개의 파일을 삭제
  1. 5 6
      src/main/java/com/ydtech/constants/enums/dict/InsOrderStatusEnum.java
  2. 2 0
      src/main/java/com/ydtech/modules/ins/model/guoren/InsOrderStatusResp.java
  3. 2 2
      src/main/java/com/ydtech/modules/ins/model/guoren/NonAutoInsOrderReq.java
  4. 2 0
      src/main/java/com/ydtech/modules/ins/model/guoren/PolicyResp.java
  5. 16 15
      src/main/java/com/ydtech/modules/order/components/huatai/HuaTaiRequestApiComponents.java
  6. 1 0
      src/main/java/com/ydtech/modules/order/components/zijin/ZijinRequestApiComponents.java
  7. 3 1
      src/main/java/com/ydtech/modules/order/components/zijin/ZijinVehicleTypeErrorComponents.java
  8. 13 0
      src/main/java/com/ydtech/modules/order/constants/InsuranceTypeCorrespondence.java
  9. 1 8
      src/main/java/com/ydtech/modules/order/controller/GuoRenOrderApiController.java
  10. 2 0
      src/main/java/com/ydtech/modules/order/controller/InsOrdersController.java
  11. 1 3
      src/main/java/com/ydtech/modules/order/controller/YongChengOrderApiController.java
  12. 11 0
      src/main/java/com/ydtech/modules/order/entity/InsAreaCompany.java
  13. 2 2
      src/main/java/com/ydtech/modules/order/entity/api/guoren/constants/PlatformInterfaceCode.java
  14. 27 0
      src/main/java/com/ydtech/modules/order/entity/api/guoren/request/SignatureRequest.java
  15. 50 0
      src/main/java/com/ydtech/modules/order/entity/api/guoren/response/SignatureResponse.java
  16. 164 146
      src/main/java/com/ydtech/modules/order/entity/api/huatai/request/HuaTaiQuotedPriceRequest.java
  17. 24 1
      src/main/java/com/ydtech/modules/order/entity/api/zhongmei/constants/enums/ContractEnum.java
  18. 1 1
      src/main/java/com/ydtech/modules/order/entity/api/zijin/request/SubmitVerifyRequest.java
  19. 36 0
      src/main/java/com/ydtech/modules/order/entity/crawler/response/CrawlerVerifyPaymentResponse.java
  20. 10 15
      src/main/java/com/ydtech/modules/order/service/GuorenOrderApiService.java
  21. 1 1
      src/main/java/com/ydtech/modules/order/service/InsUploadFilesService.java
  22. 15 3
      src/main/java/com/ydtech/modules/order/service/impl/CarModelServiceImpl.java
  23. 54 95
      src/main/java/com/ydtech/modules/order/service/impl/GuorenOrderApiServiceImpl.java
  24. 5 0
      src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java
  25. 2 9
      src/main/java/com/ydtech/modules/order/service/impl/InsUploadFilesServiceImpl.java
  26. 12 6
      src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java
  27. 16 1
      src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java
  28. 2 2
      src/main/java/com/ydtech/modules/order/service/impl/ZijinOrderApiServiceImpl.java
  29. 62 0
      src/main/java/com/ydtech/modules/order/utils/AESUtilsWithDataBase.java
  30. 1 1
      src/main/resources/application-prod.yml
  31. 1 1
      src/main/resources/application-test.yml

+ 5 - 6
src/main/java/com/ydtech/constants/enums/dict/InsOrderStatusEnum.java

@@ -26,17 +26,16 @@ public enum InsOrderStatusEnum implements IBaseEnum {
 
 
     //人工核保退回状态,直至再次提交核保,状态修改为待核保
     //人工核保退回状态,直至再次提交核保,状态修改为待核保
     TO_BACK("4", "核保退回", 6, 0),
     TO_BACK("4", "核保退回", 6, 0),
-
-
     ;
     ;
 
 
 
 
-    private String code;
-    private String desc;
+    private final String code;
+
+    private final String desc;
     //排序
     //排序
-    private Integer sort;
+    private final Integer sort;
     //状态  0 启用  1 不启用
     //状态  0 启用  1 不启用
-    private Integer status;
+    private final Integer status;
 
 
 
 
     public static InsOrderStatusEnum matchKey(String key) {
     public static InsOrderStatusEnum matchKey(String key) {

+ 2 - 0
src/main/java/com/ydtech/modules/ins/model/guoren/InsOrderStatusResp.java

@@ -17,9 +17,11 @@ public class InsOrderStatusResp {
     @JsonProperty(value = "resultCode")
     @JsonProperty(value = "resultCode")
     @JSONField(name = "resultCode")
     @JSONField(name = "resultCode")
     private Integer resultCode;
     private Integer resultCode;
+
     @JsonProperty(value = "resultMsg")
     @JsonProperty(value = "resultMsg")
     @JSONField(name = "resultMsg")
     @JSONField(name = "resultMsg")
     private String resultMsg;
     private String resultMsg;
+
     @JsonProperty(value = "data")
     @JsonProperty(value = "data")
     @JSONField(name = "data")
     @JSONField(name = "data")
     private List<DataDTO> data;
     private List<DataDTO> data;

+ 2 - 2
src/main/java/com/ydtech/modules/ins/model/guoren/NonAutoInsOrderReq.java

@@ -55,9 +55,9 @@ public class NonAutoInsOrderReq {
 
 
         List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
         List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
         //交强
         //交强
-        RiskInfoVo ciRiskInfo = (RiskInfoVo) riskList.stream().filter(x -> x.getRiskCode().equals(InsuranceRisk.TRAFFIC.getCode())).findFirst().orElse(null);
+        RiskInfoVo ciRiskInfo = 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);
+        RiskInfoVo biRiskInfo = riskList.stream().filter(x -> x.getRiskCode().equals(InsuranceRisk.BUSINESS.getCode())).findFirst().orElse(null);
 
 
 
 
         NonAutoInsOrderReq req = new NonAutoInsOrderReq();
         NonAutoInsOrderReq req = new NonAutoInsOrderReq();

+ 2 - 0
src/main/java/com/ydtech/modules/ins/model/guoren/PolicyResp.java

@@ -20,9 +20,11 @@ public class PolicyResp {
     @JsonProperty(value = "resultCode")
     @JsonProperty(value = "resultCode")
     @JSONField(name = "resultCode")
     @JSONField(name = "resultCode")
     private Integer resultCode;
     private Integer resultCode;
+
     @JsonProperty(value = "resultMsg")
     @JsonProperty(value = "resultMsg")
     @JSONField(name = "resultMsg")
     @JSONField(name = "resultMsg")
     private String resultMsg;
     private String resultMsg;
+
     @JsonProperty(value = "data")
     @JsonProperty(value = "data")
     @JSONField(name = "data")
     @JSONField(name = "data")
     private String data;
     private String data;

+ 16 - 15
src/main/java/com/ydtech/modules/order/components/huatai/HuaTaiRequestApiComponents.java

@@ -7,12 +7,17 @@ import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.exception.SystemException;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.order.entity.api.huatai.HuaTaiBaseRequest;
 import com.ydtech.modules.order.entity.api.huatai.HuaTaiBaseRequest;
 import com.ydtech.modules.order.entity.api.huatai.HuaTaiBaseResponse;
 import com.ydtech.modules.order.entity.api.huatai.HuaTaiBaseResponse;
+import com.ydtech.modules.order.entity.api.huatai.HuaTaiEncryptReq;
+import com.ydtech.modules.order.entity.api.huatai.HuaTaiEncryptRes;
 import com.ydtech.modules.order.entity.api.huatai.constants.HuaTaiTransCode;
 import com.ydtech.modules.order.entity.api.huatai.constants.HuaTaiTransCode;
 import com.ydtech.modules.order.entity.api.huatai.request.HuaTaiQuotedPriceRequest;
 import com.ydtech.modules.order.entity.api.huatai.request.HuaTaiQuotedPriceRequest;
 import com.ydtech.modules.order.entity.api.huatai.response.HuaTaiQuotedPriceResponse;
 import com.ydtech.modules.order.entity.api.huatai.response.HuaTaiQuotedPriceResponse;
 import com.ydtech.modules.order.entity.api.huatai.request.*;
 import com.ydtech.modules.order.entity.api.huatai.request.*;
 import com.ydtech.modules.order.entity.api.huatai.response.*;
 import com.ydtech.modules.order.entity.api.huatai.response.*;
+import com.ydtech.modules.order.utils.AESUtilsWithDataBase;
 import com.ydtech.modules.order.utils.InsuranceLog;
 import com.ydtech.modules.order.utils.InsuranceLog;
+import com.ydtech.utils.Base64Utils;
+import com.ydtech.utils.RSA.RSAUtils;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpEntity;
@@ -64,36 +69,34 @@ public class HuaTaiRequestApiComponents {
         String busReqString = JSON.toJSONString(q, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
         String busReqString = JSON.toJSONString(q, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
         InsuranceLog.infoLog(InsuranceEnum.HTIC.getPinyin(), "\n\t---------> URl: {} \n---------> 请求参数:{}", url, busReqString);
         InsuranceLog.infoLog(InsuranceEnum.HTIC.getPinyin(), "\n\t---------> URl: {} \n---------> 请求参数:{}", url, busReqString);
         // ----加密starting------------
         // ----加密starting------------
-       /* //1.先获取16位随机字符串 Key
+        //1.先获取16位随机字符串 Key
         String key=generateRadomStr(8);
         String key=generateRadomStr(8);
         //2.使用Base64加密请求报文
         //2.使用Base64加密请求报文
-        String base64ReqJson=Base64Utils.getBase64Encode(busReqString);
+        String base64ReqJson= Base64Utils.getBase64Encode(busReqString);
         //3. 使用AES算法 秘钥Key  对 base64ReqJson加密
         //3. 使用AES算法 秘钥Key  对 base64ReqJson加密
-         String busiContent=AESUtilsWithDataBase.encryptECBPK5Hex(base64ReqJson, key);
+         String busiContent= AESUtilsWithDataBase.encryptECBPK5Base64(base64ReqJson, key);
         //4.对Key 使用RSA算法进行加密
         //4.对Key 使用RSA算法进行加密
         String accessToken="";
         String accessToken="";
         try{
         try{
-            accessToken=RSAUtils.rsaEncrypt(key,properties.getHuaTaiPublicKey(),"UTF-8");
+            accessToken= RSAUtils.rsaEncrypt(key, properties.getHuaTaiPublicKey(),"utf-8");
         }catch (Exception e){
         }catch (Exception e){
             throw new SystemException("RSA加密获取accessToken失败!");
             throw new SystemException("RSA加密获取accessToken失败!");
         }
         }
         HuaTaiEncryptReq encryptReq=new HuaTaiEncryptReq();
         HuaTaiEncryptReq encryptReq=new HuaTaiEncryptReq();
         encryptReq.setInsuredCode(properties.getInsuredCode());
         encryptReq.setInsuredCode(properties.getInsuredCode());
-        encryptReq.setSourceCode("016");
+        encryptReq.setSourceCode(properties.getSourceCode());
         encryptReq.setBusiContent(busiContent);
         encryptReq.setBusiContent(busiContent);
         encryptReq.setAccessToken(accessToken);
         encryptReq.setAccessToken(accessToken);
         String jsonString = JSON.toJSONString(encryptReq, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
         String jsonString = JSON.toJSONString(encryptReq, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
         InsuranceLog.infoLog(InsuranceEnum.HTIC.getPinyin(), "\n\t---------> 加密后的参数:{}", jsonString);
         InsuranceLog.infoLog(InsuranceEnum.HTIC.getPinyin(), "\n\t---------> 加密后的参数:{}", jsonString);
-        HttpEntity<String> httpEntity = new HttpEntity<>(jsonString, httpHeaders);*/
+        HttpEntity<String> httpEntity = new HttpEntity<>(jsonString, httpHeaders);
         //----加密endding------------
         //----加密endding------------
-        //不加密
-        HttpEntity<String> httpEntity = new HttpEntity<>(busReqString, httpHeaders);
         ResponseEntity<String> response = restTemplate.postForEntity(url, httpEntity, String.class);
         ResponseEntity<String> response = restTemplate.postForEntity(url, httpEntity, String.class);
         String   body = response.getBody();
         String   body = response.getBody();
 
 
         InsuranceLog.infoLog(InsuranceEnum.HTIC.getPinyin(), "\n\t---------> 解密前的参数:{}", body);
         InsuranceLog.infoLog(InsuranceEnum.HTIC.getPinyin(), "\n\t---------> 解密前的参数:{}", body);
         // ------解密starting---------
         // ------解密starting---------
-        /*HuaTaiEncryptRes encryptRes=JSON.parseObject(body,HuaTaiEncryptRes.class);
+        HuaTaiEncryptRes encryptRes=JSON.parseObject(body,HuaTaiEncryptRes.class);
         //1.通过自己的私钥对key进行解密
         //1.通过自己的私钥对key进行解密
         String resAccessToken="";
         String resAccessToken="";
         try{
         try{
@@ -102,14 +105,12 @@ public class HuaTaiRequestApiComponents {
             throw new SystemException("RSA解密获取accessToken失败!");
             throw new SystemException("RSA解密获取accessToken失败!");
         }
         }
         //2.用key解密出出参报文
         //2.用key解密出出参报文
-        String aseDecryptStr=AESUtilsWithDataBase.decryptECBPK5Hex(encryptRes.getBusiContent(),resAccessToken);
+        String aseDecryptStr=AESUtilsWithDataBase.decryptECBPK5Base64(encryptRes.getBusiContent(),resAccessToken);
         //3.使用Base64解密最终返回报文
         //3.使用Base64解密最终返回报文
-        String text = Base64Utils.getBase64Encode(aseDecryptStr);
-        S t= JSON.parseObject(text, tClass);*/
+        String text = Base64Utils.getBase64Decode(aseDecryptStr);
         // ------解密ending---------
         // ------解密ending---------
-        InsuranceLog.infoLog(InsuranceEnum.HTIC.getPinyin(), "\n\t---------> {}:{}", "响应参数", body);
-        //不加密
-        S t= JSON.parseObject(body, tClass);
+        InsuranceLog.infoLog(InsuranceEnum.HTIC.getPinyin(), "\n\t---------> {}:{}", "响应参数", text);
+        S t= JSON.parseObject(text, tClass);
         if (ObjectUtils.isEmpty(t)) {
         if (ObjectUtils.isEmpty(t)) {
             throw new SystemException("请求失败");
             throw new SystemException("请求失败");
         }
         }

+ 1 - 0
src/main/java/com/ydtech/modules/order/components/zijin/ZijinRequestApiComponents.java

@@ -254,6 +254,7 @@ public class ZijinRequestApiComponents {
             calculatePremiumResponse = responseMessageAbstractHandler.messageHandler(calculatePremiumRequest, calculatePremiumResponse, httpHeaders, modelQueryRequest, message, queryActualValueRequest, retry);
             calculatePremiumResponse = responseMessageAbstractHandler.messageHandler(calculatePremiumRequest, calculatePremiumResponse, httpHeaders, modelQueryRequest, message, queryActualValueRequest, retry);
         }
         }
 
 
+
         return calculatePremiumResponse;
         return calculatePremiumResponse;
     }
     }
 
 

+ 3 - 1
src/main/java/com/ydtech/modules/order/components/zijin/ZijinVehicleTypeErrorComponents.java

@@ -90,16 +90,18 @@ public class ZijinVehicleTypeErrorComponents extends ResponseMessageAbstractHand
         calculatePremiumRequest.modificationOfVehicleType(vehicleModelInfosDTO, actualValue);
         calculatePremiumRequest.modificationOfVehicleType(vehicleModelInfosDTO, actualValue);
         calculatePremiumRequest.setOrderId(modelQueryResponse.getOrderId());
         calculatePremiumRequest.setOrderId(modelQueryResponse.getOrderId());
         calculatePremiumRequest.setOrderNo(modelQueryResponse.getOrderNo());
         calculatePremiumRequest.setOrderNo(modelQueryResponse.getOrderNo());
+        calculatePremiumRequest.getVehicleInfo().setIsInvokeJingYou("0");
+
         List<CalculatePremiumRequest.ItemKindListDTO> itemKindListDTO = calculatePremiumRequest.getItemKindList().stream()
         List<CalculatePremiumRequest.ItemKindListDTO> itemKindListDTO = calculatePremiumRequest.getItemKindList().stream()
                 .filter(x -> x.getKindCode().equals(MotorVehicleInsuranceEnum.MVI_A.getCode())).collect(Collectors.toList());
                 .filter(x -> x.getKindCode().equals(MotorVehicleInsuranceEnum.MVI_A.getCode())).collect(Collectors.toList());
 
 
         if (itemKindListDTO.size() == 1) {
         if (itemKindListDTO.size() == 1) {
             itemKindListDTO.get(0).setAmount(actualValue);
             itemKindListDTO.get(0).setAmount(actualValue);
         }
         }
-
         return zijinRequestApiComponents.calculatePremium(calculatePremiumRequest, httpHeaders, modelQueryRequest, message, queryActualValueRequest, retry);
         return zijinRequestApiComponents.calculatePremium(calculatePremiumRequest, httpHeaders, modelQueryRequest, message, queryActualValueRequest, retry);
     }
     }
 
 
+
     @Data
     @Data
     public static class CarType {
     public static class CarType {
 
 

+ 13 - 0
src/main/java/com/ydtech/modules/order/constants/InsuranceTypeCorrespondence.java

@@ -20,6 +20,8 @@ public class InsuranceTypeCorrespondence {
 
 
     // 中煤财险
     // 中煤财险
     protected static final String[] ZM_CONNECT_INSURANCE_TYPE = {"01", "02", "041", "044", "501", "502", "5041", "5044", "49", "21", "5302", "5344", "5341"};
     protected static final String[] ZM_CONNECT_INSURANCE_TYPE = {"01", "02", "041", "044", "501", "502", "5041", "5044", "49", "21", "5302", "5344", "5341"};
+    //华泰财险
+    protected static final String[] HuaTai_CONNECT_INSURANCE_TYPE = {"A", "B", "D11", "D12", "MMA", "MMB", "MMD11", "MMD12", "BD", "L", "PB", "PD12", "PD11"};
 
 
     // 紫金财险
     // 紫金财险
     protected static final String[] ZJ_CONNECT_INSURANCE_TYPE = {"A", "B", "D3", "D4", "FA", "FB", "FD3", "FD4", "B2", "L", "S1", "S3", "S2"};
     protected static final String[] ZJ_CONNECT_INSURANCE_TYPE = {"A", "B", "D3", "D4", "FA", "FB", "FD3", "FD4", "B2", "L", "S1", "S3", "S2"};
@@ -34,11 +36,16 @@ public class InsuranceTypeCorrespondence {
     protected static final String[] ABSOLUTE_DEDUCTIBLE = {"MJ1", "MJ2", "MJ3", "MJ4"};
     protected static final String[] ABSOLUTE_DEDUCTIBLE = {"MJ1", "MJ2", "MJ3", "MJ4"};
 
 
     protected static final Map<String, String> RISK = new HashMap<>();
     protected static final Map<String, String> RISK = new HashMap<>();
+    protected static final Map<String, String> HuaTai_RISK = new HashMap<>();
 
 
     static {
     static {
         RISK.put("0507", "0330");
         RISK.put("0507", "0330");
         RISK.put("0510", "0361");
         RISK.put("0510", "0361");
     }
     }
+    static {
+        HuaTai_RISK.put("0507", "1002");
+        HuaTai_RISK.put("0510", "1251");
+    }
 
 
     //中煤使用性质转换关系
     //中煤使用性质转换关系
     protected static final Map<String, String> ZM_CAR_MotorUsageTypeCode = new HashMap<>();
     protected static final Map<String, String> ZM_CAR_MotorUsageTypeCode = new HashMap<>();
@@ -55,6 +62,9 @@ public class InsuranceTypeCorrespondence {
     public static String[] getZmConnectInsuranceType() {
     public static String[] getZmConnectInsuranceType() {
         return ZM_CONNECT_INSURANCE_TYPE;
         return ZM_CONNECT_INSURANCE_TYPE;
     }
     }
+    public static String[] getHuaTaiConnectInsuranceType() {
+        return HuaTai_CONNECT_INSURANCE_TYPE;
+    }
 
 
     public static String[] getZjConnectInsuranceType() {
     public static String[] getZjConnectInsuranceType() {
         return ZJ_CONNECT_INSURANCE_TYPE;
         return ZJ_CONNECT_INSURANCE_TYPE;
@@ -75,6 +85,9 @@ public class InsuranceTypeCorrespondence {
     public static Map<String, String> getRisk() {
     public static Map<String, String> getRisk() {
         return RISK;
         return RISK;
     }
     }
+    public static Map<String, String> getHuaTaiRisk() {
+        return HuaTai_RISK;
+    }
 
 
     public static Map<String, String> getZM_CAR_MotorUsageTypeCode() {
     public static Map<String, String> getZM_CAR_MotorUsageTypeCode() {
         return ZM_CAR_MotorUsageTypeCode;
         return ZM_CAR_MotorUsageTypeCode;

+ 1 - 8
src/main/java/com/ydtech/modules/order/controller/GuoRenOrderApiController.java

@@ -28,7 +28,7 @@ import javax.validation.Valid;
  * @author: lig
  * @author: lig
  * @date: 2023-08-14
  * @date: 2023-08-14
  */
  */
-@Api(tags = "国任财险API方式对接")
+@Api(tags = "国任财险 API")
 @RestController
 @RestController
 @RequestMapping("/api/guoRen")
 @RequestMapping("/api/guoRen")
 public class GuoRenOrderApiController {
 public class GuoRenOrderApiController {
@@ -93,7 +93,6 @@ public class GuoRenOrderApiController {
     @PostMapping(value = "/callBack")
     @PostMapping(value = "/callBack")
     public HttpResult callBackApi(HttpServletRequest request) {
     public HttpResult callBackApi(HttpServletRequest request) {
         return guorenOrderApiService.callBackApi(request);
         return guorenOrderApiService.callBackApi(request);
-
     }
     }
 
 
     @ApiOperation(value = "电子保单")
     @ApiOperation(value = "电子保单")
@@ -102,9 +101,6 @@ public class GuoRenOrderApiController {
         return guorenOrderApiService.getPolicyPrintApi(policyPrintVo);
         return guorenOrderApiService.getPolicyPrintApi(policyPrintVo);
     }
     }
 
 
-    /**
-     * 同步非车保险
-     */
     @ApiOperation(value = "同步非车保险")
     @ApiOperation(value = "同步非车保险")
     @PostMapping("/syncNonAutoIns")
     @PostMapping("/syncNonAutoIns")
     public HttpResult syncNonAutoIns() {
     public HttpResult syncNonAutoIns() {
@@ -114,9 +110,6 @@ public class GuoRenOrderApiController {
         return HttpResult.ok(dataDTO);
         return HttpResult.ok(dataDTO);
     }
     }
 
 
-    /**
-     * 同步驾意险
-     */
     @ApiOperation(value = "同步驾意险")
     @ApiOperation(value = "同步驾意险")
     @PostMapping("/syncAccidentInsure")
     @PostMapping("/syncAccidentInsure")
     public HttpResult syncAccidentInsure(@RequestBody @Valid AccidentalDrivingQueryVo accidentalDrivingVo) {
     public HttpResult syncAccidentInsure(@RequestBody @Valid AccidentalDrivingQueryVo accidentalDrivingVo) {

+ 2 - 0
src/main/java/com/ydtech/modules/order/controller/InsOrdersController.java

@@ -120,6 +120,8 @@ public class InsOrdersController extends BaseController {
             InsAreaCompanyHistoryVo insAreaCompanyHistoryVo = new InsAreaCompanyHistoryVo();
             InsAreaCompanyHistoryVo insAreaCompanyHistoryVo = new InsAreaCompanyHistoryVo();
             BeanUtils.copyProperties(a, insAreaCompanyHistoryVo);
             BeanUtils.copyProperties(a, insAreaCompanyHistoryVo);
             insAreaCompanyHistoryVo.setLicenseno(insOrders.getLicenseno());
             insAreaCompanyHistoryVo.setLicenseno(insOrders.getLicenseno());
+            insAreaCompanyHistoryVo.setUserName(insOrders.getUsername());
+            insAreaCompanyHistoryVo.setUserId(insOrders.getUserid());
             return insAreaCompanyHistoryVo;
             return insAreaCompanyHistoryVo;
         }).collect(Collectors.toList());
         }).collect(Collectors.toList());
 
 

+ 1 - 3
src/main/java/com/ydtech/modules/order/controller/YongChengOrderApiController.java

@@ -33,13 +33,11 @@ import java.util.Map;
  * @author: lig
  * @author: lig
  * @date: 2023年02月07日 0007
  * @date: 2023年02月07日 0007
  */
  */
-@Api(tags = "永诚API方式对接")
+@Api(tags = "永诚财险 API")
 @RestController
 @RestController
 @RequestMapping("/api/yongCheng")
 @RequestMapping("/api/yongCheng")
 public class YongChengOrderApiController {
 public class YongChengOrderApiController {
 
 
-    private static final Logger log = LoggerFactory.getLogger("alltrust");
-
     private final YongchengOrderApiService yongchengOrderApiService;
     private final YongchengOrderApiService yongchengOrderApiService;
 
 
     private final EsmInsAttachInsureMapper esmInsAttachInsureMapper;
     private final EsmInsAttachInsureMapper esmInsAttachInsureMapper;

+ 11 - 0
src/main/java/com/ydtech/modules/order/entity/InsAreaCompany.java

@@ -276,6 +276,17 @@ public class InsAreaCompany implements Serializable {
     @TableField(value = "score")
     @TableField(value = "score")
     private String score;
     private String score;
 
 
+    /**
+     * 业务员
+     */
+    @TableField(exist = false)
+    private String userName;
+
+    /**
+     * 业务员ID
+     */
+    @TableField(exist = false)
+    private String userId;
 
 
     @TableField(exist = false)
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;

+ 2 - 2
src/main/java/com/ydtech/modules/order/entity/api/guoren/constants/PlatformInterfaceCode.java

@@ -1,8 +1,6 @@
 package com.ydtech.modules.order.entity.api.guoren.constants;
 package com.ydtech.modules.order.entity.api.guoren.constants;
 
 
-
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
-import lombok.Data;
 import lombok.Getter;
 import lombok.Getter;
 
 
 @Getter
 @Getter
@@ -35,6 +33,8 @@ public enum PlatformInterfaceCode {
 
 
     API_IIIRBT00053("IIIRBT00053", "查询非车商品信息"),
     API_IIIRBT00053("IIIRBT00053", "查询非车商品信息"),
 
 
+    API_IIIRBT00055("IIIRBT00055", "通过二维码扫描获取电子投保单签名"),
+
     API_IIIRBT00054("IIIRBT00054", "创建非车订单");
     API_IIIRBT00054("IIIRBT00054", "创建非车订单");
 
 
     private final String code;
     private final String code;

+ 27 - 0
src/main/java/com/ydtech/modules/order/entity/api/guoren/request/SignatureRequest.java

@@ -0,0 +1,27 @@
+package com.ydtech.modules.order.entity.api.guoren.request;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@NoArgsConstructor
+@Data
+public class SignatureRequest implements Serializable {
+
+    private static final long serialVersionUID = 4608198249081782285L;
+
+    /**
+     * 商业险投保单
+     */
+    @JsonProperty("proposalNoBI")
+    private String proposalNoBI;
+
+    /**
+     * 交强险投保单
+     */
+    @JsonProperty("proposalNoCI")
+    private String proposalNoCI;
+}

+ 50 - 0
src/main/java/com/ydtech/modules/order/entity/api/guoren/response/SignatureResponse.java

@@ -0,0 +1,50 @@
+package com.ydtech.modules.order.entity.api.guoren.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@NoArgsConstructor
+@Data
+public class SignatureResponse implements Serializable {
+
+    private static final long serialVersionUID = 3187805835315714056L;
+    /**
+     * 车牌号
+     */
+    @JsonProperty("licenseNo")
+    private String licenseNo;
+    /**
+     * 二维码字符串
+     */
+    @JsonProperty("qrCode")
+    private String qrCode;
+    /**
+     * 返回状态吗
+     */
+    @JsonProperty("resultCode")
+    private String resultCode;
+    /**
+     * 投保人姓名
+     */
+    @JsonProperty("appliName")
+    private String appliName;
+    /**
+     * 返回信息
+     */
+    @JsonProperty("resultMessage")
+    private String resultMessage;
+    /**
+     * 总保费
+     */
+    @JsonProperty("sumPremium")
+    private Integer sumPremium;
+    /**
+     *
+     */
+    @JsonProperty("username")
+    private String username;
+
+}

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

@@ -1,6 +1,9 @@
 package com.ydtech.modules.order.entity.api.huatai.request;
 package com.ydtech.modules.order.entity.api.huatai.request;
 
 
 import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.ArrayUtil;
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ydtech.constants.enums.InsuranceRisk;
 import com.ydtech.constants.enums.InsuranceRisk;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
@@ -43,11 +46,12 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
     private static final long serialVersionUID = -3877935401822194816L;
     private static final long serialVersionUID = -3877935401822194816L;
 
 
     //Y	投保单信息
     //Y	投保单信息
-    @JsonProperty("businessData")
+    @JSONField(name="businessData")
     private BusinessDataDto businessData;
     private BusinessDataDto businessData;
 
 
     public HuaTaiQuotedPriceRequest(BaseQuoteInfoVo baseQuoteInfoVo, HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto fullCarDataDto, HuaTaiActualValueResponse actualValueResponse, AccidentalDrivingVo accidentalDrivingVo, HuaTaiConfigureParameters huaTaiConfigureParameters) {
     public HuaTaiQuotedPriceRequest(BaseQuoteInfoVo baseQuoteInfoVo, HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto fullCarDataDto, HuaTaiActualValueResponse actualValueResponse, AccidentalDrivingVo accidentalDrivingVo, HuaTaiConfigureParameters huaTaiConfigureParameters) {
         this.businessData = new BusinessDataDto(baseQuoteInfoVo, fullCarDataDto,actualValueResponse, accidentalDrivingVo, huaTaiConfigureParameters);
         this.businessData = new BusinessDataDto(baseQuoteInfoVo, fullCarDataDto,actualValueResponse, accidentalDrivingVo, huaTaiConfigureParameters);
+        this.loginCom = huaTaiConfigureParameters.getComCode();
     }
     }
 
 
     @Override
     @Override
@@ -56,7 +60,7 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
         super.getHead().setTransCode(HuaTaiTransCode.QUOTE_PRICE);
         super.getHead().setTransCode(HuaTaiTransCode.QUOTE_PRICE);
     }
     }
     //Y	机构代码
     //Y	机构代码
-    @JsonProperty("loginCom")
+    @JSONField(name="loginCom")
     private String loginCom;
     private String loginCom;
 
 
     @AllArgsConstructor
     @AllArgsConstructor
@@ -66,19 +70,19 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
 
 
         private static final long serialVersionUID = -1000678860334502885L;
         private static final long serialVersionUID = -1000678860334502885L;
         //Y	投保主信息
         //Y	投保主信息
-        @JsonProperty("businessMain")
+        @JSONField(name="businessMain")
         private BusinessMainDto businessMain;
         private BusinessMainDto businessMain;
         //Y	业务信息(列表)
         //Y	业务信息(列表)
-        @JsonProperty("contract")
+        @JSONField(name="contract")
         private List<ContractDto> contract;
         private List<ContractDto> contract;
         //Y	客户信息(列表)
         //Y	客户信息(列表)
-        @JsonProperty("customer")
+        @JSONField(name="customer")
         private List<CustomerDto> customer;
         private List<CustomerDto> customer;
         //Y	投保车辆信息
         //Y	投保车辆信息
-        @JsonProperty("insuredObject")
+        @JSONField(name="insuredObject")
         private InsuredObjectDto insuredObject;
         private InsuredObjectDto insuredObject;
         //Y	销售信息
         //Y	销售信息
-        @JsonProperty("saleInfo")
+        @JSONField(name="saleInfo")
         private SaleInfoDto saleInfo;
         private SaleInfoDto saleInfo;
 
 
         public BusinessDataDto(BaseQuoteInfoVo baseQuoteInfoVo, HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto fullCarDataDto, HuaTaiActualValueResponse actualValueResponse,AccidentalDrivingVo accidentalDrivingVo, HuaTaiConfigureParameters huaTaiConfigureParameters) {
         public BusinessDataDto(BaseQuoteInfoVo baseQuoteInfoVo, HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto fullCarDataDto, HuaTaiActualValueResponse actualValueResponse,AccidentalDrivingVo accidentalDrivingVo, HuaTaiConfigureParameters huaTaiConfigureParameters) {
@@ -95,7 +99,7 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
             // 车辆信息
             // 车辆信息
             this.insuredObject = new InsuredObjectDto(carInfo, fullCarDataDto);
             this.insuredObject = new InsuredObjectDto(carInfo, fullCarDataDto);
             // 保险信息
             // 保险信息
-            this.contract = new  ContractDto().getContract(riskList, kindList, i - 1,vesselTax,actualValueResponse);
+            this.contract = new  ContractDto().getContract(riskList, kindList, i - 1,vesselTax,actualValueResponse,huaTaiConfigureParameters);
             // 客户信息
             // 客户信息
             this.customer = new CustomerDto().getCustomers(ownerInfo, policyHolderInfo, insuredPersonInfo);
             this.customer = new CustomerDto().getCustomers(ownerInfo, policyHolderInfo, insuredPersonInfo);
             //销售信息
             //销售信息
@@ -107,16 +111,16 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
         public static class BusinessMainDto implements Serializable{
         public static class BusinessMainDto implements Serializable{
             private static final long serialVersionUID = 2471155101522896774L;
             private static final long serialVersionUID = 2471155101522896774L;
             //Y	操作机构代码
             //Y	操作机构代码
-            @JsonProperty("makeCom")
+            @JSONField(name="makeCom")
             private String makeCom;
             private String makeCom;
             //Y	操作员代码
             //Y	操作员代码
-            @JsonProperty("operatorCode")
+            @JSONField(name="operatorCode")
             private String operatorCode;
             private String operatorCode;
             //Y	投保日期(格式:YYYY-MM-DD HH24:MI:SS)
             //Y	投保日期(格式:YYYY-MM-DD HH24:MI:SS)
-            @JsonProperty("operateDate")
+            @JSONField(name="operateDate")
             private String operateDate;
             private String operateDate;
             //CY	出单计算机IP地址(北京出单机构必传)
             //CY	出单计算机IP地址(北京出单机构必传)
-            @JsonProperty("computerIp")
+            @JSONField(name="computerIp")
             private String computerIp;
             private String computerIp;
             public BusinessMainDto(HuaTaiConfigureParameters huaTaiConfigureParameters) {
             public BusinessMainDto(HuaTaiConfigureParameters huaTaiConfigureParameters) {
                 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -130,10 +134,10 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
         @Data
         @Data
         public static class InsuredObjectDto implements Serializable{
         public static class InsuredObjectDto implements Serializable{
             //Y	保险采集和管理车信息
             //Y	保险采集和管理车信息
-            @JsonProperty("policyCar")
+            @JSONField(name="policyCar")
             private PolicyCarDto policyCar;
             private PolicyCarDto policyCar;
             //Y	简化版精友信息
             //Y	简化版精友信息
-            @JsonProperty("simpleStadarCar")
+            @JSONField(name="simpleStadarCar")
             private SimpleStadarCarDto simpleStadarCar;
             private SimpleStadarCarDto simpleStadarCar;
 
 
             public InsuredObjectDto(CarInfoVo carInfo, HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto fullCarDataDto) {
             public InsuredObjectDto(CarInfoVo carInfo, HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto fullCarDataDto) {
@@ -143,126 +147,133 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
             @NoArgsConstructor
             @NoArgsConstructor
             @Data
             @Data
             public static class PolicyCarDto implements Serializable{
             public static class PolicyCarDto implements Serializable{
+                //CY	座位数
+                @JSONField(name="approvedPassengersCapacity")
+                private int approvedPassengersCapacity;
                 //Y	排量(单位:升)
                 //Y	排量(单位:升)
-                @JsonProperty("displacement")
+                @JSONField(name="displacement")
                 private double displacement;
                 private double displacement;
                 //Y	车牌号
                 //Y	车牌号
-                @JsonProperty("plateNo")
+                @JSONField(name="plateNo")
                 private String plateNo;
                 private String plateNo;
                 //Y	初次登记日期(格式:YYYY-MM-DD HH24:MI:SS)
                 //Y	初次登记日期(格式:YYYY-MM-DD HH24:MI:SS)
-                @JsonProperty("registerDate")
+                @JSONField(name="registerDate")
                 private String registerDate;
                 private String registerDate;
                 //Y	行驶证发证日期(格式:YYYY-MM-DD HH24:MI:SS)
                 //Y	行驶证发证日期(格式:YYYY-MM-DD HH24:MI:SS)
-                @JsonProperty("issueDate")
+                @JSONField(name="issueDate")
                 private String issueDate;
                 private String issueDate;
                 //Y	新车购置价
                 //Y	新车购置价
-                @JsonProperty("purchasePrice")
+                @JSONField(name="purchasePrice")
                 private String purchasePrice;
                 private String purchasePrice;
                 //Y	港澳车标志(false-非港澳车;true-是港澳车)
                 //Y	港澳车标志(false-非港澳车;true-是港澳车)
-                @JsonProperty("hKFlag")
+                @JSONField(name="hKFlag")
                 private boolean hKFlag;
                 private boolean hKFlag;
                 //Y	发动机号
                 //Y	发动机号
-                @JsonProperty("engine")
+                @JSONField(name="engine")
                 private String engine;
                 private String engine;
                 //Y	外地车标志(false-本地车;true-外地车)
                 //Y	外地车标志(false-本地车;true-外地车)
-                @JsonProperty("ecdemicVehicleFlag")
+                @JSONField(name="ecdemicVehicleFlag")
                 private boolean ecdemicVehicleFlag;
                 private boolean ecdemicVehicleFlag;
                 //Y	商业险过户车标志(0-非过户车;1-过户重新投保)
                 //Y	商业险过户车标志(0-非过户车;1-过户重新投保)
-                @JsonProperty("chgOwnerFlag")
+                @JSONField(name="chgOwnerFlag")
                 private String chgOwnerFlag;
                 private String chgOwnerFlag;
                 //Y	交强险过户车标志(1-过户重新投保,非过户车传空即可)
                 //Y	交强险过户车标志(1-过户重新投保,非过户车传空即可)
-                @JsonProperty("specialCarFlag")
+                @JSONField(name="specialCarFlag")
                 private String specialCarFlag;
                 private String specialCarFlag;
                 //CY	过户日期(过户车必传)(格式:YYYY-MM-DD HH24:MI:SS)
                 //CY	过户日期(过户车必传)(格式:YYYY-MM-DD HH24:MI:SS)
-                @JsonProperty("transferDate")
+                @JSONField(name="transferDate")
                 private String transferDate;
                 private String transferDate;
                 //Y	车架号
                 //Y	车架号
-                @JsonProperty("vIN")
+                @JSONField(name="vIN")
                 private String vin;
                 private String vin;
                 //Y	是否贷款购车标志(0-非贷款车;1-是贷款车)
                 //Y	是否贷款购车标志(0-非贷款车;1-是贷款车)
-                @JsonProperty("loanStatus")
+                @JSONField(name="loanStatus")
                 private String loanStatus;
                 private String loanStatus;
                 //Y	厂牌型号
                 //Y	厂牌型号
-                @JsonProperty("modelName")
+                @JSONField(name="modelName")
                 private String modelName;
                 private String modelName;
                 //CY	整备质量
                 //CY	整备质量
-                @JsonProperty("UnladenMass")
+                @JSONField(name="UnladenMass")
                 private String unladenMass;
                 private String unladenMass;
-                /*//CY	车辆来历凭证种类(新车,北京上海机构出单必录)
-                @JsonProperty("CertificateType")
+                //Y	能源种类
+                @JSONField(name="FullType")
+                private String FullType;
+                //CY	车辆来历凭证种类(新车,北京上海机构出单必录)
+                @JSONField(name="CertificateType")
                 private String CertificateType;
                 private String CertificateType;
                 //CY	车辆来历凭证编号(新车,北京机构出单必录)
                 //CY	车辆来历凭证编号(新车,北京机构出单必录)
-                @JsonProperty("CertificateNo")
+                @JSONField(name="CertificateNo")
                 private String CertificateNo;
                 private String CertificateNo;
                 //CY	车辆来历凭证所载日期(新车,北京机构出单必录)(格式:YYYY-MM-DD HH24:MI:SS)
                 //CY	车辆来历凭证所载日期(新车,北京机构出单必录)(格式:YYYY-MM-DD HH24:MI:SS)
-                @JsonProperty("CertificateDate")
-                private String CertificateDate;*/
+                @JSONField(name="CertificateDate")
+                private String CertificateDate;
                 //CY	参见车辆种类代码
                 //CY	参见车辆种类代码
-                @JsonProperty("MotorTypeCode")
+                @JSONField(name="MotorTypeCode")
                 private String motorTypeCode;
                 private String motorTypeCode;
                 //CY	参见使用性质代码
                 //CY	参见使用性质代码
-                @JsonProperty("MotorUsageTypeCode")
+                @JSONField(name="MotorUsageTypeCode")
                 private String motorUsageTypeCode;
                 private String motorUsageTypeCode;
                 //CY	参见号牌种类代码
                 //CY	参见号牌种类代码
-                @JsonProperty("PlateType")
+                @JSONField(name="PlateType")
                 private String plateType;
                 private String plateType;
                 //CY	功率(纯电摩托车必录)
                 //CY	功率(纯电摩托车必录)
-                @JsonProperty("Power")
+                @JSONField(name="Power")
                 private String Power;
                 private String Power;
                 //CY	最高设计车速(摩托车必录)
                 //CY	最高设计车速(摩托车必录)
-                @JsonProperty("MaximumSpeed")
+                @JSONField(name="MaximumSpeed")
                 private String MaximumSpeed;
                 private String MaximumSpeed;
                 //CY	参见所属性质代码
                 //CY	参见所属性质代码
-                @JsonProperty("Property")
+                @JSONField(name="Property")
                 private String property;
                 private String property;
-                /*//CY	新车销售公司名称(广东机构新车出单必录)
-                @JsonProperty("NewCarSalesCompanyName")
+                //CY	新车销售公司名称(广东机构新车出单必录)
+                @JSONField(name="NewCarSalesCompanyName")
                 private String NewCarSalesCompanyName;
                 private String NewCarSalesCompanyName;
                 //CY	销售公司所在省(广东机构出单新车必录)
                 //CY	销售公司所在省(广东机构出单新车必录)
-                @JsonProperty("NewCarSalesProvince")
+                @JSONField(name="NewCarSalesProvince")
                 private String NewCarSalesProvince;
                 private String NewCarSalesProvince;
                 //CY	销售公司所在市(广东机构出单新车必录)
                 //CY	销售公司所在市(广东机构出单新车必录)
-                @JsonProperty("NewCarSalesCity")
+                @JSONField(name="NewCarSalesCity")
                 private String NewCarSalesCity;
                 private String NewCarSalesCity;
                 //CY	销售公司所在区(广东机构出单新车必录)
                 //CY	销售公司所在区(广东机构出单新车必录)
-                @JsonProperty("NewCarSalesDistrict")
+                @JSONField(name="NewCarSalesDistrict")
                 private String NewCarSalesDistrict;
                 private String NewCarSalesDistrict;
                 //CY	是否4S店销售(广东机构出单新车必录)
                 //CY	是否4S店销售(广东机构出单新车必录)
-                @JsonProperty("IsFourSShop")
+                @JSONField(name="IsFourSShop")
                 private String IsFourSShop;
                 private String IsFourSShop;
                 //CY	购车发票日期(上海机构出单必录)(格式:YYYY-MM-DD HH24:MI:SS)
                 //CY	购车发票日期(上海机构出单必录)(格式:YYYY-MM-DD HH24:MI:SS)
-                @JsonProperty("InvoiceDate")
-                private Date InvoiceDate;*/
+                @JSONField(name="InvoiceDate")
+                private Date InvoiceDate;
                 //CY	参见车身颜色代码
                 //CY	参见车身颜色代码
-                @JsonProperty("ColorCode")
+                @JSONField(name="ColorCode")
                 private String colorCode;
                 private String colorCode;
                 //CY	验车状态代码(1-未验车;2-免验车;4-已验车)
                 //CY	验车状态代码(1-未验车;2-免验车;4-已验车)
-                @JsonProperty("CarCheckStatus")
+                @JSONField(name="CarCheckStatus")
                 private String carCheckStatus;
                 private String carCheckStatus;
                 //CY	验车人(已验车必录)
                 //CY	验车人(已验车必录)
-                @JsonProperty("CarChecker")
+                @JSONField(name="CarChecker")
                 private String carChecker;
                 private String carChecker;
                 //CY	验车时间(已验车必录)(格式:YYYY-MM-DD HH24:MI:SS)
                 //CY	验车时间(已验车必录)(格式:YYYY-MM-DD HH24:MI:SS)
-                @JsonProperty("CarCheckTime")
+                @JSONField(name="CarCheckTime")
                 private String carCheckTime;
                 private String carCheckTime;
                 //CY	验车记录(已验车必录)
                 //CY	验车记录(已验车必录)
-                @JsonProperty("CarCheckRecord")
+                @JSONField(name="CarCheckRecord")
                 private String carCheckRecord;
                 private String carCheckRecord;
                 //CY	车况(0-好;1-中;2-差)
                 //CY	车况(0-好;1-中;2-差)
-                @JsonProperty("VehicleCondition")
+                @JSONField(name="VehicleCondition")
                 private String vehicleCondition;
                 private String vehicleCondition;
                 //Y	参见交管车辆类型代码
                 //Y	参见交管车辆类型代码
-                @JsonProperty("VehicleType")
+                @JSONField(name="VehicleType")
                 private String vehicleType;
                 private String vehicleType;
                 //CY	行驶证车型
                 //CY	行驶证车型
-                @JsonProperty("RegistModelCode")
+                @JSONField(name="RegistModelCode")
                 private String registModelCode;
                 private String registModelCode;
                 //CY	参见号牌底色代码
                 //CY	参见号牌底色代码
-                @JsonProperty("PlateColorCode")
+                @JSONField(name="PlateColorCode")
                 private String plateColorCode;
                 private String plateColorCode;
 
 
                 public PolicyCarDto(CarInfoVo carInfoVo,HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto fullCarDataDto) {
                 public PolicyCarDto(CarInfoVo carInfoVo,HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto fullCarDataDto) {
-                    this.displacement = fullCarDataDto.getDisplacement()/1000;
+                    this.approvedPassengersCapacity = fullCarDataDto.getApprovedPassengersCapacity();
+                    this.displacement = fullCarDataDto.getDisplacement();
                     this.plateNo = carInfoVo.getLicenseNo();
                     this.plateNo = carInfoVo.getLicenseNo();
                     this.registerDate = carInfoVo.getRegisterDate() + " " + TimeConstants.START_TIME;
                     this.registerDate = carInfoVo.getRegisterDate() + " " + TimeConstants.START_TIME;
                     this.issueDate = carInfoVo.getIssueDate() + " " + TimeConstants.START_TIME;
                     this.issueDate = carInfoVo.getIssueDate() + " " + TimeConstants.START_TIME;
@@ -282,15 +293,16 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
                     this.loanStatus = "0";
                     this.loanStatus = "0";
                     this.modelName = fullCarDataDto.getModelName();
                     this.modelName = fullCarDataDto.getModelName();
                     this.unladenMass = fullCarDataDto.getUnladenMass();
                     this.unladenMass = fullCarDataDto.getUnladenMass();
-                    this.motorTypeCode = "";
-                    this.motorUsageTypeCode = InsuranceTypeCorrespondence.getZM_CAR_MotorUsageTypeCode().get(carInfoVo.getCarnature());
-                    this.plateType = "";
-                    this.property = "";
+                    this.FullType = fullCarDataDto.getEnergyTypes();
+                    this.motorTypeCode = "A0";
+                    this.motorUsageTypeCode = "8A";
+                    this.plateType = "02";
+                    this.property = "04";
                     this.colorCode = null;
                     this.colorCode = null;
-                    this.carCheckStatus = null;
+                    this.carCheckStatus = "2";
                     this.vehicleCondition = "0";
                     this.vehicleCondition = "0";
-                    this.vehicleType = "0";
-                    this.registModelCode = null;
+                    this.vehicleType = "K33";
+                    this.registModelCode =  fullCarDataDto.getModelName();
                     this.plateColorCode = "01";
                     this.plateColorCode = "01";
                 }
                 }
             }
             }
@@ -298,16 +310,16 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
             @Data
             @Data
             public static class SimpleStadarCarDto implements Serializable{
             public static class SimpleStadarCarDto implements Serializable{
                 //Y	行业车型编码
                 //Y	行业车型编码
-                @JsonProperty("modelCode")
+                @JSONField(name="modelCode")
                 private String modelCode;
                 private String modelCode;
                 //Y	座位数
                 //Y	座位数
-                @JsonProperty("approvedPassengersCapacity")
+                @JSONField(name="approvedPassengersCapacity")
                 private int approvedPassengersCapacity;
                 private int approvedPassengersCapacity;
                 //Y	精友车型编码
                 //Y	精友车型编码
-                @JsonProperty("localModelCode")
+                @JSONField(name="localModelCode")
                 private String localModelCode;
                 private String localModelCode;
                 //Y	参见能源种类代码
                 //Y	参见能源种类代码
-                @JsonProperty("energyTypes")
+                @JSONField(name="energyTypes")
                 private String energyTypes;
                 private String energyTypes;
 
 
                 public SimpleStadarCarDto(CarInfoVo carInfoVo,HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto fullCarDataDto) {
                 public SimpleStadarCarDto(CarInfoVo carInfoVo,HuaTaiModelsQueryResponse.CarModelDto.FullCarDataDto fullCarDataDto) {
@@ -327,19 +339,22 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
         @Data
         @Data
         public static class SaleInfoDto implements Serializable{
         public static class SaleInfoDto implements Serializable{
             //Y	代理人代码
             //Y	代理人代码
-            @JsonProperty("agentCode")
+            @JSONField(name="agentCode")
             private String agentCode;
             private String agentCode;
             //Y	代理协议编码
             //Y	代理协议编码
-            @JsonProperty("agreementNo")
+            @JSONField(name="agreementNo")
             private String agreementNo;
             private String agreementNo;
             //Y	机构代码
             //Y	机构代码
-            @JsonProperty("comCode")
+            @JSONField(name="comCode")
             private String comCode;
             private String comCode;
             //Y	活动ID(通过活动查询接口获得)
             //Y	活动ID(通过活动查询接口获得)
-            @JsonProperty("promoteSalePlanID")
+            @JSONField(name="promoteSalePlanID")
             private String promoteSalePlanID;
             private String promoteSalePlanID;
             public SaleInfoDto(HuaTaiConfigureParameters huaTaiConfigureParameters) {
             public SaleInfoDto(HuaTaiConfigureParameters huaTaiConfigureParameters) {
                 this.agentCode = huaTaiConfigureParameters.getAgentCode();
                 this.agentCode = huaTaiConfigureParameters.getAgentCode();
+                this.agreementNo = huaTaiConfigureParameters.getAgreementNo();
+                this.comCode = huaTaiConfigureParameters.getComCode();
+                this.promoteSalePlanID = "2200000001";//后期需维护
             }
             }
         }
         }
     }
     }
@@ -350,26 +365,27 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
     public static class ContractDto implements Serializable{
     public static class ContractDto implements Serializable{
         private static final long serialVersionUID = -8141574495483504299L;
         private static final long serialVersionUID = -8141574495483504299L;
         //Y	业务主信息
         //Y	业务主信息
-        @JsonProperty("contractMain")
+        @JSONField(name="contractMain")
         private ContractMainDto contractMain;
         private ContractMainDto contractMain;
         //Y	投保险别列表
         //Y	投保险别列表
-        @JsonProperty("coverage")
+        @JSONField(name="coverage")
         private List<CoverageDto> coverage;
         private List<CoverageDto> coverage;
         //Y	平台交互信息
         //Y	平台交互信息
-        @JsonProperty("platFormMessage")
+        @JSONField(name="platFormMessage")
         private PlatFormMessageDto platFormMessage;
         private PlatFormMessageDto platFormMessage;
         //CY	车船税信息(交强险节点下传值)
         //CY	车船税信息(交强险节点下传值)
-        @JsonProperty("tax")
+        @JSONField(name="tax")
         private TaxDto tax;
         private TaxDto tax;
         //CY	充电桩信息(列表)
         //CY	充电桩信息(列表)
-        @JsonProperty("ChargingPost")
+        @JSONField(name="ChargingPost")
         private List<ChargingPostDto> chargingPost;
         private List<ChargingPostDto> chargingPost;
 
 
-        public List<ContractDto> getContract(List<RiskInfoVo> riskInfoVos, List<KindInfoVo> kindInfoVos, Integer quantity,VehicleAndVesselTax vesselTax, HuaTaiActualValueResponse actualValueResponse) {
+        public List<ContractDto> getContract(List<RiskInfoVo> riskInfoVos, List<KindInfoVo> kindInfoVos, Integer quantity,VehicleAndVesselTax vesselTax, HuaTaiActualValueResponse actualValueResponse, HuaTaiConfigureParameters huaTaiConfigureParameters) {
             List<ContractDto> contractDTOS = new ArrayList<>();
             List<ContractDto> contractDTOS = new ArrayList<>();
             for (RiskInfoVo riskInfoVo : riskInfoVos) {
             for (RiskInfoVo riskInfoVo : riskInfoVos) {
                 ContractDto contractDto = new ContractDto();
                 ContractDto contractDto = new ContractDto();
-                contractMain = new ContractMainDto(riskInfoVo);
+                this.contractMain = new ContractMainDto(riskInfoVo,huaTaiConfigureParameters);
+                contractDto.setContractMain(contractMain);
                 if (InsuranceRisk.TRAFFIC.getCode().equals(riskInfoVo.getRiskCode())) {
                 if (InsuranceRisk.TRAFFIC.getCode().equals(riskInfoVo.getRiskCode())) {
                     contractDto.coverage = Collections.singletonList(new ContractDto.CoverageDto().fetchTraffic(contractMain));
                     contractDto.coverage = Collections.singletonList(new ContractDto.CoverageDto().fetchTraffic(contractMain));
                     contractDto.tax = new ContractDto.TaxDto(vesselTax);
                     contractDto.tax = new ContractDto.TaxDto(vesselTax);
@@ -385,25 +401,27 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
         @Data
         @Data
         public static class ContractMainDto implements Serializable{
         public static class ContractMainDto implements Serializable{
             //CY	报价单号(初次报价为空,同一单再次报价需传入之前接口返回的值)
             //CY	报价单号(初次报价为空,同一单再次报价需传入之前接口返回的值)
-            @JsonProperty("contractNo")
+            @JSONField(name="contractNo")
             private String contractNo;
             private String contractNo;
             //Y	经办人代码
             //Y	经办人代码
-            @JsonProperty("handlerCode")
+            @JSONField(name="handlerCode")
             private String handlerCode;
             private String handlerCode;
             //Y	参见险种代码
             //Y	参见险种代码
-            @JsonProperty("riskCode")
+            @JSONField(name="riskCode")
             private String riskCode;
             private String riskCode;
             //Y	起保日期(格式:YYYY-MM-DD HH24:MI:SS)
             //Y	起保日期(格式:YYYY-MM-DD HH24:MI:SS)
-            @JsonProperty("validDate")
+            @JSONField(name="validDate")
             private String validDate;
             private String validDate;
             //Y	终保日期(格式:YYYY-MM-DD HH24:MI:SS)
             //Y	终保日期(格式:YYYY-MM-DD HH24:MI:SS)
-            @JsonProperty("expiryDate")
+            @JSONField(name="expiryDate")
             private String expiryDate;
             private String expiryDate;
             //Y	生成日期(格式:YYYY-MM-DD HH24:MI:SS)
             //Y	生成日期(格式:YYYY-MM-DD HH24:MI:SS)
-            @JsonProperty("productionDate")
+            @JSONField(name="productionDate")
             private String productionDate;
             private String productionDate;
-            public ContractMainDto(RiskInfoVo riskInfoVo) {
-                this.riskCode = InsuranceTypeCorrespondence.getRisk().get(riskInfoVo.getRiskCode());
+            public ContractMainDto(RiskInfoVo riskInfoVo, HuaTaiConfigureParameters huaTaiConfigureParameters) {
+                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                this.riskCode = InsuranceTypeCorrespondence.getHuaTaiRisk().get(riskInfoVo.getRiskCode());
+                this.handlerCode = huaTaiConfigureParameters.getOperatorCode();
                 String startDate = riskInfoVo.getStartDate();
                 String startDate = riskInfoVo.getStartDate();
                 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
                 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
                 LocalDate localDate = LocalDate.parse(startDate, formatter);
                 LocalDate localDate = LocalDate.parse(startDate, formatter);
@@ -420,41 +438,41 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
                     this.expiryDate = expiryDateTime.format(formatter);
                     this.expiryDate = expiryDateTime.format(formatter);
                 }
                 }
 
 
-                this.productionDate = "";
+                this.productionDate = df.format(new Date());
             }
             }
         }
         }
         @NoArgsConstructor
         @NoArgsConstructor
         @Data
         @Data
         public static class CoverageDto implements Serializable{
         public static class CoverageDto implements Serializable{
             //Y	保额(传值要求参见险别代码)
             //Y	保额(传值要求参见险别代码)
-            @JsonProperty("amount")
+            @JSONField(name="amount")
             private double amount;
             private double amount;
             //Y	起保日期(格式:YYYY-MM-DD HH24:MI:SS)
             //Y	起保日期(格式:YYYY-MM-DD HH24:MI:SS)
-            @JsonProperty("validDate")
+            @JSONField(name="validDate")
             private String validDate;
             private String validDate;
             //Y	终保日期(格式:YYYY-MM-DD HH24:MI:SS)
             //Y	终保日期(格式:YYYY-MM-DD HH24:MI:SS)
-            @JsonProperty("expiryDate")
+            @JSONField(name="expiryDate")
             private String expiryDate;
             private String expiryDate;
             //Y	参见险别代码
             //Y	参见险别代码
-            @JsonProperty("kindCode")
+            @JSONField(name="kindCode")
             private String kindCode;
             private String kindCode;
             //Y	险别名称(传值要求参见险别代码)
             //Y	险别名称(传值要求参见险别代码)
-            @JsonProperty("kindName")
+            @JSONField(name="kindName")
             private String kindName;
             private String kindName;
             //CY	单位保额(传值要求参见险别代码)
             //CY	单位保额(传值要求参见险别代码)
-            @JsonProperty("unitAmount")
+            @JSONField(name="unitAmount")
             private String unitAmount;
             private String unitAmount;
             //CY	数量(乘客险录入值为座位数-1,其他险别无需录入)
             //CY	数量(乘客险录入值为座位数-1,其他险别无需录入)
-            @JsonProperty("quantity")
+            @JSONField(name="quantity")
             private String quantity;
             private String quantity;
             //CY	服务次数(传值要求参见险别代码)
             //CY	服务次数(传值要求参见险别代码)
-            @JsonProperty("serviceTimes")
+            @JSONField(name="serviceTimes")
             private String serviceTimes;
             private String serviceTimes;
             //CY	免赔率(车损险可传,传值要求参见险别代码)
             //CY	免赔率(车损险可传,传值要求参见险别代码)
-            @JsonProperty("deductibleRate")
+            @JSONField(name="deductibleRate")
             private String deductibleRate;
             private String deductibleRate;
             //CY	可选免赔额(附加绝对免赔率特约条款必传,传值要求参见险别代码)
             //CY	可选免赔额(附加绝对免赔率特约条款必传,传值要求参见险别代码)
-            @JsonProperty("deductible")
+            @JSONField(name="deductible")
             private String deductible;
             private String deductible;
 
 
             /**
             /**
@@ -470,8 +488,8 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
                     CoverageDto coverageDto = new CoverageDto();
                     CoverageDto coverageDto = new CoverageDto();
                     String code = kindInfoVo.getKindCode();
                     String code = kindInfoVo.getKindCode();
                     int i = ArrayUtil.indexOf(InsuranceTypeCorrespondence.getJinZhangGuiType(), code);
                     int i = ArrayUtil.indexOf(InsuranceTypeCorrespondence.getJinZhangGuiType(), code);
-                    String s = InsuranceTypeCorrespondence.getZmConnectInsuranceType()[i];
-                    ContractEnum contractEnum = Enum.valueOf(ContractEnum.class, "C_" + s);
+                    String s = InsuranceTypeCorrespondence.getHuaTaiConnectInsuranceType()[i];
+                    ContractEnum contractEnum = Enum.valueOf(ContractEnum.class, "H_" + s);
                     coverageDto.kindCode = contractEnum.getKindCode();
                     coverageDto.kindCode = contractEnum.getKindCode();
                     coverageDto.kindName = contractEnum.getKindName();
                     coverageDto.kindName = contractEnum.getKindName();
                     coverageDto.amount = (int) kindInfoVo.getAmount();
                     coverageDto.amount = (int) kindInfoVo.getAmount();
@@ -509,8 +527,8 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
              */
              */
             public CoverageDto fetchTraffic(ContractMainDto contractMain) {
             public CoverageDto fetchTraffic(ContractMainDto contractMain) {
                 this.amount = 200000;
                 this.amount = 200000;
-                this.kindName = ContractEnum.C_BZ.getKindName();
-                this.kindCode = ContractEnum.C_BZ.getKindCode();
+                this.kindName = ContractEnum.H_BZ.getKindName();
+                this.kindCode = ContractEnum.H_BZ.getKindCode();
                 this.validDate = contractMain.getValidDate();
                 this.validDate = contractMain.getValidDate();
                 this.expiryDate = contractMain.getExpiryDate();
                 this.expiryDate = contractMain.getExpiryDate();
                 return this;
                 return this;
@@ -521,73 +539,73 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
         @Data
         @Data
         public static class PlatFormMessageDto implements Serializable {
         public static class PlatFormMessageDto implements Serializable {
             //CY	平台查询码
             //CY	平台查询码
-            @JsonProperty("querySequenceNo")
+            @JSONField(name="querySequenceNo")
             private String querySequenceNo;
             private String querySequenceNo;
             //CY	平台查询码(获取上年保单信息)
             //CY	平台查询码(获取上年保单信息)
-            @JsonProperty("querySequenceNoForBiRe")
+            @JSONField(name="querySequenceNoForBiRe")
             private String querySequenceNoForBiRe;
             private String querySequenceNoForBiRe;
             //CY	平台校验图片转码后得到的验证码
             //CY	平台校验图片转码后得到的验证码
-            @JsonProperty("checkCode")
+            @JSONField(name="checkCode")
             private String checkCode;
             private String checkCode;
             //CY	平台校验图片转码后得到的验证码(获取上年保单信息)
             //CY	平台校验图片转码后得到的验证码(获取上年保单信息)
-            @JsonProperty("checkCodeForBiRe")
+            @JSONField(name="checkCodeForBiRe")
             private String checkCodeForBiRe;
             private String checkCodeForBiRe;
         }
         }
         @NoArgsConstructor
         @NoArgsConstructor
         @Data
         @Data
         public static class TaxDto implements Serializable{
         public static class TaxDto implements Serializable{
             //Y	参见纳税类型代码
             //Y	参见纳税类型代码
-            @JsonProperty("TaxConditionCode")
+            @JSONField(name="TaxConditionCode")
             private String taxConditionCode;
             private String taxConditionCode;
             //CY	缴税起期(完税必传)
             //CY	缴税起期(完税必传)
-            @JsonProperty("TaxStartDate")
+            @JSONField(name="TaxStartDate")
             private String TaxStartDate;
             private String TaxStartDate;
             //CY	缴税止期(完税必传)
             //CY	缴税止期(完税必传)
-            @JsonProperty("TaxEndDate")
+            @JSONField(name="TaxEndDate")
             private String TaxEndDate;
             private String TaxEndDate;
             //CY	开具税务机关代码(减税、免税、完税必传)
             //CY	开具税务机关代码(减税、免税、完税必传)
-            @JsonProperty("TaxDepartmentCode")
+            @JSONField(name="TaxDepartmentCode")
             private String TaxDepartmentCode;
             private String TaxDepartmentCode;
             //CY	开具税务机关名称(减税、免税、完税必传)
             //CY	开具税务机关名称(减税、免税、完税必传)
-            @JsonProperty("TaxDepartment")
+            @JSONField(name="TaxDepartment")
             private String TaxDepartment;
             private String TaxDepartment;
             //CY	减税/免税/完税凭证号(减税、免税、完税必传)
             //CY	减税/免税/完税凭证号(减税、免税、完税必传)
-            @JsonProperty("DocumentNumber")
+            @JSONField(name="DocumentNumber")
             private String DocumentNumber;
             private String DocumentNumber;
             //Y	纳税人是否同车主(1-是;0-否)
             //Y	纳税人是否同车主(1-是;0-否)
-            @JsonProperty("isSameWithOwner")
+            @JSONField(name="isSameWithOwner")
             private String isSameWithOwner;
             private String isSameWithOwner;
             //CY	纳税人证件类型代码,参见证件类型代码(纳税人不同车主时必填)
             //CY	纳税人证件类型代码,参见证件类型代码(纳税人不同车主时必填)
-            @JsonProperty("taxpayerIdentifyType")
+            @JSONField(name="taxpayerIdentifyType")
             private String taxpayerIdentifyType;
             private String taxpayerIdentifyType;
             //CY	纳税人证件号码(纳税人不同车主时必填)
             //CY	纳税人证件号码(纳税人不同车主时必填)
-            @JsonProperty("TaxPayerIdentificationCode")
+            @JSONField(name="TaxPayerIdentificationCode")
             private String TaxPayerIdentificationCode;
             private String TaxPayerIdentificationCode;
             //CY	纳税人名称(纳税人不同车主时必填)
             //CY	纳税人名称(纳税人不同车主时必填)
-            @JsonProperty("TaxPayerName")
+            @JSONField(name="TaxPayerName")
             private String TaxPayerName;
             private String TaxPayerName;
             //CY	参见纳税地区代码(完税必传)
             //CY	参见纳税地区代码(完税必传)
-            @JsonProperty("taxLocationCode")
+            @JSONField(name="taxLocationCode")
             private String taxLocationCode;
             private String taxLocationCode;
             //CY	完税凭证填发日期(完税必传)(格式:YYYY-MM-DD HH24:MI:SS)
             //CY	完税凭证填发日期(完税必传)(格式:YYYY-MM-DD HH24:MI:SS)
-            @JsonProperty("taxDocumentDate")
+            @JSONField(name="taxDocumentDate")
             private String taxDocumentDate;
             private String taxDocumentDate;
             //CY	参见减免原因代码
             //CY	参见减免原因代码
-            @JsonProperty("DeductionDueCode")
+            @JSONField(name="DeductionDueCode")
             private String DeductionDueCode;
             private String DeductionDueCode;
             //CY	减免方案代码(1-按金额减免;2-按比例减免)
             //CY	减免方案代码(1-按金额减免;2-按比例减免)
-            @JsonProperty("DeductionDueType")
+            @JSONField(name="DeductionDueType")
             private String DeductionDueType;
             private String DeductionDueType;
             //CY	减免金额(减免方案为1时必传)
             //CY	减免金额(减免方案为1时必传)
-            @JsonProperty("Deduction")
+            @JSONField(name="Deduction")
             private double Deduction;
             private double Deduction;
             //CY	减免比例(取值区间为0-100之间,减免方案为2时必传)
             //CY	减免比例(取值区间为0-100之间,减免方案为2时必传)
-            @JsonProperty("DeductionDueProportion")
+            @JSONField(name="DeductionDueProportion")
             private double DeductionDueProportion;
             private double DeductionDueProportion;
 
 
             public TaxDto(VehicleAndVesselTax vesselTax){
             public TaxDto(VehicleAndVesselTax vesselTax){
 
 
-                this.taxConditionCode = "";
+                this.taxConditionCode = "1N";
                 this.isSameWithOwner ="1";
                 this.isSameWithOwner ="1";
             }
             }
         }
         }
@@ -595,31 +613,31 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
         @Data
         @Data
         public static class ChargingPostDto implements Serializable{
         public static class ChargingPostDto implements Serializable{
             //Y	充电桩序号
             //Y	充电桩序号
-            @JsonProperty("itemNo")
+            @JSONField(name="itemNo")
             private String itemNo;
             private String itemNo;
             //Y	充电桩型号
             //Y	充电桩型号
-            @JsonProperty("chargingPostType")
+            @JSONField(name="chargingPostType")
             private String chargingPostType;
             private String chargingPostType;
             //Y	充电桩编码
             //Y	充电桩编码
-            @JsonProperty("chargingPostCode")
+            @JSONField(name="chargingPostCode")
             private String chargingPostCode;
             private String chargingPostCode;
             //Y	充电桩地址
             //Y	充电桩地址
-            @JsonProperty("chargingPostAddress")
+            @JSONField(name="chargingPostAddress")
             private String chargingPostAddress;
             private String chargingPostAddress;
             //Y	充电桩安装地点类型
             //Y	充电桩安装地点类型
-            @JsonProperty("chargingPostAddressType")
+            @JSONField(name="chargingPostAddressType")
             private String chargingPostAddressType;
             private String chargingPostAddressType;
             //Y	充电桩种类
             //Y	充电桩种类
-            @JsonProperty("chargingPostKind")
+            @JSONField(name="chargingPostKind")
             private String chargingPostKind;
             private String chargingPostKind;
             //Y	充电桩购买日期(格式:YYYY-MM-DD)
             //Y	充电桩购买日期(格式:YYYY-MM-DD)
-            @JsonProperty("chargingPostDate")
+            @JSONField(name="chargingPostDate")
             private String chargingPostDate;
             private String chargingPostDate;
             //CY	UAP对应保额(投保UAP险必传,传值要求参见险别代码)
             //CY	UAP对应保额(投保UAP险必传,传值要求参见险别代码)
-            @JsonProperty("amountUAP")
+            @JSONField(name="amountUAP")
             private String amountUAP;
             private String amountUAP;
             //CY	UBP对应保额(投保UBP险必传,传值要求参见险别代码)
             //CY	UBP对应保额(投保UBP险必传,传值要求参见险别代码)
-            @JsonProperty("amountUBP")
+            @JSONField(name="amountUBP")
             private String amountUBP;
             private String amountUBP;
         }
         }
     }
     }
@@ -629,40 +647,40 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
     public static class CustomerDto implements Serializable{
     public static class CustomerDto implements Serializable{
         private static final long serialVersionUID = -931739185225437306L;
         private static final long serialVersionUID = -931739185225437306L;
         //CY	证件号码(个人客户必传)
         //CY	证件号码(个人客户必传)
-        @JsonProperty("identifyNumber")
+        @JSONField(name="identifyNumber")
         private String identifyNumber;
         private String identifyNumber;
         //Y	参见客户证件类型代码
         //Y	参见客户证件类型代码
-        @JsonProperty("identifyType")
+        @JSONField(name="identifyType")
         private String identifyType;
         private String identifyType;
         //Y	客户名称
         //Y	客户名称
-        @JsonProperty("name")
+        @JSONField(name="name")
         private String name;
         private String name;
         //Y	客户角色身份(1-投保人;2-被保险人;3-车主)
         //Y	客户角色身份(1-投保人;2-被保险人;3-车主)
-        @JsonProperty("role")
+        @JSONField(name="role")
         private String role;
         private String role;
         //Y	手机号码
         //Y	手机号码
-        @JsonProperty("mobile")
+        @JSONField(name="mobile")
         private String mobile;
         private String mobile;
         //Y	证件有效起期(格式:YYYY-MM-DD HH24:MI:SS)
         //Y	证件有效起期(格式:YYYY-MM-DD HH24:MI:SS)
-        @JsonProperty("identifyValidDate")
+        @JSONField(name="identifyValidDate")
         private String identifyValidDate;
         private String identifyValidDate;
         //Y	证件有效止期(格式:YYYY-MM-DD HH24:MI:SS)
         //Y	证件有效止期(格式:YYYY-MM-DD HH24:MI:SS)
-        @JsonProperty("identifyValidEndDate")
+        @JSONField(name="identifyValidEndDate")
         private String identifyValidEndDate;
         private String identifyValidEndDate;
         //Y	客户职业(传值要求通过职业查询接口获得)
         //Y	客户职业(传值要求通过职业查询接口获得)
-        @JsonProperty("occupationCode")
+        @JSONField(name="occupationCode")
         private String occupationCode;
         private String occupationCode;
         //Y	客户类型(1-个人,2-机构)
         //Y	客户类型(1-个人,2-机构)
-        @JsonProperty("type")
+        @JSONField(name="type")
         private String type;
         private String type;
         //CY	办理人姓名(机构客户必录)
         //CY	办理人姓名(机构客户必录)
-        @JsonProperty("transactorName")
+        @JSONField(name="transactorName")
         private String transactorName;
         private String transactorName;
         //CY	组织机构代码(机构客户必录)
         //CY	组织机构代码(机构客户必录)
-        @JsonProperty("organizeCode")
+        @JSONField(name="organizeCode")
         private String organizeCode;
         private String organizeCode;
         //Y	车辆与被保险人所属关系(1-所有;2-使用;3-管理)
         //Y	车辆与被保险人所属关系(1-所有;2-使用;3-管理)
-        @JsonProperty("carInsuredRelation")
+        @JSONField(name="carInsuredRelation")
         private String carInsuredRelation;
         private String carInsuredRelation;
 
 
         public CustomerDto(CustomerInfoVo customerInfoVo, String role) {
         public CustomerDto(CustomerInfoVo customerInfoVo, String role) {
@@ -672,7 +690,7 @@ public class HuaTaiQuotedPriceRequest extends HuaTaiBaseRequest {
             this.mobile = customerInfoVo.getMobile();
             this.mobile = customerInfoVo.getMobile();
             this.type = "1";
             this.type = "1";
             this.role = role;
             this.role = role;
-            //this.occupationCode = "";
+            this.occupationCode = "20114";//后续需要根据接口维护返参到表里
             this.identifyValidDate = customerInfoVo.getIdentifyValidDate() + " " + TimeConstants.START_TIME;
             this.identifyValidDate = customerInfoVo.getIdentifyValidDate() + " " + TimeConstants.START_TIME;
             this.identifyValidEndDate = customerInfoVo.getIdentifyValidEndDate() + " " + TimeConstants.END_TIME;
             this.identifyValidEndDate = customerInfoVo.getIdentifyValidEndDate() + " " + TimeConstants.END_TIME;
             if("2".equals(role)){
             if("2".equals(role)){

+ 24 - 1
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/constants/enums/ContractEnum.java

@@ -35,7 +35,30 @@ public enum ContractEnum {
     C_501("501", "附加绝对免赔率特约条款(车损)"),
     C_501("501", "附加绝对免赔率特约条款(车损)"),
     C_502("502", "附加绝对免赔率特约条款(三者)"),
     C_502("502", "附加绝对免赔率特约条款(三者)"),
     C_5041("5041", "附加绝对免赔率特约条款(司机)"),
     C_5041("5041", "附加绝对免赔率特约条款(司机)"),
-    C_5044("5044", "附加绝对免赔率特约条款(乘客)");
+    C_5044("5044", "附加绝对免赔率特约条款(乘客)"),
+    H_BZ("BZ", "机动车交通事故责任强制保险"),
+    H_A("A", "机动车损失保险"),
+    H_B("B", "机动车第三者责任险"),
+    H_D11("D11", "机动车车上人员责任险(司机)"),
+    H_D12("D12", "机动车车上人员责任险(乘客)"),
+    H_L("L", "附加车身划痕损失险"),
+    H_X("X", "附加新增加设备损失险"),
+    H_C("C", "附加修理期间费用补偿险"),
+    H_N("N", "附加发动机进水损坏除外特约条款"),
+    H_BD("BD", "附加法定节假日限额翻倍险"),
+    H_MT("MT", "附加车轮单独损失险"),
+    H_RB("RB", "附加精神损害抚慰金责任险(三者)"),
+    H_RD11("RD11", "附加精神损害抚慰金责任险(司机)"),
+    H_RD12("RD12", "附加精神损害抚慰金责任险(乘客)"),
+    H_PB("PB", "附加医保外用药责任险(三者)"),
+    H_PD11("PD11", "附加医保外用药责任险(司机)"),
+    H_PD12("PD12", "附加医保外用药责任险(乘客)"),
+    H_SR("SR", "附加机动车道路救援服务特约条款"),
+    H_SD("SD", "附加机动车代为驾驶服务特约条款"),
+    H_MMA("MMA", "附加绝对免赔率特约条款(车损)"),
+    H_MMB("MMB", "附加绝对免赔率特约条款(三者)"),
+    H_MMD11("MMD11", "附加绝对免赔率特约条款(车上人员-驾驶员)"),
+    H_MMD12("MMD12", "附加绝对免赔率特约条款(车上人员-乘客)");
 
 
     ContractEnum(String kindCode, String kindName) {
     ContractEnum(String kindCode, String kindName) {
         this.kindCode = kindCode;
         this.kindCode = kindCode;

+ 1 - 1
src/main/java/com/ydtech/modules/order/entity/api/zijin/request/SubmitVerifyRequest.java

@@ -25,7 +25,7 @@ public class SubmitVerifyRequest implements Serializable {
     @JsonProperty("engageList")
     @JsonProperty("engageList")
     private List<EngageListDTO> engageList;
     private List<EngageListDTO> engageList;
 
 
-    @JsonProperty("UnderWritingRequestVehicleDTO")
+    @JsonProperty("underWritingRequestVehicleDTO")
     private UnderWritingRequestVehicleDTO underWritingRequestVehicleDto;
     private UnderWritingRequestVehicleDTO underWritingRequestVehicleDto;
 
 
     @JsonProperty("orderId")
     @JsonProperty("orderId")

+ 36 - 0
src/main/java/com/ydtech/modules/order/entity/crawler/response/CrawlerVerifyPaymentResponse.java

@@ -1,8 +1,18 @@
 package com.ydtech.modules.order.entity.crawler.response;
 package com.ydtech.modules.order.entity.crawler.response;
 
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.api.zijin.constants.enums.RiskCodeEnum;
+import com.ydtech.modules.order.entity.api.zijin.response.QueryOrderDetailResponse;
+import com.ydtech.modules.order.entity.dto.DrivingInsuranceDto;
 import lombok.Data;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
 
 
 @EqualsAndHashCode(callSuper = true)
 @EqualsAndHashCode(callSuper = true)
 @Data
 @Data
@@ -28,4 +38,30 @@ public class CrawlerVerifyPaymentResponse extends CrawlerBaseResponse {
     @JsonProperty("SY_Application")
     @JsonProperty("SY_Application")
     private String syApplication;
     private String syApplication;
 
 
+    @JsonProperty("drivingInsurances")
+    private List<DrivingInsurancesDTO> drivingInsurances;
+
+
+    public List<DrivingInsurancesDTO> getDrivingInsurancesDto() {
+        if (drivingInsurances == null) {
+            return Collections.emptyList();
+        }
+
+        return drivingInsurances;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class DrivingInsurancesDTO implements Serializable {
+
+        private static final long serialVersionUID = 8095703638414191277L;
+
+        @JsonProperty("policy")
+        private String policy;
+
+        @JsonProperty("application")
+        private String application;
+
+    }
+
 }
 }

+ 10 - 15
src/main/java/com/ydtech/modules/order/service/GuorenOrderApiService.java

@@ -2,22 +2,20 @@ package com.ydtech.modules.order.service;
 
 
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.ins.model.guoren.CarModelResp;
 import com.ydtech.modules.ins.model.guoren.CarModelResp;
-import com.ydtech.modules.ins.model.guoren.ChannelInfoDto;
 import com.ydtech.modules.ins.model.guoren.NonAutoInsResp;
 import com.ydtech.modules.ins.model.guoren.NonAutoInsResp;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
-import com.ydtech.modules.ins.model.yc.pay.response.AccidentResponse;
 import com.ydtech.modules.order.entity.vo.AccidentalDrivingQueryVo;
 import com.ydtech.modules.order.entity.vo.AccidentalDrivingQueryVo;
 import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
 import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
-import java.util.Map;
 
 
 public interface GuorenOrderApiService {
 public interface GuorenOrderApiService {
 
 
 
 
     //=================API 方式=================
     //=================API 方式=================
+
     /**
     /**
      * 获取渠道信息
      * 获取渠道信息
      */
      */
@@ -33,28 +31,26 @@ public interface GuorenOrderApiService {
      */
      */
     HttpResult quoteApi(BaseQuoteVo<AccidentalDrivingVo> quoteVo);
     HttpResult quoteApi(BaseQuoteVo<AccidentalDrivingVo> quoteVo);
 
 
+
     /**
     /**
-     * 3 核保
+     * 3 影像上传
      */
      */
-    HttpResult auditApi(String orderno);
+    HttpResult uploadImageApi(String companyId);
 
 
     /**
     /**
-     * 保险公司订单信息
+     * 4 核
      */
      */
-    HttpResult insOrderInfo(String iacNo);
+    HttpResult auditApi(String orderno);
 
 
     /**
     /**
-     * 获取缴费地址
+     * 5 保险公司订单信息
      */
      */
-    HttpResult pay(String orderno);
+    HttpResult insOrderInfo(String iacNo);
 
 
     /**
     /**
-     * 4 影像上传
-     *
-     * @param
-     * @return
+     * 6 获取缴费地址
      */
      */
-    HttpResult uploadImageApi(String companyId);
+    HttpResult pay(String orderno);
 
 
     /**
     /**
      * 非车列表
      * 非车列表
@@ -80,5 +76,4 @@ public interface GuorenOrderApiService {
     HttpResult getPolicyPrintApi(PolicyPrintVo policyPrintVo);
     HttpResult getPolicyPrintApi(PolicyPrintVo policyPrintVo);
 
 
 
 
-
 }
 }

+ 1 - 1
src/main/java/com/ydtech/modules/order/service/InsUploadFilesService.java

@@ -27,7 +27,7 @@ public interface InsUploadFilesService extends IService<InsUploadFiles> {
 
 
     default InsUploadFiles saveVerify(InsUploadFiles insUploadFiles){
     default InsUploadFiles saveVerify(InsUploadFiles insUploadFiles){
         InsUploadFiles uploadFiles1 = getById(insUploadFiles.getId());
         InsUploadFiles uploadFiles1 = getById(insUploadFiles.getId());
-        if (ObjectUtil.isNotEmpty(uploadFiles1)) {
+        if (ObjectUtil.isEmpty(uploadFiles1)) {
             save(insUploadFiles);
             save(insUploadFiles);
         }
         }
         return insUploadFiles;
         return insUploadFiles;

+ 15 - 3
src/main/java/com/ydtech/modules/order/service/impl/CarModelServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.order.service.impl;
 package com.ydtech.modules.order.service.impl;
 
 
+import com.alibaba.fastjson.JSON;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
 import com.ydtech.modules.order.service.CarModelService;
 import com.ydtech.modules.order.service.CarModelService;
@@ -13,6 +14,8 @@ import org.springframework.web.client.RestTemplate;
 
 
 import java.util.Collections;
 import java.util.Collections;
 import java.util.List;
 import java.util.List;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
 
 
 @Service
 @Service
 public class CarModelServiceImpl implements CarModelService {
 public class CarModelServiceImpl implements CarModelService {
@@ -34,16 +37,25 @@ public class CarModelServiceImpl implements CarModelService {
 
 
     @Override
     @Override
     public HttpResult<List<CarModelDTO>> vinSearch(String frameNo) {
     public HttpResult<List<CarModelDTO>> vinSearch(String frameNo) {
+        //从缓存中查数据
+        if(!Objects.isNull(redisTemplate.opsForValue().get(frameNo))){
+            String carModeStr = redisTemplate.opsForValue().get(frameNo);
+            List<CarModelDTO> carModelDTOS = JSON.parseArray(carModeStr, CarModelDTO.class);
+            return HttpResult.ok(carModelDTOS);
+        }
+
+        //从数据库中查数据
         List<CarModelDTO> carModelDTOS = insOrdersService.vinSearch(frameNo);
         List<CarModelDTO> carModelDTOS = insOrdersService.vinSearch(frameNo);
         if (!carModelDTOS.isEmpty()) {
         if (!carModelDTOS.isEmpty()) {
+            //进行缓存存储
+            redisTemplate.opsForValue().set(frameNo,JSON.toJSONString(carModelDTOS),1, TimeUnit.HOURS);
             return HttpResult.ok(carModelDTOS);
             return HttpResult.ok(carModelDTOS);
         }
         }
 
 
-
-
-
         List<CarModelDTO> carModelDTOS1 = zhongMeiOrderService.vinSearch(frameNo);
         List<CarModelDTO> carModelDTOS1 = zhongMeiOrderService.vinSearch(frameNo);
         if (!carModelDTOS1.isEmpty()) {
         if (!carModelDTOS1.isEmpty()) {
+            //进行缓存存储
+            redisTemplate.opsForValue().set(frameNo,JSON.toJSONString(carModelDTOS1),1, TimeUnit.HOURS);
             return HttpResult.ok(carModelDTOS1);
             return HttpResult.ok(carModelDTOS1);
         }
         }
 //        List<CarModelDTO> carModelDTOS2 = yongAnOrderService.vinSearch(frameNo);
 //        List<CarModelDTO> carModelDTOS2 = yongAnOrderService.vinSearch(frameNo);

+ 54 - 95
src/main/java/com/ydtech/modules/order/service/impl/GuorenOrderApiServiceImpl.java

@@ -21,11 +21,9 @@ import com.ydtech.modules.esm.model.EsmInsAttachInsure;
 import com.ydtech.modules.esm.model.EsmInsAttachInsureDetails;
 import com.ydtech.modules.esm.model.EsmInsAttachInsureDetails;
 import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.esm.service.EsmInsCompanyService;
 import com.ydtech.modules.esm.service.EsmInsCompanyService;
-import com.ydtech.modules.ins.dao.InsAlltrustRegionMapper;
 import com.ydtech.modules.ins.model.guoren.*;
 import com.ydtech.modules.ins.model.guoren.*;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
 import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
-import com.ydtech.modules.ins.service.InsApiLogService;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.components.gouren.GuorenRequestApiComponent;
 import com.ydtech.modules.order.components.gouren.GuorenRequestApiComponent;
@@ -33,6 +31,8 @@ import com.ydtech.modules.order.dao.InsTaskImagesMapper;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.api.guoren.constants.PlatformInterfaceCode;
 import com.ydtech.modules.order.entity.api.guoren.constants.PlatformInterfaceCode;
+import com.ydtech.modules.order.entity.api.guoren.request.SignatureRequest;
+import com.ydtech.modules.order.entity.api.guoren.response.SignatureResponse;
 import com.ydtech.modules.order.entity.dto.InsUploadImagesDto;
 import com.ydtech.modules.order.entity.dto.InsUploadImagesDto;
 import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.modules.order.service.GuorenOrderApiService;
 import com.ydtech.modules.order.service.GuorenOrderApiService;
@@ -48,7 +48,6 @@ import org.apache.commons.httpclient.methods.multipart.StringPart;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 import org.springframework.util.ObjectUtils;
@@ -167,27 +166,33 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
 
 
         VinQueryResp.DataDTO vinQ = vinQuery(vinQueryReq, channelInfo);
         VinQueryResp.DataDTO vinQ = vinQuery(vinQueryReq, channelInfo);
         if (null == vinQ) return HttpResult.error("未找到匹配的车辆信息");
         if (null == vinQ) return HttpResult.error("未找到匹配的车辆信息");
-        log.debug("vin码查询通过---");
 
 
         //  2、车价查询
         //  2、车价查询
         CarPriceResp.DataDTO carPriceResult = carPriceQuery(yaQuoteInfoVo, vinQ, channelInfo);
         CarPriceResp.DataDTO carPriceResult = carPriceQuery(yaQuoteInfoVo, vinQ, channelInfo);
         if (null == carPriceResult) return HttpResult.error("车价获取失败");
         if (null == carPriceResult) return HttpResult.error("车价获取失败");
-        log.debug("车价查询通过");
 
 
         // 3、保费计算
         // 3、保费计算
         PremiumResp.DataDTO premiumResult = premiumQuery(yaQuoteInfoVo, carPriceResult, vinQ);
         PremiumResp.DataDTO premiumResult = premiumQuery(yaQuoteInfoVo, carPriceResult, vinQ);
         if (null == premiumResult) return HttpResult.error("保费计算失败");
         if (null == premiumResult) return HttpResult.error("保费计算失败");
-        log.debug("保费计算通过");
 
 
-        // 创建非车订单
-        AccidentalDrivingVo accidentalDrivingVo = quoteVo.getAccidentalDrivingVo();
-        if (ObjectUtils.isEmpty(accidentalDrivingVo)) {
-            nonAutoInsOrder(quoteVo.getAccidentalDrivingVo(), carPriceResult.getInputvo(), channelInfo);
-        }
+//        // 4、 创建非车订单
+//        AccidentalDrivingVo accidentalDrivingVo = quoteVo.getAccidentalDrivingVo();
+//        if (!ObjectUtils.isEmpty(accidentalDrivingVo)) {
+//            nonAutoInsOrder(yaQuoteInfoVo, quoteVo.getAccidentalDrivingVo(), carPriceResult.getInputvo(), channelInfo);
+//        }
 
 
         QuoteRespVo quoteRespVo = buildQuoteRespVo(order, premiumResult, yaQuoteInfoVo);
         QuoteRespVo quoteRespVo = buildQuoteRespVo(order, premiumResult, yaQuoteInfoVo);
-        //8 生成订单
+        // 5、 生成订单
         InsAreaCompany iac = responseOrder(order, quoteRespVo, quoteVo);
         InsAreaCompany iac = responseOrder(order, quoteRespVo, quoteVo);
+
+        // 6、 投保单保存
+        InsuranceSlipResp insuranceSlip = insuranceSlip(yaQuoteInfoVo, carPriceResult.getInputvo());
+        if (insuranceSlip.getResultCode() == 1) {
+            return HttpResult.error(insuranceSlip.getResultMsg());
+        }
+        iac.setJqapplyno(insuranceSlip.getData().getProposalNoDetailVo().getProposalNoCI());
+        iac.setSyapplyno(insuranceSlip.getData().getProposalNoDetailVo().getProposalNoBI());
+
         //生成订单扩展
         //生成订单扩展
         responseOrderExtend(iac, quoteRespVo, premiumResult, carPriceResult.getInputvo());
         responseOrderExtend(iac, quoteRespVo, premiumResult, carPriceResult.getInputvo());
         insAreaCompanyService.save(iac);
         insAreaCompanyService.save(iac);
@@ -222,7 +227,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         //2、核保
         //2、核保
         SubmitAuditResp auditResp = submitAudit(iac, channelInfo);
         SubmitAuditResp auditResp = submitAudit(iac, channelInfo);
 
 
-        //核保状态 0初始值/1通过/2不通过/3 无需核保 9待核保
+        //核保状态 0初始值/1通过/2不通过/3 无需核保 9 待核保
         String statusJq = auditResp.getData().get(0).getUnderWriteFlagCI();
         String statusJq = auditResp.getData().get(0).getUnderWriteFlagCI();
         String statusSy = auditResp.getData().get(0).getUnderWriteFlagBI();
         String statusSy = auditResp.getData().get(0).getUnderWriteFlagBI();
         if (StringUtils.isEmpty(statusJq) && StringUtils.isEmpty(statusSy))
         if (StringUtils.isEmpty(statusJq) && StringUtils.isEmpty(statusSy))
@@ -264,30 +269,17 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
             insAreaCompanyService.updateById(iac);
             insAreaCompanyService.updateById(iac);
             return HttpResult.error(auditResp.getData().get(0).getMessage());
             return HttpResult.error(auditResp.getData().get(0).getMessage());
         }
         }
-
-
         InsUtils.buildOrderStatus(order, iac);
         InsUtils.buildOrderStatus(order, iac);
-
-
-        iac.setJqappoint(""); //交强特别约定
-        iac.setSyappoint(""); //商业特别约定
-
         if (iac.getOrderstatus().equals(InsOrderStatusEnum.WAIT_PAY.getCode())) {
         if (iac.getOrderstatus().equals(InsOrderStatusEnum.WAIT_PAY.getCode())) {
-
             //获取签名地址
             //获取签名地址
-            SignatureResp.DataDTO signature = signature(iac);
-            if (null == signature) log.error("核保操作:获取签名链接失败");
-            iac.setPaymentLink(signature.getElecapplyurl());
-
+            SignatureResponse signature = signature(iac);
+            iac.setPaymentLink(signature.getQrCode());
         } else {
         } else {
             return HttpResult.error("核保操作失败,状态:" + InsOrderStatusEnum.matchKey(iac.getOrderstatus()).getDesc());
             return HttpResult.error("核保操作失败,状态:" + InsOrderStatusEnum.matchKey(iac.getOrderstatus()).getDesc());
         }
         }
         insAreaCompanyService.updateById(iac);
         insAreaCompanyService.updateById(iac);
         insOrdersService.updateByOrderStatus(order.getOrderno(), order.getOrderstatus());
         insOrdersService.updateByOrderStatus(order.getOrderno(), order.getOrderstatus());
-
-
         log.debug("----------核保结束,订单号:{}---------", quoteOrderNo);
         log.debug("----------核保结束,订单号:{}---------", quoteOrderNo);
-
         return HttpResult.ok();
         return HttpResult.ok();
     }
     }
 
 
@@ -301,19 +293,15 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         //子订单
         //子订单
         InsAreaCompany iac = insAreaCompanyService.getByIdIsExist(iacNo);
         InsAreaCompany iac = insAreaCompanyService.getByIdIsExist(iacNo);
         // 获取协议配置信息
         // 获取协议配置信息
-        ChannelInfoDto channelInfo = gainChannelConfigInfo(iac.getAgreementId());
-
         InsOrders order = insOrdersService.getById(iac.getOrderno());
         InsOrders order = insOrdersService.getById(iac.getOrderno());
         InsOrderStatusResp iosr = insOrderStatus(iac);
         InsOrderStatusResp iosr = insOrderStatus(iac);
 
 
         if (null != iosr && CollUtil.isNotEmpty(iosr.getData())) {
         if (null != iosr && CollUtil.isNotEmpty(iosr.getData())) {
-
             InsOrderStatusResp.DataDTO jqDataDTO = iosr.getData().stream().filter(a -> a.getProposalNo().equals(iac.getJqapplyno())).findFirst().orElse(null);
             InsOrderStatusResp.DataDTO jqDataDTO = iosr.getData().stream().filter(a -> a.getProposalNo().equals(iac.getJqapplyno())).findFirst().orElse(null);
             InsOrderStatusResp.DataDTO syDataDTO = iosr.getData().stream().filter(b -> b.getProposalNo().equals(iac.getSyapplyno())).findFirst().orElse(null);
             InsOrderStatusResp.DataDTO syDataDTO = iosr.getData().stream().filter(b -> b.getProposalNo().equals(iac.getSyapplyno())).findFirst().orElse(null);
 
 
             //待核保订单处理
             //待核保订单处理
             if (iac.getOrderstatus().equals(InsOrderStatusEnum.WAIT_AUDIT.getCode())) {
             if (iac.getOrderstatus().equals(InsOrderStatusEnum.WAIT_AUDIT.getCode())) {
-
                 //单交
                 //单交
                 boolean jqBoo = null != jqDataDTO && null == syDataDTO && jqDataDTO.getUnderwriteFlag().equals("1");
                 boolean jqBoo = null != jqDataDTO && null == syDataDTO && jqDataDTO.getUnderwriteFlag().equals("1");
                 //单商
                 //单商
@@ -324,10 +312,13 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
                 if (jqBoo || syBoo || jqSyBoo) {
                 if (jqBoo || syBoo || jqSyBoo) {
                     iac.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
                     iac.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
                     //更新支付链接
                     //更新支付链接
-                    PayResp.DataDTO payResp = getPaid(iac, channelInfo);
-                    iac.setPaymentLink(payResp.getPayUrl());
-                    insAreaCompanyService.updateById(iac);
+                    SignatureResponse signature = signature(iac);
+                    iac.setPaymentLink(signature.getQrCode());
+
+                    insAreaCompanyService.updateCompanyAndOrders(iac);
                     return HttpResult.ok();
                     return HttpResult.ok();
+                } else {
+                    return HttpResult.ok("核保状态未更新");
                 }
                 }
 
 
             }
             }
@@ -341,12 +332,17 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
                 iac.setSypolicyno(syDataDTO.getPolicyNo());
                 iac.setSypolicyno(syDataDTO.getPolicyNo());
                 updateFlag = true;
                 updateFlag = true;
             }
             }
+
+            // 支付
             if (updateFlag) {
             if (updateFlag) {
                 iac.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
                 iac.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
                 order.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
                 order.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
-                insAreaCompanyService.updateById(iac);
-                insOrdersService.updateById(order);
+                insAreaCompanyService.updateCompanyAndOrders(iac);
+                return HttpResult.error("订单已支付,订单状态修改完成");
+            } else {
+                return HttpResult.error("订单还未支付哦");
             }
             }
+
         }
         }
 
 
 
 
@@ -380,24 +376,11 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
      */
      */
     @Override
     @Override
     public HttpResult uploadImageApi(String companyId) {
     public HttpResult uploadImageApi(String companyId) {
-
         InsAreaCompany iac = insAreaCompanyService.getByIdIsExist(companyId);
         InsAreaCompany iac = insAreaCompanyService.getByIdIsExist(companyId);
         // 获取协议配置信息
         // 获取协议配置信息
         ChannelInfoDto channelInfo = gainChannelConfigInfo(iac.getAgreementId());
         ChannelInfoDto channelInfo = gainChannelConfigInfo(iac.getAgreementId());
-        InsOrders order = insOrdersService.getById(iac.getOrderno());
-        BaseQuoteInfoVo yaQuoteInfoVo = insOrdersComponents.getQuoteInfo(order.getOrderno());
-        /**
-         *  4、投保单保存
-         */
-        InsuranceSlipResp insuranceSlip = insuranceSlip(yaQuoteInfoVo, iac.getInsOrderNo());
-        if (insuranceSlip.getResultCode() == 1) {
-            return HttpResult.error(insuranceSlip.getResultMsg());
-        }
-        iac.setJqapplyno(insuranceSlip.getData().getProposalNoDetailVo().getProposalNoCI());
-        iac.setSyapplyno(insuranceSlip.getData().getProposalNoDetailVo().getProposalNoBI());
         //影像上传
         //影像上传
         imageUpdate(iac, channelInfo);
         imageUpdate(iac, channelInfo);
-        insAreaCompanyService.updateById(iac);
         return HttpResult.ok();
         return HttpResult.ok();
     }
     }
 
 
@@ -415,7 +398,6 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         formMap.put("fileGroup", "DZ");
         formMap.put("fileGroup", "DZ");
 
 
         List<InsUploadImagesDto> insUploadImagesDtos = insTaskImagesMapper.getByOrderNoInsUploadImagesDtoList(iac.getOrderno());
         List<InsUploadImagesDto> insUploadImagesDtos = insTaskImagesMapper.getByOrderNoInsUploadImagesDtoList(iac.getOrderno());
-
         insUploadImagesDtos.forEach(a -> {
         insUploadImagesDtos.forEach(a -> {
             try {
             try {
                 FilePart file1 = new FilePart("file", new File(a.getFilePath()));
                 FilePart file1 = new FilePart("file", new File(a.getFilePath()));
@@ -460,15 +442,14 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
     }
     }
 
 
     /**
     /**
-     * 签名链接
+     * 32 通过二维码扫描获取电子投保单签名
      */
      */
-    public SignatureResp.DataDTO signature(InsAreaCompany iac) {
+    public SignatureResponse signature(InsAreaCompany insAreaCompany) {
         //构造请求参数
         //构造请求参数
-        Map<String, String> req = new HashMap<>();
-        req.put("proposalNo", StringUtils.isEmpty(iac.getJqapplyno()) ? iac.getSyapplyno() : iac.getJqapplyno());
-        SignatureResp resp = guorenRequestApiComponent.request(req, PlatformInterfaceCode.API_IIRBT00046, SignatureResp.class);
-        return resp.getData();
-
+        SignatureRequest signatureRequest = new SignatureRequest();
+        signatureRequest.setProposalNoCI(insAreaCompany.getJqapplyno());
+        signatureRequest.setProposalNoCI(insAreaCompany.getSyapplyno());
+        return guorenRequestApiComponent.request(signatureRequest, PlatformInterfaceCode.API_IIIRBT00055, SignatureResponse.class);
     }
     }
 
 
     /**
     /**
@@ -500,7 +481,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
             //交强险标志
             //交强险标志
             String ciFlag = properties.getPolicyFlagUrl() + policyResp.getData();
             String ciFlag = properties.getPolicyFlagUrl() + policyResp.getData();
             //交强险电子保单
             //交强险电子保单
-            String ciPolicy =properties.getPolicyUrl() + policyResp.getData();
+            String ciPolicy = properties.getPolicyUrl() + policyResp.getData();
             String jqFlagUrl = gainCarInsPolicy(ciFlag, "1", order.getLicenseno());
             String jqFlagUrl = gainCarInsPolicy(ciFlag, "1", order.getLicenseno());
             String jqUrl = gainCarInsPolicy(ciPolicy, "2", order.getLicenseno());
             String jqUrl = gainCarInsPolicy(ciPolicy, "2", order.getLicenseno());
             m.put("jqFlagUrl", jqFlagUrl);
             m.put("jqFlagUrl", jqFlagUrl);
@@ -564,24 +545,19 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
 
 
             //删除已经存在的数据
             //删除已经存在的数据
             if (CollUtil.isNotEmpty(eiaiList)) {
             if (CollUtil.isNotEmpty(eiaiList)) {
-
                 List<String> ids = new ArrayList<>();
                 List<String> ids = new ArrayList<>();
-                eiaiList.stream().forEach(i -> {
-                    ids.add(i.getId());
-                });
+                eiaiList.forEach(i -> ids.add(i.getId()));
                 LambdaQueryWrapper<EsmInsAttachInsureDetails> lqwDetails = new LambdaQueryWrapper<>();
                 LambdaQueryWrapper<EsmInsAttachInsureDetails> lqwDetails = new LambdaQueryWrapper<>();
                 lqwDetails.in(EsmInsAttachInsureDetails::getAttachInsureId, ids);
                 lqwDetails.in(EsmInsAttachInsureDetails::getAttachInsureId, ids);
                 //详情删除
                 //详情删除
                 esmInsAttachInsureDetailsMapper.delete(lqwDetails);
                 esmInsAttachInsureDetailsMapper.delete(lqwDetails);
-
-                //            esmInsAttachInsureMapper.delete(lqw);
                 esmInsAttachInsureMapper.deleteBatchIds(ids);
                 esmInsAttachInsureMapper.deleteBatchIds(ids);
             }
             }
 
 
             List<NonAutoInsResp.DataDTO.ProdListDTO> prodList = nonAutoIns.getProdList();
             List<NonAutoInsResp.DataDTO.ProdListDTO> prodList = nonAutoIns.getProdList();
 
 
 
 
-            prodList.stream().forEach(a -> {
+            prodList.forEach(a -> {
                 EsmInsAttachInsure ati = new EsmInsAttachInsure();
                 EsmInsAttachInsure ati = new EsmInsAttachInsure();
                 ati.setCode(a.getProdRisk());
                 ati.setCode(a.getProdRisk());
                 ati.setName(a.getProdRisk());
                 ati.setName(a.getProdRisk());
@@ -594,7 +570,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
 
 
                 AtomicInteger total = new AtomicInteger(0);
                 AtomicInteger total = new AtomicInteger(0);
                 //具体方案信息
                 //具体方案信息
-                a.getProdRiskList().get(0).getProdCvgLiabList().stream().forEach(d -> {
+                a.getProdRiskList().get(0).getProdCvgLiabList().forEach(d -> {
                     EsmInsAttachInsureDetails atiDetails = new EsmInsAttachInsureDetails();
                     EsmInsAttachInsureDetails atiDetails = new EsmInsAttachInsureDetails();
                     atiDetails.setAttachInsureId(ati.getId());
                     atiDetails.setAttachInsureId(ati.getId());
                     atiDetails.setName(d.getLiabName());
                     atiDetails.setName(d.getLiabName());
@@ -681,8 +657,6 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         insAreaCompany.setSyStartDate(quoteRespVo.getStartDateSy());
         insAreaCompany.setSyStartDate(quoteRespVo.getStartDateSy());
         insAreaCompany.setSyEndDate(quoteRespVo.getEndDateSy());
         insAreaCompany.setSyEndDate(quoteRespVo.getEndDateSy());
         return insAreaCompany;
         return insAreaCompany;
-
-
     }
     }
 
 
     /**
     /**
@@ -692,7 +666,6 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
      * @date: 2023-10-18
      * @date: 2023-10-18
      */
      */
     private void responseOrderExtend(InsAreaCompany iac, QuoteRespVo quoteRespVo, PremiumResp.DataDTO premiumResult, String carPriceUuid) {
     private void responseOrderExtend(InsAreaCompany iac, QuoteRespVo quoteRespVo, PremiumResp.DataDTO premiumResult, String carPriceUuid) {
-
         //交强保费 含税
         //交强保费 含税
         BigDecimal jqPremium = BigDecimal.valueOf(StringUtils.toDouble(premiumResult.getSumPremiumCI()));
         BigDecimal jqPremium = BigDecimal.valueOf(StringUtils.toDouble(premiumResult.getSumPremiumCI()));
         //商业保费 含税
         //商业保费 含税
@@ -704,20 +677,17 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         iac.setJqpremium(jqPremium);
         iac.setJqpremium(jqPremium);
         iac.setSypremium(syPremium);
         iac.setSypremium(syPremium);
         iac.setTaxamount(BigDecimal.valueOf(jq_falg ? quoteRespVo.getTaxAmount() : 0));
         iac.setTaxamount(BigDecimal.valueOf(jq_falg ? quoteRespVo.getTaxAmount() : 0));
-//        iac.setScore(StringUtils.toString(premiumResult.getBirate().getBillcomeGroup()));
         StringBuffer sb = new StringBuffer();
         StringBuffer sb = new StringBuffer();
         sb.append("出险信息,交强险:");
         sb.append("出险信息,交强险:");
         if (CollUtil.isNotEmpty(premiumResult.getCiInsureDemandPay())) {
         if (CollUtil.isNotEmpty(premiumResult.getCiInsureDemandPay())) {
             sb.append(premiumResult.getCiInsureDemandPay().size());
             sb.append(premiumResult.getCiInsureDemandPay().size());
         } else {
         } else {
             sb.append("0");
             sb.append("0");
-
         }
         }
         //商业险出险次数
         //商业险出险次数
         iac.setAccidentStrInfo(sb.toString());
         iac.setAccidentStrInfo(sb.toString());
-        //@TODO 临时用保险公司订单号存放   投保单查询需要
+        //@TODO 临时用保险公司订单号存放 投保单查询需要
         iac.setInsOrderNo(carPriceUuid);
         iac.setInsOrderNo(carPriceUuid);
-
     }
     }
 
 
     public static double add(double v1, double v2) {
     public static double add(double v1, double v2) {
@@ -755,7 +725,6 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         BigDecimal taxPremiumBig = BigDecimal.valueOf(StringUtils.toDouble(rd.getSumPayTax()));
         BigDecimal taxPremiumBig = BigDecimal.valueOf(StringUtils.toDouble(rd.getSumPayTax()));
         //保费合计
         //保费合计
         BigDecimal sumPermium = jqPremiumBig.add(syPremiumBig).add(taxPremiumBig);
         BigDecimal sumPermium = jqPremiumBig.add(syPremiumBig).add(taxPremiumBig);
-
         List<QuoteKindRespVo> kindRespVoList = new ArrayList<>();
         List<QuoteKindRespVo> kindRespVoList = new ArrayList<>();
 
 
         QuoteRespVo quoteRespVo = new QuoteRespVo();
         QuoteRespVo quoteRespVo = new QuoteRespVo();
@@ -764,7 +733,6 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         quoteRespVo.setStartDateSy(rd.getBiStartDate());
         quoteRespVo.setStartDateSy(rd.getBiStartDate());
         quoteRespVo.setEndDateSy(rd.getBiEndDate());
         quoteRespVo.setEndDateSy(rd.getBiEndDate());
 
 
-
         rd.getItemVOList().forEach(a -> {
         rd.getItemVOList().forEach(a -> {
             //交强:0507,商业:0518
             //交强:0507,商业:0518
             if (a.getRiskCode().equals("0507")) {
             if (a.getRiskCode().equals("0507")) {
@@ -909,7 +877,6 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
             throw new SystemException(resp.getResultMsg() == null ? "未找到车辆信息" : resp.getResultMsg());
             throw new SystemException(resp.getResultMsg() == null ? "未找到车辆信息" : resp.getResultMsg());
         }
         }
         return resp.getData().get(0);
         return resp.getData().get(0);
-
     }
     }
 
 
 
 
@@ -958,16 +925,11 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
                         confirmCarMuch = vehicleInfoList.get(0);
                         confirmCarMuch = vehicleInfoList.get(0);
                     }
                     }
                 }
                 }
-
                 return carPriceQueryMuch(respMuch.getData().getInputvo(), confirmCarMuch, yaQuoteInfoVo.getCarInfo().getLicenseNo());
                 return carPriceQueryMuch(respMuch.getData().getInputvo(), confirmCarMuch, yaQuoteInfoVo.getCarInfo().getLicenseNo());
-
             }
             }
-
         }
         }
-
         return null;
         return null;
 
 
-
     }
     }
 
 
     /**
     /**
@@ -997,10 +959,16 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         boolean boo;
         boolean boo;
         //构造请求参数
         //构造请求参数
         PremiumReq req = PremiumReq.buildQuoteParam(yaQuoteInfoVo, carPriceResult, vinQ);
         PremiumReq req = PremiumReq.buildQuoteParam(yaQuoteInfoVo, carPriceResult, vinQ);
-        PremiumResp resp;
+        PremiumResp resp = null;
         StringBuffer flag = new StringBuffer();
         StringBuffer flag = new StringBuffer();
 
 
-        for (; ; ) {
+        int number = 0;
+        for (;;) {
+            // 关闭死循环
+            if (number >= 10) {
+                break;
+            }
+
             resp = guorenRequestApiComponent.request(req, PlatformInterfaceCode.API_IIRBT00004, PremiumResp.class);
             resp = guorenRequestApiComponent.request(req, PlatformInterfaceCode.API_IIRBT00004, PremiumResp.class);
             req.getCi().getPrpTmain().setAnswer(null);
             req.getCi().getPrpTmain().setAnswer(null);
             req.getBi().getPrpTmain().setAnswer(null);
             req.getBi().getPrpTmain().setAnswer(null);
@@ -1020,7 +988,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
             if (!boo) {
             if (!boo) {
                 break;
                 break;
             }
             }
-
+            number ++;
         }
         }
 
 
         resp.getData().setCiStartDate(req.getCi().getPrpTmain().getStartDate());
         resp.getData().setCiStartDate(req.getCi().getPrpTmain().getStartDate());
@@ -1113,8 +1081,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
      * @author: lig
      * @author: lig
      * @date: 2023-09-28
      * @date: 2023-09-28
      */
      */
-    public SubmitAuditResp nonAutoInsOrder(AccidentalDrivingVo accidentalDrivingVo, String carPriceUuid, ChannelInfoDto channelInfo) {
-        BaseQuoteInfoVo yaQuoteInfoVo = new BaseQuoteInfoVo();
+    public SubmitAuditResp nonAutoInsOrder(BaseQuoteInfoVo yaQuoteInfoVo, AccidentalDrivingVo accidentalDrivingVo, String carPriceUuid, ChannelInfoDto channelInfo) {
         VinQueryResp.DataDTO vinQ = new VinQueryResp.DataDTO();
         VinQueryResp.DataDTO vinQ = new VinQueryResp.DataDTO();
         //构造请求参数
         //构造请求参数
         NonAutoInsOrderReq req = NonAutoInsOrderReq.buildParam(yaQuoteInfoVo, vinQ, accidentalDrivingVo, channelInfo, carPriceUuid);
         NonAutoInsOrderReq req = NonAutoInsOrderReq.buildParam(yaQuoteInfoVo, vinQ, accidentalDrivingVo, channelInfo, carPriceUuid);
@@ -1150,35 +1117,27 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
 
 
                 req.getCi().getPrpTmain().setStartHour(StringUtils.toString(start.getHour()));
                 req.getCi().getPrpTmain().setStartHour(StringUtils.toString(start.getHour()));
                 req.getCi().getPrpTmain().setEndHour(StringUtils.toString(start.getHour()));
                 req.getCi().getPrpTmain().setEndHour(StringUtils.toString(start.getHour()));
-
                 req.getCi().getPrpTmain().setImmeValidStartDate(newStartDate);
                 req.getCi().getPrpTmain().setImmeValidStartDate(newStartDate);
                 req.getCi().getPrpTmain().setImmeValidEndDate(newStartDate);
                 req.getCi().getPrpTmain().setImmeValidEndDate(newStartDate);
                 req.getCi().getPrpTmain().setImmeValiFlag("1");
                 req.getCi().getPrpTmain().setImmeValiFlag("1");
 
 
-//                req.getCi().getPrpTmain()
-
             } else {
             } else {
                 LocalDateTime end = start.plusYears(1L).minusDays(1L);
                 LocalDateTime end = start.plusYears(1L).minusDays(1L);
                 newStartDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
                 newStartDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
                 newEndDate = DateTimeUtil.getEndTimeOfDayStr(end, DateTimeUtil.DATETIME_PATTERN);
                 newEndDate = DateTimeUtil.getEndTimeOfDayStr(end, DateTimeUtil.DATETIME_PATTERN);
 
 
-
             }
             }
 
 
             req.getCi().getPrpTmain().setStartDate(newStartDate);
             req.getCi().getPrpTmain().setStartDate(newStartDate);
             req.getCi().getPrpTmain().setEndDate(newEndDate);
             req.getCi().getPrpTmain().setEndDate(newEndDate);
-
             req.getCi().getPrptitemkindList().get(0).setStartDate(newStartDate);
             req.getCi().getPrptitemkindList().get(0).setStartDate(newStartDate);
             req.getCi().getPrptitemkindList().get(0).setEndDate(newEndDate);
             req.getCi().getPrptitemkindList().get(0).setEndDate(newEndDate);
 
 
-
             System.err.println("国任新起:" + newStartDate);
             System.err.println("国任新起:" + newStartDate);
             System.err.println("国任新止:" + newEndDate);
             System.err.println("国任新止:" + newEndDate);
 
 
-
             return true;
             return true;
 
 
-
         }
         }
         return false;
         return false;
 
 

+ 5 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java

@@ -14,6 +14,7 @@ import com.ydtech.modules.order.entity.crawler.constants.CrawlerVerifyPaymentCon
 import com.ydtech.modules.order.entity.crawler.request.*;
 import com.ydtech.modules.order.entity.crawler.request.*;
 import com.ydtech.modules.order.entity.crawler.response.*;
 import com.ydtech.modules.order.entity.crawler.response.*;
 import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
 import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
+import com.ydtech.modules.order.entity.dto.DrivingInsuranceDto;
 import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
 import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
@@ -166,6 +167,10 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
             // 保单号
             // 保单号
             insAreaCompany.setJqpolicyno(crawlerAuditResponse.getJqApplication());
             insAreaCompany.setJqpolicyno(crawlerAuditResponse.getJqApplication());
             insAreaCompany.setSypolicyno(crawlerAuditResponse.getSyApplication());
             insAreaCompany.setSypolicyno(crawlerAuditResponse.getSyApplication());
+            // 3 交叉销售
+            List<CrawlerVerifyPaymentResponse.DrivingInsurancesDTO> drivingInsurances = crawlerAuditResponse.getDrivingInsurancesDto();
+            insAreaCompany.setCrossInsurance(JSON.parseArray(JSON.toJSONString(drivingInsurances)));
+
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());//已承保
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());//已承保
             insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
             insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
             return HttpResult.ok("支付成功");
             return HttpResult.ok("支付成功");

+ 2 - 9
src/main/java/com/ydtech/modules/order/service/impl/InsUploadFilesServiceImpl.java

@@ -17,6 +17,7 @@ import org.springframework.core.io.Resource;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.ResponseEntity;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
 import java.io.File;
 import java.io.File;
@@ -82,7 +83,6 @@ public class InsUploadFilesServiceImpl extends ServiceImpl<InsUploadFilesMapper,
         try (FileOutputStream fileOutputStream = new FileOutputStream(file)) {
         try (FileOutputStream fileOutputStream = new FileOutputStream(file)) {
             if (FileType.IMAGE.getType().equals(type)) {
             if (FileType.IMAGE.getType().equals(type)) {
                 // 图片格式需要压缩.
                 // 图片格式需要压缩.
-                multipartFile.transferTo(new File(uploadPath));
                 byte[] compressPicByte = ImageCompressionUtils.compressPic(multipartFile.getInputStream(), suffix, uploadFilePath);
                 byte[] compressPicByte = ImageCompressionUtils.compressPic(multipartFile.getInputStream(), suffix, uploadFilePath);
 //                byte[] bytes = ImageCompressionUtils.compressPicForScale(compressPicByte, 100);
 //                byte[] bytes = ImageCompressionUtils.compressPicForScale(compressPicByte, 100);
                 fileOutputStream.write(compressPicByte);
                 fileOutputStream.write(compressPicByte);
@@ -90,14 +90,7 @@ public class InsUploadFilesServiceImpl extends ServiceImpl<InsUploadFilesMapper,
                 fileOutputStream.write(multipartFile.getBytes());
                 fileOutputStream.write(multipartFile.getBytes());
             }
             }
 
 
-            InsUploadFiles uploadFiles1 = getById(fileMD5);
-            if (ObjectUtil.isNotEmpty(uploadFiles1)) {
-                return uploadFiles;
-            }
-
-            saveVerify(insUploadFiles);
-
-            return insUploadFiles;
+            return saveVerify(insUploadFiles);
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
             log.info("上传过程中出错:{}", e.getMessage());
             log.info("上传过程中出错:{}", e.getMessage());

+ 12 - 6
src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java

@@ -226,8 +226,13 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         boolean boo = false;
         boolean boo = false;
         boolean isBiRepeat = true;
         boolean isBiRepeat = true;
         String vinNo = carInfo.getVinNo();
         String vinNo = carInfo.getVinNo();
-
+        int number = 0;
         while (!boo) {
         while (!boo) {
+            // 关闭死循环
+            if (number >= 10) {
+                break;
+            }
+
             rr = yongchengRequestApiComponents.newPremiumXnyCalculation(m);
             rr = yongchengRequestApiComponents.newPremiumXnyCalculation(m);
             //交强
             //交强
             m.getRequestLabel().getCondition().getVhl().setCCheckCodeJQ("");
             m.getRequestLabel().getCondition().getVhl().setCCheckCodeJQ("");
@@ -262,7 +267,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
                     InsuranceLog.infoLog(InsuranceEnum.AICS.getPinyin(), "\n\n---------> {} - 商业险日期处理", vinNo);
                     InsuranceLog.infoLog(InsuranceEnum.AICS.getPinyin(), "\n\n---------> {} - 商业险日期处理", vinNo);
                 }
                 }
             }
             }
-
+            number++;
         }
         }
 
 
         StringBuffer sb = new StringBuffer();
         StringBuffer sb = new StringBuffer();
@@ -426,11 +431,11 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
                 //调用python ocr
                 //调用python ocr
                 RecognitionRequest recognitionRequest = new RecognitionRequest();
                 RecognitionRequest recognitionRequest = new RecognitionRequest();
 
 
-                if (!StringUtils.isNotEmpty(cCheckCodeJQ)) {
+                if (StringUtils.isNotEmpty(cCheckCodeJQ)) {
                     recognitionRequest.setJgImage(cCheckCodeJQ);
                     recognitionRequest.setJgImage(cCheckCodeJQ);
                 }
                 }
 
 
-                if (!StringUtils.isNotEmpty(cCheckCodeSY)) {
+                if (StringUtils.isNotEmpty(cCheckCodeSY)) {
                     recognitionRequest.setSyImage(cCheckCodeSY);
                     recognitionRequest.setSyImage(cCheckCodeSY);
                 }
                 }
 
 
@@ -438,14 +443,15 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
 
 
                 m.getRequestLabel().getCondition().getVhl().setCBusType("2");
                 m.getRequestLabel().getCondition().getVhl().setCBusType("2");
                 RecognitionResponse.Code data = recognition.getData();
                 RecognitionResponse.Code data = recognition.getData();
+
                 //交强
                 //交强
-                if (!StringUtils.isNotEmpty(cCheckCodeJQ)) {
+                if (StringUtils.isNotEmpty(cCheckCodeJQ)) {
                     m.getRequestLabel().getCondition().getVhl().setCCheckCodeJQ(data.getJqImageCode());
                     m.getRequestLabel().getCondition().getVhl().setCCheckCodeJQ(data.getJqImageCode());
                     m.getRequestLabel().getCondition().getVhl().setCQryCdeJQ(rr.getVhl().getCQryCdeJQ());
                     m.getRequestLabel().getCondition().getVhl().setCQryCdeJQ(rr.getVhl().getCQryCdeJQ());
                 }
                 }
 
 
                 //商业
                 //商业
-                if (!StringUtils.isNotEmpty(cCheckCodeSY)) {
+                if (StringUtils.isNotEmpty(cCheckCodeSY)) {
                     m.getRequestLabel().getCondition().getVhl().setCCheckCodeSY(data.getSyImageCode());
                     m.getRequestLabel().getCondition().getVhl().setCCheckCodeSY(data.getSyImageCode());
                     m.getRequestLabel().getCondition().getVhl().setCQryCdeSY(rr.getVhl().getCQryCdeSY());
                     m.getRequestLabel().getCondition().getVhl().setCQryCdeSY(rr.getVhl().getCQryCdeSY());
                 }
                 }

+ 16 - 1
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -46,10 +46,12 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.core.ParameterizedTypeReference;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 import org.springframework.util.ObjectUtils;
 
 
 import java.util.*;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 @Service
 @Service
@@ -81,6 +83,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 
 
     private final PtlNonCarProductSchemeService ptlNonCarProductSchemeService;
     private final PtlNonCarProductSchemeService ptlNonCarProductSchemeService;
 
 
+    private final StringRedisTemplate redisTemplate;
+
     @Value("${upload.file.path}")
     @Value("${upload.file.path}")
     private String uploadFilePath;
     private String uploadFilePath;
 
 
@@ -94,7 +98,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
                                        ZhongmeiRequestApiComponents zhongmeiRequestApiComponents, ZhongmeiRequestComponents zhongmeiRequestComponents,
                                        ZhongmeiRequestApiComponents zhongmeiRequestApiComponents, ZhongmeiRequestComponents zhongmeiRequestComponents,
                                        ConfigureParametersComponents configureParametersComponents, PtlAgreementAttributionService ptlAgreementAttributionService,
                                        ConfigureParametersComponents configureParametersComponents, PtlAgreementAttributionService ptlAgreementAttributionService,
                                        FeeRuleSchemeService feeRuleSchemeService, InsFeeOrderService insFeeOrderService,ZhongmeiRepeatInsuranceComponents zhongmeiRepeatInsuranceComponents,
                                        FeeRuleSchemeService feeRuleSchemeService, InsFeeOrderService insFeeOrderService,ZhongmeiRepeatInsuranceComponents zhongmeiRepeatInsuranceComponents,
-                                       PtlAgreementNonCarProductCostsService ptlAgreementNonCarProductCostsService,PtlNonCarProductSchemeService ptlNonCarProductSchemeService) {
+                                       PtlAgreementNonCarProductCostsService ptlAgreementNonCarProductCostsService,PtlNonCarProductSchemeService ptlNonCarProductSchemeService,StringRedisTemplate redisTemplate) {
         this.insOrdersService = insOrdersService;
         this.insOrdersService = insOrdersService;
         this.insAreaCompanyService = insAreaCompanyService;
         this.insAreaCompanyService = insAreaCompanyService;
         this.insTaskImagesService = insTaskImagesService;
         this.insTaskImagesService = insTaskImagesService;
@@ -107,6 +111,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         this.zhongmeiRepeatInsuranceComponents = zhongmeiRepeatInsuranceComponents;
         this.zhongmeiRepeatInsuranceComponents = zhongmeiRepeatInsuranceComponents;
         this.ptlAgreementNonCarProductCostsService=ptlAgreementNonCarProductCostsService;
         this.ptlAgreementNonCarProductCostsService=ptlAgreementNonCarProductCostsService;
         this.ptlNonCarProductSchemeService=ptlNonCarProductSchemeService;
         this.ptlNonCarProductSchemeService=ptlNonCarProductSchemeService;
+        this.redisTemplate = redisTemplate;
     }
     }
 
 
     private void modelInquiry(String modelName, List<ModelsQueryResponse.SimpleStadarCarDTO> simpleStadarCarDTOS) {
     private void modelInquiry(String modelName, List<ModelsQueryResponse.SimpleStadarCarDTO> simpleStadarCarDTOS) {
@@ -131,6 +136,12 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 
 
     @Override
     @Override
     public HttpResult<List<CarModelDTO>> modelsQuery(String modelName) {
     public HttpResult<List<CarModelDTO>> modelsQuery(String modelName) {
+        //从缓存中查数据
+        if(!Objects.isNull(redisTemplate.opsForValue().get(modelName))){
+            String carModeStr = redisTemplate.opsForValue().get(modelName);
+            List<CarModelDTO> carModelDTOS = JSON.parseArray(carModeStr, CarModelDTO.class);
+            return HttpResult.ok(carModelDTOS);
+        }
         ModelsQueryRequest modelsQueryResponse = new ModelsQueryRequest();
         ModelsQueryRequest modelsQueryResponse = new ModelsQueryRequest();
         modelsQueryResponse.setModelName(modelName);
         modelsQueryResponse.setModelName(modelName);
 //        List<ModelsQueryResponse.SimpleStadarCarDTO> car = zhongmeiRequestApiComponents.modelQuery(modelsQueryResponse, ModelsQueryResponse.class);
 //        List<ModelsQueryResponse.SimpleStadarCarDTO> car = zhongmeiRequestApiComponents.modelQuery(modelsQueryResponse, ModelsQueryResponse.class);
@@ -138,6 +149,10 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         modelInquiry(modelName, car);
         modelInquiry(modelName, car);
 
 
         List<CarModelDTO> map = SimpleStadarCarDTOConvert.INSTANCE.map(car);
         List<CarModelDTO> map = SimpleStadarCarDTOConvert.INSTANCE.map(car);
+        //数据存储到缓存中
+        if(map.size() > 0){
+            redisTemplate.opsForValue().set(modelName,JSON.toJSONString(map),1, TimeUnit.HOURS);
+        }
         return HttpResult.ok(map);
         return HttpResult.ok(map);
     }
     }
 
 

+ 2 - 2
src/main/java/com/ydtech/modules/order/service/impl/ZijinOrderApiServiceImpl.java

@@ -118,7 +118,6 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
         String seatCount = vehicleModelInfosDTO.getSeatCount();
         String seatCount = vehicleModelInfosDTO.getSeatCount();
         CarInfoVo carInfo = quoteInfoVo.getCarInfo();
         CarInfoVo carInfo = quoteInfoVo.getCarInfo();
         String startDate;
         String startDate;
-
         // 3.1 计算起保日期
         // 3.1 计算起保日期
         List<RiskInfoVo> riskList = quoteInfoVo.getRiskList();
         List<RiskInfoVo> riskList = quoteInfoVo.getRiskList();
         if (riskList.size() == 1 && InsuranceRisk.TRAFFIC.getCode().equals(riskList.get(0).getRiskCode())) {
         if (riskList.size() == 1 && InsuranceRisk.TRAFFIC.getCode().equals(riskList.get(0).getRiskCode())) {
@@ -142,7 +141,7 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
             objects.add(message);
             objects.add(message);
             quoteRespVo.setWarnMessageList(objects);
             quoteRespVo.setWarnMessageList(objects);
         }
         }
-        return responseOrder(calculatePremiumResponse, quoteRespVo, ptlAgreementAttribution, modelQueryResponse.getOrderId(), modelQueryResponse.getOrderNo());
+        return responseOrder(calculatePremiumResponse, quoteRespVo, ptlAgreementAttribution, calculatePremiumRequest.getOrderId(), calculatePremiumRequest.getOrderNo());
     }
     }
 
 
     @Override
     @Override
@@ -214,6 +213,7 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
                 }
                 }
                 return HttpResult.error(OrderStatusEnum.O_3.getName() + ":" + uwMsg);
                 return HttpResult.error(OrderStatusEnum.O_3.getName() + ":" + uwMsg);
             }
             }
+
             throw new SystemException(systemException.getMessage());
             throw new SystemException(systemException.getMessage());
         }
         }
 
 

+ 62 - 0
src/main/java/com/ydtech/modules/order/utils/AESUtilsWithDataBase.java

@@ -2,7 +2,10 @@ package com.ydtech.modules.order.utils;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.constants.InsuranceEnum;
+import com.ydtech.utils.Base64Utils;
+import com.ydtech.utils.RSA.RSAUtils;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.binary.Base64;
 
 
 import javax.crypto.Cipher;
 import javax.crypto.Cipher;
 import javax.crypto.spec.SecretKeySpec;
 import javax.crypto.spec.SecretKeySpec;
@@ -114,4 +117,63 @@ public class AESUtilsWithDataBase {
         return JSON.parseObject(text, c);
         return JSON.parseObject(text, c);
     }
     }
 
 
+    /**
+     * AES 加密操作  ECBPK5-Base64
+     *
+     * @param content
+     * @return
+     */
+    public static String encryptECBPK5Base64(String content, String sessionKey) {
+        byte[] result = null;
+        if (content == null || "".equals(content)) {
+            return content;
+        }
+        try {
+            byte[] byteContent = content.getBytes(CODE_TYPE);
+            //使用加密秘钥
+            SecretKeySpec skeySpec = new SecretKeySpec(sessionKey.getBytes(CODE_TYPE), AES);
+            /*
+             * 新建一个密码编译器的实例,由三部分构成,用"/"分隔,分别代表如下
+             * 1. 加密的类型(如AES,DES,RC2等)
+             * 2. 模式(AES中包含ECB,CBC,CFB,CTR,CTS等)
+             * 3. 补码方式(包含nopadding/PKCS5Padding等等)
+             * 依据这三个参数可以创建很多种加密方式
+             */
+            synchronized (Cipher.class) {
+                Cipher cipher = Cipher.getInstance(ECB_PKCS5_PADDING);//"AES/ECB/PKCS5Padding";
+                cipher.init(Cipher.ENCRYPT_MODE, skeySpec);// 初始化为加密模式的密码器
+                result = cipher.doFinal(byteContent);// 加密
+            }
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+        return Base64.encodeBase64String(result);//通过base64转码返回
+    }
+
+    /**
+     * AES 解密操作  ECBPK5-Base64
+     *
+     * @param content
+     * @return
+     */
+    public static String decryptECBPK5Base64(String content, String sessionKey) {
+        String returnStr = content;
+        byte[] result;
+        if (content == null || "".equals(content)) {
+            return content;
+        }
+        try {
+            //使用加密秘钥
+            SecretKeySpec skeySpec = new SecretKeySpec(sessionKey.getBytes(CODE_TYPE), AES);
+            synchronized (Cipher.class) {
+                //实例化
+                Cipher cipher = Cipher.getInstance(ECB_PKCS5_PADDING);
+                cipher.init(Cipher.DECRYPT_MODE, skeySpec);// 初始化为加密模式的密码器
+                result = cipher.doFinal(Base64.decodeBase64(content));
+            }
+            returnStr = new String(result, CODE_TYPE);
+        } catch (Exception ex) {
+        }
+        return returnStr;
+    }
 }
 }

+ 1 - 1
src/main/resources/application-prod.yml

@@ -238,7 +238,7 @@ guoren:
     baseUrl: https://rbt.guorenpcic.com/api/grchannel-interface/httpCurrency/httpJsonCommonEntrance
     baseUrl: https://rbt.guorenpcic.com/api/grchannel-interface/httpCurrency/httpJsonCommonEntrance
     uploadUrl: https://rbt.guorenpcic.com/api/grecar/photo/upload
     uploadUrl: https://rbt.guorenpcic.com/api/grecar/photo/upload
     redirectUrl: http://sxzgkj.baoxianzhanggui.com/web-api/api/guoRen/callBack
     redirectUrl: http://sxzgkj.baoxianzhanggui.com/web-api/api/guoRen/callBack
-    policyUrl: https://rbt.guorenpcic.com/api/grsavecarcore/savecarcore/getElePolicyFlagForGrecar?certiNo=
+    policyUrl: https://rbt.guorenpcic.com/api/grsavecarcore/savecarcore/getElePolicyForGrecar?certiNo=
     policyFlagUrl: https://rbt.guorenpcic.com/api/grsavecarcore/savecarcore/getElePolicyFlagForGrecar?certiNo=
     policyFlagUrl: https://rbt.guorenpcic.com/api/grsavecarcore/savecarcore/getElePolicyFlagForGrecar?certiNo=
     serveCode: GR0002
     serveCode: GR0002
     channelCode: TQDL
     channelCode: TQDL

+ 1 - 1
src/main/resources/application-test.yml

@@ -338,7 +338,7 @@ guoren:
     baseUrl: https://devyun.guorenpcic.com/api/grchannel-interface/httpCurrency/httpJsonCommonEntrance
     baseUrl: https://devyun.guorenpcic.com/api/grchannel-interface/httpCurrency/httpJsonCommonEntrance
     uploadUrl: https://devyun.guorenpcic.com/api/grecar/photo/upload
     uploadUrl: https://devyun.guorenpcic.com/api/grecar/photo/upload
     redirectUrl: http://39.98.239.48/web-api/api/guoRen/callBack
     redirectUrl: http://39.98.239.48/web-api/api/guoRen/callBack
-    policyUrl: https://devyun.guorenpcic.com/api/grsavecarcore/savecarcore/getElePolicyFlagForGrecar?certiNo=
+    policyUrl: https://devyun.guorenpcic.com/api/grsavecarcore/savecarcore/getElePolicyForGrecar?certiNo=
     policyFlagUrl: https://devyun.guorenpcic.com/api/grsavecarcore/savecarcore/getElePolicyFlagForGrecar?certiNo=
     policyFlagUrl: https://devyun.guorenpcic.com/api/grsavecarcore/savecarcore/getElePolicyFlagForGrecar?certiNo=
     serveCode: GR0002
     serveCode: GR0002
     channelCode: jindouyun
     channelCode: jindouyun