|
|
@@ -2,6 +2,7 @@ package com.ydtech.modules.order.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.ydtech.constants.enums.InsuranceRisk;
|
|
|
import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
|
|
|
import com.ydtech.core.page.HttpResult;
|
|
|
import com.ydtech.exception.SystemException;
|
|
|
@@ -140,7 +141,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
vehicleTypeQueryRequest);
|
|
|
vehicleModelsDTO = (VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO) map_two.get("vehicleModelsDTO");
|
|
|
vehicleConfirmationResponse = (VehicleConfirmationResponse) map_two.get("vehicleConfirmationResponse");
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
throw new SystemException(responseMsg);
|
|
|
}
|
|
|
}
|
|
|
@@ -151,22 +152,32 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
QuotationRequest quotationRequest = new QuotationRequest(parameters, quoteInfoVo.getRiskList(), quoteInfoVo.getKindList(),
|
|
|
currentValue, orderNo, carInfo, quoteVo.getAccidentalDrivingVo());
|
|
|
QuotationResponse response = boHaiRequestApiComponent.quotation(quotationRequest, parameters.getSysSourceCode());
|
|
|
- //商业险重复投保 重复投保保单信息 :保单号:314042303060007485车牌号:晋A881SR车架号:LMGAC1381K1535834发动机号:F699317保险公司代码:YAIC签单日期:20230414起保日期:202305030000终保日期:202405030000险别:机动车第三者责任保险,附加医保外用药责任险(机动车第三者责任保险)
|
|
|
- response = getQuotationResponse(response,quotationRequest,parameters.getSysSourceCode());
|
|
|
+ //商业险重复投保 重复投保保单信息 :保单号:314042303060007485车牌号:晋A881SR车架号:LMGAC1381K1535834发动机号:F699317保险公司代码:YAIC签单日期:20230414起保日期:202305030000
|
|
|
+ // 终保日期:202405030000险别:机动车第三者责任保险,附加医保外用药责任险(机动车第三者责任保险)
|
|
|
+
|
|
|
+ List<RiskInfoVo> collect =
|
|
|
+ quoteInfoVo.getRiskList().stream().filter(x -> InsuranceRisk.BUSINESS.getCode().equals(x.getRiskCode())).collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (!collect.isEmpty()) {
|
|
|
+ response = getQuotationResponse(response, quotationRequest, parameters.getSysSourceCode());
|
|
|
+ }
|
|
|
|
|
|
//response = getQuotationResponseNew(quoteInfoVo, quoteVo, parameters, orderNo, carInfo, currentValue, response);
|
|
|
//add by 2024-04-03 会发生重复投保 算费微服务返回报错信息_保信返回错误信息:
|
|
|
- // 平台返回错误信息号牌号码“晋J60L55”的保单发生重复投保,与其重复投保的其它公司的保单信息如下:投保确认码 02PAIC140023031919549498257741;保单号 13312993901973801278;起保日期 2023-04-11 00:00;终保日期 2024-04-11 00:00;号牌号码 晋J60L55;号牌种类 02;车架号 LZWADAGA5LG477030;发动机号 8LB1921291;地区 山西。
|
|
|
+ // 平台返回错误信息号牌号码“晋J60L55”的保单发生重复投保,与其重复投保的其它公司的保单信息如下:投保确认码 02PAIC140023031919549498257741;保单号 13312993901973801278;起保日期
|
|
|
+ // 2023-04-11 00:00;终保日期 2024-04-11 00:00;号牌号码 晋J60L55;号牌种类 02;车架号 LZWADAGA5LG477030;发动机号 8LB1921291;地区 山西。
|
|
|
//重新赋值交强的投保开始日期
|
|
|
if (ResponseCode.R_Z00004.getCode().equals(response.getResponseCode())) {
|
|
|
String responseMsg = response.getResponseMsg();
|
|
|
- if(responseMsg.contains("发生重复投保")){
|
|
|
+ if (responseMsg.contains("发生重复投保")) {
|
|
|
//交强重复投保
|
|
|
- String trafficPolicyDTOBenginDateStr = StringSubStringUtils.subjectStringContentByTrafficPolicyDTOBenginDate(responseMsg,":","起保日期");
|
|
|
- String trafficPolicyDTOEndDateStr = StringSubStringUtils.subjectStringContentByTrafficPolicyDTOBenginDate(responseMsg,":","终保日期");
|
|
|
- if(!"".equals(trafficPolicyDTOBenginDateStr) && !"".equals(trafficPolicyDTOEndDateStr)){
|
|
|
+ String trafficPolicyDTOBenginDateStr = StringSubStringUtils.subjectStringContentByTrafficPolicyDTOBenginDate(responseMsg,
|
|
|
+ ":", "起保日期");
|
|
|
+ String trafficPolicyDTOEndDateStr = StringSubStringUtils.subjectStringContentByTrafficPolicyDTOBenginDate(responseMsg,
|
|
|
+ ":", "终保日期");
|
|
|
+ if (!StringUtils.isEmpty(trafficPolicyDTOBenginDateStr) && !StringUtils.isEmpty(trafficPolicyDTOEndDateStr)) {
|
|
|
//结束投保日期为开始日期,结束日期为结束投保日期后一年的日期
|
|
|
- trafficPolicyDTOEndDateStr=trafficPolicyDTOEndDateStr+":00";
|
|
|
+ trafficPolicyDTOEndDateStr = trafficPolicyDTOEndDateStr + ":00";
|
|
|
// 结束日期为59:59:59
|
|
|
String endDateStr = DateUtil_N.getNextYearDateStr(trafficPolicyDTOEndDateStr);
|
|
|
QuotationRequest.TrafficPolicyDTO trafficPolicy = quotationRequest.getTrafficPolicy();
|
|
|
@@ -175,17 +186,20 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
quotationRequest.setTrafficPolicy(trafficPolicy);
|
|
|
response = boHaiRequestApiComponent.quotation(quotationRequest, parameters.getSysSourceCode());
|
|
|
// 判断是否商业险重复投保
|
|
|
- response = getQuotationResponse(response,quotationRequest,parameters.getSysSourceCode());
|
|
|
-
|
|
|
+ if (!collect.isEmpty()) {
|
|
|
+ response = getQuotationResponse(response, quotationRequest, parameters.getSysSourceCode());
|
|
|
+ }
|
|
|
if (!ResponseCode.R_Z00001.getCode().equals(response.getResponseCode())) {
|
|
|
throw new SystemException(response.getResponseMsg());
|
|
|
}
|
|
|
+ } else {
|
|
|
+ throw new SystemException(responseMsg);
|
|
|
}
|
|
|
// add by hxl 2024-04-07 报价接口报错 算费微服务返回报错信息_保信返回错误信息:录入的校验码有误
|
|
|
// 需要调用 获取交管查询校验码接口 传入到报价参数中 暂未复现不处理 注释掉
|
|
|
- }else if(responseMsg.contains("录入的校验码有误")){
|
|
|
+ } else if (responseMsg.contains("录入的校验码有误")) {
|
|
|
//response = getQuotationResponseNew(quoteInfoVo, quoteVo, parameters, orderNo, carInfo, currentValue, response);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
throw new SystemException(responseMsg);
|
|
|
}
|
|
|
}
|
|
|
@@ -193,22 +207,27 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
|
|
|
return getQuoteRespVo(response, quoteInfoVo, vehicleModelsDTO, ptlAgreementAttribution, orderNo, accidentalDrivingVo);
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
- * @version 报价传递获取交管查询校验码 报错 未知异常,请联系管理员
|
|
|
- * @author: hxl
|
|
|
- * @Date: 2024/4/7 16:50
|
|
|
- * @Description:
|
|
|
+ * @version 报价传递获取交管查询校验码 报错 未知异常,请联系管理员
|
|
|
+ * @author: hxl
|
|
|
+ * @Date: 2024/4/7 16:50
|
|
|
+ * @Description:
|
|
|
*/
|
|
|
- private QuotationResponse getQuotationResponseNew(BaseQuoteInfoVo quoteInfoVo, BaseQuoteVo<List<BoHaiQuoteAccidentVo>> quoteVo, BoHaiConfigureParameters parameters, String orderNo, CarInfoVo carInfo, String currentValue, QuotationResponse response) throws Exception {
|
|
|
- VehicleCheckCodeRequest vehicleCheckCodeRequest = new VehicleCheckCodeRequest(parameters, orderNo, carInfo.getVinNo(), carInfo.getEngineNo(), carInfo.getLicenseNo());
|
|
|
- VehicleCheckCodeResponse vehicleCheckCodeResponse = boHaiRequestApiComponent.getVehicleCheckCode(vehicleCheckCodeRequest, parameters.getSysSourceCode());
|
|
|
- if(ResponseCode.R_Z00001.getCode().equals(vehicleCheckCodeResponse.getResponseCode())){
|
|
|
+ private QuotationResponse getQuotationResponseNew(BaseQuoteInfoVo quoteInfoVo, BaseQuoteVo<List<BoHaiQuoteAccidentVo>> quoteVo,
|
|
|
+ BoHaiConfigureParameters parameters, String orderNo, CarInfoVo carInfo,
|
|
|
+ String currentValue, QuotationResponse response) throws Exception {
|
|
|
+ VehicleCheckCodeRequest vehicleCheckCodeRequest = new VehicleCheckCodeRequest(parameters, orderNo, carInfo.getVinNo(),
|
|
|
+ carInfo.getEngineNo(), carInfo.getLicenseNo());
|
|
|
+ VehicleCheckCodeResponse vehicleCheckCodeResponse = boHaiRequestApiComponent.getVehicleCheckCode(vehicleCheckCodeRequest,
|
|
|
+ parameters.getSysSourceCode());
|
|
|
+ if (ResponseCode.R_Z00001.getCode().equals(vehicleCheckCodeResponse.getResponseCode())) {
|
|
|
String checkCode = vehicleCheckCodeResponse.getData().getCheckCode();
|
|
|
//重新报价
|
|
|
QuotationRequest quotationRequestNew = new QuotationRequest(parameters, quoteInfoVo.getRiskList(), quoteInfoVo.getKindList(),
|
|
|
currentValue, orderNo, carInfo, quoteVo.getAccidentalDrivingVo());
|
|
|
- List<QuotationRequest.CheckInfoDTO> checkInfoList=new ArrayList<QuotationRequest.CheckInfoDTO>();
|
|
|
- QuotationRequest.CheckInfoDTO checkInfo=new QuotationRequest.CheckInfoDTO("2",checkCode,"N");
|
|
|
+ List<QuotationRequest.CheckInfoDTO> checkInfoList = new ArrayList<QuotationRequest.CheckInfoDTO>();
|
|
|
+ QuotationRequest.CheckInfoDTO checkInfo = new QuotationRequest.CheckInfoDTO("2", checkCode, "N");
|
|
|
checkInfoList.add(checkInfo);
|
|
|
//quotationRequestNew.setCheckInfoList(checkInfoList);
|
|
|
response = boHaiRequestApiComponent.quotation(quotationRequestNew, parameters.getSysSourceCode());
|
|
|
@@ -220,20 +239,20 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @version 商业险发生重复投保
|
|
|
- * @author: hxl
|
|
|
- * @Date: 2024/4/7 16:07
|
|
|
- * @Description:
|
|
|
+ * @version 商业险发生重复投保
|
|
|
+ * @author: hxl
|
|
|
+ * @Date: 2024/4/7 16:07
|
|
|
+ * @Description:
|
|
|
*/
|
|
|
- private QuotationResponse getQuotationResponse(QuotationResponse response, QuotationRequest quotationRequest,String sysSourCode) throws Exception {
|
|
|
- if(ResponseCode.R_Z00001.getCode().equals(response.getResponseCode()) && response.getData().getBusinessPolicy().getErrorMsg()!=null){
|
|
|
+ private QuotationResponse getQuotationResponse(QuotationResponse response, QuotationRequest quotationRequest, String sysSourCode) throws Exception {
|
|
|
+ if (ResponseCode.R_Z00001.getCode().equals(response.getResponseCode()) && response.getData().getBusinessPolicy().getErrorMsg() != null) {
|
|
|
String errorMsg = response.getData().getBusinessPolicy().getErrorMsg();
|
|
|
- if(errorMsg.contains("重复投保")){
|
|
|
+ if (errorMsg.contains("重复投保")) {
|
|
|
//重新给商业险的开始和结束时间赋值赋值重新填报
|
|
|
- String businessPolicyEndDateStr = StringSubStringUtils.subjectStringContentByBusinessPolicyEndDate(errorMsg,"终保日期:");
|
|
|
- if(!"".equals(businessPolicyEndDateStr) && !"".equals(businessPolicyEndDateStr)){
|
|
|
+ String businessPolicyEndDateStr = StringSubStringUtils.subjectStringContentByBusinessPolicyEndDate(errorMsg, "终保日期:");
|
|
|
+ if (!StringUtils.isEmpty(businessPolicyEndDateStr) && !StringUtils.isEmpty((businessPolicyEndDateStr))) {
|
|
|
//结束投保日期为开始日期,结束日期为结束投保日期后一年的日期
|
|
|
- businessPolicyEndDateStr=businessPolicyEndDateStr+"00";
|
|
|
+ businessPolicyEndDateStr = businessPolicyEndDateStr + "00";
|
|
|
String beginDateStr = DateUtil_N.strAllToDateToStr(businessPolicyEndDateStr, "yyyyMMddHHmmss", "yyyy-MM-dd HH:mm:ss");
|
|
|
// 结束日期为59:59:59
|
|
|
String endDateStr = DateUtil_N.getNextYearDateStrTranfer(businessPolicyEndDateStr);
|
|
|
@@ -342,9 +361,8 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
List<UnderwritingResponse.DataDTO.UnAutoPolicyDTO> propertyPolicies = data.getPropertyPolicies();
|
|
|
policyDTOS.addAll(propertyPolicies);
|
|
|
|
|
|
- List<DrivingInsuranceDto> collect = policyDTOS.stream()
|
|
|
- .map(UnderwritingResponse.DataDTO.UnAutoPolicyDTO::toDrivingInsuranceDto)
|
|
|
- .collect(Collectors.toList());
|
|
|
+ List<DrivingInsuranceDto> collect =
|
|
|
+ policyDTOS.stream().map(UnderwritingResponse.DataDTO.UnAutoPolicyDTO::toDrivingInsuranceDto).collect(Collectors.toList());
|
|
|
|
|
|
JSONArray objects = JSON.parseArray(JSON.toJSONString(collect));
|
|
|
insAreaCompany.setCrossInsurance(objects);
|
|
|
@@ -541,11 +559,9 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
return response.getData().getDocumentList();
|
|
|
}
|
|
|
|
|
|
- public HttpResult<QuoteRespVo> getQuoteRespVo(QuotationResponse response,
|
|
|
- BaseQuoteInfoVo yaQuoteInfoVo,
|
|
|
+ public HttpResult<QuoteRespVo> getQuoteRespVo(QuotationResponse response, BaseQuoteInfoVo yaQuoteInfoVo,
|
|
|
VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleModelsDTO,
|
|
|
- PtlAgreementAttribution ptlAgreementAttribution,
|
|
|
- String orderNo,
|
|
|
+ PtlAgreementAttribution ptlAgreementAttribution, String orderNo,
|
|
|
List<BoHaiQuoteAccidentVo> accidentalDrivingVo) {
|
|
|
|
|
|
double sumPayTax = 0;
|
|
|
@@ -625,10 +641,8 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
return responseOrder(response, quoteRespVo, ptlAgreementAttribution, orderNo, accidentalDrivingVo);
|
|
|
}
|
|
|
|
|
|
- public HttpResult<QuoteRespVo> responseOrder(QuotationResponse response,
|
|
|
- QuoteRespVo quoteRespVo,
|
|
|
- PtlAgreementAttribution ptlAgreementAttribution,
|
|
|
- String orderId,
|
|
|
+ public HttpResult<QuoteRespVo> responseOrder(QuotationResponse response, QuoteRespVo quoteRespVo,
|
|
|
+ PtlAgreementAttribution ptlAgreementAttribution, String orderId,
|
|
|
List<BoHaiQuoteAccidentVo> accidentalDrivingVo) {
|
|
|
// 保存订单信息
|
|
|
InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
|
|
|
@@ -643,11 +657,8 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
insAreaCompany.setAccidentInfo(JSON.parseArray(JSON.toJSONString(accidentalDrivingVo)));
|
|
|
|
|
|
// 车船税
|
|
|
- TaxArrears taxArrears = Optional.ofNullable(response.getData().getTrafficPolicy())
|
|
|
- .map(QuotationResponse.DataDTO.TrafficPolicyDTO::getVehicleTax)
|
|
|
- .map(x -> new TaxArrears("往年欠税", Double.parseDouble(x.getOverdueTaxAmount()),
|
|
|
- Double.parseDouble(x.getLateFee())))
|
|
|
- .orElse(new TaxArrears());
|
|
|
+ TaxArrears taxArrears =
|
|
|
+ Optional.ofNullable(response.getData().getTrafficPolicy()).map(QuotationResponse.DataDTO.TrafficPolicyDTO::getVehicleTax).map(x -> new TaxArrears("往年欠税", Double.parseDouble(x.getOverdueTaxAmount()), Double.parseDouble(x.getLateFee()))).orElse(new TaxArrears());
|
|
|
|
|
|
List<TaxArrears> taxArrearsList = Collections.singletonList(taxArrears);
|
|
|
insAreaCompany.setTaxArrears(JSON.parseArray(JSON.toJSONString(taxArrearsList)));
|