|
|
@@ -19,7 +19,9 @@ import com.ydtech.modules.order.components.FileComponents;
|
|
|
import com.ydtech.modules.order.components.InsImagesUploadCacheComponents;
|
|
|
import com.ydtech.modules.order.components.yangguang.YangGuangRequestApiComponents;
|
|
|
import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
|
|
|
+import com.ydtech.modules.order.constants.QuoteNumberConstant;
|
|
|
import com.ydtech.modules.order.constants.UnderwritingStatus;
|
|
|
+import com.ydtech.modules.order.dao.SysQuoteRecordMapper;
|
|
|
import com.ydtech.modules.order.entity.*;
|
|
|
import com.ydtech.modules.order.entity.api.yangguang.request.*;
|
|
|
import com.ydtech.modules.order.entity.api.yangguang.response.*;
|
|
|
@@ -30,6 +32,7 @@ import com.ydtech.modules.order.entity.dto.ReadPdfUrlListDto;
|
|
|
import com.ydtech.modules.order.entity.filter.CarModelsFilterUtils;
|
|
|
import com.ydtech.modules.order.entity.po.InsTaskImagesBase64;
|
|
|
import com.ydtech.modules.order.entity.po.InsUploadFiles;
|
|
|
+import com.ydtech.modules.order.entity.po.SysQuoteRecord;
|
|
|
import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
|
|
|
import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
|
|
|
import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
|
|
|
@@ -83,6 +86,10 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
|
|
|
|
|
|
private final FileComponents fileComponents;
|
|
|
|
|
|
+ private final SysQuoteRecordMapper sysQuoteRecordMapper;
|
|
|
+
|
|
|
+ private final SysQuoteRedisService sysQuoteRedisService;
|
|
|
+
|
|
|
@Value("${upload.file.path}")
|
|
|
private String uploadFilePath;
|
|
|
|
|
|
@@ -93,6 +100,12 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
|
|
|
private String apiUrl;
|
|
|
@Override
|
|
|
public HttpResult<QuoteRespVo> quote(BaseQuoteInfoVo quoteInfoVo, BaseQuoteVo<List<YgQuoteAccidentVo>> quoteVo) throws JsonProcessingException {
|
|
|
+
|
|
|
+ Integer maxQuoteNum = quoteVo.getMaxQuoteNum();
|
|
|
+
|
|
|
+ List<SysQuoteRecord> sysQuoteRecords = new ArrayList<>();
|
|
|
+
|
|
|
+
|
|
|
// 通过协议获取配置实体
|
|
|
String agreementId = quoteVo.getAgreementId();
|
|
|
PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(agreementId);
|
|
|
@@ -127,6 +140,7 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
|
|
|
// 如果险种为单商或交商 需要报两次价 将第一次报出的车实际价值取到
|
|
|
//报价
|
|
|
InsOrders insOrders = insOrdersService.getById(quoteInfoVo.getOrderNo());
|
|
|
+ quoteInfoVo.setProductId(insOrders.getProductid());
|
|
|
|
|
|
YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequest = new YangGuangAccuracyCalculateRequest(quoteInfoVo, purchasePrice, carModelList1, riskList.get(0),startDate,ygConfigureParameters,quoteVo);
|
|
|
yangGuangAccuracyCalculateRequest.setInfotransNo(yangGuangQueryVehicleModelResponse.getInfotransNo());
|
|
|
@@ -137,58 +151,123 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
|
|
|
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
|
|
|
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
- LocalDateTime dateTime = LocalDateTime.parse(endDate, inputFormatter);
|
|
|
- String newDateStr = dateTime.format(outputFormatter);
|
|
|
- YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequestRe = new YangGuangAccuracyCalculateRequest(quoteInfoVo, purchasePrice, carModelList1, riskList.get(0),newDateStr,ygConfigureParameters,quoteVo);
|
|
|
- yangGuangAccuracyCalculateRequestRe.setInfotransNo(yangGuangQueryVehicleModelResponse.getInfotransNo());
|
|
|
- YangGuangAccuracyCalculateResponse yangGuangAccuracyCalculateResponseRe = yangGuangRequestApiComponents.accuracyCalculaye(yangGuangAccuracyCalculateRequestRe);
|
|
|
- if (insOrders.getProductid().equals("034001") || insOrders.getProductid().equals("0330034001") || insOrders.getProductid().equals("0330034002")) {
|
|
|
- if (yangGuangAccuracyCalculateResponseRe.getErrorCode().equals("0")) {
|
|
|
- YangGuangAccuracyCalculateResponse.itemcar itemcar = yangGuangAccuracyCalculateResponseRe.getItemcar();
|
|
|
- String actualValue = itemcar.getActualValue();
|
|
|
- YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequest1 = new YangGuangAccuracyCalculateRequest(quoteInfoVo, actualValue, carModelList1, riskList.get(0),newDateStr,ygConfigureParameters,quoteVo);
|
|
|
- yangGuangAccuracyCalculateRequest1.setInfotransNo(yangGuangQueryVehicleModelResponse.getInfotransNo());
|
|
|
- YangGuangAccuracyCalculateResponse yangGuangAccuracyCalculateResponse1 = yangGuangRequestApiComponents.accuracyCalculaye(yangGuangAccuracyCalculateRequest1);
|
|
|
- boolean isEnergy = carInfo.isNewEnergy();
|
|
|
-
|
|
|
- if (!yangGuangAccuracyCalculateResponse1.getErrorCode().equals("0")) {
|
|
|
- InsOrders order = insOrdersService.getById(quoteInfoVo.getOrderNo());
|
|
|
- InsOrderStatusEnum insOrderStatusEnum = InsOrderStatusEnum.QUOTE_FAILED;
|
|
|
- if (yangGuangAccuracyCalculateResponse1.getErrorMessage().contains("重复投保")) {
|
|
|
- insOrderStatusEnum = InsOrderStatusEnum.REPEAT_INSURE;
|
|
|
+ LocalDateTime dateTime = LocalDateTime.parse(endDate, inputFormatter);
|
|
|
+ String newDateStr = dateTime.format(outputFormatter);
|
|
|
+ YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequestRe = new YangGuangAccuracyCalculateRequest(quoteInfoVo, purchasePrice, carModelList1, riskList.get(0),newDateStr,ygConfigureParameters,quoteVo);
|
|
|
+ yangGuangAccuracyCalculateRequestRe.setInfotransNo(yangGuangQueryVehicleModelResponse.getInfotransNo());
|
|
|
+ maxQuoteNum--;
|
|
|
+ SysQuoteRecord sysQuoteRecord = new SysQuoteRecord(quoteInfoVo.getUserid(),quoteVo.getCompanyId(),quoteInfoVo.getCarInfo().getLicenseNo(),
|
|
|
+ QuoteNumberConstant.QuoteAction.DATE_DEAL.getCode().toString(),QuoteNumberConstant.QuoteResult.FAIL.getCode().toString());
|
|
|
+ sysQuoteRecords.add(sysQuoteRecord);
|
|
|
+ if(maxQuoteNum <= 0){
|
|
|
+ sysQuoteRecordMapper.insertBatch(sysQuoteRecords);
|
|
|
+ //刷新redis中的报价次数
|
|
|
+ sysQuoteRedisService.refreshQuoteNum(quoteVo.getCompanyId(),quoteInfoVo.getUserid(),sysQuoteRecords);
|
|
|
+ throw new SystemException("报价次数限制");
|
|
|
+ }
|
|
|
+ YangGuangAccuracyCalculateResponse yangGuangAccuracyCalculateResponseRe = yangGuangRequestApiComponents.accuracyCalculaye(yangGuangAccuracyCalculateRequestRe);
|
|
|
+ if (insOrders.getProductid().equals("034001") || insOrders.getProductid().equals("0330034001") || insOrders.getProductid().equals("0330034002")) {
|
|
|
+ if (yangGuangAccuracyCalculateResponseRe.getErrorCode().equals("0")) {
|
|
|
+ YangGuangAccuracyCalculateResponse.itemcar itemcar = yangGuangAccuracyCalculateResponseRe.getItemcar();
|
|
|
+ String actualValue = itemcar.getActualValue();
|
|
|
+ YangGuangAccuracyCalculateRequest yangGuangAccuracyCalculateRequest1 = new YangGuangAccuracyCalculateRequest(quoteInfoVo, actualValue, carModelList1, riskList.get(0),newDateStr,ygConfigureParameters,quoteVo);
|
|
|
+ yangGuangAccuracyCalculateRequest1.setInfotransNo(yangGuangQueryVehicleModelResponse.getInfotransNo());
|
|
|
+ maxQuoteNum--;
|
|
|
+ SysQuoteRecord sysQuoteRecord1 = new SysQuoteRecord(quoteInfoVo.getUserid(),quoteVo.getCompanyId(),quoteInfoVo.getCarInfo().getLicenseNo(),
|
|
|
+ QuoteNumberConstant.QuoteAction.DATE_DEAL.getCode().toString(),QuoteNumberConstant.QuoteResult.FAIL.getCode().toString());
|
|
|
+ sysQuoteRecords.add(sysQuoteRecord1);
|
|
|
+ if(maxQuoteNum <= 0){
|
|
|
+ sysQuoteRecordMapper.insertBatch(sysQuoteRecords);
|
|
|
+ //刷新redis中的报价次数
|
|
|
+ sysQuoteRedisService.refreshQuoteNum(quoteVo.getCompanyId(),quoteInfoVo.getUserid(),sysQuoteRecords);
|
|
|
+ throw new SystemException("报价次数限制");
|
|
|
}
|
|
|
- insOrdersService.responseFailedOrder(quoteVo,ptlAgreementAttribution, order, yangGuangAccuracyCalculateResponse1.getErrorMessage(),insOrderStatusEnum);
|
|
|
- throw new SystemException(yangGuangAccuracyCalculateResponse1.getErrorMessage());
|
|
|
+ YangGuangAccuracyCalculateResponse yangGuangAccuracyCalculateResponse1 = yangGuangRequestApiComponents.accuracyCalculaye(yangGuangAccuracyCalculateRequest1);
|
|
|
+ boolean isEnergy = carInfo.isNewEnergy();
|
|
|
+
|
|
|
+ if (!yangGuangAccuracyCalculateResponse1.getErrorCode().equals("0")) {
|
|
|
+ InsOrders order = insOrdersService.getById(quoteInfoVo.getOrderNo());
|
|
|
+ InsOrderStatusEnum insOrderStatusEnum = InsOrderStatusEnum.QUOTE_FAILED;
|
|
|
+ if (yangGuangAccuracyCalculateResponse1.getErrorMessage().contains("重复投保")) {
|
|
|
+ insOrderStatusEnum = InsOrderStatusEnum.REPEAT_INSURE;
|
|
|
+ }
|
|
|
+ String subOrderNo = insOrdersService.responseFailedOrder(quoteVo, ptlAgreementAttribution, order, yangGuangAccuracyCalculateResponse1.getErrorMessage(), insOrderStatusEnum);
|
|
|
+ SysQuoteRecord sysQuoteRecord2 = new SysQuoteRecord(quoteInfoVo.getUserid(),quoteVo.getCompanyId(),quoteInfoVo.getCarInfo().getLicenseNo(),
|
|
|
+ QuoteNumberConstant.QuoteAction.QUOTE_FAILED.getCode().toString(),QuoteNumberConstant.QuoteResult.FAIL.getCode().toString());
|
|
|
+ sysQuoteRecords.add(sysQuoteRecord2);
|
|
|
+ //存储报价记录
|
|
|
+ sysQuoteRecords.forEach(item->{
|
|
|
+ item.setSubOrderNo(subOrderNo);
|
|
|
+ });
|
|
|
+
|
|
|
+ sysQuoteRecordMapper.insertBatch(sysQuoteRecords);
|
|
|
+ //刷新redis中的报价次数
|
|
|
+ sysQuoteRedisService.refreshQuoteNum(quoteVo.getCompanyId(),quoteInfoVo.getUserid(),sysQuoteRecords);
|
|
|
+ throw new SystemException(yangGuangAccuracyCalculateResponse1.getErrorMessage());
|
|
|
+ }
|
|
|
+ // 处理数据
|
|
|
+ QuoteRespVo quoteRespVo = getQuoteRespVo(yangGuangAccuracyCalculateResponse1, quoteInfoVo, quoteVo.getAccidentalDrivingVo(), isEnergy);
|
|
|
+
|
|
|
+ // 设置核心报价车型
|
|
|
+ quoteRespVo.setCoreModels(carModelList1.toCoreModelsVo());
|
|
|
+ HttpResult<QuoteRespVo> quoteRespVoHttpResult = responseOrder(yangGuangAccuracyCalculateResponse1, quoteRespVo, ptlAgreementAttribution, quoteInfoVo.getOrderNo(),
|
|
|
+ quoteVo.getAccidentalDrivingVo());
|
|
|
+
|
|
|
+ SysQuoteRecord sysQuoteRecord3 = new SysQuoteRecord(quoteInfoVo.getUserid(),quoteVo.getCompanyId(),quoteInfoVo.getCarInfo().getLicenseNo(),
|
|
|
+ QuoteNumberConstant.QuoteAction.QUOTE_SUCCESS.getCode().toString(),QuoteNumberConstant.QuoteResult.SUCCESS.getCode().toString());
|
|
|
+ sysQuoteRecords.add(sysQuoteRecord3);
|
|
|
+ //存储报价记录
|
|
|
+ sysQuoteRecords.forEach(item->{
|
|
|
+ item.setSubOrderNo(quoteRespVoHttpResult.getData().getCompanyId());
|
|
|
+ });
|
|
|
+ sysQuoteRecordMapper.insertBatch(sysQuoteRecords);
|
|
|
+ sysQuoteRedisService.refreshQuoteNum(quoteVo.getCompanyId(),quoteInfoVo.getUserid(),sysQuoteRecords);
|
|
|
+ return quoteRespVoHttpResult;
|
|
|
+ } else {
|
|
|
+ InsOrders order = insOrdersService.getById(quoteInfoVo.getOrderNo());
|
|
|
+ InsOrderStatusEnum insOrderStatusEnum = InsOrderStatusEnum.QUOTE_FAILED;
|
|
|
+ if (yangGuangAccuracyCalculateResponse.getErrorMessage().contains("重复投保")) {
|
|
|
+ insOrderStatusEnum = InsOrderStatusEnum.REPEAT_INSURE;
|
|
|
+ }
|
|
|
+ String subOrderNo = insOrdersService.responseFailedOrder(quoteVo, ptlAgreementAttribution, order, yangGuangAccuracyCalculateResponse.getErrorMessage(), insOrderStatusEnum);
|
|
|
+ SysQuoteRecord sysQuoteRecord2 = new SysQuoteRecord(quoteInfoVo.getUserid(),quoteVo.getCompanyId(),quoteInfoVo.getCarInfo().getLicenseNo(),
|
|
|
+ QuoteNumberConstant.QuoteAction.QUOTE_FAILED.getCode().toString(),QuoteNumberConstant.QuoteResult.FAIL.getCode().toString());
|
|
|
+ sysQuoteRecords.add(sysQuoteRecord2);
|
|
|
+ //存储报价记录
|
|
|
+ sysQuoteRecords.forEach(item->{
|
|
|
+ item.setSubOrderNo(subOrderNo);
|
|
|
+ });
|
|
|
+
|
|
|
+ sysQuoteRecordMapper.insertBatch(sysQuoteRecords);
|
|
|
+ //刷新redis中的报价次数
|
|
|
+ sysQuoteRedisService.refreshQuoteNum(quoteVo.getCompanyId(),quoteInfoVo.getUserid(),sysQuoteRecords);
|
|
|
+ throw new SystemException(yangGuangAccuracyCalculateResponse.getErrorMessage());
|
|
|
}
|
|
|
- // 处理数据
|
|
|
- QuoteRespVo quoteRespVo = getQuoteRespVo(yangGuangAccuracyCalculateResponse1, quoteInfoVo, quoteVo.getAccidentalDrivingVo(), isEnergy);
|
|
|
-
|
|
|
- // 设置核心报价车型
|
|
|
- quoteRespVo.setCoreModels(carModelList1.toCoreModelsVo());
|
|
|
- return responseOrder(yangGuangAccuracyCalculateResponse1, quoteRespVo, ptlAgreementAttribution, quoteInfoVo.getOrderNo(),
|
|
|
- quoteVo.getAccidentalDrivingVo());
|
|
|
} else {
|
|
|
- InsOrders order = insOrdersService.getById(quoteInfoVo.getOrderNo());
|
|
|
- InsOrderStatusEnum insOrderStatusEnum = InsOrderStatusEnum.QUOTE_FAILED;
|
|
|
- if (yangGuangAccuracyCalculateResponse.getErrorMessage().contains("重复投保")) {
|
|
|
+ boolean isEnergy = carInfo.isNewEnergy();
|
|
|
+ if (!yangGuangAccuracyCalculateResponse.getErrorCode().equals("0")) {
|
|
|
+ QuoteRespVo resp = new QuoteRespVo();
|
|
|
+ InsOrders order = insOrdersService.getById(quoteInfoVo.getOrderNo());
|
|
|
+ InsOrderStatusEnum insOrderStatusEnum = InsOrderStatusEnum.QUOTE_FAILED;
|
|
|
+ if (yangGuangAccuracyCalculateResponse.getErrorMessage().contains("重复投保")) {
|
|
|
insOrderStatusEnum = InsOrderStatusEnum.REPEAT_INSURE;
|
|
|
+ }
|
|
|
+ String subOrderNo = insOrdersService.responseFailedOrder(quoteVo, ptlAgreementAttribution, order, yangGuangAccuracyCalculateResponse.getErrorMessage(), insOrderStatusEnum);
|
|
|
+ SysQuoteRecord sysQuoteRecord2 = new SysQuoteRecord(quoteInfoVo.getUserid(),quoteVo.getCompanyId(),quoteInfoVo.getCarInfo().getLicenseNo(),
|
|
|
+ QuoteNumberConstant.QuoteAction.QUOTE_FAILED.getCode().toString(),QuoteNumberConstant.QuoteResult.FAIL.getCode().toString());
|
|
|
+ sysQuoteRecords.add(sysQuoteRecord2);
|
|
|
+ //存储报价记录
|
|
|
+ sysQuoteRecords.forEach(item->{
|
|
|
+ item.setSubOrderNo(subOrderNo);
|
|
|
+ });
|
|
|
+
|
|
|
+ sysQuoteRecordMapper.insertBatch(sysQuoteRecords);
|
|
|
+ //刷新redis中的报价次数
|
|
|
+ sysQuoteRedisService.refreshQuoteNum(quoteVo.getCompanyId(),quoteInfoVo.getUserid(),sysQuoteRecords);
|
|
|
+ throw new SystemException(yangGuangAccuracyCalculateResponse.getErrorMessage());
|
|
|
}
|
|
|
- insOrdersService.responseFailedOrder(quoteVo,ptlAgreementAttribution, order, yangGuangAccuracyCalculateResponse.getErrorMessage(),insOrderStatusEnum);
|
|
|
- throw new SystemException(yangGuangAccuracyCalculateResponse.getErrorMessage());
|
|
|
- }
|
|
|
- } else {
|
|
|
- boolean isEnergy = carInfo.isNewEnergy();
|
|
|
- if (!yangGuangAccuracyCalculateResponseRe.getErrorCode().equals("0")) {
|
|
|
- InsOrders order = insOrdersService.getById(quoteInfoVo.getOrderNo());
|
|
|
- InsOrderStatusEnum insOrderStatusEnum = InsOrderStatusEnum.QUOTE_FAILED;
|
|
|
- if (yangGuangAccuracyCalculateResponseRe.getErrorMessage().contains("重复投保")) {
|
|
|
- insOrderStatusEnum = InsOrderStatusEnum.REPEAT_INSURE;
|
|
|
- }
|
|
|
- insOrdersService.responseFailedOrder(quoteVo,ptlAgreementAttribution, order, yangGuangAccuracyCalculateResponseRe.getErrorMessage(),insOrderStatusEnum);
|
|
|
- throw new SystemException(yangGuangAccuracyCalculateResponseRe.getErrorMessage());
|
|
|
- }
|
|
|
- // 处理数据
|
|
|
- QuoteRespVo quoteRespVo = getQuoteRespVo(yangGuangAccuracyCalculateResponseRe, quoteInfoVo, quoteVo.getAccidentalDrivingVo(), isEnergy);
|
|
|
+ // 处理数据
|
|
|
+ QuoteRespVo quoteRespVo = getQuoteRespVo(yangGuangAccuracyCalculateResponse, quoteInfoVo, quoteVo.getAccidentalDrivingVo(), isEnergy);
|
|
|
|
|
|
// 设置核心报价车型
|
|
|
quoteRespVo.setCoreModels(carModelList1.toCoreModelsVo());
|
|
|
@@ -212,7 +291,18 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
|
|
|
if (yangGuangAccuracyCalculateResponse1.getErrorMessage().contains("重复投保")) {
|
|
|
insOrderStatusEnum = InsOrderStatusEnum.REPEAT_INSURE;
|
|
|
}
|
|
|
- insOrdersService.responseFailedOrder(quoteVo,ptlAgreementAttribution, order, yangGuangAccuracyCalculateResponse1.getErrorMessage(),insOrderStatusEnum);
|
|
|
+ String s = insOrdersService.responseFailedOrder(quoteVo, ptlAgreementAttribution, order, yangGuangAccuracyCalculateResponse1.getErrorMessage(), insOrderStatusEnum);
|
|
|
+ SysQuoteRecord sysQuoteRecord2 = new SysQuoteRecord(quoteInfoVo.getUserid(),quoteVo.getCompanyId(),quoteInfoVo.getCarInfo().getLicenseNo(),
|
|
|
+ QuoteNumberConstant.QuoteAction.QUOTE_FAILED.getCode().toString(),QuoteNumberConstant.QuoteResult.FAIL.getCode().toString());
|
|
|
+ sysQuoteRecords.add(sysQuoteRecord2);
|
|
|
+ //存储报价记录
|
|
|
+ sysQuoteRecords.forEach(item->{
|
|
|
+ item.setSubOrderNo(s);
|
|
|
+ });
|
|
|
+
|
|
|
+ sysQuoteRecordMapper.insertBatch(sysQuoteRecords);
|
|
|
+ //刷新redis中的报价次数
|
|
|
+ sysQuoteRedisService.refreshQuoteNum(quoteVo.getCompanyId(),quoteInfoVo.getUserid(),sysQuoteRecords);
|
|
|
throw new SystemException(yangGuangAccuracyCalculateResponse1.getErrorMessage());
|
|
|
}
|
|
|
|
|
|
@@ -221,15 +311,36 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
|
|
|
|
|
|
// 设置核心报价车型
|
|
|
quoteRespVo.setCoreModels(carModelList1.toCoreModelsVo());
|
|
|
- return responseOrder(yangGuangAccuracyCalculateResponse1, quoteRespVo, ptlAgreementAttribution, quoteInfoVo.getOrderNo(),
|
|
|
+ HttpResult<QuoteRespVo> quoteRespVoHttpResult = responseOrder(yangGuangAccuracyCalculateResponse1, quoteRespVo, ptlAgreementAttribution, quoteInfoVo.getOrderNo(),
|
|
|
quoteVo.getAccidentalDrivingVo());
|
|
|
+ SysQuoteRecord sysQuoteRecord3 = new SysQuoteRecord(quoteInfoVo.getUserid(),quoteVo.getCompanyId(),quoteInfoVo.getCarInfo().getLicenseNo(),
|
|
|
+ QuoteNumberConstant.QuoteAction.QUOTE_SUCCESS.getCode().toString(),QuoteNumberConstant.QuoteResult.SUCCESS.getCode().toString());
|
|
|
+ sysQuoteRecords.add(sysQuoteRecord3);
|
|
|
+ //存储报价记录
|
|
|
+ sysQuoteRecords.forEach(item->{
|
|
|
+ item.setSubOrderNo(quoteRespVoHttpResult.getData().getCompanyId());
|
|
|
+ });
|
|
|
+ sysQuoteRecordMapper.insertBatch(sysQuoteRecords);
|
|
|
+ sysQuoteRedisService.refreshQuoteNum(quoteVo.getCompanyId(),quoteInfoVo.getUserid(),sysQuoteRecords);
|
|
|
+ return quoteRespVoHttpResult;
|
|
|
} else {
|
|
|
InsOrders order = insOrdersService.getById(quoteInfoVo.getOrderNo());
|
|
|
InsOrderStatusEnum insOrderStatusEnum = InsOrderStatusEnum.QUOTE_FAILED;
|
|
|
if (yangGuangAccuracyCalculateResponse.getErrorMessage().contains("重复投保")) {
|
|
|
insOrderStatusEnum = InsOrderStatusEnum.REPEAT_INSURE;
|
|
|
}
|
|
|
- insOrdersService.responseFailedOrder(quoteVo,ptlAgreementAttribution, order, yangGuangAccuracyCalculateResponse.getErrorMessage(),insOrderStatusEnum);
|
|
|
+ String s = insOrdersService.responseFailedOrder(quoteVo, ptlAgreementAttribution, order, yangGuangAccuracyCalculateResponse.getErrorMessage(), insOrderStatusEnum);
|
|
|
+ SysQuoteRecord sysQuoteRecord2 = new SysQuoteRecord(quoteInfoVo.getUserid(),quoteVo.getCompanyId(),quoteInfoVo.getCarInfo().getLicenseNo(),
|
|
|
+ QuoteNumberConstant.QuoteAction.QUOTE_FAILED.getCode().toString(),QuoteNumberConstant.QuoteResult.FAIL.getCode().toString());
|
|
|
+ sysQuoteRecords.add(sysQuoteRecord2);
|
|
|
+ //存储报价记录
|
|
|
+ sysQuoteRecords.forEach(item->{
|
|
|
+ item.setSubOrderNo(s);
|
|
|
+ });
|
|
|
+
|
|
|
+ sysQuoteRecordMapper.insertBatch(sysQuoteRecords);
|
|
|
+ //刷新redis中的报价次数
|
|
|
+ sysQuoteRedisService.refreshQuoteNum(quoteVo.getCompanyId(),quoteInfoVo.getUserid(),sysQuoteRecords);
|
|
|
throw new SystemException(yangGuangAccuracyCalculateResponse.getErrorMessage());
|
|
|
}
|
|
|
} else {
|
|
|
@@ -242,7 +353,18 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
|
|
|
if (yangGuangAccuracyCalculateResponse.getErrorMessage().contains("重复投保")) {
|
|
|
insOrderStatusEnum = InsOrderStatusEnum.REPEAT_INSURE;
|
|
|
}
|
|
|
- insOrdersService.responseFailedOrder(quoteVo,ptlAgreementAttribution, order, yangGuangAccuracyCalculateResponse.getErrorMessage(),insOrderStatusEnum);
|
|
|
+ String s = insOrdersService.responseFailedOrder(quoteVo, ptlAgreementAttribution, order, yangGuangAccuracyCalculateResponse.getErrorMessage(), insOrderStatusEnum);
|
|
|
+ SysQuoteRecord sysQuoteRecord2 = new SysQuoteRecord(quoteInfoVo.getUserid(),quoteVo.getCompanyId(),quoteInfoVo.getCarInfo().getLicenseNo(),
|
|
|
+ QuoteNumberConstant.QuoteAction.QUOTE_FAILED.getCode().toString(),QuoteNumberConstant.QuoteResult.FAIL.getCode().toString());
|
|
|
+ sysQuoteRecords.add(sysQuoteRecord2);
|
|
|
+ //存储报价记录
|
|
|
+ sysQuoteRecords.forEach(item->{
|
|
|
+ item.setSubOrderNo(s);
|
|
|
+ });
|
|
|
+
|
|
|
+ sysQuoteRecordMapper.insertBatch(sysQuoteRecords);
|
|
|
+ //刷新redis中的报价次数
|
|
|
+ sysQuoteRedisService.refreshQuoteNum(quoteVo.getCompanyId(),quoteInfoVo.getUserid(),sysQuoteRecords);
|
|
|
throw new SystemException(yangGuangAccuracyCalculateResponse.getErrorMessage());
|
|
|
}
|
|
|
// 处理数据
|
|
|
@@ -250,8 +372,18 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
|
|
|
|
|
|
// 设置核心报价车型
|
|
|
quoteRespVo.setCoreModels(carModelList1.toCoreModelsVo());
|
|
|
- return responseOrder(yangGuangAccuracyCalculateResponse, quoteRespVo, ptlAgreementAttribution, quoteInfoVo.getOrderNo(),
|
|
|
+ HttpResult<QuoteRespVo> quoteRespVoHttpResult = responseOrder(yangGuangAccuracyCalculateResponse, quoteRespVo, ptlAgreementAttribution, quoteInfoVo.getOrderNo(),
|
|
|
quoteVo.getAccidentalDrivingVo());
|
|
|
+ SysQuoteRecord sysQuoteRecord3 = new SysQuoteRecord(quoteInfoVo.getUserid(),quoteVo.getCompanyId(),quoteInfoVo.getCarInfo().getLicenseNo(),
|
|
|
+ QuoteNumberConstant.QuoteAction.QUOTE_SUCCESS.getCode().toString(),QuoteNumberConstant.QuoteResult.SUCCESS.getCode().toString());
|
|
|
+ sysQuoteRecords.add(sysQuoteRecord3);
|
|
|
+ //存储报价记录
|
|
|
+ sysQuoteRecords.forEach(item->{
|
|
|
+ item.setSubOrderNo(quoteRespVoHttpResult.getData().getCompanyId());
|
|
|
+ });
|
|
|
+ sysQuoteRecordMapper.insertBatch(sysQuoteRecords);
|
|
|
+ sysQuoteRedisService.refreshQuoteNum(quoteVo.getCompanyId(),quoteInfoVo.getUserid(),sysQuoteRecords);
|
|
|
+ return quoteRespVoHttpResult;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -301,7 +433,7 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
|
|
|
YangGuangSubmitRequest yangGuangSubmitRequest = new YangGuangSubmitRequest(insOrders, insAreaCompany, productid, ygConfigureParameters);
|
|
|
YangGuangSubmitResponse yangGuangSubmitResponse = yangGuangRequestApiComponents.submit(yangGuangSubmitRequest);
|
|
|
if (!yangGuangSubmitResponse.getErrorCode().equals("0")) {
|
|
|
- return HttpResult.error(yangGuangSubmitResponse.message(yangGuangSubmitResponse.getErrorMessage()));
|
|
|
+ return HttpResult.error(yangGuangSubmitResponse.getErrorMessage());
|
|
|
}
|
|
|
if (yangGuangSubmitResponse.getCiProposalNo() != null) {
|
|
|
insAreaCompany.setJqapplyno(yangGuangSubmitResponse.getCiProposalNo());
|
|
|
@@ -656,7 +788,50 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public boolean autoWriteOff(String companyId) throws Exception {
|
|
|
+ public HttpResult<Object> autoWriteOff(String companyId) throws Exception {
|
|
|
+ InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
|
|
|
+ YangGuangConfigureParameters ygConfigureParameters = configureParametersComponents.toEntity(YangGuangConfigureParameters.class,
|
|
|
+ insAreaCompany.getAgreementId());
|
|
|
+ String productid = insAreaCompany.getProductid();
|
|
|
+ //单交
|
|
|
+ if (productid.equals("0330")) {
|
|
|
+ YangGuangAutoWriteOffRequest yangGuangAutoWriteOffRequest = new YangGuangAutoWriteOffRequest(ygConfigureParameters, insAreaCompany.getJqapplyno());
|
|
|
+ YangGuangAutoWriteOffResponse yangGuangAutoWriteOffResponse = yangGuangRequestApiComponents.autoWriteOff(yangGuangAutoWriteOffRequest);
|
|
|
+ if (yangGuangAutoWriteOffResponse.getErrorCode().equals("0")) {
|
|
|
+ insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
|
|
|
+ insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
|
|
|
+ return HttpResult.ok("撤单成功");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 单商
|
|
|
+ if (productid.equals("034001")) {
|
|
|
+ YangGuangAutoWriteOffRequest yangGuangAutoWriteOffRequest = new YangGuangAutoWriteOffRequest(ygConfigureParameters, insAreaCompany.getSyapplyno());
|
|
|
+ YangGuangAutoWriteOffResponse yangGuangAutoWriteOffResponse = yangGuangRequestApiComponents.autoWriteOff(yangGuangAutoWriteOffRequest);
|
|
|
+ if (yangGuangAutoWriteOffResponse.getErrorCode().equals("0")) {
|
|
|
+ insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
|
|
|
+ insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
|
|
|
+ return HttpResult.ok("撤单成功");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //交商同保
|
|
|
+ if (insAreaCompany.getJqpolicyno() != null && insAreaCompany.getSypolicyno() != null && !insAreaCompany.getJqpolicyno().equals("") && !insAreaCompany.getSypolicyno().equals("")) {
|
|
|
+ YangGuangAutoWriteOffRequest yangGuangAutoWriteOffRequestJq = new YangGuangAutoWriteOffRequest(ygConfigureParameters, insAreaCompany.getJqapplyno());
|
|
|
+ YangGuangAutoWriteOffResponse yangGuangAutoWriteOffResponseJq = yangGuangRequestApiComponents.autoWriteOff(yangGuangAutoWriteOffRequestJq);
|
|
|
+ YangGuangAutoWriteOffRequest yangGuangAutoWriteOffRequestSy = new YangGuangAutoWriteOffRequest(ygConfigureParameters, insAreaCompany.getSyapplyno());
|
|
|
+ YangGuangAutoWriteOffResponse yangGuangAutoWriteOffResponseSy = yangGuangRequestApiComponents.autoWriteOff(yangGuangAutoWriteOffRequestSy);
|
|
|
+ if (yangGuangAutoWriteOffResponseJq.getErrorCode().equals("0") && yangGuangAutoWriteOffResponseSy.getErrorCode().equals("0")) {
|
|
|
+ insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
|
|
|
+ insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
|
|
|
+ return HttpResult.ok("撤单成功");
|
|
|
+ } else {
|
|
|
+ return HttpResult.error("撤单失败,原因:"+ yangGuangAutoWriteOffResponseSy.getErrorMessage() + yangGuangAutoWriteOffResponseJq.getErrorMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return HttpResult.ok("撤单成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean autoWriteOffOrder(String companyId) throws Exception {
|
|
|
InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
|
|
|
YangGuangConfigureParameters ygConfigureParameters = configureParametersComponents.toEntity(YangGuangConfigureParameters.class,
|
|
|
insAreaCompany.getAgreementId());
|
|
|
@@ -681,7 +856,7 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
- //交商同保
|
|
|
+ //交商同保
|
|
|
if (insAreaCompany.getJqpolicyno() != null && insAreaCompany.getSypolicyno() != null && !insAreaCompany.getJqpolicyno().equals("") && !insAreaCompany.getSypolicyno().equals("")) {
|
|
|
YangGuangAutoWriteOffRequest yangGuangAutoWriteOffRequestJq = new YangGuangAutoWriteOffRequest(ygConfigureParameters, insAreaCompany.getJqapplyno());
|
|
|
YangGuangAutoWriteOffResponse yangGuangAutoWriteOffResponseJq = yangGuangRequestApiComponents.autoWriteOff(yangGuangAutoWriteOffRequestJq);
|
|
|
@@ -731,7 +906,7 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
|
|
|
quoteRespVo.setSyScore(discount.getMarkingnobcBI() != null ? discount.getMarkingnobcBI() : "");
|
|
|
quoteRespVo.setJqLossRation(Double.parseDouble(discount.getFinalmarkingnoCi() != null ? discount.getFinalmarkingnoCi() : "0.00"));
|
|
|
quoteRespVo.setSyLossRation(Double.parseDouble(discount.getFinalmarkingnoBi() != null ? discount.getFinalmarkingnoBi() : "0.00"));
|
|
|
- quoteRespVo.setMergeCostRate(Double.parseDouble(yangGuangAccuracyCalculateResponse.getVascostmarginbc() != null ?yangGuangAccuracyCalculateResponse.getVascostmarginbc() : "0.00"));
|
|
|
+ quoteRespVo.setMergeCostRate(yangGuangAccuracyCalculateResponse.getVascostmarginbc() != null ?yangGuangAccuracyCalculateResponse.getVascostmarginbc() : "0.00");
|
|
|
}
|
|
|
|
|
|
List<QuoteKindRespVo> kindList1 = new ArrayList<>();
|
|
|
@@ -786,6 +961,7 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
|
|
|
quoteRespVo.setCiSumPermium(CalculateUtils.add(jqPremium, sumPayTax));//交强险和车船税合计
|
|
|
quoteRespVo.setSumPermium(CalculateUtils.add(jqPremium, syPremium, sumPayTax, jyPremium));//保费合计
|
|
|
quoteRespVo.setTotalAdjustRate(0);
|
|
|
+ quoteRespVo.setMergeCostRate(yangGuangAccuracyCalculateResponse.getVascostmarginbc());
|
|
|
quoteRespVo.setOrderno(yaQuoteInfoVo.getOrderNo()); //订单号
|
|
|
return quoteRespVo;
|
|
|
}
|
|
|
@@ -802,7 +978,7 @@ public class YangGuangOrderApiServiceImpl implements YangGuangOrderApiService {
|
|
|
insAreaCompany.setReptxt(JSON.parseObject(JSON.toJSONString(yangGuangAccuracyCalculateResponse)));
|
|
|
insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
|
|
|
insAreaCompany.setInsOrderNo(yangGuangAccuracyCalculateResponse.getInfotransNo());
|
|
|
- insAreaCompany.setMergeCostRate(Double.parseDouble(yangGuangAccuracyCalculateResponse.getVascostmarginbc()));
|
|
|
+ insAreaCompany.setMergeCostRate(quoteRespVo.getMergeCostRate());
|
|
|
InsOrders insOrders = insOrdersService.getById(orderId);
|
|
|
//车船税
|
|
|
if (!insOrders.getProductid().equals("034001") && !insOrders.getProductid().equals("034002")) {
|