@@ -1,12 +1,11 @@ | |||
package cn.com.taiji.core.entity.issue; | |||
import cn.com.taiji.core.entity.AbstractStringPropertyUUIDEntity; | |||
import cn.com.taiji.core.entity.dict.issue.OrderType; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
import javax.persistence.Column; | |||
import javax.persistence.Entity; | |||
import javax.persistence.Table; | |||
import javax.persistence.*; | |||
import java.time.LocalDateTime; | |||
@@ -19,6 +18,9 @@ import java.time.LocalDateTime; | |||
@Table(name = "ISSUE_ORDER_VERIFICATION") | |||
public class IssueOrderVerification extends AbstractStringPropertyUUIDEntity { | |||
@Column(name = "TYPE") | |||
@Enumerated(EnumType.STRING) | |||
private OrderType type;// 类型 1-发行 2-售后 | |||
@Column(name = "ORDER_NO") | |||
private String orderNo;//订单编号 | |||
@Column(name = "VERIFY_TIME") |
@@ -1,4 +1,4 @@ | |||
package cn.com.taiji.ias.tools; | |||
package cn.com.taiji.core.manager.tools; | |||
import cn.com.taiji.common.pub.TimeTools; | |||
@@ -0,0 +1,107 @@ | |||
package cn.com.taiji.core.manager.tools.issue; | |||
import cn.com.taiji.common.manager.AbstractManager; | |||
import cn.com.taiji.common.manager.ManagerException; | |||
import cn.com.taiji.core.entity.dict.basic.VehicleType; | |||
public class IssueTools extends AbstractManager { | |||
/** | |||
* 计算收费车型 | |||
* | |||
* @param vanType 车型 1客2货3专项作业 | |||
* @param vehicleDimensions 车辆外廓尺寸 | |||
* @param approvedCount 核定载人数 | |||
* @param axleCount 轴数 | |||
* @param totalMass 总质量 | |||
* @return 收费车型 | |||
*/ | |||
public static Integer getVehicleClass(Integer vanType, String vehicleDimensions, Integer approvedCount, | |||
Integer axleCount, Integer totalMass) throws ManagerException { | |||
switch (vanType) { | |||
case 1: | |||
return mathCar(vehicleDimensions, approvedCount); | |||
case 2: | |||
return mathTruck(vehicleDimensions, axleCount, totalMass); | |||
case 3: | |||
return mathWorkVehicle(vehicleDimensions, axleCount, totalMass); | |||
default: | |||
throw new ManagerException(String.format("未知的车辆类型[%s]", vanType)); | |||
} | |||
} | |||
private static int mathCar(String vehicleDimensions, Integer approvedCount) throws ManagerException { | |||
// 车辆外廓尺寸 | |||
int l = Integer.parseInt(vehicleDimensions.split("[Xx×*]")[0]); | |||
// 车长小于 6 000mm 且核定载人数不大于 9 人的载客汽车 | |||
if (l < 6000 && approvedCount <= 9) { | |||
return VehicleType.CAR_TYPE_1.getTypeCode(); | |||
} else if (l < 6000 && approvedCount <= 19) { | |||
// 车长小于 6 000mm 且核定载人数为(10 ~ 19)人的载客汽车 | |||
return VehicleType.CAR_TYPE_2.getTypeCode(); | |||
} else if (l >= 6000 && approvedCount <= 39) { | |||
// 车长不小于 6 000mm 且核定载人数不大 于 39 人的载客汽车 | |||
return VehicleType.CAR_TYPE_3.getTypeCode(); | |||
} else if (l >= 6000) { | |||
// 车长不小于 6 000mm 且核定载人数不小 于 40 人的载客汽车 | |||
return VehicleType.CAR_TYPE_4.getTypeCode(); | |||
} else { | |||
// 数据不合规 | |||
throw new ManagerException("车辆基础参数不合规,无法计算收费车型"); | |||
} | |||
} | |||
private static int mathTruck(String vehicleDimensions, Integer axleCount, Integer totalMass) throws ManagerException { | |||
// 车辆外廓尺寸 | |||
int l = Integer.parseInt(vehicleDimensions.split("[Xx×*]")[0]); | |||
if (axleCount == 2 && l < 6000 && totalMass < 4500) { | |||
// 总轴数=2 车长小于 6 000mm 且最大允许总质量小于 4 500kg | |||
return VehicleType.TRUCK_TYPE_1.getTypeCode(); | |||
} else if (axleCount == 2) { | |||
// 总轴数=2 车长不小于 6 000mm 或最大允许总质量不小于 4500kg | |||
return VehicleType.TRUCK_TYPE_2.getTypeCode(); | |||
} else if (axleCount == 3) { | |||
// 总轴数=3 | |||
return VehicleType.TRUCK_TYPE_3.getTypeCode(); | |||
} else if (axleCount == 4) { | |||
// 总轴数=4 | |||
return VehicleType.TRUCK_TYPE_4.getTypeCode(); | |||
} else if (axleCount == 5) { | |||
// 总轴数=5 | |||
return VehicleType.TRUCK_TYPE_5.getTypeCode(); | |||
} else if (axleCount == 6) { | |||
// 总轴数=6 | |||
return VehicleType.TRUCK_TYPE_6.getTypeCode(); | |||
} else { | |||
// 数据不合规 | |||
throw new ManagerException("车辆基础参数不合规,无法计算收费车型"); | |||
} | |||
} | |||
private static int mathWorkVehicle(String vehicleDimensions, Integer axleCount, Integer totalMass) throws ManagerException { | |||
// 车辆外廓尺寸 | |||
int l = Integer.parseInt(vehicleDimensions.split("[Xx×*]")[0]); | |||
if (axleCount == 2) { | |||
// 总轴数=2 车长小于 6 000mm 且最大允许总质量小于 4 500kg | |||
if (l < 6000 && totalMass < 4500) { | |||
return VehicleType.ZXZYC_1.getTypeCode(); | |||
} else { | |||
// 总轴数=2 车长不小于 6 000mm 或最大允许总质量不小于 4 500kg | |||
return VehicleType.ZXZYC_2.getTypeCode(); | |||
} | |||
// 根据车轴数决定几项专项作业车 | |||
} else if (axleCount == 3) { | |||
return VehicleType.ZXZYC_3.getTypeCode(); | |||
} else if (axleCount == 4) { | |||
return VehicleType.ZXZYC_4.getTypeCode(); | |||
} else if (axleCount == 5) { | |||
return VehicleType.ZXZYC_5.getTypeCode(); | |||
} else if (axleCount == 6) { | |||
return VehicleType.ZXZYC_6.getTypeCode(); | |||
} else { | |||
throw new ManagerException("车辆基础参数不合规,无法计算收费车型"); | |||
} | |||
} | |||
} |
@@ -1,10 +0,0 @@ | |||
package cn.com.taiji.core.manager.tools.ocr; | |||
import cn.com.taiji.common.model.BaseModel; | |||
import cn.com.taiji.core.entity.dict.OcrType; | |||
public interface BaiduOcrManager { | |||
public BaseModel doOcr(OcrType type, String imagePath) throws Exception; | |||
} |
@@ -1,43 +0,0 @@ | |||
/** | |||
* @Title YgzUploadUtil.java | |||
* @Package | |||
* @Description TODO | |||
* @author | |||
* @date | |||
* @version V1.0 | |||
*/ | |||
package cn.com.taiji.core.manager.tools.ocr; | |||
import cn.com.taiji.common.manager.AbstractManager; | |||
import cn.com.taiji.common.model.BaseModel; | |||
import cn.com.taiji.core.entity.dict.OcrType; | |||
import cn.com.taiji.core.model.comm.protocol.ats.ocr.IdCardOcrRequest; | |||
import cn.com.taiji.core.repo.jpa.comm.OcrResultRepo; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
/** | |||
* @author : qiubh | |||
* @date : 2025-05-29 | |||
*/ | |||
@Service | |||
public class BaiduOcrManagerImpl extends AbstractManager implements BaiduOcrManager { | |||
@Autowired | |||
private OcrResultRepo repo; | |||
@Override | |||
public BaseModel doOcr(OcrType type, String imagePath) throws Exception { | |||
switch (type) { | |||
case id_front: | |||
IdCardOcrRequest req = new IdCardOcrRequest(); | |||
req.setImageType("1"); | |||
req.setUrl(imagePath); | |||
// IdCardOcrResponse res = jsonPost | |||
} | |||
return null; | |||
} | |||
} |
@@ -118,7 +118,7 @@ public class VehicleUploadRequest extends AbstractOrderRequest<VehicleUploadResp | |||
} | |||
// 牵引车必填字段 | |||
if (tractorSign == 1) { | |||
validator.validFieldNotNull("roadTransportPermitPicUrl", roadTransportPermitPicUrl); | |||
validator.validFieldNotBlank("roadTransportPermitPicUrl", roadTransportPermitPicUrl); | |||
} | |||
} |
@@ -2,7 +2,12 @@ package cn.com.taiji.core.repo.jpa.comm; | |||
import cn.com.taiji.common.repo.jpa.AbstractJpaRepo; | |||
import cn.com.taiji.core.entity.comm.OcrResult; | |||
import cn.com.taiji.core.entity.dict.OcrType; | |||
import org.springframework.data.jpa.repository.Query; | |||
public interface OcrResultRepo extends AbstractJpaRepo<OcrResult, String>{ | |||
@Query(" from OcrResult where url = ?1 and ocrType = ?2") | |||
OcrResult findByUrlAndType(String url, OcrType ocrType); | |||
} |
@@ -2,6 +2,7 @@ package cn.com.taiji.userw.manager; | |||
import cn.com.taiji.common.manager.ManagerException; | |||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||
import cn.com.taiji.common.pub.json.JsonTools; | |||
import cn.com.taiji.core.entity.comm.OcrResult; | |||
import cn.com.taiji.core.entity.dict.OcrType; | |||
import cn.com.taiji.core.model.comm.protocol.ats.AbstractAtsResponse; | |||
@@ -9,6 +10,7 @@ import cn.com.taiji.core.model.comm.protocol.ats.ocr.*; | |||
import cn.com.taiji.core.repo.jpa.comm.OcrResultRepo; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import java.io.IOException; | |||
import java.time.LocalDateTime; | |||
public abstract class AbstractUserwManager extends AbstractCommManager { | |||
@@ -20,21 +22,33 @@ public abstract class AbstractUserwManager extends AbstractCommManager { | |||
* type:1-身份证-人像面 2-身份证-国徽面 3-行驶证前页 4-行驶证背页 5-营业执照 | |||
* imagePath:图片地址 | |||
*/ | |||
protected AbstractAtsResponse getOcrResult(Integer type, String imagePath) throws ManagerException { | |||
protected AbstractAtsResponse getOcrResult(Integer type, String imagePath) throws ManagerException, IOException { | |||
OcrResult ocrResult = new OcrResult(); | |||
ocrResult.setCreateTime(LocalDateTime.now()); | |||
ocrResult.setUrl(imagePath); | |||
ocrResult.setOcrType(OcrType.findByCode(type)); | |||
// 相同的图片,直接取已有的结果 | |||
OcrResult exist = ocrResultRepo.findByUrlAndType(ocrResult.getUrl(), ocrResult.getOcrType()); | |||
switch (ocrResult.getOcrType()) { | |||
case id_front: | |||
if (exist != null) | |||
return JsonTools.json2Object(exist.getResult(), IdCardOcrResponse.class); | |||
return doIdCardOcr(1, imagePath, ocrResult); | |||
case id_back: | |||
if (exist != null) | |||
return JsonTools.json2Object(exist.getResult(), IdCardOcrResponse.class); | |||
return doIdCardOcr(2, imagePath, ocrResult); | |||
case vehicle_license_front: | |||
if (exist != null) | |||
return JsonTools.json2Object(exist.getResult(), VehicleLicenseOcrResponse.class); | |||
return doVehicleLicenseOcr(1, imagePath, ocrResult); | |||
case vehicle_license_back: | |||
if (exist != null) | |||
return JsonTools.json2Object(exist.getResult(), VehicleLicenseOcrResponse.class); | |||
return doVehicleLicenseOcr(2, imagePath, ocrResult); | |||
case business_license: | |||
if (exist != null) | |||
return JsonTools.json2Object(exist.getResult(), BusinessLicenseOcrResponse.class); | |||
return doBusinessLicenseOcr(imagePath, ocrResult); | |||
default: | |||
throw new ManagerException("OCR类型异常"); | |||
@@ -42,10 +56,10 @@ public abstract class AbstractUserwManager extends AbstractCommManager { | |||
} | |||
private IdCardOcrResponse doIdCardOcr(int type, String imagePath, OcrResult ocrResult) throws ManagerException { | |||
IdCardOcrRequest req = new IdCardOcrRequest(); | |||
req.setImageType(type+""); | |||
req.setUrl(imagePath); | |||
try { | |||
IdCardOcrRequest req = new IdCardOcrRequest(); | |||
req.setImageType(type+""); | |||
req.setUrl(imagePath); | |||
IdCardOcrResponse res = jsonPostRepeat(req); | |||
ocrResult.setResult(res.getBizContent()); | |||
ocrResult.setCode(res.getRespCode()); |
@@ -16,6 +16,7 @@ dependencies { | |||
implementation "${groupname}:sample-protocol:1.0.0-SNAPSHOT" | |||
implementation "${groupname}:ias-protocol:1.0.0-SNAPSHOT" | |||
implementation "${groupname}:ods-protocol:1.0.0-SNAPSHOT" | |||
implementation "${groupname}:ats-protocol:1.0.0-SNAPSHOT" | |||
implementation "${groupname}:smp-protocol:1.0.0-SNAPSHOT" | |||
implementation "com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery" | |||
implementation "com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config" |
@@ -0,0 +1,9 @@ | |||
package cn.com.taiji.ias.manager.audit; | |||
import cn.com.taiji.ias.model.issue.OrderVerificationModel; | |||
public interface VerificationRuleManager { | |||
public String autoVerify(OrderVerificationModel model) throws Exception; | |||
} |
@@ -0,0 +1,150 @@ | |||
package cn.com.taiji.ias.manager.audit; | |||
import cn.com.taiji.common.manager.ManagerException; | |||
import cn.com.taiji.common.pub.BeanTools; | |||
import cn.com.taiji.common.pub.json.JsonTools; | |||
import cn.com.taiji.core.entity.comm.OcrResult; | |||
import cn.com.taiji.core.entity.dict.OcrType; | |||
import cn.com.taiji.core.entity.dict.basic.IdType; | |||
import cn.com.taiji.core.entity.issue.IssueOrderVerification; | |||
import cn.com.taiji.core.manager.tools.issue.IssueTools; | |||
import cn.com.taiji.core.model.comm.protocol.ats.ocr.BusinessLicenseOcrResponse; | |||
import cn.com.taiji.core.model.comm.protocol.ats.ocr.IdCardOcrResponse; | |||
import cn.com.taiji.core.model.comm.protocol.ats.ocr.VehicleLicenseOcrResponse; | |||
import cn.com.taiji.core.repo.jpa.comm.OcrResultRepo; | |||
import cn.com.taiji.core.repo.jpa.issue.IssueOrderVerificationRepo; | |||
import cn.com.taiji.ias.manager.AbstractCommManager; | |||
import cn.com.taiji.ias.model.issue.OrderVerificationModel; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
import java.io.IOException; | |||
@Service | |||
public class VerificationRuleManagerImpl extends AbstractCommManager implements VerificationRuleManager { | |||
@Autowired | |||
private OcrResultRepo ocrResultRepo; | |||
@Autowired | |||
private IssueOrderVerificationRepo verificationRepo; | |||
@Override | |||
public String autoVerify(OrderVerificationModel model) throws ManagerException { | |||
StringBuilder builder = new StringBuilder(); | |||
// 1-校验车型-接口传的和系统算的比对 | |||
Integer vehicleClass = IssueTools.getVehicleClass(model.getVanType(), model.getVehicleDimensions(), | |||
model.getApprovedCount(), model.getAxleCount(), model.getTotalMass()); | |||
if (vehicleClass.intValue() != model.getFeeVehicleType().intValue()) { | |||
builder.append("收费车型【" + model.getFeeVehicleType() + "】与系统计算结果【" + vehicleClass + "】不一致;"); | |||
} | |||
// 2-OCR结果比对 | |||
varifyCustomer(model, builder);// 人 | |||
varifyVehicle(model, builder);// 车 | |||
// 3-车辆vin-结合公告表 | |||
//保存审核记录 | |||
IssueOrderVerification verification = new IssueOrderVerification(); | |||
BeanTools.copyProperties(model, verification); | |||
verification.setFailReason(builder.toString()); | |||
verification.setVerifyResult(hasText(verification.getFailReason())?0:1); | |||
verificationRepo.save(verification); | |||
return builder.toString(); | |||
} | |||
private void varifyVehicle(OrderVerificationModel model, StringBuilder builder) { | |||
OcrResult pos = ocrResultRepo.findByUrlAndType(model.getVehPosImgUrl(), OcrType.vehicle_license_front); | |||
if (pos == null) { | |||
builder.append("行驶证主页照片未找到识别结果;"); | |||
} else { | |||
try { | |||
VehicleLicenseOcrResponse res = JsonTools.json2Object(pos.getResult(), VehicleLicenseOcrResponse.class); | |||
if (!model.getVehiclePlate().equals(res.getPlate_a())) { | |||
builder.append("车牌号【" + model.getVehiclePlate() + "】与主页识别结果【" + res.getPlate_a() + "】不一致;"); | |||
} | |||
if (!model.getOwnerName().equals(res.getMan())) { | |||
builder.append("车主姓名【" + model.getOwnerName() + "】与系统识别结果【" + res.getMan() + "】不一致;"); | |||
} | |||
if (!model.getVin().equals(res.getVin())) { | |||
builder.append("VIN【" + model.getVin() + "】与系统识别结果【" + res.getVin() + "】不一致;"); | |||
} | |||
if (!model.getVin().equals(res.getVin())) { | |||
builder.append("VIN【" + model.getVin() + "】与系统识别结果【" + res.getVin() + "】不一致;"); | |||
} | |||
} catch (IOException e) { | |||
builder.append("行驶证主页照片识别结果异常;"); | |||
} | |||
} | |||
OcrResult neg = ocrResultRepo.findByUrlAndType(model.getVehPosImgUrl(), OcrType.vehicle_license_back); | |||
if (neg == null) { | |||
builder.append("行驶证副页照片未找到识别结果;"); | |||
} else { | |||
try { | |||
VehicleLicenseOcrResponse res = JsonTools.json2Object(neg.getResult(), VehicleLicenseOcrResponse.class); | |||
if (!model.getVehiclePlate().equals(res.getPlate_b())) { | |||
builder.append("车牌号【" + model.getVehiclePlate() + "】与副页识别结果【" + res.getPlate_b() + "】不一致;"); | |||
} | |||
if (!model.getVin().equals(res.getVin())) { | |||
builder.append("VIN【" + model.getVin() + "】与系统识别结果【" + res.getVin() + "】不一致;"); | |||
} | |||
String vehicleDimensions = model.getVehicleDimensions().replace("mm","").replace("×","").toUpperCase(); | |||
String overall = res.getOverall().replace("mm","").replace("×","").toUpperCase(); | |||
if (!vehicleDimensions.equals(overall)) { | |||
builder.append("外廓尺寸【" + model.getVehicleDimensions() + "】与系统识别结果【" + res.getOverall() + "】不一致;"); | |||
} | |||
if (model.getVanType().intValue() == 1) { | |||
if ((model.getVehicleApprovedCount()+"人").equals(res.getApc())) { | |||
builder.append("核定载人数【" + model.getVehicleApprovedCount()+"人" + "】与系统识别结果【" + res.getApc() + "】不一致;"); | |||
} | |||
} else { | |||
if ((model.getTotalMass()+"KG").equals(res.getGross().toUpperCase())) { | |||
builder.append("总质量【" + model.getVehicleApprovedCount() + "】与系统识别结果【" + res.getApc() + "】不一致;"); | |||
} | |||
} | |||
} catch (IOException e) { | |||
builder.append("行驶证副页照片识别结果异常;"); | |||
} | |||
} | |||
} | |||
private void varifyCustomer(OrderVerificationModel model, StringBuilder builder) { | |||
// 根据图片查询OCR结果 | |||
if (IdType.SFZ.equals(model.getCustomerIdType())) { | |||
OcrResult exist = ocrResultRepo.findByUrlAndType(model.getCusPosImageUrl(), OcrType.id_front); | |||
if (exist == null) { | |||
builder.append("用户证件正面照未找到识别结果;"); | |||
} else { | |||
try { | |||
IdCardOcrResponse res = JsonTools.json2Object(exist.getResult(), IdCardOcrResponse.class); | |||
if (!model.getCustomerName().equals(res.getName())) { | |||
builder.append("用户名称【" + model.getCustomerName() + "】与系统识别结果【" + res.getName() + "】不一致;"); | |||
} | |||
if (!model.getCustomerIdNum().equals(res.getIdno())) { | |||
builder.append("用户证件号码【" + model.getCustomerIdNum() + "】与系统识别结果【" + res.getIdno() + "】不一致;"); | |||
} | |||
} catch (IOException e) { | |||
builder.append("用户证件正面照识别结果异常;"); | |||
} | |||
} | |||
} else if (IdType.TYSHXYDMZS.equals(model.getCustomerIdType())) { | |||
OcrResult exist = ocrResultRepo.findByUrlAndType(model.getCusPosImageUrl(), OcrType.business_license); | |||
if (exist == null) { | |||
builder.append("用户证件正面照未找到识别结果;"); | |||
} else { | |||
try { | |||
BusinessLicenseOcrResponse res = JsonTools.json2Object(exist.getResult(), BusinessLicenseOcrResponse.class); | |||
if (!model.getCustomerName().equals(res.getUnitName())) { | |||
builder.append("用户名称【" + model.getCustomerName() + "】与系统识别结果【" + res.getUnitName() + "】不一致;"); | |||
} | |||
if (!model.getCustomerIdNum().equals(res.getSCreditCode())) { | |||
builder.append("用户证件号码【" + model.getCustomerIdNum() + "】与系统识别结果【" + res.getSCreditCode() + "】不一致;"); | |||
} | |||
} catch (IOException e) { | |||
builder.append("用户证件正面照识别结果异常;"); | |||
} | |||
} | |||
} else { | |||
builder.append("特殊证件类型;"); | |||
} | |||
} | |||
} |
@@ -22,7 +22,6 @@ import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder; | |||
import cn.com.taiji.core.repo.jpa.issue.IssueOrderPayRepo; | |||
import cn.com.taiji.core.repo.jpa.issue.IssueProductPayRepo; | |||
import cn.com.taiji.core.repo.jpa.issue.IssueProductPromotionRepo; | |||
import cn.com.taiji.core.repo.jpa.issue.IssueProductRepo; | |||
import cn.com.taiji.ias.dict.DataType; | |||
import cn.com.taiji.ias.model.MyFinals; | |||
import cn.com.taiji.ias.model.ServiceLogEvent; |
@@ -10,6 +10,7 @@ import cn.com.taiji.core.entity.issue.IssueOrderinfo; | |||
import cn.com.taiji.core.entity.issue.IssueOrderinfoExt; | |||
import cn.com.taiji.core.entity.issue.TransactionStatus; | |||
import cn.com.taiji.core.entity.user.AccountInfo; | |||
import cn.com.taiji.core.manager.tools.MyTimeTools; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse; | |||
import cn.com.taiji.core.model.comm.protocol.ias.order.GetCustomerIdRequest; | |||
import cn.com.taiji.core.model.comm.protocol.ias.order.GetCustomerIdResponse; | |||
@@ -23,7 +24,6 @@ import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder; | |||
import cn.com.taiji.ias.dict.DataType; | |||
import cn.com.taiji.ias.model.MyFinals; | |||
import cn.com.taiji.ias.model.ServiceLogEvent; | |||
import cn.com.taiji.ias.tools.MyTimeTools; | |||
import cn.hutool.core.util.ObjectUtil; | |||
import org.springframework.stereotype.Service; | |||
@@ -1,21 +1,34 @@ | |||
package cn.com.taiji.ias.model.issue; | |||
import cn.com.taiji.common.entity.BaseEntity; | |||
import cn.com.taiji.core.entity.dict.basic.IdType; | |||
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 Integer type;// 类型 1-发行 2-售后 | |||
private String orderNo;// 订单号 | |||
private IdType customerIdType;// 用户证据类型 | |||
private String customerName;// 用户姓名 | |||
private String idNum;// 身份证号 | |||
private String customerIdNum;// 身份证号 | |||
private String cusPosImageUrl;// 正面照地址 | |||
private String msg; | |||
private String vehiclePlate;// 车牌号 | |||
private String vehPosImgUrl;// 行驶证正面照 | |||
private String vehNegImgUrl;// 行驶证反面照 | |||
private String vehicleDimensions;// 外廓尺寸 | |||
private String vehicleApprovedCount;// 核定载人数 | |||
private String ownerName;// 车主姓名 | |||
private IdType ownerIdType;// 车主证件类型 | |||
private Integer feeVehicleType;//收费车型 | |||
private Integer vanType;// 车型 | |||
private Integer approvedCount;// 核定载人数 | |||
private Integer axleCount;// 轴数 | |||
private Integer totalMass;// 总质量 | |||
private String vin;// VIN | |||
private String vehicleModel;// 行驶证车辆品牌 | |||
private List<T> list; | |||
} |