|
|
@@ -1,8 +1,6 @@
|
|
|
package com.ydtech.modules.order.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
-import com.alibaba.fastjson.serializer.SerializerFeature;
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
|
|
|
import com.ydtech.core.page.HttpResult;
|
|
|
import com.ydtech.exception.SystemException;
|
|
|
@@ -24,28 +22,24 @@ import com.ydtech.modules.order.entity.filter.CarModelsFilterUtils;
|
|
|
import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
|
|
|
import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
|
|
|
import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
|
|
|
-import com.ydtech.modules.order.entity.vo.VehicleAndVesselTax;
|
|
|
import com.ydtech.modules.order.entity.vo.bohai.BoHaiQuoteAccidentVo;
|
|
|
import com.ydtech.modules.order.entity.vo.bohai.ProductDetailsQueryVo;
|
|
|
import com.ydtech.modules.order.entity.vo.bohai.ProductQueryVo;
|
|
|
-import com.ydtech.modules.order.entity.vo.zj.ZjQuoteAccidentVo;
|
|
|
import com.ydtech.modules.order.service.BoHaiOrderApiService;
|
|
|
import com.ydtech.modules.order.service.InsAreaCompanyService;
|
|
|
import com.ydtech.modules.order.service.InsOrdersService;
|
|
|
import com.ydtech.modules.order.service.InsTaskImagesService;
|
|
|
-import com.ydtech.modules.order.utils.SignatureUtils;
|
|
|
import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
|
|
|
import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
|
|
|
import com.ydtech.utils.CalculateUtils;
|
|
|
import com.ydtech.utils.StringUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.ObjectUtils;
|
|
|
|
|
|
-import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
@@ -140,8 +134,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
QuotationRequest quotationRequest = new QuotationRequest(parameters, quoteInfoVo.getRiskList(), quoteInfoVo.getKindList(),
|
|
|
currentValue, orderNo, carInfo, quoteVo.getAccidentalDrivingVo());
|
|
|
QuotationResponse response = boHaiRequestApiComponent.quotation(quotationRequest);
|
|
|
- QuoteRespVo quoteRespVo = getQuoteRespVo(response, quoteInfoVo, vehicleModelsDTO);
|
|
|
- return responseOrder(response, quoteRespVo, ptlAgreementAttribution, orderNo);
|
|
|
+ return getQuoteRespVo(response, quoteInfoVo, vehicleModelsDTO, ptlAgreementAttribution, orderNo);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -179,8 +172,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
ptlAgreementAttribution);
|
|
|
|
|
|
// 核保请求
|
|
|
- UnderwritingRequest underwritingRequest = new UnderwritingRequest(parameters, insAreaCompany.getId(),
|
|
|
- insAreaCompany.getInsOrderNo());
|
|
|
+ UnderwritingRequest underwritingRequest = new UnderwritingRequest(parameters, insAreaCompany.getId());
|
|
|
UnderwritingResponse underwritingResponse = boHaiRequestApiComponent.underwriting(underwritingRequest);
|
|
|
int i = underwritingResponse.getData().verificationUnderwriting();
|
|
|
|
|
|
@@ -200,6 +192,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
}
|
|
|
String trafficResultMsg = underwritingResponse.getData().getTrafficResultMsg();
|
|
|
String businessResultMsg = underwritingResponse.getData().getBusinessResultMsg();
|
|
|
+ insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
|
|
|
return HttpResult.error(trafficResultMsg + "/n" + businessResultMsg);
|
|
|
}
|
|
|
|
|
|
@@ -268,7 +261,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public String underwritingCallback(PaymentCallbackRequest coverageRequest) throws Exception{
|
|
|
+ public String underwritingCallback(PaymentCallbackRequest coverageRequest) throws Exception {
|
|
|
String requestNo = coverageRequest.getBaseParam().getRequestNo();
|
|
|
ResponseCode responseCode;
|
|
|
try {
|
|
|
@@ -286,7 +279,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public String auditCallback(ManualReviewRequest approvedRequest) throws Exception{
|
|
|
+ public String auditCallback(ManualReviewRequest approvedRequest) throws Exception {
|
|
|
String requestNo = approvedRequest.getBaseParam().getRequestNo();
|
|
|
ResponseCode responseCode;
|
|
|
try {
|
|
|
@@ -335,64 +328,78 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
return response.getData().getDocumentList();
|
|
|
}
|
|
|
|
|
|
- public QuoteRespVo getQuoteRespVo(QuotationResponse response,
|
|
|
+ public HttpResult<QuoteRespVo> getQuoteRespVo(QuotationResponse response,
|
|
|
BaseQuoteInfoVo yaQuoteInfoVo,
|
|
|
- VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleModelsDTO) {
|
|
|
-
|
|
|
+ VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleModelsDTO,
|
|
|
+ PtlAgreementAttribution ptlAgreementAttribution,
|
|
|
+ String orderNo
|
|
|
+ ) {
|
|
|
+
|
|
|
+ double sumPayTax = 0;
|
|
|
+ double jqPremium = 0;
|
|
|
+ double syPremium = 0;
|
|
|
+ double jyPremium = 0;
|
|
|
+ String jqPolicyNo = null;
|
|
|
+ String syPolicyNo = null;
|
|
|
|
|
|
QuoteRespVo quoteRespVo = new QuoteRespVo();
|
|
|
// 交强险
|
|
|
QuotationResponse.DataDTO.TrafficPolicyDTO trafficPolicy = response.getData().getTrafficPolicy();
|
|
|
- double sumPayTax = Double.parseDouble(trafficPolicy.getVehicleTax().getTotalAmount());
|
|
|
- double jqPremium = Double.parseDouble(trafficPolicy.getPremium());
|
|
|
+ if (!ObjectUtils.isEmpty(trafficPolicy)) {
|
|
|
+ sumPayTax = Double.parseDouble(trafficPolicy.getVehicleTax().getTotalAmount());
|
|
|
+ jqPremium = Double.parseDouble(trafficPolicy.getPremium());
|
|
|
+ jqPolicyNo = response.getData().getTrafficPolicy().getPolicyNo();
|
|
|
+ }
|
|
|
// 交强
|
|
|
quoteRespVo.setStartDateJq(trafficPolicy.getStartDate());
|
|
|
quoteRespVo.setEndDateJq(trafficPolicy.getEndDate());
|
|
|
quoteRespVo.setJqApplyNo(trafficPolicy.getApplicationNo());
|
|
|
// 商业险
|
|
|
QuotationResponse.DataDTO.BusinessPolicyDTO businessPolicy = response.getData().getBusinessPolicy();
|
|
|
- double syPremium = Double.parseDouble(businessPolicy.getPremium());
|
|
|
- // 商业
|
|
|
- quoteRespVo.setStartDateSy(businessPolicy.getStartDate());
|
|
|
- quoteRespVo.setEndDateSy(businessPolicy.getEndDate());
|
|
|
- quoteRespVo.setSyApplyNo(businessPolicy.getApplicationNo());
|
|
|
- List<QuoteKindRespVo> kindList1 = new ArrayList<>();
|
|
|
- List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
|
|
|
+ if (!ObjectUtils.isEmpty(businessPolicy)) {
|
|
|
+ syPremium = Double.parseDouble(businessPolicy.getPremium());
|
|
|
+ syPolicyNo = response.getData().getBusinessPolicy().getPolicyNo();
|
|
|
+ // 商业
|
|
|
+ quoteRespVo.setStartDateSy(businessPolicy.getStartDate());
|
|
|
+ quoteRespVo.setEndDateSy(businessPolicy.getEndDate());
|
|
|
+ quoteRespVo.setSyApplyNo(businessPolicy.getApplicationNo());
|
|
|
+ List<QuotationResponse.DataDTO.BusinessPolicyDTO.CoveragesDTO> coverages = businessPolicy.getCoverages();
|
|
|
+ List<QuoteKindRespVo> kindList1 = new ArrayList<>();
|
|
|
+ // 商业险险种
|
|
|
+ QuoteKindRespVo kind;
|
|
|
+ List<KindInfoVo> kindList = yaQuoteInfoVo.getKindList();
|
|
|
+ for (KindInfoVo kindInfoVo : kindList) {
|
|
|
+ kind = new QuoteKindRespVo();
|
|
|
+ kind.setKindCode(kindInfoVo.getKindCode());
|
|
|
+ kind.setKindName(kindInfoVo.getKindName());
|
|
|
+
|
|
|
+ QuotationResponse.DataDTO.BusinessPolicyDTO.CoveragesDTO coveragesDTO = coverages.stream().filter(x -> {
|
|
|
+ Coverages c = Coverages.valueOf("C_" + kindInfoVo.getKindCode());
|
|
|
+ return c.getFuelOilCode().equals(x.getCoverageCode());
|
|
|
+ }).collect(Collectors.toList()).get(0);
|
|
|
+
|
|
|
+ kind.setAmount(kindInfoVo.getAmount());
|
|
|
+ kind.setCoveragePremium(Double.parseDouble(coveragesDTO.getPremium()));
|
|
|
+ kind.setUnitAmount(kindInfoVo.getUnitAmount());
|
|
|
+ kind.setServiceTimes(String.valueOf(kindInfoVo.getServiceTimes()));
|
|
|
+ if (!ObjectUtils.isEmpty(kindInfoVo.getDeductibleRate())) {
|
|
|
+ kind.setDeductibleRate(Double.parseDouble(kindInfoVo.getDeductibleRate()));
|
|
|
+ }
|
|
|
+ kindList1.add(kind);
|
|
|
+ }
|
|
|
+ quoteRespVo.setKindList(kindList1);
|
|
|
+ }
|
|
|
|
|
|
+ List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
|
|
|
// 非车险
|
|
|
- String premium = response.getData().getPremium();
|
|
|
- double jyPremium = StringUtils.isEmpty(premium) ? 0 : Double.parseDouble(premium);
|
|
|
-
|
|
|
+ QuotationResponse.DataDTO.UnAutoPremiumDTO unAutoPremium = response.getData().getUnAutoPremium();
|
|
|
+ if (!ObjectUtils.isEmpty(unAutoPremium)) {
|
|
|
+ jyPremium = StringUtils.isEmpty(unAutoPremium.getPremium()) ? 0 : Double.parseDouble(unAutoPremium.getPremium());
|
|
|
+ }
|
|
|
// 报价险种放入保费
|
|
|
List<QuoteRiskRespVo> riskList1 = QuoteRiskRespVo.toQuoteRiskRespVoList(riskList, jqPremium, syPremium);
|
|
|
|
|
|
- QuoteKindRespVo kind;
|
|
|
- List<QuotationResponse.DataDTO.BusinessPolicyDTO.CoveragesDTO> coverages = businessPolicy.getCoverages();
|
|
|
-
|
|
|
- // 商业险险种
|
|
|
- List<KindInfoVo> kindList = yaQuoteInfoVo.getKindList();
|
|
|
- for (KindInfoVo kindInfoVo : kindList) {
|
|
|
- kind = new QuoteKindRespVo();
|
|
|
- kind.setKindCode(kindInfoVo.getKindCode());
|
|
|
- kind.setKindName(kindInfoVo.getKindName());
|
|
|
-
|
|
|
- QuotationResponse.DataDTO.BusinessPolicyDTO.CoveragesDTO coveragesDTO = coverages.stream().filter(x -> {
|
|
|
- Coverages c = Coverages.valueOf("C_" + kindInfoVo.getKindCode());
|
|
|
- return c.getFuelOilCode().equals(x.getCoverageCode());
|
|
|
- }).collect(Collectors.toList()).get(0);
|
|
|
-
|
|
|
- kind.setAmount(kindInfoVo.getAmount());
|
|
|
- kind.setCoveragePremium(Double.parseDouble(coveragesDTO.getPremium()));
|
|
|
- kind.setUnitAmount(kindInfoVo.getUnitAmount());
|
|
|
- kind.setServiceTimes(String.valueOf(kindInfoVo.getServiceTimes()));
|
|
|
- if (!ObjectUtils.isEmpty(kindInfoVo.getDeductibleRate())) {
|
|
|
- kind.setDeductibleRate(Double.parseDouble(kindInfoVo.getDeductibleRate()));
|
|
|
- }
|
|
|
- kindList1.add(kind);
|
|
|
- }
|
|
|
-
|
|
|
quoteRespVo.setRiskList(riskList1);
|
|
|
- quoteRespVo.setKindList(kindList1);
|
|
|
quoteRespVo.setJqPremium(jqPremium);
|
|
|
quoteRespVo.setSyPremium(syPremium);
|
|
|
quoteRespVo.setTaxAmount(sumPayTax);
|
|
|
@@ -402,17 +409,18 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
quoteRespVo.setTotalAdjustRate(0);
|
|
|
quoteRespVo.setOrderno(yaQuoteInfoVo.getOrderNo()); //订单号
|
|
|
quoteRespVo.setCoreModels(vehicleModelsDTO.toCoreModelsVo());
|
|
|
- return quoteRespVo;
|
|
|
+ return responseOrder(response, quoteRespVo, ptlAgreementAttribution, orderNo, jqPolicyNo, syPolicyNo);
|
|
|
}
|
|
|
|
|
|
- public HttpResult<QuoteRespVo> responseOrder(QuotationResponse response, QuoteRespVo quoteRespVo,
|
|
|
- PtlAgreementAttribution ptlAgreementAttribution, String orderId) {
|
|
|
+ public HttpResult<QuoteRespVo> responseOrder(QuotationResponse response,
|
|
|
+ QuoteRespVo quoteRespVo,
|
|
|
+ PtlAgreementAttribution ptlAgreementAttribution,
|
|
|
+ String orderId,
|
|
|
+ String jqPolicyNo,
|
|
|
+ String syPolicyNo) {
|
|
|
// 保存订单信息
|
|
|
InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
|
|
|
- String jqPolicyNo = response.getData().getTrafficPolicy().getPolicyNo();
|
|
|
insAreaCompany.setJqappoint(jqPolicyNo);
|
|
|
-
|
|
|
- String syPolicyNo = response.getData().getBusinessPolicy().getPolicyNo();
|
|
|
insAreaCompany.setSyappoint(syPolicyNo);
|
|
|
|
|
|
// 渤海业务id
|