cuixinpeng пре 2 година
родитељ
комит
ee2b262e36

+ 4 - 3
src/main/java/com/ydtech/modules/order/controller/ZhongMeiOrderApiController.java

@@ -12,6 +12,7 @@ import com.ydtech.modules.order.aop.QuoteVerification;
 import com.ydtech.modules.order.components.InsOrdersComponents;
 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;
 import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.modules.order.service.ZhongMeiOrderApiService;
 import com.ydtech.modules.order.utils.AESUtilsWithDataBase;
@@ -112,9 +113,9 @@ public class ZhongMeiOrderApiController {
         return this.zhongMeiOrderApiService.getDrivingInsurance(reqVo);
     }
 
-    @PostMapping("/rideAccidentQuery")
-    @ApiOperation(value = "核保状态查询")
-    public HttpResult<Object> rideAccidentQuery(@RequestBody @Valid AccidentalDrivingQueryVo accidentalDrivingVo) {
+    @PostMapping("/queryRideAccident")
+    @ApiOperation(value = "意外险可投保产品查询")
+    public HttpResult<List<RideAccidentQueryResponse.RideAccident>> queryRideAccident(@RequestBody @Valid AccidentalDrivingQueryVo accidentalDrivingVo) {
         return this.zhongMeiOrderApiService.rideAccidentQuery(accidentalDrivingVo);
     }
 

+ 19 - 5
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/request/ApprovedRequest.java

@@ -1,11 +1,13 @@
 package com.ydtech.modules.order.entity.api.zhongmei.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.api.zhongmei.response.SubmitResponse;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * @author wenks
@@ -46,10 +48,22 @@ public class ApprovedRequest implements Serializable {
     @JsonProperty("payUrl")
     private String payUrl;
     // 意外险投保单号
-    @JsonProperty("proposalNoCP")
-    private String proposalNoCP;
-    // 家财险投保单号
-    @JsonProperty("familyNo")
-    private String familyNo;
+    @JsonProperty("accidentNos")
+    private List<AccidentNo> accidentNos;
 
+    @NoArgsConstructor
+    @Data
+    public static class AccidentNo {
+        /**
+         * 方案代码
+         */
+        @JsonProperty("rideRiskCode")
+        private String rideRiskCode;
+        /**
+         * 意外险单号
+         */
+        @JsonProperty("rideProposalNo")
+        private String rideProposalNo;
+
+    }
 }

+ 19 - 5
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/request/CoverageRequest.java

@@ -2,12 +2,14 @@ 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.response.OrderStatusResponse;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * @author wenks
@@ -48,10 +50,22 @@ public class CoverageRequest extends BaseRequest implements Serializable {
     @JsonProperty("status")
     private int status;
     // 意外险保单号
-    @JsonProperty("accidentPolicyNo")
-    private String accidentPolicyNo;
-    // 家财险保单号
-    @JsonProperty("homeAccidentPolicyNo")
-    private String homeAccidentPolicyNo;
+    @JsonProperty("accidentPolicyNos")
+    private List<AccidentPolicyNo> accidentPolicyNos;
 
+    @NoArgsConstructor
+    @Data
+    public static class AccidentPolicyNo {
+        /**
+         * 方案代码
+         */
+        @JsonProperty("rideRiskCode")
+        private String rideRiskCode;
+        /**
+         * 意外险单号
+         */
+        @JsonProperty("ridePolicyNo")
+        private String ridePolicyNo;
+
+    }
 }

+ 13 - 1
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/request/QuotedPriceRequest.java

@@ -50,6 +50,9 @@ public class QuotedPriceRequest extends BaseRequest {
 
     public QuotedPriceRequest(BaseQuoteInfoVo baseQuoteInfoVo, ModelsQueryResponse.SimpleStadarCarDTO simpleStadarCarDTO,
                               AccidentalDrivingVo accidentalDrivingVo, ZmConfigureParameters zmConfigureParameters) {
+        //调整非车出单流程是后台写死的非车产品,后续可删除
+        /*accidentalDrivingVo.setQuantity(1);
+        accidentalDrivingVo.setRideRiskCode("52");*/
         this.businessData = new BusinessDataDTO(baseQuoteInfoVo, simpleStadarCarDTO, accidentalDrivingVo, zmConfigureParameters);
     }
 
@@ -112,7 +115,7 @@ public class QuotedPriceRequest extends BaseRequest {
             // 驾意险
             if (!StringUtils.isEmpty(accidentalDrivingVo.getRideRiskCode())) {
                 this.accident = Collections.singletonList(new AccidentDTO(accidentalDrivingVo.getRideRiskCode(),
-                        accidentalDrivingVo.getQuantity()));
+                        accidentalDrivingVo.getQuantity(),"",""));
             }
 
         }
