Parcourir la source

发行接口

master
qiubh il y a 2 mois
Parent
révision
f60e941d85

+ 100
- 110
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/order/VehicleUploadManager.java Voir le fichier

@@ -4,7 +4,6 @@ import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.common.pub.StringTools;
import cn.com.taiji.core.entity.basic.QtkCustomerInfo;
import cn.com.taiji.core.entity.basic.QtkVehicleInfo;
import cn.com.taiji.core.entity.comm.OcrResult;
import cn.com.taiji.core.entity.dict.basic.IdType;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.entity.dict.basic.UseUserType;
@@ -13,10 +12,9 @@ import cn.com.taiji.core.entity.dict.issue.IssueOrderStep;
import cn.com.taiji.core.entity.issue.IssueOrderinfo;
import cn.com.taiji.core.entity.issue.IssueOrderinfoExt;
import cn.com.taiji.core.entity.issue.IssueProduct;
import cn.com.taiji.core.entity.issue.TransactionStatus;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse;
import cn.com.taiji.core.model.comm.protocol.ias.order.VehicleUploadRequest;
import cn.com.taiji.core.model.comm.protocol.ods.ois.issue.OisBasicDataUpdateRequest;
import cn.com.taiji.core.model.comm.protocol.ias.order.VehicleUploadResponse;
import cn.com.taiji.core.model.comm.protocol.ods.oqs.issue.OqsVehicleQueryRequest;
import cn.com.taiji.core.model.comm.protocol.ods.oqs.issue.OqsVehicleQueryResponse;
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder;
@@ -24,12 +22,10 @@ import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.repo.jpa.comm.OcrResultRepo;
import cn.com.taiji.ias.dict.DataType;
import cn.com.taiji.ias.model.ServiceLogEvent;
import cn.hutool.core.util.ObjectUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Objects;

@@ -39,12 +35,6 @@ public class VehicleUploadManager extends AbstractOrderManager<VehicleUploadRequ
public static final String ORDER_EXT = "orderExt";
public static final String STATUS = "status";

@Autowired
private VehicleManageRepo vehicleManageRepo;
@Autowired
private IssueOrderVerificationRuleManager issueOrderVerificationRuleManager;
@Autowired
private CsmsnReleaseProStandardsRepo csmsnReleaseProStandardsRepo;
@Autowired
private OcrResultRepo ocrResultRepo;

@@ -110,7 +100,7 @@ public class VehicleUploadManager extends AbstractOrderManager<VehicleUploadRequ
// 保存订单
IssueOrderinfoExt ext = saveOrder(order, vehicleInfo, request);
// 自动审核 货车类型走 人工审核
Boolean b = audit(request, order, ext);
// Boolean b = audit(request, order, ext);
// 保存办理记录日志
// bizServiceLog(request.getOpenId(), ServiceType.VECHICLEINFORMATIONCHANGE, order, order.getVehicleId());
// 操作日志
@@ -118,7 +108,7 @@ public class VehicleUploadManager extends AbstractOrderManager<VehicleUploadRequ
dataStream.put(ORDER, order);
dataStream.put(VEHICLE_INFO, vehicleInfo);
dataStream.put(ORDER_EXT, ext);
dataStream.put(STATUS,b?1:2);
// dataStream.put(STATUS,b?1:2);
//回调通知渠道
if (SourceType.CHANNEL.equals(order.getOrderSource())) {
callBackQd(order, ext.getCancelReason());
@@ -126,28 +116,28 @@ public class VehicleUploadManager extends AbstractOrderManager<VehicleUploadRequ
}

