parent
7225567975
commit
2dcc74f546
|
@ -0,0 +1,6 @@
|
|||
#FileLock
|
||||
#Mon Jun 10 14:45:14 CST 2024
|
||||
server=10.3.44.57\:60299
|
||||
hostName=xiaoxin
|
||||
method=file
|
||||
id=19000e4d2757c72203e914587eab1e9cbbfe1286271
|
Binary file not shown.
|
@ -11,7 +11,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|||
* @date 2023/11/9
|
||||
*/
|
||||
@SpringBootApplication
|
||||
@MapperScan(value = "com.muyu.mapper")
|
||||
@MapperScan(value = "com.muyu.**.mapper")
|
||||
public class VehicleSimulationApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
package com.muyu.vehicle;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.muyu.common.SystemConstant;
|
||||
import com.muyu.common.pool.ScheduledThreadPool;
|
||||
import com.muyu.domain.Vehicle;
|
||||
import com.muyu.domain.model.PositionModel;
|
||||
import com.muyu.utils.CalculateCheckDigit;
|
||||
import com.muyu.utils.ConversionUtil;
|
||||
import com.muyu.utils.VehicleUtils;
|
||||
import com.muyu.web.common.SystemConstant;
|
||||
import com.muyu.web.common.pool.ScheduledThreadPool;
|
||||
import com.muyu.web.domain.Vehicle;
|
||||
import com.muyu.web.domain.model.PositionModel;
|
||||
import com.muyu.web.utils.CalculateCheckDigit;
|
||||
import com.muyu.web.utils.ConversionUtil;
|
||||
import com.muyu.web.utils.VehicleUtils;
|
||||
import com.muyu.vehicle.model.VehicleData;
|
||||
import com.muyu.vehicle.model.properties.MqttProperties;
|
||||
import com.muyu.vehicle.thread.VehicleThread;
|
||||
|
@ -29,7 +29,7 @@ import java.util.Objects;
|
|||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
|
||||
import static com.muyu.common.SystemConstant.*;
|
||||
import static com.muyu.web.common.SystemConstant.*;
|
||||
|
||||
/**
|
||||
* @author DongZeLiang
|
||||
|
@ -142,6 +142,7 @@ public class VehicleInstance {
|
|||
JSONObject.toJSONString(this.mqttProperties));
|
||||
} catch (MqttException e) {
|
||||
log.error("车辆:[{}] 客户端初始化异常", getVin(), e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -198,6 +199,9 @@ public class VehicleInstance {
|
|||
if (this.positionCode == null){
|
||||
throw new RuntimeException("车辆["+getVin()+"]为选中路径");
|
||||
}
|
||||
if (!isOnline()){
|
||||
throw new RuntimeException("车辆["+getVin()+"]未和服务器建立链接");
|
||||
}
|
||||
VehicleThread vehicleThread = new VehicleThread();
|
||||
vehicleThread.setVehicleInstance(this);
|
||||
this.setVehicleThread(vehicleThread);
|
||||
|
|
|
@ -3,8 +3,8 @@ package com.muyu.vehicle.api;
|
|||
import com.dtflys.forest.annotation.BaseRequest;
|
||||
import com.dtflys.forest.annotation.JSONBody;
|
||||
import com.dtflys.forest.annotation.Post;
|
||||
import com.muyu.common.Result;
|
||||
import com.muyu.domain.model.MqttServerModel;
|
||||
import com.muyu.web.common.Result;
|
||||
import com.muyu.web.domain.model.MqttServerModel;
|
||||
import com.muyu.vehicle.api.req.VehicleConnectionReq;
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package com.muyu.vehicle.core;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.muyu.common.pool.FixedThreadPool;
|
||||
import com.muyu.common.pool.ScheduledThreadPool;
|
||||
import com.muyu.domain.Vehicle;
|
||||
import com.muyu.service.VehicleInstanceService;
|
||||
import com.muyu.service.VehicleService;
|
||||
import com.muyu.web.common.pool.FixedThreadPool;
|
||||
import com.muyu.web.common.pool.ScheduledThreadPool;
|
||||
import com.muyu.web.domain.Vehicle;
|
||||
import com.muyu.web.service.VehicleInstanceService;
|
||||
import com.muyu.web.service.VehicleService;
|
||||
import com.muyu.vehicle.VehicleInstance;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
package com.muyu.vehicle.model;
|
||||
|
||||
|
||||
import com.muyu.domain.Vehicle;
|
||||
import com.muyu.utils.VehicleUtils;
|
||||
import com.muyu.web.domain.Vehicle;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
@ -10,7 +9,7 @@ import lombok.NoArgsConstructor;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import static com.muyu.utils.VehicleUtils.genValue;
|
||||
import static com.muyu.web.utils.VehicleUtils.genValue;
|
||||
|
||||
/**
|
||||
* @author 牧鱼
|
||||
|
|
|
@ -2,11 +2,13 @@ package com.muyu.vehicle.thread;
|
|||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.muyu.vehicle.VehicleInstance;
|
||||
import lombok.Data;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
|
||||
@Data
|
||||
@Log4j2
|
||||
public class VehicleThread implements Runnable {
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.common;
|
||||
package com.muyu.web.common;
|
||||
|
||||
/**
|
||||
* 返回状态码
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.common;
|
||||
package com.muyu.web.common;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.common;
|
||||
package com.muyu.web.common;
|
||||
|
||||
import lombok.Data;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.common;
|
||||
package com.muyu.web.common;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.common.pool;
|
||||
package com.muyu.web.common.pool;
|
||||
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.common.pool;
|
||||
package com.muyu.web.common.pool;
|
||||
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
|
@ -1,6 +1,6 @@
|
|||
package com.muyu.config;
|
||||
package com.muyu.web.config;
|
||||
|
||||
import com.muyu.common.Result;
|
||||
import com.muyu.web.common.Result;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.config;
|
||||
package com.muyu.web.config;
|
||||
|
||||
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
||||
import lombok.extern.slf4j.Slf4j;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.config;
|
||||
package com.muyu.web.config;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.DbType;
|
||||
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.config;
|
||||
package com.muyu.web.config;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.controller;
|
||||
package com.muyu.web.controller;
|
||||
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.stereotype.Controller;
|
|
@ -0,0 +1,29 @@
|
|||
package com.muyu.web.controller;
|
||||
|
||||
import com.muyu.web.common.Result;
|
||||
import com.muyu.web.domain.model.OverviewModel;
|
||||
import com.muyu.web.domain.resp.OverviewResp;
|
||||
import com.muyu.web.service.OverviewService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 车辆模拟系统概述 OverviewController
|
||||
*
|
||||
* @author Yangle
|
||||
* Date 2024/6/10 14:21
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/vehicle/overview")
|
||||
public class OverviewController {
|
||||
@Autowired
|
||||
private OverviewService overviewService;
|
||||
|
||||
@GetMapping
|
||||
public Result<OverviewResp> getVehicleList() {
|
||||
OverviewModel overviewModel= overviewService.overview();
|
||||
return Result.success(OverviewResp.modeBuild(overviewModel));
|
||||
}
|
||||
}
|
|
@ -1,13 +1,13 @@
|
|||
package com.muyu.controller;
|
||||
package com.muyu.web.controller;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.muyu.common.Result;
|
||||
import com.muyu.domain.User;
|
||||
import com.muyu.service.UserService;
|
||||
import com.muyu.web.common.Result;
|
||||
import com.muyu.web.domain.User;
|
||||
import com.muyu.web.service.UserService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
@ -1,9 +1,9 @@
|
|||
package com.muyu.controller;
|
||||
package com.muyu.web.controller;
|
||||
|
||||
import com.muyu.common.Result;
|
||||
import com.muyu.domain.Vehicle;
|
||||
import com.muyu.domain.req.VehicleCreateAddReq;
|
||||
import com.muyu.service.VehicleService;
|
||||
import com.muyu.web.common.Result;
|
||||
import com.muyu.web.domain.Vehicle;
|
||||
import com.muyu.web.domain.req.VehicleCreateAddReq;
|
||||
import com.muyu.web.service.VehicleService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
|
@ -1,15 +1,13 @@
|
|||
package com.muyu.controller;
|
||||
package com.muyu.web.controller;
|
||||
|
||||
import com.muyu.common.PageList;
|
||||
import com.muyu.common.Result;
|
||||
import com.muyu.domain.car.Car;
|
||||
import com.muyu.domain.req.CheckPositionReq;
|
||||
import com.muyu.domain.req.GearReq;
|
||||
import com.muyu.domain.req.MsgReq;
|
||||
import com.muyu.domain.req.VehicleInstanceListReq;
|
||||
import com.muyu.domain.resp.UnifiedTaskResp;
|
||||
import com.muyu.domain.resp.VehicleInstanceResp;
|
||||
import com.muyu.service.VehicleInstanceService;
|
||||
import com.muyu.web.common.PageList;
|
||||
import com.muyu.web.common.Result;
|
||||
import com.muyu.web.domain.req.CheckPositionReq;
|
||||
import com.muyu.web.domain.req.GearReq;
|
||||
import com.muyu.web.domain.req.MsgReq;
|
||||
import com.muyu.web.domain.req.VehicleInstanceListReq;
|
||||
import com.muyu.web.domain.resp.VehicleInstanceResp;
|
||||
import com.muyu.web.service.VehicleInstanceService;
|
||||
import com.muyu.vehicle.core.LocalContainer;
|
||||
import com.muyu.vehicle.model.VehicleData;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
|
@ -51,7 +49,7 @@ public class VehicleInstanceController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 车辆连接初始化
|
||||
* 关闭车辆连接
|
||||
* @param vin vin
|
||||
* @return 初始化
|
||||
*/
|
|
@ -1,8 +1,8 @@
|
|||
package com.muyu.controller;
|
||||
package com.muyu.web.controller;
|
||||
|
||||
import com.muyu.common.Result;
|
||||
import com.muyu.domain.PositionRouteInfo;
|
||||
import com.muyu.service.PositionRouteService;
|
||||
import com.muyu.web.common.Result;
|
||||
import com.muyu.web.domain.PositionRouteInfo;
|
||||
import com.muyu.web.service.PositionRouteService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
@ -1,8 +1,8 @@
|
|||
package com.muyu.controller;
|
||||
package com.muyu.web.controller;
|
||||
|
||||
import com.muyu.common.Result;
|
||||
import com.muyu.domain.resp.UnifiedTaskResp;
|
||||
import com.muyu.service.VehicleUnifiedService;
|
||||
import com.muyu.web.common.Result;
|
||||
import com.muyu.web.domain.resp.UnifiedTaskResp;
|
||||
import com.muyu.web.service.VehicleUnifiedService;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
@ -1,7 +1,7 @@
|
|||
package com.muyu.controller;
|
||||
package com.muyu.web.controller;
|
||||
|
||||
import com.muyu.common.Result;
|
||||
import com.muyu.domain.model.MqttServerModel;
|
||||
import com.muyu.web.common.Result;
|
||||
import com.muyu.web.domain.model.MqttServerModel;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.domain;
|
||||
package com.muyu.web.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.domain;
|
||||
package com.muyu.web.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
@ -1,9 +1,9 @@
|
|||
package com.muyu.domain;
|
||||
package com.muyu.web.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.muyu.utils.VehicleUtils;
|
||||
import com.muyu.web.utils.VehicleUtils;
|
||||
import com.muyu.vehicle.VehicleInstance;
|
||||
import com.muyu.vehicle.model.VehicleData;
|
||||
import lombok.AllArgsConstructor;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.domain.car;
|
||||
package com.muyu.web.domain.car;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
import lombok.AllArgsConstructor;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.domain.model;
|
||||
package com.muyu.web.domain.model;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
|
@ -0,0 +1,39 @@
|
|||
package com.muyu.web.domain.model;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 概述响应
|
||||
*
|
||||
* @author Yangle
|
||||
* Date 2024/6/10 14:27
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class OverviewModel {
|
||||
/**
|
||||
* 在线车辆
|
||||
*/
|
||||
private Long online;
|
||||
|
||||
/**
|
||||
* 离线车辆
|
||||
*/
|
||||
private Long offline;
|
||||
|
||||
/**
|
||||
* 暂停车辆
|
||||
*/
|
||||
private Long pause;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.domain.model;
|
||||
package com.muyu.web.domain.model;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.domain.model;
|
||||
package com.muyu.web.domain.model;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.domain.req;
|
||||
package com.muyu.web.domain.req;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.domain.req;
|
||||
package com.muyu.web.domain.req;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.domain.req;
|
||||
package com.muyu.web.domain.req;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.domain.req;
|
||||
package com.muyu.web.domain.req;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.domain.req;
|
||||
package com.muyu.web.domain.req;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
|
@ -0,0 +1,41 @@
|
|||
package com.muyu.web.domain.resp;
|
||||
|
||||
import com.muyu.web.domain.model.OverviewModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 概述响应
|
||||
*
|
||||
* @author Yangle
|
||||
* Date 2024/6/10 14:24
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class OverviewResp {
|
||||
/**
|
||||
* 在线车辆
|
||||
*/
|
||||
private Long online;
|
||||
|
||||
/**
|
||||
* 离线车辆
|
||||
*/
|
||||
private Long offline;
|
||||
|
||||
/**
|
||||
* 暂停车辆
|
||||
*/
|
||||
private Long pause;
|
||||
|
||||
public static OverviewResp modeBuild(OverviewModel overviewModel) {
|
||||
return builder().online(overviewModel.getOnline())
|
||||
.offline(overviewModel.getOffline())
|
||||
.pause(overviewModel.getPause())
|
||||
.build();
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.domain.resp;
|
||||
package com.muyu.web.domain.resp;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.domain.resp;
|
||||
package com.muyu.web.domain.resp;
|
||||
|
||||
import com.muyu.vehicle.VehicleInstance;
|
||||
import lombok.AllArgsConstructor;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.kafka;
|
||||
package com.muyu.web.kafka;
|
||||
|
||||
/**
|
||||
* 生产者 PartitionerProducer
|
|
@ -1,7 +1,7 @@
|
|||
package com.muyu.mapper;
|
||||
package com.muyu.web.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.muyu.domain.PositionRouteInfo;
|
||||
import com.muyu.web.domain.PositionRouteInfo;
|
||||
|
||||
/**
|
||||
* @author DongZl
|
|
@ -1,7 +1,7 @@
|
|||
package com.muyu.mapper;
|
||||
package com.muyu.web.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.muyu.domain.User;
|
||||
import com.muyu.web.domain.User;
|
||||
|
||||
/**
|
||||
* <p>
|
|
@ -1,7 +1,7 @@
|
|||
package com.muyu.mapper;
|
||||
package com.muyu.web.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.muyu.domain.Vehicle;
|
||||
import com.muyu.web.domain.Vehicle;
|
||||
|
||||
/**
|
||||
* <p>
|
|
@ -1,9 +1,7 @@
|
|||
package com.muyu.mqtt;
|
||||
package com.muyu.web.mqtt;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.muyu.utils.ConversionUtil;
|
||||
import com.muyu.web.utils.ConversionUtil;
|
||||
import com.muyu.vehicle.MessageData;
|
||||
import org.apache.kafka.clients.producer.KafkaProducer;
|
||||
import org.apache.kafka.clients.producer.ProducerRecord;
|
||||
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
|
||||
import org.eclipse.paho.client.mqttv3.MqttCallback;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.mqtt;
|
||||
package com.muyu.web.mqtt;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.eclipse.paho.client.mqttv3.MqttClient;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.mqtt;
|
||||
package com.muyu.web.mqtt;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
|
@ -1,7 +1,5 @@
|
|||
package com.muyu.mqtt;
|
||||
package com.muyu.web.mqtt;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.eclipse.paho.client.mqttv3.MqttClient;
|
||||
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.mqtt;
|
||||
package com.muyu.web.mqtt;
|
||||
|
||||
import org.springframework.amqp.core.Binding;
|
||||
import org.springframework.amqp.core.BindingBuilder;
|
|
@ -1,6 +1,6 @@
|
|||
package com.muyu.rabbitmq;
|
||||
package com.muyu.web.rabbitmq;
|
||||
|
||||
import com.muyu.rabbitmq.confilg.RabbitmqConfig;
|
||||
import com.muyu.web.rabbitmq.confilg.RabbitmqConfig;
|
||||
import com.rabbitmq.client.impl.AMQImpl;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.amqp.core.Message;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.rabbitmq.confilg;
|
||||
package com.muyu.web.rabbitmq.confilg;
|
||||
|
||||
import org.springframework.amqp.core.*;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
|
@ -0,0 +1,18 @@
|
|||
package com.muyu.web.service;
|
||||
|
||||
import com.muyu.web.domain.model.OverviewModel;
|
||||
|
||||
/**
|
||||
* OverviewService
|
||||
*
|
||||
* @author Yangle
|
||||
* Date 2024/6/10 14:22
|
||||
*/
|
||||
public interface OverviewService {
|
||||
/**
|
||||
* 车辆模拟概述
|
||||
* @return 概述数据模型
|
||||
*/
|
||||
OverviewModel overview();
|
||||
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
package com.muyu.service;
|
||||
package com.muyu.web.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.domain.PositionRouteInfo;
|
||||
import com.muyu.domain.model.PositionModel;
|
||||
import com.muyu.web.domain.PositionRouteInfo;
|
||||
import com.muyu.web.domain.model.PositionModel;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package com.muyu.service;
|
||||
package com.muyu.web.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.domain.User;
|
||||
import com.muyu.web.domain.User;
|
||||
|
||||
/**
|
||||
* <p>
|
|
@ -1,14 +1,12 @@
|
|||
package com.muyu.service;
|
||||
package com.muyu.web.service;
|
||||
|
||||
import com.muyu.common.PageList;
|
||||
import com.muyu.domain.Vehicle;
|
||||
import com.muyu.domain.car.Car;
|
||||
import com.muyu.domain.req.CheckPositionReq;
|
||||
import com.muyu.domain.req.GearReq;
|
||||
import com.muyu.domain.req.MsgReq;
|
||||
import com.muyu.domain.req.VehicleInstanceListReq;
|
||||
import com.muyu.domain.resp.UnifiedTaskResp;
|
||||
import com.muyu.domain.resp.VehicleInstanceResp;
|
||||
import com.muyu.web.common.PageList;
|
||||
import com.muyu.web.domain.Vehicle;
|
||||
import com.muyu.web.domain.req.CheckPositionReq;
|
||||
import com.muyu.web.domain.req.GearReq;
|
||||
import com.muyu.web.domain.req.MsgReq;
|
||||
import com.muyu.web.domain.req.VehicleInstanceListReq;
|
||||
import com.muyu.web.domain.resp.VehicleInstanceResp;
|
||||
|
||||
/**
|
||||
* @author DongZeLiang
|
|
@ -1,7 +1,7 @@
|
|||
package com.muyu.service;
|
||||
package com.muyu.web.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.domain.Vehicle;
|
||||
import com.muyu.web.domain.Vehicle;
|
||||
|
||||
/**
|
||||
* <p>
|
|
@ -1,6 +1,6 @@
|
|||
package com.muyu.service;
|
||||
package com.muyu.web.service;
|
||||
|
||||
import com.muyu.domain.resp.UnifiedTaskResp;
|
||||
import com.muyu.web.domain.resp.UnifiedTaskResp;
|
||||
|
||||
/**
|
||||
* @author DongZeLiang
|
|
@ -0,0 +1,47 @@
|
|||
package com.muyu.web.service.impl;
|
||||
|
||||
import com.muyu.vehicle.VehicleInstance;
|
||||
import com.muyu.vehicle.core.LocalContainer;
|
||||
import com.muyu.web.domain.model.OverviewModel;
|
||||
import com.muyu.web.service.OverviewService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* OverviewServiceImpl
|
||||
*
|
||||
* @author Yangle
|
||||
* Date 2024/6/10 14:22
|
||||
*/
|
||||
@Service
|
||||
public class OverviewServiceImpl implements OverviewService {
|
||||
|
||||
/**
|
||||
* 车辆模拟概述
|
||||
* @return 概述数据模型
|
||||
*/
|
||||
@Override
|
||||
public OverviewModel overview() {
|
||||
//车辆实侧对象
|
||||
Collection<VehicleInstance> instanceList = LocalContainer.vehicleDataMap.values();
|
||||
return OverviewModel.builder()
|
||||
.online(
|
||||
instanceList.stream()
|
||||
.filter(VehicleInstance::isOnline)
|
||||
.filter(VehicleInstance::isSend)
|
||||
.count()
|
||||
)
|
||||
.offline(
|
||||
instanceList.stream()
|
||||
.filter(VehicleInstance->!VehicleInstance.isOnline())
|
||||
.count()
|
||||
)
|
||||
.pause(
|
||||
instanceList.stream()
|
||||
.filter(VehicleInstance::isOnline)
|
||||
.filter(VehicleInstance->!VehicleInstance.isSend())
|
||||
.count()
|
||||
).build();
|
||||
}
|
||||
}
|
|
@ -1,12 +1,12 @@
|
|||
package com.muyu.service.impl;
|
||||
package com.muyu.web.service.impl;
|
||||
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.muyu.domain.PositionRouteInfo;
|
||||
import com.muyu.domain.model.PositionModel;
|
||||
import com.muyu.mapper.PositionRouteMapper;
|
||||
import com.muyu.service.PositionRouteService;
|
||||
import com.muyu.web.domain.PositionRouteInfo;
|
||||
import com.muyu.web.domain.model.PositionModel;
|
||||
import com.muyu.web.mapper.PositionRouteMapper;
|
||||
import com.muyu.web.service.PositionRouteService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
|
@ -1,9 +1,9 @@
|
|||
package com.muyu.service.impl;
|
||||
package com.muyu.web.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.muyu.domain.User;
|
||||
import com.muyu.mapper.UserMapper;
|
||||
import com.muyu.service.UserService;
|
||||
import com.muyu.web.domain.User;
|
||||
import com.muyu.web.mapper.UserMapper;
|
||||
import com.muyu.web.service.UserService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
|
@ -1,12 +1,12 @@
|
|||
package com.muyu.service.impl;
|
||||
package com.muyu.web.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.muyu.domain.Vehicle;
|
||||
import com.muyu.mapper.VehicleMapper;
|
||||
import com.muyu.service.VehicleInstanceService;
|
||||
import com.muyu.service.VehicleService;
|
||||
import com.muyu.web.domain.Vehicle;
|
||||
import com.muyu.web.mapper.VehicleMapper;
|
||||
import com.muyu.web.service.VehicleInstanceService;
|
||||
import com.muyu.web.service.VehicleService;
|
||||
import com.muyu.vehicle.VehicleInstance;
|
||||
import com.muyu.vehicle.core.LocalContainer;
|
||||
import lombok.extern.log4j.Log4j2;
|
|
@ -1,31 +1,29 @@
|
|||
package com.muyu.service.impl;
|
||||
package com.muyu.web.service.impl;
|
||||
|
||||
import com.muyu.common.PageList;
|
||||
import com.muyu.common.Result;
|
||||
import com.muyu.domain.Vehicle;
|
||||
import com.muyu.domain.model.MqttServerModel;
|
||||
import com.muyu.domain.model.PositionModel;
|
||||
import com.muyu.domain.req.CheckPositionReq;
|
||||
import com.muyu.domain.req.GearReq;
|
||||
import com.muyu.domain.req.MsgReq;
|
||||
import com.muyu.domain.req.VehicleInstanceListReq;
|
||||
import com.muyu.domain.resp.VehicleInstanceResp;
|
||||
import com.muyu.mapper.VehicleMapper;
|
||||
import com.muyu.service.PositionRouteService;
|
||||
import com.muyu.service.VehicleInstanceService;
|
||||
import com.muyu.utils.MD5Util;
|
||||
import com.muyu.utils.ReflectUtils;
|
||||
import com.muyu.web.common.PageList;
|
||||
import com.muyu.web.common.Result;
|
||||
import com.muyu.web.domain.Vehicle;
|
||||
import com.muyu.web.domain.model.MqttServerModel;
|
||||
import com.muyu.web.domain.model.PositionModel;
|
||||
import com.muyu.web.domain.req.CheckPositionReq;
|
||||
import com.muyu.web.domain.req.GearReq;
|
||||
import com.muyu.web.domain.req.MsgReq;
|
||||
import com.muyu.web.domain.req.VehicleInstanceListReq;
|
||||
import com.muyu.web.domain.resp.VehicleInstanceResp;
|
||||
import com.muyu.web.service.PositionRouteService;
|
||||
import com.muyu.web.service.VehicleInstanceService;
|
||||
import com.muyu.web.utils.MD5Util;
|
||||
import com.muyu.web.utils.ReflectUtils;
|
||||
import com.muyu.vehicle.VehicleInstance;
|
||||
import com.muyu.vehicle.api.ClientAdmin;
|
||||
import com.muyu.vehicle.api.req.VehicleConnectionReq;
|
||||
import com.muyu.domain.car.Car;
|
||||
import com.muyu.web.domain.car.Car;
|
||||
import com.muyu.vehicle.core.LocalContainer;
|
||||
import com.muyu.vehicle.model.VehicleData;
|
||||
import com.muyu.vehicle.model.properties.MqttProperties;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.stereotype.Service;
|
|
@ -1,15 +1,15 @@
|
|||
package com.muyu.service.impl;
|
||||
package com.muyu.web.service.impl;
|
||||
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.muyu.common.pool.FixedThreadPool;
|
||||
import com.muyu.domain.PositionRouteInfo;
|
||||
import com.muyu.domain.model.PositionModel;
|
||||
import com.muyu.domain.model.TaskModel;
|
||||
import com.muyu.domain.resp.UnifiedTaskResp;
|
||||
import com.muyu.service.PositionRouteService;
|
||||
import com.muyu.service.VehicleInstanceService;
|
||||
import com.muyu.service.VehicleUnifiedService;
|
||||
import com.muyu.web.common.pool.FixedThreadPool;
|
||||
import com.muyu.web.domain.PositionRouteInfo;
|
||||
import com.muyu.web.domain.model.PositionModel;
|
||||
import com.muyu.web.domain.model.TaskModel;
|
||||
import com.muyu.web.domain.resp.UnifiedTaskResp;
|
||||
import com.muyu.web.service.PositionRouteService;
|
||||
import com.muyu.web.service.VehicleInstanceService;
|
||||
import com.muyu.web.service.VehicleUnifiedService;
|
||||
import com.muyu.vehicle.VehicleInstance;
|
||||
import com.muyu.vehicle.core.LocalContainer;
|
||||
import lombok.extern.log4j.Log4j2;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.utils;
|
||||
package com.muyu.web.utils;
|
||||
|
||||
/**
|
||||
* 校验位计算
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.utils;
|
||||
package com.muyu.web.utils;
|
||||
|
||||
import com.muyu.vehicle.MessageData;
|
||||
import lombok.extern.log4j.Log4j2;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.utils;
|
||||
package com.muyu.web.utils;
|
||||
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.utils;
|
||||
package com.muyu.web.utils;
|
||||
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.muyu.utils;
|
||||
package com.muyu.web.utils;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.Validate;
|
|
@ -1,7 +1,6 @@
|
|||
package com.muyu.utils;
|
||||
package com.muyu.web.utils;
|
||||
|
||||
import com.muyu.common.SystemConstant;
|
||||
import com.muyu.domain.model.PositionModel;
|
||||
import com.muyu.web.domain.model.PositionModel;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
|
@ -15,7 +15,7 @@ spring:
|
|||
password: 123456
|
||||
# 如果需要数据本地化,则改成 file 方式
|
||||
# jdbc:h2:mem:testDB;DB_CLOSE_DELAY=-1
|
||||
url: jdbc:h2:file:~/vehicle/db;AUTO_SERVER=TRUE;DB_CLOSE_DELAY=-1
|
||||
url: jdbc:h2:file:./db/vehicleSimulationDataBaseFile;AUTO_SERVER=TRUE;DB_CLOSE_DELAY=-1
|
||||
driver-class-name: org.h2.Driver
|
||||
# secondary:
|
||||
# driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
.dashboard-container[data-v-492ff9f3]{margin:30px}.dashboard-text[data-v-492ff9f3]{font-size:46px;line-height:60px;text-align:center;font-weight:900;font-family:cursive}.el-divider[data-v-492ff9f3]{background-color:#575757;position:relative}
|
|
@ -0,0 +1 @@
|
|||
.app-container[data-v-5503ff78]{padding:10px 5px 0 10px;background-color:#f4f4f5}.el-row[data-v-5503ff78]{&:last-child{margin-bottom:0}}.bg-purple[data-v-5503ff78]{background:#f4f4f5}.grid-content[data-v-5503ff78]{border-radius:4px;overflow-x:hidden;overflow-y:auto}.grid-content[data-v-5503ff78]::-webkit-scrollbar{width:4px}.grid-content[data-v-5503ff78]::-webkit-scrollbar-thumb{border-radius:10px;background:rgba(0,0,0,.2)}.grid-content[data-v-5503ff78]::-webkit-scrollbar-track{border-radius:0;background:rgba(0,0,0,.1)}.vehicleDiv[data-v-5503ff78]{height:50px;margin:0 0 10px 0}.contentMain[data-v-5503ff78]{margin-top:10px}.vehicleDataTab[data-v-5503ff78]{width:100%;overflow-y:auto;overflow-x:hidden}.vehicleDataTab[data-v-5503ff78]::-webkit-scrollbar{width:4px}.vehicleDataTab[data-v-5503ff78]::-webkit-scrollbar-thumb{border-radius:10px;background:rgba(0,0,0,.2)}.vehicleDataTab[data-v-5503ff78]::-webkit-scrollbar-track{border-radius:0;background:rgba(0,0,0,.1)}.el-form-item__label[data-v-5503ff78]{padding:0}.el-form-item[data-v-5503ff78]{margin-bottom:5px}
|
|
@ -1 +1 @@
|
|||
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><link rel=icon href=/favicon.ico><title>车辆</title><link href=/static/css/app.949a0224.css rel=preload as=style><link href=/static/css/chunk-elementUI.c1c3b808.css rel=preload as=style><link href=/static/css/chunk-libs.3dfb7769.css rel=preload as=style><link href=/static/js/app.967d9126.js rel=preload as=script><link href=/static/js/chunk-elementUI.2491fb2f.js rel=preload as=script><link href=/static/js/chunk-libs.2ec7c235.js rel=preload as=script><link href=/static/css/chunk-elementUI.c1c3b808.css rel=stylesheet><link href=/static/css/chunk-libs.3dfb7769.css rel=stylesheet><link href=/static/css/app.949a0224.css rel=stylesheet></head><body><noscript><strong>We're sorry but 车辆 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script>(function(e){function t(t){for(var n,o,c=t[0],i=t[1],l=t[2],f=0,d=[];f<c.length;f++)o=c[f],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&d.push(a[o][0]),a[o]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);s&&s(t);while(d.length)d.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,o=1;o<r.length;o++){var c=r[o];0!==a[c]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={runtime:0},a={runtime:0},u=[];function c(e){return i.p+"static/js/"+({}[e]||e)+"."+{"chunk-019c66da":"ded8571e","chunk-cefe5306":"756dde8f","chunk-22cea610":"a50359dd","chunk-510f32e7":"18a692c7","chunk-630a64ed":"8295bd3f"}[e]+".js"}function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[],r={"chunk-cefe5306":1,"chunk-22cea610":1,"chunk-510f32e7":1,"chunk-630a64ed":1};o[e]?t.push(o[e]):0!==o[e]&&r[e]&&t.push(o[e]=new Promise((function(t,r){for(var n="static/css/"+({}[e]||e)+"."+{"chunk-019c66da":"31d6cfe0","chunk-cefe5306":"0a41cd80","chunk-22cea610":"3c7f5ad9","chunk-510f32e7":"1510e3c5","chunk-630a64ed":"9a9361c6"}[e]+".css",a=i.p+n,u=document.getElementsByTagName("link"),c=0;c<u.length;c++){var l=u[c],f=l.getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(f===n||f===a))return t()}var d=document.getElementsByTagName("style");for(c=0;c<d.length;c++){l=d[c],f=l.getAttribute("data-href");if(f===n||f===a)return t()}var s=document.createElement("link");s.rel="stylesheet",s.type="text/css",s.onload=t,s.onerror=function(t){var n=t&&t.target&&t.target.src||a,u=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=n,delete o[e],s.parentNode.removeChild(s),r(u)},s.href=a;var h=document.getElementsByTagName("head")[0];h.appendChild(s)})).then((function(){o[e]=0})));var n=a[e];if(0!==n)if(n)t.push(n[2]);else{var u=new Promise((function(t,r){n=a[e]=[t,r]}));t.push(n[2]=u);var l,f=document.createElement("script");f.charset="utf-8",f.timeout=120,i.nc&&f.setAttribute("nonce",i.nc),f.src=c(e);var d=new Error;l=function(t){f.onerror=f.onload=null,clearTimeout(s);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;d.message="Loading chunk "+e+" failed.\n("+n+": "+o+")",d.name="ChunkLoadError",d.type=n,d.request=o,r[1](d)}a[e]=void 0}};var s=setTimeout((function(){l({type:"timeout",target:f})}),12e4);f.onerror=f.onload=l,document.head.appendChild(f)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var l=window["webpackJsonp"]=window["webpackJsonp"]||[],f=l.push.bind(l);l.push=t,l=l.slice();for(var d=0;d<l.length;d++)t(l[d]);var s=f;r()})([]);</script><script src=/static/js/chunk-elementUI.2491fb2f.js></script><script src=/static/js/chunk-libs.2ec7c235.js></script><script src=/static/js/app.967d9126.js></script></body></html>
|
||||
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><link rel=icon href=/favicon.ico><title>车辆</title><link href=/static/css/app.63269458.css rel=preload as=style><link href=/static/css/chunk-elementUI.c1c3b808.css rel=preload as=style><link href=/static/css/chunk-libs.3dfb7769.css rel=preload as=style><link href=/static/js/app.4b247cb1.js rel=preload as=script><link href=/static/js/chunk-elementUI.2491fb2f.js rel=preload as=script><link href=/static/js/chunk-libs.2ec7c235.js rel=preload as=script><link href=/static/css/chunk-elementUI.c1c3b808.css rel=stylesheet><link href=/static/css/chunk-libs.3dfb7769.css rel=stylesheet><link href=/static/css/app.63269458.css rel=stylesheet></head><body><noscript><strong>We're sorry but 车辆 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script>(function(e){function t(t){for(var r,o,u=t[0],i=t[1],f=t[2],l=0,s=[];l<u.length;l++)o=u[l],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&s.push(a[o][0]),a[o]=0;for(r in i)Object.prototype.hasOwnProperty.call(i,r)&&(e[r]=i[r]);d&&d(t);while(s.length)s.shift()();return c.push.apply(c,f||[]),n()}function n(){for(var e,t=0;t<c.length;t++){for(var n=c[t],r=!0,o=1;o<n.length;o++){var u=n[o];0!==a[u]&&(r=!1)}r&&(c.splice(t--,1),e=i(i.s=n[0]))}return e}var r={},o={runtime:0},a={runtime:0},c=[];function u(e){return i.p+"static/js/"+({}[e]||e)+"."+{"chunk-019c66da":"ded8571e","chunk-6f60c8f1":"f16bf298","chunk-4a014042":"2fe4ac72","chunk-cd3ab578":"ba31bb9e","chunk-22cea610":"fd8494c8","chunk-510f32e7":"792568de"}[e]+".js"}function i(t){if(r[t])return r[t].exports;var n=r[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,i),n.l=!0,n.exports}i.e=function(e){var t=[],n={"chunk-4a014042":1,"chunk-cd3ab578":1,"chunk-22cea610":1,"chunk-510f32e7":1};o[e]?t.push(o[e]):0!==o[e]&&n[e]&&t.push(o[e]=new Promise((function(t,n){for(var r="static/css/"+({}[e]||e)+"."+{"chunk-019c66da":"31d6cfe0","chunk-6f60c8f1":"31d6cfe0","chunk-4a014042":"3328abfd","chunk-cd3ab578":"5a7a63c7","chunk-22cea610":"3c7f5ad9","chunk-510f32e7":"1510e3c5"}[e]+".css",a=i.p+r,c=document.getElementsByTagName("link"),u=0;u<c.length;u++){var f=c[u],l=f.getAttribute("data-href")||f.getAttribute("href");if("stylesheet"===f.rel&&(l===r||l===a))return t()}var s=document.getElementsByTagName("style");for(u=0;u<s.length;u++){f=s[u],l=f.getAttribute("data-href");if(l===r||l===a)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.onload=t,d.onerror=function(t){var r=t&&t.target&&t.target.src||a,c=new Error("Loading CSS chunk "+e+" failed.\n("+r+")");c.code="CSS_CHUNK_LOAD_FAILED",c.request=r,delete o[e],d.parentNode.removeChild(d),n(c)},d.href=a;var h=document.getElementsByTagName("head")[0];h.appendChild(d)})).then((function(){o[e]=0})));var r=a[e];if(0!==r)if(r)t.push(r[2]);else{var c=new Promise((function(t,n){r=a[e]=[t,n]}));t.push(r[2]=c);var f,l=document.createElement("script");l.charset="utf-8",l.timeout=120,i.nc&&l.setAttribute("nonce",i.nc),l.src=u(e);var s=new Error;f=function(t){l.onerror=l.onload=null,clearTimeout(d);var n=a[e];if(0!==n){if(n){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;s.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",s.name="ChunkLoadError",s.type=r,s.request=o,n[1](s)}a[e]=void 0}};var d=setTimeout((function(){f({type:"timeout",target:l})}),12e4);l.onerror=l.onload=f,document.head.appendChild(l)}return Promise.all(t)},i.m=e,i.c=r,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var f=window["webpackJsonp"]=window["webpackJsonp"]||[],l=f.push.bind(f);f.push=t,f=f.slice();for(var s=0;s<f.length;s++)t(f[s]);var d=l;n()})([]);</script><script src=/static/js/chunk-elementUI.2491fb2f.js></script><script src=/static/js/chunk-libs.2ec7c235.js></script><script src=/static/js/app.4b247cb1.js></script></body></html>
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-22cea610"],{"26fc":function(t,s,a){t.exports=a.p+"static/img/404_cloud.0f4bc32b.png"},"8cdb":function(t,s,a){"use strict";a.r(s);var e=function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"wscn-http404-container"},[a("div",{staticClass:"wscn-http404"},[t._m(0),a("div",{staticClass:"bullshit"},[a("div",{staticClass:"bullshit__oops"},[t._v("OOPS!")]),t._m(1),a("div",{staticClass:"bullshit__headline"},[t._v(t._s(t.message))]),a("div",{staticClass:"bullshit__info"},[t._v("Please check that the URL you entered is correct, or click the button below to return to the homepage.")]),a("a",{staticClass:"bullshit__return-home",attrs:{href:""}},[t._v("Back to home")])])])])},c=[function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"pic-404"},[e("img",{staticClass:"pic-404__parent",attrs:{src:a("a36b"),alt:"404"}}),e("img",{staticClass:"pic-404__child left",attrs:{src:a("26fc"),alt:"404"}}),e("img",{staticClass:"pic-404__child mid",attrs:{src:a("26fc"),alt:"404"}}),e("img",{staticClass:"pic-404__child right",attrs:{src:a("26fc"),alt:"404"}})])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"bullshit__info"},[t._v("All rights reserved "),a("a",{staticStyle:{color:"#20a0ff"},attrs:{href:"https://wallstreetcn.com",target:"_blank"}},[t._v("wallstreetcn")])])}],i={name:"Page404",computed:{message:function(){return"The webmaster said that you can not enter this page..."}}},l=i,n=(a("dd53"),a("2877")),r=Object(n["a"])(l,e,c,!1,null,"c095f994",null);s["default"]=r.exports},a36b:function(t,s,a){t.exports=a.p+"static/img/404.a57b6f31.png"},b0a8:function(t,s,a){},dd53:function(t,s,a){"use strict";a("b0a8")}}]);
|
|
@ -0,0 +1 @@
|
|||
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-4a014042"],{7015:function(e,t,a){},8931:function(e,t,a){"use strict";a("7015")},9406:function(e,t,a){"use strict";a.r(t);var i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"dashboard-container"},[a("div",{staticClass:"dashboard-text"},[e._v(e._s(e.name))]),a("el-divider"),a("div",{style:{width:e.vehicleStatusWidth+"%",height:e.vehicleStatusHeight+"px",margin:"0 auto"},attrs:{id:"vehicleStatus"}})],1)},n=[],o=a("5530"),r=a("2f62"),s=a("313e"),c=a("b775");function u(){return Object(c["a"])({url:"/vehicle/overview",method:"get"})}var l={name:"Dashboard",data:function(){return{vehicleStatusChart:null,vehicleStatusWidth:50,vehicleStatusHeight:window.innerHeight-300,dataMap:{online:0,offline:2,pause:0}}},computed:Object(o["a"])({},Object(r["b"])(["name"])),watch:{dataMap:function(){this.initVehicleStatus()}},created:function(){setInterval(this.getVehicleOverview,5e3)},mounted:function(){this.vehicleStatusChart=s["a"](document.getElementById("vehicleStatus")),this.initVehicleStatus(),window.addEventListener("resize",this.initVehicleStatus)},methods:{getVehicleOverview:function(){var e=this;u().then((function(t){e.dataMap=t.data}))},initVehicleStatus:function(){this.vehicleStatusChart.setOption({title:{text:"系统模拟车辆状态统计一览",left:"center",textStyle:{fontWeight:1e3,fontSize:26}},tooltip:{trigger:"item"},legend:{top:"5%",left:"center"},series:[{type:"pie",radius:["40%","70%"],avoidLabelOverlap:!1,itemStyle:{borderRadius:10,borderColor:"#fff",borderWidth:10},label:{show:!0},emphasis:{label:{show:!0,fontSize:40,fontWeight:"bold"}},labelLine:{show:!0},data:[{value:this.dataMap.pause,name:"暂停车辆"},{value:this.dataMap.online,name:"在线车辆"},{value:this.dataMap.offline,name:"离线车辆"}]}]})}}},h=l,d=(a("8931"),a("2877")),f=Object(d["a"])(h,i,n,!1,null,"492ff9f3",null);t["default"]=f.exports},b775:function(e,t,a){"use strict";a("d3b7");var i=a("bc3a"),n=a.n(i),o=a("5c96"),r=a("4360"),s=a("5f87"),c=n.a.create({baseURL:"/",timeout:5e3});c.interceptors.request.use((function(e){return r["a"].getters.token&&(e.headers["X-Token"]=Object(s["a"])()),e}),(function(e){return console.log(e),Promise.reject(e)})),c.interceptors.response.use((function(e){var t=e.data;return 200!==t.code?(Object(o["Message"])({message:t.msg||"Error",type:"error",duration:5e3}),50008!==t.code&&50012!==t.code&&50014!==t.code||o["MessageBox"].confirm("You have been logged out, you can cancel to stay on this page, or log in again","Confirm logout",{confirmButtonText:"Re-Login",cancelButtonText:"Cancel",type:"warning"}).then((function(){r["a"].dispatch("user/resetToken").then((function(){location.reload()}))})),Promise.reject(new Error(t.msg||"Error"))):t}),(function(e){return console.log("err"+e),Object(o["Message"])({message:e.message,type:"error",duration:5e3}),Promise.reject(e)})),t["a"]=c}}]);
|
|
@ -0,0 +1 @@
|
|||
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-510f32e7"],{3985:function(e,t,n){},"92f2":function(e,t,n){},"9ed6":function(e,t,n){"use strict";n.r(t);var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"login-container"},[n("el-form",{ref:"loginForm",staticClass:"login-form",attrs:{model:e.loginForm,rules:e.loginRules,"auto-complete":"on","label-position":"left"}},[n("div",{staticClass:"title-container"},[n("h3",{staticClass:"title"},[e._v("车辆模拟")])]),n("el-form-item",{attrs:{prop:"username"}},[n("span",{staticClass:"svg-container"},[n("svg-icon",{attrs:{"icon-class":"user"}})],1),n("el-input",{ref:"username",attrs:{placeholder:"Username",name:"username",type:"text",tabindex:"1","auto-complete":"on",readonly:""},model:{value:e.loginForm.username,callback:function(t){e.$set(e.loginForm,"username",t)},expression:"loginForm.username"}})],1),n("el-form-item",{attrs:{prop:"password"}},[n("span",{staticClass:"svg-container"},[n("svg-icon",{attrs:{"icon-class":"password"}})],1),n("el-input",{ref:"password",attrs:{type:"text",placeholder:"Password",name:"password",tabindex:"2","auto-complete":"on"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleLogin(t)}},model:{value:e.loginForm.password,callback:function(t){e.$set(e.loginForm,"password",t)},expression:"loginForm.password"}})],1),n("el-button",{staticStyle:{width:"100%","margin-bottom":"30px"},attrs:{loading:e.loading,type:"primary"},nativeOn:{click:function(t){return t.preventDefault(),e.handleLogin(t)}}},[e._v("进入")])],1)],1)},o=[],s={name:"Login",data:function(){return{loginForm:{username:"你永远是最棒的",password:"加油,一切都是值得的"},loginRules:{username:[{required:!0,trigger:"blur"}],password:[{required:!0,trigger:"blur"}]},loading:!1,passwordType:"password",redirect:void 0}},watch:{$route:{handler:function(e){this.redirect=e.query&&e.query.redirect},immediate:!0}},methods:{handleLogin:function(){var e=this;this.$refs.loginForm.validate((function(t){if(!t)return console.log("error submit!!"),!1;e.loading=!0,e.$store.dispatch("user/login",e.loginForm).then((function(){e.$router.push({path:e.redirect||"/"}),e.loading=!1})).catch((function(){e.loading=!1})),e.$router.push({path:e.redirect||"/"})}))}}},a=s,i=(n("d1bd"),n("f8c5"),n("2877")),l=Object(i["a"])(a,r,o,!1,null,"5d9ae9a2",null);t["default"]=l.exports},d1bd:function(e,t,n){"use strict";n("92f2")},f8c5:function(e,t,n){"use strict";n("3985")}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue