|
|
@@ -1,8 +1,18 @@ |
|
|
|
package cn.com.taiji.iaw.dto.ass.vehicleChange; |
|
|
|
|
|
|
|
import cn.com.taiji.common.pub.validation.PatternFactory; |
|
|
|
import cn.com.taiji.common.valid.ViolationValidator; |
|
|
|
import cn.com.taiji.core.dto.AbstractBizRequestDTO; |
|
|
|
import cn.com.taiji.core.entity.dict.basic.*; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.constraint.EnumInteger; |
|
|
|
import cn.com.taiji.core.model.comm.protocol.constraint.IntegerConstant; |
|
|
|
import io.swagger.annotations.ApiModel; |
|
|
|
import io.swagger.annotations.ApiModelProperty; |
|
|
|
import lombok.Data; |
|
|
|
import javax.validation.constraints.Min; |
|
|
|
import javax.validation.constraints.NotBlank; |
|
|
|
import javax.validation.constraints.NotNull; |
|
|
|
import javax.validation.constraints.Pattern; |
|
|
|
|
|
|
|
/** |
|
|
|
* @Author:ChenChao |
|
|
@@ -13,4 +23,184 @@ import lombok.Data; |
|
|
|
@Data |
|
|
|
@ApiModel(description = "车辆信息变更申请请求") |
|
|
|
public class VehicleChangeApplyReqDTO extends AbstractBizRequestDTO { |
|
|
|
private String staffId; |
|
|
|
private String openId; |
|
|
|
// @NotBlank |
|
|
|
// private String agencyId; |
|
|
|
// @NotBlank |
|
|
|
// private String channelId; |
|
|
|
// @Enumerated(EnumType.STRING) |
|
|
|
// @NotBlank |
|
|
|
// private SourceType orderSource; |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "旧车牌号+颜色", required = true) |
|
|
|
private String oldVehicleId;// 旧车牌号+颜色 |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "车牌号", required = true) |
|
|
|
private String vehiclePlate;// 车牌号 |
|
|
|
@NotNull |
|
|
|
@EnumInteger(enumClazz = PlateColorType.class) |
|
|
|
@ApiModelProperty(value = "车牌颜色", required = true) |
|
|
|
private Integer vehiclePlateColor;// 车牌颜色 |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "行驶证主页图片地址", required = true) |
|
|
|
private String vehPosImgUrl;// 行驶证主页照片 |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "行驶证副页图片地址", required = true) |
|
|
|
private String vehNegImgUrl;// 行驶证副页照片 |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "行驶证姓名", required = true) |
|
|
|
private String vehicleName;//行驶证姓名 |
|
|
|
@NotNull |
|
|
|
@EnumInteger(enumClazz = UseUserType.class) |
|
|
|
@ApiModelProperty(value = "车辆使用类型", required = true) |
|
|
|
private Integer useUserType;//车辆使用类型 |
|
|
|
@NotNull |
|
|
|
@IntegerConstant(values = "1,2,3") |
|
|
|
@ApiModelProperty(value = "客货类型 1客车 2货车 3专项作业;用户选择", required = true) |
|
|
|
private Integer vanType;// 客货类型 1客车 2货车 3专项作业 |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "vin码", required = true) |
|
|
|
private String vin;// vin码 |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "发动机编号", required = true) |
|
|
|
private String engineNum;// 发动机编号 |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "车辆类型", required = true) |
|
|
|
private String vehicleType;// 行驶证车辆类型 |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "车辆品牌", required = true) |
|
|
|
private String vehicleModel;// 行驶证车辆品牌 |
|
|
|
@NotNull |
|
|
|
@ApiModelProperty(value = "核定载人数", required = true) |
|
|
|
private Integer approvedCount;// 核定载人数 |
|
|
|
@NotNull |
|
|
|
@ApiModelProperty(value = "总质量", required = true) |
|
|
|
private Integer totalMass;// 总质量 |
|
|
|
@ApiModelProperty(value = "整备质量") |
|
|
|
private Integer maintenaceMass;// 整备质量 |
|
|
|
@ApiModelProperty(value = "核定载质量") |
|
|
|
private Integer permittedWeight;// 核定载质量 |
|
|
|
@ApiModelProperty(value = "准牵引总质量") |
|
|
|
private Integer permittedTowWeight;// 准牵引总质量 |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "车辆尺寸", required = true) |
|
|
|
private String vehicleDimensions;// 车辆尺寸 |
|
|
|
@Min(value = 2) |
|
|
|
@NotNull |
|
|
|
@ApiModelProperty(value = "车轴数", required = true) |
|
|
|
private Integer axleCount;// 车轴数 |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "发证日期", required = true) |
|
|
|
private String issueDate;// 发证日期 |
|
|
|
@ApiModelProperty(value = "道路运输证号码") |
|
|
|
private String transportIdNum;// 道路运输证编号 |
|
|
|
@ApiModelProperty(value = "经营许可证编号") |
|
|
|
private String licenseIdNum;// 经营许可证编号 |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "车身45°照片", required = true) |
|
|
|
private String vehBodyUrl;// 车身45°照片 |
|
|
|
@ApiModelProperty(value = "道路运输许可证图片地址") |
|
|
|
private String roadTransportPermitPicUrl;// 道路运输许可证图片地址 |
|
|
|
@NotNull |
|
|
|
@EnumInteger(enumClazz = VehicleUseCharacter.class) |
|
|
|
@ApiModelProperty(value = "车辆使用性质", required = true) |
|
|
|
private Integer character;//车辆使用性质; |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "注册日期", required = true) |
|
|
|
private String registerDate;// 注册日期 |
|
|
|
@IntegerConstant(values = "0,1") |
|
|
|
@ApiModelProperty(value = "应急车辆标识") |
|
|
|
private Integer emergencyFlag;// 应急车辆标识 0-非应急车辆 1-应急车辆 |
|
|
|
@NotNull |
|
|
|
@EnumInteger(enumClazz = VehicleType.class) |
|
|
|
@ApiModelProperty(value = "收费车型", required = true) |
|
|
|
private Integer feeVehicleType;//收费车型 后端自己计算 |
|
|
|
//===================办理人信息================================ |
|
|
|
@NotBlank |
|
|
|
@Pattern(regexp = "^1[3-9][0-9]{9}$", message = "手机号格式错误") |
|
|
|
@ApiModelProperty(value = "申请人手机号", required = true) |
|
|
|
private String mobile;//手机号 |
|
|
|
@NotNull |
|
|
|
@EnumInteger(enumClazz = IdType.class) |
|
|
|
@ApiModelProperty(value = "申请人证件类型", required = true) |
|
|
|
private Integer userIdType;//证件类型(申请人) |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "申请人姓名", required = true) |
|
|
|
private String name;//身份证OCR姓名 |
|
|
|
@NotBlank |
|
|
|
@Pattern(regexp = PatternFactory.idCodeRegexp, message = "身份证格式错误") |
|
|
|
@ApiModelProperty(value = "申请人证件号码", required = true) |
|
|
|
private String userIdNum;//证件号码 |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "申请人身份证人像图片地址", required = true) |
|
|
|
private String userPosImagesUrl;//身份证人像图片地址 |
|
|
|
@NotBlank |
|
|
|
@ApiModelProperty(value = "申请人身份证国徽图片地址", required = true) |
|
|
|
private String userNegImagesUrl;//身份证国徽图片地址 |
|
|
|
@ApiModelProperty(value = "申请人地址") |
|
|
|
private String userAdress;//地址 |
|
|
|
|
|
|
|
//========================车主信息=========================== |
|
|
|
@EnumInteger(enumClazz = IdType.class, message = "用户证件类型不合规") |
|
|
|
@ApiModelProperty(value = "车主证件类型,不需要上传车主信息,不要传值") |
|
|
|
private Integer ownerIdType;// 车主证件类型 |
|
|
|
@ApiModelProperty(value = "车主证件号码") |
|
|
|
private String ownerIdNum;// 车主证件号码 |
|
|
|
@ApiModelProperty(value = "车主证件ocr地址") |
|
|
|
private String ownerIdAddress;// 车主证件ocr地址 |
|
|
|
@ApiModelProperty(value = "车主证件正面图片地址") |
|
|
|
private String ownerPosImgUrl;//车主证件正面照片地址 |
|
|
|
@ApiModelProperty(value = "车主证件反面图片地址,单位的填不上,个人必填") |
|
|
|
private String ownerNegImgUrl;//车主证件反面照片地址, 单位的填不上,个人必填 |
|
|
|
@ApiModelProperty(value = "车主手机号,单位的填不上,个人必填") |
|
|
|
private String ownerTel;//车主手机号,单位的填不上,个人必填 |
|
|
|
@ApiModelProperty(value = "车主身份证上姓名") |
|
|
|
private String ownerName;//身份证上姓名 |
|
|
|
@ApiModelProperty(value = "委托书图片地址") |
|
|
|
private String proxyUrl;// 委托书地址 |
|
|
|
|
|
|
|
@Override |
|
|
|
protected void validate(ViolationValidator validator) { |
|
|
|
if (SourceType.SERVICE_HALL.equals(getOrderSource())) { |
|
|
|
validator.validFieldNotBlank("staffId", staffId); |
|
|
|
} |
|
|
|
if (vehicleDimensions.contains("X") || vehicleDimensions.contains("x") || vehicleDimensions.contains("×") |
|
|
|
|| vehicleDimensions.contains("*")) { |
|
|
|
try { |
|
|
|
Integer.valueOf(vehicleDimensions.split("[Xx×*]")[0]); |
|
|
|
} catch (Exception e) { |
|
|
|
validator.validField("vehicleDimensionsError", true, |
|
|
|
String.format("车辆车辆外廓尺寸参数不合规,无法计算收费车型_[%s]", vehicleDimensions)); |
|
|
|
} |
|
|
|
}else { |
|
|
|
validator.validField("vehicleDimensionsError", true, |
|
|
|
String.format("车辆车辆外廓尺寸参数不合规,无法计算收费车型_[%s]", vehicleDimensions)); |
|
|
|
} |
|
|
|
// 货车必填字段 |
|
|
|
if (vanType != 1) { |
|
|
|
validator.validFieldNotNull("totalMass", totalMass); |
|
|
|
validator.validFieldNotNull("maintenaceMass", maintenaceMass); |
|
|
|
validator.validFieldNotNull("permittedWeight", permittedWeight); |
|
|
|
// validator.validFieldNotNull("permittedTowWeight", permittedTowWeight);//20250304修改,不是所有的货车都有准牵引总质量,所以去掉校验 |
|
|
|
validator.validFieldNotNull("axleCount", axleCount); |
|
|
|
} |
|
|
|
// 牵引车必填字段 |
|
|
|
if (useUserType != 0) { |
|
|
|
validator.validFieldNotBlank("roadTransportPermitPicUrl", roadTransportPermitPicUrl); |
|
|
|
validator.validFieldNotBlank("licenseIdNum",licenseIdNum); |
|
|
|
} |
|
|
|
if (ownerIdType != null){ |
|
|
|
//有车主信息 |
|
|
|
validator.validFieldNotBlank("ownerName",ownerName); |
|
|
|
validator.validFieldNotBlank("ownerIdNum",ownerIdNum); |
|
|
|
validator.validFieldNotBlank("ownerIdAddress",ownerIdAddress); |
|
|
|
validator.validFieldNotBlank("ownerPosImgUrl",ownerPosImgUrl); |
|
|
|
if (ownerIdType != null && IdType.SFZ.getCode()== ownerIdType){ |
|
|
|
validator.validFieldNotBlank("ownerNegImgUrl",ownerNegImgUrl);// 单位的填不上,个人必填 |
|
|
|
validator.validFieldNotBlank("ownerTel",ownerTel); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |