package com.xiaopeng.admin.support;
|
|
import com.xiaopeng.api.vo.commandCenter.CommandCenterRouteInfoVo;
|
import com.xiaopeng.api.vo.commandCenter.CommandCenterVehicleDetailVo;
|
|
/**
|
* 指挥中心 Mock 单车详情
|
*
|
* @ClassName CommandCenterMockDetailSupport
|
* @Description mock 车辆 99901~99908 详情数据
|
*/
|
public final class CommandCenterMockDetailSupport {
|
|
private static final long MOCK_VEHICLE_ID_MIN = 99901L;
|
private static final long MOCK_VEHICLE_ID_MAX = 99908L;
|
|
private CommandCenterMockDetailSupport() {
|
}
|
|
/**
|
* 是否为 mock 车辆 ID
|
*
|
* @param vehicleId 车辆 ID
|
* @return 是否 mock
|
*/
|
public static boolean isMockVehicleId(Long vehicleId) {
|
return vehicleId != null && vehicleId >= MOCK_VEHICLE_ID_MIN && vehicleId <= MOCK_VEHICLE_ID_MAX;
|
}
|
|
/**
|
* 构建 mock 单车详情
|
*
|
* @param vehicleId 车辆 ID
|
* @return 详情,非 mock ID 返回 null
|
*/
|
public static CommandCenterVehicleDetailVo buildMockVehicleDetail(Long vehicleId) {
|
if (!isMockVehicleId(vehicleId)) {
|
return null;
|
}
|
switch (vehicleId.intValue()) {
|
case 99901:
|
return build(99901L, "MOCK_VIN_CRUISING", "粤A MOCK01",
|
"CRUISING", "巡游中", "CRUISING", 113.3245, 23.1091, 85, 3, null);
|
case 99902:
|
return build(99902L, "MOCK_VIN_PICKUP", "粤A MOCK02",
|
"HAS_ORDER", "接驾中", "PICK_UP", 113.3210, 23.1190, 72, 2,
|
route(113.3245, 23.1091, 113.3210, 23.1190, "广州塔", "珠江新城"));
|
case 99903:
|
return build(99903L, "MOCK_VIN_DROPOFF", "粤A MOCK03",
|
"HAS_ORDER", "送驾中", "DROP_OFF", 113.3500, 23.1020, 65, 6,
|
route(113.3500, 23.1020, 113.3560, 23.1270, "琶洲西", "天河公园"));
|
case 99904:
|
return build(99904L, "MOCK_VIN_CHARGING", "粤A MOCK04",
|
"OCCUPIED", "充电中", "CHARGING", 113.3180, 23.0985, 45, 1, null);
|
case 99905:
|
return build(99905L, "MOCK_VIN_PREPARING", "粤A MOCK05",
|
"OCCUPIED", "整备中", "PREPARING", 113.3150, 23.1380, 90, 0, null);
|
case 99906:
|
return build(99906L, "MOCK_VIN_RETURNING", "粤A MOCK06",
|
"OCCUPIED", "回场中", "RETURNING", 113.2690, 23.0028, 55, 4, null);
|
case 99907:
|
return build(99907L, "MOCK_VIN_ABNORMAL", "粤A MOCK07",
|
"ABNORMAL", "车辆异常", "ABNORMAL", 113.2730, 23.1650, 30, 2, null);
|
case 99908:
|
return build(99908L, "MOCK_VIN_ODDOUT", "粤A MOCK08",
|
"ABNORMAL", "ODD越界", "ODD_OUT", 113.3560, 23.1270, 60, 0, null);
|
default:
|
return null;
|
}
|
}
|
|
private static CommandCenterVehicleDetailVo build(Long vehicleId, String vin, String plateNumber,
|
String monitorGroup, String monitorStatus, String stateCode,
|
double lon, double lat, int electricity,
|
int todayCompletedOrders, CommandCenterRouteInfoVo routeInfo) {
|
CommandCenterVehicleDetailVo detail = new CommandCenterVehicleDetailVo();
|
detail.setVehicleId(vehicleId);
|
detail.setVin(vin);
|
detail.setPlateNumber(plateNumber);
|
detail.setMonitorGroup(monitorGroup);
|
detail.setMonitorStatus(monitorStatus);
|
detail.setStateCode(stateCode);
|
detail.setCurrentElectricity(electricity);
|
detail.setCurrentLon(lon);
|
detail.setCurrentLat(lat);
|
detail.setTodayCompletedOrders(todayCompletedOrders);
|
detail.setRouteInfo(routeInfo);
|
return detail;
|
}
|
|
private static CommandCenterRouteInfoVo route(double startLon, double startLat, double endLon, double endLat,
|
String startAddress, String endAddress) {
|
CommandCenterRouteInfoVo routeInfo = new CommandCenterRouteInfoVo();
|
routeInfo.setStartLon(startLon);
|
routeInfo.setStartLat(startLat);
|
routeInfo.setEndLon(endLon);
|
routeInfo.setEndLat(endLat);
|
routeInfo.setStartAddress(startAddress);
|
routeInfo.setEndAddress(endAddress);
|
return routeInfo;
|
}
|
}
|