|
@@ -15,7 +15,6 @@ import com.ydtech.modules.ins.model.zm.ZmCarModel;
|
|
|
import com.ydtech.modules.order.components.ConfigureParametersComponents;
|
|
import com.ydtech.modules.order.components.ConfigureParametersComponents;
|
|
|
import com.ydtech.modules.order.components.ZhongmeiRequestApiComponents;
|
|
import com.ydtech.modules.order.components.ZhongmeiRequestApiComponents;
|
|
|
import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
|
|
import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
|
|
|
-import com.ydtech.modules.order.constants.OrderCacheConstant;
|
|
|
|
|
import com.ydtech.modules.order.convert.SimpleStadarCarDTOConvert;
|
|
import com.ydtech.modules.order.convert.SimpleStadarCarDTOConvert;
|
|
|
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;
|
|
@@ -24,6 +23,7 @@ import com.ydtech.modules.order.entity.api.zm.BaseRequestHead;
|
|
|
import com.ydtech.modules.order.entity.api.zm.constants.enums.AuditStatusEnum;
|
|
import com.ydtech.modules.order.entity.api.zm.constants.enums.AuditStatusEnum;
|
|
|
import com.ydtech.modules.order.entity.api.zm.constants.enums.DocumentTypeEnum;
|
|
import com.ydtech.modules.order.entity.api.zm.constants.enums.DocumentTypeEnum;
|
|
|
import com.ydtech.modules.order.entity.api.zm.constants.enums.PaymentStatusEnum;
|
|
import com.ydtech.modules.order.entity.api.zm.constants.enums.PaymentStatusEnum;
|
|
|
|
|
+import com.ydtech.modules.order.entity.api.zm.constants.enums.SubmitStatus;
|
|
|
import com.ydtech.modules.order.entity.api.zm.request.*;
|
|
import com.ydtech.modules.order.entity.api.zm.request.*;
|
|
|
import com.ydtech.modules.order.entity.api.zm.response.*;
|
|
import com.ydtech.modules.order.entity.api.zm.response.*;
|
|
|
import com.ydtech.modules.order.entity.config.ZmConfigureParameters;
|
|
import com.ydtech.modules.order.entity.config.ZmConfigureParameters;
|
|
@@ -41,14 +41,12 @@ import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
|
|
|
import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
|
|
import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
|
|
|
import com.ydtech.utils.CalculateUtils;
|
|
import com.ydtech.utils.CalculateUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.springframework.core.ParameterizedTypeReference;
|
|
import org.springframework.core.ParameterizedTypeReference;
|
|
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.ObjectUtils;
|
|
import org.springframework.util.ObjectUtils;
|
|
|
|
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
-import java.util.concurrent.TimeUnit;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@Service
|
|
@Service
|
|
@@ -66,20 +64,16 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
|
|
|
|
|
private final ZhongmeiRequestComponents zhongmeiRequestComponents;
|
|
private final ZhongmeiRequestComponents zhongmeiRequestComponents;
|
|
|
|
|
|
|
|
- private final StringRedisTemplate redisTemplate;
|
|
|
|
|
-
|
|
|
|
|
private final PtlAgreementAttributionService ptlAgreementAttributionService;
|
|
private final PtlAgreementAttributionService ptlAgreementAttributionService;
|
|
|
|
|
|
|
|
private final ConfigureParametersComponents configureParametersComponents;
|
|
private final ConfigureParametersComponents configureParametersComponents;
|
|
|
|
|
|
|
|
- public ZhongMeiOrderApiServiceImpl(InsOrdersService insOrdersService, InsAreaCompanyService insAreaCompanyService, InsTaskImagesService insTaskImagesService, ZhongmeiRequestApiComponents zhongmeiRequestApiComponents, ZhongmeiRequestComponents zhongmeiRequestComponents, StringRedisTemplate redisTemplate, ConfigureParametersComponents configureParametersComponents, PtlAgreementAttributionService ptlAgreementAttributionService) {
|
|
|
|
|
|
|
+ public ZhongMeiOrderApiServiceImpl(InsOrdersService insOrdersService, InsAreaCompanyService insAreaCompanyService, InsTaskImagesService insTaskImagesService, ZhongmeiRequestApiComponents zhongmeiRequestApiComponents, ZhongmeiRequestComponents zhongmeiRequestComponents, ConfigureParametersComponents configureParametersComponents, PtlAgreementAttributionService ptlAgreementAttributionService) {
|
|
|
this.insOrdersService = insOrdersService;
|
|
this.insOrdersService = insOrdersService;
|
|
|
this.insAreaCompanyService = insAreaCompanyService;
|
|
this.insAreaCompanyService = insAreaCompanyService;
|
|
|
this.insTaskImagesService = insTaskImagesService;
|
|
this.insTaskImagesService = insTaskImagesService;
|
|
|
this.zhongmeiRequestApiComponents = zhongmeiRequestApiComponents;
|
|
this.zhongmeiRequestApiComponents = zhongmeiRequestApiComponents;
|
|
|
this.zhongmeiRequestComponents = zhongmeiRequestComponents;
|
|
this.zhongmeiRequestComponents = zhongmeiRequestComponents;
|
|
|
- this.redisTemplate = redisTemplate;
|
|
|
|
|
-
|
|
|
|
|
this.configureParametersComponents = configureParametersComponents;
|
|
this.configureParametersComponents = configureParametersComponents;
|
|
|
this.ptlAgreementAttributionService = ptlAgreementAttributionService;
|
|
this.ptlAgreementAttributionService = ptlAgreementAttributionService;
|
|
|
}
|
|
}
|
|
@@ -131,6 +125,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
// 2. 查询车型
|
|
// 2. 查询车型
|
|
|
ModelsQueryRequest modelsQueryResponse = new ModelsQueryRequest();
|
|
ModelsQueryRequest modelsQueryResponse = new ModelsQueryRequest();
|
|
|
modelsQueryResponse.setModelName(carInfo.getModelcname());
|
|
modelsQueryResponse.setModelName(carInfo.getModelcname());
|
|
|
|
|
+ modelsQueryResponse.setBrand(carInfo.getBrandName());
|
|
|
modelsQueryResponse.setHead(baseRequestHead);
|
|
modelsQueryResponse.setHead(baseRequestHead);
|
|
|
List<ModelsQueryResponse.SimpleStadarCarDTO> simpleStadarCarDTOS = zhongmeiRequestApiComponents.modelQuery(modelsQueryResponse, ModelsQueryResponse.class);
|
|
List<ModelsQueryResponse.SimpleStadarCarDTO> simpleStadarCarDTOS = zhongmeiRequestApiComponents.modelQuery(modelsQueryResponse, ModelsQueryResponse.class);
|
|
|
|
|
|
|
@@ -147,14 +142,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
|
|
|
|
|
QuotedPriceResponse quotedPriceResponse = zhongmeiRequestApiComponents.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
|
|
QuotedPriceResponse quotedPriceResponse = zhongmeiRequestApiComponents.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
|
|
|
QuoteRespVo quoteRespVo = getQuoteRespVo(quotedPriceResponse, quoteInfo);
|
|
QuoteRespVo quoteRespVo = getQuoteRespVo(quotedPriceResponse, quoteInfo);
|
|
|
- // 4. 第一次提交核保 并且获取投保单号
|
|
|
|
|
- SubmitResponse response = submitForUnderwriting(quotedPriceResponse.getBusinessNo(), carInfo.getFrameNo(), quoteInfo.getPolicyHolderInfo(), zmConfigureParameters);
|
|
|
|
|
|
|
|
|
|
- // 5. 将错误的核保信息存入redis
|
|
|
|
|
- if (StringUtils.isEmpty(response.getProposalNo())) {
|
|
|
|
|
- redisTemplate.opsForValue().set(OrderCacheConstant.ZM_AUDIT_RETURN_MESSAGE + quoteRespVo.getCompanyId(), response.getHead().getReturnMessage(), OrderCacheConstant.ZM_AUDIT_RETURN_MESSAGE_TIME, TimeUnit.MINUTES);
|
|
|
|
|
- }
|
|
|
|
|
- return responseOrder(quotedPriceResponse, quoteRespVo, response, ptlAgreementAttribution);
|
|
|
|
|
|
|
+ return responseOrder(quotedPriceResponse, quoteRespVo, ptlAgreementAttribution);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -167,12 +156,12 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
|
|
InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
|
|
|
JSONObject ownerinfo = insOrders.getApplyinfo();
|
|
JSONObject ownerinfo = insOrders.getApplyinfo();
|
|
|
CustomerInfoVo customerInfoVo = JSON.toJavaObject(ownerinfo, CustomerInfoVo.class);
|
|
CustomerInfoVo customerInfoVo = JSON.toJavaObject(ownerinfo, CustomerInfoVo.class);
|
|
|
- // 2. 第二次 提交核保
|
|
|
|
|
|
|
+ // 2. 提交核保
|
|
|
SubmitResponse response = submitForUnderwriting(insAreaCompany.getId(), insOrders.getFrameno(), customerInfoVo, zmConfigureParameters);
|
|
SubmitResponse response = submitForUnderwriting(insAreaCompany.getId(), insOrders.getFrameno(), customerInfoVo, zmConfigureParameters);
|
|
|
// 3. 人工核保
|
|
// 3. 人工核保
|
|
|
- if (response.getHead().getReturnMessage().contains(InsuranceTypeCorrespondence.MANUAL_UNDERWRITING)) {
|
|
|
|
|
|
|
+ if (SubmitStatus.S_3.getCode().equals(response.getSubmitStatus())) {
|
|
|
insAreaCompany.setOrderstatus(InsOrderStatus.S_1.getCode());
|
|
insAreaCompany.setOrderstatus(InsOrderStatus.S_1.getCode());
|
|
|
- return HttpResult.error(response.getHead().getReturnMessage());
|
|
|
|
|
|
|
+ return HttpResult.error(response.getSubmitNotion());
|
|
|
}
|
|
}
|
|
|
zhongmeiRequestApiComponents.validationResults(response);
|
|
zhongmeiRequestApiComponents.validationResults(response);
|
|
|
// 4. 投保单号
|
|
// 4. 投保单号
|
|
@@ -194,16 +183,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
|
|
|
|
|
InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
|
|
InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
|
|
|
// 2. 投保单号(总)
|
|
// 2. 投保单号(总)
|
|
|
- String insOrderNo = insAreaCompany.getInsOrderNo();
|
|
|
|
|
- // 3. 没有投保单号
|
|
|
|
|
- if (StringUtils.isEmpty(insOrderNo)) {
|
|
|
|
|
- String s = redisTemplate.opsForValue().get(OrderCacheConstant.ZM_AUDIT_RETURN_MESSAGE + companyId);
|
|
|
|
|
- if (StringUtils.isEmpty(s)) {
|
|
|
|
|
- throw new SystemException("请重新报价,再核保。");
|
|
|
|
|
- } else {
|
|
|
|
|
- throw new SystemException(s);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ String insOrderNo = insAreaCompany.getId();
|
|
|
|
|
|
|
|
List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insOrders.getOrderno());
|
|
List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insOrders.getOrderno());
|
|
|
if (insTaskImagesBase64s.isEmpty()) {
|
|
if (insTaskImagesBase64s.isEmpty()) {
|
|
@@ -218,8 +198,6 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
@Override
|
|
@Override
|
|
|
public HttpResult<Object> underwritingCallback(CoverageRequest coverageRequest) {
|
|
public HttpResult<Object> underwritingCallback(CoverageRequest coverageRequest) {
|
|
|
try {
|
|
try {
|
|
|
- String s = JSON.toJSONString(coverageRequest);
|
|
|
|
|
- log.info("中煤承保回调参数------>{}", s);
|
|
|
|
|
if (coverageRequest.getStatus() == PaymentStatusEnum.P_2.getCode()) {
|
|
if (coverageRequest.getStatus() == PaymentStatusEnum.P_2.getCode()) {
|
|
|
// 主投保单号
|
|
// 主投保单号
|
|
|
String proposalNo = coverageRequest.getProposalNo();
|
|
String proposalNo = coverageRequest.getProposalNo();
|
|
@@ -241,8 +219,6 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
@Override
|
|
@Override
|
|
|
public HttpResult<Object> auditCallback(ApprovedRequest approvedRequest) {
|
|
public HttpResult<Object> auditCallback(ApprovedRequest approvedRequest) {
|
|
|
try {
|
|
try {
|
|
|
- String s = JSON.toJSONString(approvedRequest);
|
|
|
|
|
- log.info("中煤审核回调参数------>{}", s);
|
|
|
|
|
// 主投保单号
|
|
// 主投保单号
|
|
|
String contractNo = approvedRequest.getContractNo();
|
|
String contractNo = approvedRequest.getContractNo();
|
|
|
InsAreaCompany insAreaCompany = insAreaCompanyService.getByInsOrderNo(contractNo);
|
|
InsAreaCompany insAreaCompany = insAreaCompanyService.getByInsOrderNo(contractNo);
|
|
@@ -391,7 +367,9 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
quoteRespVo.setKindList(kindList1);
|
|
quoteRespVo.setKindList(kindList1);
|
|
|
quoteRespVo.setJqPremium(jqPremium);
|
|
quoteRespVo.setJqPremium(jqPremium);
|
|
|
quoteRespVo.setSyPremium(syPremium);
|
|
quoteRespVo.setSyPremium(syPremium);
|
|
|
- double sumPayTax = quotedPriceResponse.getTaxinfo().getSumPayTax();
|
|
|
|
|
|
|
+ QuotedPriceResponse.TaxinfoDTO taxinfo = quotedPriceResponse.getTaxinfo();
|
|
|
|
|
+
|
|
|
|
|
+ double sumPayTax = ObjectUtils.isEmpty(taxinfo) ? 0 : taxinfo.getSumPayTax();
|
|
|
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.setTaxAmount(sumPayTax);//车船税
|
|
quoteRespVo.setTaxAmount(sumPayTax);//车船税
|
|
@@ -402,14 +380,14 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
return quoteRespVo;
|
|
return quoteRespVo;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public HttpResult<QuoteRespVo> responseOrder(QuotedPriceResponse quotedPriceResponse, QuoteRespVo quoteRespVo, SubmitResponse submitResponse, PtlAgreementAttribution ptlAgreementAttribution) {
|
|
|
|
|
|
|
+ public HttpResult<QuoteRespVo> responseOrder(QuotedPriceResponse quotedPriceResponse, QuoteRespVo quoteRespVo, PtlAgreementAttribution ptlAgreementAttribution) {
|
|
|
//保存订单信息
|
|
//保存订单信息
|
|
|
InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
|
|
InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
|
|
|
insAreaCompany.setId(quotedPriceResponse.getBusinessNo());
|
|
insAreaCompany.setId(quotedPriceResponse.getBusinessNo());
|
|
|
// 协议id
|
|
// 协议id
|
|
|
- insAreaCompany.setJqapplyno(submitResponse.getForceProposalNo());
|
|
|
|
|
- insAreaCompany.setSyapplyno(submitResponse.getBizProposalNo());
|
|
|
|
|
- insAreaCompany.setInsOrderNo(submitResponse.getProposalNo());
|
|
|
|
|
|
|
+// insAreaCompany.setJqapplyno(submitResponse.getForceProposalNo());
|
|
|
|
|
+// insAreaCompany.setSyapplyno(submitResponse.getBizProposalNo());
|
|
|
|
|
+// insAreaCompany.setInsOrderNo(quotedPriceResponse.getBusinessNo());
|
|
|
// 车船税
|
|
// 车船税
|
|
|
TaxArrears taxArrears = new TaxArrears("往年欠税", quotedPriceResponse.getTaxinfo().getPrePayTax(), quotedPriceResponse.getTaxinfo().getDelayPayTax());
|
|
TaxArrears taxArrears = new TaxArrears("往年欠税", quotedPriceResponse.getTaxinfo().getPrePayTax(), quotedPriceResponse.getTaxinfo().getDelayPayTax());
|
|
|
List<TaxArrears> taxArrearsList = Collections.singletonList(taxArrears);
|
|
List<TaxArrears> taxArrearsList = Collections.singletonList(taxArrears);
|