package com.xiaopeng.order.job.jobs; import com.xiaopeng.api.dto.automaticPilot.PushOrderDto; import com.xiaopeng.api.model.order.XpCruiseOrder; import com.xiaopeng.api.model.order.XpOrder; import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; import com.xiaopeng.api.vo.OrderType; import com.xiaopeng.api.vo.vehicleConvoy.CancelTaxiPassengerVo; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.order.job.base.AbstractJob; import lombok.extern.slf4j.Slf4j; import org.quartz.JobDataMap; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import java.util.Objects; /** * 推送定时任务 * @author Administrator * */ @Slf4j public class AddCruiseMissionJob extends AbstractJob { public static final String name = "addCruiseMission_"; @Override public void execute(JobExecutionContext context) throws JobExecutionException { JobDataMap maps = context.getMergedJobDataMap(); Long orderId = maps.getLong("id"); String appid = maps.getString("appid"); XpOrder xpOrder = xpOrderService.getById(orderId); // 解绑用户与车辆关系 CancelTaxiPassengerVo cancelTaxiPassengerVo = new CancelTaxiPassengerVo(); XpVehicle vehicle = xpVehicleClient.queryById(xpOrder.getVehicleId()).getData(); if (vehicle != null) { cancelTaxiPassengerVo.setVin(vehicle.getVehicleVin()); cancelTaxiPassengerVo.setUid(xpOrder.getAppUserId().toString()); cancelTaxiPassengerVo.setOrderNo(xpOrder.getOrderNumber()); cancelTaxiPassengerVo.setAppId(appid); userVehicleClient.cancelTaxiPassenger(cancelTaxiPassengerVo); log.info("车辆到达终点后的定时任务解绑用户和车辆关系 {}", xpOrder.getOrderNumber()); // 修改车辆接单状态 XpVehicle vehicle1 = new XpVehicle(); vehicle1.setState(0); vehicle1.setId(vehicle.getId()); xpVehicleClient.updateVehicleById(vehicle1); log.info("定时执行到达终点后的逻辑,车辆状态修改0 {}", vehicle.getPlateNumber()); log.info("车辆到达终点后的定时任务回滚车辆状态为空闲 {}", xpOrder.getOrderNumber()); } xpOrderService.addCruiseMission(vehicle.getId(), xpOrder); log.info("车辆到达终点后的定时任务给车辆派巡游单 {}", xpOrder.getOrderNumber()); } }