Browse Source

iaw 发行 用户信息上传,车辆信息上传

master
chenchaod 1 month ago
parent
commit
9cb6834ec8

+ 17
- 19
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/api/issue/OrderController.java View File

@@ -4,9 +4,7 @@ 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.issue.OrderAppPageReqDTO;
import cn.com.taiji.iaw.dto.issue.OrderCreateReqDTO;
import cn.com.taiji.iaw.dto.issue.OrderMinPageReqDTO;
import cn.com.taiji.iaw.dto.issue.*;
import cn.com.taiji.iaw.manager.issue.IssueOrderManage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -45,22 +43,22 @@ public class OrderController extends MyValidController {

@ApiOperation(value = "3.创建订单")
@PostMapping(value = "/add")
public ApiResponse<String> processAdd(@Valid @RequestBody OrderCreateReqDTO reqDto) throws ManagerException {
String orderNo = issueOrderManage.add(reqDto);
return ApiResponse.of(orderNo).setMessage("添加成功");
public ApiResponse<java.lang.String> processAdd(@Valid @RequestBody OrderCreateReqDTO reqDto) throws ManagerException {
java.lang.String orderNo = issueOrderManage.add(reqDto);
return ApiResponse.of(orderNo);
}

// @ApiOperation(value = "4.用户信息上传")
// @PostMapping(value = "/add")
// public ApiResponse<String> processAdd(@Valid @RequestBody OrderCreateReqDTO reqDto) throws ManagerException {
// String orderNo = issueOrderManage.add(reqDto);
// return ApiResponse.of(orderNo).setMessage("添加成功");
// }
//
// @ApiOperation(value = "5.车辆信息上传")
// @PostMapping(value = "/add")
// public ApiResponse<String> processAdd(@Valid @RequestBody OrderCreateReqDTO reqDto) throws ManagerException {
// String orderNo = issueOrderManage.add(reqDto);
// return ApiResponse.of(orderNo).setMessage("添加成功");
// }
@ApiOperation(value = "4.用户信息上传")
@PostMapping(value = "/upUser")
public ApiResponse<String> upUser(@Valid @RequestBody UploadUserReqDTO reqDto) throws ManagerException {
String res = issueOrderManage.upUser(reqDto);
return ApiResponse.of(res);
}
@ApiOperation(value = "5.车辆信息上传")
@PostMapping(value = "/upVehicle")
public ApiResponse<UploadVehicleResDTO> upVehicle(@Valid @RequestBody UploadVehicleReqDTO reqDto) throws ManagerException {
UploadVehicleResDTO res = issueOrderManage.upVehicle(reqDto);
return ApiResponse.of(res);
}
}

+ 59
- 2
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/dto/issue/UploadUserReqDTO.java View File

@@ -1,7 +1,13 @@
package cn.com.taiji.iaw.dto.issue;

import cn.com.taiji.core.dto.AbstractBizRequestDTO;
import org.springframework.stereotype.Service;
import cn.com.taiji.core.entity.dict.basic.IdType;
import cn.com.taiji.core.model.comm.protocol.constraint.EnumInteger;
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
@@ -9,6 +15,57 @@ import org.springframework.stereotype.Service;
* @Filename:UploadUserReqDTO
* @description:
*/
@Service
@Data
@ApiModel(description = "上传用户信息请求参数")
public class UploadUserReqDTO extends AbstractBizRequestDTO {


@NotBlank
@ApiModelProperty(value = "订单编号")
private String orderNo;// 订单号
@NotBlank
@ApiModelProperty(value = "办理用户姓名-单位名或个人姓名")
private String userName;// 用户姓名
@NotNull
@EnumInteger(enumClazz = IdType.class, message = "证件类型不合规")
@ApiModelProperty(value = "办理用户证件类型-单位或个人证件类型")
private Integer userIdType;// 用户证件类型
@NotBlank
@ApiModelProperty(value = "办理用户证件号码-单位或个人证件号码")
private String userIdNum;// 用户证件号码
@NotBlank
@ApiModelProperty(value = "办理用户证件地址-单位或个人证件地址")
private String userAddress;// 用户证件地址
@NotBlank
@ApiModelProperty(value = "办理用户证件正面照片地址-个人sfz头像面或单位营业执照")
private String userPosImgUrl;// 用户证件正面照片地址
@ApiModelProperty(value = "办理用户证件反面照片地址-个人sfz国徽面")
private String userNegImgUrl;// 用户证件反面照片地址
@ApiModelProperty(value = "办理用户个人手机号")
private String mobile;// // 用户手机号,个人必传
@ApiModelProperty(value = "办理用户个人证件有效期")
private String customerIdVld;// 用户证件有效期,个人必传

@ApiModelProperty(value = "单位经办人姓名")
private String agentName;// 经办人姓名
@EnumInteger(enumClazz = IdType.class, message = "经办人证件类型不合规")
@ApiModelProperty(value = "单位经办人证件类型")
private Integer agentIdType;// 经办人证件类型
@ApiModelProperty(value = "单位经办人证件号码")
private String agentIdNum;// 经办人证件号码
@ApiModelProperty(value = "单位经办人手机号")
private String agentTel;// 经办人手机号
@ApiModelProperty(value = "单位经办人证件地址")
private String agentAddress;// 经办人证件地址
@ApiModelProperty(value = "单位经办人证件有效期")
private String agentIdVld;// 经办人证件有效期
@ApiModelProperty(value = "单位经办人证件正面照片地址")
private String agentPosImgUrl;// 经办人证件正面照片地址
@ApiModelProperty(value = "单位经办人证件反面照片地址")
private String agentNegImgUrl;// 经办人证件反面照片地址
@ApiModelProperty(value = "单位授权书照片地址")
private String proxyUrl;// 授权书照片地址
@ApiModelProperty(value = "单位部门")
private String department;// 用户部门,单位必传

}

+ 0
- 10
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/dto/issue/UploadUserResDTO.java View File

@@ -1,10 +0,0 @@
package cn.com.taiji.iaw.dto.issue;

/**
* @Author:ChenChao
* @Date:2025/6/17 21:21
* @Filename:UploadUserResDTO
* @description:
*/
public class UploadUserResDTO {
}

+ 139
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/dto/issue/UploadVehicleReqDTO.java View File

@@ -0,0 +1,139 @@
package cn.com.taiji.iaw.dto.issue;

import cn.com.taiji.core.dto.AbstractBizRequestDTO;
import cn.com.taiji.core.entity.dict.basic.IdType;
import cn.com.taiji.core.entity.dict.basic.PlateColorType;
import cn.com.taiji.core.entity.dict.basic.UseUserType;
import cn.com.taiji.core.entity.dict.basic.VehicleUseCharacter;
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;

/**
* @Author:ChenChao
* @Date:2025/6/18 10:28
* @Filename:UploadVehicleReqDTO
* @description:
*/
@Data
@ApiModel(description = "上传车辆信息请求参数")
public class UploadVehicleReqDTO extends AbstractBizRequestDTO {


@NotBlank
@ApiModelProperty(value = "订单编号")
private String orderNo;
@NotBlank
@ApiModelProperty(value = "车牌号")
private String vehiclePlate;// 车牌号
@NotNull
@EnumInteger(enumClazz = PlateColorType.class)
@ApiModelProperty(value = "车牌颜色")
private Integer vehiclePlateColor;// 车牌颜色
@NotNull
@EnumInteger(enumClazz = UseUserType.class)
@ApiModelProperty(value = "车辆使用类型")
private Integer useUserType;//车辆使用类型
@NotNull
@IntegerConstant(values = "1,2")
@ApiModelProperty(value = "前/后装标识,1-前装 2-后装")
private Integer vehicleSign=2;// 前/后装标识,1-前装 2-后装
@NotNull
@IntegerConstant(values = "1,2")
@ApiModelProperty(value = "客货类型 1-客车 2-货车")
private Integer vanType;// 客货类型
@NotBlank
@ApiModelProperty(value = "车辆vin码")
private String vin;// vin码
@NotBlank
@ApiModelProperty(value = "车辆发动机编号")
private String engineNum;// 发动机编号
@NotBlank
@ApiModelProperty(value = "行驶证车辆类型")
private String vehicleType;// 行驶证车辆类型 ocr识别
@NotBlank
@ApiModelProperty(value = "行驶证车辆品牌")
private String vehicleModel;// 行驶证车辆品牌
@NotNull
@ApiModelProperty(value = "车辆核定载人数")
private Integer approvedCount;// 核定载人数
@ApiModelProperty(value = "车辆总质量")
private Integer totalMass;// 总质量
@ApiModelProperty(value = "车辆整备质量")
private Integer maintenaceMass;// 整备质量
@ApiModelProperty(value = "核定载质量")
private Integer permittedWeight;// 核定载质量
@ApiModelProperty(value = "准牵引总质量")
private Integer permittedTowWeight;// 准牵引总质量
@NotBlank
@ApiModelProperty(value = "车辆尺寸")
private String vehicleDimensions;// 车辆尺寸
@Min(value = 2)
@ApiModelProperty(value = "车辆轴数")
private Integer axleCount;// 车轴数
@NotBlank
@ApiModelProperty(value = "行驶证车主姓名")
private String ownerName;//行驶证车主姓名

@NotBlank
@ApiModelProperty(value = "发证日期")
private String issueDate;// 发证日期
// private String agreementId;// 签约编号
@ApiModelProperty(value = "道路运输证号码")
private String transportIdNum;// 道路运输证编号
@ApiModelProperty(value = "经营许可证编号")
private String licenseIdNum;// 经营许可证编号
@NotBlank
@ApiModelProperty(value = "行驶证主页照片")
private String vehPosImgUrl;// 行驶证主页照片
@NotBlank
@ApiModelProperty(value = "行驶证副页照片")
private String vehNegImgUrl;// 行驶证副页照片
@NotBlank
@ApiModelProperty(value = "车辆45度照片")
private String vehBodyUrl;// 车身45°照片
@NotNull
@IntegerConstant(values = "0,1")
@ApiModelProperty(value = "牵引车标识:0否 1 是")
private Integer tractorSign;// 牵引车标识:0否 1 是
@ApiModelProperty(value = "道路运输许可证图片地址")
private String roadTransportPermitPicUrl;// 道路运输许可证图片地址
@NotNull
@EnumInteger(enumClazz = VehicleUseCharacter.class)
@ApiModelProperty(value = "车辆使用性质")
private Integer character;
@NotBlank
@ApiModelProperty(value = "车辆注册日期")
private String registerDate;// 注册日期
@IntegerConstant(values = "0,1")
@ApiModelProperty(value = "应急车辆标识0-非应急车辆 1-应急车辆")
private Integer emergencyFlag;// 应急车辆标识 0-非应急车辆 1-应急车辆
@NotNull
@ApiModelProperty(value = "收费车型")
private Integer feeVehicleType;//收费车型


@ApiModelProperty(value = "车主手机号")
private String ownerTel;//车主手机号
@ApiModelProperty(value = "身份证上姓名")
private String idName;//身份证上姓名
@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 proxyUrl;// 委托书地址
}

+ 25
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/dto/issue/UploadVehicleResDTO.java View File

@@ -0,0 +1,25 @@
package cn.com.taiji.iaw.dto.issue;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
* @Author:ChenChao
* @Date:2025/6/18 14:54
* @Filename:UploadVehicleResDTO
* @description:
*/
@ApiModel(description = "上传车辆信息响应参数")
@Data
public class UploadVehicleResDTO {

@ApiModelProperty(value = "1-审核通过 2-审核不通过,待人工审核")
private Integer approvalStatus;
@ApiModelProperty(value = "审核结果为2时必填")
private String reason;

@ApiModelProperty(value = "上传车主身份标识,1需要,2不需要")
private Integer flag;

}

+ 6
- 4
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/issue/IssueOrderManage.java View File

@@ -3,9 +3,7 @@ package cn.com.taiji.iaw.manager.issue;
import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.common.model.dao.Pagination;
import cn.com.taiji.iaw.dto.issue.OrderAppPageReqDTO;
import cn.com.taiji.iaw.dto.issue.OrderCreateReqDTO;
import cn.com.taiji.iaw.dto.issue.OrderMinPageReqDTO;
import cn.com.taiji.iaw.dto.issue.*;

/**
* @Author:ChenChao
@@ -18,5 +16,9 @@ public interface IssueOrderManage {

Pagination aOrderPage(OrderAppPageReqDTO reqDto);

String add(OrderCreateReqDTO reqDto) throws ManagerException;
java.lang.String add(OrderCreateReqDTO reqDto) throws ManagerException;

String upUser(UploadUserReqDTO reqDto) throws ManagerException;

UploadVehicleResDTO upVehicle(UploadVehicleReqDTO reqDto) throws ManagerException;
}

+ 36
- 10
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/issue/IssueOrderManageImpl.java View File

@@ -5,16 +5,15 @@ import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.common.model.dao.Pagination;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.entity.dict.basic.UserType;
import cn.com.taiji.core.entity.issue.IssueOrderinfo;
import cn.com.taiji.core.entity.issue.IssueProduct;
import cn.com.taiji.core.entity.user.Staff;
import cn.com.taiji.core.model.comm.protocol.ias.order.OrderInitRequest;
import cn.com.taiji.core.model.comm.protocol.ias.order.OrderInitResponse;
import cn.com.taiji.core.model.comm.protocol.ias.order.*;
import cn.com.taiji.core.repo.jpa.issue.IssueOrderinfoRepo;
import cn.com.taiji.core.repo.jpa.issue.IssueProductRepo;
import cn.com.taiji.core.repo.jpa.user.StaffRepo;
import cn.com.taiji.iaw.dto.issue.OrderAppPageReqDTO;
import cn.com.taiji.iaw.dto.issue.OrderCreateReqDTO;
import cn.com.taiji.iaw.dto.issue.OrderMinPageReqDTO;
import cn.com.taiji.iaw.dto.issue.*;
import cn.com.taiji.iaw.manager.AbstractCommManager;
import cn.com.taiji.iaw.repo.jpa.request.issue.IssueOrderaPageRequest;
import cn.com.taiji.iaw.repo.jpa.request.issue.IssueOrdermPageRequest;
@@ -28,7 +27,7 @@ import org.springframework.stereotype.Service;
* @description: 发行订单管理实现类
*/
@Service
public class IssueOrderManageImpl extends AbstractCommManager implements IssueOrderManage{
public class IssueOrderManageImpl extends AbstractCommManager implements IssueOrderManage {

@Autowired
private IssueOrderinfoRepo issueOrderinfoRepo;
@@ -40,7 +39,7 @@ public class IssueOrderManageImpl extends AbstractCommManager implements IssueOr
@Override
public Pagination mOrderPage(OrderMinPageReqDTO reqDto) throws ServiceHandleException {
IssueOrdermPageRequest request = copyProperties(reqDto, new IssueOrdermPageRequest());
String openId = findOpenIdByToken(reqDto.getAccessToken());
java.lang.String openId = findOpenIdByToken(reqDto.getAccessToken());
request.setOpenId(openId);
return issueOrderinfoRepo.page(request);
}
@@ -56,21 +55,22 @@ public class IssueOrderManageImpl extends AbstractCommManager implements IssueOr

@Override
public String add(OrderCreateReqDTO reqDto) throws ManagerException {
reqDto.validate();
IssueProduct product = issueProductRepo.findByReleaseId(reqDto.getProductId());
OrderInitRequest request = copyProperties(reqDto, new OrderInitRequest());

if (SourceType.WECHAT == reqDto.getOrderSource()){
if (SourceType.WECHAT == reqDto.getOrderSource()) {
request.setAgentId(product.getAgencyId());
request.setChannelId("5201010200601130001");
request.setOpenId(findOpenIdByToken(reqDto.getAccessToken()));
}
if (SourceType.SERVICE_HALL == reqDto.getOrderSource()){
if (SourceType.SERVICE_HALL == reqDto.getOrderSource()) {
Staff staff = staffRepo.findByStaffId(reqDto.getStaffId());
request.setAgentId(staff.getAgencyId());
request.setChannelId(staff.getServiceHallId());
request.setStaffNum(reqDto.getStaffId());
}
if (SourceType.ALI == reqDto.getOrderSource()){
if (SourceType.ALI == reqDto.getOrderSource()) {
request.setAgentId(product.getAgencyId());
request.setChannelId("5201010600401140003");
request.setOpenId(findOpenIdByToken(reqDto.getAccessToken()));
@@ -79,4 +79,30 @@ public class IssueOrderManageImpl extends AbstractCommManager implements IssueOr
OrderInitResponse response = jsonPostRepeat(request);
return response.getOrderNo();
}

@Override
public String upUser(UploadUserReqDTO reqDto) throws ManagerException {
UserUploadRequest request = copyProperties(reqDto, new UserUploadRequest());
UserUploadResponse response = jsonPostRepeat(request);
return response.getCustomerId();
}

@Override
public UploadVehicleResDTO upVehicle(UploadVehicleReqDTO reqDto) throws ManagerException {
IssueOrderinfo order = issueOrderinfoRepo.findByOrderNo(reqDto.getOrderNo());
if (order == null) throw new ManagerException("订单不存在");
UploadVehicleResDTO res = new UploadVehicleResDTO();
// 个人行驶证与办理人不一致,要求上传车主证件
if (UserType.PERSONAL_USER.equals(order.getUserType()) &&
!reqDto.getOwnerName().equals(order.getOwnerName()) && hasText(reqDto.getIdName())) {
res.setFlag(1);
return res;
}
VehicleUploadRequest request = copyProperties(reqDto, new VehicleUploadRequest());
VehicleUploadResponse response = jsonPostRepeat(request);
res.setApprovalStatus(response.getApprovalStatus());
res.setReason(response.getReason());
res.setFlag(2);
return res;
}
}

+ 1
- 1
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/issue/IssueProductManagerImpl.java View File

@@ -58,7 +58,7 @@ public class IssueProductManagerImpl extends AbstractCommManager implements Issu
request.setPromotionMode(2);
}
//找出启用状态的推广产品
List<String> releaseIds = issueProductPromotionRepo.findReleaseIds("%"+agencyId+"%", LocalDateTime.now());
List<String> releaseIds = issueProductPromotionRepo.findReleaseIds(reqDto.toLikeStr(agencyId), LocalDateTime.now());
request.setOrderSource(reqDto.getOrderSource());
request.setReleaseIdList(releaseIds);
return issueProductRepo.page(request);

Loading…
Cancel
Save