fix():车辆报文上报
parent
518900891d
commit
1bf4fc14a5
2
pom.xml
2
pom.xml
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
<groupId>com.muyu</groupId>
|
<groupId>com.muyu</groupId>
|
||||||
<artifactId>VehicleSimulation</artifactId>
|
<artifactId>VehicleSimulation</artifactId>
|
||||||
<version>1.0.5</version>
|
<version>1.0.6</version>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<maven.compiler.source>17</maven.compiler.source>
|
<maven.compiler.source>17</maven.compiler.source>
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
package com.muyu.vehicle;
|
package com.muyu.vehicle;
|
||||||
|
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
|
import com.muyu.vehicle.model.VehicleData;
|
||||||
|
import com.muyu.vehicle.model.properties.MqttProperties;
|
||||||
|
import com.muyu.vehicle.thread.VehicleThread;
|
||||||
import com.muyu.web.common.SystemConstant;
|
import com.muyu.web.common.SystemConstant;
|
||||||
import com.muyu.web.common.pool.ScheduledThreadPool;
|
import com.muyu.web.common.pool.ScheduledThreadPool;
|
||||||
import com.muyu.web.domain.VehicleInfo;
|
import com.muyu.web.domain.VehicleInfo;
|
||||||
|
@ -8,9 +11,6 @@ import com.muyu.web.domain.model.PositionModel;
|
||||||
import com.muyu.web.utils.CalculateCheckDigit;
|
import com.muyu.web.utils.CalculateCheckDigit;
|
||||||
import com.muyu.web.utils.ConversionUtil;
|
import com.muyu.web.utils.ConversionUtil;
|
||||||
import com.muyu.web.utils.VehicleUtils;
|
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;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -54,6 +54,7 @@ public class VehicleInstance {
|
||||||
*/
|
*/
|
||||||
@Builder.Default
|
@Builder.Default
|
||||||
private LinkedBlockingQueue<PositionModel> positionQueue = new LinkedBlockingQueue<>();
|
private LinkedBlockingQueue<PositionModel> positionQueue = new LinkedBlockingQueue<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 车辆
|
* 车辆
|
||||||
*/
|
*/
|
||||||
|
@ -148,6 +149,12 @@ public class VehicleInstance {
|
||||||
client.connect(options);
|
client.connect(options);
|
||||||
log.debug("车辆:[{}] 客户端初始化成功连接配置:{}", getVin(),
|
log.debug("车辆:[{}] 客户端初始化成功连接配置:{}", getVin(),
|
||||||
JSONObject.toJSONString(this.mqttProperties));
|
JSONObject.toJSONString(this.mqttProperties));
|
||||||
|
VehicleThread vehicleThread = new VehicleThread();
|
||||||
|
vehicleThread.setVehicleInstance(this);
|
||||||
|
this.setVehicleThread(vehicleThread);
|
||||||
|
ScheduledFuture<?> scheduledFuture = ScheduledThreadPool.submit(vehicleThread);
|
||||||
|
this.setScheduledFuture(scheduledFuture);
|
||||||
|
log.info("初始化车辆上报模拟线程开始:[{}]", this.getVin());
|
||||||
} catch (MqttException e) {
|
} catch (MqttException e) {
|
||||||
log.error("车辆:[{}] 客户端初始化异常", getVin(), e);
|
log.error("车辆:[{}] 客户端初始化异常", getVin(), e);
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
|
@ -203,7 +210,7 @@ public class VehicleInstance {
|
||||||
/**
|
/**
|
||||||
* 初始化线程
|
* 初始化线程
|
||||||
*/
|
*/
|
||||||
public void initVehicleThread() {
|
/*public void initVehicleThread() {
|
||||||
if (this.positionCode == null){
|
if (this.positionCode == null){
|
||||||
throw new RuntimeException("车辆["+getVin()+"]未选中路径");
|
throw new RuntimeException("车辆["+getVin()+"]未选中路径");
|
||||||
}
|
}
|
||||||
|
@ -216,29 +223,7 @@ public class VehicleInstance {
|
||||||
ScheduledFuture<?> scheduledFuture = ScheduledThreadPool.submit(vehicleThread);
|
ScheduledFuture<?> scheduledFuture = ScheduledThreadPool.submit(vehicleThread);
|
||||||
this.setScheduledFuture(scheduledFuture);
|
this.setScheduledFuture(scheduledFuture);
|
||||||
log.info("初始化车辆上报模拟线程开始:[{}]", this.getVin());
|
log.info("初始化车辆上报模拟线程开始:[{}]", this.getVin());
|
||||||
}
|
}*/
|
||||||
|
|
||||||
/**
|
|
||||||
* 开始上报线程
|
|
||||||
*/
|
|
||||||
public void startSend() {
|
|
||||||
this.msgCode = "上报";
|
|
||||||
if (this.vehicleThread != null){
|
|
||||||
this.vehicleThread.resume();
|
|
||||||
}
|
|
||||||
log.info("车辆[{}],开始上报", this.getVin());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 暂停上报线程
|
|
||||||
*/
|
|
||||||
public void pauseSend() {
|
|
||||||
this.msgCode = "暂停";
|
|
||||||
if (this.vehicleThread != null) {
|
|
||||||
this.vehicleThread.pause();
|
|
||||||
}
|
|
||||||
log.info("车辆[{}],暂停上报", this.getVin());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 结束发送
|
* 结束发送
|
||||||
|
@ -263,31 +248,45 @@ public class VehicleInstance {
|
||||||
/**
|
/**
|
||||||
* 模拟车辆数据
|
* 模拟车辆数据
|
||||||
*/
|
*/
|
||||||
public String imitateData() {
|
public void imitateData() {
|
||||||
String gear = this.vehicleData.getGear();
|
|
||||||
if (!"D".equals(gear)){
|
|
||||||
log.info("车辆不是动车档位,不进行模拟数据");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
// 获取上一次定位点
|
// 获取上一次定位点
|
||||||
PositionModel lastPositionModel = this.lastPosition == null ? positionQueue.poll() : this.lastPosition;
|
PositionModel lastPositionModel = this.lastPosition == null ? positionQueue.poll() : this.lastPosition;
|
||||||
// 获取当前定位点
|
// 获取当前定位点
|
||||||
PositionModel currentPositionModel = positionQueue.poll();
|
PositionModel currentPositionModel = positionQueue.poll();
|
||||||
if (currentPositionModel == null) {
|
if (currentPositionModel == null) {
|
||||||
return "表示当前定位点已经跑完,请选择其他路径";
|
currentPositionModel = PositionModel.builder()
|
||||||
|
.latitude(this.vehicleInfo.getLastLatitude())
|
||||||
|
.longitude(this.vehicleInfo.getLastLongitude())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
if (lastPositionModel == null){
|
||||||
|
lastPositionModel = currentPositionModel;
|
||||||
}
|
}
|
||||||
// 两点之间的距离
|
// 两点之间的距离
|
||||||
BigDecimal distance = VehicleUtils.distance(Objects.requireNonNull(lastPositionModel), currentPositionModel);
|
BigDecimal distance = null;
|
||||||
|
if (currentPositionModel != null) {
|
||||||
|
distance = VehicleUtils.distance(Objects.requireNonNull(lastPositionModel), currentPositionModel);
|
||||||
|
}
|
||||||
|
if (lastPositionModel == currentPositionModel){
|
||||||
|
distance = new BigDecimal("0.01");
|
||||||
|
}
|
||||||
// 车辆总里程 相加
|
// 车辆总里程 相加
|
||||||
vehicleData.setMileage(vehicleData.getMileage().add(distance));
|
vehicleData.setMileage(vehicleData.getMileage().add(distance));
|
||||||
// 定位点填写
|
// 定位点填写
|
||||||
vehicleData.setLongitude(currentPositionModel.getLongitude());
|
vehicleData.setLongitude(
|
||||||
vehicleData.setLatitude(currentPositionModel.getLatitude());
|
currentPositionModel == null || currentPositionModel.getLongitude() == null ? this.vehicleInfo.getLastLongitude() : currentPositionModel.getLongitude()
|
||||||
|
);
|
||||||
|
vehicleData.setLatitude(
|
||||||
|
currentPositionModel == null || currentPositionModel.getLatitude() == null ? this.vehicleInfo.getLastLatitude() : currentPositionModel.getLatitude()
|
||||||
|
);
|
||||||
// 当前电量减少
|
// 当前电量减少
|
||||||
// 电池浮动
|
// 电池浮动
|
||||||
BigDecimal batteryFloat = VehicleUtils.batteryFloat();
|
BigDecimal batteryFloat = VehicleUtils.batteryFloat();
|
||||||
// 百公里占比
|
// 百公里占比
|
||||||
BigDecimal hundredKMScale = distance.divide(SystemConstant.hundredKilometers).setScale(3, RoundingMode.HALF_UP);
|
BigDecimal hundredKMScale = null;
|
||||||
|
if (distance != null) {
|
||||||
|
hundredKMScale = distance.divide(SystemConstant.hundredKilometers).setScale(3, RoundingMode.HALF_UP);
|
||||||
|
}
|
||||||
// 使用电量
|
// 使用电量
|
||||||
BigDecimal powerUsage = powerConsumption.multiply(hundredKMScale)
|
BigDecimal powerUsage = powerConsumption.multiply(hundredKMScale)
|
||||||
.multiply(batteryFloat)
|
.multiply(batteryFloat)
|
||||||
|
@ -299,15 +298,16 @@ public class VehicleInstance {
|
||||||
powerConsumption.multiply(batteryFloat).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_UP).toString()
|
powerConsumption.multiply(batteryFloat).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_UP).toString()
|
||||||
);
|
);
|
||||||
// 计算总速度
|
// 计算总速度
|
||||||
vehicleData.setSpeed(
|
if (distance != null) {
|
||||||
distance.divide(new BigDecimal(2))
|
vehicleData.setSpeed(
|
||||||
.multiply(new BigDecimal("3600"))
|
distance.divide(new BigDecimal(2))
|
||||||
.setScale(2, RoundingMode.HALF_UP).toString()
|
.multiply(new BigDecimal("3600"))
|
||||||
);
|
.setScale(2, RoundingMode.HALF_UP).toString()
|
||||||
|
);
|
||||||
|
}
|
||||||
vehicleData.imitateBase();
|
vehicleData.imitateBase();
|
||||||
vehicleData.imitateMotor();
|
vehicleData.imitateMotor();
|
||||||
vehicleData.imitateBatteryPack();
|
vehicleData.imitateBatteryPack();
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -4,8 +4,6 @@ import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author DongZeLiang
|
* @author DongZeLiang
|
||||||
|
@ -43,5 +41,9 @@ public class MqttProperties {
|
||||||
* 节点ID
|
* 节点ID
|
||||||
*/
|
*/
|
||||||
private String clientId;
|
private String clientId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上报级别
|
||||||
|
*/
|
||||||
private int qos = 0;
|
private int qos = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,11 +13,6 @@ public class VehicleThread implements Runnable {
|
||||||
*/
|
*/
|
||||||
private volatile boolean isStop = false;
|
private volatile boolean isStop = false;
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置是否暂停
|
|
||||||
*/
|
|
||||||
private volatile boolean isPaused;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 车辆实例对象
|
* 车辆实例对象
|
||||||
*/
|
*/
|
||||||
|
@ -27,19 +22,11 @@ public class VehicleThread implements Runnable {
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
if (!isStop){
|
if (!isStop){
|
||||||
if (!isPaused){
|
log.info("{} - 上报数据", this.vehicleInstance.getVin());
|
||||||
log.info("{} - 上报数据", this.vehicleInstance.getVin());
|
this.vehicleInstance.imitateData();
|
||||||
String imitateResult = this.vehicleInstance.imitateData();
|
this.vehicleInstance.sendMsg(
|
||||||
if (imitateResult == null){
|
this.vehicleInstance.getVehicleData().getMsg()
|
||||||
this.vehicleInstance.sendMsg(
|
);
|
||||||
this.vehicleInstance.getVehicleData().getMsg()
|
|
||||||
);
|
|
||||||
}else {
|
|
||||||
log.warn("车辆[{}]数据模拟:{}", this.vehicleInstance.getVin(), imitateResult);
|
|
||||||
}
|
|
||||||
}else {
|
|
||||||
log.info("暂停模拟和上报:[{}]", this.vehicleInstance.getVin());
|
|
||||||
}
|
|
||||||
}else {
|
}else {
|
||||||
log.info("终止模拟和上报:[{}]", this.vehicleInstance.getVin());
|
log.info("终止模拟和上报:[{}]", this.vehicleInstance.getVin());
|
||||||
vehicleInstance.cancelExecution();
|
vehicleInstance.cancelExecution();
|
||||||
|
@ -49,21 +36,6 @@ public class VehicleThread implements Runnable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 暂停线程
|
|
||||||
*/
|
|
||||||
public void pause() {
|
|
||||||
isPaused = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 开始线程
|
|
||||||
*/
|
|
||||||
public void resume() {
|
|
||||||
isPaused = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 停止方法
|
* 停止方法
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,15 +1,14 @@
|
||||||
package com.muyu.web.controller;
|
package com.muyu.web.controller;
|
||||||
|
|
||||||
|
import com.muyu.vehicle.core.LocalContainer;
|
||||||
|
import com.muyu.vehicle.model.VehicleData;
|
||||||
import com.muyu.web.common.PageList;
|
import com.muyu.web.common.PageList;
|
||||||
import com.muyu.web.common.Result;
|
import com.muyu.web.common.Result;
|
||||||
import com.muyu.web.domain.req.CheckPositionReq;
|
import com.muyu.web.domain.req.CheckPositionReq;
|
||||||
import com.muyu.web.domain.req.GearReq;
|
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.req.VehicleInstanceListReq;
|
||||||
import com.muyu.web.domain.resp.VehicleInstanceResp;
|
import com.muyu.web.domain.resp.VehicleInstanceResp;
|
||||||
import com.muyu.web.service.VehicleInstanceService;
|
import com.muyu.web.service.VehicleInstanceService;
|
||||||
import com.muyu.vehicle.core.LocalContainer;
|
|
||||||
import com.muyu.vehicle.model.VehicleData;
|
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
@ -53,9 +52,9 @@ public class VehicleInstanceController {
|
||||||
* @param vin vin
|
* @param vin vin
|
||||||
* @return 初始化
|
* @return 初始化
|
||||||
*/
|
*/
|
||||||
@PostMapping("/client/init/{vin}")
|
@PostMapping("/client/start/{vin}")
|
||||||
public Result<String> vehicleClientInit(@PathVariable("vin") String vin){
|
public Result<String> vehicleClientInit(@PathVariable("vin") String vin){
|
||||||
this.vehicleInstanceService.vehicleClientInit(vin);
|
this.vehicleInstanceService.vehicleClientStart(vin);
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,16 +80,6 @@ public class VehicleInstanceController {
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 车辆报文操作
|
|
||||||
* @return 操作提示
|
|
||||||
*/
|
|
||||||
@PostMapping("/msg")
|
|
||||||
public Result<String> msg(@RequestBody MsgReq msgReq){
|
|
||||||
this.vehicleInstanceService.msg(msgReq);
|
|
||||||
return Result.success();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 车辆档位操作
|
* 车辆档位操作
|
||||||
* @return 操作提示
|
* @return 操作提示
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.muyu.web.domain;
|
package com.muyu.web.domain;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.muyu.system.handle.SystemHandler;
|
||||||
import com.muyu.web.domain.model.ServerConfigModel;
|
import com.muyu.web.domain.model.ServerConfigModel;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
|
@ -65,6 +66,7 @@ public class ServerConfig {
|
||||||
public static ServerConfig modeBuild (ServerConfigModel serverConfigModel, Supplier<Long> idKey) {
|
public static ServerConfig modeBuild (ServerConfigModel serverConfigModel, Supplier<Long> idKey) {
|
||||||
return builder()
|
return builder()
|
||||||
.id(idKey.get())
|
.id(idKey.get())
|
||||||
|
.tenantId(SystemHandler.getTenantId())
|
||||||
.host(serverConfigModel.getHost())
|
.host(serverConfigModel.getHost())
|
||||||
.port(serverConfigModel.getPort())
|
.port(serverConfigModel.getPort())
|
||||||
.uri(serverConfigModel.getUri())
|
.uri(serverConfigModel.getUri())
|
||||||
|
|
|
@ -63,6 +63,18 @@ public class VehicleInfo {
|
||||||
@TableField("battery_level")
|
@TableField("battery_level")
|
||||||
private BigDecimal batteryLevel;
|
private BigDecimal batteryLevel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上一次经度
|
||||||
|
*/
|
||||||
|
@TableField("last_longitude")
|
||||||
|
private String lastLongitude;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上一次维度
|
||||||
|
*/
|
||||||
|
@TableField("last_latitude")
|
||||||
|
private String lastLatitude;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总里程
|
* 总里程
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -4,7 +4,6 @@ import com.muyu.web.common.PageList;
|
||||||
import com.muyu.web.domain.VehicleInfo;
|
import com.muyu.web.domain.VehicleInfo;
|
||||||
import com.muyu.web.domain.req.CheckPositionReq;
|
import com.muyu.web.domain.req.CheckPositionReq;
|
||||||
import com.muyu.web.domain.req.GearReq;
|
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.req.VehicleInstanceListReq;
|
||||||
import com.muyu.web.domain.resp.VehicleInstanceResp;
|
import com.muyu.web.domain.resp.VehicleInstanceResp;
|
||||||
|
|
||||||
|
@ -36,7 +35,7 @@ public interface VehicleInstanceService {
|
||||||
* 车辆客户端初始化
|
* 车辆客户端初始化
|
||||||
* @param vin vin
|
* @param vin vin
|
||||||
*/
|
*/
|
||||||
void vehicleClientInit (String vin);
|
void vehicleClientStart (String vin);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 车辆客户端关闭
|
* 车辆客户端关闭
|
||||||
|
@ -50,12 +49,6 @@ public interface VehicleInstanceService {
|
||||||
*/
|
*/
|
||||||
void checkPosition (CheckPositionReq checkPositionReq);
|
void checkPosition (CheckPositionReq checkPositionReq);
|
||||||
|
|
||||||
/**
|
|
||||||
* 车辆消息操作
|
|
||||||
* @param msgReq
|
|
||||||
*/
|
|
||||||
void msg (MsgReq msgReq);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置档位
|
* 设置档位
|
||||||
* @param gearReq
|
* @param gearReq
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.muyu.web.service.impl;
|
package com.muyu.web.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.muyu.system.handle.SystemHandler;
|
import com.muyu.system.handle.SystemHandler;
|
||||||
|
@ -34,8 +35,9 @@ public class ServerConfigServiceImpl extends ServiceImpl<BaseMapper<ServerConfig
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void edit (ServerConfigModel serverConfigModel) {
|
public void edit (ServerConfigModel serverConfigModel) {
|
||||||
|
|
||||||
ServerConfig serverConfig = ServerConfig.modeBuild(serverConfigModel, SystemHandler::getUserId);
|
ServerConfig serverConfig = ServerConfig.modeBuild(serverConfigModel, SystemHandler::getUserId);
|
||||||
updateById(serverConfig);
|
update(serverConfig, new UpdateWrapper<>());
|
||||||
SystemHandler.setServerConfig(
|
SystemHandler.setServerConfig(
|
||||||
ServerConfigProperties.modelToProperties(serverConfigModel)
|
ServerConfigProperties.modelToProperties(serverConfigModel)
|
||||||
);
|
);
|
||||||
|
|
|
@ -13,7 +13,6 @@ import com.muyu.web.domain.model.MqttServerModel;
|
||||||
import com.muyu.web.domain.model.PositionModel;
|
import com.muyu.web.domain.model.PositionModel;
|
||||||
import com.muyu.web.domain.req.CheckPositionReq;
|
import com.muyu.web.domain.req.CheckPositionReq;
|
||||||
import com.muyu.web.domain.req.GearReq;
|
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.req.VehicleInstanceListReq;
|
||||||
import com.muyu.web.domain.resp.VehicleInstanceResp;
|
import com.muyu.web.domain.resp.VehicleInstanceResp;
|
||||||
import com.muyu.web.service.PositionRouteService;
|
import com.muyu.web.service.PositionRouteService;
|
||||||
|
@ -99,7 +98,7 @@ public class VehicleInstanceServiceImpl implements VehicleInstanceService {
|
||||||
* @param vin vin
|
* @param vin vin
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void vehicleClientInit (String vin) {
|
public void vehicleClientStart (String vin) {
|
||||||
log.info("vin[{}],开始上线", vin);
|
log.info("vin[{}],开始上线", vin);
|
||||||
VehicleInstance vehicleInstance = LocalContainer.getVehicleInstance(vin);
|
VehicleInstance vehicleInstance = LocalContainer.getVehicleInstance(vin);
|
||||||
if (vehicleInstance == null){
|
if (vehicleInstance == null){
|
||||||
|
@ -159,27 +158,6 @@ public class VehicleInstanceServiceImpl implements VehicleInstanceService {
|
||||||
vehicleInstance.setPositionCode(checkPositionReq.getPositionCode());
|
vehicleInstance.setPositionCode(checkPositionReq.getPositionCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 车辆消息操作
|
|
||||||
*
|
|
||||||
* @param msgReq
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void msg (MsgReq msgReq) {
|
|
||||||
VehicleInstance vehicleInstance = LocalContainer.getVehicleInstance(msgReq.getVin());
|
|
||||||
switch (msgReq.getMsgCode()){
|
|
||||||
case "上报" -> {
|
|
||||||
if(vehicleInstance.getVehicleThread() == null){
|
|
||||||
vehicleInstance.initVehicleThread();
|
|
||||||
}
|
|
||||||
vehicleInstance.startSend();
|
|
||||||
}
|
|
||||||
case "暂停" -> vehicleInstance.pauseSend();
|
|
||||||
case "停止" -> vehicleInstance.stopSend();
|
|
||||||
default -> throw new RuntimeException("车辆消息事件错误");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置档位
|
* 设置档位
|
||||||
*
|
*
|
||||||
|
|
|
@ -6,7 +6,6 @@ import com.muyu.vehicle.core.LocalContainer;
|
||||||
import com.muyu.web.domain.PositionRouteInfo;
|
import com.muyu.web.domain.PositionRouteInfo;
|
||||||
import com.muyu.web.domain.model.PositionModel;
|
import com.muyu.web.domain.model.PositionModel;
|
||||||
import com.muyu.web.domain.model.TaskModel;
|
import com.muyu.web.domain.model.TaskModel;
|
||||||
import com.muyu.web.domain.req.MsgReq;
|
|
||||||
import com.muyu.web.domain.resp.UnifiedTaskResp;
|
import com.muyu.web.domain.resp.UnifiedTaskResp;
|
||||||
import com.muyu.web.service.PositionRouteService;
|
import com.muyu.web.service.PositionRouteService;
|
||||||
import com.muyu.web.service.VehicleInstanceService;
|
import com.muyu.web.service.VehicleInstanceService;
|
||||||
|
@ -51,7 +50,7 @@ public class VehicleUnifiedServiceImpl implements VehicleUnifiedService {
|
||||||
.map(VehicleInstance::getVin)
|
.map(VehicleInstance::getVin)
|
||||||
.toList();
|
.toList();
|
||||||
taskModel.submit("一键上线", vinList, (vin) -> {
|
taskModel.submit("一键上线", vinList, (vin) -> {
|
||||||
vehicleInstanceService.vehicleClientInit(vin);
|
vehicleInstanceService.vehicleClientStart(vin);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,12 +95,6 @@ public class VehicleUnifiedServiceImpl implements VehicleUnifiedService {
|
||||||
vehicleInstance.setPositionCode(positionCode);
|
vehicleInstance.setPositionCode(positionCode);
|
||||||
// 设置车辆档位
|
// 设置车辆档位
|
||||||
vehicleInstance.setGear("D");
|
vehicleInstance.setGear("D");
|
||||||
vehicleInstanceService.msg(
|
|
||||||
MsgReq.builder()
|
|
||||||
.vin(vin)
|
|
||||||
.msgCode("上报")
|
|
||||||
.build()
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,12 +136,6 @@ public class VehicleUnifiedServiceImpl implements VehicleUnifiedService {
|
||||||
// 获取在线车辆VIN
|
// 获取在线车辆VIN
|
||||||
List<String> vinList = LocalContainer.getOnlineVehicleVin();
|
List<String> vinList = LocalContainer.getOnlineVehicleVin();
|
||||||
taskModel.submit("一键取消上报", vinList, (vin) -> {
|
taskModel.submit("一键取消上报", vinList, (vin) -> {
|
||||||
vehicleInstanceService.msg(
|
|
||||||
MsgReq.builder()
|
|
||||||
.vin(vin)
|
|
||||||
.msgCode("停止")
|
|
||||||
.build()
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
.app-container[data-v-2ab19043]{padding:10px 5px 0 10px;background-color:#f4f4f5}.el-row[data-v-2ab19043]{&:last-child{margin-bottom:0}}.bg-purple[data-v-2ab19043]{background:#f4f4f5}.grid-content[data-v-2ab19043]{border-radius:4px;overflow-x:hidden;overflow-y:auto}.grid-content[data-v-2ab19043]::-webkit-scrollbar{width:4px}.grid-content[data-v-2ab19043]::-webkit-scrollbar-thumb{border-radius:10px;background:rgba(0,0,0,.2)}.grid-content[data-v-2ab19043]::-webkit-scrollbar-track{border-radius:0;background:rgba(0,0,0,.1)}.vehicleDiv[data-v-2ab19043]{height:50px;margin:0 0 10px 0}.contentMain[data-v-2ab19043]{margin-top:10px}.vehicleDataTab[data-v-2ab19043]{width:100%;overflow-y:auto;overflow-x:hidden}.vehicleDataTab[data-v-2ab19043]::-webkit-scrollbar{width:4px}.vehicleDataTab[data-v-2ab19043]::-webkit-scrollbar-thumb{border-radius:10px;background:rgba(0,0,0,.2)}.vehicleDataTab[data-v-2ab19043]::-webkit-scrollbar-track{border-radius:0;background:rgba(0,0,0,.1)}.el-form-item__label[data-v-2ab19043]{padding:0}.el-form-item[data-v-2ab19043]{margin-bottom:5px}
|
|
@ -1 +0,0 @@
|
||||||
.app-container[data-v-601f2e6f]{padding:10px 5px 0 10px;background-color:#f4f4f5}.el-row[data-v-601f2e6f]{&:last-child{margin-bottom:0}}.bg-purple[data-v-601f2e6f]{background:#f4f4f5}.grid-content[data-v-601f2e6f]{border-radius:4px;overflow-x:hidden;overflow-y:auto}.grid-content[data-v-601f2e6f]::-webkit-scrollbar{width:4px}.grid-content[data-v-601f2e6f]::-webkit-scrollbar-thumb{border-radius:10px;background:rgba(0,0,0,.2)}.grid-content[data-v-601f2e6f]::-webkit-scrollbar-track{border-radius:0;background:rgba(0,0,0,.1)}.vehicleDiv[data-v-601f2e6f]{height:50px;margin:0 0 10px 0}.contentMain[data-v-601f2e6f]{margin-top:10px}.vehicleDataTab[data-v-601f2e6f]{width:100%;overflow-y:auto;overflow-x:hidden}.vehicleDataTab[data-v-601f2e6f]::-webkit-scrollbar{width:4px}.vehicleDataTab[data-v-601f2e6f]::-webkit-scrollbar-thumb{border-radius:10px;background:rgba(0,0,0,.2)}.vehicleDataTab[data-v-601f2e6f]::-webkit-scrollbar-track{border-radius:0;background:rgba(0,0,0,.1)}.el-form-item__label[data-v-601f2e6f]{padding:0}.el-form-item[data-v-601f2e6f]{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.e2ca9161.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.c57091f6.js rel=preload as=script><link href=/static/js/chunk-elementUI.2491fb2f.js rel=preload as=script><link href=/static/js/chunk-libs.5e39c7d0.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.e2ca9161.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,c,a=t[0],f=t[1],i=t[2],l=0,s=[];l<a.length;l++)c=a[l],Object.prototype.hasOwnProperty.call(o,c)&&o[c]&&s.push(o[c][0]),o[c]=0;for(r in f)Object.prototype.hasOwnProperty.call(f,r)&&(e[r]=f[r]);d&&d(t);while(s.length)s.shift()();return u.push.apply(u,i||[]),n()}function n(){for(var e,t=0;t<u.length;t++){for(var n=u[t],r=!0,c=1;c<n.length;c++){var a=n[c];0!==o[a]&&(r=!1)}r&&(u.splice(t--,1),e=f(f.s=n[0]))}return e}var r={},c={runtime:0},o={runtime:0},u=[];function a(e){return f.p+"static/js/"+({}[e]||e)+"."+{"chunk-22cea610":"7879ff8f","chunk-2cbbeb82":"e1753706","chunk-6f60c8f1":"f16bf298","chunk-0e8cf5f4":"b7552abc","chunk-7146ee17":"8de3769d","chunk-725364c9":"5d13ee53","chunk-7d1a163b":"4d8cc933","chunk-8f81ac56":"da9fce35"}[e]+".js"}function f(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,f),n.l=!0,n.exports}f.e=function(e){var t=[],n={"chunk-22cea610":1,"chunk-2cbbeb82":1,"chunk-0e8cf5f4":1,"chunk-7146ee17":1,"chunk-725364c9":1,"chunk-8f81ac56":1};c[e]?t.push(c[e]):0!==c[e]&&n[e]&&t.push(c[e]=new Promise((function(t,n){for(var r="static/css/"+({}[e]||e)+"."+{"chunk-22cea610":"3c7f5ad9","chunk-2cbbeb82":"59a1d200","chunk-6f60c8f1":"31d6cfe0","chunk-0e8cf5f4":"3328abfd","chunk-7146ee17":"6963607a","chunk-725364c9":"71c8f52e","chunk-7d1a163b":"31d6cfe0","chunk-8f81ac56":"1efc9dd1"}[e]+".css",o=f.p+r,u=document.getElementsByTagName("link"),a=0;a<u.length;a++){var i=u[a],l=i.getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(l===r||l===o))return t()}var s=document.getElementsByTagName("style");for(a=0;a<s.length;a++){i=s[a],l=i.getAttribute("data-href");if(l===r||l===o)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||o,u=new Error("Loading CSS chunk "+e+" failed.\n("+r+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=r,delete c[e],d.parentNode.removeChild(d),n(u)},d.href=o;var h=document.getElementsByTagName("head")[0];h.appendChild(d)})).then((function(){c[e]=0})));var r=o[e];if(0!==r)if(r)t.push(r[2]);else{var u=new Promise((function(t,n){r=o[e]=[t,n]}));t.push(r[2]=u);var i,l=document.createElement("script");l.charset="utf-8",l.timeout=120,f.nc&&l.setAttribute("nonce",f.nc),l.src=a(e);var s=new Error;i=function(t){l.onerror=l.onload=null,clearTimeout(d);var n=o[e];if(0!==n){if(n){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;s.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",s.name="ChunkLoadError",s.type=r,s.request=c,n[1](s)}o[e]=void 0}};var d=setTimeout((function(){i({type:"timeout",target:l})}),12e4);l.onerror=l.onload=i,document.head.appendChild(l)}return Promise.all(t)},f.m=e,f.c=r,f.d=function(e,t,n){f.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},f.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,t){if(1&t&&(e=f(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(f.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)f.d(n,r,function(t){return e[t]}.bind(null,r));return n},f.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return f.d(t,"a",t),t},f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.p="/",f.oe=function(e){throw console.error(e),e};var i=window["webpackJsonp"]=window["webpackJsonp"]||[],l=i.push.bind(i);i.push=t,i=i.slice();for(var s=0;s<i.length;s++)t(i[s]);var d=l;n()})([]);</script><script src=/static/js/chunk-elementUI.2491fb2f.js></script><script src=/static/js/chunk-libs.5e39c7d0.js></script><script src=/static/js/app.c57091f6.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.e2ca9161.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.a2f5934b.js rel=preload as=script><link href=/static/js/chunk-elementUI.2491fb2f.js rel=preload as=script><link href=/static/js/chunk-libs.5e39c7d0.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.e2ca9161.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,c,u=t[0],f=t[1],i=t[2],l=0,d=[];l<u.length;l++)c=u[l],Object.prototype.hasOwnProperty.call(o,c)&&o[c]&&d.push(o[c][0]),o[c]=0;for(r in f)Object.prototype.hasOwnProperty.call(f,r)&&(e[r]=f[r]);s&&s(t);while(d.length)d.shift()();return a.push.apply(a,i||[]),n()}function n(){for(var e,t=0;t<a.length;t++){for(var n=a[t],r=!0,c=1;c<n.length;c++){var u=n[c];0!==o[u]&&(r=!1)}r&&(a.splice(t--,1),e=f(f.s=n[0]))}return e}var r={},c={runtime:0},o={runtime:0},a=[];function u(e){return f.p+"static/js/"+({}[e]||e)+"."+{"chunk-00a52ac4":"5f82d470","chunk-159c7f2c":"0fa7a8a3","chunk-2cbbeb82":"e1753706","chunk-643fd843":"ad8a85d9","chunk-6f60c8f1":"f16bf298","chunk-0e8cf5f4":"b7552abc","chunk-7d1a163b":"4d8cc933","chunk-8f81ac56":"da9fce35"}[e]+".js"}function f(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,f),n.l=!0,n.exports}f.e=function(e){var t=[],n={"chunk-00a52ac4":1,"chunk-159c7f2c":1,"chunk-2cbbeb82":1,"chunk-643fd843":1,"chunk-0e8cf5f4":1,"chunk-8f81ac56":1};c[e]?t.push(c[e]):0!==c[e]&&n[e]&&t.push(c[e]=new Promise((function(t,n){for(var r="static/css/"+({}[e]||e)+"."+{"chunk-00a52ac4":"71c8f52e","chunk-159c7f2c":"3c7f5ad9","chunk-2cbbeb82":"59a1d200","chunk-643fd843":"5488218b","chunk-6f60c8f1":"31d6cfe0","chunk-0e8cf5f4":"3328abfd","chunk-7d1a163b":"31d6cfe0","chunk-8f81ac56":"1efc9dd1"}[e]+".css",o=f.p+r,a=document.getElementsByTagName("link"),u=0;u<a.length;u++){var i=a[u],l=i.getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(l===r||l===o))return t()}var d=document.getElementsByTagName("style");for(u=0;u<d.length;u++){i=d[u],l=i.getAttribute("data-href");if(l===r||l===o)return t()}var s=document.createElement("link");s.rel="stylesheet",s.type="text/css",s.onload=t,s.onerror=function(t){var r=t&&t.target&&t.target.src||o,a=new Error("Loading CSS chunk "+e+" failed.\n("+r+")");a.code="CSS_CHUNK_LOAD_FAILED",a.request=r,delete c[e],s.parentNode.removeChild(s),n(a)},s.href=o;var h=document.getElementsByTagName("head")[0];h.appendChild(s)})).then((function(){c[e]=0})));var r=o[e];if(0!==r)if(r)t.push(r[2]);else{var a=new Promise((function(t,n){r=o[e]=[t,n]}));t.push(r[2]=a);var i,l=document.createElement("script");l.charset="utf-8",l.timeout=120,f.nc&&l.setAttribute("nonce",f.nc),l.src=u(e);var d=new Error;i=function(t){l.onerror=l.onload=null,clearTimeout(s);var n=o[e];if(0!==n){if(n){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;d.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",d.name="ChunkLoadError",d.type=r,d.request=c,n[1](d)}o[e]=void 0}};var s=setTimeout((function(){i({type:"timeout",target:l})}),12e4);l.onerror=l.onload=i,document.head.appendChild(l)}return Promise.all(t)},f.m=e,f.c=r,f.d=function(e,t,n){f.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},f.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,t){if(1&t&&(e=f(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(f.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)f.d(n,r,function(t){return e[t]}.bind(null,r));return n},f.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return f.d(t,"a",t),t},f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.p="/",f.oe=function(e){throw console.error(e),e};var i=window["webpackJsonp"]=window["webpackJsonp"]||[],l=i.push.bind(i);i.push=t,i=i.slice();for(var d=0;d<i.length;d++)t(i[d]);var s=l;n()})([]);</script><script src=/static/js/chunk-elementUI.2491fb2f.js></script><script src=/static/js/chunk-libs.5e39c7d0.js></script><script src=/static/js/app.a2f5934b.js></script></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +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")}}]);
|
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-159c7f2c"],{"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 c=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")])])])])},e=[function(){var t=this,s=t.$createElement,c=t._self._c||s;return c("div",{staticClass:"pic-404"},[c("img",{staticClass:"pic-404__parent",attrs:{src:a("a36b"),alt:"404"}}),c("img",{staticClass:"pic-404__child left",attrs:{src:a("26fc"),alt:"404"}}),c("img",{staticClass:"pic-404__child mid",attrs:{src:a("26fc"),alt:"404"}}),c("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,c,e,!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")}}]);
|
File diff suppressed because one or more lines are too long
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