Merge remote-tracking branch 'origin/master' into feature/payment-apply-bfi-sync

# Conflicts:
#	blade-common/src/main/java/org/springblade/common/config/BladeCommonConfiguration.java
#	blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java
#	blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java
#	blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java
#	blade-service/blade-transport/pom.xml
#	blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/CustomerArchiveMapper.xml
#	blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PaymentApplicationServiceImpl.java
#	blade-service/blade-transport/src/main/java/org/springblade/transport/wrapper/PaymentApplicationWrapper.java
#	blade-service/blade-transport/src/main/resources/application-dev.yml
#	blade-third-party-api/pom.xml
#	doc/nacos/blade-dev.yaml
#	doc/nacos/blade-prod.yaml
#	doc/nacos/third-party-api.yaml
#	pom.xml
This commit is contained in:
刘泉佳
2026-09-24 03:15:30 +08:00
235 changed files with 15516 additions and 2569 deletions
@@ -0,0 +1,26 @@
package org.springblade.transport.feign;
import org.springblade.core.tool.api.FR;
import org.springblade.transport.pojo.dto.CustomerProcessNodeSyncDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 客商档案 Feign接口
*/
@FeignClient(value = "blade-transport")
public interface ICustomerArchiveClient {
String API_PREFIX = "/feign/client/customerArchive";
String SYNC_PROCESS_NODE = API_PREFIX + "/syncProcessNode";
/**
* 按 MK 当前节点同步客商当前节点、当前处理人和审批状态
*
* @param param 同步参数
* @return 是否成功
*/
@PostMapping(SYNC_PROCESS_NODE)
FR<Boolean> syncProcessNode(@RequestBody CustomerProcessNodeSyncDTO param);
}
@@ -0,0 +1,20 @@
package org.springblade.transport.feign;
import org.springblade.core.tool.api.FR;
import org.springblade.transport.pojo.dto.MkProcessSyncDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* MK 业务流程同步 Feign
*/
@FeignClient(value = "blade-transport")
public interface IMkProcessClient {
String API_PREFIX = "/feign/client/mkProcess";
String APPLY = API_PREFIX + "/apply";
@PostMapping(APPLY)
FR<Boolean> apply(@RequestBody MkProcessSyncDTO param);
}
@@ -0,0 +1,33 @@
package org.springblade.transport.pojo.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 客商流程当前节点同步参数
*/
@Data
@Schema(description = "客商流程当前节点同步参数")
public class CustomerProcessNodeSyncDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "客商ID")
private Long id;
@Schema(description = "当前节点")
private String currentNode;
@Schema(description = "当前处理人")
private String currentProcessor;
@Schema(description = "审批状态")
private String approvalStatus;
@Schema(description = "MK 流程实例详情,传入后按 currentHandlers.fdName 和 handlerInfos.nodeName 回写")
private Object processInfo;
}
@@ -0,0 +1,33 @@
package org.springblade.transport.pojo.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* MK 流程节点同步参数
*/
@Data
@Schema(description = "MK 流程节点同步参数")
public class MkProcessSyncDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "业务类型,如 project-apply")
private String bizType;
@Schema(description = "业务主键")
private Long id;
@Schema(description = "动作:sync / approve / reject")
private String action;
@Schema(description = "处理人姓名")
private String processorName;
@Schema(description = "MK 流程实例详情")
private Object processInfo;
}
@@ -58,6 +58,9 @@ public class CustomerArchive extends TenantEntity {
@Schema(description = "客商全称")
private String fullName;
@Schema(description = "客商类型:external外部客商,internal内部组织")
private String customerKind;
@Schema(description = "客商性质")
private String customerNature;
@@ -59,6 +59,9 @@ public class CustomerReceiptAccount extends TenantEntity {
@Schema(description = "开户行名称")
private String bankName;
@Schema(description = "联行号")
private String cnapsCode;
@Schema(description = "银行账号")
private String bankAccount;
@@ -0,0 +1,30 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
@Data
@Schema(description = "调度端司机搜索项")
public class AdminDriverOptionVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "司机ID")
private Long id;
@Schema(description = "姓名")
private String name;
@Schema(description = "手机号")
private String phone;
@Schema(description = "绑定车牌")
private String vehicleNo;
}
@@ -0,0 +1,47 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 调度端首页快捷入口角标
*/
@Data
@Schema(description = "调度端首页角标")
public class AdminHomeBadgesVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "异常处置待办数(disposalStatus≠completed)")
private long exception;
@Schema(description = "风险记录待办数(disposalStatus=pending)")
private long risk;
}
@@ -0,0 +1,53 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 调度端首页顶部统计(对齐小程序 admin/home)
*/
@Data
@Schema(description = "调度端首页运单状态统计")
public class AdminHomeStatsVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "运输中(businessStatus=running)")
private long transporting;
@Schema(description = "待接单(businessStatus=pending)")
private long pendingAccept;
@Schema(description = "在途异常(异常处置状态≠已完成)")
private long exception;
@Schema(description = "已完成(businessStatus=completed)")
private long completed;
}
@@ -0,0 +1,55 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* 调度端首页聚合数据(统计 + 角标 + 待处理 feed + 用户名)
*/
@Data
@Schema(description = "调度端首页聚合")
public class AdminHomeVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "当前登录用户姓名")
private String userName;
@Schema(description = "顶部运单状态统计")
private AdminHomeStatsVO stats = new AdminHomeStatsVO();
@Schema(description = "快捷入口角标")
private AdminHomeBadgesVO badges = new AdminHomeBadgesVO();
@Schema(description = "待处理事项(异常处置状态≠已完成)")
private List<AdminTodoItemVO> feed = new ArrayList<>();
}
@@ -0,0 +1,65 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 调度端首页「待处理事项」条目
*/
@Data
@Schema(description = "调度端首页待处理事项")
public class AdminTodoItemVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "条目ID(异常处置ID)")
private Long id;
@Schema(description = "类型:exception=异常待处置 / reassign=重新派单待处理")
private String type;
@Schema(description = "标题")
private String title;
@Schema(description = "相对时间文案,如「2分钟」")
private String timeAgo;
@Schema(description = "摘要描述")
private String desc;
@Schema(description = "运单号")
private String waybillNo;
@Schema(description = "操作按钮文案")
private String actionLabel;
@Schema(description = "跳转路径(小程序内路径)")
private String targetUrl;
}
@@ -0,0 +1,24 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
@Data
@Schema(description = "调度端车牌搜索项")
public class AdminVehicleOptionVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "车牌号")
private String vehicleNo;
@Schema(description = "关联司机名(可选)")
private String driverName;
}
@@ -0,0 +1,95 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 调度端运单列表卡片(对齐小程序 admin/waybill-list)
*/
@Data
@Schema(description = "调度端运单列表卡片")
public class AdminWaybillCardVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "运单ID")
private Long id;
@Schema(description = "运单号")
private String waybillNo;
@Schema(description = "起点")
private String fromName;
@Schema(description = "终点")
private String toName;
@Schema(description = "货物名称")
private String cargo;
@Schema(description = "重量(带单位)")
private String weight;
@Schema(description = "计划开始时间")
private String planTime;
@Schema(description = "计划结束时间")
private String planTimeEnd;
@Schema(description = "状态:0待接单/1运输中/2已完成/3已取消")
private Integer status;
@Schema(description = "承运方")
private String carrierName;
@Schema(description = "司机姓名")
private String driverName;
@Schema(description = "车牌号")
private String vehicleNo;
@Schema(description = "是否有未完成异常")
private Boolean hasException;
@Schema(description = "运输组织类型:common普通 / load配载")
private String transportType;
@Schema(description = "运输方式:road / 公路运输 / 铁路运输 等")
private String transportMode;
@Schema(description = "创建时间")
private String createTime;
@Schema(description = "需重新派单(司机已拒单)")
private Boolean needReassign;
@Schema(description = "采购方是否已付款(预留)")
private Boolean buyerPaid;
}
@@ -0,0 +1,154 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
* 调度端运单详情(对齐小程序 pages/waybill/detail)
*/
@Data
@Schema(description = "调度端运单详情")
public class AdminWaybillDetailVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "运单ID")
private Long id;
@Schema(description = "运单号")
private String waybillNo;
@Schema(description = "状态:0待接单/1运输中/2已完成/3已取消")
private Integer status;
@Schema(description = "起点名称")
private String fromName;
@Schema(description = "终点名称")
private String toName;
@Schema(description = "起点地址")
private String fromAddress;
@Schema(description = "终点地址")
private String toAddress;
@Schema(description = "装货地址")
private String pickupAddress;
@Schema(description = "卸货地址")
private String unloadAddress;
@Schema(description = "货物名称")
private String cargoName;
@Schema(description = "货物数量(带单位)")
private String cargoQuantity;
@Schema(description = "重量(带单位)")
private String weight;
@Schema(description = "合计货重")
private String totalWeight;
@Schema(description = "运输方式文案:公路运输 / 铁路运输 等")
private String transportType;
@Schema(description = "运输方式字典值:road 等")
private String transportMode;
@Schema(description = "运输组织:common普通 / load配载")
private String transportOrgType;
@Schema(description = "计划发货时间")
private String planShipTime;
@Schema(description = "计划完成时间")
private String planFinishTime;
@Schema(description = "承运方")
private String carrierName;
@Schema(description = "司机姓名")
private String driverName;
@Schema(description = "司机联系方式")
private String driverPhone;
@Schema(description = "车牌号")
private String vehicleNo;
@Schema(description = "备注")
private String remark;
@Schema(description = "是否有未完成异常")
private Boolean hasException;
@Schema(description = "最近一条未完成异常处置ID(有异常时返回)")
private Long exceptionId;
@Schema(description = "需重新派单")
private Boolean needReassign;
@Schema(description = "司机接单状态:pending/accepted/rejected")
private String acceptStatus;
@Schema(description = "司机拒绝接单原因")
private String rejectReason;
@Schema(description = "原指派司机ID")
private Long driverId;
@Schema(description = "装卸点列表")
private List<AdminRoutePointVO> routePoints;
@Schema(description = "过程打卡节点(与司机端 punchNodes 同结构)")
private List<DriverPunchNodeVO> punchNodes;
@Schema(description = "途打卡记录")
private List<DriverEnrouteRecordVO> enrouteRecords;
@Data
@Schema(description = "装卸点")
public static class AdminRoutePointVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "点位名称")
private String name;
@Schema(description = "详细地址")
private String address;
@Schema(description = "状态:pending/done/active")
private String status;
}
}
@@ -82,10 +82,6 @@ public class CustomerArchiveVO extends CustomerArchive {
@Schema(description = "是否保存变更记录(仅提交时为 true,保存时不记录)")
private Boolean recordChange;
@TableField(exist = false)
@Schema(description = "客商类型:external外部客商,internal内部组织")
private String customerKind;
@TableField(exist = false)
@Schema(description = "资金使用风险等级:high、medium、none")
private String fundUseRisk;
@@ -98,6 +94,10 @@ public class CustomerArchiveVO extends CustomerArchive {
@Schema(description = "资金使用率(百分比)")
private BigDecimal fundUseRate;
@TableField(exist = false)
@Schema(description = "评分复评状态")
private String reviewStatus;
@TableField(exist = false)
@Schema(description = "已付金额合计(元)")
private BigDecimal usedFundLimit;
@@ -133,4 +133,55 @@ public class DriverWaybillCardVO implements Serializable {
@Schema(description = "过程配置中 punch=是 的打卡节点列表(详情返回)")
private List<DriverPunchNodeVO> punchNodes;
/* ===== pages/waybill/detail 接单查看字段 ===== */
@Schema(description = "货物名称")
private String cargoName;
@Schema(description = "装货地址")
private String pickupAddress;
@Schema(description = "卸货地址")
private String unloadAddress;
@Schema(description = "货物数量(带单位)")
private String cargoQuantity;
@Schema(description = "运输方式文案:公路运输等")
private String transportType;
@Schema(description = "计划发货时间")
private String planShipTime;
@Schema(description = "计划完成时间")
private String planFinishTime;
@Schema(description = "合计货重")
private String totalWeight;
@Schema(description = "备注")
private String remark;
@Schema(description = "装卸点(详情返回)")
private List<DriverRoutePointVO> routePoints;
@Schema(description = "过程配置 JSON(详情返回,供前端兜底推导打卡节点)")
private String processJson;
@Data
@Schema(description = "司机端装卸点")
public static class DriverRoutePointVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "点位名称")
private String name;
@Schema(description = "详细地址")
private String address;
@Schema(description = "状态:pending/done/active")
private String status;
}
}
@@ -46,6 +46,10 @@ public class LoadingManageVO extends LoadingManage {
@Schema(description = "业务状态名称")
private String businessStatusName;
@TableField(exist = false)
@Schema(description = "是否存在司机拒绝接单(可重新派单)")
private Boolean driverRejected;
@TableField(exist = false)
@Schema(description = "运单号")
private String waybillNo;
@@ -30,6 +30,8 @@ import org.springblade.transport.pojo.entity.ProjectApply;
import java.io.Serial;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
/**
* 项目立项视图实体类
@@ -104,4 +106,16 @@ public class ProjectApplyVO extends ProjectApply {
@Schema(description = "风险计算额度基数")
private BigDecimal maxFundLimit;
@TableField(exist = false)
@Schema(description = "货物类型字典,公开页回显使用")
private List<Map<String, String>> cargoTypeOptions;
@TableField(exist = false)
@Schema(description = "运输类型字典,公开页回显使用")
private List<Map<String, String>> transportTypeOptions;
@TableField(exist = false)
@Schema(description = "结算方式字典,公开页回显使用")
private List<Map<String, String>> settlementModeOptions;
}
@@ -27,8 +27,11 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.TransportPlan;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
/**
@@ -72,5 +75,24 @@ public class TransportPlanVO extends TransportPlan {
@Schema(description = "计划调度生成的运单")
private List<WaybillVO> dispatchRows;
@TableField(exist = false)
@Schema(description = "计划开始日期起")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate planStartDateStart;
@TableField(exist = false)
@Schema(description = "计划开始日期止")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate planStartDateEnd;
@TableField(exist = false)
@Schema(description = "创建开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeStart;
@TableField(exist = false)
@Schema(description = "创建结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
}
@@ -0,0 +1,74 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Map;
/**
* 运单车辆实时定位结果
*
* @author Chill
*/
@Data
@Schema(description = "运单车辆实时定位结果")
public class WaybillLocateVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "运单ID")
private Long waybillId;
@Schema(description = "车牌号")
private String vehicleNo;
@Schema(description = "经度")
private BigDecimal longitude;
@Schema(description = "纬度")
private BigDecimal latitude;
@Schema(description = "地址")
private String address;
@Schema(description = "定位时间")
private String locateTime;
@Schema(description = "速度")
private String speed;
@Schema(description = "方向")
private String direction;
@Schema(description = "LBS原始数据")
private Map<String, Object> rawData;
}
@@ -0,0 +1,95 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* 运单历史轨迹结果
*
* @author Chill
*/
@Data
@Schema(description = "运单历史轨迹结果")
public class WaybillTrackVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "运单ID")
private Long waybillId;
@Schema(description = "车牌号")
private String vehicleNo;
@Schema(description = "开始日期")
private String startDate;
@Schema(description = "结束日期")
private String endDate;
@Schema(description = "轨迹点数量")
private Integer total;
@Schema(description = "轨迹点列表")
private List<WaybillTrackPointVO> points = new ArrayList<>();
@Data
@Schema(description = "轨迹点")
public static class WaybillTrackPointVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "车牌号")
private String vehicleNo;
@Schema(description = "经度")
private BigDecimal longitude;
@Schema(description = "纬度")
private BigDecimal latitude;
@Schema(description = "定位时间")
private String locateTime;
@Schema(description = "速度")
private String speed;
@Schema(description = "方向")
private String direction;
@Schema(description = "地址")
private String address;
}
}