✨ 待回单确认运单归入已结束,打卡门禁给出专门文案

This commit is contained in:
2026-10-22 13:35:03 +08:00
parent 911393fb09
commit e0c65f4480
2 changed files with 14 additions and 6 deletions
@@ -136,14 +136,16 @@ public final class WaybillProcessSupport {
} }
/** /**
* 运单已结束:已完成或已取消。此后不再接受司机打卡。 * 运单已结束:已完成、已取消,或已打完末位卡停在待回单确认。此后不再接受司机打卡。
* <p> * <p>
* 只认这两个状态,大小写不敏感。草稿、待执行、待调度、调度中的运单司机仍要能打卡, * 只认这三个状态,大小写不敏感。草稿、待执行、待调度、调度中的运单司机仍要能打卡,
* 所以不能按 {@link #isTerminalBusinessStatus} 的「终态或调度中间态」口径判定。 * 所以不能按 {@link #isTerminalBusinessStatus} 的「终态或调度中间态」口径判定。
*/ */
public static boolean isPunchEnded(String businessStatus) { public static boolean isPunchEnded(String businessStatus) {
String status = stringVal(businessStatus); String status = stringVal(businessStatus);
return "completed".equalsIgnoreCase(status) || "cancelled".equalsIgnoreCase(status); return "completed".equalsIgnoreCase(status)
|| "cancelled".equalsIgnoreCase(status)
|| STATUS_PENDING_RETURN_CONFIRM.equalsIgnoreCase(status);
} }
/** /**
@@ -157,6 +159,9 @@ public final class WaybillProcessSupport {
if ("cancelled".equalsIgnoreCase(status)) { if ("cancelled".equalsIgnoreCase(status)) {
return "运单已取消"; return "运单已取消";
} }
if (STATUS_PENDING_RETURN_CONFIRM.equalsIgnoreCase(status)) {
return "运单待业务员确认回单";
}
return null; return null;
} }
@@ -351,12 +351,14 @@ class WaybillProcessSupportTest {
// ------------------------------------------------------------ 结束门禁 // ------------------------------------------------------------ 结束门禁
@Test @Test
@DisplayName("结束门禁:只认已完成与已取消,大小写不敏感") @DisplayName("结束门禁:已完成、已取消与待回单确认都算结束,大小写不敏感")
void punchEndedOnlyForCompletedAndCancelled() { void punchEndedForCompletedCancelledAndPendingReturnConfirm() {
assertTrue(WaybillProcessSupport.isPunchEnded("completed")); assertTrue(WaybillProcessSupport.isPunchEnded("completed"));
assertTrue(WaybillProcessSupport.isPunchEnded("COMPLETED")); assertTrue(WaybillProcessSupport.isPunchEnded("COMPLETED"));
assertTrue(WaybillProcessSupport.isPunchEnded("cancelled")); assertTrue(WaybillProcessSupport.isPunchEnded("cancelled"));
assertTrue(WaybillProcessSupport.isPunchEnded("Cancelled")); assertTrue(WaybillProcessSupport.isPunchEnded("Cancelled"));
assertTrue(WaybillProcessSupport.isPunchEnded("pending_return_confirm"),
"司机已打完末位卡,不能再打卡");
} }
@Test @Test
@@ -372,11 +374,12 @@ class WaybillProcessSupportTest {
} }
@Test @Test
@DisplayName("结束门禁文案:完成与取消各一句,非结束态没有文案") @DisplayName("结束门禁文案:完成、取消与待回单确认各一句,非结束态没有文案")
void punchEndedReasonOnlyForEndedStatuses() { void punchEndedReasonOnlyForEndedStatuses() {
assertEquals("运单已完成", WaybillProcessSupport.punchEndedReason("completed")); assertEquals("运单已完成", WaybillProcessSupport.punchEndedReason("completed"));
assertEquals("运单已完成", WaybillProcessSupport.punchEndedReason(" COMPLETED ")); assertEquals("运单已完成", WaybillProcessSupport.punchEndedReason(" COMPLETED "));
assertEquals("运单已取消", WaybillProcessSupport.punchEndedReason("cancelled")); assertEquals("运单已取消", WaybillProcessSupport.punchEndedReason("cancelled"));
assertEquals("运单待业务员确认回单", WaybillProcessSupport.punchEndedReason("pending_return_confirm"));
assertNull(WaybillProcessSupport.punchEndedReason(null)); assertNull(WaybillProcessSupport.punchEndedReason(null));
assertNull(WaybillProcessSupport.punchEndedReason("")); assertNull(WaybillProcessSupport.punchEndedReason(""));
assertNull(WaybillProcessSupport.punchEndedReason(" ")); assertNull(WaybillProcessSupport.punchEndedReason(" "));