✨ 末位打卡卡上完成运单,后台补「确认回单」入口

司机端打卡页的完成动作从底栏挪到末位卡上:节点下发时按与 submitNode 自动完成同一份判据
(末位可打卡节点 + 到货/卸货/签收 + 回单不要求业务员确认)给出「打这张卡即完成运单」,
客户端据此把按钮文案改成「完成运单」。两处判据同源,否则会出现「按钮写着完成运单、
打下去这张运单没完成」。

回单节点配成「需业务员确认」时,司机打完末位卡不置完成,此前全仓没有任何入口让业务员确认后置完成,
运单只能人工去后台点完成。新增 POST /waybill-manage/confirm-return:校验该运单的回单确实要求确认、
司机打卡节点(在途除外——它是频次打卡节点、不是必经一步)全部已打卡、无未了结异常,再走既有的
完成逻辑(改状态 + 生成应收应付 + 尝试完成配载单)。完成接口本身不要求节点打卡,不校验这两件事
就等于借这个入口绕过打卡门禁与异常门禁。本轮不做撤销。

新增 DriverPunchFinishFlagTest(4 项)与 WaybillConfirmReturnTest(5 项);
blade-transport 全量 385 项用例通过。
This commit is contained in:
2026-10-18 12:14:54 +08:00
parent 7d951d5b04
commit 4011577491
8 changed files with 506 additions and 0 deletions
@@ -70,6 +70,9 @@ public class DriverPunchNodeVO implements Serializable {
@Schema(description = "是否展示该卡(在途可能因频次/时段隐藏)")
private Boolean visible;
@Schema(description = "打这张卡即完成运单:该运单的末位可打卡节点,且过程配置不要求业务员确认回单")
private Boolean finishOnPunch;
@Schema(description = "是否默认展开(仅第一个可打卡节点)")
private Boolean defaultExpanded;