|
|
@@ -40,6 +40,8 @@ import com.ydtech.modules.order.entity.vo.guoren.*;
|
|
|
import com.ydtech.modules.order.service.GuorenOrderApiService;
|
|
|
import com.ydtech.modules.order.service.InsAreaCompanyService;
|
|
|
import com.ydtech.modules.order.service.InsOrdersService;
|
|
|
+import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
|
|
|
+import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
|
|
|
import com.ydtech.modules.protocol.utils.AssertionUtils;
|
|
|
import com.ydtech.utils.DateTimeUtil;
|
|
|
import com.ydtech.utils.HttpUtil;
|
|
|
@@ -108,6 +110,8 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
|
|
|
private final FeeRuleSchemeService feeRuleSchemeService;
|
|
|
|
|
|
+ private final PtlAgreementAttributionService ptlAgreementAttributionService;
|
|
|
+
|
|
|
/**
|
|
|
* 获取渠道信息
|
|
|
*
|
|
|
@@ -118,7 +122,8 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
public HttpResult gainChannelInfo(String thirdCode) {
|
|
|
Map<String, String> m = new HashMap<>();
|
|
|
m.put("thirdCode", thirdCode);
|
|
|
- ChannelInfoResp request = guorenRequestApiComponent.request(m, PlatformInterfaceCode.API_IIRBT00018, ChannelInfoResp.class);
|
|
|
+ ChannelInfoResp request = guorenRequestApiComponent.request(m, PlatformInterfaceCode.API_IIRBT00018,
|
|
|
+ ChannelInfoResp.class);
|
|
|
return HttpResult.ok(request);
|
|
|
}
|
|
|
|
|
|
@@ -128,7 +133,8 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
@Override
|
|
|
public HttpResult<CarModelResp> modelsQueryApi(CarInfoVo carInfo) {
|
|
|
CarModelReq carModelReq = CarModelReq.buildCarModelParam(carInfo);
|
|
|
- CarModelResp request = guorenRequestApiComponent.request(carModelReq, PlatformInterfaceCode.API_IIRBT00002, CarModelResp.class);
|
|
|
+ CarModelResp request = guorenRequestApiComponent.request(carModelReq, PlatformInterfaceCode.API_IIRBT00002,
|
|
|
+ CarModelResp.class);
|
|
|
return HttpResult.ok(request);
|
|
|
}
|
|
|
|
|
|
@@ -148,7 +154,8 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
List<GuoRenSpecialAgreement> list = new ArrayList<>();
|
|
|
for (InsuranceRisk insuranceRisk : InsuranceRisk.getInsuranceRisk()) {
|
|
|
String riskCode = GuoRenRiskCode.toInsuranceRisk(insuranceRisk.getCode());
|
|
|
- SpecialAgreementRequest specialAgreementRequest = new SpecialAgreementRequest(channelInfo.getComCode(), riskCode);
|
|
|
+ SpecialAgreementRequest specialAgreementRequest = new SpecialAgreementRequest(channelInfo.getComCode(),
|
|
|
+ riskCode);
|
|
|
SpecialAgreementResponse response = guorenRequestApiComponent.request(specialAgreementRequest,
|
|
|
PlatformInterfaceCode.API_IIRBT00005, SpecialAgreementResponse.class);
|
|
|
|
|
|
@@ -161,7 +168,8 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
|
|
|
// 数据存入缓存
|
|
|
if (!list.isEmpty()) {
|
|
|
- redisTemplate.opsForValue().set(specialAgreementKey, JSON.toJSONString(list), GR_SPECIAL_AGREEMENT_TIME, TimeUnit.DAYS);
|
|
|
+ redisTemplate.opsForValue().set(specialAgreementKey, JSON.toJSONString(list), GR_SPECIAL_AGREEMENT_TIME,
|
|
|
+ TimeUnit.DAYS);
|
|
|
}
|
|
|
|
|
|
return HttpResult.ok(list);
|
|
|
@@ -209,15 +217,21 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
List<GuoRenSpecialAgreementVo> specialAgreementVo = quoteVo.getGuoRenSpecialAgreementVo();
|
|
|
|
|
|
// 4、保费计算
|
|
|
- PremiumResp.DataDTO premiumResult = premiumQuery(yaQuoteInfoVo, carPriceResult, vinQ, isNoCar, specialAgreementVo);
|
|
|
+ PremiumResp.DataDTO premiumResult = premiumQuery(yaQuoteInfoVo, carPriceResult, vinQ, isNoCar,
|
|
|
+ specialAgreementVo);
|
|
|
AssertionUtils.isEmpty(premiumResult, "保费计算失败");
|
|
|
|
|
|
// 5、 生成订单
|
|
|
QuoteRespVo quoteRespVo = buildQuoteRespVo(order, premiumResult, yaQuoteInfoVo, jsPremium);
|
|
|
- InsAreaCompany iac = responseOrder(order, quoteRespVo, quoteVo);
|
|
|
+ // 账号信息
|
|
|
+ PtlAgreementAttribution ptlAgreementAttribution =
|
|
|
+ ptlAgreementAttributionService.getById(quoteVo.getAgreementId());
|
|
|
+
|
|
|
+ InsAreaCompany iac = responseOrder(order, quoteRespVo, quoteVo, ptlAgreementAttribution);
|
|
|
|
|
|
// 6、 投保单保存
|
|
|
- InsuranceSlipResp insuranceSlip = guorenRequestApiComponent.insuranceSlip(yaQuoteInfoVo, carPriceResult.getInputvo(), orderCode);
|
|
|
+ InsuranceSlipResp insuranceSlip = guorenRequestApiComponent.insuranceSlip(yaQuoteInfoVo,
|
|
|
+ carPriceResult.getInputvo(), orderCode);
|
|
|
if (insuranceSlip.getResultCode() == 1) {
|
|
|
return HttpResult.error(insuranceSlip.getResultMsg());
|
|
|
}
|
|
|
@@ -438,15 +452,18 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
formMap.put("comCode", channelInfo.getComCode());
|
|
|
formMap.put("fileGroup", "DZ");
|
|
|
|
|
|
- List<InsUploadImagesDto> insUploadImagesDtos = insTaskImagesMapper.getByOrderNoInsUploadImagesDtoList(iac.getOrderno());
|
|
|
+ List<InsUploadImagesDto> insUploadImagesDtos =
|
|
|
+ insTaskImagesMapper.getByOrderNoInsUploadImagesDtoList(iac.getOrderno());
|
|
|
Map<String, String> map = new HashMap<>();
|
|
|
|
|
|
for (InsUploadImagesDto insUploadImagesDto : insUploadImagesDtos) {
|
|
|
try {
|
|
|
FilePart file1 = new FilePart("file", new File(insUploadImagesDto.getFilePath()));
|
|
|
|
|
|
- Part[] parts = {file1, new StringPart("businessNo", formMap.get("businessNo").toString()), new StringPart("operatorCode",
|
|
|
- formMap.get("operatorCode").toString()), new StringPart("comCode", formMap.get("comCode").toString()),
|
|
|
+ Part[] parts = {file1, new StringPart("businessNo", formMap.get("businessNo").toString()),
|
|
|
+ new StringPart("operatorCode",
|
|
|
+ formMap.get("operatorCode").toString()), new StringPart("comCode",
|
|
|
+ formMap.get("comCode").toString()),
|
|
|
new StringPart("fileGroup", formMap.get("fileGroup").toString())};
|
|
|
|
|
|
String result = HttpUtil.sendPostFromFile(parts, properties.getUploadUrl());
|
|
|
@@ -507,7 +524,8 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
|
|
|
case InsuranceRisk.ACCIDENT_CODE:
|
|
|
busNo = policyPrintVo.getPolicyNumber();
|
|
|
- url = guorenRequestApiComponent.noCarElectronicPolicy(properties.getChannelCode(), insAreaCompany.getInsOrderNo(), busNo);
|
|
|
+ url = guorenRequestApiComponent.noCarElectronicPolicy(properties.getChannelCode(),
|
|
|
+ insAreaCompany.getInsOrderNo(), busNo);
|
|
|
templateName = busNo + "-非车险保单.pdf";
|
|
|
break;
|
|
|
|
|
|
@@ -571,24 +589,17 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
* @author: lig
|
|
|
* @date: 2023-10-18
|
|
|
*/
|
|
|
- private InsAreaCompany responseOrder(InsOrders insOrder, QuoteRespVo quoteRespVo, GuoRenQuoteVo quoteVo) {
|
|
|
+ private InsAreaCompany responseOrder(InsOrders insOrder, QuoteRespVo quoteRespVo, GuoRenQuoteVo quoteVo,
|
|
|
+ PtlAgreementAttribution ptlAgreementAttribution) {
|
|
|
EsmInsCompany eic = esmInsCompanyService.getById(quoteVo.getCompanyId());
|
|
|
//保存订单信息
|
|
|
- InsAreaCompany insAreaCompany = new InsAreaCompany();
|
|
|
+ InsAreaCompany insAreaCompany = new InsAreaCompany(quoteRespVo, ptlAgreementAttribution);
|
|
|
insAreaCompany.setOrderno(insOrder.getOrderno());
|
|
|
- insAreaCompany.setSumpremium(BigDecimal.valueOf(quoteRespVo.getSumPermium()));
|
|
|
- insAreaCompany.setJypremium(BigDecimal.valueOf(quoteRespVo.getJyPremium()));
|
|
|
insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
|
|
|
- insAreaCompany.setRiskinfo(JSON.parseArray(JSON.toJSONString(quoteRespVo.getRiskList())));
|
|
|
- insAreaCompany.setKindinfo(JSON.parseArray(JSON.toJSONString(quoteRespVo.getKindList())));
|
|
|
insAreaCompany.setCreatetime(LocalDateTime.now());
|
|
|
insAreaCompany.setCompanyId(eic.getId());
|
|
|
insAreaCompany.setInscompany(eic.getNamesimple());
|
|
|
insAreaCompany.setAgreementId(quoteVo.getAgreementId());
|
|
|
- insAreaCompany.setJqStartDate(quoteRespVo.getStartDateJq());
|
|
|
- insAreaCompany.setJqEndDate(quoteRespVo.getEndDateJq());
|
|
|
- insAreaCompany.setSyStartDate(quoteRespVo.getStartDateSy());
|
|
|
- insAreaCompany.setSyEndDate(quoteRespVo.getEndDateSy());
|
|
|
return insAreaCompany;
|
|
|
}
|
|
|
|
|
|
@@ -598,7 +609,8 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
* @author: lig
|
|
|
* @date: 2023-10-18
|
|
|
*/
|
|
|
- private void responseOrderExtend(InsAreaCompany iac, QuoteRespVo quoteRespVo, PremiumResp.DataDTO premiumResult, String carPriceUuid) {
|
|
|
+ private void responseOrderExtend(InsAreaCompany iac, QuoteRespVo quoteRespVo, PremiumResp.DataDTO premiumResult,
|
|
|
+ String carPriceUuid) {
|
|
|
//交强保费 含税
|
|
|
BigDecimal jqPremium = BigDecimal.valueOf(StringUtils.toDouble(premiumResult.getSumPremiumCI()));
|
|
|
//商业保费 含税
|
|
|
@@ -648,7 +660,8 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
* @author: lig
|
|
|
* @date: 2023-08-21
|
|
|
*/
|
|
|
- public static QuoteRespVo buildQuoteRespVo(InsOrders insOrder, PremiumResp.DataDTO rd, YaQuoteInfoVo yaQuoteInfoVo, String jyPremium) {
|
|
|
+ public static QuoteRespVo buildQuoteRespVo(InsOrders insOrder, PremiumResp.DataDTO rd,
|
|
|
+ YaQuoteInfoVo yaQuoteInfoVo, String jyPremium) {
|
|
|
|
|
|
//交强保费 含税
|
|
|
BigDecimal jqPremiumBig = BigDecimal.valueOf(StringUtils.toDouble(rd.getSumPremiumCI()));
|
|
|
@@ -831,7 +844,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
kind.setAmount(dto.getAmount());
|
|
|
kind.setCoveragePremium(dto.getPremium());
|
|
|
}
|
|
|
- if(dto.getKindCode().equals(InsurKindGuoRen.TY1_N.getCode())){
|
|
|
+ if (dto.getKindCode().equals(InsurKindGuoRen.TY1_N.getCode())) {
|
|
|
kind = new QuoteKindRespVo();
|
|
|
kind.setKindCode(InsurKind.TY1.getCode());
|
|
|
kind.setKindName(InsurKind.TY1.getDesc());
|
|
|
@@ -839,7 +852,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
kind.setCoveragePremium(dto.getPremium());
|
|
|
}
|
|
|
|
|
|
- if(dto.getKindCode().equals(InsurKindGuoRen.TY2_N.getCode())){
|
|
|
+ if (dto.getKindCode().equals(InsurKindGuoRen.TY2_N.getCode())) {
|
|
|
kind = new QuoteKindRespVo();
|
|
|
kind.setKindCode(InsurKind.TY2.getCode());
|
|
|
kind.setKindName(InsurKind.TY2.getDesc());
|
|
|
@@ -847,7 +860,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
kind.setCoveragePremium(dto.getPremium());
|
|
|
}
|
|
|
|
|
|
- if(dto.getKindCode().equals(InsurKindGuoRen.TY3_N.getCode())){
|
|
|
+ if (dto.getKindCode().equals(InsurKindGuoRen.TY3_N.getCode())) {
|
|
|
kind = new QuoteKindRespVo();
|
|
|
kind.setKindCode(InsurKind.TY3.getCode());
|
|
|
kind.setKindName(InsurKind.TY3.getDesc());
|
|
|
@@ -855,7 +868,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
kind.setCoveragePremium(dto.getPremium());
|
|
|
}
|
|
|
|
|
|
- if(dto.getKindCode().equals(InsurKindGuoRen.TY4_N.getCode())){
|
|
|
+ if (dto.getKindCode().equals(InsurKindGuoRen.TY4_N.getCode())) {
|
|
|
kind = new QuoteKindRespVo();
|
|
|
kind.setKindCode(InsurKind.TY4.getCode());
|
|
|
kind.setKindName(InsurKind.TY4.getDesc());
|
|
|
@@ -875,7 +888,8 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
*/
|
|
|
public VinQueryResp.DataDTO vinQuery(VinQueryReq vinQueryReq, ChannelInfoDto channelInfo) {
|
|
|
VinQueryReq req = VinQueryReq.buildParam2(vinQueryReq, channelInfo);
|
|
|
- VinQueryResp resp = guorenRequestApiComponent.request(req, PlatformInterfaceCode.API_IIRBT00009, VinQueryResp.class);
|
|
|
+ VinQueryResp resp = guorenRequestApiComponent.request(req, PlatformInterfaceCode.API_IIRBT00009,
|
|
|
+ VinQueryResp.class);
|
|
|
if (resp.getResultCode() == 1) {
|
|
|
throw new SystemException(resp.getResultMsg() == null ? "未找到车辆信息" : resp.getResultMsg());
|
|
|
}
|
|
|
@@ -886,7 +900,8 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
/**
|
|
|
* 车价查询
|
|
|
*/
|
|
|
- public CarPriceResp.DataDTO carPriceQuery(BaseQuoteInfoVo yaQuoteInfoVo, VinQueryResp.DataDTO vinQ, ChannelInfoDto channelInfo) {
|
|
|
+ public CarPriceResp.DataDTO carPriceQuery(BaseQuoteInfoVo yaQuoteInfoVo, VinQueryResp.DataDTO vinQ,
|
|
|
+ ChannelInfoDto channelInfo) {
|
|
|
//构造请求参数
|
|
|
CarPriceReq req = CarPriceReq.buildCarPriceParam(yaQuoteInfoVo, vinQ, channelInfo);
|
|
|
JSONObject request = guorenRequestApiComponent.request(req, PlatformInterfaceCode.API_IIRBT00003);
|
|
|
@@ -932,7 +947,8 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
confirmCarMuch = vehicleInfoList.get(0);
|
|
|
}
|
|
|
}
|
|
|
- return carPriceQueryMuch(respMuch.getData().getInputvo(), confirmCarMuch, yaQuoteInfoVo.getCarInfo().getLicenseNo());
|
|
|
+ return carPriceQueryMuch(respMuch.getData().getInputvo(), confirmCarMuch,
|
|
|
+ yaQuoteInfoVo.getCarInfo().getLicenseNo());
|
|
|
}
|
|
|
}
|
|
|
return null;
|
|
|
@@ -942,7 +958,8 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
/**
|
|
|
* (多条)车价查询
|
|
|
*/
|
|
|
- public CarPriceResp.DataDTO carPriceQueryMuch(String uuid, CarPriceMuchResp.DataDTO.CarsDTO carsDTO, String licenseNo) {
|
|
|
+ public CarPriceResp.DataDTO carPriceQueryMuch(String uuid, CarPriceMuchResp.DataDTO.CarsDTO carsDTO,
|
|
|
+ String licenseNo) {
|
|
|
//构造请求参数
|
|
|
CarPriceMuchReq req = new CarPriceMuchReq();
|
|
|
req.setUuid(uuid);
|
|
|
@@ -959,7 +976,8 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
/**
|
|
|
* 保费计算
|
|
|
*/
|
|
|
- public PremiumResp.DataDTO premiumQuery(BaseQuoteInfoVo yaQuoteInfoVo, CarPriceResp.DataDTO carPriceResult, VinQueryResp.DataDTO vinQ
|
|
|
+ public PremiumResp.DataDTO premiumQuery(BaseQuoteInfoVo yaQuoteInfoVo, CarPriceResp.DataDTO carPriceResult,
|
|
|
+ VinQueryResp.DataDTO vinQ
|
|
|
, boolean isNoCar, List<GuoRenSpecialAgreementVo> specialAgreementVo) {
|
|
|
|
|
|
//请求信息列表
|
|
|
@@ -1018,15 +1036,18 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
// 商业投保单号
|
|
|
applicationDetailsRequest.addProposalNos(iac.getSyapplyno());
|
|
|
//投保单状态查询
|
|
|
- return guorenRequestApiComponent.request(applicationDetailsRequest, PlatformInterfaceCode.API_IIRBT00010, InsOrderStatusResp.class);
|
|
|
+ return guorenRequestApiComponent.request(applicationDetailsRequest, PlatformInterfaceCode.API_IIRBT00010,
|
|
|
+ InsOrderStatusResp.class);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public List<NonAutoInsuranceList> gainNonAutoInsList(NonAutoInsuranceQueryVo nonAutoInsuranceQueryVo) {
|
|
|
// 1 构造非车请求
|
|
|
- NonAutoInsuranceRequest nonAutoInsuranceRequest = new NonAutoInsuranceRequest(nonAutoInsuranceQueryVo.getGoodsCode(),
|
|
|
- properties.getChannelCode());
|
|
|
- NonAutoInsResp resp = guorenRequestApiComponent.request(nonAutoInsuranceRequest, PlatformInterfaceCode.API_IIIRBT00053,
|
|
|
+ NonAutoInsuranceRequest nonAutoInsuranceRequest =
|
|
|
+ new NonAutoInsuranceRequest(nonAutoInsuranceQueryVo.getGoodsCode(),
|
|
|
+ properties.getChannelCode());
|
|
|
+ NonAutoInsResp resp = guorenRequestApiComponent.request(nonAutoInsuranceRequest,
|
|
|
+ PlatformInterfaceCode.API_IIIRBT00053,
|
|
|
NonAutoInsResp.class);
|
|
|
// 2 构造返回参数
|
|
|
NonAutoInsResp.DataDTO data = resp.getData();
|
|
|
@@ -1056,12 +1077,16 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
* @author: lig
|
|
|
* @date: 2023-09-28
|
|
|
*/
|
|
|
- public NonAutoInsOrderResponse nonAutoInsOrder(BaseQuoteInfoVo yaQuoteInfoVo, GuorenAccidentalDrivingVo accidentalDrivingVo,
|
|
|
- String carPriceUuid, ChannelInfoDto channelInfo, VinQueryResp.DataDTO vinQ) {
|
|
|
+ public NonAutoInsOrderResponse nonAutoInsOrder(BaseQuoteInfoVo yaQuoteInfoVo,
|
|
|
+ GuorenAccidentalDrivingVo accidentalDrivingVo,
|
|
|
+ String carPriceUuid, ChannelInfoDto channelInfo,
|
|
|
+ VinQueryResp.DataDTO vinQ) {
|
|
|
//构造请求参数
|
|
|
- NonAutoInsOrderReq nonAutoInsOrderReq = new NonAutoInsOrderReq(yaQuoteInfoVo, vinQ, accidentalDrivingVo, channelInfo,
|
|
|
+ NonAutoInsOrderReq nonAutoInsOrderReq = new NonAutoInsOrderReq(yaQuoteInfoVo, vinQ, accidentalDrivingVo,
|
|
|
+ channelInfo,
|
|
|
carPriceUuid, properties.getChannelCode());
|
|
|
- return guorenRequestApiComponent.request(nonAutoInsOrderReq, PlatformInterfaceCode.API_IIIRBT00054, NonAutoInsOrderResponse.class);
|
|
|
+ return guorenRequestApiComponent.request(nonAutoInsOrderReq, PlatformInterfaceCode.API_IIIRBT00054,
|
|
|
+ NonAutoInsOrderResponse.class);
|
|
|
}
|
|
|
|
|
|
|