|
@@ -16,6 +16,7 @@ import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
|
|
|
import com.ydtech.modules.order.entity.InsAreaCompany;
|
|
import com.ydtech.modules.order.entity.InsAreaCompany;
|
|
|
import com.ydtech.modules.order.entity.InsOrders;
|
|
import com.ydtech.modules.order.entity.InsOrders;
|
|
|
import com.ydtech.modules.order.entity.api.zj.constants.enums.ResultEnum;
|
|
import com.ydtech.modules.order.entity.api.zj.constants.enums.ResultEnum;
|
|
|
|
|
+import com.ydtech.modules.order.entity.api.zj.constants.enums.RiskCodeEnum;
|
|
|
import com.ydtech.modules.order.entity.api.zj.request.*;
|
|
import com.ydtech.modules.order.entity.api.zj.request.*;
|
|
|
import com.ydtech.modules.order.entity.api.zj.response.*;
|
|
import com.ydtech.modules.order.entity.api.zj.response.*;
|
|
|
import com.ydtech.modules.order.entity.config.ZjConfigureParameters;
|
|
import com.ydtech.modules.order.entity.config.ZjConfigureParameters;
|
|
@@ -36,6 +37,7 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.http.HttpHeaders;
|
|
import org.springframework.http.HttpHeaders;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
@@ -115,9 +117,11 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
|
|
|
// 4. 报价
|
|
// 4. 报价
|
|
|
CalculatePremiumRequest calculatePremiumRequest
|
|
CalculatePremiumRequest calculatePremiumRequest
|
|
|
= new CalculatePremiumRequest(quoteInfoVo, vehicleModelInfosDTO, queryActualValueResponse.getActualValue(), quoteVo.getAccidentalDrivingVo(), zjConfigureParameters, modelQueryResponse);
|
|
= new CalculatePremiumRequest(quoteInfoVo, vehicleModelInfosDTO, queryActualValueResponse.getActualValue(), quoteVo.getAccidentalDrivingVo(), zjConfigureParameters, modelQueryResponse);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
CalculatePremiumResponse calculatePremiumResponse = zijinRequestApiComponents.calculatePremium(calculatePremiumRequest, httpHeaders);
|
|
CalculatePremiumResponse calculatePremiumResponse = zijinRequestApiComponents.calculatePremium(calculatePremiumRequest, httpHeaders);
|
|
|
QuoteRespVo quoteRespVo = getQuoteRespVo(calculatePremiumResponse, quoteInfoVo);
|
|
QuoteRespVo quoteRespVo = getQuoteRespVo(calculatePremiumResponse, quoteInfoVo);
|
|
|
- return responseOrder(calculatePremiumResponse, quoteRespVo, ptlAgreementAttribution);
|
|
|
|
|
|
|
+ return responseOrder(calculatePremiumResponse, quoteRespVo, ptlAgreementAttribution, modelQueryResponse.getOrderId(), modelQueryResponse.getOrderNo());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -125,23 +129,39 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
|
|
|
InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
|
|
InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
|
|
|
|
|
|
|
|
// 1 通过 协议id获取配置实体
|
|
// 1 通过 协议id获取配置实体
|
|
|
- HttpHeaders httpHeaders = zijinRequestApiComponents.getHttpHeaders(insAreaCompany.getAgreementId());
|
|
|
|
|
|
|
+ PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(insAreaCompany.getAgreementId());
|
|
|
|
|
+ ZjConfigureParameters zjConfigureParameters = configureParametersComponents.toEntity(ZjConfigureParameters.class, ptlAgreementAttribution);
|
|
|
|
|
+ HttpHeaders httpHeaders = zijinRequestApiComponents.getHttpHeaders(zjConfigureParameters, ZijinRequestApiComponents.RECURSIVE_HIERARCHY);
|
|
|
|
|
|
|
|
- // 2 提交核保
|
|
|
|
|
- SubmitVerifyRequest submitVerifyRequest = new SubmitVerifyRequest(insAreaCompany.getInsOrderNo());
|
|
|
|
|
|
|
+ // 2 查询特约
|
|
|
|
|
+ QueryClauseDataRequest queryClauseDataRequest = new QueryClauseDataRequest();
|
|
|
|
|
+ queryClauseDataRequest.setOrderId(insAreaCompany.getInsOrderNo());
|
|
|
|
|
+ if (insAreaCompany.getJqpremium().intValue() != 0) {
|
|
|
|
|
+ queryClauseDataRequest.setRiskCode(RiskCodeEnum.RC_0590.getCode());
|
|
|
|
|
+ zijinRequestApiComponents.queryClauseData(queryClauseDataRequest, httpHeaders);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (insAreaCompany.getSypremium().intValue() != 0) {
|
|
|
|
|
+ queryClauseDataRequest.setRiskCode(RiskCodeEnum.RC_050A.getCode());
|
|
|
|
|
+ zijinRequestApiComponents.queryClauseData(queryClauseDataRequest, httpHeaders);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 3 提交核保
|
|
|
|
|
+ SubmitVerifyRequest submitVerifyRequest = new SubmitVerifyRequest(insAreaCompany.getInsOrderNo(), insAreaCompany.getId());
|
|
|
SubmitVerifyResponse submitVerifyResponse = zijinRequestApiComponents.submitVerify(submitVerifyRequest, httpHeaders);
|
|
SubmitVerifyResponse submitVerifyResponse = zijinRequestApiComponents.submitVerify(submitVerifyRequest, httpHeaders);
|
|
|
SubmitVerifyResponse.SubmitVerifyInfoDTO submitVerifyInfo = submitVerifyResponse.getSubmitVerifyInfo();
|
|
SubmitVerifyResponse.SubmitVerifyInfoDTO submitVerifyInfo = submitVerifyResponse.getSubmitVerifyInfo();
|
|
|
|
|
|
|
|
- // 2.1 保单号
|
|
|
|
|
|
|
+ // 3.1 保单号
|
|
|
insAreaCompany.setJqpolicyno(submitVerifyInfo.getPolicyNoCI());
|
|
insAreaCompany.setJqpolicyno(submitVerifyInfo.getPolicyNoCI());
|
|
|
insAreaCompany.setSypolicyno(submitVerifyInfo.getPolicyNo());
|
|
insAreaCompany.setSypolicyno(submitVerifyInfo.getPolicyNo());
|
|
|
- // 2.2 投保单号
|
|
|
|
|
|
|
+ // 3.2 投保单号
|
|
|
insAreaCompany.setJqapplyno(submitVerifyInfo.getProposalNoCI());
|
|
insAreaCompany.setJqapplyno(submitVerifyInfo.getProposalNoCI());
|
|
|
insAreaCompany.setSyapplyno(submitVerifyInfo.getProposalNo());
|
|
insAreaCompany.setSyapplyno(submitVerifyInfo.getProposalNo());
|
|
|
insAreaCompany.setOrderstatus(InsOrderStatus.S_2.getCode());
|
|
insAreaCompany.setOrderstatus(InsOrderStatus.S_2.getCode());
|
|
|
|
|
|
|
|
// 3. 聚合支付服务
|
|
// 3. 聚合支付服务
|
|
|
- ZbfAggregatePayRequest zbfAggregatePayRequest = new ZbfAggregatePayRequest();
|
|
|
|
|
|
|
+ BigDecimal multiply = insAreaCompany.getSumpremium().multiply(new BigDecimal(100));
|
|
|
|
|
+ ZbfAggregatePayRequest zbfAggregatePayRequest = new ZbfAggregatePayRequest(String.valueOf(multiply.intValue()), zjConfigureParameters.getAppKey(), insAreaCompany.getId());
|
|
|
ZbfAggregatePayResponse zbfAggregatePayResponse = zijinRequestApiComponents.zbfAggregatePay(zbfAggregatePayRequest, httpHeaders);
|
|
ZbfAggregatePayResponse zbfAggregatePayResponse = zijinRequestApiComponents.zbfAggregatePay(zbfAggregatePayRequest, httpHeaders);
|
|
|
insAreaCompany.setPaymentLink(zbfAggregatePayResponse.getPayUrl());
|
|
insAreaCompany.setPaymentLink(zbfAggregatePayResponse.getPayUrl());
|
|
|
insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
|
|
insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
|
|
@@ -165,7 +185,7 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
|
|
|
List<UploadImageInfoListRequest.ItemFileDataListDTO> itemFileDataListDTOS = new ArrayList<>();
|
|
List<UploadImageInfoListRequest.ItemFileDataListDTO> itemFileDataListDTOS = new ArrayList<>();
|
|
|
|
|
|
|
|
for (InsTaskImagesBase64 insTaskImagesBase64 : insTaskImagesBase64s) {
|
|
for (InsTaskImagesBase64 insTaskImagesBase64 : insTaskImagesBase64s) {
|
|
|
- UploadFileRequest uploadImageRequest = new UploadFileRequest(insTaskImagesBase64);
|
|
|
|
|
|
|
+ UploadFileRequest uploadImageRequest = new UploadFileRequest(insTaskImagesBase64, insAreaCompany.getId());
|
|
|
// 文件上传
|
|
// 文件上传
|
|
|
UploadFileResponse uploadFileResponse = zijinRequestApiComponents.uploadFile(uploadImageRequest, httpHeaders);
|
|
UploadFileResponse uploadFileResponse = zijinRequestApiComponents.uploadFile(uploadImageRequest, httpHeaders);
|
|
|
// 文件信息与订单关联 itemFileDataList
|
|
// 文件信息与订单关联 itemFileDataList
|
|
@@ -234,7 +254,6 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
|
|
|
double sumPayTax = 0;
|
|
double sumPayTax = 0;
|
|
|
List<CalculatePremiumResponse.PlanListDTO> planList = calculatePremiumResponse.getPlanList();
|
|
List<CalculatePremiumResponse.PlanListDTO> planList = calculatePremiumResponse.getPlanList();
|
|
|
QuoteRespVo quoteRespVo = new QuoteRespVo();
|
|
QuoteRespVo quoteRespVo = new QuoteRespVo();
|
|
|
- quoteRespVo.setCompanyId(quoteRespVo.getCompanyId());
|
|
|
|
|
|
|
|
|
|
for (CalculatePremiumResponse.PlanListDTO planListDTO : planList) {
|
|
for (CalculatePremiumResponse.PlanListDTO planListDTO : planList) {
|
|
|
switch (planListDTO.getRiskCode()) {
|
|
switch (planListDTO.getRiskCode()) {
|
|
@@ -284,6 +303,7 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
|
|
|
quoteRespVo.setKindList(kindList1);
|
|
quoteRespVo.setKindList(kindList1);
|
|
|
quoteRespVo.setJqPremium(jqPremium);
|
|
quoteRespVo.setJqPremium(jqPremium);
|
|
|
quoteRespVo.setSyPremium(syPremium);
|
|
quoteRespVo.setSyPremium(syPremium);
|
|
|
|
|
+ quoteRespVo.setTaxAmount(sumPayTax);
|
|
|
quoteRespVo.setCiSumPermium(CalculateUtils.add(jqPremium, sumPayTax));//交强险和车船税合计
|
|
quoteRespVo.setCiSumPermium(CalculateUtils.add(jqPremium, sumPayTax));//交强险和车船税合计
|
|
|
quoteRespVo.setSumPermium(CalculateUtils.add(jqPremium, syPremium, sumPayTax));//保费合计
|
|
quoteRespVo.setSumPermium(CalculateUtils.add(jqPremium, syPremium, sumPayTax));//保费合计
|
|
|
quoteRespVo.setTotalAdjustRate(0);
|
|
quoteRespVo.setTotalAdjustRate(0);
|
|
@@ -291,14 +311,17 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
|
|
|
return quoteRespVo;
|
|
return quoteRespVo;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public HttpResult<QuoteRespVo> responseOrder(CalculatePremiumResponse calculatePremiumResponse, QuoteRespVo quoteRespVo, PtlAgreementAttribution ptlAgreementAttribution) {
|
|
|
|
|
|
|
+ public HttpResult<QuoteRespVo> responseOrder(CalculatePremiumResponse calculatePremiumResponse, QuoteRespVo quoteRespVo, PtlAgreementAttribution ptlAgreementAttribution, String orderId, String orderNo) {
|
|
|
// 保存订单信息
|
|
// 保存订单信息
|
|
|
InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
|
|
InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
|
|
|
// 协议id
|
|
// 协议id
|
|
|
|
|
+ insAreaCompany.setId(orderNo);
|
|
|
insAreaCompany.setReptxt(JSON.parseObject(JSON.toJSONString(calculatePremiumResponse)));
|
|
insAreaCompany.setReptxt(JSON.parseObject(JSON.toJSONString(calculatePremiumResponse)));
|
|
|
insAreaCompany.setOrderstatus(InsOrderStatus.S_0.getCode());
|
|
insAreaCompany.setOrderstatus(InsOrderStatus.S_0.getCode());
|
|
|
|
|
+ insAreaCompany.setInsOrderNo(orderId);
|
|
|
insAreaCompanyService.insertCompanyAndOrders(insAreaCompany);
|
|
insAreaCompanyService.insertCompanyAndOrders(insAreaCompany);
|
|
|
- quoteRespVo.setCompanyId(insAreaCompany.getId());
|
|
|
|
|
|
|
+ quoteRespVo.setCompanyId(orderNo);
|
|
|
|
|
+
|
|
|
return HttpResult.ok("报价成功", quoteRespVo);
|
|
return HttpResult.ok("报价成功", quoteRespVo);
|
|
|
}
|
|
}
|
|
|
|
|
|