浏览代码

添加保险公司退回订单的操作

wks 1 年之前
父节点
当前提交
bb7826a0a2
共有 39 个文件被更改,包括 737 次插入47 次删除
  1. 7 0
      src/main/java/com/ydtech/modules/order/components/ZhongmeiRequestApiComponents.java
  2. 11 0
      src/main/java/com/ydtech/modules/order/components/bohai/BoHaiRequestApiComponent.java
  3. 11 0
      src/main/java/com/ydtech/modules/order/components/gouren/GuorenRequestApiComponent.java
  4. 6 0
      src/main/java/com/ydtech/modules/order/components/huatai/HuaTaiRequestApiComponents.java
  5. 11 1
      src/main/java/com/ydtech/modules/order/components/yongcheng/YongchengRequestApiComponents.java
  6. 4 0
      src/main/java/com/ydtech/modules/order/controller/InsAreaCompanyController.java
  7. 32 0
      src/main/java/com/ydtech/modules/order/entity/api/bohai/request/UnderwritingRevocationRequest.java
  8. 1 0
      src/main/java/com/ydtech/modules/order/entity/api/dajia/constants/ServiceCode.java
  9. 48 0
      src/main/java/com/ydtech/modules/order/entity/api/dajia/request/ODR1015Request.java
  10. 2 1
      src/main/java/com/ydtech/modules/order/entity/api/guoren/constants/PlatformInterfaceCode.java
  11. 29 0
      src/main/java/com/ydtech/modules/order/entity/api/guoren/request/IIRBT00012Request.java
  12. 26 0
      src/main/java/com/ydtech/modules/order/entity/api/guoren/response/IIRBT00012Response.java
  13. 3 0
      src/main/java/com/ydtech/modules/order/entity/api/huatai/constants/HuaTaiTransCode.java
  14. 43 0
      src/main/java/com/ydtech/modules/order/entity/api/huatai/request/HuaTaiPaymentLogoutRequest.java
  15. 23 0
      src/main/java/com/ydtech/modules/order/entity/api/huatai/response/HuaTaiPaymentLogoutResponse.java
  16. 1 0
      src/main/java/com/ydtech/modules/order/entity/api/yongcheng/constants/RequestUrl.java
  17. 93 0
      src/main/java/com/ydtech/modules/order/entity/api/yongcheng/request/ProposalPolicyReturnRequest.java
  18. 3 0
      src/main/java/com/ydtech/modules/order/entity/api/zhongmei/constants/TransCode.java
  19. 2 0
      src/main/java/com/ydtech/modules/order/entity/api/zhongmei/request/SubmitStatusQueryRequest.java
  20. 36 0
      src/main/java/com/ydtech/modules/order/entity/api/zhongmei/request/UnderwritingWithdrawRequest.java
  21. 15 0
      src/main/java/com/ydtech/modules/order/entity/api/zhongmei/response/UnderwritingWithdrawResponse.java
  22. 16 6
      src/main/java/com/ydtech/modules/order/service/BoHaiOrderApiService.java
  23. 23 10
      src/main/java/com/ydtech/modules/order/service/DaJiaOrderService.java
  24. 17 10
      src/main/java/com/ydtech/modules/order/service/GuorenOrderApiService.java
  25. 9 1
      src/main/java/com/ydtech/modules/order/service/HuaTaiOrderApiService.java
  26. 12 1
      src/main/java/com/ydtech/modules/order/service/InsCrawlerOrderService.java
  27. 21 0
      src/main/java/com/ydtech/modules/order/service/InsuranceCompanyPolymerizationService.java
  28. 8 1
      src/main/java/com/ydtech/modules/order/service/YongchengOrderApiService.java
  29. 10 1
      src/main/java/com/ydtech/modules/order/service/ZhongMeiOrderApiService.java
  30. 11 1
      src/main/java/com/ydtech/modules/order/service/ZijinOrderApiService.java
  31. 19 1
      src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java
  32. 18 0
      src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java
  33. 19 0
      src/main/java/com/ydtech/modules/order/service/impl/GuorenOrderApiServiceImpl.java
  34. 17 0
      src/main/java/com/ydtech/modules/order/service/impl/HuaTaiOrderApiServiceImpl.java
  35. 22 10
      src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java
  36. 66 0
      src/main/java/com/ydtech/modules/order/service/impl/InsuranceCompanyPolymerizationServiceImpl.java
  37. 17 3
      src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java
  38. 12 0
      src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java
  39. 13 0
      src/main/java/com/ydtech/modules/order/service/impl/ZijinOrderApiServiceImpl.java

+ 7 - 0
src/main/java/com/ydtech/modules/order/components/ZhongmeiRequestApiComponents.java

@@ -151,6 +151,13 @@ public class ZhongmeiRequestApiComponents {
         return routineRequest(request, tClass, false, "");
     }
 
+    /**
+     * 核保撤回
+     */
+    public void underwritingWithdraw(UnderwritingWithdrawRequest request, Class<UnderwritingWithdrawResponse> tClass) {
+        routineRequest(request, tClass, true, "");
+    }
+
     /**
      * 上传影像 传入订单信息,查询是否生成保单成功
      */

+ 11 - 0
src/main/java/com/ydtech/modules/order/components/bohai/BoHaiRequestApiComponent.java

@@ -195,6 +195,17 @@ public class BoHaiRequestApiComponent {
         return verificationResponse(paymentRequest, properties.getUrl(), PaymentResponse.class, sysSourceCode, RequestType.Z00008);
     }
 
+    /**
+     * 核保撤销
+     *
+     * @param paymentRequest 核保撤销 请求实体
+     * @return 响应
+     */
+    public BoHaiBaseResponse underwritingRevocation(UnderwritingRevocationRequest paymentRequest, String sysSourceCode) throws Exception {
+        return verificationResponse(paymentRequest, properties.getUrl(), PaymentResponse.class, sysSourceCode, RequestType.Z00009);
+    }
+
+
     /**
      * 获取保单接口
      *

+ 11 - 0
src/main/java/com/ydtech/modules/order/components/gouren/GuorenRequestApiComponent.java

@@ -12,9 +12,11 @@ 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.IIRBT00012Request;
 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.IIRBT00012Response;
 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;
@@ -166,6 +168,15 @@ public class GuorenRequestApiComponent {
         return null;
     }
 
+    /**
+     * 已核投保单注销
+     * @param req
+     * @return
+     */
+    public IIRBT00012Response proposalPolicyLogout(IIRBT00012Request req) {
+        return request(req, PlatformInterfaceCode.API_IIRBT00012, IIRBT00012Response.class);
+    }
+
     /**
      * 通过二维码扫描获取电子投保单签名
      */