@Override
protected AbstractSignTypeResponse getRes(IssueVehicleUploadRequest req, ServiceLogEvent event,
protected AbstractSignTypeResponse getRes(VehicleUploadRequest req, ServiceLogEvent event,
Map<String, Object> dataStream) throws ServiceHandleException {
// CsmsnOrderinfo order = (CsmsnOrderinfo)dataStream.get(ORDER);
CsmsnOrderinfoExt csmsnOrderinfoExt = (CsmsnOrderinfoExt)dataStream.get(ORDER_EXT);
// CsmsnOrderinfoExt csmsnOrderinfoExt = (CsmsnOrderinfoExt)dataStream.get(ORDER_EXT);
Integer i = (Integer)dataStream.get(STATUS);
IssueVehicleUploadResponse res = new IssueVehicleUploadResponse();
VehicleUploadResponse res = new VehicleUploadResponse();
res.setReceiveTime(getReceiveTimeStr(event));
// res.setVehicleId(order.getVehicleId());
res.setApprovalStatus(i);
res.setReason(csmsnOrderinfoExt.getAuditReason());
// res.setReason(csmsnOrderinfoExt.getAuditReason());
return res;
}

@Override
protected void onSuccessInternal(IssueVehicleUploadRequest req, ServiceLogEvent event,
protected void onSuccessInternal(VehicleUploadRequest req, ServiceLogEvent event,
Map<String, Object> dataStream) {
CsmsnOrderinfo order = (CsmsnOrderinfo)dataStream.get(ORDER);
// CsmsnOrderinfo order = (CsmsnOrderinfo)dataStream.get(ORDER);
QtkVehicleInfo vehicleInfo = (QtkVehicleInfo)dataStream.get(VEHICLE_INFO);
executor.execute(() -> {
try {
syncVehicleInfo(order, vehicleInfo);
uploadYgzVehicleInfo(order, vehicleInfo);
// syncVehicleInfo(order, vehicleInfo);
// uploadYgzVehicleInfo(order, vehicleInfo);
} catch (Exception e) {
logger.error("同步车辆数据失败", e);
}
@@ -155,23 +145,23 @@ public class VehicleUploadManager extends AbstractOrderManager<VehicleUploadRequ

}

public void uploadYgzVehicleInfo(CsmsnOrderinfo order, QtkVehicleInfo vehicleInfo) throws ServiceHandleException {
TransactionStatus transactionStatus =
transactionManager.findByBizTypeAndBizId(ISSUE_VEHICLE_UPLOAD, order.getOrderNo());
// FIXME 改成实时上传?
ygzUploader.saveLocalVehicleRequestJson(vehicleInfo, Operation.valueOf(transactionStatus.getInfo()),
DataSourceEnum.DSI_INTERFACE);
transactionManager.deleteById(transactionStatus.getId());
}
public void syncVehicleInfo(CsmsnOrderinfo order, QtkVehicleInfo vehicleInfo) throws ServiceHandleException {
TransactionStatus transactionStatus =
transactionManager.findByBizTypeAndBizId(ISSUE_VEHICLE_SYNC, order.getOrderNo());
OisBasicDataUpdateRequest req = new OisBasicDataUpdateRequest();
req.setVehicleInfo(vehicleInfo);
jsonPostRepeat(req);
transactionManager.deleteById(transactionStatus.getId());
}
// public void uploadYgzVehicleInfo(CsmsnOrderinfo order, QtkVehicleInfo vehicleInfo) throws ServiceHandleException {
// TransactionStatus transactionStatus =
// transactionManager.findByBizTypeAndBizId(ISSUE_VEHICLE_UPLOAD, order.getOrderNo());
// // FIXME 改成实时上传?
// ygzUploader.saveLocalVehicleRequestJson(vehicleInfo, Operation.valueOf(transactionStatus.getInfo()),
// DataSourceEnum.DSI_INTERFACE);
// transactionManager.deleteById(transactionStatus.getId());
// }
//
// public void syncVehicleInfo(CsmsnOrderinfo order, QtkVehicleInfo vehicleInfo) throws ServiceHandleException {
// TransactionStatus transactionStatus =
// transactionManager.findByBizTypeAndBizId(ISSUE_VEHICLE_SYNC, order.getOrderNo());
// OisBasicDataUpdateRequest req = new OisBasicDataUpdateRequest();
// req.setVehicleInfo(vehicleInfo);
// jsonPostRepeat(req);
// transactionManager.deleteById(transactionStatus.getId());
// }

private IssueOrderinfoExt saveOrder(IssueOrderinfo order, QtkVehicleInfo vehicleInfo, VehicleUploadRequest request) throws ServiceHandleException {
order.setVehicleClass(vehicleInfo.getType());
@@ -427,76 +417,76 @@ public class VehicleUploadManager extends AbstractOrderManager<VehicleUploadRequ
}
}

private Boolean audit(VehicleUploadRequest request, IssueOrderinfo order, IssueOrderinfoExt ext) {
Boolean b = autoVerifyV2(request,order, ext);
Boolean c = issueOrderVerificationRuleManager.autoVerify(order, csmsnOrderinfoExt);
logger.info("系统审核结果 orderNo:{},autoVerify:{}", order.getOrderNo(), b);
// 是否被人工审核 1:人工 2:系统 0:未审核。人工审核时再变成1
order.setArtificialStatus(2);
if (order.getVanType() == 2) {
order.setOrderStep(IssueOrderStep.ORDER_STEP_6.getCode());
}else if (b && c) {
if (OrderSourceEnum.CHANNEL.equals(request.getSource())) {
if (request.getChannelType().equals(1)) {// 线上
//20250408修改,线上不需要支付,审核通过直接待签约
order.setOrderStep(IssueOrderStep.ORDER_STEP_3.getCode());//待签约
} else {//线下
order.setOrderStep(IssueOrderStep.ORDER_STEP_4.getCode());//线下待支付
}
}else {
Integer nextStep = order.getWhetherToMail() ? IssueOrderStep.ORDER_STEP_8.getCode()
: IssueOrderStep.ORDER_STEP_10.getCode();//待发货,待激活
order.setOrderStep(nextStep);
}
}else {
order.setOrderStep(IssueOrderStep.ORDER_STEP_6.getCode());
}
orderInfoRepo.save(order);
return b;
}
public Boolean autoVerifyV2(IssueVehicleUploadRequest request,CsmsnOrderinfo orderInfo, CsmsnOrderinfoExt orderinfoExt) {
try {
logger.info("车辆核验>>>");
VerificationRuleRequest vehicleCheck = new VerificationRuleRequest();
vehicleCheck.setOrderId(orderInfo.getOrderNo());
vehicleCheck.setVehicleId(orderInfo.getVehicleId());
vehicleCheck.setIsOnline(1);
vehicleCheck.setBussinessType(1);
vehicleCheck.setType(orderInfo.getVehicleClass());// 车型,收费车型,对应vehicle.type
vehicleCheck.setVehicleCustomerType(orderinfoExt.getUseUserType());
// fixme 车辆检测后面更换新接口,这里要更改成调新接口
//20250334增加车主校验
String idError = "";
boolean idOcrFlag = true;
if (StringTools.hasText(request.getOwnerPosImgUrl())) {
String post = request.getOwnerPosImgUrl().substring(request.getOwnerPosImgUrl().lastIndexOf("/") + 1);
List<OcrResult> vehicleLicenseFront =
ocrResultRepo.findByUrlLikeAndOcrTypeOrderByCreateTimeDesc("%" + post + "%", "id_front");
if (!ObjectUtil.isEmpty(vehicleLicenseFront)) {
OcrResult ocrResult = vehicleLicenseFront.get(0);
IdCardOcrResponse idCardOcrResponse = com.alibaba.fastjson2.JSON.parseObject(ocrResult.getResult(), IdCardOcrResponse.class);
if (!idCardOcrResponse.getName().equals(request.getIdName())) {
idError= "ocr姓名与身份证识别不一致";
idOcrFlag = false;
}
}
}
VerificationRuleResponse response = issueOrderVerificationRuleManager.assVerificationRule(vehicleCheck);
if (2 == response.getStatus() && idOcrFlag) {
return true;
}
// FIXME 记录一下(机审失败原因,现在扩展表,所以也要更新扩展表)
// orderInfo.setAuditReason(response.getMsg());
orderinfoExt.setAuditReason(response.getMsg()+","+idError);
// orderInfoRepo.save(orderInfo);
orderInfoExtRepo.save(orderinfoExt);
return false;
} catch (Exception e) {
logger.error("车辆核验异常", e);
orderinfoExt.setAuditReason("车辆核验异常");
// orderInfoRepo.save(orderInfo);
orderInfoExtRepo.save(orderinfoExt);
return false;
}
}
// private Boolean audit(VehicleUploadRequest request, IssueOrderinfo order, IssueOrderinfoExt ext) {
// Boolean b = autoVerifyV2(request,order, ext);
// Boolean c = issueOrderVerificationRuleManager.autoVerify(order, csmsnOrderinfoExt);
// logger.info("系统审核结果 orderNo:{},autoVerify:{}", order.getOrderNo(), b);
// // 是否被人工审核 1:人工 2:系统 0:未审核。人工审核时再变成1
// order.setArtificialStatus(2);
// if (order.getVanType() == 2) {
// order.setOrderStep(IssueOrderStep.ORDER_STEP_6.getCode());
// }else if (b && c) {
// if (OrderSourceEnum.CHANNEL.equals(request.getSource())) {
// if (request.getChannelType().equals(1)) {// 线上
// //20250408修改,线上不需要支付,审核通过直接待签约
// order.setOrderStep(IssueOrderStep.ORDER_STEP_3.getCode());//待签约
// } else {//线下
// order.setOrderStep(IssueOrderStep.ORDER_STEP_4.getCode());//线下待支付
// }
// }else {
// Integer nextStep = order.getWhetherToMail() ? IssueOrderStep.ORDER_STEP_8.getCode()
// : IssueOrderStep.ORDER_STEP_10.getCode();//待发货,待激活
// order.setOrderStep(nextStep);
// }
// }else {
// order.setOrderStep(IssueOrderStep.ORDER_STEP_6.getCode());
// }
// orderInfoRepo.save(order);
// return b;
// }
// public Boolean autoVerifyV2(IssueVehicleUploadRequest request,CsmsnOrderinfo orderInfo, CsmsnOrderinfoExt orderinfoExt) {
// try {
// logger.info("车辆核验>>>");
// VerificationRuleRequest vehicleCheck = new VerificationRuleRequest();
// vehicleCheck.setOrderId(orderInfo.getOrderNo());
// vehicleCheck.setVehicleId(orderInfo.getVehicleId());
// vehicleCheck.setIsOnline(1);
// vehicleCheck.setBussinessType(1);
// vehicleCheck.setType(orderInfo.getVehicleClass());// 车型,收费车型,对应vehicle.type
// vehicleCheck.setVehicleCustomerType(orderinfoExt.getUseUserType());
// // fixme 车辆检测后面更换新接口,这里要更改成调新接口
// //20250334增加车主校验
// String idError = "";
// boolean idOcrFlag = true;
// if (StringTools.hasText(request.getOwnerPosImgUrl())) {
// String post = request.getOwnerPosImgUrl().substring(request.getOwnerPosImgUrl().lastIndexOf("/") + 1);
// List<OcrResult> vehicleLicenseFront =
// ocrResultRepo.findByUrlLikeAndOcrTypeOrderByCreateTimeDesc("%" + post + "%", "id_front");
// if (!ObjectUtil.isEmpty(vehicleLicenseFront)) {
// OcrResult ocrResult = vehicleLicenseFront.get(0);
// IdCardOcrResponse idCardOcrResponse = com.alibaba.fastjson2.JSON.parseObject(ocrResult.getResult(), IdCardOcrResponse.class);
// if (!idCardOcrResponse.getName().equals(request.getIdName())) {
// idError= "ocr姓名与身份证识别不一致";
// idOcrFlag = false;
// }
// }
// }
// VerificationRuleResponse response = issueOrderVerificationRuleManager.assVerificationRule(vehicleCheck);
// if (2 == response.getStatus() && idOcrFlag) {
// return true;
// }
// // FIXME 记录一下(机审失败原因,现在扩展表,所以也要更新扩展表)
// // orderInfo.setAuditReason(response.getMsg());
// orderinfoExt.setAuditReason(response.getMsg()+","+idError);
//// orderInfoRepo.save(orderInfo);
// orderInfoExtRepo.save(orderinfoExt);
// return false;
// } catch (Exception e) {
// logger.error("车辆核验异常", e);
// orderinfoExt.setAuditReason("车辆核验异常");
//// orderInfoRepo.save(orderInfo);
// orderInfoExtRepo.save(orderinfoExt);
// return false;
// }
// }
}

+ 21
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/model/issue/OrderVerificationModel.java Voir le fichier

@@ -0,0 +1,21 @@
package cn.com.taiji.ias.model.issue;

import cn.com.taiji.common.entity.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import org.apache.poi.ss.formula.functions.T;

import java.util.List;

@Getter
@Setter
public class OrderVerificationModel extends BaseEntity {

private String orderNo;// 订单号
private String customerName;// 用户姓名
private String idNum;// 身份证号

private String msg;

private List<T> list;
}

Chargement…
Annuler
Enregistrer