feat: 新增航班管理列表页并支持时间格式化与跨日"+1"显示

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-08 18:56:05 +08:00
parent 06713190e0
commit abac0d28fa
12 changed files with 677 additions and 4 deletions

View File

@@ -151,6 +151,46 @@ class FlightBean : ICheck {
).noNull(scheduledTackOff)
}
// 预计起飞时间-时分
val estimatedTakeOffHM: String
get() {
return DateUtils.parseString(
estimatedTakeOff,
DevFinal.TIME.yyyyMMddHHmmss_HYPHEN,
"HH:mm"
).noNull(estimatedTakeOff)
}
// 计划降落时间-时分
val scheduledArrivalHM: String
get() {
return DateUtils.parseString(
scheduledArrival,
DevFinal.TIME.yyyyMMddHHmmss_HYPHEN,
"HH:mm"
).noNull(scheduledArrival)
}
// 预计降落时间-时分
val estimatedArrivalHM: String
get() {
return DateUtils.parseString(
estimatedArrival,
DevFinal.TIME.yyyyMMddHHmmss_HYPHEN,
"HH:mm"
).noNull(estimatedArrival)
}
// 实际降落时间-时分
val actualArrivalHM: String
get() {
return DateUtils.parseString(
actualArrival,
DevFinal.TIME.yyyyMMddHHmmss_HYPHEN,
"HH:mm"
).noNull(actualArrival)
}
// 航班服务种类(0:客机;1:货机;2:卡车)
var serviceType: String = ""
@@ -219,6 +259,50 @@ class FlightBean : ICheck {
return calendar.get(Calendar.DAY_OF_YEAR) > current.get(Calendar.DAY_OF_YEAR)
}
// 预计起飞 vs 计划起飞 是否跨日
fun isEstimatedTakeOffNextDay(): Boolean {
if (scheduledTackOff.isEmpty() || estimatedTakeOff.isEmpty()) return false
return try {
val calBase = DateUtils.getCalendar(DateUtils.parseDate(scheduledTackOff))
val calTarget = DateUtils.getCalendar(DateUtils.parseDate(estimatedTakeOff))
if (calTarget.get(Calendar.YEAR) > calBase.get(Calendar.YEAR)) true
else calTarget.get(Calendar.DAY_OF_YEAR) > calBase.get(Calendar.DAY_OF_YEAR)
} catch (e: Exception) { false }
}
// 实际起飞 vs 计划起飞 是否跨日
fun isActualTakeOffNextDay(): Boolean {
if (scheduledTackOff.isEmpty() || actualTakeOff.isEmpty()) return false
return try {
val calBase = DateUtils.getCalendar(DateUtils.parseDate(scheduledTackOff))
val calTarget = DateUtils.getCalendar(DateUtils.parseDate(actualTakeOff))
if (calTarget.get(Calendar.YEAR) > calBase.get(Calendar.YEAR)) true
else calTarget.get(Calendar.DAY_OF_YEAR) > calBase.get(Calendar.DAY_OF_YEAR)
} catch (e: Exception) { false }
}
// 预计降落 vs 计划降落 是否跨日
fun isEstimatedArrivalNextDay(): Boolean {
if (scheduledArrival.isEmpty() || estimatedArrival.isEmpty()) return false
return try {
val calBase = DateUtils.getCalendar(DateUtils.parseDate(scheduledArrival))
val calTarget = DateUtils.getCalendar(DateUtils.parseDate(estimatedArrival))
if (calTarget.get(Calendar.YEAR) > calBase.get(Calendar.YEAR)) true
else calTarget.get(Calendar.DAY_OF_YEAR) > calBase.get(Calendar.DAY_OF_YEAR)
} catch (e: Exception) { false }
}
// 实际降落 vs 计划降落 是否跨日
fun isActualArrivalNextDay(): Boolean {
if (scheduledArrival.isEmpty() || actualArrival.isEmpty()) return false
return try {
val calBase = DateUtils.getCalendar(DateUtils.parseDate(scheduledArrival))
val calTarget = DateUtils.getCalendar(DateUtils.parseDate(actualArrival))
if (calTarget.get(Calendar.YEAR) > calBase.get(Calendar.YEAR)) true
else calTarget.get(Calendar.DAY_OF_YEAR) > calBase.get(Calendar.DAY_OF_YEAR)
} catch (e: Exception) { false }
}
fun getCargoTypeName(): String {
return when (cargoType) {
"0" -> "国际货"

View File

@@ -184,8 +184,10 @@ object ARouterConstants {
/**
* 航班查询模块
*/
const val ACTIVITY_URL_HANG_BAN_QUERY = "/hb/HangBanQueryActivity" //航班查询模块
const val ACTIVITY_URL_HANG_BAN_QUERY_INFO = "/hb/HangBanQueryInfoActivity" //航班查询模块
const val ACTIVITY_URL_HANG_BAN_QUERY = "/hb/HangBanQueryActivity" //航班查询模块(旧版)
const val ACTIVITY_URL_HANG_BAN_QUERY_INFO = "/hb/HangBanQueryInfoActivity" //航班查询模块(旧版)
const val ACTIVITY_URL_HB_QUERY_LIST = "/hb/HbQueryListActivity" //航班管理 列表(新版)
const val ACTIVITY_URL_FLIGHT_QUERY_DETAILS = "/app/FlightQueryDetailsActivity" //航班详情
///////////////// 货物追踪模块
/**