代码初始化

This commit is contained in:
wangxiangshun
2025-10-02 17:19:01 +08:00
commit 5cc31cfbbe
474 changed files with 53553 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
package com.vetti.common.entity.hereMap;
import lombok.Data;
/**
* 坐标
*
* @author ID
* @date 2025/9/11 15:14
*/
@Data
public class HereMapCoordinates {
private double latitude;
private double longitude;
private String address;
private String latlng;
}

View File

@@ -0,0 +1,38 @@
package com.vetti.common.entity.hereMap;
import lombok.Data;
/**
* @author ID
* @date 2025/9/1 21:56
*/
@Data
public class HereMapLocationDto {
private String title;
private String address;
private String city;
private String country;
private String postalCode;
private double latitude;
private double longitude;
public HereMapLocationDto() {
}
public HereMapLocationDto(String address, String city, String country, String postalCode, double latitude, double longitude) {
this.address = address;
this.city = city;
this.country = country;
this.postalCode = postalCode;
this.latitude = latitude;
this.longitude = longitude;
}
public HereMapLocationDto(String title, String address, double latitude, double longitude) {
this.title = title;
this.address = address;
this.latitude = latitude;
this.longitude = longitude;
}
}

View File

@@ -0,0 +1,35 @@
package com.vetti.common.entity.hereMap;
import com.vetti.common.entity.hereMap.vehicle.HereMapVehicleTruck;
import lombok.Data;
import java.util.List;
/**
* @author ID
* @date 2025/9/4 16:40
*/
@Data
public class HereMapRouteVo {
// 基本路线参数
private HereMapCoordinates origin; // 起点坐标 (纬度,经度)
private HereMapCoordinates destination; // 终点坐标 (纬度,经度)
private List<HereMapCoordinates> via; // 途径点坐标列表 (纬度,经度)
private String transportMode; // 运输方式
private List<String> avoid; // 避开选项
private String routingMode; // 路线偏好
private String returnStr = "polyline,actions,instructions,summary,travelSummary,typicalDuration,turnByTurnActions,elevation,routeHandle,passthrough,incidents,routingZones,truckRoadTypes,tolls,routeLabels,potentialTimeDependentViolations,noThroughRestrictions"; // 路线偏好
private String lang; // 语言
private String units; // 单位("metric" "imperial" 枚举:“公制”“英制”)
private String departureTime; // 开始时间
private String arrivalTime; // 结束时间
private HereMapVehicleTruck vehicle;
}

View File

@@ -0,0 +1,43 @@
package com.vetti.common.entity.hereMap;
import lombok.Data;
/**
* @author ID
* @date 2025/9/4 16:40
*/
@Data
public class HereMapTruckRoute {
// 基本路线参数
private String start; // 起点坐标 (纬度,经度)
private String end; // 终点坐标 (纬度,经度)
private String routePreference; // 路线偏好: fastest, shortest, balanced
// 车辆基本参数
private Integer height; // 高度(厘米)
private Integer width; // 宽度(厘米)
private Integer length; // 长度(厘米)
private Integer weightTotal; // 总重量(KG)
// 避开选项
private boolean avoidHighways; // 避开高速公路
private boolean avoidTolls; // 避开收费道路
private boolean avoidFerries; // 避开轮渡
private boolean avoidTunnels; // 避开隧道
private boolean avoidDifficultTurns; // 避开掉头
private boolean avoidDirtRoads; // 避开土路
// 危化品参数
private boolean hazmatExplosive;
private boolean hazmatGas;
private boolean hazmatFlammable;
private boolean hazmatCombustible;
private boolean hazmatOrganic;
private boolean hazmatPoison;
private boolean hazmatRadioactive;
private boolean hazmatCorrosive;
private boolean hazmatPoisonousInhalation;
private boolean hazmatHarmfulToWater;
private boolean hazmatOther;
}

View File

@@ -0,0 +1,38 @@
package com.vetti.common.entity.hereMap.queryParam;
/**
* @author ID
* @date 2025/9/5 23:55
*/
public abstract class BaseHereMapQueryParamVehicle {
private Integer height;//高 cm
private Integer width;//宽 cm
private Integer length;//长 cm
private Integer payloadCapacity;//载重 kg
private String shippedHazardousGoods;//危化品
protected HereMapQueryParam getHeight(Integer height) {
return HereMapQueryParam.build("vehicle[height]", height);
}
protected HereMapQueryParam getWidth(Integer width) {
return HereMapQueryParam.build("vehicle[width]", width);
}
protected HereMapQueryParam getLength(Integer length) {
return HereMapQueryParam.build("vehicle[length]", length);
}
protected HereMapQueryParam getPayloadCapacity(Integer payloadCapacity) {
return HereMapQueryParam.build("vehicle[payloadCapacity]", payloadCapacity);
}
protected HereMapQueryParam getShippedHazardousGoods(String shippedHazardousGoods) {
return HereMapQueryParam.build("vehicle[shippedHazardousGoods]", shippedHazardousGoods);
}
}

