✨ 运单里程改为末位打卡采集,含里程计费时司机必填

This commit is contained in:
2026-10-24 21:29:16 +08:00
parent b36abe9e4b
commit 0c05c3c385
23 changed files with 341 additions and 25 deletions
@@ -54,6 +54,15 @@ public class NodeSubmitDTO implements Serializable {
@Schema(description = "数量(件)")
private String quantity;
/**
* 里程(公里):只由末位打卡节点采集,运单计费规则含里程时必填。
* <p>
* 用字符串接收——旧版小程序不传、新版按输入框传字符串,两种都要能进;
* 非末位节点收到该值时忽略,不报错。
*/
@Schema(description = "里程(公里),末位打卡节点采集")
private String mileage;
@Schema(description = "备注")
private String remark;
@@ -27,6 +27,7 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@@ -84,6 +85,13 @@ public class WaybillPunchRecordSaveRequest implements Serializable {
@Schema(description = "数量(件)")
private String quantity;
/**
* 里程(公里):null 表示不改动运单里程;只在末位打卡节点上生效。
* 管理端为选填,留空即保持原值。
*/
@Schema(description = "里程(公里),为空表示不改")
private BigDecimal mileage;
@Schema(description = "备注")
private String remark;
@@ -11,6 +11,7 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@@ -94,6 +95,17 @@ public class DriverPunchNodeVO implements Serializable {
@Schema(description = "数量(件)")
private String quantity;
/**
* 本节点是否需要采集里程:末位可打卡节点、且运单计费规则含里程(应收或应付任一侧)。
* <p>
* 判据与 finishOnPunch、自动完成同源的「末位」定义;客户端只认这个标记,不自己推末位。
*/
@Schema(description = "本节点是否需要采集里程(末位可打卡节点且计费规则含里程)")
private Boolean needMileage;
@Schema(description = "运单里程(公里),needMileage 为真时用于回显")
private BigDecimal mileage;
@Schema(description = "已上传凭证图(已打卡回显)")
private List<DriverPunchPhotoVO> photos = new ArrayList<>();
@@ -9,6 +9,7 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@@ -55,6 +56,18 @@ public class WaybillPunchRecordItemVO implements Serializable {
@Schema(description = "数量")
private String quantity;
/**
* 本条记录是否采集里程:末位打卡节点、且运单计费规则含里程。只有该条为真时管理端才展示里程项。
*/
@Schema(description = "本条是否需要采集里程(末位打卡节点且计费规则含里程)")
private Boolean needMileage;
@Schema(description = "运单里程(公里),needMileage 为真时用于回显")
private BigDecimal mileage;
@Schema(description = "里程是否已冻结(运单已生成结算单,只能看不能改)")
private Boolean mileageLocked;
@Schema(description = "备注")
private String remark;