From 8f14c51ca42ff44bb576352aef30ad244ceee11e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=B0=8F=E4=B8=9C?= <13396135+anton-aoi@user.noreply.gitee.com> Date: Mon, 20 Nov 2023 13:57:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- february-vehicle-common/pom.xml | 6 ++ .../java/com/february/common/domain/Car.java | 65 ++++++++++++++ .../com/february/common/domain/Constants.java | 18 ++++ .../common/domain/HistoricalDetail.java | 61 +++++++++++++ .../common/domain/HistoricalTrack.java | 58 +++++++++++++ .../february/common/domain/HistoryData.java | 86 +++++++++++++++++++ .../com/february/common/domain/RealData.java | 51 +++++++++++ .../com/february/common/domain/Result.java | 76 ++++++++++++++++ february-vehicle-server/pom.xml | 31 ++++--- .../trajectory/TrajectoryApplication.java} | 7 +- .../controller/TrajectoryController.java | 44 ++++++++++ .../trajectory/mapper/TrajectoryMapper.java | 14 +++ .../trajectory/service/TrajectoryService.java | 13 +++ .../service/impl/TrajectoryServiceImpl.java | 55 ++++++++++++ .../src/main/resources/bootstrap.yml | 25 ++++++ .../resources/mapper/TrajectoryMapper.xml | 13 +++ 16 files changed, 609 insertions(+), 14 deletions(-) create mode 100644 february-vehicle-common/src/main/java/com/february/common/domain/Car.java create mode 100644 february-vehicle-common/src/main/java/com/february/common/domain/Constants.java create mode 100644 february-vehicle-common/src/main/java/com/february/common/domain/HistoricalDetail.java create mode 100644 february-vehicle-common/src/main/java/com/february/common/domain/HistoricalTrack.java create mode 100644 february-vehicle-common/src/main/java/com/february/common/domain/HistoryData.java create mode 100644 february-vehicle-common/src/main/java/com/february/common/domain/RealData.java create mode 100644 february-vehicle-common/src/main/java/com/february/common/domain/Result.java rename february-vehicle-server/src/main/java/com/{february/Main.java => vehicle/trajectory/TrajectoryApplication.java} (60%) create mode 100644 february-vehicle-server/src/main/java/com/vehicle/trajectory/controller/TrajectoryController.java create mode 100644 february-vehicle-server/src/main/java/com/vehicle/trajectory/mapper/TrajectoryMapper.java create mode 100644 february-vehicle-server/src/main/java/com/vehicle/trajectory/service/TrajectoryService.java create mode 100644 february-vehicle-server/src/main/java/com/vehicle/trajectory/service/impl/TrajectoryServiceImpl.java create mode 100644 february-vehicle-server/src/main/resources/bootstrap.yml create mode 100644 february-vehicle-server/src/main/resources/mapper/TrajectoryMapper.xml diff --git a/february-vehicle-common/pom.xml b/february-vehicle-common/pom.xml index c25c594..491369a 100644 --- a/february-vehicle-common/pom.xml +++ b/february-vehicle-common/pom.xml @@ -62,6 +62,12 @@ february-common-swagger 3.6.3 + + + + org.projectlombok + lombok + diff --git a/february-vehicle-common/src/main/java/com/february/common/domain/Car.java b/february-vehicle-common/src/main/java/com/february/common/domain/Car.java new file mode 100644 index 0000000..fb2ea5d --- /dev/null +++ b/february-vehicle-common/src/main/java/com/february/common/domain/Car.java @@ -0,0 +1,65 @@ +package com.february.common.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 车辆信息 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Car { + /** + * 车辆主键 + */ + private int carId; + + /** + * 车辆VIN + */ + private String carVIN; + + /** + * 车牌号 + */ + private String carBh; + + /** + * 车型Id + */ + private int carTypeId; + + /** + * 驱动编号 + */ + private int actuateId; + + /** + * 电池编号 + */ + private int batteryId; + + /** + * 电池厂家编号 + */ + private int batteryMakerId; + + /** + * 电机厂家编号 + */ + private int motorManufacturerId; + + /** + * 车辆状态 + */ + private int carStatus; + + /** + * 运用区域 + */ + private String operatingArea; +} diff --git a/february-vehicle-common/src/main/java/com/february/common/domain/Constants.java b/february-vehicle-common/src/main/java/com/february/common/domain/Constants.java new file mode 100644 index 0000000..8d87b54 --- /dev/null +++ b/february-vehicle-common/src/main/java/com/february/common/domain/Constants.java @@ -0,0 +1,18 @@ +package com.february.system.domain.constants; + +/** + * @description: 系统常量 + * @author + */ +public class Constants { + /** + * 成功标记 + */ + public static final Integer SUCCESS = 200; + public static final String SUCCESS_MSG = "操作成功"; + /** + * 失败标记 + */ + public static final Integer ERROR = 500; + public static final String ERROR_MSG = "操作异常"; +} diff --git a/february-vehicle-common/src/main/java/com/february/common/domain/HistoricalDetail.java b/february-vehicle-common/src/main/java/com/february/common/domain/HistoricalDetail.java new file mode 100644 index 0000000..8b535ed --- /dev/null +++ b/february-vehicle-common/src/main/java/com/february/common/domain/HistoricalDetail.java @@ -0,0 +1,61 @@ +package com.february.common.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class HistoricalDetail { + + /** + * 历史详情主键 + */ + private int historicalDetailId; + + /** + * 历史轨迹Id + */ + private int historicalTrackId; + + /** + * 电机转速 + */ + private String motorSpeed; + + /** + * 瞬时功率 + */ + private String instantaneousSpeed; + + /** + * 续航里程 + */ + private String range; + + /** + * 总里程 + */ + private String totalMileage; + + /** + * SOC% + */ + private String residualElectricity; + + /** + * 监测温度 + */ + private String monitoringTemperature; + + /** + * 电池Id + */ + private String batteryId; +} diff --git a/february-vehicle-common/src/main/java/com/february/common/domain/HistoricalTrack.java b/february-vehicle-common/src/main/java/com/february/common/domain/HistoricalTrack.java new file mode 100644 index 0000000..55ccb91 --- /dev/null +++ b/february-vehicle-common/src/main/java/com/february/common/domain/HistoricalTrack.java @@ -0,0 +1,58 @@ +package com.february.common.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 历史轨迹 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class HistoricalTrack { + + /** + * 历史轨迹主键 + */ + private int historicalTrackId; + + /** + * 车辆Id + */ + private int carId; + + /** + * 经度 + */ + private String longitude; + + /** + * 维度 + */ + private String dimensionality; + + /** + * 开始时间 + */ + private Date historicalStartTime; + + /** + * 结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date historicalEndTime; + + /** + * 速度 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private int speed; + + +} diff --git a/february-vehicle-common/src/main/java/com/february/common/domain/HistoryData.java b/february-vehicle-common/src/main/java/com/february/common/domain/HistoryData.java new file mode 100644 index 0000000..ec685b6 --- /dev/null +++ b/february-vehicle-common/src/main/java/com/february/common/domain/HistoryData.java @@ -0,0 +1,86 @@ +package com.february.common.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 历史数据 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class HistoryData { + + /** + * 历史数据主键 + */ + private int historyDataId; + + /** + * 车辆轨迹 + */ + private int carTrajectory; + + /** + * 车辆转速 + */ + private int carSpeed; + + /** + * 电池温度 + */ + private int batteryTemperature; + + /** + * 电池电压 + */ + private int batteryVoltage; + + /** + * 电机转速 + */ + private int actuateSpeed; + + /** + * BMS自检计数器 + */ + private String selfCheckCounter; + + /** + * 电池Id + */ + private String batteryId; + + /** + * 档位 + */ + private String gearPosition; + + /** + * 单次最大电压 + */ + private String singleMaximumVoltage; + + /** + * 燃烧消耗率 + */ + private String specificFuelConsumption; + + /** + * 绝缘电阻 + */ + private String insulationResistance; + + /** + * 最大反馈功率 + */ + private String maximumFeedbackPower; + + /** + * 总体电量最高温度 + */ + private String maximumTemperature; +} diff --git a/february-vehicle-common/src/main/java/com/february/common/domain/RealData.java b/february-vehicle-common/src/main/java/com/february/common/domain/RealData.java new file mode 100644 index 0000000..2a22a10 --- /dev/null +++ b/february-vehicle-common/src/main/java/com/february/common/domain/RealData.java @@ -0,0 +1,51 @@ +package com.february.common.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 实时数据 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RealData { + + /** + * 实时数据主键 + */ + private int realDataId; + + /** + * 车辆VIN + */ + private String carVIN; + + /** + * 车辆类型 + */ + private int carTypeId; + + /** + * 电子围栏 + */ + private int fenceId; + + /** + * 车辆状态Id + */ + private int carStatusId; + + /** + * 电机厂商Id + */ + private int batteryMakerId; + + /** + * 电池厂商Id + */ + private int motorManufacturerId; +} diff --git a/february-vehicle-common/src/main/java/com/february/common/domain/Result.java b/february-vehicle-common/src/main/java/com/february/common/domain/Result.java new file mode 100644 index 0000000..80919c0 --- /dev/null +++ b/february-vehicle-common/src/main/java/com/february/common/domain/Result.java @@ -0,0 +1,76 @@ +package com.february.common.domain; + +import com.february.system.domain.constants.Constants; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author + * @description: 响应信息主体 + */ +@Data +public class Result implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 成功 + */ + public static final int SUCCESS = Constants.SUCCESS; + /** + * 失败 + */ + public static final int FAIL = Constants.ERROR; + /** + * 返回状态码 + */ + private int code; + /** + * 响应信息 + */ + private String msg; + /** + * 响应数据 + */ + private T data; + + public static Result success() { + return restResult(null, SUCCESS, Constants.SUCCESS_MSG); + } + + public static Result success(T data) { + return restResult(data, SUCCESS, Constants.SUCCESS_MSG); + } + + public static Result success(T data, String msg) { + return restResult(data, SUCCESS, msg); + } + + public static Result error() { + return restResult(null, FAIL, Constants.ERROR_MSG); + } + + public static Result error(String msg) { + return restResult(null, FAIL, msg); + } + + public static Result error(T data) { + return restResult(data, FAIL, Constants.ERROR_MSG); + } + + public static Result error(T data, String msg) { + return restResult(data, FAIL, msg); + } + + public static Result error(int code, String msg) { + return restResult(null, code, msg); + } + + private static Result restResult(T data, int code, String msg) { + Result apiResult = new Result<>(); + apiResult.setCode(code); + apiResult.setData(data); + apiResult.setMsg(msg); + return apiResult; + } +} diff --git a/february-vehicle-server/pom.xml b/february-vehicle-server/pom.xml index a803cb3..5d4f974 100644 --- a/february-vehicle-server/pom.xml +++ b/february-vehicle-server/pom.xml @@ -27,18 +27,12 @@ compile - - com.february - february-vehicle-remote - 3.6.3 - compile - - - com.february - february-common-log - 3.6.3 - + + + + + com.february @@ -51,6 +45,21 @@ february-common-datasource 3.6.3 + + com.february + february-common-redis + 3.6.3 + + + + + + + + org.redisson + redisson + 3.16.0 + diff --git a/february-vehicle-server/src/main/java/com/february/Main.java b/february-vehicle-server/src/main/java/com/vehicle/trajectory/TrajectoryApplication.java similarity index 60% rename from february-vehicle-server/src/main/java/com/february/Main.java rename to february-vehicle-server/src/main/java/com/vehicle/trajectory/TrajectoryApplication.java index 1d2e6c4..8efcb5f 100644 --- a/february-vehicle-server/src/main/java/com/february/Main.java +++ b/february-vehicle-server/src/main/java/com/vehicle/trajectory/TrajectoryApplication.java @@ -1,11 +1,12 @@ -package com.february; +package com.vehicle.trajectory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; + @SpringBootApplication -public class Main { +public class TrajectoryApplication { public static void main(String[] args) { - SpringApplication.run(Main.class); + SpringApplication.run(TrajectoryApplication.class); } } diff --git a/february-vehicle-server/src/main/java/com/vehicle/trajectory/controller/TrajectoryController.java b/february-vehicle-server/src/main/java/com/vehicle/trajectory/controller/TrajectoryController.java new file mode 100644 index 0000000..6087be8 --- /dev/null +++ b/february-vehicle-server/src/main/java/com/vehicle/trajectory/controller/TrajectoryController.java @@ -0,0 +1,44 @@ +package com.vehicle.trajectory.controller; + +import com.february.common.domain.Car; +import com.february.common.domain.RealData; +import com.february.common.domain.Result; +import com.vehicle.trajectory.service.TrajectoryService; +import lombok.extern.log4j.Log4j2; +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; + +import javax.servlet.http.HttpServletRequest; + +import java.util.List; + +@Log4j2 +@RestController +@RequestMapping("/vehicle") +public class TrajectoryController { + @Autowired + private TrajectoryService trajectoryService; + @Autowired + private HttpServletRequest request; + + + @GetMapping("/realDateList") + public Result> realDateList() { + log.info("功能名称:【实时数据查看】,请求路径:【{}】,请求方式:【{}】", request.getRequestURI(), request.getMethod()); + Result> result = trajectoryService.realDateList(); + log.info("请求结果:【{}】", result); + return result; + } + /** + * 查询车辆信息 + */ + @GetMapping("/carList") + public Result> carList() { + log.info("功能名称:【查看在线车辆】,请求路径:【{}】,请求方式:【{}】", request.getRequestURI(), request.getMethod()); + Result> result = trajectoryService.carList(); + log.info("请求结果:【{}】", result); + return result; + } +} diff --git a/february-vehicle-server/src/main/java/com/vehicle/trajectory/mapper/TrajectoryMapper.java b/february-vehicle-server/src/main/java/com/vehicle/trajectory/mapper/TrajectoryMapper.java new file mode 100644 index 0000000..685502c --- /dev/null +++ b/february-vehicle-server/src/main/java/com/vehicle/trajectory/mapper/TrajectoryMapper.java @@ -0,0 +1,14 @@ +package com.vehicle.trajectory.mapper; + +import com.february.common.domain.Car; +import com.february.common.domain.RealData; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface TrajectoryMapper { + List realDateList(); + + List carList(); +} diff --git a/february-vehicle-server/src/main/java/com/vehicle/trajectory/service/TrajectoryService.java b/february-vehicle-server/src/main/java/com/vehicle/trajectory/service/TrajectoryService.java new file mode 100644 index 0000000..e970d5a --- /dev/null +++ b/february-vehicle-server/src/main/java/com/vehicle/trajectory/service/TrajectoryService.java @@ -0,0 +1,13 @@ +package com.vehicle.trajectory.service; + +import com.february.common.domain.Car; +import com.february.common.domain.RealData; +import com.february.common.domain.Result; + +import java.util.List; + +public interface TrajectoryService { + Result> realDateList(); + + Result> carList(); +} diff --git a/february-vehicle-server/src/main/java/com/vehicle/trajectory/service/impl/TrajectoryServiceImpl.java b/february-vehicle-server/src/main/java/com/vehicle/trajectory/service/impl/TrajectoryServiceImpl.java new file mode 100644 index 0000000..2283c83 --- /dev/null +++ b/february-vehicle-server/src/main/java/com/vehicle/trajectory/service/impl/TrajectoryServiceImpl.java @@ -0,0 +1,55 @@ +package com.vehicle.trajectory.service.impl; + + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.february.common.domain.Car; +import com.february.common.domain.RealData; +import com.february.common.domain.Result; +import com.february.common.redis.service.RedisService; +import com.vehicle.trajectory.mapper.TrajectoryMapper; +import com.vehicle.trajectory.service.TrajectoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Service; + + +import java.util.ArrayList; +import java.util.List; + +@Service +@Configuration +public class TrajectoryServiceImpl implements TrajectoryService { + @Autowired + private TrajectoryMapper mapper; + + @Override + public Result> realDateList() { + List realData = mapper.realDateList(); + return Result.success(realData); + } + + @Autowired + private RedisService redisService; + @Override + public Result> carList() { + Boolean aBoolean = redisService.hasKey("状态为上线的车辆信息"); + if (Boolean.TRUE.equals(aBoolean)){ + List list = redisService.redisTemplate.opsForList().range("状态为上线的车辆信息", 0, -1); + ArrayList carArrayList = new ArrayList<>(); + if (list != null) { + for (Object o : list) { + String o1 = (String) o; + Car notice = JSON.parseObject(o1, Car.class); + carArrayList.add(notice); + } + return Result.success(carArrayList); + } + } + List carList = mapper.carList(); //上线车辆的信息 + for (Car car : carList) { + redisService.redisTemplate.opsForList().leftPush("状态为上线的车辆信息", JSONObject.toJSONString(car)); + } + return Result.success(carList); + } +} diff --git a/february-vehicle-server/src/main/resources/bootstrap.yml b/february-vehicle-server/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..f847b0c --- /dev/null +++ b/february-vehicle-server/src/main/resources/bootstrap.yml @@ -0,0 +1,25 @@ +# Tomcat +server: + port: 9203 + +# Spring +spring: + application: + # 应用名称 + name: vehicle-trajectory + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 10.100.1.4:8848 + config: + # 配置中心地址 + server-addr: 10.100.1.4:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/february-vehicle-server/src/main/resources/mapper/TrajectoryMapper.xml b/february-vehicle-server/src/main/resources/mapper/TrajectoryMapper.xml new file mode 100644 index 0000000..4211242 --- /dev/null +++ b/february-vehicle-server/src/main/resources/mapper/TrajectoryMapper.xml @@ -0,0 +1,13 @@ + + + + + + +