|
|
@@ -30,6 +30,7 @@ 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.StringSubStringUtils;
|
|
|
import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
|
|
|
import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
|
|
|
import com.ydtech.utils.CalculateUtils;
|
|
|
@@ -38,9 +39,7 @@ import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.ObjectUtils;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
@@ -108,13 +107,55 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
GenerateOrderNoResponse generateOrderNoResponse = boHaiRequestApiComponent.generateOrderNo(generateOrderNoRequest,
|
|
|
parameters.getSysSourceCode());
|
|
|
String orderNo = generateOrderNoResponse.getData().getOrderNo();
|
|
|
-
|
|
|
- // 2 车型查询接口
|
|
|
CarInfoVo carInfo = quoteInfoVo.getCarInfo();
|
|
|
VehicleTypeQueryRequest vehicleTypeQueryRequest = new VehicleTypeQueryRequest(parameters, carInfo.getModelcname(), orderNo);
|
|
|
+ //add by hxl 2024-04-03 调用车辆型号查询
|
|
|
+ // 调用 车辆查询和车辆确认接口
|
|
|
+ VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleModelsDTO = new VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO();
|
|
|
+ Map<String, Object> map = getVehicleConfirmationResponse(quoteInfoVo, parameters, carInfo, orderNo, vehicleTypeQueryRequest);
|
|
|
+ //调用车型号查询可能会出现多条数据,导致车辆确认报错 ESB车型及纯风险保费查询服务返回错误信息_选择车辆的行业车型编码(BBWABBUA0005)在平台不存在!请使用正确的行业车型编码(BBWABBUB0007)"
|
|
|
+ //通过报错信息截取出正确的行业车型编
|
|
|
+ vehicleModelsDTO = (VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO) map.get("vehicleModelsDTO");
|
|
|
+ VehicleConfirmationResponse vehicleConfirmationResponse = (VehicleConfirmationResponse) map.get("vehicleConfirmationResponse");
|
|
|
+ if (ResponseCode.R_Z00004.getCode().equals(vehicleConfirmationResponse.getResponseCode())) {
|
|
|
+ String responseMsg = vehicleConfirmationResponse.getResponseMsg();
|
|
|
+ if (responseMsg.contains("行业车型编码")) {
|
|
|
+ String modelCode = StringSubStringUtils.extractLastParenthesesContent(responseMsg);
|
|
|
+ //清空车辆型号 添加行业车型编码确定唯一车型
|
|
|
+ vehicleTypeQueryRequest.setVehicleBrandModelKey(null);
|
|
|
+ vehicleTypeQueryRequest.setModelCode(modelCode);
|
|
|
+ // 重新调用 车辆查询和车辆确认接口
|
|
|
+ Map<String, Object> map_two = getVehicleConfirmationResponse(quoteInfoVo, parameters, carInfo, orderNo,
|
|
|
+ vehicleTypeQueryRequest);
|
|
|
+ vehicleModelsDTO = (VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO) map_two.get("vehicleModelsDTO");
|
|
|
+ vehicleConfirmationResponse = (VehicleConfirmationResponse) map_two.get("vehicleConfirmationResponse");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 车辆实际价值
|
|
|
+ String currentValue = vehicleConfirmationResponse.getData().getVehicleModels().get(0).getCurrentValue();
|
|
|
+
|
|
|
+ // 4. 报价接口
|
|
|
+ QuotationRequest quotationRequest = new QuotationRequest(parameters, quoteInfoVo.getRiskList(), quoteInfoVo.getKindList(),
|
|
|
+ currentValue, orderNo, carInfo, quoteVo.getAccidentalDrivingVo());
|
|
|
+ QuotationResponse response = boHaiRequestApiComponent.quotation(quotationRequest, parameters.getSysSourceCode());
|
|
|
+ List<BoHaiQuoteAccidentVo> accidentalDrivingVo = quoteVo.getAccidentalDrivingVo();
|
|
|
+
|
|
|
+ return getQuoteRespVo(response, quoteInfoVo, vehicleModelsDTO, ptlAgreementAttribution, orderNo, accidentalDrivingVo);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @version 调用车型查询和车辆确认
|
|
|
+ * @author: hxl
|
|
|
+ * @Date: 2024/4/3 16:03
|
|
|
+ * @Description:
|
|
|
+ */
|
|
|
+ public Map<String, Object> getVehicleConfirmationResponse(BaseQuoteInfoVo quoteInfoVo, BoHaiConfigureParameters parameters,
|
|
|
+ CarInfoVo carInfo, String orderNo,
|
|
|
+ VehicleTypeQueryRequest vehicleTypeQueryRequest) throws Exception {
|
|
|
+ // 2 车型查询接口
|
|
|
VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleModelsDTO =
|
|
|
boHaiRequestApiComponent.vehicleTypeQuery(vehicleTypeQueryRequest, parameters.getSysSourceCode(), carInfo);
|
|
|
-
|
|
|
// 3 车辆确认接口
|
|
|
// 车主信息
|
|
|
CustomerInfoVo ownerInfo = quoteInfoVo.getOwnerInfo();
|
|
|
@@ -130,18 +171,13 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
orderNo, ownerInfoArea, insuredPersonArea, policyHolderArea);
|
|
|
VehicleConfirmationResponse vehicleConfirmationResponse = boHaiRequestApiComponent.vehicleConfirmation(vehicleConfirmationReqeust
|
|
|
, parameters.getSysSourceCode());
|
|
|
- // 车辆实际价值
|
|
|
- String currentValue = vehicleConfirmationResponse.getData().getVehicleModels().get(0).getCurrentValue();
|
|
|
-
|
|
|
- // 4. 报价接口
|
|
|
- QuotationRequest quotationRequest = new QuotationRequest(parameters, quoteInfoVo.getRiskList(), quoteInfoVo.getKindList(),
|
|
|
- currentValue, orderNo, carInfo, quoteVo.getAccidentalDrivingVo());
|
|
|
- QuotationResponse response = boHaiRequestApiComponent.quotation(quotationRequest, parameters.getSysSourceCode());
|
|
|
- List<BoHaiQuoteAccidentVo> accidentalDrivingVo = quoteVo.getAccidentalDrivingVo();
|
|
|
-
|
|
|
- return getQuoteRespVo(response, quoteInfoVo, vehicleModelsDTO, ptlAgreementAttribution, orderNo, accidentalDrivingVo);
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("vehicleModelsDTO", vehicleModelsDTO);
|
|
|
+ map.put("vehicleConfirmationResponse", vehicleConfirmationResponse);
|
|
|
+ return map;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
public HttpResult<Object> submitImage(String subOrderNo) throws Exception {
|
|
|
InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subOrderNo);
|
|
|
@@ -412,14 +448,16 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
QuoteRespVo quoteRespVo = new QuoteRespVo();
|
|
|
// 交强险
|
|
|
QuotationResponse.DataDTO.TrafficPolicyDTO trafficPolicy = response.getData().getTrafficPolicy();
|
|
|
+
|
|
|
if (!ObjectUtils.isEmpty(trafficPolicy)) {
|
|
|
sumPayTax = Double.parseDouble(trafficPolicy.getVehicleTax().getTotalAmount());
|
|
|
jqPremium = Double.parseDouble(trafficPolicy.getPremium());
|
|
|
quoteRespVo.setJqApplyNo(trafficPolicy.getApplicationNo());
|
|
|
+ // 交强
|
|
|
+ quoteRespVo.setStartDateJq(trafficPolicy.getStartDate());
|
|
|
+ quoteRespVo.setEndDateJq(trafficPolicy.getEndDate());
|
|
|
}
|
|
|
- // 交强
|
|
|
- quoteRespVo.setStartDateJq(trafficPolicy.getStartDate());
|
|
|
- quoteRespVo.setEndDateJq(trafficPolicy.getEndDate());
|
|
|
+
|
|
|
// 商业险
|
|
|
QuotationResponse.DataDTO.BusinessPolicyDTO businessPolicy = response.getData().getBusinessPolicy();
|
|
|
List<QuoteKindRespVo> kindList1 = new ArrayList<>();
|
|
|
@@ -496,25 +534,29 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
|
|
|
insAreaCompany.setInsOrderNo(busUniqueId);
|
|
|
// 驾意险
|
|
|
insAreaCompany.setAccidentInfo(JSON.parseArray(JSON.toJSONString(accidentalDrivingVo)));
|
|
|
+
|
|
|
// 车船税
|
|
|
- QuotationResponse.DataDTO.TrafficPolicyDTO.VehicleTaxDTO vehicleTax = response.getData().getTrafficPolicy().getVehicleTax();
|
|
|
- TaxArrears taxArrears = new TaxArrears("往年欠税", Double.parseDouble(vehicleTax.getOverdueTaxAmount()),
|
|
|
- Double.parseDouble(vehicleTax.getLateFee()));
|
|
|
+ TaxArrears taxArrears = Optional.ofNullable(response.getData().getTrafficPolicy())
|
|
|
+ .map(QuotationResponse.DataDTO.TrafficPolicyDTO::getVehicleTax)
|
|
|
+ .map(x -> new TaxArrears("往年欠税", Double.parseDouble(x.getOverdueTaxAmount()),
|
|
|
+ Double.parseDouble(x.getLateFee())))
|
|
|
+ .orElse(new TaxArrears());
|
|
|
+
|
|
|
List<TaxArrears> taxArrearsList = Collections.singletonList(taxArrears);
|
|
|
insAreaCompany.setTaxArrears(JSON.parseArray(JSON.toJSONString(taxArrearsList)));
|
|
|
insAreaCompanyService.insertCompanyAndOrders(insAreaCompany);
|
|
|
quoteRespVo.setCompanyId(orderId);
|
|
|
return HttpResult.ok("报价成功", quoteRespVo);
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
- * @Description 更新承保状态和支付时间
|
|
|
- * @Author hxl
|
|
|
- * @Date 2024/4/2 11:29
|
|
|
- * @Param
|
|
|
- * @Return
|
|
|
- * @Exception
|
|
|
- *
|
|
|
- */
|
|
|
+ * @Description 更新承保状态和支付时间
|
|
|
+ * @Author hxl
|
|
|
+ * @Date 2024/4/2 11:29
|
|
|
+ * @Param
|
|
|
+ * @Return
|
|
|
+ * @Exception
|
|
|
+ */
|
|
|
@Override
|
|
|
public void getOrderDetailNew(String subOrderNo) throws Exception {
|
|
|
InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subOrderNo);
|