@@ -0,0 +1,51 @@ | |||
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.manager.ass.VehicleChangeManger; | |||
import io.swagger.annotations.Api; | |||
import io.swagger.annotations.ApiOperation; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.web.bind.annotation.PostMapping; | |||
import org.springframework.web.bind.annotation.RequestBody; | |||
import org.springframework.web.bind.annotation.RequestMapping; | |||
import org.springframework.web.bind.annotation.RestController; | |||
import javax.validation.Valid; | |||
/** | |||
* @Author:ChenChao | |||
* @Date:2025/9/5 20:08 | |||
* @Filename:VehicleChangeController | |||
* @description: | |||
*/ | |||
@Api(tags = {"车辆信息变更"}) | |||
@RestController | |||
@RequestMapping("/api/vehicleChange") | |||
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("/detail") | |||
// public ApiResponse<Pagination> page(@Valid @RequestBody RePageReqDto dto) throws ManagerException { | |||
// return ApiResponse.of(manager.rePage(dto)); | |||
// } | |||
@ApiOperation("审核查询") | |||
@PostMapping("/beforeReview") | |||
public ApiResponse<VehicleChangeViewResDTO> page(@Valid @RequestBody VehicleChangeViewReqDTO dto) throws ManagerException { | |||
VehicleChangeViewResDTO resDTO = manager.beforeReview(dto); | |||
return ApiResponse.of(resDTO); | |||
} | |||
} |
@@ -3,6 +3,7 @@ package cn.com.taiji.iaw.dto.ass; | |||
import cn.com.taiji.common.model.BaseDTO; | |||
import cn.com.taiji.core.entity.dict.AuditStatus; | |||
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.IdType; | |||
import cn.com.taiji.core.entity.dict.basic.SourceType; | |||
@@ -29,6 +30,8 @@ public class AssOrderInfoResponseDTO extends BaseDTO { | |||
private String channelId;//网点编号 | |||
@ApiModelProperty(value = "订单状态") | |||
private AssOrderStatus orderStatus;//订单状态; | |||
@ApiModelProperty(value = "订单步骤") | |||
private AssOrderStep orderStep;//订单阶段; | |||
@ApiModelProperty(value = "下单申请时间") | |||
private LocalDateTime applyTime;//下单申请时间 | |||
@ApiModelProperty(value = "员工ID") |
@@ -6,6 +6,7 @@ import cn.com.taiji.core.entity.basic.QtkBlackObu; | |||
import cn.com.taiji.core.entity.basic.QtkCardInfo; | |||
import cn.com.taiji.core.entity.basic.QtkObuInfo; | |||
import cn.com.taiji.core.entity.dict.AuditStatus; | |||
import cn.com.taiji.core.entity.dict.ass.AssOrderStatus; | |||
import cn.com.taiji.core.entity.dict.ass.AssOrderStep; | |||
import cn.com.taiji.iaw.model.ass.releasePlate.*; | |||
import io.swagger.annotations.ApiModel; | |||
@@ -24,8 +25,9 @@ public class ReleasePlateViewResponseDTO { | |||
private LocalDateTime applyTime;//下单申请时间 | |||
@ApiModelProperty(value = "售后订单编号") | |||
private String orderNo; | |||
@ApiModelProperty(value = "订单状态") | |||
private AssOrderStatus orderStatus; | |||
@ApiModelProperty(value = "订单阶段") | |||
// private AuditStatus auditStatus;// 订单审核状态 | |||
private AssOrderStep orderStep;//订单阶段; | |||
@ApiModelProperty(value = "身份证信息") |
@@ -0,0 +1,23 @@ | |||
package cn.com.taiji.iaw.dto.ass.vehicleChange; | |||
import cn.com.taiji.core.dto.AbstractStaffBizRequestDTO; | |||
import io.swagger.annotations.ApiModel; | |||
import io.swagger.annotations.ApiModelProperty; | |||
import lombok.Data; | |||
import javax.validation.constraints.NotBlank; | |||
/** | |||
* @Author:ChenChao | |||
* @Date:2025/9/5 20:26 | |||
* @Filename:VehicleChangeVicewResDTO | |||
* @description: | |||
*/ | |||
@Data | |||
@ApiModel(description = "售后订单-车辆信息变更审核查询请求") | |||
public class VehicleChangeViewReqDTO extends AbstractStaffBizRequestDTO { | |||
@ApiModelProperty(value = "售后订单编号", required = true) | |||
@NotBlank | |||
private String orderNo; | |||
} |
@@ -0,0 +1,35 @@ | |||
package cn.com.taiji.iaw.dto.ass.vehicleChange; | |||
import cn.com.taiji.core.entity.dict.ass.AssOrderStatus; | |||
import cn.com.taiji.core.entity.dict.ass.AssOrderStep; | |||
import cn.com.taiji.iaw.model.ass.releasePlate.ApplyInfo; | |||
import cn.com.taiji.iaw.model.ass.releasePlate.DrivingInfo; | |||
import cn.com.taiji.iaw.model.ass.releasePlate.OwnerInfo; | |||
import io.swagger.annotations.ApiModel; | |||
import io.swagger.annotations.ApiModelProperty; | |||
import lombok.Data; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
/** | |||
* @Author:ChenChao | |||
* @Date:2025/9/5 20:27 | |||
* @Filename:VehicleChangeViewResDTO | |||
* @description: 审核查询响应 | |||
*/ | |||
@Data | |||
@ApiModel(description = "售后订单-车辆信息变更审核查询响应") | |||
public class VehicleChangeViewResDTO { | |||
@ApiModelProperty(value = "申请人信息") | |||
private ApplyInfo applyInfo; | |||
@ApiModelProperty(value = "新车辆信息") | |||
private DrivingInfo drivingInfo; | |||
@ApiModelProperty(value = "新车主信息") | |||
private OwnerInfo ownerInfo; | |||
@ApiModelProperty(value = "旧车辆信息") | |||
private DrivingInfo oldDrivingInfo; | |||
@ApiModelProperty(value = "订单状态") | |||
private AssOrderStatus orderStatus; | |||
@ApiModelProperty(value = "订单阶段") | |||
private AssOrderStep orderStep; | |||
} |
@@ -128,6 +128,7 @@ public class ReleasePlateManagerImpl extends AbstractIawManager implements Relea | |||
ResultInfo resultInfo = getInfo(vehicleRelieve, assOrderinfo); | |||
responseDTO.setApplyTime(assOrderinfo.getApplyTime()); | |||
responseDTO.setOrderNo(assOrderinfo.getOrderNo()); | |||
responseDTO.setOrderStatus(assOrderinfo.getOrderStatus()); | |||
responseDTO.setOrderStep(assOrderinfo.getOrderStep()); | |||
responseDTO.setApplyInfo(resultInfo.getApplyInfo()); | |||
@@ -168,7 +169,7 @@ public class ReleasePlateManagerImpl extends AbstractIawManager implements Relea | |||
//行驶证信息 | |||
DrivingInfo drivingInfo = new DrivingInfo(); | |||
String[] split = assOrderinfo.getVehicleId().split("_"); | |||
drivingInfo.setPlateColor(split[1]); | |||
drivingInfo.setPlateColor(Integer.valueOf(split[1])); | |||
drivingInfo.setPlateNum(split[0]); | |||
drivingInfo.setVehicleOwnerName(vehicleRelieve.getVehicleOwnerName()); | |||
drivingInfo.setVehPosImgUrl(minioUtil.getOuterUrl(vehicleRelieve.getVehPosImgUrl())); |
@@ -0,0 +1,15 @@ | |||
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; | |||
/** | |||
* @Author:ChenChao | |||
* @Date:2025/9/5 20:18 | |||
* @Filename:VehicleChangeManger | |||
* @description: | |||
*/ | |||
public interface VehicleChangeManger { | |||
VehicleChangeViewResDTO beforeReview(VehicleChangeViewReqDTO dto) throws ManagerException; | |||
} |
@@ -0,0 +1,86 @@ | |||
package cn.com.taiji.iaw.manager.ass; | |||
import cn.com.taiji.common.manager.ManagerException; | |||
import cn.com.taiji.core.entity.ass.AssOrderinfo; | |||
import cn.com.taiji.core.entity.ass.AssVehicleInfoChange; | |||
import cn.com.taiji.core.entity.basic.QtkVehicleInfo; | |||
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.QtkVehicleInfoRepo; | |||
import cn.com.taiji.iaw.dto.ass.vehicleChange.VehicleChangeViewReqDTO; | |||
import cn.com.taiji.iaw.dto.ass.vehicleChange.VehicleChangeViewResDTO; | |||
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; | |||
import cn.com.taiji.iaw.model.ass.releasePlate.OwnerInfo; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
/** | |||
* @Author:ChenChao | |||
* @Date:2025/9/5 20:18 | |||
* @Filename:VehicleChangeMangerImpl | |||
* @description: | |||
*/ | |||
@Service | |||
public class VehicleChangeMangerImpl extends AbstractIawManager implements VehicleChangeManger{ | |||
@Autowired | |||
private AssOrderinfoRepo assOrderinfoRepo; | |||
@Autowired | |||
private AssVehicleInfoChangeRepo assVehicleInfoChangeRepo; | |||
@Autowired | |||
private QtkVehicleInfoRepo qtkVehicleInfoRepo; | |||
@Override | |||
public VehicleChangeViewResDTO beforeReview(VehicleChangeViewReqDTO dto) throws ManagerException { | |||
AssOrderinfo assOrderinfo = assOrderinfoRepo.findByOrderNo(dto.getOrderNo()); | |||
if (assOrderinfo == null) { | |||
throw new ManagerException("订单不存在"); | |||
} | |||
AssVehicleInfoChange vehicleInfoChange = assVehicleInfoChangeRepo.findByOrderNo(dto.getOrderNo()); | |||
VehicleChangeViewResDTO resDTO = new VehicleChangeViewResDTO(); | |||
//申请人信息 | |||
ApplyInfo applyInfo = new ApplyInfo(); | |||
applyInfo.setUserPosImagesUrl(minioUtil.getOuterUrl(vehicleInfoChange.getUserPosImagesUrl())); | |||
applyInfo.setUserNegImagesUrl(minioUtil.getOuterUrl(vehicleInfoChange.getUserNegImagesUrl())); | |||
applyInfo.setMobile(vehicleInfoChange.getUserMobile()); | |||
applyInfo.setName(vehicleInfoChange.getUserName()); | |||
applyInfo.setCustomerIdNum(vehicleInfoChange.getUserIdNum()); | |||
applyInfo.setUserIdType(vehicleInfoChange.getUserIdType()); | |||
resDTO.setApplyInfo(applyInfo); | |||
//新车辆信息 | |||
DrivingInfo newDrivingInfo = new DrivingInfo(); | |||
newDrivingInfo.setPlateNum(vehicleInfoChange.getVehiclePlate()); | |||
newDrivingInfo.setPlateColor(vehicleInfoChange.getVehiclePlateColor()); | |||
newDrivingInfo.setVehicleOwnerName(vehicleInfoChange.getVehicleName()); | |||
newDrivingInfo.setVehPosImgUrl(minioUtil.getOuterUrl(vehicleInfoChange.getVehPosImgUrl())); | |||
newDrivingInfo.setVehNegImgUrl(minioUtil.getOuterUrl(vehicleInfoChange.getVehNegImgUrl())); | |||
newDrivingInfo.setType(vehicleInfoChange.getType()); | |||
resDTO.setDrivingInfo(newDrivingInfo); | |||
//新车主信息 | |||
if (vehicleInfoChange.getOwnerIdType() != null) { | |||
OwnerInfo ownerInfo = new OwnerInfo(); | |||
ownerInfo.setOwnerIdType(vehicleInfoChange.getOwnerIdType().getCode()); | |||
ownerInfo.setOwnerName(vehicleInfoChange.getOwnerName()); | |||
ownerInfo.setOwnerIdNum(vehicleInfoChange.getOwnerIdNum()); | |||
ownerInfo.setOwnerPosImgUrl(minioUtil.getOuterUrl(vehicleInfoChange.getOwnerPosImgUrl())); | |||
ownerInfo.setOwnerNegImgUrl(minioUtil.getOuterUrl(vehicleInfoChange.getOwnerNegImgUrl())); | |||
ownerInfo.setProxyUrl(minioUtil.getOuterUrl(vehicleInfoChange.getProxyUrl())); | |||
resDTO.setOwnerInfo(ownerInfo); | |||
} | |||
//旧车辆信息 | |||
QtkVehicleInfo vehicleInfo = qtkVehicleInfoRepo.findByVehicleId(assOrderinfo.getVehicleId()); | |||
DrivingInfo oldDrivingInfo = new DrivingInfo(); | |||
oldDrivingInfo.setPlateNum(assOrderinfo.getVehiclePlate()); | |||
oldDrivingInfo.setPlateColor(assOrderinfo.getVehiclePlateColor()); | |||
oldDrivingInfo.setVehicleOwnerName(vehicleInfoChange.getOwnerName()); | |||
oldDrivingInfo.setVehPosImgUrl(minioUtil.getOuterUrl(vehicleInfo.getVehPosImgUrl())); | |||
oldDrivingInfo.setVehNegImgUrl(minioUtil.getOuterUrl(vehicleInfo.getVehNegImgUrl())); | |||
oldDrivingInfo.setType(vehicleInfo.getType()); | |||
resDTO.setOldDrivingInfo(oldDrivingInfo); | |||
resDTO.setOrderStep(assOrderinfo.getOrderStep()); | |||
resDTO.setOrderStatus(assOrderinfo.getOrderStatus()); | |||
return resDTO; | |||
} | |||
} |
@@ -16,11 +16,13 @@ public class DrivingInfo { | |||
@ApiModelProperty(value = "车牌号") | |||
private String plateNum; | |||
@ApiModelProperty(value = "车牌颜色") | |||
private String plateColor; | |||
private Integer plateColor; | |||
@ApiModelProperty(value = "车辆所有人") | |||
private String vehicleOwnerName;//行驶证上所有人 | |||
@ApiModelProperty(value = "行驶证正面照片") | |||
private String vehPosImgUrl;//行驶证正面照片 | |||
@ApiModelProperty(value = "行驶证反面照片") | |||
private String vehNegImgUrl;//行驶证反面 照片 | |||
@ApiModelProperty(value = "收费车型") | |||
private Integer type;//收费车型;对应VehicleType枚举 | |||
} |