} | } | ||||
@ApiOperation(value = "18.订单详情") | @ApiOperation(value = "18.订单详情") | ||||
@PostMapping(value = "/orderDetailQuery") | @PostMapping(value = "/orderDetailQuery") | ||||
public ApiResponse<OrderDetailResDto> orderDetailQuery(@Valid @RequestBody OrderDetailReqDto reqDto) throws ManagerException { | |||||
OrderDetailResDto resDto = issueOrderManage.orderDetailQuery(reqDto); | |||||
public ApiResponse<OrderDetailResDTO> orderDetailQuery(@Valid @RequestBody OrderDetailReqDto reqDto) throws ManagerException { | |||||
OrderDetailResDTO resDto = issueOrderManage.orderDetailQuery(reqDto); | |||||
return ApiResponse.of(resDto); | return ApiResponse.of(resDto); | ||||
} | } | ||||
@ApiOperation(value = "19.修改地址前-查询") | @ApiOperation(value = "19.修改地址前-查询") | ||||
OrderQueryResponseDTO response = issueOrderManage.orderQuery(request); | OrderQueryResponseDTO response = issueOrderManage.orderQuery(request); | ||||
return ApiResponse.of(response); | return ApiResponse.of(response); | ||||
} | } | ||||
@ApiOperation(value = "领取-APP") | |||||
@PostMapping(value = "/receive") | |||||
public ApiResponse<?> receive(@Valid @RequestBody OrderReceiveReqDTO reqDto) throws ManagerException { | |||||
issueOrderManage.receive(reqDto); | |||||
return ApiResponse.success(); | |||||
} | |||||
@ApiOperation(value = "审核-APP") | |||||
@PostMapping(value = "/examine") | |||||
public ApiResponse<?> examine(@Valid @RequestBody OrderExamineReqDTO reqDto) throws ManagerException { | |||||
issueOrderManage.examine(reqDto); | |||||
return ApiResponse.success(); | |||||
} | |||||
} | } |
package cn.com.taiji.iaw.dto.issue.order; | |||||
import cn.com.taiji.core.entity.dict.basic.*; | |||||
import cn.com.taiji.core.entity.dict.issue.IssueOrderStatus; | |||||
import cn.com.taiji.core.entity.dict.issue.IssueOrderStep; | |||||
import cn.com.taiji.core.entity.dict.issue.ShippingStatus; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import javax.persistence.Column; | |||||
import javax.persistence.EnumType; | |||||
import javax.persistence.Enumerated; | |||||
import javax.validation.constraints.Size; | |||||
import java.time.LocalDateTime; | |||||
/** | |||||
* @Author:ChenChao | |||||
* @Date:2025/8/4 10:03 | |||||
* @Filename:IssueOrderinfoModel | |||||
* @description:发行订单信息与订单实体一摸一样:目的标注swagger | |||||
*/ | |||||
@ApiModel(description = "发行订单拓展信息") | |||||
@Data | |||||
public class IssueOrderinfoExtModel { | |||||
@ApiModelProperty(value = "订单id") | |||||
private String orderNo; | |||||
@ApiModelProperty(value = "取消订单操作人") | |||||
private String cancelOpId; | |||||
@ApiModelProperty(value = "取消订单原因。取消订单时必填") | |||||
private String cancelReason; | |||||
@ApiModelProperty(value = "customer_department;部门") | |||||
private String customerDepartment; | |||||
@ApiModelProperty(value = "address;地址") | |||||
private String customerAddress; | |||||
@ApiModelProperty(value = "positive_image_url;证件照正面图片地址") | |||||
private String customerPositiveImageUrl; | |||||
@ApiModelProperty(value = "negative_image_url;证件照反面图片地址") | |||||
private String customerNegativeImageUrl; | |||||
@ApiModelProperty(value = "委托书照片") | |||||
private String proxyUrl; | |||||
@ApiModelProperty(value = "经办人正面照片") | |||||
private String agentPosImgUrl; | |||||
@ApiModelProperty(value = "经办人反面照片") | |||||
private String agentNegImgUrl; | |||||
@ApiModelProperty(value = "经办人性别") | |||||
private Gender agentGender; | |||||
@ApiModelProperty(value = "经办人联系方式") | |||||
private String agentTel; | |||||
@ApiModelProperty(value = "经办人地址") | |||||
private String agentAddress; | |||||
@ApiModelProperty(value = "经办人证件有效期") | |||||
private String agentIdVld; | |||||
@ApiModelProperty(value = "vehicle_approved_count;核载人数") | |||||
private Integer vehicleApprovedCount; | |||||
@ApiModelProperty(value = "vehicle_total_mass;总质量") | |||||
private Integer vehicleTotalMass; | |||||
@ApiModelProperty(value = "vehicle_maintenace_mass;整备质量") | |||||
private Integer vehicleMaintenaceMass; | |||||
@ApiModelProperty(value = "vehicle_permitted_weight;核定载质量") | |||||
private Integer vehiclePermittedWeight; | |||||
@ApiModelProperty(value = "vehicle_engine_num;发动机号码") | |||||
private String vehicleEngineNum; | |||||
@ApiModelProperty(value = "vehicle_vin;车辆识别代号") | |||||
private String vehicleVin; | |||||
@ApiModelProperty(value = "vehicle_model;行驶证品牌型号") | |||||
private String vehicleModel; | |||||
@ApiModelProperty(value = "vehicle_dimensions;车辆尺寸 行驶证上内容 长*宽*高,mm,不超过100个字符") | |||||
private String vehicleDimensions; | |||||
@ApiModelProperty(value = "vehicle_permitted_two_weight;准牵引总质量") | |||||
private Integer vehiclePermittedTwoWeight; | |||||
@ApiModelProperty(value = "行驶证正面照片") | |||||
private String vehPosImgUrl; | |||||
@ApiModelProperty(value = "行驶证反面 照片") | |||||
private String vehNegImgUrl; | |||||
@ApiModelProperty(value = "车身45度照") | |||||
private String vehBodyUrl; | |||||
@ApiModelProperty(value = "用户使用类型") | |||||
private UseUserType useUserType; | |||||
@ApiModelProperty(value = "牵引车标识:0否1是") | |||||
private Integer tractorSign; | |||||
@ApiModelProperty(value = "道路运输许可证图片地址") | |||||
private String roadTransportPermitPicUrl; | |||||
@ApiModelProperty(value = "经度") | |||||
private String longitude; | |||||
@ApiModelProperty(value = "纬度") | |||||
private String latitude; | |||||
@ApiModelProperty(value = "办理时的详细地址") | |||||
private String detailedAddress; | |||||
@ApiModelProperty(value = "机审失败原因") | |||||
private String auditReason; | |||||
@ApiModelProperty(value = "退货驳回拒绝原因") | |||||
private String rejectReason; | |||||
@ApiModelProperty(value = "订单审核失败原因") | |||||
private String auditFailureCase; | |||||
@ApiModelProperty(value = "卡卷ids 多个用,号分隔,激活后领取时下发") | |||||
private String couponIds; | |||||
@ApiModelProperty(value = "签约配置编号") | |||||
private String signConfigId; | |||||
@ApiModelProperty(value = "协议编号") | |||||
private String agreements; | |||||
@ApiModelProperty(value = "车轴数") | |||||
private Integer vehicleAxleCount; | |||||
@ApiModelProperty(value = "车辆使用性质") | |||||
private VehicleUseCharacter useCharacter; | |||||
@ApiModelProperty(value = "注册日期") | |||||
private String registerDate; | |||||
@ApiModelProperty(value = "发证日期") | |||||
private String issueDate; | |||||
@ApiModelProperty(value = "签约时间") | |||||
private LocalDateTime agreeTime; | |||||
@ApiModelProperty(value = "收货人——第一次发货记录") | |||||
private String consignee; | |||||
@ApiModelProperty(value = "收货人电话——第一次发货记录") | |||||
private String consigneeTel; | |||||
@ApiModelProperty(value = "收货所在地区(省、市、区、街道)——第一次发货记录") | |||||
private String region; | |||||
@ApiModelProperty(value = "收货详细地址——第一次发货记录") | |||||
private String address; | |||||
@ApiModelProperty(value = "邮政编码") | |||||
private String postCode; | |||||
@ApiModelProperty(value = "快递单号 ——第一次发货记录") | |||||
private String trackingNumber; | |||||
@ApiModelProperty(value = "快递公司 ——第一次发货记录") | |||||
private String courierCompany; | |||||
@ApiModelProperty(value = "车主电话") | |||||
private String ownerTel; | |||||
@ApiModelProperty(value = "车主联系地址") | |||||
private String ownerAddress; | |||||
@ApiModelProperty(value = "车主证件正面图片") | |||||
private String ownerPosImgUrl; | |||||
@ApiModelProperty(value = "车主证件反面图片") | |||||
private String ownerNegImgUrl; | |||||
} |
package cn.com.taiji.iaw.dto.issue.order; | |||||
import cn.com.taiji.core.entity.issue.IssueOrderinfo; | |||||
import cn.com.taiji.core.entity.issue.IssueOrderinfoExt; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
/** | |||||
* @Author:ChenChao | |||||
* @Date:2025/7/16 16:25 | |||||
* @Filename:orderDetailResDto | |||||
* @description: | |||||
*/ | |||||
@ApiModel("订单详情返回参数") | |||||
@Data | |||||
public class OrderDetailResDto extends IssueOrderinfoModel { | |||||
@ApiModelProperty(value = "是否可以评价") | |||||
private Boolean canEvaluate; | |||||
@ApiModelProperty(value = "渠道签约地址") | |||||
private String qdSignUrl; | |||||
@ApiModelProperty(value = "渠道AppId") | |||||
private String qdAppId; | |||||
@ApiModelProperty(value = "车身45度照") | |||||
private String vehBodyUrl;//车身45度照 | |||||
} |
package cn.com.taiji.iaw.dto.issue.order; | |||||
import cn.com.taiji.common.valid.ViolationValidator; | |||||
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; | |||||
import javax.validation.constraints.NotNull; | |||||
/** | |||||
* @Author:ChenChao | |||||
* @Date:2025/6/9 19:14 | |||||
* @Filename:OrderExamineReqDTO | |||||
* @description: | |||||
*/ | |||||
@ApiModel(description = "审核入参") | |||||
@Data | |||||
public class OrderExamineReqDTO extends AbstractStaffBizRequestDTO { | |||||
@NotBlank | |||||
@ApiModelProperty("订单编号") | |||||
private String orderNo; | |||||
@ApiModelProperty(value = "审核状态") | |||||
@NotNull | |||||
private Boolean auditStatus; | |||||
@ApiModelProperty(value = "审核原因") | |||||
private String reason; | |||||
@Override | |||||
protected void validate(ViolationValidator validator) { | |||||
if(!auditStatus) { | |||||
validator.validFieldNotNull("reason", reason); | |||||
} | |||||
} | |||||
} |
package cn.com.taiji.iaw.dto.issue.order; | |||||
import cn.com.taiji.core.dto.AbstractStaffBizRequestDTO; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
/** | |||||
* @Author:ChenChao | |||||
* @Date:2025/8/4 14:47 | |||||
* @Filename:OrderReceiveReqDTO | |||||
* @description: | |||||
*/ | |||||
@Data | |||||
@ApiModel(description = "订单领取请求") | |||||
public class OrderReceiveReqDTO extends AbstractStaffBizRequestDTO { | |||||
@ApiModelProperty(value = "订单编号") | |||||
private String orderNo; | |||||
} |
package cn.com.taiji.iaw.dto.issue.order; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
/** | |||||
* @Author:ChenChao | |||||
* @Date:2025/7/16 16:25 | |||||
* @Filename:orderDetailResDto | |||||
* @description: | |||||
*/ | |||||
@ApiModel("订单详情返回参数") | |||||
@Data | |||||
public class OrderDetailResDTO extends IssueOrderinfoModel { | |||||
@ApiModelProperty(value = "是否可以评价") | |||||
private Boolean canEvaluate; | |||||
@ApiModelProperty(value = "渠道签约地址") | |||||
private String qdSignUrl; | |||||
@ApiModelProperty(value = "渠道AppId") | |||||
private String qdAppId; | |||||
@ApiModelProperty(value = "车身45度照") | |||||
private String vehBodyUrl;//车身45度照 | |||||
@ApiModelProperty(value = "订单拓展信息") | |||||
private IssueOrderinfoExtModel orderinfoExt; | |||||
} |
void agreeProtocol(AgreeProtocolReqDTO reqDto) throws ManagerException; | void agreeProtocol(AgreeProtocolReqDTO reqDto) throws ManagerException; | ||||
OrderDetailResDto orderDetailQuery(OrderDetailReqDto reqDto) throws ManagerException; | |||||
OrderDetailResDTO orderDetailQuery(OrderDetailReqDto reqDto) throws ManagerException; | |||||
void orderReceiveGoods(OrderDetailReqDto reqDto) throws ManagerException; | void orderReceiveGoods(OrderDetailReqDto reqDto) throws ManagerException; | ||||
PayAfterOrderResDTO payAfterOrder(OrderDetailReqDto reqDto) throws ManagerException; | PayAfterOrderResDTO payAfterOrder(OrderDetailReqDto reqDto) throws ManagerException; | ||||
OrderQueryResponseDTO orderQuery(CommRequestDTO request) throws ServiceHandleException; | OrderQueryResponseDTO orderQuery(CommRequestDTO request) throws ServiceHandleException; | ||||
void receive(OrderReceiveReqDTO reqDto) throws ManagerException; | |||||
void examine(OrderExamineReqDTO reqDto) throws ManagerException; | |||||
} | } |
} | } | ||||
@Override | @Override | ||||
public OrderDetailResDto orderDetailQuery(OrderDetailReqDto reqDto) throws ManagerException { | |||||
public OrderDetailResDTO orderDetailQuery(OrderDetailReqDto reqDto) throws ManagerException { | |||||
IssueOrderinfo orderinfo = checkOrder(reqDto.getOrderNo()); | IssueOrderinfo orderinfo = checkOrder(reqDto.getOrderNo()); | ||||
IssueOrderinfoExt orderinfoExt = checkOrderExt(reqDto.getOrderNo()); | IssueOrderinfoExt orderinfoExt = checkOrderExt(reqDto.getOrderNo()); | ||||
OrderDetailResDto resDto = copyProperties(orderinfo, new OrderDetailResDto()); | |||||
OrderDetailResDTO resDto = copyProperties(orderinfo, new OrderDetailResDTO()); | |||||
resDto.setVehBodyUrl(orderinfoExt.getVehBodyUrl()); | resDto.setVehBodyUrl(orderinfoExt.getVehBodyUrl()); | ||||
IssueOrderinfoExtModel extModel = copyProperties(orderinfoExt, new IssueOrderinfoExtModel()); | |||||
//处理地址===============开始 | |||||
extModel.setCustomerPositiveImageUrl(minioUtil.getOuterUrl(orderinfoExt.getCustomerPositiveImageUrl())); | |||||
extModel.setCustomerNegativeImageUrl(minioUtil.getOuterUrl(orderinfoExt.getCustomerNegativeImageUrl())); | |||||
extModel.setProxyUrl(minioUtil.getOuterUrl(orderinfoExt.getProxyUrl())); | |||||
extModel.setAgentPosImgUrl(minioUtil.getOuterUrl(orderinfoExt.getAgentPosImgUrl())); | |||||
extModel.setAgentNegImgUrl(minioUtil.getOuterUrl(orderinfoExt.getAgentNegImgUrl())); | |||||
extModel.setVehPosImgUrl(minioUtil.getOuterUrl(orderinfoExt.getVehPosImgUrl())); | |||||
extModel.setVehNegImgUrl(minioUtil.getOuterUrl(orderinfoExt.getVehNegImgUrl())); | |||||
extModel.setVehBodyUrl(minioUtil.getOuterUrl(orderinfoExt.getVehBodyUrl())); | |||||
extModel.setRoadTransportPermitPicUrl(minioUtil.getOuterUrl(orderinfoExt.getRoadTransportPermitPicUrl())); | |||||
extModel.setOwnerPosImgUrl(minioUtil.getOuterUrl(orderinfoExt.getOwnerPosImgUrl())); | |||||
extModel.setOwnerNegImgUrl(minioUtil.getOuterUrl(orderinfoExt.getOwnerNegImgUrl())); | |||||
//处理地址===============结束 | |||||
resDto.setOrderinfoExt(extModel); | |||||
//暂定只有激活完成的可以评价 | //暂定只有激活完成的可以评价 | ||||
if (IssueOrderStep.ACTIVED.equals(orderinfo.getOrderStep())) { | if (IssueOrderStep.ACTIVED.equals(orderinfo.getOrderStep())) { | ||||
CommonSatisfaction satisfaction = satisfactionRepo.findByOrderNo(orderinfo.getOrderNo()); | CommonSatisfaction satisfaction = satisfactionRepo.findByOrderNo(orderinfo.getOrderNo()); | ||||
return dto; | return dto; | ||||
} | } | ||||
@Override | |||||
public void receive(OrderReceiveReqDTO reqDto) throws ManagerException { | |||||
// IssueOrderinfo order = issueOrderinfoRepo.findByOrderNo(reqDto.getOrderNo()); | |||||
// if (order == null) throw new ManagerException("此订单不存在"); | |||||
// order.setReceiveStatus(true); | |||||
// order.setReceiveTime(LocalDateTime.now()); | |||||
// Staff staff = staffRepo.findByStaffId(reqDto.getStaffId()); | |||||
// order.setReceiver(staff.getOpenId()); | |||||
// issueOrderinfoRepo.merge(order); | |||||
OrderReceiveRequest request = new OrderReceiveRequest(); | |||||
request.setOrderNo(reqDto.getOrderNo()); | |||||
request.setStaffId(reqDto.getStaffId()); | |||||
OrderReceiveResponse response = jsonPostRepeat(request); | |||||
sysPersistOperateLog(OperateType.ORDER_RECEIVE, response.getId(), reqDto.getOrderSource(), findOpenIdByToken(reqDto.getAccessToken()), "发行订单领取"); | |||||
} | |||||
@Override | |||||
public void examine(OrderExamineReqDTO reqDto) throws ManagerException { | |||||
//格式校验 | |||||
reqDto.validate(); | |||||
OrderAuditRequest request = copyProperties(reqDto, new OrderAuditRequest()); | |||||
OrderAuditResponse response = jsonPostRepeat(request); | |||||
sysPersistOperateLog(OperateType.ORDER_EXAMINE, response.getId(), reqDto.getOrderSource(), findOpenIdByToken(reqDto.getAccessToken()), "发行订单审核"); | |||||
} | |||||
//校验发行订单是否存在 | //校验发行订单是否存在 | ||||
private IssueOrderinfo checkOrder(String orderNo) throws ManagerException { | private IssueOrderinfo checkOrder(String orderNo) throws ManagerException { | ||||
IssueOrderinfo order = issueOrderinfoRepo.findByOrderNo(orderNo); | IssueOrderinfo order = issueOrderinfoRepo.findByOrderNo(orderNo); |