View File

@@ -0,0 +1,22 @@
package com.vetti.common.entity.hereMap.queryParam;
import lombok.Data;
/**
* @author ID
* @date 2025/9/4 22:03
*/
@Data
public class HereMapQueryParam {
private String key;
private Object value;
public static HereMapQueryParam build(String key, Object value) {
HereMapQueryParam data = new HereMapQueryParam();
data.setKey(key);
data.setValue(value);
return data;
}
}

View File

@@ -0,0 +1,29 @@
package com.vetti.common.entity.hereMap.queryParam;
/**
* @author ID
* @date 2025/9/5 23:55
*/
public class HereMapQueryParamTruck extends BaseHereMapQueryParamVehicle{
public HereMapQueryParam getHeight(Integer height) {
return super.getHeight(height);
}
public HereMapQueryParam getWidth(Integer width) {
return super.getWidth(width);
}
public HereMapQueryParam getLength(Integer length) {
return super.getLength(length);
}
public HereMapQueryParam getPayloadCapacity(Integer payloadCapacity) {
return super.getPayloadCapacity(payloadCapacity);
}
public HereMapQueryParam getShippedHazardousGoods(String shippedHazardousGoods) {
return super.getShippedHazardousGoods(shippedHazardousGoods);
}
}

View File

@@ -0,0 +1,43 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
/**
* 基础导航动作(含中文指令)
*
* @author ID
* @date 2025/9/11 14:44
*/
@Data
public class HereMapAction {
/**
* 动作类型depart/turn/continue/arrive
*/
private String action;
/**
* 动作耗时(秒)
*/
private Integer duration;
/**
* 动作距离(米)
*/
private Integer length;
/**
* 中文导航指令(如"沿着 Bluegum Pl 朝 Alison St 行驶"
*/
private String instruction;
/**
* 偏移量(路线中的位置索引)
*/
private Integer offset;
/**
* 转向方向仅turn动作有值left/right
*/
private String direction;
/**
* 转向强度仅turn动作有值quite
*/
private String severity;
}

View File

@@ -0,0 +1,23 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
/**
* 到达信息
*
* @author ID
* @date 2025/9/11 14:55
*/
@Data
public class HereMapArrival {
/**
* 到达时间ISO8601格式如"2025-09-11T11:44:37+10:00"
*/
private String time;
/**
* 到达地点
*/
private HereMapPlace place;
}

View File

@@ -0,0 +1,23 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
/**
* 出发信息
*
* @author ID
* @date 2025/9/11 14:54
*/
@Data
public class HereMapDeparture {
/**
* 出发时间ISO8601格式如"2025-09-11T11:27:17+10:00"
*/
private String time;
/**
* 出发地点
*/
private HereMapPlace place;
}

View File

@@ -0,0 +1,27 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
/**
* 坐标信息(经纬度、海拔)
*
* @author ID
* @date 2025/9/11 14:57
*/
@Data
public class HereMapLocation {
/**
* 纬度(如-33.7895301
*/
private Double lat;
/**
* 经度如151.16786
*/
private Double lng;
/**
* 海拔如70.0
*/
private Double elv;
}

View File

@@ -0,0 +1,27 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
/**
* 通知信息(如计算提示、警告)
*
* @author ID
* @date 2025/9/11 15:02
*/
@Data
public class HereMapNotice {
/**
* 通知标题(如"Pre-conditions required for mlDuration calculation failed"
*/
private String title;
/**
* 通知编码(如"mlDurationUnavailable"
*/
private String code;
/**
* 通知级别info/warn/error此处为info
*/
private String severity;
}

View File

@@ -0,0 +1,27 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
/**
* 地点信息(经纬度、海拔)
*
* @author ID
* @date 2025/9/11 14:56
*/
@Data
public class HereMapPlace {
/**
* 地点类型(固定为"place"
*/
private String type;
/**
* 校正后坐标(含海拔)
*/
private HereMapLocation location;
/**
* 原始坐标(用户输入或初始定位)
*/
private HereMapLocation originalLocation;
}

View File

@@ -0,0 +1,29 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
import java.util.List;
/**
* 道路信息(名称、编号、行驶方向)
*
* @author ID
* @date 2025/9/11 14:47
*/
@Data
public class HereMapRoadInfo {
/**
* 道路名称列表多语言此处仅en
*/
private List<HereMapRoadName> name;
/**
* 道路编号列表如A1、A38含路线类型
*/
private List<HereMapRoadNumber> number;
/**
* 行驶方向列表(如"Frenchs Forest"、"City"
*/
private List<HereMapRoadToward> toward;
}