@@ -129,6 +132,15 @@ public class QuotedPriceRequest extends BaseRequest {
             // 投保份数
             @JsonProperty("quantity")
             private int quantity;
+            // 标的房屋结构 家财险必传房屋结构
+            //百万医疗险必传是否有社保(0-无社保 1-有社保)
+            @JsonProperty("attribute3")
+            private String attribute3;
+            // 标的详细地址 家财险和组合险必传
+            @JsonProperty("attribute4")
+            private String attribute4;
+
+
         }
 
 

+ 19 - 2
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/response/OrderStatusResponse.java

@@ -6,6 +6,8 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
+import java.util.List;
+
 /**
  * @author wenks
  * @version 0.0.2
@@ -18,8 +20,8 @@ import lombok.NoArgsConstructor;
 public class OrderStatusResponse extends BaseResponse {
     private static final long serialVersionUID = -1745197801630649211L;
 
-    @JsonProperty("accidentNo")
-    private String accidentNo;
+    @JsonProperty("accidentPolicyNos")
+    private List<AccidentPolicyNo> accidentPolicyNos;
 
     @JsonProperty("businessType")
     private String businessType;
@@ -43,4 +45,19 @@ public class OrderStatusResponse extends BaseResponse {
     private String payDate;
 
 
+    @NoArgsConstructor
+    @Data
+    public static class AccidentPolicyNo {
+        /**
+         * 方案代码
+         */
+        @JsonProperty("rideRiskCode")
+        private String rideRiskCode;
+        /**
+         * 意外险单号
+         */
+        @JsonProperty("ridePolicyNo")
+        private String ridePolicyNo;
+
+    }
 }

+ 2 - 2
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/response/QuotedPriceResponse.java

@@ -31,8 +31,8 @@ public class QuotedPriceResponse extends BaseResponse {
     private PlatformMessage forcePlatformMsg;
     @JsonProperty("bizPlatformMsg")
     private PlatformMessage bizPlatformMsg;
-    @JsonProperty("bizPlatformMsg")
-    private AccidentPrimium rideAccidentPrimium;
+    @JsonProperty("accidentPremium")
+    private List<AccidentPrimium> accidentPremium;
     @JsonProperty("insuranceScheme")
     private InsuranceSchemeDTO insuranceScheme;
     @JsonProperty("platMain")

+ 19 - 2
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/response/SubmitResponse.java

@@ -6,6 +6,8 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
+import java.util.List;
+
 /**
  * @author wenks
  * @version 0.0.2
@@ -19,8 +21,8 @@ public class SubmitResponse extends BaseResponse {
 
     private static final long serialVersionUID = -8744044197438153449L;
     // 意外险投保单号
-    @JsonProperty("accidentProposalNo")
-    private String accidentProposalNo;
+    @JsonProperty("accidentNos")
+    private List<AccidentNo> accidentNos;
     // 商业险投保单号
     @JsonProperty("bizProposalNo")
     private String bizProposalNo;
@@ -45,4 +47,19 @@ public class SubmitResponse extends BaseResponse {
     @JsonProperty("submitNotion")
     private String submitNotion;
 
+    @NoArgsConstructor
+    @Data
+    public static class AccidentNo {
+        /**
+         * 方案代码
+         */
+        @JsonProperty("rideRiskCode")
+        private String rideRiskCode;
+        /**
+         * 意外险单号
+         */
+        @JsonProperty("rideProposalNo")
+        private String rideProposalNo;
+
+    }
 }

+ 1 - 1
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/response/SubmitStatusQueryResponse.java

@@ -24,7 +24,7 @@ public class SubmitStatusQueryResponse extends BaseResponse {
     @JsonProperty("underWriteInd")
     private String underWriteInd;
 
-    /**
+    /**·
      * 主投保单号
      */
     @JsonProperty("proposalNo")

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

@@ -6,6 +6,7 @@ import com.ydtech.modules.ins.model.vo.GeneralNonCarProductResVo;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
 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;
 import com.ydtech.modules.order.entity.vo.AccidentalDrivingQueryVo;
 import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
@@ -80,5 +81,5 @@ public interface ZhongMeiOrderApiService extends BaseOrderService<AccidentalDriv
      * @param accidentalDrivingVo
      * @return
      */
-    HttpResult<Object> rideAccidentQuery(AccidentalDrivingQueryVo accidentalDrivingVo);
+    HttpResult<List<RideAccidentQueryResponse.RideAccident>> rideAccidentQuery(AccidentalDrivingQueryVo accidentalDrivingVo);
 }

