|
|
@@ -4,14 +4,15 @@ import cn.hutool.core.util.ArrayUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.ydtech.components.ZhongmeiRequestApiComponents;
|
|
|
+import com.ydtech.components.ZhongmeiRequestComponents;
|
|
|
import com.ydtech.constants.enums.InsOrderStatus;
|
|
|
import com.ydtech.core.page.HttpResult;
|
|
|
import com.ydtech.exception.SystemException;
|
|
|
import com.ydtech.modules.esm.model.EsmInsCompany;
|
|
|
-import com.ydtech.modules.esm.model.InsTaskImage;
|
|
|
import com.ydtech.modules.esm.service.EsmInsCompanyService;
|
|
|
-import com.ydtech.modules.esm.service.InsTaskImageService;
|
|
|
+import com.ydtech.modules.ins.model.request.Response;
|
|
|
import com.ydtech.modules.ins.model.ya.CarModelDTO;
|
|
|
+import com.ydtech.modules.ins.model.zm.ZmCarModel;
|
|
|
import com.ydtech.modules.ins.vo.*;
|
|
|
import com.ydtech.modules.order.convert.SimpleStadarCarDTOConvert;
|
|
|
import com.ydtech.modules.order.entity.InsAreaCompany;
|
|
|
@@ -34,7 +35,9 @@ import com.ydtech.modules.order.service.InsOrdersService;
|
|
|
import com.ydtech.modules.order.service.InsTaskImagesService;
|
|
|
import com.ydtech.modules.order.service.ZhongMeiOrderApiService;
|
|
|
import com.ydtech.utils.CalculateUtils;
|
|
|
+import com.ydtech.utils.StringUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.core.ParameterizedTypeReference;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.ObjectUtils;
|
|
|
|
|
|
@@ -56,12 +59,35 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
|
|
|
private final EsmInsCompanyService esmInsCompanyService;
|
|
|
|
|
|
- public ZhongMeiOrderApiServiceImpl(InsOrdersService insOrdersService, InsAreaCompanyService insAreaCompanyService, InsTaskImagesService insTaskImagesService, ZhongmeiRequestApiComponents zhongmeiRequestApiComponents, EsmInsCompanyService esmInsCompanyService) {
|
|
|
+ private final ZhongmeiRequestComponents zhongmeiRequestComponents;
|
|
|
+
|
|
|
+ public ZhongMeiOrderApiServiceImpl(InsOrdersService insOrdersService, InsAreaCompanyService insAreaCompanyService, InsTaskImagesService insTaskImagesService, ZhongmeiRequestApiComponents zhongmeiRequestApiComponents, EsmInsCompanyService esmInsCompanyService, ZhongmeiRequestComponents zhongmeiRequestComponents) {
|
|
|
this.insOrdersService = insOrdersService;
|
|
|
this.insAreaCompanyService = insAreaCompanyService;
|
|
|
this.insTaskImagesService = insTaskImagesService;
|
|
|
this.zhongmeiRequestApiComponents = zhongmeiRequestApiComponents;
|
|
|
this.esmInsCompanyService = esmInsCompanyService;
|
|
|
+ this.zhongmeiRequestComponents = zhongmeiRequestComponents;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void modelInquiry(String modelName, List<ModelsQueryResponse.SimpleStadarCarDTO> simpleStadarCarDTOS) {
|
|
|
+ if (!simpleStadarCarDTOS.isEmpty()){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("modelName", modelName);
|
|
|
+ Response<List<ZmCarModel>> model = zhongmeiRequestComponents.modelQuery(map, new ParameterizedTypeReference<Response<List<ZmCarModel>>>() {
|
|
|
+ });
|
|
|
+ List<ZmCarModel> data = model.getData();
|
|
|
+ if (data.isEmpty()) {
|
|
|
+ throw new SystemException("未查到你想要的车型");
|
|
|
+ }
|
|
|
+
|
|
|
+ for (ZmCarModel zmCarModel : data) {
|
|
|
+ simpleStadarCarDTOS.add(new ModelsQueryResponse.SimpleStadarCarDTO(zmCarModel));
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -69,6 +95,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
ModelsQueryRequest modelsQueryResponse = new ModelsQueryRequest();
|
|
|
modelsQueryResponse.setModelName(modelName);
|
|
|
List<ModelsQueryResponse.SimpleStadarCarDTO> car = zhongmeiRequestApiComponents.modelQuery(modelsQueryResponse, ModelsQueryResponse.class);
|
|
|
+ modelInquiry(modelName, car);
|
|
|
+
|
|
|
List<CarModelDTO> map = SimpleStadarCarDTOConvert.INSTANCE.map(car);
|
|
|
return HttpResult.ok(map);
|
|
|
}
|
|
|
@@ -81,11 +109,21 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
ModelsQueryRequest modelsQueryResponse = new ModelsQueryRequest();
|
|
|
modelsQueryResponse.setModelName(carInfo.getModelcname());
|
|
|
List<ModelsQueryResponse.SimpleStadarCarDTO> simpleStadarCarDTOS = zhongmeiRequestApiComponents.modelQuery(modelsQueryResponse, ModelsQueryResponse.class);
|
|
|
- // 1.1 过滤车型
|
|
|
- List<ModelsQueryResponse.SimpleStadarCarDTO> stadarCarDTOS = simpleStadarCarDTOS.stream().filter(car -> carInfo.getCaryear().equals(car.getLfDate())).collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 1.1 使用爬虫接口调用车型
|
|
|
+ modelInquiry(carInfo.getModelcname(), simpleStadarCarDTOS);
|
|
|
+
|
|
|
+ // 1.2 过滤车型
|
|
|
+ List<ModelsQueryResponse.SimpleStadarCarDTO> stadarCarDTOS = new ArrayList<>();
|
|
|
+
|
|
|
+ if(!StringUtils.isEmpty(carInfo.getCaryear())){
|
|
|
+ stadarCarDTOS = simpleStadarCarDTOS.stream().filter(car -> carInfo.getCaryear().equals(car.getLfDate())).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
if (!stadarCarDTOS.isEmpty()) {
|
|
|
simpleStadarCarDTOS = stadarCarDTOS;
|
|
|
}
|
|
|
+
|
|
|
simpleStadarCarDTOS = simpleStadarCarDTOS.stream()
|
|
|
.filter(car -> carInfo.getPurchasePrice().equals(String.valueOf(car.getPurchasePrice())))
|
|
|
.collect(Collectors.toList());
|
|
|
@@ -97,7 +135,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
|
|
|
QuoteRespVo quoteRespVo = getQuoteRespVo(quotedPriceResponse, quoteInfo);
|
|
|
// 2. 第一次提交核保 并且获取投保单号
|
|
|
- SubmitResponse response = submitForUnderwriting(quotedPriceResponse.getOrderNo(), carInfo.getFrameNo(), quoteInfo.getOwnerInfo());
|
|
|
+ SubmitResponse response = submitForUnderwriting(quotedPriceResponse.getOrderNo(), carInfo.getFrameNo(), quoteInfo.getPolicyHolderInfo());
|
|
|
return responseOrder(quotedPriceResponse, quoteRespVo, esmInsCompany, response);
|
|
|
}
|
|
|
|
|
|
@@ -106,7 +144,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
public HttpResult audit(String companyId) {
|
|
|
InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
|
|
|
InsOrders insOrders = insOrdersService.getById(insAreaCompany.getOrderno());
|
|
|
- JSONObject ownerinfo = insOrders.getOwnerinfo();
|
|
|
+ JSONObject ownerinfo = insOrders.getApplyinfo();
|
|
|
CustomerInfoVo customerInfoVo = JSON.toJavaObject(ownerinfo, CustomerInfoVo.class);
|
|
|
// 第二次 提交核保
|
|
|
SubmitResponse response = submitForUnderwriting(insAreaCompany.getId(), insOrders.getFrameno(), customerInfoVo);
|
|
|
@@ -322,7 +360,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
|
|
|
quoteRespVo.setKindList(kindList1);
|
|
|
quoteRespVo.setJqPremium(jqPremium);
|
|
|
quoteRespVo.setSyPremium(syPremium);
|
|
|
- Integer sumPayTax = quotedPriceResponse.getTaxinfo().getSumPayTax();
|
|
|
+ double sumPayTax = quotedPriceResponse.getTaxinfo().getSumPayTax();
|
|
|
quoteRespVo.setCiSumPermium(CalculateUtils.add(jqPremium, sumPayTax));//交强险和车船税合计
|
|
|
quoteRespVo.setSumPermium(CalculateUtils.add(jqPremium, syPremium, sumPayTax));//保费合计
|
|
|
quoteRespVo.setTaxAmount(sumPayTax);//车船税
|