+ 6 - 0
src/main/java/com/ydtech/modules/order/components/huatai/HuaTaiRequestApiComponents.java

@@ -233,6 +233,12 @@ public class HuaTaiRequestApiComponents {
         return routineRequest(request, tClass, true, insuredCode);
     }
 
+    /**
+     * 缴费注销
+     */
+    public HuaTaiPaymentLogoutResponse paymentLogout(HuaTaiPaymentLogoutRequest request, Class<HuaTaiPaymentLogoutResponse> tClass, String insuredCode) {
+        return routineRequest(request, tClass, true, insuredCode);
+    }
 
     /**
      * 获取缴费链接

+ 11 - 1
src/main/java/com/ydtech/modules/order/components/yongcheng/YongchengRequestApiComponents.java

@@ -25,6 +25,7 @@ import com.ydtech.modules.ins.model.yc.ruote.Ruote;
 import com.ydtech.modules.ins.model.yc.ruote.response.RuoteResponse;
 import com.ydtech.modules.order.entity.api.yongcheng.constants.RequestUrl;
 import com.ydtech.modules.order.entity.api.yongcheng.request.AccidentUnderwritingRequest;
+import com.ydtech.modules.order.entity.api.yongcheng.request.ProposalPolicyReturnRequest;
 import com.ydtech.modules.order.entity.api.yongcheng.response.AccidentUnderwritingResponse;
 import com.ydtech.modules.order.utils.InsuranceLog;
 import lombok.extern.slf4j.Slf4j;
@@ -180,6 +181,15 @@ public class YongchengRequestApiComponents {
         return post(accident, RequestUrl.API_ACCIDENT, AccidentResponse.class);
     }
 
+    /**
+     * 投保单打回接口
+     *
+     * @param accident 投保单打回 入参实体
+     * @return 出参实体
+     */
+    public AccidentResponse returnAppPolicyWebService(ProposalPolicyReturnRequest accident) throws JsonProcessingException {
+        return post(accident, RequestUrl.API_UNDERWRITING_RETURNS, AccidentResponse.class);
+    }
 
     /**
      * 补传回调及订单信息查询接口
@@ -195,7 +205,7 @@ public class YongchengRequestApiComponents {
      * 意外险确保接口
      *
      * @param accidentUnderwritingRequest 意外险确保 请求参数
-     * @return  意外险响应参数
+     * @return 意外险响应参数
      * @throws JsonProcessingException 序列化失败
      */
     public AccidentUnderwritingResponse submitPolicy(AccidentUnderwritingRequest accidentUnderwritingRequest) throws JsonProcessingException {

+ 4 - 0
src/main/java/com/ydtech/modules/order/controller/InsAreaCompanyController.java

@@ -11,6 +11,7 @@ import com.ydtech.modules.order.entity.InsOrdersTrack;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
 import com.ydtech.modules.order.service.InsOrderQrCodeService;
 import com.ydtech.modules.order.service.InsOrdersTrackService;
+import com.ydtech.modules.order.service.InsuranceCompanyPolymerizationService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
@@ -33,6 +34,8 @@ public class InsAreaCompanyController {
 
     private final InsOrderQrCodeService insOrderQrCodeService;
 
+    private final InsuranceCompanyPolymerizationService insuranceCompanyPolymerizationService;
+
     @GetMapping("/statusInquiry/{subOrderNo}")
     @ApiOperation("状态查询")
     public HttpResult<String> statusInquiry(@PathVariable String subOrderNo) {
@@ -79,6 +82,7 @@ public class InsAreaCompanyController {
                 InsOrdersTrack insOrdersTrack = new InsOrdersTrack(insAreaCompany, user.getId(), user.getName());
                 insAreaCompanyService.updateById(insAreaCompany);
                 insOrdersTrackService.save(insOrdersTrack);
+                insuranceCompanyPolymerizationService.cancelOrder(insAreaCompany);
                 return HttpResult.ok();
             }
             throw new SystemException("此订单未到达已核保待缴费,无法跟新状态");

+ 32 - 0
src/main/java/com/ydtech/modules/order/entity/api/bohai/request/UnderwritingRevocationRequest.java

@@ -0,0 +1,32 @@
+package com.ydtech.modules.order.entity.api.bohai.request;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.config.BoHaiConfigureParameters;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @description: 渤海财险 核保撤销
+ * @author: wenks
+ * @date: 2024/3/7 18:29
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class UnderwritingRevocationRequest extends BoHaiBaseRequest {
+
+    private static final long serialVersionUID = -8988419586130153169L;
+
+    /**
+     * 订单业务
+     */
+    @JsonProperty("busUniqueId")
+    private String busUniqueId;
+
+
+    public UnderwritingRevocationRequest(BoHaiConfigureParameters parameters, String id, String busUniqueId) {
+        this.setBaseParam(parameters, id);
+        this.busUniqueId = busUniqueId;
+    }
+
+}

+ 1 - 0
src/main/java/com/ydtech/modules/order/entity/api/dajia/constants/ServiceCode.java

@@ -31,6 +31,7 @@ public enum ServiceCode {
     ODR1021("ODR1021"	,"北京承保交管车辆查询确认接口"),
     ODR1020("ODR1020"	,"北京承保交管车辆查询接口"),
     ODR1016("ODR1016"	,"车辆实际价值计算接口"),
+    ODR1015("ODR1015"	,"业务订单删除接口"),
     ODR1014("ODR1014"	,"业务订单退回接口"),
     ODR1013("ODR1013"	,"影像上传接口"),
     ODR1012("ODR1012"	,"非个人申请支付接口"),

+ 48 - 0
src/main/java/com/ydtech/modules/order/entity/api/dajia/request/ODR1015Request.java

@@ -0,0 +1,48 @@
+package com.ydtech.modules.order.entity.api.dajia.request;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.api.dajia.DaJiaBaseRequest;
+import com.ydtech.modules.order.entity.api.dajia.constants.ServiceCode;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @version
+ * @description: 大家财险 业务订单撤回接口 请求参数
+ * @author: wenks
+ * @date: 2024/10/08 16:44
+ **/
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class ODR1015Request extends DaJiaBaseRequest {
+
+    private static final long serialVersionUID = 8247524994147021165L;
+
+    @JsonProperty("body")
+    private BodyDTO body;
+
+    public ODR1015Request(String orderNo) {
+        super("", ServiceCode.ODR1015.getCode());
+        if(body == null){
+            body = new BodyDTO();
+        }
+        body.setOrderNo(orderNo);
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class BodyDTO implements Serializable {
+
+        private static final long serialVersionUID = -4592159874022566051L;
+
+        @JsonProperty("orderNo")
+        private String orderNo;
+
+    }
+
+
+}

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

@@ -25,6 +25,8 @@ public enum PlatformInterfaceCode {
 
     API_IIRBT00010("IIRBT00010", "投保单状态查询"),
 
+    API_IIRBT00012("IIRBT00012", "已核投保单注销"),
+
     API_IIRBT00017("IIRBT00017", "匹配多条车型记录需再次做车价查询"),
 
     API_IIRBT00018("IIRBT00018", "获取出单所需的基本信息"),
@@ -37,7 +39,6 @@ public enum PlatformInterfaceCode {
 
     API_IIIRBT00053("IIIRBT00053", "查询非车商品信息"),
 
-
     API_IIIRBT00055("IIIRBT00055", "通过二维码扫描获取电子投保单签名"),
 
     API_IIIRBT00054("IIIRBT00054", "创建非车订单"),

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

@@ -0,0 +1,29 @@
+package com.ydtech.modules.order.entity.api.guoren.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+
+/**
+ * @description: 已核投保单注销
+ * @author: wenks
+ * @date: 2024/10/08 16:59
+ **/
+@NoArgsConstructor
+@Data
+public class IIRBT00012Request {
+
+    @JsonProperty("proposalNoList")
+    private List<String> proposalNoList;
+
+    @JsonProperty("cancelFlag")
+    private String cancelFlag;
+
+    public IIRBT00012Request(List<String> proposalNoList) {
+        this.proposalNoList = proposalNoList;
+        this.cancelFlag = "0";
+    }
+}

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

@@ -0,0 +1,26 @@
+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: 2024/10/08 16:59
+ **/
+@NoArgsConstructor
+@Data
+public class IIRBT00012Response implements Serializable {
+
+    private static final long serialVersionUID = -5548504588559415916L;
+
+    @JsonProperty("resultCode")
+    private Integer resultCode;
+
+    @JsonProperty("resultMsg")
+    private String resultMsg;
+
+}

+ 3 - 0
src/main/java/com/ydtech/modules/order/entity/api/huatai/constants/HuaTaiTransCode.java

@@ -21,6 +21,9 @@ public class HuaTaiTransCode {
     //转投保
     public static final String SAVE = "Save";
 
+    // 缴费注销
+    public static final String ORDER_CANCEL = "OrderCancel";
+
     //提交核保
     public static final String SUBMIT = "submit";
 

+ 43 - 0
src/main/java/com/ydtech/modules/order/entity/api/huatai/request/HuaTaiPaymentLogoutRequest.java

@@ -0,0 +1,43 @@
+package com.ydtech.modules.order.entity.api.huatai.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.api.huatai.HuaTaiBaseRequest;
+import com.ydtech.modules.order.entity.api.huatai.HuaTaiBaseRequestHead;
+import com.ydtech.modules.order.entity.api.huatai.constants.HuaTaiTransCode;
+import com.ydtech.modules.order.entity.config.HuaTaiConfigureParameters;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+public class HuaTaiPaymentLogoutRequest  extends HuaTaiBaseRequest {
+
+    private static final long serialVersionUID = 3768214271916723325L;
+
+    //操作员代码
+    @JsonProperty("operatorCode")
+    private String operatorCode;
+
+    //机构代码
+    @JsonProperty("loginCom")
+    private String loginCom;
+
+    //支付交易号
+    @JsonProperty("poaCode")
+    private String poaCode;
+
+    @Override
+    public void setHead(HuaTaiBaseRequestHead head) {
+        super.setHead(head);
+        super.getHead().setTransCode(HuaTaiTransCode.ORDER_CANCEL);
+    }
+
+    public HuaTaiPaymentLogoutRequest(String poaCode, HuaTaiConfigureParameters huaTaiConfigureParameters) {
+        this.loginCom = huaTaiConfigureParameters.getComCode();
+        this.operatorCode = huaTaiConfigureParameters.getOperatorCode();
+        this.poaCode = poaCode;
+    }
+
+}

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

@@ -0,0 +1,23 @@
+package com.ydtech.modules.order.entity.api.huatai.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.api.huatai.HuaTaiBaseResponse;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class HuaTaiPaymentLogoutResponse extends HuaTaiBaseResponse {
+
+    private static final long serialVersionUID = -4638858480953971007L;
+
+    /**
+     * 报价单号(列表)
+     */
+    @JsonProperty("contractNo")
+    private List<String> contractNo;
+
+}

+ 1 - 0
src/main/java/com/ydtech/modules/order/entity/api/yongcheng/constants/RequestUrl.java

@@ -15,6 +15,7 @@ public enum RequestUrl {
     API_PAY("newGetPayNoService", "支付"),
     API_GUARANTEE_SLIP("DzbdWebService", "电子保单"),
     API_ORDER_QUERY("payCallback", "补传回调及订单信息查询接口"),
+    API_UNDERWRITING_RETURNS("returnAppPolicyWebService", "投保单打回接口"),
     API_ACCIDENT("NewQueryYwCvrgWebService", "意外险"),
     API_SUBMIT_POLICY("SubmitpolicyWebService", "意外险确保接口");
 

+ 93 - 0
src/main/java/com/ydtech/modules/order/entity/api/yongcheng/request/ProposalPolicyReturnRequest.java

@@ -0,0 +1,93 @@
+package com.ydtech.modules.order.entity.api.yongcheng.request;
+
+
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
+import com.ydtech.modules.ins.model.yc.YcConfigureParameters;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @version 投保单退回 请求
+ * @author: wenks
+ * @date: 2024/10/08 17:57
+ **/
+@Data
+@JacksonXmlRootElement(localName = "tns:returnAppPolicy")
+public class ProposalPolicyReturnRequest implements Serializable {
+
+    private static final long serialVersionUID = -1149419609003431963L;
+
+    @JacksonXmlProperty(localName = "request")
+    private RequestDTO request;
+
+    public ProposalPolicyReturnRequest(YcConfigureParameters ycConfigureParameters, String policyNumber) {
+        this.request = new RequestDTO(ycConfigureParameters.getPassword(), ycConfigureParameters.getUserName(), policyNumber, ycConfigureParameters.getDptCde(), ycConfigureParameters.getOperatorCode());
+    }
+
+    @Data
+    private static class RequestDTO implements Serializable {
+
+        private static final long serialVersionUID = -1902215151514107102L;
+
+        @JacksonXmlProperty(localName = "authorityData")
+        private AuthorityDataDTO authorityData;
+
+        @JacksonXmlProperty(localName = "condition")
+        private ConditionDTO condition;
+
+        public RequestDTO(String password, String username, String insOrderNo, String deptcode, String operatorcode) {
+            this.authorityData = new AuthorityDataDTO(password, username);
+            this.condition = new ConditionDTO(insOrderNo, deptcode, operatorcode);
+        }
+
+        @Data
+        @AllArgsConstructor
+        private static class AuthorityDataDTO implements Serializable {
+
+            private static final long serialVersionUID = 7311697554642031110L;
+            /**
+             * 密码
+             */
+            @JacksonXmlProperty(localName = "password")
+            private String password;
+
+            /**
+             * 密码
+             */
+            @JacksonXmlProperty(localName = "userName")
+            private String userName;
+
+        }
+
+        @Data
+        @AllArgsConstructor
+        private static class ConditionDTO implements Serializable {
+
+            private static final long serialVersionUID = -8787772717387104811L;
+
+            /**
+             * 投保单号
+             */
+            @JacksonXmlProperty(localName = "appno")
+            private String appno;
+
+            /**
+             * 机构编码
+             */
+            @JacksonXmlProperty(localName = "deptcode")
+            private String deptcode;
+
+            /**
+             * 操作人
+             */
+            @JacksonXmlProperty(localName = "operatorcode")
+            private String operatorcode;
+
+        }
+
+    }
+
+}

+ 3 - 0
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/constants/TransCode.java

@@ -48,4 +48,7 @@ public class TransCode {
     // 非车可投保产品查询
     public static final String Ride_Accident_Query = "RideAccidentQuery";
 
+    // 核保撤回
+    public static final String UNDERWRITING_CANCLE = "UnderwritingCancle";
+
 }

+ 2 - 0
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/request/SubmitStatusQueryRequest.java

@@ -5,6 +5,7 @@ import com.ydtech.modules.order.entity.api.zhongmei.BaseRequest;
 import com.ydtech.modules.order.entity.api.zhongmei.BaseRequestHead;
 import com.ydtech.modules.order.entity.api.zhongmei.constants.TransCode;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
 /**
@@ -13,6 +14,7 @@ import lombok.NoArgsConstructor;
  * @description TODO
  * @date 2023/4/25 17:55
  */
+@EqualsAndHashCode(callSuper = true)
 @NoArgsConstructor
 @Data
 public class SubmitStatusQueryRequest extends BaseRequest {

+ 36 - 0
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/request/UnderwritingWithdrawRequest.java

@@ -0,0 +1,36 @@
+package com.ydtech.modules.order.entity.api.zhongmei.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.api.zhongmei.BaseRequest;
+import com.ydtech.modules.order.entity.api.zhongmei.BaseRequestHead;
+import com.ydtech.modules.order.entity.api.zhongmei.constants.TransCode;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+public class UnderwritingWithdrawRequest  extends BaseRequest {
+
+    private static final long serialVersionUID = -2337717710536441127L;
+
+    /**
+     * 主投保单号
+     */
+    @JsonProperty("contractMainNo")
+    private String contractMainNo;
+
+
+    public UnderwritingWithdrawRequest(String contractMainNo) {
+        this.contractMainNo = contractMainNo;
+    }
+
+    @Override
+    public void setHead(BaseRequestHead head) {
+        super.setHead(head);
+        super.getHead().setTransCode(TransCode.UNDERWRITING_CANCLE);
+    }
+
+}

+ 15 - 0
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/response/UnderwritingWithdrawResponse.java

@@ -0,0 +1,15 @@
+package com.ydtech.modules.order.entity.api.zhongmei.response;
+
+import com.ydtech.modules.order.entity.api.zhongmei.BaseResponse;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@EqualsAndHashCode(callSuper = true)
+@AllArgsConstructor
+@Data
+public class UnderwritingWithdrawResponse  extends BaseResponse {
+
+    private static final long serialVersionUID = -8974689717579272423L;
+
+}

+ 16 - 6
src/main/java/com/ydtech/modules/order/service/BoHaiOrderApiService.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.order.service;
 
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.ins.model.vo.QuoteRespVo;
+import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.api.bohai.request.ManualReviewRequest;
 import com.ydtech.modules.order.entity.api.bohai.request.PaymentCallbackRequest;
 import com.ydtech.modules.order.entity.api.bohai.request.PolicyResultCallbackRequest;
@@ -81,6 +82,7 @@ public interface BoHaiOrderApiService {
 
     /**
      * 支付回调
+     *
      * @param coverageRequest 支付回调参数
      * @return
      */
@@ -88,6 +90,7 @@ public interface BoHaiOrderApiService {
 
     /**
      * 核保回调
+     *
      * @param approvedRequest 支付回调参数
      * @return
      */
@@ -95,21 +98,28 @@ public interface BoHaiOrderApiService {
 
     /**
      * 保单结果
+     *
      * @param policyResultCallbackRequest 保单结果回调参数
      * @return
      */
-    String policyResultCallback(PolicyResultCallbackRequest policyResultCallbackRequest)  throws Exception;
+    String policyResultCallback(PolicyResultCallbackRequest policyResultCallbackRequest) throws Exception;
 
 
-     /**
+    /**
      * @Description 更新承保状态和支付时间
-     * @Author  hxl
-     * @Date   2024/4/2 11:31
+     * @Author hxl
+     * @Date 2024/4/2 11:31
      * @Param
      * @Return
      * @Exception
-     *
      */
-    public void getOrderDetailNew(String subOrderNo) throws Exception;
+    void getOrderDetailNew(String subOrderNo) throws Exception;
 
+    /**
+     * 撤销保险公司二维码/订单
+     *
+     * @param insAreaCompany 子订单号
+     * @return 是否成功
+     */
+    boolean cancelOrder(InsAreaCompany insAreaCompany);
 }

+ 23 - 10
src/main/java/com/ydtech/modules/order/service/DaJiaOrderService.java

@@ -2,13 +2,15 @@ package com.ydtech.modules.order.service;
 
 
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
 import com.ydtech.modules.order.entity.vo.dajia.AccidentalInsuranceQueryVo;
 
-public interface DaJiaOrderService extends BaseOrderService<Object>{
+public interface DaJiaOrderService extends BaseOrderService<Object> {
 
     /**
      * 缴费状态查询
+     *
      * @param companyId
      * @return
      */
@@ -17,6 +19,7 @@ public interface DaJiaOrderService extends BaseOrderService<Object>{
 
     /**
      * 获取保单
+     *
      * @param policyPrintVo
      * @return
      */
@@ -24,6 +27,7 @@ public interface DaJiaOrderService extends BaseOrderService<Object>{
 
     /**
      * 业务订单撤回
+     *
      * @param companyId
      * @return
      */
@@ -31,24 +35,33 @@ public interface DaJiaOrderService extends BaseOrderService<Object>{
 
     /**
      * 获取驾意险列表
+     *
      * @return
      */
     HttpResult<Object> accidentalDrivingList(AccidentalInsuranceQueryVo queryVo);
 
     /**
      * 获取驾意险详情
+     *
      * @return
      */
     HttpResult<Object> accidentalDrivingInfo(String accidentalId);
 
     /**
-    * @Description 自动更新承保状态
-    * @Author  xingming
-    * @Date   2024/3/28 16:36
-    * @Param
-    * @Return
-    * @Exception
-    *
-    */
-     void verifyPaymentNew(String companyId);
+     * @Description 自动更新承保状态
+     * @Author xingming
+     * @Date 2024/3/28 16:36
+     * @Param
+     * @Return
+     * @Exception
+     */
+    void verifyPaymentNew(String companyId);
+
+    /**
+     * 撤销保险公司二维码/订单
+     *
+     * @param insAreaCompany 子订单号
+     * @return 是否成功
+     */
+    boolean cancelOrder(InsAreaCompany insAreaCompany);
 }

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

@@ -3,6 +3,7 @@ package com.ydtech.modules.order.service;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.ins.model.guoren.CarModelResp;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
+import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
 import com.ydtech.modules.order.entity.vo.guoren.*;
 
@@ -31,6 +32,7 @@ public interface GuorenOrderApiService {
 
     /**
      * 特约查询 根据公司id
+     *
      * @param companyId
      * @return
      */
@@ -85,15 +87,20 @@ public interface GuorenOrderApiService {
 
 
     /**
-    * @Description 更新支付状态和支付时间
-    * @Author  xingming
-    * @Date   2024/3/28 16:47
-    * @Param
-    * @Return
-    * @Exception
-    *
-    */
-    public void insOrderInfoNew(String companyId);
-
+     * @Description 更新支付状态和支付时间
+     * @Author xingming
+     * @Date 2024/3/28 16:47
+     * @Param
+     * @Return
+     * @Exception
+     */
+    void insOrderInfoNew(String companyId);
 
+    /**
+     * 撤销保险公司二维码/订单
+     *
+     * @param insAreaCompany 子订单号
+     * @return 是否成功
+     */
+    boolean cancelOrder(InsAreaCompany insAreaCompany);
 }

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

@@ -2,6 +2,7 @@ package com.ydtech.modules.order.service;
 
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.ins.model.vo.QuoteRespVo;
+import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
 import com.ydtech.modules.order.entity.po.InsHuataiContributing;
 import com.ydtech.modules.order.entity.vo.*;
@@ -84,6 +85,13 @@ public interface HuaTaiOrderApiService{
     * @Exception
     *
     */
-    public void paymentEnquiryNew(String companyId);
+     void paymentEnquiryNew(String companyId);
 
+    /**
+     * 撤销保险公司二维码/订单
+     *
+     * @param insAreaCompany 子订单号
+     * @return 是否成功
+     */
+    boolean cancelOrder(InsAreaCompany insAreaCompany);
 }

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

@@ -1,6 +1,7 @@
 package com.ydtech.modules.order.service;
 
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.crawler.vo.CrawlerPolicyPrintVo;
 import com.ydtech.modules.protocol.entity.dto.PtlAgreementAttributionDto;
 
@@ -64,7 +65,7 @@ public interface InsCrawlerOrderService extends BaseOrderService<Object> {
     /**
      * 撤销订单
      */
-    void quash(String subOrderNo);
+    boolean quash(String subOrderNo);
 
     /**
      * 验车码识别
@@ -72,4 +73,14 @@ public interface InsCrawlerOrderService extends BaseOrderService<Object> {
      */
     String vehicleInspectionCode();
 
+
+
+    /**
+     * 撤销保险公司二维码/订单
+     *
+     * @param insAreaCompany 子订单号
+     * @return 是否成功
+     */
+    boolean cancelOrder(InsAreaCompany insAreaCompany);
+
 }

+ 21 - 0
src/main/java/com/ydtech/modules/order/service/InsuranceCompanyPolymerizationService.java

@@ -0,0 +1,21 @@
+package com.ydtech.modules.order.service;
+
+
+import com.ydtech.modules.order.entity.InsAreaCompany;
+
+/**
+ * 保险公司聚合
+ */
+public interface InsuranceCompanyPolymerizationService {
+
+
+    /**
+     * 撤销保险公司二维码/订单
+     *
+     * @param insAreaCompany 子订单号
+     * @return 是否成功
+     */
+    boolean cancelOrder(InsAreaCompany insAreaCompany);
+
+
+}

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

@@ -78,6 +78,13 @@ public interface YongchengOrderApiService {
      *  @Date: 2024/3/28 17:01
      *  @Description: 更新承保状态和支付时间
      */
-    public void callbackAnOrderNew(String insAreaCompanyId);
+    void callbackAnOrderNew(String insAreaCompanyId);
 
+    /**
+     * 撤销保险公司二维码/订单
+     *
+     * @param insAreaCompany 子订单号
+     * @return 是否成功
+     */
+    boolean cancelOrder(InsAreaCompany insAreaCompany);
 }

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

@@ -4,6 +4,7 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.ins.model.vo.GeneralNonCarProductReqVo;
 import com.ydtech.modules.ins.model.vo.GeneralNonCarProductResVo;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
+import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.api.zhongmei.request.ApprovedRequest;
 import com.ydtech.modules.order.entity.api.zhongmei.request.CoverageRequest;
 import com.ydtech.modules.order.entity.api.zhongmei.response.RideAccidentQueryResponse;
@@ -92,5 +93,13 @@ public interface ZhongMeiOrderApiService extends BaseOrderService<AccidentalDriv
     * @Exception
     *
     */
-    public void paymentEnquiryNew(String companyId);
+     void paymentEnquiryNew(String companyId);
+
+    /**
+     * 撤销保险公司二维码/订单
+     *
+     * @param insAreaCompany 子订单号
+     * @return 是否成功
+     */
+    boolean cancelOrder(InsAreaCompany insAreaCompany);
 }

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

@@ -2,6 +2,7 @@ package com.ydtech.modules.order.service;
 
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.ins.model.vo.QuoteRespVo;
+import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.api.zijin.request.PaymentCallbacksRequest;
 import com.ydtech.modules.order.entity.api.zijin.request.SubmitVerifyRequest;
 import com.ydtech.modules.order.entity.api.zijin.response.QueryClauseDataResponse;
@@ -97,5 +98,14 @@ public interface ZijinOrderApiService {
     * @Return
     * @Exception
     */
-    public void getOrderDetailNew(String companyId);
+    void getOrderDetailNew(String companyId);
+
+
+    /**
+     * 撤销保险公司二维码/订单
+     *
+     * @param insAreaCompany 子订单号
+     * @return 是否成功
+     */
+    boolean cancelOrder(InsAreaCompany insAreaCompany);
 }

+ 19 - 1
src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java

@@ -657,7 +657,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
             InsAreaCompanyAccidentalDriving insAreaCompanyAccidentalDriving = new InsAreaCompanyAccidentalDriving();
             insAreaCompanyAccidentalDriving.setQuantity(Integer.parseInt(accidentalDriving.getCopies()));
             insAreaCompanyAccidentalDriving.setRideRiskCode(accidentalDriving.getPackageCode());
-            if(!bpic1000000.isEmpty()) {
+            if (!bpic1000000.isEmpty()) {
                 insAreaCompanyAccidentalDriving.setRideRiskName(bpic1000000.get(0).getProjectName());
             }
             insAreaCompanyAccidentalDrivings.add(insAreaCompanyAccidentalDriving);
@@ -717,4 +717,22 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
             insAreaCompanyService.updateCompanyAndOrdersNew(insAreaCompany);
         }
     }
+
+    @Override
+    public boolean cancelOrder(InsAreaCompany insAreaCompany)  {
+        // 账号信息
+        PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(insAreaCompany.getAgreementId());
+        // 通过 协议id获取配置实体
+        BoHaiConfigureParameters parameters = configureParametersComponents.toEntity(BoHaiConfigureParameters.class,
+                ptlAgreementAttribution);
+
+        UnderwritingRevocationRequest underwritingRevocationRequest = new UnderwritingRevocationRequest(parameters, insAreaCompany.getId(), insAreaCompany.getInsOrderNo());
+        try {
+            boHaiRequestApiComponent.underwritingRevocation(underwritingRevocationRequest, parameters.getSysSourceCode());
+            return true;
+        }catch (Exception ignored){
+            return false;
+        }
+    }
+
 }

+ 18 - 0
src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java

@@ -959,4 +959,22 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             throw new RuntimeException(e.getMessage());
         }
     }
+
+    @Override
+    public boolean cancelOrder(InsAreaCompany insAreaCompany) {
+        //获取公司配置信息
+        DaJiaConfigureParameters daJiaConfigureParameters = new DaJiaConfigureParameters();
+        configureParametersComponents.toEntity(daJiaConfigureParameters, insAreaCompany.getAgreementId());
+
+        ODR1014Request odr1014Request = new ODR1014Request(insAreaCompany.getInsOrderNo(), daJiaConfigureParameters);
+        try {
+            ODR1014Response odr1014Response = daJiaRequestApiComponents.orderBack(odr1014Request);
+            if ("0000".equals(odr1014Response.getStatus())) {
+                return true;
+            }
+        } catch (Exception ignored) {
+        }
+        return false;
+    }
+
 }

+ 19 - 0
src/main/java/com/ydtech/modules/order/service/impl/GuorenOrderApiServiceImpl.java

@@ -31,8 +31,10 @@ import com.ydtech.modules.order.entity.api.guoren.constants.GoodsClassifyList;
 import com.ydtech.modules.order.entity.api.guoren.constants.GuoRenRiskCode;
 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.IIRBT00012Request;
 import com.ydtech.modules.order.entity.api.guoren.request.NonAutoInsuranceRequest;
 import com.ydtech.modules.order.entity.api.guoren.request.SpecialAgreementRequest;
+import com.ydtech.modules.order.entity.api.guoren.response.IIRBT00012Response;
 import com.ydtech.modules.order.entity.api.guoren.response.NonAutoInsOrderResponse;
 import com.ydtech.modules.order.entity.api.guoren.response.SignatureResponse;
 import com.ydtech.modules.order.entity.api.guoren.response.SpecialAgreementResponse;
@@ -1201,4 +1203,21 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
         }
     }
 
+
+    @Override
+    public boolean cancelOrder(InsAreaCompany insAreaCompany) {
+        String jqapplyno = insAreaCompany.getJqapplyno();
+        List<String> list = new ArrayList<>();
+        if(StringUtils.isNotEmpty(jqapplyno)){
+            list.add(jqapplyno);
+        }
+        String syapplyno = insAreaCompany.getSyapplyno();
+        if(StringUtils.isNotEmpty(syapplyno)){
+            list.add(syapplyno);
+        }
+
+        IIRBT00012Request iirbt00012Request = new IIRBT00012Request(list);
+        IIRBT00012Response iirbt00012Response = guorenRequestApiComponent.proposalPolicyLogout(iirbt00012Request);
+        return iirbt00012Response.getResultCode() == 0;
+    }
 }

+ 17 - 0
src/main/java/com/ydtech/modules/order/service/impl/HuaTaiOrderApiServiceImpl.java

@@ -792,6 +792,23 @@ public class HuaTaiOrderApiServiceImpl implements HuaTaiOrderApiService {
             insAreaCompanyService.updateCompanyAndOrdersNew(insAreaCompany);
         }
     }
+
+    @Override
+    public boolean cancelOrder(InsAreaCompany insAreaCompany) {
+        // 1. 协议id获取配置实体
+        HuaTaiConfigureParameters huaTaiConfigureParameters = configureParametersComponents.toEntity(HuaTaiConfigureParameters.class,
+                insAreaCompany.getAgreementId());
+        // 订单查询
+        HuaTaiOrderStatusRequest orderStatusRequest = new HuaTaiOrderStatusRequest(insAreaCompany, huaTaiConfigureParameters);
+        orderStatusRequest.setHead(new HuaTaiBaseRequestHead(huaTaiConfigureParameters));
+        HuaTaiOrderStatusResponse orderStatusResponse = huaTaiRequestApiComponents.orderStatus(orderStatusRequest,
+                HuaTaiOrderStatusResponse.class, huaTaiConfigureParameters.getInsuredCode());
+        // 撤销
+        HuaTaiPaymentLogoutRequest huaTaiPaymentLogoutRequest = new HuaTaiPaymentLogoutRequest(orderStatusResponse.getPoaCode(), huaTaiConfigureParameters);
+        huaTaiRequestApiComponents.paymentLogout(huaTaiPaymentLogoutRequest, HuaTaiPaymentLogoutResponse.class, huaTaiConfigureParameters.getInsuredCode());
+        return false;
+    }
+
 }
 
 

+ 22 - 10
src/main/java/com/ydtech/modules/order/service/impl/InsCrawlerOrderServiceImpl.java

@@ -142,13 +142,13 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
         if (t.getAccidentalDrivingVo() != null && t.getCompanyId().equals("TPIC1000000")) {
             JSONObject jsonObject = JSON.parseObject(t.getAccidentalDrivingVo().toString());
             insAreaCompanyAccidentalDriving.setRideRiskCode(jsonObject.get("id").toString());
-        }else if(t.getAccidentalDrivingVo() != null && t.getCompanyId().equals("TKIC1000000")){
+        } else if (t.getAccidentalDrivingVo() != null && t.getCompanyId().equals("TKIC1000000")) {
             JSONObject jsonObject = JSON.parseObject(t.getAccidentalDrivingVo().toString());
             insAreaCompanyAccidentalDriving.setRideRiskCode(jsonObject.getString("planCode"));
             insAreaCompanyAccidentalDriving.setRideRiskName(jsonObject.getString("planName"));
             insAreaCompanyAccidentalDriving.setCompanyId("TKIC1000000");
             insAreaCompanyAccidentalDriving.setQuantity(1);
-        }else if(t.getAccidentalDrivingVo() != null && t.getCompanyId().equals("DJPC1000000")){
+        } else if (t.getAccidentalDrivingVo() != null && t.getCompanyId().equals("DJPC1000000")) {
             JSONObject jsonObject = JSON.parseObject(t.getAccidentalDrivingVo().toString());
             InsDrivingIntentionInsurance one = insDrivingIntentionInsuranceService.getOne(new LambdaQueryWrapper<InsDrivingIntentionInsurance>()
                     .eq(InsDrivingIntentionInsurance::getCompanyId, t.getCompanyId())
@@ -321,10 +321,10 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
             kind.setKindCode(kindInfoVo.getKindCode());
             kind.setKindName(kindInfoVo.getKindName());
 
-            if(map.get(kindInfoVo.getKindCode()) != null) {
+            if (map.get(kindInfoVo.getKindCode()) != null) {
                 kind.setCoveragePremium(map.get(kindInfoVo.getKindCode()));
                 kind.setUnitAmount(kindInfoVo.getUnitAmount());
-            }else{
+            } else {
                 kind.setServiceTimes(String.valueOf(kindInfoVo.getServiceTimes()));
             }
 
@@ -530,19 +530,31 @@ public class InsCrawlerOrderServiceImpl implements InsCrawlerOrderService {
     }
 
     @Override
-    public void quash(String subOrderNo) {
+    public boolean quash(String subOrderNo) {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subOrderNo);
+        return quashOrder(insAreaCompany);
+    }
+
+    @Override
+    public String vehicleInspectionCode() {
+        return "";
+    }
+
+    @Override
+    public boolean cancelOrder(InsAreaCompany insAreaCompany) {
+        return quashOrder(insAreaCompany);
+    }
+
+    private boolean quashOrder(InsAreaCompany insAreaCompany) {
         CrawlerBaseRequest crawlerBaseRequest = new CrawlerBaseRequest(insAreaCompany.getInsOrderNo());
         CrawlerBaseResponse request = insCrawlerOrderComponents.request(apiUrl, insAreaCompany.getCompanyId(),
                 PtlCrawlerApiType.API_9.getDesc(), crawlerBaseRequest, CrawlerBaseResponse.class);
         if (request.getCode() == CrawlerAuditStatus.CAS_200.getCode()) {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
+            insAreaCompanyService.updateCompanyAndOrdersNew(insAreaCompany);
+            return true;
         }
-        insAreaCompanyService.updateCompanyAndOrdersNew(insAreaCompany);
+        return false;
     }
 
-    @Override
-    public String vehicleInspectionCode() {
-        return "";
-    }
 }

+ 66 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsuranceCompanyPolymerizationServiceImpl.java

@@ -0,0 +1,66 @@
+package com.ydtech.modules.order.service.impl;
+
+import com.ydtech.constants.InsuranceEnum;
+import com.ydtech.modules.order.entity.InsAreaCompany;
+import com.ydtech.modules.order.service.*;
+import com.ydtech.modules.protocol.entity.constants.PtlApiType;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+
+@Service
+@RequiredArgsConstructor
+public class InsuranceCompanyPolymerizationServiceImpl implements InsuranceCompanyPolymerizationService {
+
+    private final InsCrawlerOrderService insCrawlerOrderService;
+
+    private final ZijinOrderApiService zijinOrderApiService;
+
+    private final BoHaiOrderApiService boHaiOrderApiService;
+
+    private final DaJiaOrderService daJiaOrderService;
+
+    private final GuorenOrderApiService guorenOrderApiService;
+
+    private final HuaTaiOrderApiService huaTaiOrderApiService;
+
+    private final YongchengOrderApiService yongchengOrderApiService;
+
+    private final ZhongMeiOrderApiService zhongMeiOrderApiService;
+
+    @Override
+    public boolean cancelOrder(InsAreaCompany insAreaCompany) {
+        Integer apiType = insAreaCompany.getApiType();
+
+        if(PtlApiType.PTL_API_2.getCode() == apiType){
+            return insCrawlerOrderService.cancelOrder(insAreaCompany);
+        }
+
+        String companyId = insAreaCompany.getCompanyId();
+        String code = companyId.substring(0, 4);
+        // 紫金财险
+        if (InsuranceEnum.ZKIC.getCode().equals(code)){
+            return zijinOrderApiService.cancelOrder(insAreaCompany);
+            // 渤海财险
+        }else if (InsuranceEnum.BPIC.getCode().equals(code)){
+            return boHaiOrderApiService.cancelOrder(insAreaCompany);
+            // 大家财险
+        }else if (InsuranceEnum.DJPC.getCode().equals(code)){
+            return daJiaOrderService.cancelOrder(insAreaCompany);
+            // 国任财险
+        }else if(InsuranceEnum.XDCX.getCode().equals(code)){
+            return guorenOrderApiService.cancelOrder(insAreaCompany);
+            // 华泰财险
+        }else if(InsuranceEnum.HTIC.getCode().equals(code)){
+            return huaTaiOrderApiService.cancelOrder(insAreaCompany);
+            // 永诚财险
+        }else if(InsuranceEnum.AICS.getCode().equals(code)){
+            return yongchengOrderApiService.cancelOrder(insAreaCompany);
+            // 中煤财险
+        }else if(InsuranceEnum.ZMBX.getCode().equals(code)){
+            return zhongMeiOrderApiService.cancelOrder(insAreaCompany);
+        }
+        return false;
+    }
+
+}

+ 17 - 3
src/main/java/com/ydtech/modules/order/service/impl/YongchengOrderApiServiceImpl.java

@@ -61,6 +61,7 @@ import com.ydtech.modules.order.entity.InsAreaCompanyAccidentalDriving;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.api.yongcheng.constants.MessageStatusCode;
 import com.ydtech.modules.order.entity.api.yongcheng.request.AccidentUnderwritingRequest;
+import com.ydtech.modules.order.entity.api.yongcheng.request.ProposalPolicyReturnRequest;
 import com.ydtech.modules.order.entity.api.yongcheng.response.AccidentUnderwritingResponse;
 import com.ydtech.modules.order.entity.crawler.request.RecognitionRequest;
 import com.ydtech.modules.order.entity.crawler.response.RecognitionResponse;
@@ -386,7 +387,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
 
         List<String> requestInfoList = new ArrayList<>();
         //获取报价信息
-        BaseQuoteInfoVo yaQuoteInfoVo = insOrdersComponents.getQuoteInfo(quoteVo.getOrderNo(),quoteVo.getKinds());
+        BaseQuoteInfoVo yaQuoteInfoVo = insOrdersComponents.getQuoteInfo(quoteVo.getOrderNo(), quoteVo.getKinds());
         CoreModelsVo coreModelsVo = new CoreModelsVo();
 
         //build参数
@@ -1417,9 +1418,7 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         carInfo.setCiCarName(vehicleInfo.getVehicleName());
         carInfo.setModelcname(vehicleInfo.getVehicleName());
 //        carInfo.setSeatCount(vehicleInfo.getVehicleSeat());
-
         coreModelsVo = vehicleInfo.toCoreModelsVo();
-
     }
 
     /**
@@ -1469,4 +1468,19 @@ public class YongchengOrderApiServiceImpl implements YongchengOrderApiService {
         }
     }
 
+    @Override
+    public boolean cancelOrder(InsAreaCompany insAreaCompany) {
+        // 获取协议配置信息
+        YcConfigureParameters ycConfigureParameters = gainYcConfigParams(insAreaCompany.getAgreementId());
+        String policyNumber = StringUtils.isNotEmpty(insAreaCompany.getJqapplyno()) ? insAreaCompany.getJqapplyno() : insAreaCompany.getSyapplyno();
+        ProposalPolicyReturnRequest proposalPolicyReturnRequest = new ProposalPolicyReturnRequest(ycConfigureParameters, policyNumber);
+        try {
+            AccidentResponse accidentResponse = yongchengRequestApiComponents.returnAppPolicyWebService(proposalPolicyReturnRequest);
+            if (MessageStatusCode.E0000.getCode().equals(accidentResponse.getHead().getResponseCompleteMessageStatus().getMessageStatusCode())) {
+                return true;
+            }
+        } catch (Exception ignored) {
+        }
+        return false;
+    }
 }

+ 12 - 0
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -743,6 +743,18 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
             insAreaCompanyService.updateCompanyAndOrdersNew(insAreaCompany);
         }
     }
+
+    @Override
+    public boolean cancelOrder(InsAreaCompany insAreaCompany) {
+        // 1. 协议id获取配置实体
+        ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class,
+                insAreaCompany.getAgreementId());
+        UnderwritingWithdrawRequest underwritingWithdrawRequest = new UnderwritingWithdrawRequest(insAreaCompany.getId());
+        underwritingWithdrawRequest.setHead(new BaseRequestHead(zmConfigureParameters));
+        zhongmeiRequestApiComponents.underwritingWithdraw(underwritingWithdrawRequest, UnderwritingWithdrawResponse.class);
+        return true;
+    }
+
 }
 
 

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

@@ -650,6 +650,19 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
             insAreaCompanyService.updateCompanyAndOrdersNew(insAreaCompany);
         }
+    }
 
+    @Override
+    public boolean cancelOrder(InsAreaCompany insAreaCompany) {
+        // 1 通过 协议id获取配置实体
+        HttpHeaders httpHeaders = zijinRequestApiComponents.getHttpHeaders(insAreaCompany.getAgreementId());
+        // 2 请求查看订单状态
+        OrderNoRequest orderNoRequest = new OrderNoRequest(insAreaCompany.getId());
+        zijinRequestApiComponents.cancel(orderNoRequest, httpHeaders);
+        // 3 撤销成功后修改状态为报价中
+        insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
+        insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+        return true;
     }
+
 }