@@ -2,7 +2,9 @@ package cn.com.taiji.core.repo.jpa.ass; | |||
import cn.com.taiji.common.repo.jpa.AbstractJpaRepo; | |||
import cn.com.taiji.core.entity.ass.AssDeviceUpgrade; | |||
import cn.com.taiji.core.entity.dict.ass.AssOrderType; | |||
public interface AssDeviceUpgradeRepo extends AbstractJpaRepo<AssDeviceUpgrade, String>{ | |||
AssDeviceUpgrade findByOrderNoAndOrderType(String orderNo, AssOrderType orderType); | |||
} |
@@ -1,12 +1,11 @@ | |||
package cn.com.taiji.iaw.api.ass; | |||
import cn.com.taiji.common.manager.ManagerException; | |||
import cn.com.taiji.common.model.dao.Pagination; | |||
import cn.com.taiji.common.web.ApiResponse; | |||
import cn.com.taiji.iaw.api.MyValidController; | |||
import cn.com.taiji.iaw.dto.ass.sign.RePageReqDto; | |||
import cn.com.taiji.iaw.dto.ass.vehicleChange.VehicleChangeViewReqDTO; | |||
import cn.com.taiji.iaw.dto.ass.vehicleChange.VehicleChangeViewResDTO; | |||
import cn.com.taiji.iaw.dto.ass.sign.ResignCheckResDTO; | |||
import cn.com.taiji.iaw.dto.ass.sign.ResignResponseDTO; | |||
import cn.com.taiji.iaw.dto.ass.vehicleChange.*; | |||
import cn.com.taiji.iaw.manager.ass.VehicleChangeManger; | |||
import io.swagger.annotations.Api; | |||
import io.swagger.annotations.ApiOperation; | |||
@@ -31,21 +30,41 @@ public class VehicleChangeController extends MyValidController { | |||
@Autowired | |||
private VehicleChangeManger manager; | |||
// @ApiOperation("申请") | |||
// @PostMapping("/apply") | |||
// public ApiResponse<Pagination> page(@Valid @RequestBody RePageReqDto dto) throws ManagerException { | |||
// return ApiResponse.of(manager.rePage(dto)); | |||
// } | |||
@ApiOperation("申请") | |||
@PostMapping("/apply") | |||
public ApiResponse<VehicleChangeApplyResDTO> page(@Valid @RequestBody VehicleChangeApplyReqDTO dto) throws ManagerException { | |||
VehicleChangeApplyResDTO resDTO = manager.apply(dto); | |||
return ApiResponse.of(resDTO); | |||
} | |||
// @ApiOperation("详情") | |||
// @PostMapping("/detail") | |||
// public ApiResponse<Pagination> page(@Valid @RequestBody RePageReqDto dto) throws ManagerException { | |||
// return ApiResponse.of(manager.rePage(dto)); | |||
// } | |||
@ApiOperation("审核查询") | |||
@ApiOperation("审核查询-APP") | |||
@PostMapping("/beforeReview") | |||
public ApiResponse<VehicleChangeViewResDTO> page(@Valid @RequestBody VehicleChangeViewReqDTO dto) throws ManagerException { | |||
VehicleChangeViewResDTO resDTO = manager.beforeReview(dto); | |||
return ApiResponse.of(resDTO); | |||
} | |||
@ApiOperation("签约参数获取") | |||
@PostMapping("/sign") | |||
public ApiResponse<ResignResponseDTO> sign(@Valid @RequestBody VehicleChangeSignReqDTO dto) throws ManagerException { | |||
ResignResponseDTO resDTO = manager.sign(dto); | |||
return ApiResponse.of(resDTO); | |||
} | |||
@ApiOperation("签约检测") | |||
@PostMapping("/signCheck") | |||
public ApiResponse<ResignCheckResDTO> signCheck(@Valid @RequestBody VehicleChangeSignReqDTO dto) throws ManagerException { | |||
ResignCheckResDTO resDTO = manager.signCheck(dto); | |||
return ApiResponse.of(resDTO); | |||
} | |||
// @ApiOperation("设备升级") | |||
// @PostMapping("/deviceUp") | |||
// public ApiResponse<VehicleChangeViewResDTO> deviceUp(@Valid @RequestBody VehicleChangeViewReqDTO dto) throws ManagerException { | |||
// VehicleChangeViewResDTO resDTO = manager.deviceUp(dto); | |||
// return ApiResponse.of(resDTO); | |||
// } | |||
} |
@@ -0,0 +1,206 @@ | |||
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 | |||
* @Date:2025/9/6 16:12 | |||
* @Filename:VehicleChangeApplyReqDTO | |||
* @description: | |||
*/ | |||
@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); | |||
} | |||
} | |||
} | |||
} |
@@ -0,0 +1,18 @@ | |||
package cn.com.taiji.iaw.dto.ass.vehicleChange; | |||
import io.swagger.annotations.ApiModel; | |||
import io.swagger.annotations.ApiModelProperty; | |||
import lombok.Data; | |||
/** | |||
* @Author:ChenChao | |||
* @Date:2025/9/6 17:35 | |||
* @Filename:VehicleChangeApplyResDTO | |||
* @description: | |||
*/ | |||
@ApiModel(description = "车辆信息变更申请响应") | |||
@Data | |||
public class VehicleChangeApplyResDTO { | |||
@ApiModelProperty(value = "上传车主身份标识,1需要,2不需要") | |||
private Integer flag; | |||
} |
@@ -0,0 +1,30 @@ | |||
package cn.com.taiji.iaw.dto.ass.vehicleChange; | |||
import cn.com.taiji.core.dto.AbstractBizRequestDTO; | |||
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.NotBlank; | |||
import javax.validation.constraints.NotNull; | |||
/** | |||
* @Author:ChenChao | |||
* @Date:2025/9/6 14:24 | |||
* @Filename:VehicleChangeSignCheckReqDTO | |||
* @description: | |||
*/ | |||
@Data | |||
@ApiModel(description = "车辆信息变更签约检测请求") | |||
public class VehicleChangeSignReqDTO extends AbstractBizRequestDTO { | |||
@ApiModelProperty(value = "售后表订单编号") | |||
private String orderNo; | |||
@NotNull | |||
@IntegerConstant(values = "1,2") | |||
@ApiModelProperty(value = "签约类型 1微信,2支付宝") | |||
private Integer signChannelType=1;// 1:微信小程序 2:支付宝小程序 | |||
@NotBlank | |||
@ApiModelProperty(value = "微信小程序或支付宝小程序的openId") | |||
private String subOpenId;// signChannelType=1或2时必填,填黔通微信或支付宝小程序的openId, | |||
} |
@@ -1,8 +1,9 @@ | |||
package cn.com.taiji.iaw.manager.ass; | |||
import cn.com.taiji.common.manager.ManagerException; | |||
import cn.com.taiji.iaw.dto.ass.vehicleChange.VehicleChangeViewReqDTO; | |||
import cn.com.taiji.iaw.dto.ass.vehicleChange.VehicleChangeViewResDTO; | |||
import cn.com.taiji.iaw.dto.ass.sign.ResignCheckResDTO; | |||
import cn.com.taiji.iaw.dto.ass.sign.ResignResponseDTO; | |||
import cn.com.taiji.iaw.dto.ass.vehicleChange.*; | |||
/** | |||
* @Author:ChenChao | |||
@@ -12,4 +13,10 @@ import cn.com.taiji.iaw.dto.ass.vehicleChange.VehicleChangeViewResDTO; | |||
*/ | |||
public interface VehicleChangeManger { | |||
VehicleChangeViewResDTO beforeReview(VehicleChangeViewReqDTO dto) throws ManagerException; | |||
ResignCheckResDTO signCheck(VehicleChangeSignReqDTO dto) throws ManagerException; | |||
ResignResponseDTO sign(VehicleChangeSignReqDTO dto) throws ManagerException; | |||
VehicleChangeApplyResDTO apply(VehicleChangeApplyReqDTO dto) throws ManagerException; | |||
} |
@@ -1,14 +1,33 @@ | |||
package cn.com.taiji.iaw.manager.ass; | |||
import cn.com.taiji.common.manager.ManagerException; | |||
import cn.com.taiji.core.entity.ass.AssAgencyConfig; | |||
import cn.com.taiji.core.entity.ass.AssDeviceUpgrade; | |||
import cn.com.taiji.core.entity.ass.AssOrderinfo; | |||
import cn.com.taiji.core.entity.ass.AssVehicleInfoChange; | |||
import cn.com.taiji.core.entity.basic.QtkCardInfo; | |||
import cn.com.taiji.core.entity.basic.QtkVehicleInfo; | |||
import cn.com.taiji.core.entity.dict.ass.AssOrderStatus; | |||
import cn.com.taiji.core.entity.dict.ass.AssOrderStep; | |||
import cn.com.taiji.core.entity.dict.ass.AssOrderType; | |||
import cn.com.taiji.core.entity.dict.basic.SourceType; | |||
import cn.com.taiji.core.entity.dict.log.OperateType; | |||
import cn.com.taiji.core.entity.user.AccountInfo; | |||
import cn.com.taiji.core.entity.user.Staff; | |||
import cn.com.taiji.core.model.comm.protocol.ias.ass.ResignRequest; | |||
import cn.com.taiji.core.model.comm.protocol.ias.ass.VehicleChangeApllyRequest; | |||
import cn.com.taiji.core.model.comm.protocol.ias.ass.VehicleChangeAplyResponse; | |||
import cn.com.taiji.core.model.comm.protocol.ias.order.SignQueryResponse; | |||
import cn.com.taiji.core.repo.jpa.ass.AssAgencyConfigRepo; | |||
import cn.com.taiji.core.repo.jpa.ass.AssDeviceUpgradeRepo; | |||
import cn.com.taiji.core.repo.jpa.ass.AssOrderinfoRepo; | |||
import cn.com.taiji.core.repo.jpa.ass.AssVehicleInfoChangeRepo; | |||
import cn.com.taiji.core.repo.jpa.basic.QtkCardInfoRepo; | |||
import cn.com.taiji.core.repo.jpa.basic.QtkVehicleInfoRepo; | |||
import cn.com.taiji.iaw.dto.ass.vehicleChange.VehicleChangeViewReqDTO; | |||
import cn.com.taiji.iaw.dto.ass.vehicleChange.VehicleChangeViewResDTO; | |||
import cn.com.taiji.core.repo.jpa.user.StaffRepo; | |||
import cn.com.taiji.iaw.dto.ass.sign.ResignCheckResDTO; | |||
import cn.com.taiji.iaw.dto.ass.sign.ResignResponseDTO; | |||
import cn.com.taiji.iaw.dto.ass.vehicleChange.*; | |||
import cn.com.taiji.iaw.manager.AbstractIawManager; | |||
import cn.com.taiji.iaw.model.ass.releasePlate.ApplyInfo; | |||
import cn.com.taiji.iaw.model.ass.releasePlate.DrivingInfo; | |||
@@ -31,6 +50,42 @@ public class VehicleChangeMangerImpl extends AbstractIawManager implements Vehic | |||
private AssVehicleInfoChangeRepo assVehicleInfoChangeRepo; | |||
@Autowired | |||
private QtkVehicleInfoRepo qtkVehicleInfoRepo; | |||
@Autowired | |||
private QtkCardInfoRepo qtkCardInfoRepo; | |||
@Autowired | |||
private AssAgencyConfigRepo assAgencyConfigRepo; | |||
@Autowired | |||
private AssDeviceUpgradeRepo assDeviceUpgradeRepo; | |||
@Autowired | |||
private StaffRepo staffRepo; | |||
@Override | |||
public VehicleChangeApplyResDTO apply(VehicleChangeApplyReqDTO req) throws ManagerException { | |||
req.validate(); | |||
VehicleChangeApplyResDTO responseDTO = new VehicleChangeApplyResDTO(); | |||
if (!req.getVehicleName().equals(req.getName()) && req.getOwnerIdType() == null){ | |||
responseDTO.setFlag(1); | |||
return responseDTO; | |||
} | |||
VehicleChangeApllyRequest request = copyProperties(req, new VehicleChangeApllyRequest()); | |||
request.setOrderSource(req.getOrderSource()); | |||
String openId = findOpenIdByToken(req.getAccessToken()); | |||
request.setOpenId(openId); | |||
if (SourceType.ALI == req.getOrderSource() || SourceType.WECHAT == req.getOrderSource()){ | |||
// 自营工具 和 管理端 | |||
request.setAgencyId("52001106004");//// 黔通智联(自营) | |||
request.setChannelId("5201010600401150002");//// 黔通智联售后服务 | |||
} | |||
if (SourceType.SERVICE_HALL == req.getOrderSource()){ | |||
Staff staff = staffRepo.findByStaffId(req.getStaffId()); | |||
request.setAgencyId(staff.getAgencyId()); | |||
request.setChannelId(staff.getServiceHallId()); | |||
} | |||
VehicleChangeAplyResponse response = jsonPostRepeat(request); | |||
sysPersistOperateLog(OperateType.CHANGE_VEHICLE_APPLY, response.getId(), req.getOrderSource(), openId,"车辆信息变更申请"); | |||
responseDTO.setFlag(2); | |||
return responseDTO; | |||
} | |||
@Override | |||
public VehicleChangeViewResDTO beforeReview(VehicleChangeViewReqDTO dto) throws ManagerException { | |||
@@ -83,4 +138,65 @@ public class VehicleChangeMangerImpl extends AbstractIawManager implements Vehic | |||
resDTO.setOrderStatus(assOrderinfo.getOrderStatus()); | |||
return resDTO; | |||
} | |||
@Override | |||
public ResignCheckResDTO signCheck(VehicleChangeSignReqDTO dto) throws ManagerException { | |||
AssOrderinfo assOrderinfo = assOrderinfoRepo.findByOrderNo(dto.getOrderNo()); | |||
if (assOrderinfo == null) throw new ManagerException("订单不存在"); | |||
AssVehicleInfoChange vehicleInfoChange = assVehicleInfoChangeRepo.findByOrderNo(dto.getOrderNo()); | |||
QtkCardInfo cardInfo = qtkCardInfoRepo.findByVehicleIdAndCardStatus(assOrderinfo.getCardId()); | |||
//业务进行到这里,一定有正常的卡信息,这里抛异常提示 | |||
if (cardInfo == null) throw new ManagerException("车辆信息变更无法进行签约"); | |||
AccountInfo accountInfo = findAccountInfoByToken(dto.getAccessToken()); | |||
ResignRequest request = new ResignRequest(); | |||
request.setWxOpenId(dto.getSubOpenId()); | |||
request.setProductId(cardInfo.getPackageId()); | |||
//校验新车牌 | |||
request.setVehicleId(vehicleInfoChange.getVehiclePlate()+"_"+vehicleInfoChange.getVehiclePlateColor()); | |||
request.setName(accountInfo.getUserName()); | |||
request.setIdNum(accountInfo.getIdNum()); | |||
request.setFlag(1); | |||
SignQueryResponse response = jsonPostRepeat(request); | |||
ResignCheckResDTO resignCheckResDTO = copyProperties(response, new ResignCheckResDTO()); | |||
//签约成功,检测是否需要升级设备,是订单改带升级,否结束订单 | |||
if (!resignCheckResDTO.getUserState().equals("UNAUTHORIZED")) { | |||
AssDeviceUpgrade orderType = assDeviceUpgradeRepo.findByOrderNoAndOrderType(dto.getOrderNo(), AssOrderType.VEHICLE_UPDATE); | |||
if (orderType != null) { | |||
assOrderinfo.setOrderStep(AssOrderStep.WAITING_UPGRADE); | |||
}else { | |||
assOrderinfo.setOrderStep(AssOrderStep.COMPLETED); | |||
assOrderinfo.setOrderStatus(AssOrderStatus.FINISHED); | |||
} | |||
assOrderinfoRepo.merge(assOrderinfo); | |||
} | |||
return resignCheckResDTO; | |||
} | |||
@Override | |||
public ResignResponseDTO sign(VehicleChangeSignReqDTO dto) throws ManagerException { | |||
AssOrderinfo assOrderinfo = assOrderinfoRepo.findByOrderNo(dto.getOrderNo()); | |||
if (assOrderinfo == null) throw new ManagerException("订单不存在"); | |||
AssVehicleInfoChange vehicleInfoChange = assVehicleInfoChangeRepo.findByOrderNo(dto.getOrderNo()); | |||
QtkCardInfo cardInfo = qtkCardInfoRepo.findByVehicleIdAndCardStatus(assOrderinfo.getCardId()); | |||
if (cardInfo == null) throw new ManagerException("车辆信息变更无法进行签约"); | |||
ResignResponseDTO responseDTO = new ResignResponseDTO(); | |||
//渠道订单没有渠道配置或签约地址默认和黔通签约 | |||
AssAgencyConfig agencyConfig = assAgencyConfigRepo.findByAgencyId(cardInfo.getAgencyId()); | |||
if (agencyConfig != null && !agencyConfig.getQtSign()){ | |||
responseDTO.setChannelSignAppId(agencyConfig.getChannelSignAppId()); | |||
responseDTO.setChannelSignUrl(agencyConfig.getChannelSignUrl()); | |||
} | |||
AccountInfo accountInfo = findAccountInfoByToken(dto.getAccessToken()); | |||
ResignRequest request = new ResignRequest(); | |||
request.setWxOpenId(dto.getSubOpenId()); | |||
request.setProductId(cardInfo.getPackageId()); | |||
//新车牌签约 | |||
request.setVehicleId(vehicleInfoChange.getVehiclePlate()+"_"+vehicleInfoChange.getVehiclePlateColor()); | |||
request.setName(accountInfo.getUserName()); | |||
request.setIdNum(accountInfo.getIdNum()); | |||
request.setFlag(2); | |||
SignQueryResponse response = jsonPostRepeat(request); | |||
return copyProperties(response, responseDTO); | |||
} | |||
} |