+ 49 - 18
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.order.service.impl;
 import cn.hutool.core.util.ArrayUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ydtech.components.ZhongmeiRequestComponents;
 import com.ydtech.constants.enums.InsuranceRisk;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
@@ -22,6 +23,7 @@ import com.ydtech.modules.order.convert.SimpleStadarCarDTOConvert;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.TaxArrears;
+import com.ydtech.modules.order.entity.api.dajia.response.NVHLODR1001Response;
 import com.ydtech.modules.order.entity.api.zhongmei.BaseRequestHead;
 import com.ydtech.modules.order.entity.api.zhongmei.constants.enums.AuditStatusEnum;
 import com.ydtech.modules.order.entity.api.zhongmei.constants.enums.DocumentTypeEnum;
@@ -240,7 +242,9 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         insAreaCompany.setPaymentLink(response.getPayUrl());
         insAreaCompany.setJqapplyno(response.getForceProposalNo());
         insAreaCompany.setSyapplyno(response.getBizProposalNo());
-//        insAreaCompany.setJyapplyno(response.getAccidentProposalNo());
+        if(response.getAccidentNos()!=null){
+            insAreaCompany.setCrossInsurance(JSON.parseArray(JSON.toJSONString(response.getAccidentNos())));
+        }
         insAreaCompany.setInsOrderNo(response.getProposalNo());
         insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
         insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
@@ -282,7 +286,9 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
                 // 保单号
                 insAreaCompany.setJqpolicyno(coverageRequest.getForcePolicyNo());
                 insAreaCompany.setSypolicyno(coverageRequest.getBizPolicyNo());
-//                insAreaCompany.setJypolicyno(coverageRequest.getAccidentPolicyNo());
+                if(coverageRequest.getAccidentPolicyNos()!=null){
+                    insAreaCompany.setCrossInsurance(JSON.parseArray(JSON.toJSONString(coverageRequest.getAccidentPolicyNos())));
+                }
                 insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
                 insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
             }
