浏览代码

1.国任非车险订单修改

wks 2 年之前
父节点
当前提交
5debb74454
共有 16 个文件被更改,包括 441 次插入214 次删除
  1. 8 4
      src/main/java/com/ydtech/modules/ins/model/guoren/InsuranceSlipReq.java
  2. 2 2
      src/main/java/com/ydtech/modules/ins/model/guoren/NonAutoInsOrderReq.java
  3. 22 37
      src/main/java/com/ydtech/modules/ins/model/guoren/PremiumReq.java
  4. 112 7
      src/main/java/com/ydtech/modules/order/components/gouren/GuorenRequestApiComponent.java
  5. 1 1
      src/main/java/com/ydtech/modules/order/controller/GuoRenOrderApiController.java
  6. 10 1
      src/main/java/com/ydtech/modules/order/entity/api/guoren/constants/GoodsClassifyList.java
  7. 5 1
      src/main/java/com/ydtech/modules/order/entity/api/guoren/constants/PlatformInterfaceCode.java
  8. 59 0
      src/main/java/com/ydtech/modules/order/entity/api/guoren/request/NoCarElectronicPolicyRequest.java
  9. 29 0
      src/main/java/com/ydtech/modules/order/entity/api/guoren/request/QueryNoCarPolicyNoRequest.java
  10. 71 0
      src/main/java/com/ydtech/modules/order/entity/api/guoren/response/NoCarElectronicPolicyResponse.java
  11. 1 1
      src/main/java/com/ydtech/modules/order/entity/api/guoren/response/NonAutoInsOrderResponse.java
  12. 38 0
      src/main/java/com/ydtech/modules/order/entity/api/guoren/response/QueryNoCarPolicyNoResponse.java
  13. 2 2
      src/main/java/com/ydtech/modules/order/entity/vo/guoren/GuorenAccidentalDrivingVo.java
  14. 1 1
      src/main/java/com/ydtech/modules/order/service/GuorenOrderApiService.java
  15. 80 153
      src/main/java/com/ydtech/modules/order/service/impl/GuorenOrderApiServiceImpl.java
  16. 0 4
      src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java

+ 8 - 4
src/main/java/com/ydtech/modules/ins/model/guoren/InsuranceSlipReq.java