View File

@@ -0,0 +1,23 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
/**
* 道路名称(多语言支持)
*
* @author ID
* @date 2025/9/11 14:48
*/
@Data
public class HereMapRoadName {
/**
* 道路名称(如"Bluegum Pl"
*/
private String value;
/**
* 语言(固定为"en"
*/
private String language;
}

View File

@@ -0,0 +1,27 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
/**
* 道路编号(含路线类型)
*
* @author ID
* @date 2025/9/11 14:49
*/
@Data
public class HereMapRoadNumber {
/**
* 道路编号(如"A1"、"A38"
*/
private String value;
/**
* 语言(固定为"en"
*/
private String language;
/**
* 路线类型固定为6代表主干道
*/
private Integer routeType;
}

View File

@@ -0,0 +1,23 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
/**
* 道路行驶方向
*
* @author ID
* @date 2025/9/11 14:50
*/
@Data
public class HereMapRoadToward {
/**
* 方向名称(如"Northbridge"、"Airport"
*/
private String value;
/**
* 语言(固定为"en"
*/
private String language;
}

View File

@@ -0,0 +1,33 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
import java.util.List;
/**
* 单个路由信息
*
* @author ID
* @date 2025/9/11 14:42
*/
@Data
public class HereMapRoute {
/**
* 路由ID如"6e1a8f39-d309-43d0-8b72-ab9b810af8b1"
*/
private String id;
/**
* 路由分段列表仅包含vehicle类型分段
*/
private List<HereMapRouteSection> sections;
/**
* 路由标识(如道路名称、编号)
*/
private List<HereMapRouteLabel> routeLabels;
/**
* 路由句柄(编码字符串)
*/
private String routeHandle;
}

View File

@@ -0,0 +1,21 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
import java.util.List;
/**
* 路由响应顶层实体
*
* @author ID
* @date 2025/9/11 14:41
*/
@Data
public class HereMapRouteDto {
/**
* 路由列表JSON中的"routes"数组)
*/
private List<HereMapRoute> routes;
}

View File

@@ -0,0 +1,27 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
/**
* 路由标识(道路名称、编号)
*
* @author ID
* @date 2025/9/11 14:43
*/
@Data
public class HereMapRouteLabel {
/**
* 标识类型Name/RouteNumber
*/
private String label_type;
/**
* 名称信息(如道路名称)
*/
private HereMapRoadName name;
/**
* 路线编号信息如A38
*/
private HereMapRoadNumber routeNumber;
}

View File

@@ -0,0 +1,65 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
import java.util.List;
/**
* 路由分段(车辆行驶分段)
*
* @author ID
* @date 2025/9/11 14:42
*/
@Data
public class HereMapRouteSection {
/**
* 分段ID如"7bed8aae-2ad3-4e74-8a11-0a2ae7eedc97"
*/
private String id;
/**
* 分段类型(固定为"vehicle"
*/
private String type;
/**
* 行驶动作列表(含中文导航指令)
*/
private List<HereMapAction> actions;
/**
* 详细转向动作列表(含道路信息、转向角度)
*/
private List<HereMapTurnByTurnAction> turnByTurnActions;
/**
* 出发信息(时间、地点)
*/
private HereMapDeparture departure;
/**
* 到达信息(时间、地点)
*/
private HereMapArrival arrival;
/**
* 分段概要(时长、距离等)
*/
private HereMapSummary summary;
/**
* 行程概要与summary结构一致
*/
private HereMapTravelSummary travelSummary;
/**
* 路线polyline编码用于地图绘制
*/
private String polyline;
/**
* 通知信息(如计算提示)
*/
private List<HereMapNotice> notices;
/**
* 语言(固定为"zh-cn"
*/
private String language;
/**
* 交通方式(固定为"car"
*/
private HereMapTransport transport;
}

View File

@@ -0,0 +1,21 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
import java.util.List;
/**
* 路牌信息(导航标识)
*
* @author ID
* @date 2025/9/11 14:52
*/
@Data
public class HereMapSignpost {
/**
* 路牌标签列表(含道路名称、方向、编号)
*/
private List<HereMapSignpostLabel> labels;
}

View File

@@ -0,0 +1,23 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
/**
* 路牌标签(单个标识项)
*
* @author ID
* @date 2025/9/11 14:52
*/
@Data
public class HereMapSignpostLabel {
/**
* 名称标签(如道路名称、方向)
*/
private HereMapRoadName name;
/**
* 路线编号标签(如"A38"
*/
private HereMapRoadNumber routeNumber;
}

View File

