package com.xiaopeng.order.job.jobs;
|
|
import com.xiaopeng.api.dto.automaticPilot.PushOrderDto;
|
import com.xiaopeng.api.model.order.XpOrder;
|
import com.xiaopeng.api.model.order.XpOrderCancel;
|
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
|
import com.xiaopeng.api.vo.automaticPilot.protobuf.OrderOperationType;
|
import com.xiaopeng.api.vo.automaticPilot.protobuf.TaskActionType;
|
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 OrderCancelJob extends AbstractJob {
|
|
public static final String name = "orderCancel_";
|
|
@Override
|
public void execute(JobExecutionContext context)
|
throws JobExecutionException {
|
JobDataMap maps = context.getMergedJobDataMap();
|
Long orderId = maps.getLong("id");
|
try {
|
log.info("开始执行订单取消任务 {}", orderId);
|
XpOrder xpOrder = xpOrderService.getById(orderId);
|
if(Objects.nonNull(xpOrder) && (xpOrder.getStatus()==4 || xpOrder.getStatus()==5)){
|
Integer status = xpOrder.getStatus();
|
log.info("订单取消开始");
|
XpOrder order = xpOrderService.cancelOrder(String.valueOf(xpOrder.getId()));
|
// 下发命令
|
if (null != order.getVehicleId() && null == xpOrder.getOfficialPartnerId()) {
|
R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(order.getVehicleId());
|
XpVehicle xpVehicle = xpVehicleR.getData();
|
//还原车辆状态为空闲
|
if(1 == xpVehicle.getState()){
|
XpVehicle vehicle1 = new XpVehicle();
|
vehicle1.setId(xpVehicle.getId());
|
vehicle1.setState(0);
|
xpVehicleClient.updateVehicleById(vehicle1);
|
log.info("订单定时取消,车辆状态修改0 {}", xpVehicle.getPlateNumber());
|
}
|
//车辆继续巡游单
|
xpOrderService.addCruiseMission(order, status);
|
}
|
log.info("订单取消状态修改完成");
|
}
|
}catch(Exception e){
|
e.printStackTrace();
|
}
|
}
|
|
}
|