@@ -21,22 +21,27 @@ public class InsuranceSlipReq {
     @JsonProperty(value = "uuid")
     @JSONField(name = "uuid")
     private String uuid;
+
     @JsonProperty(value = "prpTinsured")
     @JSONField(name = "prpTinsured")
+
     private PrpTinsuredDTO prpTinsured;
     @JsonProperty(value = "biPrptenages")
     @JSONField(name = "biPrptenages")
     private List<?> biPrptenages;
+
     @JsonProperty(value = "ciPrptenages")
     @JSONField(name = "ciPrptenages")
     private List<CiPrptenagesDTO> ciPrptenages;
 
-
+    @JsonProperty(value = "order")
+    @JSONField(name = "order")
+    private String order;
     /**
      * 构造请求参数
      */
     @JsonIgnore
-    public static InsuranceSlipReq buildParam(BaseQuoteInfoVo yaQuoteInfoVo, String carPriceNum) {
+    public static InsuranceSlipReq buildParam(BaseQuoteInfoVo yaQuoteInfoVo, String carPriceNum, String orderCode) {
 
         //投保人
         CustomerInfoVo policyHolderInfo = yaQuoteInfoVo.getPolicyHolderInfo();
@@ -64,7 +69,6 @@ public class InsuranceSlipReq {
         prpTinsured.setAppliValidDateLongFlag("1");
         prpTinsured.setAppliNationality("中国");
 
-
         /**
          *  被保人信息
          */
@@ -81,7 +85,7 @@ public class InsuranceSlipReq {
         prpTinsured.setInsuredValidDateLongFlag("1");
         prpTinsured.setInsuredNationality("中国");
 
-
+        req.setOrder(orderCode);
         req.setPrpTinsured(prpTinsured);
         req.setBiPrptenages(null);
         req.setCiPrptenages(null);

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

@@ -190,7 +190,7 @@ public class NonAutoInsOrderReq {
 
                 @JsonProperty(value = "amount")
                 @JSONField(name = "amount")
-                private Integer amount;
+                private String amount;
 
                 @JsonProperty(value = "endDate")
                 @JSONField(name = "endDate")
@@ -210,7 +210,7 @@ public class NonAutoInsOrderReq {
 
                 @JsonProperty(value = "premium")
                 @JSONField(name = "premium")
-                private Integer premium;
+                private String premium;
 
                 @JsonProperty(value = "prodCode")
                 @JSONField(name = "prodCode")

+ 22 - 37
src/main/java/com/ydtech/modules/ins/model/guoren/PremiumReq.java

@@ -51,32 +51,32 @@ public class PremiumReq {
      * @date: 2023年08月14日 0014
      */
     @JsonIgnore
-    public static PremiumReq buildQuoteParam(BaseQuoteInfoVo yaQuoteInfoVo, CarPriceResp.DataDTO carPriceResult, VinQueryResp.DataDTO vinQ) {
+    public static PremiumReq buildQuoteParam(BaseQuoteInfoVo yaQuoteInfoVo, CarPriceResp.DataDTO carPriceResult, VinQueryResp.DataDTO vinQ, boolean isNoCar) {
         CarInfoVo carInfo = yaQuoteInfoVo.getCarInfo();
         List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
         List<KindInfoVo> kindInfoVList = yaQuoteInfoVo.getKindList();
 
         PremiumReq quoteReq = new PremiumReq();
 
-        riskList.stream().forEach(a -> {
+        riskList.forEach(a -> {
             if (a.getRiskCode().equals("0507")) {
-                CiDTO ciDto = buildCiDto(a);
+                CiDTO ciDto = buildCiDto(a, isNoCar);
                 quoteReq.setCi(ciDto);
             }
             if (a.getRiskCode().equals("0510")) {
-                BiDTO biDto = buildBiDto(a, kindInfoVList, carPriceResult, vinQ);
+                BiDTO biDto = buildBiDto(a, kindInfoVList, carPriceResult, vinQ, isNoCar);
                 quoteReq.setBi(biDto);
             }
         });
 
         //未投保交强
         if (null == quoteReq.getCi()) {
-            CiDTO ciDto = buildCiDto(null);
+            CiDTO ciDto = buildCiDto(null, false);
             quoteReq.setCi(ciDto);
         }
         //未投保商业
         if (null == quoteReq.getBi()) {
-            BiDTO biDto = buildBiDto(null, null, null, null);
+            BiDTO biDto = buildBiDto(null, null, null, null, false);
             quoteReq.setBi(biDto);
         }
 
@@ -105,7 +105,8 @@ public class PremiumReq {
      * @date: 2023-08-15
      */
     @JsonIgnore
-    public static CiDTO buildCiDto(RiskInfoVo ciRiskInfo) {
+    public static CiDTO buildCiDto(RiskInfoVo ciRiskInfo, boolean isNoCar) {
+
 
         CiDTO ciDto = new CiDTO();
         ciDto.setPrpTrenewal(new ArrayList<>());
@@ -129,7 +130,6 @@ public class PremiumReq {
          */
         List<CiDTO.PrptitemkindListDTO> prptitemkindList = new ArrayList<>();
 
-
         /**
          * 车船税
          */
@@ -156,12 +156,12 @@ public class PremiumReq {
             //即时终保时间	immeValidEndDate	字符串	N	即时起保必传 (YYYY-MM-DD HH:MM:SS)
             ciPrpTmain.setImmeValidEndDate(cidd.isForthwith() ? cidd.getEndDate() : "");
 
-
-            //非车标识      车+非车必传:1
-            ciPrpTmain.setNoCarFlag("0");
-            //车+非车标识    车加非车必传:N
-//                ciPrpTmain.setOrderFlag("N");
-
+            if (isNoCar) {
+                //非车标识      车+非车必传:1
+                ciPrpTmain.setNoCarFlag("1");
+                //车+非车标识    车加非车必传:N
+                ciPrpTmain.setOrderFlag("N");
+            }
 
             /**
              * 车辆信息对象
@@ -218,9 +218,7 @@ public class PremiumReq {
      * @date: 2023-08-15
      */
     @JsonIgnore
-    public static BiDTO buildBiDto(RiskInfoVo biRiskInfo, List<KindInfoVo> kindInfoVList, CarPriceResp.DataDTO carPriceResult, VinQueryResp.DataDTO vinQ) {
-
-
+    public static BiDTO buildBiDto(RiskInfoVo biRiskInfo, List<KindInfoVo> kindInfoVList, CarPriceResp.DataDTO carPriceResult, VinQueryResp.DataDTO vinQ, boolean isNoCar) {
         BiDTO biDto = new BiDTO();
         biDto.setPrpTmainRate(new BiDTO.PrpTmainRateDTO());
         biDto.setPrpTChargingPostDataList(new ArrayList<>());
@@ -235,14 +233,12 @@ public class PremiumReq {
         biDto.setPrpTrenewal(new ArrayList<>());
         biDto.setPrptengageList(new ArrayList<>());
 
-
         /**
          * 主信息
          */
         BiDTO.PrpTmainDTO biPrpTmain = new BiDTO.PrpTmainDTO();
         biPrpTmain.setImmeValidEndDate("");
 
-
         /**
          * 车辆信息对象
          */
@@ -276,12 +272,12 @@ public class PremiumReq {
             biPrpTmain.setStartDate(biCidd.getStartDate());
             biPrpTmain.setEndDate(biCidd.getEndDate());
 
-
-            //非车标识      车+非车必传:1
-//                ciPrpTmain.setNoCarFlag("1");
-            //车+非车标识    车加非车必传:N
-//                ciPrpTmain.setOrderFlag("N");
-
+            if (isNoCar) {
+                // 非车标识      车+非车必传:1
+                biPrpTmain.setNoCarFlag("1");
+                //车+非车标识    车加非车必传:N
+                biPrpTmain.setOrderFlag("N");
+            }
 
             List<BiDTO.PrptitemkindListDTO> prptitemkindList = buildBiKindList(kindInfoVList, carPriceResult, biRiskInfo, vinQ);
             biDto.setPrptitemkindList(prptitemkindList);
@@ -293,37 +289,26 @@ public class PremiumReq {
             biPrpTmain.setNoCarFlag("0");
             biPrpTmain.setImmeValiFlag("");
             biPrpTmain.setImmeValidStartDate("");
-
             biPrpTmain.setInputDate("");
             biPrpTmain.setSignDate("");
-
-
             biDto.setPrptitemkindList(new ArrayList<>());
-
         }
-
-
         biDto.setPrpTitemCar(biPrpTitemCar);
         biDto.setPrpTmain(biPrpTmain);
-
-
         if (CollUtil.isNotEmpty(kindInfoVList)) {
             biDto.setCalculateFlagBI("1");
             biDto.setInputRisk("1");
-
         } else {
             biDto.setCalculateFlagBI("0");
             biDto.setInputRisk("0");
 
         }
-
-
         return biDto;
     }
 
     private static List<BiDTO.PrptitemkindListDTO> buildBiKindList(List<KindInfoVo> kindInfoVList, CarPriceResp.DataDTO carPriceResult, RiskInfoVo biRiskInfo, VinQueryResp.DataDTO vinQ) {
         List<BiDTO.PrptitemkindListDTO> prptitemkindList = new ArrayList<>();
-        kindInfoVList.stream().forEach(k -> {
+        kindInfoVList.forEach(k -> {
             BiDTO.PrptitemkindListDTO prptitemkind = new BiDTO.PrptitemkindListDTO();
             prptitemkind.setChecked("1");
             prptitemkind.setModeCode("1");

+ 112 - 7
src/main/java/com/ydtech/modules/order/components/gouren/GuorenRequestApiComponent.java

@@ -2,16 +2,26 @@ package com.ydtech.modules.order.components.gouren;
 
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
 import com.ydtech.config.properties.GuorenApiConfigurationProperties;
 import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.exception.SystemException;
-import com.ydtech.modules.ins.model.guoren.RequestDto;
-import com.ydtech.modules.ins.model.guoren.ResponseDto;
+import com.ydtech.modules.ins.model.guoren.*;
+import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.api.guoren.constants.PlatformInterfaceCode;
 import com.ydtech.modules.order.entity.api.guoren.constants.Response;
+import com.ydtech.modules.order.entity.api.guoren.request.NoCarElectronicPolicyRequest;
+import com.ydtech.modules.order.entity.api.guoren.request.QueryNoCarPolicyNoRequest;
+import com.ydtech.modules.order.entity.api.guoren.request.SignatureRequest;
+import com.ydtech.modules.order.entity.api.guoren.response.NoCarElectronicPolicyResponse;
+import com.ydtech.modules.order.entity.api.guoren.response.QueryNoCarPolicyNoResponse;
+import com.ydtech.modules.order.entity.api.guoren.response.SignatureResponse;
+import com.ydtech.modules.order.entity.dto.DrivingInsuranceDto;
+import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.utils.InsuranceLog;
+import com.ydtech.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -21,6 +31,11 @@ import org.springframework.lang.Nullable;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 
 /**
  * @description: 国任财险
@@ -33,20 +48,19 @@ public class GuorenRequestApiComponent {
 
     private final RestTemplate restTemplate;
 
-    private final GuorenApiConfigurationProperties guorenApiConfigurationProperties;
+    private final GuorenApiConfigurationProperties properties;
 
     public GuorenRequestApiComponent(GuorenApiConfigurationProperties guorenApiConfigurationProperties, RestTemplate restTemplate) {
-        this.guorenApiConfigurationProperties = guorenApiConfigurationProperties;
+        this.properties = guorenApiConfigurationProperties;
         this.restTemplate = restTemplate;
     }
 
-
     private ResponseDto<JSONObject> post(String logId, String message, @Nullable RequestDto requestBody) {
         HttpHeaders httpHeaders = new HttpHeaders();
         httpHeaders.setContentType(MediaType.APPLICATION_JSON);
 
         String request = JSON.toJSONString(requestBody);
-        String baseUrl = guorenApiConfigurationProperties.getBaseUrl();
+        String baseUrl = properties.getBaseUrl();
         HttpEntity<String> httpEntity = new HttpEntity<>(request, httpHeaders);
 
         InsuranceLog.infoLog(logId, "\n\t---------> {} \n\t---------> URL: {} \n\t---------> 请求参数: {}", message, baseUrl, request);
@@ -64,7 +78,7 @@ public class GuorenRequestApiComponent {
     }
 
     private ResponseDto<JSONObject> post(Object o, PlatformInterfaceCode platformInterfaceCode) {
-        RequestDto requestBody = RequestDto.builRequestDto(o, platformInterfaceCode.getCode(), guorenApiConfigurationProperties);
+        RequestDto requestBody = RequestDto.builRequestDto(o, platformInterfaceCode.getCode(), properties);
         ResponseDto<JSONObject> post = post(InsuranceEnum.XDCX.getPinyin(), platformInterfaceCode.getDesc(), requestBody);
         Response.verification(Response.API_T0000000, post);
         return post;
@@ -81,4 +95,95 @@ public class GuorenRequestApiComponent {
     }
 
 
+    /**
+     * 投保单保存
+     */
+    public InsuranceSlipResp insuranceSlip(BaseQuoteInfoVo yaQuoteInfoVo, String carPriceNum, String orderCode) {
+        //构造请求参数
+        InsuranceSlipReq req = InsuranceSlipReq.buildParam(yaQuoteInfoVo, carPriceNum, orderCode);
+        return request(req, PlatformInterfaceCode.API_IIRBT00006, InsuranceSlipResp.class);
+    }
+
+
+    /**
+     * 提交核保
+     */
+    public SubmitAuditResp submitAudit(InsAreaCompany iac, ChannelInfoDto channelInfo) {
+        //构造请求参数
+        SubmitAuditReq req = SubmitAuditReq.buildParam(iac, channelInfo);
+        return request(req, PlatformInterfaceCode.API_IIRBT00007, SubmitAuditResp.class);
+    }
+
+    /**
+     * 查询非车险保单号
+     */
+    public void queryNoCarPolicyNo(InsAreaCompany iac) {
+        //构造请求参数
+        QueryNoCarPolicyNoRequest queryNoCarPolicyNoRequest = new QueryNoCarPolicyNoRequest(StringUtils.isNotEmpty(iac.getSyapplyno()) ? iac.getSyapplyno() : iac.getJqapplyno());
+        QueryNoCarPolicyNoResponse request = request(queryNoCarPolicyNoRequest, PlatformInterfaceCode.API_IIIRBT00052, QueryNoCarPolicyNoResponse.class);
+        QueryNoCarPolicyNoResponse.DataDTO data = request.getData();
+        // 非车保单号
+        List<String> noCarPolicyNo = data.getNoCarPolicyNo();
+        // 非车投保单号
+        List<String> noCarProposalNo = data.getNoCarProposalNo();
+
+        List<DrivingInsuranceDto> drivingInsuranceDtos = new ArrayList<>();
+        for (int i = 0; i < noCarPolicyNo.size(); i++) {
+            DrivingInsuranceDto drivingInsuranceDto = new DrivingInsuranceDto();
+            drivingInsuranceDto.setPolicyNumber(noCarPolicyNo.get(i));
+            drivingInsuranceDto.setApplicationNumber(noCarProposalNo.get(i));
+            drivingInsuranceDtos.add(drivingInsuranceDto);
+        }
+        JSONArray objects = JSON.parseArray(JSON.toJSONString(drivingInsuranceDtos));
+        iac.setCrossInsurance(objects);
+    }
+
+
+    /**
+     * 支付获取支付url
+     */
+    public PayResp.DataDTO getPaid(InsAreaCompany iac, ChannelInfoDto channelInfo) {
+        //构造请求参数
+        PayReq req = PayReq.buildParam(iac, properties.getRedirectUrl(), channelInfo);
+        PayResp payResp = request(req, PlatformInterfaceCode.API_IIRBT00008, PayResp.class);
+        if (null != payResp) {
+            return payResp.getData();
+        }
+        return null;
+    }
+
+    /**
+     * 通过二维码扫描获取电子投保单签名
+     */
+    public SignatureResponse signature(InsAreaCompany insAreaCompany) {
+        //构造请求参数
+        SignatureRequest signatureRequest = new SignatureRequest();
+        signatureRequest.setProposalNoCI(insAreaCompany.getJqapplyno());
+        signatureRequest.setProposalNoCI(insAreaCompany.getSyapplyno());
+        return request(signatureRequest, PlatformInterfaceCode.API_IIIRBT00055, SignatureResponse.class);
+    }
+
+    /**
+     * 电子保单
+     */
+    public PolicyResp policyPrint(String policyNo) {
+        Map<String, String> m = new HashMap<>();
+        m.put("policyNo", policyNo);
+        PolicyResp resp = request(m, PlatformInterfaceCode.API_IIRBT00027, PolicyResp.class);
+        if (null != resp && resp.getResultCode() == 0) {
+            return resp;
+        }
+        return null;
+    }
+
+    /**
+     * 获取非车电子保单下载链接
+     */
+    public String noCarElectronicPolicy(String channelCode, String othBusinessNo, String policyNo) {
+        NoCarElectronicPolicyRequest noCarElectronicPolicyRequest = new NoCarElectronicPolicyRequest(channelCode, othBusinessNo, policyNo);
+        NoCarElectronicPolicyResponse request = request(noCarElectronicPolicyRequest, PlatformInterfaceCode.API_IIRBT00089, NoCarElectronicPolicyResponse.class);
+        return request.getData().getEpolicyUrl();
+    }
+
+
 }

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

@@ -94,7 +94,7 @@ public class GuoRenOrderApiController {
 
     @ApiOperation(value = "电子保单")
     @PostMapping("/policyPrint")
-    public HttpResult getPolicyPrintApi(@RequestBody PolicyPrintVo policyPrintVo) {
+    public HttpResult<String> getPolicyPrintApi(@RequestBody PolicyPrintVo policyPrintVo) {
         return guorenOrderApiService.getPolicyPrintApi(policyPrintVo);
     }
 

+ 10 - 1
src/main/java/com/ydtech/modules/order/entity/api/guoren/constants/GoodsClassifyList.java

@@ -5,7 +5,6 @@ import lombok.Data;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 
-import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -59,6 +58,16 @@ public enum GoodsClassifyList {
     }
 
 
+    public static boolean verificationGoodsCode(String code) {
+        try {
+            Enum.valueOf(GoodsClassifyList.class, "G_" + code);
+            return true;
+        } catch (Exception e) {
+            return false;
+        }
+    }
+
+
     @Data
     @NoArgsConstructor
     @AllArgsConstructor

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

@@ -31,11 +31,15 @@ public enum PlatformInterfaceCode {
 
     API_IIRBT00046("IIRBT00046", "获取电子投保单链接(核保通过状态)"),
 
+    API_IIIRBT00052("IIIRBT00052", "通过车险投保单号查询非车投保单号"),
+
     API_IIIRBT00053("IIIRBT00053", "查询非车商品信息"),
 
     API_IIIRBT00055("IIIRBT00055", "通过二维码扫描获取电子投保单签名"),
 
-    API_IIIRBT00054("IIIRBT00054", "创建非车订单");
+    API_IIIRBT00054("IIIRBT00054", "创建非车订单"),
+
+    API_IIRBT00089("IIRBT00089", "获取非车电子保单下载链接");
 
     private final String code;
 

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

@@ -0,0 +1,59 @@
+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;
+import java.time.Instant;
+
+/**
+ * @description: 非车险电子保单 请求
+ * @author: wenks
+ * @date: 2023/11/6 15:29
+ **/
+@NoArgsConstructor
+@Data
+public class NoCarElectronicPolicyRequest implements Serializable {
+
+    private static final long serialVersionUID = 2944290175841660789L;
+
+
+    @JsonProperty("requestTime")
+    private String requestTime;
+
+    @JsonProperty("channelCode")
+    private String channelCode;
+
+    @JsonProperty("othBusinessNo")
+    private String othBusinessNo;
+
+    @JsonProperty("data")
+    private DataDTO data;
+
+    public NoCarElectronicPolicyRequest(String channelCode, String othBusinessNo, String policyNo) {
+        this.requestTime = String.valueOf(Instant.now().getEpochSecond() * 1000);
+        this.channelCode = channelCode;
+        this.othBusinessNo = othBusinessNo;
+        this.data = new DataDTO(policyNo);
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class DataDTO implements Serializable {
+
+        private static final long serialVersionUID = -8496635156416633594L;
+
+        @JsonProperty("policyNo")
+        private String policyNo;
+
+        @JsonProperty("flag")
+        private String flag;
+
+        public DataDTO(String policyNo) {
+            this.policyNo = policyNo;
+            this.flag = "1";
+        }
+    }
+}

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

@@ -0,0 +1,29 @@
+package com.ydtech.modules.order.entity.api.guoren.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @version 
+ * @description: 通过车险投保单号查询非车投保单号
+ * @author: wenks 
+ * @date: 2023/11/3 18:24
+ **/
+
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+public class QueryNoCarPolicyNoRequest implements Serializable {
+    
+    private static final long serialVersionUID = 8225491763681979023L;
+
+    @JsonProperty("carProposalNo")
+    private String carProposalNo;
+
+
+
+}

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

@@ -0,0 +1,71 @@
+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;
+
+
+/**
+ * @description: 非车险电子保单 响应
+ * @author: wenks
+ * @date: 2023/11/6 15:29
+ **/
+@NoArgsConstructor
+@Data
+public class NoCarElectronicPolicyResponse implements Serializable {
+
+    private static final long serialVersionUID = -7847137190451241871L;
+
+    @JsonProperty("code")
+    private String code;
+
+    @JsonProperty("message")
+    private String message;
+
+    @JsonProperty("data")
+    private DataDTO data;
+
+    @NoArgsConstructor
+    @Data
+    public static class DataDTO implements Serializable{
+
+        private static final long serialVersionUID = 6460383211467264196L;
+
+        @JsonProperty("epolicyNo")
+        private String epolicyNo;
+
+        @JsonProperty("epolicyName")
+        private String epolicyName;
+
+        @JsonProperty("epolicyUrl")
+        private String epolicyUrl;
+
+        @JsonProperty("voucherUrl")
+        private Object voucherUrl;
+
+        @JsonProperty("guaranNo")
+        private Object guaranNo;
+
+        @JsonProperty("guaranName")
+        private Object guaranName;
+
+        @JsonProperty("guaranUrl")
+        private Object guaranUrl;
+
+        @JsonProperty("endorNo")
+        private Object endorNo;
+
+        @JsonProperty("endorName")
+        private Object endorName;
+
+        @JsonProperty("endorUrl")
+        private Object endorUrl;
+
+        @JsonProperty("message")
+        private Object message;
+
+    }
+}

+ 1 - 1
src/main/java/com/ydtech/modules/order/entity/api/guoren/response/NonAutoInsOrderResponse.java

@@ -20,7 +20,7 @@ public class NonAutoInsOrderResponse  implements Serializable {
     @JsonProperty("code")
     private String code;
 
-    @JsonProperty("message")
+    @JsonProperty("msg")
     private String message;
 
     @JsonProperty("data")

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

@@ -0,0 +1,38 @@
+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;
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class QueryNoCarPolicyNoResponse implements Serializable {
+
+    private static final long serialVersionUID = 6933139837040410467L;
+
+    @JsonProperty("resultCode")
+    private Integer resultCode;
+
+    @JsonProperty("resultMsg")
+    private String resultMsg;
+
+    @JsonProperty("data")
+    private DataDTO data;
+
+    @NoArgsConstructor
+    @Data
+    public static class DataDTO  implements Serializable{
+
+        private static final long serialVersionUID = 24865685393039353L;
+
+        @JsonProperty("noCarPolicyNo")
+        private List<String> noCarPolicyNo;
+
+        @JsonProperty("noCarProposalNo")
+        private List<String> noCarProposalNo;
+
+    }
+}

+ 2 - 2
src/main/java/com/ydtech/modules/order/entity/vo/guoren/GuorenAccidentalDrivingVo.java

@@ -24,9 +24,9 @@ public class GuorenAccidentalDrivingVo {
     private String riskCode;
 
     @ApiModelProperty("保额")
-    private Integer amount;
+    private String amount;
 
     @ApiModelProperty("保费")
-    private Integer premium;
+    private String premium;
 
 }

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

@@ -71,7 +71,7 @@ public interface GuorenOrderApiService {
     /**
      * 7 电子投保单获取
      */
-    HttpResult getPolicyPrintApi(PolicyPrintVo policyPrintVo);
+    HttpResult<String> getPolicyPrintApi(PolicyPrintVo policyPrintVo);
 
 
 }

+ 80 - 153
src/main/java/com/ydtech/modules/order/service/impl/GuorenOrderApiServiceImpl.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.order.service.impl;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ydtech.config.properties.GuorenApiConfigurationProperties;
@@ -17,21 +18,23 @@ import com.ydtech.modules.esm.service.EsmInsCompanyService;
 import com.ydtech.modules.ins.model.guoren.*;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
-import com.ydtech.modules.ins.model.yc.accident.Accident;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.components.gouren.GuorenRequestApiComponent;
 import com.ydtech.modules.order.dao.InsTaskImagesMapper;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.api.guoren.constants.GoodsClassifyList;
 import com.ydtech.modules.order.entity.api.guoren.constants.PlatformInterfaceCode;
 import com.ydtech.modules.order.entity.api.guoren.request.ApplicationDetailsRequest;
 import com.ydtech.modules.order.entity.api.guoren.request.NonAutoInsuranceRequest;
+import com.ydtech.modules.order.entity.api.guoren.request.QueryNoCarPolicyNoRequest;
 import com.ydtech.modules.order.entity.api.guoren.request.SignatureRequest;
 import com.ydtech.modules.order.entity.api.guoren.response.NonAutoInsOrderResponse;
+import com.ydtech.modules.order.entity.api.guoren.response.QueryNoCarPolicyNoResponse;
 import com.ydtech.modules.order.entity.api.guoren.response.SignatureResponse;
+import com.ydtech.modules.order.entity.dto.DrivingInsuranceDto;
 import com.ydtech.modules.order.entity.dto.InsUploadImagesDto;
-import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
@@ -96,14 +99,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
     private final GuorenRequestApiComponent guorenRequestApiComponent;
 
 
-    public GuorenOrderApiServiceImpl(GuorenApiConfigurationProperties properties,
-                                     InsOrdersComponents insOrdersComponents,
-                                     GuorenRequestApiComponent guorenRequestApiComponent,
-                                     InsAreaCompanyService insAreaCompanyService,
-                                     InsOrdersService insOrdersService,
-                                     EsmInsCompanyService esmInsCompanyService,
-                                     ConfigureParametersComponents configureParametersComponents,
-                                     InsTaskImagesMapper insTaskImagesMapper) {
+    public GuorenOrderApiServiceImpl(GuorenApiConfigurationProperties properties, InsOrdersComponents insOrdersComponents, GuorenRequestApiComponent guorenRequestApiComponent, InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService, EsmInsCompanyService esmInsCompanyService, ConfigureParametersComponents configureParametersComponents, InsTaskImagesMapper insTaskImagesMapper) {
         this.properties = properties;
         this.insOrdersComponents = insOrdersComponents;
         this.guorenRequestApiComponent = guorenRequestApiComponent;
@@ -164,23 +160,29 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         //  2、车价查询
         CarPriceResp.DataDTO carPriceResult = carPriceQuery(yaQuoteInfoVo, vinQ, channelInfo);
         AssertionUtils.isEmpty(carPriceResult, "车价获取失败");
-
-        // 3、保费计算
-        PremiumResp.DataDTO premiumResult = premiumQuery(yaQuoteInfoVo, carPriceResult, vinQ);
-        AssertionUtils.isEmpty(premiumResult, "保费计算失败");
-
-        // 4、 创建非车订单
+        //  3、 创建非车订单
+        boolean isNoCar = false;
+        String jsPremium = "0";
+        String orderCode = null;
         GuorenAccidentalDrivingVo accidentalDrivingVo = quoteVo.getAccidentalDrivingVo();
-        if (!ObjectUtils.isEmpty(accidentalDrivingVo)) {
+        if (GoodsClassifyList.verificationGoodsCode(accidentalDrivingVo.getGoodsCode())) {
             NonAutoInsOrderResponse nonAutoInsOrderResponse = nonAutoInsOrder(yaQuoteInfoVo, accidentalDrivingVo, carPriceResult.getInputvo(), channelInfo, vinQ);
             AssertionUtils.isEmpty(nonAutoInsOrderResponse.getData(), nonAutoInsOrderResponse.getMessage());
+            orderCode = nonAutoInsOrderResponse.getData().getOrderCode();
+            isNoCar = true;
+            jsPremium = accidentalDrivingVo.getPremium();
         }
 
-        QuoteRespVo quoteRespVo = buildQuoteRespVo(order, premiumResult, yaQuoteInfoVo);
+        // 4、保费计算
+        PremiumResp.DataDTO premiumResult = premiumQuery(yaQuoteInfoVo, carPriceResult, vinQ, isNoCar);
+        AssertionUtils.isEmpty(premiumResult, "保费计算失败");
+
         // 5、 生成订单
+        QuoteRespVo quoteRespVo = buildQuoteRespVo(order, premiumResult, yaQuoteInfoVo, jsPremium);
         InsAreaCompany iac = responseOrder(order, quoteRespVo, quoteVo);
-        // 6、 投保单保存
-        InsuranceSlipResp insuranceSlip = insuranceSlip(yaQuoteInfoVo, carPriceResult.getInputvo());
+
+        //  6、 投保单保存
+        InsuranceSlipResp insuranceSlip = guorenRequestApiComponent.insuranceSlip(yaQuoteInfoVo, carPriceResult.getInputvo(), orderCode);
         if (insuranceSlip.getResultCode() == 1) {
             return HttpResult.error(insuranceSlip.getResultMsg());
         }
@@ -188,7 +190,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         iac.setSyapplyno(insuranceSlip.getData().getProposalNoDetailVo().getProposalNoBI());
         //生成订单扩展
         responseOrderExtend(iac, quoteRespVo, premiumResult, carPriceResult.getInputvo());
-        insAreaCompanyService.save(iac);
+        insAreaCompanyService.insertCompanyAndOrders(iac);
         quoteRespVo.setCompanyId(iac.getId());
         log.debug("--------报价结束,车牌:{},vin:{}--------------", carInfo.getLicenseNo(), carInfo.getVinNo());
         return HttpResult.ok("报价成功", quoteRespVo);
@@ -218,7 +220,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         iac.setOrderstatus(InsOrderStatusEnum.WAIT_AUDIT.getCode());
 
         //2、核保
-        SubmitAuditResp auditResp = submitAudit(iac, channelInfo);
+        SubmitAuditResp auditResp = guorenRequestApiComponent.submitAudit(iac, channelInfo);
 
         //核保状态 0初始值/1通过/2不通过/3 无需核保 9 待核保
         String statusJq = auditResp.getData().get(0).getUnderWriteFlagCI();
@@ -265,7 +267,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         InsUtils.buildOrderStatus(order, iac);
         if (iac.getOrderstatus().equals(InsOrderStatusEnum.WAIT_PAY.getCode())) {
             //获取签名地址
-            SignatureResponse signature = signature(iac);
+            SignatureResponse signature = guorenRequestApiComponent.signature(iac);
             iac.setPaymentLink(signature.getQrCode());
         } else {
             return HttpResult.error("核保操作失败,状态:" + InsOrderStatusEnum.matchKey(iac.getOrderstatus()).getDesc());
@@ -301,11 +303,10 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
                 boolean syBoo = null != syDataDTO && null == jqDataDTO && syDataDTO.getUnderwriteFlag().equals("1");
                 //交商
                 boolean jqSyBoo = null != syDataDTO && null != jqDataDTO && syDataDTO.getUnderwriteFlag().equals("1") && jqDataDTO.getUnderwriteFlag().equals("1");
-
                 if (jqBoo || syBoo || jqSyBoo) {
                     iac.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
                     //更新支付链接
-                    SignatureResponse signature = signature(iac);
+                    SignatureResponse signature = guorenRequestApiComponent.signature(iac);
                     iac.setPaymentLink(signature.getQrCode());
 
                     insAreaCompanyService.updateCompanyAndOrders(iac);
@@ -330,15 +331,13 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
             if (updateFlag) {
                 iac.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
                 order.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
+                guorenRequestApiComponent.queryNoCarPolicyNo(iac);
                 insAreaCompanyService.updateCompanyAndOrders(iac);
-                return HttpResult.error("订单已支付,订单状态修改完成");
+                return HttpResult.ok("订单已支付,订单状态修改完成");
             } else {
                 return HttpResult.error("订单还未支付哦");
             }
-
         }
-
-
         return HttpResult.ok();
     }
 
@@ -356,7 +355,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         InsAreaCompany iac = insAreaCompanyService.getById(companyId);
         ChannelInfoDto channelInfo = gainChannelConfigInfo(iac.getAgreementId());
         //获取缴费地址
-        PayResp.DataDTO payResp = getPaid(iac, channelInfo);
+        PayResp.DataDTO payResp = guorenRequestApiComponent.getPaid(iac, channelInfo);
         iac.setPaymentLink(payResp.getPayUrl());
         iac.setInsOrderNo(payResp.getOrderId());
         insAreaCompanyService.updateCompanyAndOrders(iac);
@@ -395,12 +394,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
             try {
                 FilePart file1 = new FilePart("file", new File(a.getFilePath()));
 
-                Part[] parts = {file1,
-                        new StringPart("businessNo", formMap.get("businessNo").toString()),
-                        new StringPart("operatorCode", formMap.get("operatorCode").toString()),
-                        new StringPart("comCode", formMap.get("comCode").toString()),
-                        new StringPart("fileGroup", formMap.get("fileGroup").toString())
-                };
+                Part[] parts = {file1, new StringPart("businessNo", formMap.get("businessNo").toString()), new StringPart("operatorCode", formMap.get("operatorCode").toString()), new StringPart("comCode", formMap.get("comCode").toString()), new StringPart("fileGroup", formMap.get("fileGroup").toString())};
 
                 String result = HttpUtil.sendPostFromFile(parts, properties.getUploadUrl());
                 if (StringUtils.isEmpty(result)) {
@@ -420,99 +414,55 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
 
     }
 
-
-    /**
-     * 支付   获取支付url
-     */
-    public PayResp.DataDTO getPaid(InsAreaCompany iac, ChannelInfoDto channelInfo) {
-        //构造请求参数
-        PayReq req = PayReq.buildParam(iac, properties.getRedirectUrl(), channelInfo);
-        PayResp payResp = guorenRequestApiComponent.request(req, PlatformInterfaceCode.API_IIRBT00008, PayResp.class);
-        if (null != payResp) {
-            return payResp.getData();
-        }
-        return null;
-    }
-
-    /**
-     * 32 通过二维码扫描获取电子投保单签名
-     */
-    public SignatureResponse signature(InsAreaCompany insAreaCompany) {
-        //构造请求参数
-        SignatureRequest signatureRequest = new SignatureRequest();
-        signatureRequest.setProposalNoCI(insAreaCompany.getJqapplyno());
-        signatureRequest.setProposalNoCI(insAreaCompany.getSyapplyno());
-        return guorenRequestApiComponent.request(signatureRequest, PlatformInterfaceCode.API_IIIRBT00055, SignatureResponse.class);
-    }
-
-    /**
-     * 电子保单
-     */
-    public PolicyResp policyPrint(String policyNo) {
-        Map<String, String> m = new HashMap<>();
-        m.put("policyNo", policyNo);
-        PolicyResp resp = guorenRequestApiComponent.request(m, PlatformInterfaceCode.API_IIRBT00027, PolicyResp.class);
-        if (null != resp && resp.getResultCode() == 0) {
-            return resp;
-        }
-        return null;
-    }
-
-
     /**
      * 6 电子保单
      */
     @Override
-    public HttpResult getPolicyPrintApi(PolicyPrintVo policyPrintVo) {
+    public HttpResult<String> getPolicyPrintApi(PolicyPrintVo policyPrintVo) {
         //子订单
-        InsAreaCompany iac = insAreaCompanyService.getByIdIsExist(policyPrintVo.getCompanyId());
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(policyPrintVo.getCompanyId());
         // 获取协议配置信息
-        InsOrders order = insOrdersService.getById(iac.getOrderno());
-        Map<String, String> m = new HashMap<>();
-        if (policyPrintVo.getRiskCode().equals(InsuranceRisk.TRAFFIC.getCode())) {
-            PolicyResp policyResp = policyPrint(iac.getJqpolicyno());
-            //交强险标志
-            String ciFlag = properties.getPolicyFlagUrl() + policyResp.getData();
-            //交强险电子保单
-            String ciPolicy = properties.getPolicyUrl() + policyResp.getData();
-            String jqFlagUrl = gainCarInsPolicy(ciFlag, "1", order.getLicenseno());
-            String jqUrl = gainCarInsPolicy(ciPolicy, "2", order.getLicenseno());
-            m.put("jqFlagUrl", jqFlagUrl);
-            m.put("jqUrl", jqUrl);
-        }
-        if (policyPrintVo.getRiskCode().equals(InsuranceRisk.BUSINESS.getCode())) {
-
-            PolicyResp policyResp = policyPrint(iac.getSypolicyno());
-            //商业险电子保单
-            String biPolicy = properties.getPolicyUrl() + policyResp.getData();
-            String syUrl = gainCarInsPolicy(biPolicy, "3", order.getLicenseno());
-            m.put("syUrl", syUrl);
-        }
+        InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
+        // 车牌号
+        String licensePlate = insOrders.getLicenseno();
+        String templateName;
+        String busNo;
+        String url;
+        switch (policyPrintVo.getRiskCode()) {
+            case InsuranceRisk.TRAFFIC_CODE:
+                PolicyResp policyResp = guorenRequestApiComponent.policyPrint(insAreaCompany.getJqpolicyno());
+                if (PolicyPrintVo.PolicyPrintType.PPT_1.getCode().equals(policyPrintVo.getType())) {
+                    templateName = "-交强险标志.pdf";
+                    //交强险标志
+                    url = properties.getPolicyFlagUrl() + policyResp.getData();
+                } else {
+                    templateName = "-交强险保单.pdf";
+                    url = properties.getPolicyUrl() + policyResp.getData();
+                }
+                break;
 
-        return HttpResult.ok(m);
+            case InsuranceRisk.BUSINESS_CODE:
+                templateName = "-商业险保单.pdf";
+                PolicyResp policyResp1 = guorenRequestApiComponent.policyPrint(insAreaCompany.getSypolicyno());
+                url = properties.getPolicyUrl() + policyResp1.getData();
+                break;
 
-    }
+            case InsuranceRisk.ACCIDENT_CODE:
+                busNo = policyPrintVo.getPolicyNumber();
+                url = guorenRequestApiComponent.noCarElectronicPolicy(properties.getChannelCode(), insAreaCompany.getInsOrderNo(), busNo);
+                templateName = busNo + "-非车险保单.pdf";
+                break;
 
+            default:
+                throw new SystemException("保险编号异常");
+        }
 
-    /**
-     * 获取车险保单  处理保单文件
-     *
-     * @param licensePlate 车牌号
-     * @param flag         标识  1:交强险标志,2:交强险保单,3:商业险保单
-     * @author: lig
-     * @date: 2023年09月21日 0021
-     */
-    public String gainCarInsPolicy(String url, String flag, String licensePlate) {
-        String fileName = licensePlate;
-        if (flag.equals("1")) {
-            fileName += "-交强险标志.pdf";
+        String transferUrl = gainCarInsPolicy(url, licensePlate + templateName, licensePlate);
+        return HttpResult.ok("成功", transferUrl);
 
-        } else if (flag.equals("2")) {
-            fileName += "-交强险电子保单.pdf";
+    }
 
-        } else if (flag.equals("3")) {
-            fileName += "-商业险电子保单.pdf";
-        }
+    private String gainCarInsPolicy(String url, String fileName, String licensePlate) {
         String dir = "carInsPolicy/" + licensePlate + "/";
         return FileUtil.netUrlToFile(url, dir, fileName, uploadFilePath, apiUrl + showFileUrl);
     }
@@ -570,6 +520,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         InsAreaCompany insAreaCompany = new InsAreaCompany();
         insAreaCompany.setOrderno(insOrder.getOrderno());
         insAreaCompany.setSumpremium(BigDecimal.valueOf(quoteRespVo.getSumPermium()));
+        insAreaCompany.setJypremium(BigDecimal.valueOf(quoteRespVo.getJyPremium()));
         insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
         insAreaCompany.setRiskinfo(JSON.parseArray(JSON.toJSONString(quoteRespVo.getRiskList())));
         insAreaCompany.setKindinfo(JSON.parseArray(JSON.toJSONString(quoteRespVo.getKindList())));
@@ -640,7 +591,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
      * @author: lig
      * @date: 2023-08-21
      */
-    public static QuoteRespVo buildQuoteRespVo(InsOrders insOrder, PremiumResp.DataDTO rd, YaQuoteInfoVo yaQuoteInfoVo) {
+    public static QuoteRespVo buildQuoteRespVo(InsOrders insOrder, PremiumResp.DataDTO rd, YaQuoteInfoVo yaQuoteInfoVo, String jyPremium) {
 
         //交强保费 含税
         BigDecimal jqPremiumBig = BigDecimal.valueOf(StringUtils.toDouble(rd.getSumPremiumCI()));
@@ -648,10 +599,12 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         BigDecimal syPremiumBig = BigDecimal.valueOf(StringUtils.toDouble(rd.getSumPremiumBI()));
         //车船税保费 含税
         BigDecimal taxPremiumBig = BigDecimal.valueOf(StringUtils.toDouble(rd.getSumPayTax()));
+        // 驾意险
+        BigDecimal noCarPremium = new BigDecimal(jyPremium);
         //保费合计
-        BigDecimal sumPermium = jqPremiumBig.add(syPremiumBig).add(taxPremiumBig);
-        List<QuoteKindRespVo> kindRespVoList = new ArrayList<>();
+        BigDecimal sumPermium = jqPremiumBig.add(syPremiumBig).add(taxPremiumBig).add(noCarPremium);
 
+        List<QuoteKindRespVo> kindRespVoList = new ArrayList<>();
         QuoteRespVo quoteRespVo = new QuoteRespVo();
         quoteRespVo.setStartDateJq(rd.getCiStartDate());
         quoteRespVo.setEndDateJq(rd.getCiEndDate());
@@ -695,6 +648,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         quoteRespVo.setSumPermium(sumPermium.doubleValue());//保费合计
         quoteRespVo.setTaxAmount(taxPremiumBig.doubleValue());//车船税
         quoteRespVo.setTotalAdjustRate(1);
+        quoteRespVo.setJyPremium(noCarPremium.doubleValue());
 //        quoteRespVo.setILogPreUdwMess(StringUtils.toString(rd.getBirate().getBillcomeGroup()));//评分
         quoteRespVo.setOrderno(insOrder.getOrderno()); //订单号
         quoteRespVo.setJqPremium(jqPremiumBig.doubleValue());
@@ -875,15 +829,16 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
     /**
      * 保费计算
      */
-    public PremiumResp.DataDTO premiumQuery(BaseQuoteInfoVo yaQuoteInfoVo, CarPriceResp.DataDTO carPriceResult, VinQueryResp.DataDTO vinQ) {
+    public PremiumResp.DataDTO premiumQuery(BaseQuoteInfoVo yaQuoteInfoVo, CarPriceResp.DataDTO carPriceResult, VinQueryResp.DataDTO vinQ, boolean isNoCar) {
 
         //请求信息列表
         List<String> requestInfoList = new ArrayList<>();
         boolean boo;
         //构造请求参数
-        PremiumReq req = PremiumReq.buildQuoteParam(yaQuoteInfoVo, carPriceResult, vinQ);
+        PremiumReq req = PremiumReq.buildQuoteParam(yaQuoteInfoVo, carPriceResult, vinQ, isNoCar);
         PremiumResp resp;
-        StringBuffer flag = new StringBuffer();
+        StringBuilder flag = new StringBuilder();
+
         for (; ; ) {
             resp = guorenRequestApiComponent.request(req, PlatformInterfaceCode.API_IIRBT00004, PremiumResp.class);
             req.getCi().getPrpTmain().setAnswer(null);
@@ -920,30 +875,6 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
 
     }
 
-    /**
-     * 投保单保存
-     *
-     * @author: lig
-     * @date: 2023年08月18日 0018
-     */
-    public InsuranceSlipResp insuranceSlip(BaseQuoteInfoVo yaQuoteInfoVo, String carPriceNum) {
-        //构造请求参数
-        InsuranceSlipReq req = InsuranceSlipReq.buildParam(yaQuoteInfoVo, carPriceNum);
-        return guorenRequestApiComponent.request(req, PlatformInterfaceCode.API_IIRBT00006, InsuranceSlipResp.class);
-    }
-
-
-    /**
-     * 提交核保
-     *
-     * @author: lig
-     * @date: 2023-08-23
-     */
-    public SubmitAuditResp submitAudit(InsAreaCompany iac, ChannelInfoDto channelInfo) {
-        //构造请求参数
-        SubmitAuditReq req = SubmitAuditReq.buildParam(iac, channelInfo);
-        return guorenRequestApiComponent.request(req, PlatformInterfaceCode.API_IIRBT00007, SubmitAuditResp.class);
-    }
 
     /**
      * 投保单状态
@@ -978,8 +909,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
             BeanUtils.copyProperties(prodListDTO, nonAutoInsuranceList);
             NonAutoInsResp.DataDTO.ProdListDTO.ProdRiskListDTO prodRiskListDTO = prodListDTO.getProdRiskList().get(0);
             String riskCode = prodRiskListDTO.getRiskCode();
-            List<NonAutoInsResp.DataDTO.ProdListDTO.ProdRiskListDTO.ProdCvgLiabListDTO> prodCvgLiabList
-                    = prodRiskListDTO.getProdCvgLiabList();
+            List<NonAutoInsResp.DataDTO.ProdListDTO.ProdRiskListDTO.ProdCvgLiabListDTO> prodCvgLiabList = prodRiskListDTO.getProdCvgLiabList();
             nonAutoInsuranceList.setProdCvgLiabList(prodCvgLiabList);
             nonAutoInsuranceList.setRiskCode(riskCode);
             nonAutoInsuranceLists.add(nonAutoInsuranceList);
@@ -1077,7 +1007,6 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
 
     }
 
-
     /**
      * 获取图片验证码 校验的code
      *
@@ -1090,12 +1019,10 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         bodyMap.put("syImage", StringUtils.toString(syImageStr, ""));
         String sendBody = JsonUtils.toJson(bodyMap);
         String ocrStr = HttpUtil.sendPost("http://47.92.254.66:8088/getres", sendBody);
-        CheckCodeResp checkCodeResp = JSONUtil.toBean(ocrStr, CheckCodeResp.class);
-        return checkCodeResp;
+        return JSONUtil.toBean(ocrStr, CheckCodeResp.class);
 
     }
 
-
     @Data
     class CheckCodeResp {
 

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

@@ -14,7 +14,6 @@ import com.ydtech.modules.order.entity.crawler.constants.CrawlerVerifyPaymentCon
 import com.ydtech.modules.order.entity.crawler.request.*;
 import com.ydtech.modules.order.entity.crawler.response.*;
 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.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
@@ -316,11 +315,8 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
     @Override
     public HttpResult<Object> getDrivingInsurance(String agreementId) {
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(agreementId);
-
         String apiUrl = ptlCrawlerApiService.getApiUrl(agreementId, PtlCrawlerApiType.API_7);
-
         CrawlerDrivingInsuranceRequest crawlerDrivingInsuranceRequest = new CrawlerDrivingInsuranceRequest(ptlAgreementAttribution.getUsername());
-
         CrawlerDrivingInsuranceResponse request = insCrawlerOrderComponents.request(apiUrl, ptlAgreementAttribution.getInsCompanyId(), PtlCrawlerApiType.API_7.getDesc(), crawlerDrivingInsuranceRequest, CrawlerDrivingInsuranceResponse.class);
         return HttpResult.ok(request.getOverlayPlanList());
     }