|
@@ -5,22 +5,21 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.ydtech.components.ZhongmeiRequestComponents;
|
|
import com.ydtech.components.ZhongmeiRequestComponents;
|
|
|
import com.ydtech.constants.enums.InsOrderStatus;
|
|
import com.ydtech.constants.enums.InsOrderStatus;
|
|
|
|
|
+import com.ydtech.constants.enums.InsuranceRisk;
|
|
|
import com.ydtech.core.page.HttpResult;
|
|
import com.ydtech.core.page.HttpResult;
|
|
|
import com.ydtech.exception.SystemException;
|
|
import com.ydtech.exception.SystemException;
|
|
|
-import com.ydtech.modules.esm.model.EsmInsCompany;
|
|
|
|
|
-import com.ydtech.modules.esm.service.EsmInsCompanyService;
|
|
|
|
|
import com.ydtech.modules.ins.model.request.Response;
|
|
import com.ydtech.modules.ins.model.request.Response;
|
|
|
import com.ydtech.modules.ins.model.vo.*;
|
|
import com.ydtech.modules.ins.model.vo.*;
|
|
|
import com.ydtech.modules.ins.model.ya.CarModelDTO;
|
|
import com.ydtech.modules.ins.model.ya.CarModelDTO;
|
|
|
import com.ydtech.modules.ins.model.zm.ZmCarModel;
|
|
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.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;
|
|
|
import com.ydtech.modules.order.entity.TaxArrears;
|
|
import com.ydtech.modules.order.entity.TaxArrears;
|
|
|
import com.ydtech.modules.order.entity.api.zm.BaseRequestHead;
|
|
import com.ydtech.modules.order.entity.api.zm.BaseRequestHead;
|
|
|
-import com.ydtech.modules.order.entity.api.zm.constants.InsuranceTypeCorrespondence;
|
|
|
|
|
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;
|
|
@@ -41,13 +40,11 @@ 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.apache.commons.lang3.StringUtils;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
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.math.BigDecimal;
|
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -67,7 +64,6 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
|
|
|
|
|
private final ZhongmeiRequestApiComponents zhongmeiRequestApiComponents;
|
|
private final ZhongmeiRequestApiComponents zhongmeiRequestApiComponents;
|
|
|
|
|
|
|
|
- private final EsmInsCompanyService esmInsCompanyService;
|
|
|
|
|
|
|
|
|
|
private final ZhongmeiRequestComponents zhongmeiRequestComponents;
|
|
private final ZhongmeiRequestComponents zhongmeiRequestComponents;
|
|
|
|
|
|
|
@@ -77,12 +73,11 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
|
|
|
|
|
private final ConfigureParametersComponents configureParametersComponents;
|
|
private final ConfigureParametersComponents configureParametersComponents;
|
|
|
|
|
|
|
|
- public ZhongMeiOrderApiServiceImpl(InsOrdersService insOrdersService, InsAreaCompanyService insAreaCompanyService, InsTaskImagesService insTaskImagesService, ZhongmeiRequestApiComponents zhongmeiRequestApiComponents, EsmInsCompanyService esmInsCompanyService, ZhongmeiRequestComponents zhongmeiRequestComponents, StringRedisTemplate redisTemplate, ConfigureParametersComponents configureParametersComponents, PtlAgreementAttributionService ptlAgreementAttributionService) {
|
|
|
|
|
|
|
+ public ZhongMeiOrderApiServiceImpl(InsOrdersService insOrdersService, InsAreaCompanyService insAreaCompanyService, InsTaskImagesService insTaskImagesService, ZhongmeiRequestApiComponents zhongmeiRequestApiComponents, ZhongmeiRequestComponents zhongmeiRequestComponents, StringRedisTemplate redisTemplate, 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.esmInsCompanyService = esmInsCompanyService;
|
|
|
|
|
this.zhongmeiRequestComponents = zhongmeiRequestComponents;
|
|
this.zhongmeiRequestComponents = zhongmeiRequestComponents;
|
|
|
this.redisTemplate = redisTemplate;
|
|
this.redisTemplate = redisTemplate;
|
|
|
|
|
|
|
@@ -130,9 +125,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(agreementId);
|
|
PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(agreementId);
|
|
|
ZmConfigureParameters zmConfigureParameters = new ZmConfigureParameters();
|
|
ZmConfigureParameters zmConfigureParameters = new ZmConfigureParameters();
|
|
|
configureParametersComponents.toEntity(zmConfigureParameters, ptlAgreementAttribution);
|
|
configureParametersComponents.toEntity(zmConfigureParameters, ptlAgreementAttribution);
|
|
|
-
|
|
|
|
|
BaseRequestHead baseRequestHead = new BaseRequestHead(zmConfigureParameters);
|
|
BaseRequestHead baseRequestHead = new BaseRequestHead(zmConfigureParameters);
|
|
|
- EsmInsCompany esmInsCompany = esmInsCompanyService.getById(zmQuoteVo.getCompanyId());
|
|
|
|
|
|
|
|
|
|
CarInfoVo carInfo = quoteInfo.getCarInfo();
|
|
CarInfoVo carInfo = quoteInfo.getCarInfo();
|
|
|
// 2. 查询车型
|
|
// 2. 查询车型
|
|
@@ -155,9 +148,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
simpleStadarCarDTOS = stadarCarDTOS;
|
|
simpleStadarCarDTOS = stadarCarDTOS;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- simpleStadarCarDTOS = simpleStadarCarDTOS.stream()
|
|
|
|
|
- .filter(car -> carInfo.getPurchasePrice().equals(String.valueOf(car.getPurchasePrice())))
|
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
|
|
+ simpleStadarCarDTOS = simpleStadarCarDTOS.stream().filter(car -> carInfo.getPurchasePrice().equals(String.valueOf(car.getPurchasePrice()))).collect(Collectors.toList());
|
|
|
|
|
|
|
|
if (simpleStadarCarDTOS.isEmpty()) {
|
|
if (simpleStadarCarDTOS.isEmpty()) {
|
|
|
simpleStadarCarDTOS = stadarCarDTOS;
|
|
simpleStadarCarDTOS = stadarCarDTOS;
|
|
@@ -177,7 +168,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
if (StringUtils.isEmpty(response.getProposalNo())) {
|
|
if (StringUtils.isEmpty(response.getProposalNo())) {
|
|
|
redisTemplate.opsForValue().set(ZM_AUDIT_RETURN_MESSAGE + quoteRespVo.getCompanyId(), response.getHead().getReturnMessage(), ZM_AUDIT_RETURN_MESSAGE_TIME, TimeUnit.MINUTES);
|
|
redisTemplate.opsForValue().set(ZM_AUDIT_RETURN_MESSAGE + quoteRespVo.getCompanyId(), response.getHead().getReturnMessage(), ZM_AUDIT_RETURN_MESSAGE_TIME, TimeUnit.MINUTES);
|
|
|
}
|
|
}
|
|
|
- return responseOrder(quotedPriceResponse, quoteRespVo, esmInsCompany, response, agreementId, ptlAgreementAttribution.getApiType());
|
|
|
|
|
|
|
+ return responseOrder(quotedPriceResponse, quoteRespVo, response, ptlAgreementAttribution);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -323,9 +314,9 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
String policyNo;
|
|
String policyNo;
|
|
|
String code = DocumentTypeEnum.code(policyPrintVo.getType());
|
|
String code = DocumentTypeEnum.code(policyPrintVo.getType());
|
|
|
String riskCode = policyPrintVo.getRiskCode();
|
|
String riskCode = policyPrintVo.getRiskCode();
|
|
|
- if (InsuranceTypeCorrespondence.TRAFFIC.equals(riskCode)) {
|
|
|
|
|
|
|
+ if (InsuranceRisk.TRAFFIC.getCode().equals(riskCode)) {
|
|
|
policyNo = insAreaCompany.getJqpolicyno();
|
|
policyNo = insAreaCompany.getJqpolicyno();
|
|
|
- } else if (InsuranceTypeCorrespondence.BUSINESS.equals(riskCode)) {
|
|
|
|
|
|
|
+ } else if (InsuranceRisk.BUSINESS.getCode().equals(riskCode)) {
|
|
|
policyNo = insAreaCompany.getJqpolicyno();
|
|
policyNo = insAreaCompany.getJqpolicyno();
|
|
|
} else {
|
|
} else {
|
|
|
throw new SystemException("险种代码不存在");
|
|
throw new SystemException("险种代码不存在");
|
|
@@ -352,17 +343,13 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
SubmitRequest submitRequest = new SubmitRequest();
|
|
SubmitRequest submitRequest = new SubmitRequest();
|
|
|
submitRequest.setOrderNo(orderNo);
|
|
submitRequest.setOrderNo(orderNo);
|
|
|
submitRequest.setVin(frameNo);
|
|
submitRequest.setVin(frameNo);
|
|
|
- SubmitRequest.DeliveryInfoDTO deliveryInfoDTO = new SubmitRequest.DeliveryInfoDTO(
|
|
|
|
|
- customerInfoVo.getName(),
|
|
|
|
|
- customerInfoVo.getMobile(),
|
|
|
|
|
|
|
+ SubmitRequest.DeliveryInfoDTO deliveryInfoDTO = new SubmitRequest.DeliveryInfoDTO(customerInfoVo.getName(), customerInfoVo.getMobile(),
|
|
|
// 省
|
|
// 省
|
|
|
zmConfigureParameters.getProvince(),
|
|
zmConfigureParameters.getProvince(),
|
|
|
// 市
|
|
// 市
|
|
|
zmConfigureParameters.getCity(),
|
|
zmConfigureParameters.getCity(),
|
|
|
// 县
|
|
// 县
|
|
|
- zmConfigureParameters.getDistrict(),
|
|
|
|
|
- customerInfoVo.getAddr()
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ zmConfigureParameters.getDistrict(), customerInfoVo.getAddr());
|
|
|
submitRequest.setDeliveryInfo(deliveryInfoDTO);
|
|
submitRequest.setDeliveryInfo(deliveryInfoDTO);
|
|
|
submitRequest.setHead(new BaseRequestHead(zmConfigureParameters));
|
|
submitRequest.setHead(new BaseRequestHead(zmConfigureParameters));
|
|
|
return zhongmeiRequestApiComponents.submit(submitRequest, SubmitResponse.class);
|
|
return zhongmeiRequestApiComponents.submit(submitRequest, SubmitResponse.class);
|
|
@@ -380,33 +367,13 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
QuoteRespVo quoteRespVo = new QuoteRespVo();
|
|
QuoteRespVo quoteRespVo = new QuoteRespVo();
|
|
|
- List<QuoteRiskRespVo> riskList1 = new ArrayList<>();
|
|
|
|
|
- List<QuoteKindRespVo> kindList1 = new ArrayList<>();
|
|
|
|
|
|
|
+
|
|
|
List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
|
|
List<RiskInfoVo> riskList = yaQuoteInfoVo.getRiskList();
|
|
|
- for (RiskInfoVo riskInfoVo : riskList) {
|
|
|
|
|
- if ("0507".equals(riskInfoVo.getRiskCode()) && jqPremium != 0) {
|
|
|
|
|
- QuoteRiskRespVo risk = new QuoteRiskRespVo();
|
|
|
|
|
- risk.setRiskCode("0507");
|
|
|
|
|
- risk.setRiskName("机动车交通事故责任强制保险");
|
|
|
|
|
- risk.setPremium(jqPremium);
|
|
|
|
|
- risk.setStartDate(riskInfoVo.getStartDate());
|
|
|
|
|
- risk.setEndDate(riskInfoVo.getEndDate());
|
|
|
|
|
- riskList1.add(risk);
|
|
|
|
|
- }
|
|
|
|
|
- if ("0510".equals(riskInfoVo.getRiskCode()) && syPremium != 0) {
|
|
|
|
|
- QuoteRiskRespVo risk = new QuoteRiskRespVo();
|
|
|
|
|
- risk.setRiskCode("0510");
|
|
|
|
|
- risk.setRiskName("机动车商业保险");
|
|
|
|
|
- risk.setPremium(syPremium);
|
|
|
|
|
- risk.setStartDate(riskInfoVo.getStartDate());
|
|
|
|
|
- risk.setEndDate(riskInfoVo.getEndDate());
|
|
|
|
|
- riskList1.add(risk);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ List<QuoteRiskRespVo> riskList1 = QuoteRiskRespVo.toQuoteRiskRespVoList(riskList, jqPremium, syPremium);
|
|
|
|
|
|
|
|
|
|
+ List<QuoteKindRespVo> kindList1 = new ArrayList<>();
|
|
|
QuoteKindRespVo kind;
|
|
QuoteKindRespVo kind;
|
|
|
List<QuotedPriceResponse.BizPremiumDTO.CoverageListDTO> coverageList;
|
|
List<QuotedPriceResponse.BizPremiumDTO.CoverageListDTO> coverageList;
|
|
|
-
|
|
|
|
|
if (!ObjectUtils.isEmpty(quotedPriceResponse.getBizPremium())) {
|
|
if (!ObjectUtils.isEmpty(quotedPriceResponse.getBizPremium())) {
|
|
|
coverageList = quotedPriceResponse.getBizPremium().getCoverageList();
|
|
coverageList = quotedPriceResponse.getBizPremium().getCoverageList();
|
|
|
List<KindInfoVo> kindList = yaQuoteInfoVo.getKindList();
|
|
List<KindInfoVo> kindList = yaQuoteInfoVo.getKindList();
|
|
@@ -417,9 +384,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
kind.setAmount(kindInfoVo.getAmount());
|
|
kind.setAmount(kindInfoVo.getAmount());
|
|
|
int i = ArrayUtil.indexOf(InsuranceTypeCorrespondence.getJinZhangGuiType(), kindInfoVo.getKindCode());
|
|
int i = ArrayUtil.indexOf(InsuranceTypeCorrespondence.getJinZhangGuiType(), kindInfoVo.getKindCode());
|
|
|
|
|
|
|
|
- QuotedPriceResponse.BizPremiumDTO.CoverageListDTO coverageListDTOS = coverageList.stream().filter(
|
|
|
|
|
- a -> a.getKindCode().equals(InsuranceTypeCorrespondence.getConnectInsuranceType()[i]))
|
|
|
|
|
- .collect(Collectors.toList()).get(0);
|
|
|
|
|
|
|
+ QuotedPriceResponse.BizPremiumDTO.CoverageListDTO coverageListDTOS = coverageList.stream().filter(a -> a.getKindCode().equals(InsuranceTypeCorrespondence.getZmConnectInsuranceType()[i])).collect(Collectors.toList()).get(0);
|
|
|
|
|
|
|
|
kind.setCoveragePremium(coverageListDTOS.getPremium());
|
|
kind.setCoveragePremium(coverageListDTOS.getPremium());
|
|
|
kind.setUnitAmount(kindInfoVo.getUnitAmount());
|
|
kind.setUnitAmount(kindInfoVo.getUnitAmount());
|
|
@@ -445,30 +410,14 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
return quoteRespVo;
|
|
return quoteRespVo;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public HttpResult<QuoteRespVo> responseOrder(QuotedPriceResponse quotedPriceResponse, QuoteRespVo quoteRespVo, EsmInsCompany esmInsCompanies, SubmitResponse submitResponse, String agreementId, Integer apiType) {
|
|
|
|
|
|
|
+ public HttpResult<QuoteRespVo> responseOrder(QuotedPriceResponse quotedPriceResponse, QuoteRespVo quoteRespVo, SubmitResponse submitResponse, PtlAgreementAttribution ptlAgreementAttribution) {
|
|
|
//保存订单信息
|
|
//保存订单信息
|
|
|
- String orderNo = quoteRespVo.getOrderno();
|
|
|
|
|
- InsAreaCompany insAreaCompany = new InsAreaCompany();
|
|
|
|
|
-
|
|
|
|
|
|
|
+ InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
|
|
|
insAreaCompany.setId(quotedPriceResponse.getOrderNo());
|
|
insAreaCompany.setId(quotedPriceResponse.getOrderNo());
|
|
|
- insAreaCompany.setOrderno(orderNo);
|
|
|
|
|
|
|
|
|
|
// 协议id
|
|
// 协议id
|
|
|
- insAreaCompany.setAgreementId(agreementId);
|
|
|
|
|
- insAreaCompany.setApiType(apiType);
|
|
|
|
|
-
|
|
|
|
|
- insAreaCompany.setReptxt(JSON.parseObject(JSON.toJSONString(quotedPriceResponse)));
|
|
|
|
|
- insAreaCompany.setJqpremium(BigDecimal.valueOf(quoteRespVo.getJqPremium()));
|
|
|
|
|
- insAreaCompany.setSypremium(BigDecimal.valueOf(quoteRespVo.getSyPremium()));
|
|
|
|
|
- insAreaCompany.setTaxamount(BigDecimal.valueOf(quoteRespVo.getTaxAmount()));
|
|
|
|
|
- insAreaCompany.setSumpremium(BigDecimal.valueOf(quoteRespVo.getSumPermium()));
|
|
|
|
|
- insAreaCompany.setOrderstatus(InsOrderStatus.S_0.getCode()); // "1"
|
|
|
|
|
- insAreaCompany.setRiskinfo(JSON.parseArray(JSON.toJSONString(quoteRespVo.getRiskList())));
|
|
|
|
|
- insAreaCompany.setKindinfo(JSON.parseArray(JSON.toJSONString(quoteRespVo.getKindList())));
|
|
|
|
|
insAreaCompany.setJqapplyno(submitResponse.getForceProposalNo());
|
|
insAreaCompany.setJqapplyno(submitResponse.getForceProposalNo());
|
|
|
insAreaCompany.setSyapplyno(submitResponse.getBizProposalNo());
|
|
insAreaCompany.setSyapplyno(submitResponse.getBizProposalNo());
|
|
|
- insAreaCompany.setCompanyId(esmInsCompanies.getId());
|
|
|
|
|
- insAreaCompany.setInscompany(esmInsCompanies.getNamesimple());
|
|
|
|
|
insAreaCompany.setInsOrderNo(submitResponse.getProposalNo());
|
|
insAreaCompany.setInsOrderNo(submitResponse.getProposalNo());
|
|
|
// 车船税
|
|
// 车船税
|
|
|
TaxArrears taxArrears = new TaxArrears("往年欠税", quotedPriceResponse.getTaxinfo().getPrePayTax(), quotedPriceResponse.getTaxinfo().getDelayPayTax());
|
|
TaxArrears taxArrears = new TaxArrears("往年欠税", quotedPriceResponse.getTaxinfo().getPrePayTax(), quotedPriceResponse.getTaxinfo().getDelayPayTax());
|
|
@@ -483,11 +432,6 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|