From 646d8513d2eb7ee2212eaa888b7a9e1d710e1a0b Mon Sep 17 00:00:00 2001 From: weicw1996 Date: Thu, 22 Oct 2026 13:36:36 +0800 Subject: [PATCH] =?UTF-8?q?:white=5Fcheck=5Fmark:=20=E9=94=81=E5=AE=9A?= =?UTF-8?q?=E5=BE=85=E5=9B=9E=E5=8D=95=E7=A1=AE=E8=AE=A4=E8=BF=90=E5=8D=95?= =?UTF-8?q?=E7=9A=84=E3=80=8C=E6=9C=AA=E5=BC=80=E5=A7=8B=E8=BF=90=E8=BE=93?= =?UTF-8?q?=E3=80=8D=E6=96=87=E6=A1=88=E4=B8=8E=E5=9C=A8=E9=80=94=E5=8D=A1?= =?UTF-8?q?=E4=B8=8D=E5=8F=AF=E6=89=93=E5=8D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 两处都由 isPunchEnded 自动覆盖,测试只锁住它们不得回到「尚未开始运输」分支。 --- .../support/WaybillProcessSupportTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/blade-service/blade-transport/src/test/java/org/springblade/transport/support/WaybillProcessSupportTest.java b/blade-service/blade-transport/src/test/java/org/springblade/transport/support/WaybillProcessSupportTest.java index 568372be..9408bfd6 100644 --- a/blade-service/blade-transport/src/test/java/org/springblade/transport/support/WaybillProcessSupportTest.java +++ b/blade-service/blade-transport/src/test/java/org/springblade/transport/support/WaybillProcessSupportTest.java @@ -438,6 +438,22 @@ class WaybillProcessSupportTest { // 结束态由结束文案负责,两句话不能抢 assertNull(WaybillProcessSupport.punchNotStartedReason("completed")); assertNull(WaybillProcessSupport.punchNotStartedReason("cancelled")); + assertNull(WaybillProcessSupport.punchNotStartedReason("pending_return_confirm"), + "司机已打完末位卡,不能再被说成「尚未开始运输」"); + } + + @Test + @DisplayName("在途卡:待回单确认的运单与已完成同样不可打卡") + void transitCardOnPendingReturnConfirmWaybillIsVisibleButNotPunchable() { + LocalDateTime now = LocalDateTime.of(2026, 10, 20, 12, 0); + + WaybillProcessSupport.TransitCheckinDecision decision = + WaybillProcessSupport.evaluateTransitCheckin(TRANSPORT_JSON, "pending_return_confirm", null, now); + + assertTrue(decision.visible(), "卡片仍要下发,司机能回看"); + assertFalse(decision.punchEnabled(), "末位卡已打完,在途卡不能再提交"); + assertFalse(decision.doneToday()); + assertFalse(decision.dueToday()); } @Test