@@ -0,0 +1,31 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
/**
* 分段概要(时长、距离统计)
*
* @author ID
* @date 2025/9/11 14:59
*/
@Data
public class HereMapSummary {
/**
* 总耗时(秒,含交通延误)
*/
private Integer duration;
/**
* 总距离(米)
*/
private Integer length;
/**
* 基础耗时(秒,不含交通延误)
*/
private Integer baseDuration;
/**
* 典型耗时(秒,历史平均耗时)
*/
private Integer typicalDuration;
}

View File

@@ -0,0 +1,19 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
/**
* 交通方式
*
* @author ID
* @date 2025/9/11 15:03
*/
@Data
public class HereMapTransport {
/**
* 交通模式(固定为"car"
*/
private String mode;
}

View File

@@ -0,0 +1,31 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
/**
* 行程概要与Summary结构完全一致
*
* @author ID
* @date 2025/9/11 15:00
*/
@Data
public class HereMapTravelSummary {
/**
* 总耗时(秒,含交通延误)
*/
private Integer duration;
/**
* 总距离(米)
*/
private Integer length;
/**
* 基础耗时(秒,不含交通延误)
*/
private Integer baseDuration;
/**
* 典型耗时(秒,历史平均耗时)
*/
private Integer typicalDuration;
}

View File

@@ -0,0 +1,55 @@
package com.vetti.common.entity.hereMap.route;
import lombok.Data;
/**
* 详细转向动作(含道路信息、转向角度)
*
* @author ID
* @date 2025/9/11 14:46
*/
@Data
public class HereMapTurnByTurnAction {
/**
* 动作类型同Action的action字段
*/
private String action;
/**
* 动作耗时(秒)
*/
private Integer duration;
/**
* 动作距离(米)
*/
private Integer length;
/**
* 偏移量(路线中的位置索引)
*/
private Integer offset;
/**
* 转向方向仅turn动作有值left/right
*/
private String direction;
/**
* 转向强度仅turn动作有值quite
*/
private String severity;
/**
* 当前道路信息仅非depart动作有值
*/
private HereMapRoadInfo currentRoad;
/**
* 下一条道路信息仅非arrive动作有值
*/
private HereMapRoadInfo nextRoad;
/**
* 转向角度(度,负值为左转,正值为右转)
*/
private Double turnAngle;
/**
* 路牌信息(含导航标识)
*/
private HereMapSignpost signpost;
}

View File

@@ -0,0 +1,23 @@
package com.vetti.common.entity.hereMap.vehicle;
import lombok.Data;
/**
* @author ID
* @date 2025/9/12 9:33
*/
@Data
public class HereMapVehicle {
private Integer height;//高 cm
private Integer width;//宽 cm
private Integer length;//长 cm
private Double speedCap;//最大速度 m/s
private Integer grossWeight;//车辆总重量,包括挂车和满载货物。 kg
private Integer currentWeight;//当前车辆总重量,包括挂车和满载货物。 kg
}

View File

@@ -0,0 +1,24 @@
package com.vetti.common.entity.hereMap.vehicle;
import lombok.Data;
import java.util.List;
/**
* @author ID
* @date 2025/9/12 9:33
*/
@Data
public class HereMapVehicleTruck extends HereMapVehicle {
private Integer axleCount;//总轴数 指定车辆具有的轴的总数,即基础车辆上的轴和任何附加的拖车。
private Integer trailerAxleCount;//拖车总轴数,不含车头 指定连接到车辆的所有拖车的轴总数。 这个数字包含在 axleCount 中,因此 trailerAxleCount 必须严格小于 axleCount 。 trailerCount 必须非零。
private Integer weightPerAxle;//每轴最重车辆重量 kg 每轴最重车辆重量,单位为公斤。
private Integer trailerCount;//拖车数量 与车辆相连的拖车的数量。
private String type;//类型 StraightTruck直车(单车架设计,载货区(如货箱)与车架永久固定,不可分离);Tractor:牵引车 / 拖拉机()仅为 “牵引车头”,无独立载货区,需通过牵引装置连接半挂车
private String cargoType;//货物类型 非here map 属性 normal:普通货物;hazardous:危险品
private List<String> hazardousGoods;//危化品
}

View File

@@ -0,0 +1,17 @@
package com.vetti.common.entity.verification;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
/**
* @author ID
* @date 2025/8/29 21:42
*/
public class BaseTemplateEmail {
public JsonObject toJsonObject() {
return new Gson().toJsonTree(this).getAsJsonObject();
}
}

View File

@@ -0,0 +1,15 @@
package com.vetti.common.entity.verification;
import lombok.Data;
/**
* @author ID
* @date 2025/8/29 21:42
*/
@Data
public class RoutezVerificationCodeTemplate extends BaseTemplateEmail {
private String verification_code;
private int verification_expiration;
}