|
|
@@ -1,5 +1,7 @@
|
|
|
package com.jzg.quotation.taikang.crawler.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.alibaba.nacos.common.utils.CollectionUtils;
|
|
|
import com.google.gson.Gson;
|
|
|
import com.jzg.commons.constants.dict.InsOrderStatusEnum;
|
|
|
import com.jzg.commons.entity.orders.po.InsOrdersCarUserInfo;
|
|
|
@@ -9,6 +11,7 @@ import com.jzg.commons.entity.quote.vo.aggregated.*;
|
|
|
import com.jzg.commons.entity.quote.vo.base.LoginBase;
|
|
|
import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
|
|
|
import com.jzg.commons.util.ImageUtil;
|
|
|
+import com.jzg.commons.util.StringUtils;
|
|
|
import com.jzg.quotation.commons.annotation.QuoteCrawlerService;
|
|
|
import com.jzg.quotation.commons.constant.InsuranceCode;
|
|
|
import com.jzg.quotation.commons.entity.DetectLoginRequest;
|
|
|
@@ -21,7 +24,6 @@ import com.jzg.quotation.taikang.crawler.model.TKLoginSession;
|
|
|
import com.jzg.quotation.taikang.crawler.model.api.*;
|
|
|
import com.jzg.quotation.taikang.crawler.model.entity.TKAreaInfoVo;
|
|
|
import com.jzg.quotation.taikang.crawler.model.entity.TKInsureInfo;
|
|
|
-import com.jzg.quotation.taikang.crawler.model.entity.TKOrderCheckCarSpecification;
|
|
|
import com.jzg.quotation.taikang.crawler.model.entity.TKOrderData;
|
|
|
import com.jzg.quotation.taikang.crawler.model.entity.po.TKCrawlerOrder;
|
|
|
import com.jzg.quotation.taikang.crawler.repository.TKLoginSessionRepository;
|
|
|
@@ -38,6 +40,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
|
import java.io.File;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
@@ -218,12 +221,12 @@ public class TKQuotationBaseServiceImpl implements TKQuotationBaseService {
|
|
|
|
|
|
private void buildCheckCar(TKEntranceFor000038Result tkEntranceFor000038Result, UnderwritingVo underwritingVo, PreciseInitResult preciseInitResult, UnderwritingResultsVo underwritingResultsVo) {
|
|
|
log.info("========== 开始处理验车上传影像流程 ==========");
|
|
|
-
|
|
|
+
|
|
|
try {
|
|
|
// 获取登录会话信息
|
|
|
AttributionInformationVo attributionInformationVo = underwritingVo.getOrder().getAttributionInformationVo();
|
|
|
TKLoginSession session = loginSession(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
|
|
|
-
|
|
|
+
|
|
|
// 获取核保返回的保司订单号
|
|
|
TKOrderData tkOrderData = tkEntranceFor000038Result.getData();
|
|
|
String proposalNo = null;
|
|
|
@@ -232,69 +235,102 @@ public class TKQuotationBaseServiceImpl implements TKQuotationBaseService {
|
|
|
underwritingVo.getOrder().setCompanyOrderNo(proposalNo);
|
|
|
log.info("核保返回保司订单号: {}", proposalNo);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 1. 查询验车照片详情列表(保司要求上传的影像类型)
|
|
|
// List<TKOrderCheckCarSpecification> checkCarSpecification = tkEntranceFor000038Result.getCheckCarSpecification();
|
|
|
// if (checkCarSpecification != null && !checkCarSpecification.isEmpty()) {
|
|
|
// log.info("验车照片详情列表: {}", new Gson().toJson(checkCarSpecification));
|
|
|
// }
|
|
|
-
|
|
|
+
|
|
|
// 2. 从 Redis 获取缓存的影像上传参数(前端提前上传的)
|
|
|
InsuranceUploadImageVo insuranceUploadImageVo = redisCacheUtil.getImageUploadParam(underwritingVo.getOrder().getOrdersNo());
|
|
|
-
|
|
|
+
|
|
|
// 3. 如果 Redis 中有缓存的影像上传参数,设置保司订单号
|
|
|
if (insuranceUploadImageVo != null) {
|
|
|
- log.info("从 Redis 获取到缓存的影像上传参数,影像数量: {}",
|
|
|
+ log.info("从 Redis 获取到缓存的影像上传参数,影像数量: {}",
|
|
|
insuranceUploadImageVo.getImageVoList() != null ? insuranceUploadImageVo.getImageVoList().size() : 0);
|
|
|
-
|
|
|
+
|
|
|
// 设置保司订单号(核保成功后已返回)
|
|
|
if (proposalNo != null) {
|
|
|
insuranceUploadImageVo.getOrder().setCompanyOrderNo(proposalNo);
|
|
|
log.info("已为缓存的影像上传参数设置保司订单号: {}", proposalNo);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 删除 Redis 中的缓存(已使用,不再需要)
|
|
|
redisCacheUtil.deleteImageUploadParam(underwritingVo.getOrder().getOrdersNo());
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 5. 如果有影像资料,上传到保司
|
|
|
if (insuranceUploadImageVo != null && insuranceUploadImageVo.getImageVoList() != null && !insuranceUploadImageVo.getImageVoList().isEmpty()) {
|
|
|
// 上传影像
|
|
|
log.info("开始上传影像资料...");
|
|
|
- doUploadImage(insuranceUploadImageVo);
|
|
|
+ qualityVerifyImg(insuranceUploadImageVo);
|
|
|
log.info("影像资料上传成功");
|
|
|
-
|
|
|
- // 6. 上传成功后重新进行核保
|
|
|
- log.info("开始重新核保...");
|
|
|
- reUnderwriting(session, underwritingVo, preciseInitResult, underwritingResultsVo);
|
|
|
- log.info("重新核保完成");
|
|
|
+
|
|
|
+ // 6. 上传成功后查询订单状态
|
|
|
+ log.info("开始查询订单状态...");
|
|
|
+ OrderStatusVo orderStatusVo = new OrderStatusVo();
|
|
|
+ orderStatusVo.setOrder(underwritingVo.getOrder());
|
|
|
+ OrderStatusResultVo orderStatusResultVo = queryOrderState(orderStatusVo);
|
|
|
+ log.info("订单状态查询完成,响应: {}", JSONObject.toJSONString(orderStatusResultVo));
|
|
|
+
|
|
|
+ // 根据状态查询结果更新核保结果
|
|
|
+ if (orderStatusResultVo != null && orderStatusResultVo.getOrderStatus() != null) {
|
|
|
+ underwritingResultsVo.setUnderwritingStatus(orderStatusResultVo.getOrderStatus());
|
|
|
+ if (InsOrderStatusEnum.PAY_PENDING.equals(orderStatusResultVo.getOrderStatus())) {
|
|
|
+ underwritingResultsVo.setUnderwritingResult("核保成功");
|
|
|
+ underwritingResultsVo.setPaymentLink(orderStatusResultVo.getPaymentLink());
|
|
|
+ } else if (InsOrderStatusEnum.UNDERWRITED.equals(orderStatusResultVo.getOrderStatus())) {
|
|
|
+ underwritingResultsVo.setUnderwritingResult("已承保");
|
|
|
+ } else if (InsOrderStatusEnum.WAIT_AUDIT.equals(orderStatusResultVo.getOrderStatus())) {
|
|
|
+ underwritingResultsVo.setUnderwritingResult("待核保");
|
|
|
+ } else if (InsOrderStatusEnum.AUDIT_FAIL.equals(orderStatusResultVo.getOrderStatus())) {
|
|
|
+ underwritingResultsVo.setUnderwritingResult("核保失败");
|
|
|
+ } else if (InsOrderStatusEnum.STAFF_PROCESS.equals(orderStatusResultVo.getOrderStatus())) {
|
|
|
+ underwritingResultsVo.setUnderwritingResult("人工审核,原因:" + orderStatusResultVo.getErrorMsg());
|
|
|
+ } else {
|
|
|
+ underwritingResultsVo.setUnderwritingResult(tkEntranceFor000038Result.getData().getSpResMsg() + ",原因:" + tkEntranceFor000038Result.getCheckCarData());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新投保单号
|
|
|
+ if (orderStatusResultVo.getJqApplyNo() != null) {
|
|
|
+ underwritingResultsVo.setJqApplyNo(orderStatusResultVo.getJqApplyNo());
|
|
|
+ }
|
|
|
+ if (orderStatusResultVo.getSyApplyNo() != null) {
|
|
|
+ underwritingResultsVo.setSyApplyNo(orderStatusResultVo.getSyApplyNo());
|
|
|
+ }
|
|
|
+ if (orderStatusResultVo.getJyApplyNo() != null) {
|
|
|
+ underwritingResultsVo.setJyApplyNo(orderStatusResultVo.getJyApplyNo());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("订单状态查询完成,状态: {}", underwritingResultsVo.getUnderwritingStatus());
|
|
|
} else {
|
|
|
// 没有影像资料,保持人工处理状态
|
|
|
log.warn("未查询到影像资料,保持人工处理状态");
|
|
|
underwritingResultsVo.setUnderwritingResult(tkEntranceFor000038Result.getData().getSpResMsg() + ",原因:" + tkEntranceFor000038Result.getCheckCarData());
|
|
|
underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.STAFF_PROCESS);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
} catch (Exception e) {
|
|
|
log.error("处理验车上传影像失败", e);
|
|
|
// 处理失败时保持人工处理状态
|
|
|
underwritingResultsVo.setUnderwritingResult("验车影像上传处理异常:" + e.getMessage());
|
|
|
underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.STAFF_PROCESS);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
log.info("========== 验车上传影像流程处理结束 ==========");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 重新核保
|
|
|
- *
|
|
|
+ *
|
|
|
* @param session 登录会话
|
|
|
- * @param underwritingVo 核保参数
|
|
|
+ * @param underwritingVo 核保参数
|
|
|
* @param preciseInitResult 初始化结果
|
|
|
* @param underwritingResultsVo 核保结果
|
|
|
*/
|
|
|
- private void reUnderwriting(TKLoginSession session, UnderwritingVo underwritingVo,
|
|
|
- PreciseInitResult preciseInitResult, UnderwritingResultsVo underwritingResultsVo) {
|
|
|
+ private void reUnderwriting(TKLoginSession session, UnderwritingVo underwritingVo,
|
|
|
+ PreciseInitResult preciseInitResult, UnderwritingResultsVo underwritingResultsVo) {
|
|
|
try {
|
|
|
// 获取车主信息(与第一次核保相同)
|
|
|
List<InsOrdersCarUserInfo> insOrdersCarUserInfoList = underwritingVo.getInsOrdersCarUserInfoList();
|
|
|
@@ -302,19 +338,19 @@ public class TKQuotationBaseServiceImpl implements TKQuotationBaseService {
|
|
|
log.warn("车主信息为空,无法重新核保");
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
InsOrdersCarUserInfo insOrdersCarUserInfo = insOrdersCarUserInfoList.get(0);
|
|
|
InitProposalResult initProposalResult = tkSimpleService.queryCarOwner(session, preciseInitResult.getMainOrderId());
|
|
|
TKInsureInfo insureInfo = tkSimpleService.dataCreateInsureInfo(initProposalResult, insOrdersCarUserInfo);
|
|
|
-
|
|
|
+
|
|
|
log.info("重新核保 - 车主信息: {}", new Gson().toJson(insureInfo));
|
|
|
-
|
|
|
+
|
|
|
// 调用核保接口
|
|
|
TKEntranceFor000038Result reUnderwritingResult = tkSimpleService.orderSubmit(session, preciseInitResult.getMainOrderId(), insureInfo);
|
|
|
-
|
|
|
+
|
|
|
if (reUnderwritingResult != null) {
|
|
|
TKOrderData tkOrderData = reUnderwritingResult.getData();
|
|
|
-
|
|
|
+
|
|
|
// 更新保单编号缓存
|
|
|
if (tkOrderData != null && tkOrderData.getProposalNo() != null) {
|
|
|
redisCacheUtil.setCache(tkOrderData.getProposalNo(), underwritingVo.getOrder().getOrdersNo(), "HB");
|
|
|
@@ -323,7 +359,7 @@ public class TKQuotationBaseServiceImpl implements TKQuotationBaseService {
|
|
|
underwritingResultsVo.setSyApplyNo(tkOrderData.getProposalNoBI());
|
|
|
underwritingResultsVo.setJyApplyNo(tkOrderData.getCarAccident() != null ? tkOrderData.getCarAccident().getProposalNo() : null);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 检查是否还需要验车
|
|
|
if ("1".equals(reUnderwritingResult.getCheckCarFlag()) && "9".equals(reUnderwritingResult.getData().getUnderWriteFlag())) {
|
|
|
// 仍然需要验车,保持人工处理状态
|
|
|
@@ -342,7 +378,7 @@ public class TKQuotationBaseServiceImpl implements TKQuotationBaseService {
|
|
|
underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.AUDIT_FAIL);
|
|
|
log.warn("重新核保返回null,核保失败");
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
} catch (Exception e) {
|
|
|
log.error("重新核保失败", e);
|
|
|
underwritingResultsVo.setUnderwritingResult("重新核保异常:" + e.getMessage());
|
|
|
@@ -365,33 +401,33 @@ public class TKQuotationBaseServiceImpl implements TKQuotationBaseService {
|
|
|
public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
|
|
|
// 获取保司订单号(fullProposalNo),核保成功后才会有值
|
|
|
String companyOrderNo = insuranceUploadImageVo.getOrder().getCompanyOrderNo();
|
|
|
-
|
|
|
+
|
|
|
// 如果保司订单号为空,说明第一次进行核保,将影像上传参数缓存到 Redis
|
|
|
// 泰康只有进行验车时必须要进行影像资料上传,其他情况没有验车资料也可以进行核保
|
|
|
if (companyOrderNo == null || companyOrderNo.isEmpty()) {
|
|
|
- log.info("保司订单号为空,影像上传参数将缓存到 Redis,等待核保完成后再上传: ordersNo={}",
|
|
|
+ log.info("保司订单号为空,影像上传参数将缓存到 Redis,等待核保完成后再上传: ordersNo={}",
|
|
|
insuranceUploadImageVo.getOrder().getOrdersNo());
|
|
|
redisCacheUtil.setImageUploadParam(insuranceUploadImageVo.getOrder().getOrdersNo(), insuranceUploadImageVo);
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 保司订单号已存在,直接进行影像上传
|
|
|
- doUploadImage(insuranceUploadImageVo);
|
|
|
+ qualityVerifyImg(insuranceUploadImageVo);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 执行影像上传操作
|
|
|
- *
|
|
|
+ *
|
|
|
* @param insuranceUploadImageVo 影像上传参数
|
|
|
*/
|
|
|
private void doUploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
|
|
|
AttributionInformationVo attributionInformationVo = insuranceUploadImageVo.getOrder().getAttributionInformationVo();
|
|
|
TKLoginSession session = loginSession(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
|
|
|
CarCheckUploadFileParam param = new CarCheckUploadFileParam();
|
|
|
-
|
|
|
+
|
|
|
// 获取泰康订单号
|
|
|
String orderID = redisCacheUtil.getCache(insuranceUploadImageVo.getOrder().getOrdersNo(), "DD");
|
|
|
-
|
|
|
+
|
|
|
// 设置上传参数
|
|
|
param.setChannelCode("OffWeb");
|
|
|
param.setTplatformId(session.getTplatformId());
|
|
|
@@ -462,6 +498,156 @@ public class TKQuotationBaseServiceImpl implements TKQuotationBaseService {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 执行影像上传操作(批量上传)
|
|
|
+ * <p>
|
|
|
+ * 该方法负责将前端上传的影像资料(行驶证、身份证等)批量上传到泰康保司系统。
|
|
|
+ * 流程:
|
|
|
+ * 1. 获取登录会话信息
|
|
|
+ * 2. 从Redis获取泰康订单号
|
|
|
+ * 3. 遍历影像列表,根据影像类型构建上传参数
|
|
|
+ * 4. 调用批量上传接口将所有影像一次性上传
|
|
|
+ * 5. 调用影像提交接口完成上传流程
|
|
|
+ *
|
|
|
+ * @param insuranceUploadImageVo 影像上传参数,包含订单信息和影像列表
|
|
|
+ */
|
|
|
+ private void qualityVerifyImg(InsuranceUploadImageVo insuranceUploadImageVo) {
|
|
|
+ // 1. 获取归属信息(用户名、密码)用于登录保司系统
|
|
|
+ AttributionInformationVo attributionInformationVo = insuranceUploadImageVo.getOrder().getAttributionInformationVo();
|
|
|
+
|
|
|
+ // 2. 获取登录会话信息
|
|
|
+ TKLoginSession session = loginSession(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
|
|
|
+
|
|
|
+ // 3. 从Redis缓存中获取泰康订单号(DD标识)
|
|
|
+ String orderID = redisCacheUtil.getCache(insuranceUploadImageVo.getOrder().getOrdersNo(), "DD");
|
|
|
+ log.info("影像上传 - 获取泰康订单号: {}", orderID);
|
|
|
+
|
|
|
+ // 4. 获取影像列表
|
|
|
+ List<InsuranceImageVo> imageVoList = insuranceUploadImageVo.getImageVoList();
|
|
|
+ if (CollectionUtils.isEmpty(imageVoList)) {
|
|
|
+ log.warn("影像上传 - 影像列表为空,跳过上传");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 5. 构建批量上传参数列表
|
|
|
+ List<CarCheckUploadFileVerifyImgParam> uploadParamsList = buildUploadParams(insuranceUploadImageVo, imageVoList);
|
|
|
+
|
|
|
+ // 6. 如果没有需要上传的参数,直接返回
|
|
|
+ if (CollectionUtils.isEmpty(uploadParamsList)) {
|
|
|
+ log.warn("影像上传 - 未构建到有效的上传参数,跳过上传");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("影像上传 - 准备批量上传 {} 个影像参数", uploadParamsList.size());
|
|
|
+
|
|
|
+ // 7. 调用批量上传接口,一次性发送所有影像参数
|
|
|
+ httpService.qualityVerifyImgBatch(uploadParamsList);
|
|
|
+
|
|
|
+ // 8. 调用影像提交接口,完成上传流程
|
|
|
+ httpService.carCheckUploadFileSubmit(
|
|
|
+ session.getToken(),
|
|
|
+ session.getTplatformId(),
|
|
|
+ insuranceUploadImageVo.getOrder().getCompanyOrderNo(),
|
|
|
+ orderID
|
|
|
+ );
|
|
|
+
|
|
|
+ log.info("影像上传 - 上传完成,订单号: {}", orderID);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 构建影像上传参数列表
|
|
|
+ * <p>
|
|
|
+ * 根据影像类型(行驶证、身份证)构建对应的上传参数对象。
|
|
|
+ * 影像类型编码说明:
|
|
|
+ * - C01: 行驶证正面
|
|
|
+ * - D01: 行驶证反面
|
|
|
+ * - C02: 车主身份证正面
|
|
|
+ * - D02: 车主身份证反面
|
|
|
+ *
|
|
|
+ * @param insuranceUploadImageVo 影像上传参数
|
|
|
+ * @param imageVoList 影像列表
|
|
|
+ * @return 上传参数列表
|
|
|
+ */
|
|
|
+ private List<CarCheckUploadFileVerifyImgParam> buildUploadParams(
|
|
|
+ InsuranceUploadImageVo insuranceUploadImageVo,
|
|
|
+ List<InsuranceImageVo> imageVoList) {
|
|
|
+
|
|
|
+ List<CarCheckUploadFileVerifyImgParam> uploadParamsList = new ArrayList<>();
|
|
|
+
|
|
|
+ // 获取保司订单号(核保成功后返回的ProposalNo)
|
|
|
+ String companyOrderNo = insuranceUploadImageVo.getOrder().getCompanyOrderNo();
|
|
|
+
|
|
|
+ // 遍历影像列表
|
|
|
+ for (InsuranceImageVo imageVo : imageVoList) {
|
|
|
+ String imageCode = imageVo.getImageCode();
|
|
|
+ List<InsuranceImageVo.ImageDTO> imageBase64List = imageVo.getImageBase64List();
|
|
|
+
|
|
|
+ // 如果影像编码或Base64列表为空,跳过当前影像
|
|
|
+ if (StringUtils.isEmpty(imageCode) || CollectionUtils.isEmpty(imageBase64List)) {
|
|
|
+ log.warn("影像上传 - 影像编码为空或Base64列表为空,跳过: imageCode={}", imageCode);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据影像编码确定类型路径
|
|
|
+ String typePath = getTypePathByImageCode(imageCode);
|
|
|
+ if (StringUtils.isEmpty(typePath)) {
|
|
|
+ log.warn("影像上传 - 未匹配到影像类型路径,跳过: imageCode={}", imageCode);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 遍历Base64图片列表,为每张图片构建一个上传参数
|
|
|
+ for (InsuranceImageVo.ImageDTO imageDTO : imageBase64List) {
|
|
|
+ CarCheckUploadFileVerifyImgParam param = new CarCheckUploadFileVerifyImgParam();
|
|
|
+
|
|
|
+ // 设置渠道编码(固定值)
|
|
|
+ param.setChannelCode("OffWeb");
|
|
|
+ // 设置保司订单号(核保成功后返回)
|
|
|
+ param.setFullProposalNo(companyOrderNo);
|
|
|
+ // 设置拍摄城市(暂时为空)
|
|
|
+ param.setShootCity("");
|
|
|
+ // 设置拍摄省份(暂时为空)
|
|
|
+ param.setShootProvince("");
|
|
|
+ // 设置上传类型(1表示正常上传)
|
|
|
+ param.setUploadType(1);
|
|
|
+ // 设置类型路径(根据影像类型确定)
|
|
|
+ param.setTypePath(typePath);
|
|
|
+ // 设置Base64编码的图片内容
|
|
|
+ param.setBase64File(imageDTO.getImageBase64Str());
|
|
|
+ // 生成Base64文件名(保司订单号+类型路径+序号)
|
|
|
+ param.setBase64FileName(companyOrderNo + typePath + "0.png");
|
|
|
+ // 生成文件类型标识(包含时间戳确保唯一性)
|
|
|
+ param.setFileType("1fileOrgName" + typePath + System.currentTimeMillis() + "0");
|
|
|
+
|
|
|
+ uploadParamsList.add(param);
|
|
|
+ log.debug("影像上传 - 构建上传参数: imageCode={}, typePath={}", imageCode, typePath);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return uploadParamsList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据影像编码获取类型路径
|
|
|
+ * <p>
|
|
|
+ * 影像类型与类型路径的映射关系:
|
|
|
+ * - C01/C02: 行驶证(正面/反面)-> 01-15-01(投保业务-车辆证件-行驶证)
|
|
|
+ * - C02/D02: 身份证(正面/反面)-> 01-14-01(投保业务-证件照-证件照)
|
|
|
+ *
|
|
|
+ * @param imageCode 影像编码
|
|
|
+ * @return 类型路径,未匹配返回null
|
|
|
+ */
|
|
|
+ private String getTypePathByImageCode(String imageCode) {
|
|
|
+ if (imageCode == null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ return switch (imageCode) {
|
|
|
+ case "C01", "D01" -> "01-15-01"; // 行驶证
|
|
|
+ case "C02", "D02" -> "01-14-01"; // 身份证
|
|
|
+ default -> null;
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
// {
|
|
|
// // 核保资料 / 新增设备发票与清单
|
|
|
@@ -659,6 +845,9 @@ public class TKQuotationBaseServiceImpl implements TKQuotationBaseService {
|
|
|
orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.UNDERWRITED);
|
|
|
} else if (orderStatus.equals("X")) {
|
|
|
orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.ORDER_CLOSE);
|
|
|
+ } else if (orderStatus.equals("A3")) {
|
|
|
+ orderStatusResultVo.setOrderStatus(InsOrderStatusEnum.STAFF_PROCESS);
|
|
|
+ orderStatusResultVo.setErrorMsg(tkEntranceFor000086Result.getCarRuleMessage());
|
|
|
}
|
|
|
orderStatusResultVo.setJqPolicyno(tkEntranceFor000086Result.getQuotationNoCI());
|
|
|
orderStatusResultVo.setSyPolicyno(tkEntranceFor000086Result.getQuotationNoBI());
|