@@ -302,7 +308,9 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
             if (AuditStatusEnum.S_1.getCode().equals(approvedRequest.getStatusCode())) {
                 insAreaCompany.setJqapplyno(approvedRequest.getProposalNoJ());
                 insAreaCompany.setSyapplyno(approvedRequest.getProposalNoS());
-//                insAreaCompany.setJyapplyno(approvedRequest.getProposalNoCP());
+                if(approvedRequest.getAccidentNos()!=null ){
+                    insAreaCompany.setCrossInsurance(JSON.parseArray(JSON.toJSONString(approvedRequest.getAccidentNos())));
+                }
                 insAreaCompany.setPaymentLink(approvedRequest.getPayUrl());
                 insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
             } else {
@@ -347,7 +355,9 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
             if (StringUtils.isNotEmpty(payDate)) {
                 insAreaCompany.setPayDate(LocalDateTime.parse(payDate, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
             }
-//            insAreaCompany.setJypolicyno(orderStatusResponse.getAccidentNo());
+            if(orderStatusResponse.getAccidentPolicyNos()!=null ){
+                insAreaCompany.setCrossInsurance(JSON.parseArray(JSON.toJSONString(orderStatusResponse.getAccidentPolicyNos())));
+            }
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
             insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
 
@@ -372,6 +382,16 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
             policyNo = insAreaCompany.getJqpolicyno();
         } else if (InsuranceRisk.BUSINESS.getCode().equals(riskCode)) {
             policyNo = insAreaCompany.getSypolicyno();
+        } else if (InsuranceRisk.ACCIDENT.getCode().equals(riskCode)) {
+            List<OrderStatusResponse.AccidentPolicyNo> accidentPolicyNos = null;
+            if (!Objects.isNull(insAreaCompany.getCrossInsurance())) {
+                accidentPolicyNos = JSON.parseArray(JSON.toJSONString(insAreaCompany.getCrossInsurance()),
+                        OrderStatusResponse.AccidentPolicyNo.class);
+                OrderStatusResponse.AccidentPolicyNo accidentPolicyNo = accidentPolicyNos.get(0);
+                policyNo = accidentPolicyNo.getRidePolicyNo();
+            }else{
+                throw new SystemException("险种代码不存在");
+            }
         } else {
             throw new SystemException("险种代码不存在");
         }
@@ -380,7 +400,9 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         InsurancePolicyPrintRequest request = new InsurancePolicyPrintRequest();
         //获取能源种类
         CarInfoVo carInfoVo = JSON.toJavaObject(order.getCarinfo(), CarInfoVo.class);
-        request.setRiskCode(InsuranceTypeCorrespondence.getZhongMei_RISK().get(carInfoVo.getEnergyType()).get(riskCode));
+        if (!InsuranceRisk.ACCIDENT.getCode().equals(riskCode)) {//非车险不传险种代码
+            request.setRiskCode(InsuranceTypeCorrespondence.getZhongMei_RISK().get(carInfoVo.getEnergyType()).get(riskCode));
+        }
         request.setPolicyNo(policyNo);
         request.setDocumentType(code);
         request.setHead(new BaseRequestHead(zmConfigureParameters));
@@ -395,11 +417,16 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
                 if ("DZ_AJ".equals(code)) {
                     templateName = "-交强险标志.pdf";
                 } else if ("DZ_AE".equals(code)) {
-                    if ("0330".equals(request.getRiskCode())) {
-                        templateName = "-交强险保单.pdf";
-                    } else {
-                        templateName = "-商业险保单.pdf";
+                    if(StringUtils.isNotEmpty(request.getRiskCode())){
+                        if ("0330".equals(request.getRiskCode())) {
+                            templateName = "-交强险保单.pdf";
+                        } else {
+                            templateName = "-商业险保单.pdf";
+                        }
+                    }else {
+                        templateName = "-非车险保单.pdf";
                     }
+
                 }
                 String transferUrl = gainCarInsPolicy(url, licensePlate + templateName, licensePlate);
                 List<String> transferUrlList = new ArrayList<>();
@@ -509,17 +536,21 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         quoteRespVo.setILogPreUdwMess(zmScore);//评分
         quoteRespVo.setOrderno(yaQuoteInfoVo.getOrderNo()); //订单号
 
-        /*QuotedPriceResponse.AccidentPrimium accidentPrimium = quotedPriceResponse.getRideAccidentPrimium();
-        if(accidentPrimium!=null){
+        List<QuotedPriceResponse.AccidentPrimium> accidentPrimiumList = quotedPriceResponse.getAccidentPremium();
+        if(accidentPrimiumList!=null && accidentPrimiumList.size()>0){
+            QuotedPriceResponse.AccidentPrimium accidentPrimium = accidentPrimiumList.get(0);
             AccidentResponseVo accidentResponseVo = new AccidentResponseVo();
             accidentResponseVo.setProjectCode(accidentPrimium.getRideRiskCode());
             accidentResponseVo.setProjectName(accidentPrimium.getRideRiskName());
-            accidentResponseVo.setQuantity(accidentPrimium.getQuantity());
-            accidentResponseVo.setPremium(accidentPrimium.getUnitPremium());
-            accidentResponseVo.setActualPremium(accidentPrimium.getSumPremium());
+            accidentResponseVo.setQuantity(String.valueOf(accidentPrimium.getQuantity()));
+            accidentResponseVo.setPremium(String.valueOf(accidentPrimium.getUnitPremium()));
+            accidentResponseVo.setActualPremium(String.valueOf(accidentPrimium.getSumPremium()));
+            quoteRespVo.setJyPremium(accidentPrimium.getSumPremium());
+            quoteRespVo.setSumPermium(CalculateUtils.add(quoteRespVo.getSumPermium(), quoteRespVo.getJyPremium()));//重算保费合计
             List<AccidentResponseVo> accidentResponseVoList = new ArrayList<>();
-            quoteRespVo.setAccident();
-        }*/
+            accidentResponseVoList.add(accidentResponseVo);
+            quoteRespVo.setAccident(accidentResponseVoList);
+        }
         return quoteRespVo;
     }
 
@@ -580,7 +611,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
     }
 
     @Override
-    public HttpResult<Object> rideAccidentQuery(AccidentalDrivingQueryVo accidentalDrivingVo) {
+    public HttpResult<List<RideAccidentQueryResponse.RideAccident>> rideAccidentQuery(AccidentalDrivingQueryVo accidentalDrivingVo) {
         // 1. 协议id获取配置实体
         ZmConfigureParameters zmConfigureParameters = configureParametersComponents.toEntity(ZmConfigureParameters.class,
                 accidentalDrivingVo.getAgreementId());
@@ -593,7 +624,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         RideAccidentQueryResponse rideAccidentQueryResponse = zhongmeiRequestApiComponents.rideAccidentQuery(rideAccidentQueryRequest,
                 RideAccidentQueryResponse.class);
 
-        return HttpResult.ok("");
+        return HttpResult.ok(rideAccidentQueryResponse.getRideAccidents());
     }
 
     /**