refactor: 国际进港舱单列表改为通过FID查询

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-09 11:48:57 +08:00
parent af49cf4fb6
commit 8c774ef3a3

View File

@@ -130,9 +130,62 @@ class IntImpManifestViewModel : BasePageViewModel() {
/**
* 搜索按钮点击
* 先查询航班信息获取FID再刷新列表
*/
fun searchClick() {
refresh()
val fdate = flightDate.value
val fno = flightNo.value
if (!fdate.isNullOrEmpty() && !fno.isNullOrEmpty()) {
val key = "$fdate-$fno"
if (key != lastQueriedFlight || fid.isEmpty()) {
// 先查询航班信息获取FID
lastQueriedFlight = key
launchLoadingCollect({
NetApply.api.getGjFlightBean(
mapOf(
"fdate" to fdate,
"fno" to fno,
"ieFlag" to "I",
).toRequestBody()
)
}) {
onSuccess = {
if (it.verifySuccess() && it.data != null) {
val flight = it.data!!
fid = flight.fid.noNull()
fdep.value = flight.fdest.noNull()
val list = mutableListOf(
KeyValue(flight.fdep.noNull(), flight.fdep.noNull()),
)
if (!flight.jtz.isNullOrEmpty()) {
list.add(KeyValue(flight.jtz.noNull(), flight.jtz.noNull()))
}
sendAddressList.value = list
sendAddress.value = flight.fdep.noNull()
} else {
fid = ""
fdep.value = ""
sendAddressList.value = emptyList()
sendAddress.value = ""
showToast(it.msg.noNull("获取航班信息失败"))
}
refresh()
}
onFailed = { _, _ ->
fid = ""
fdep.value = ""
sendAddressList.value = emptyList()
sendAddress.value = ""
refresh()
}
}
} else {
refresh()
}
} else {
fid = ""
refresh()
}
}
/**
@@ -274,12 +327,12 @@ class IntImpManifestViewModel : BasePageViewModel() {
/**
* 获取数据重写BasePageViewModel
* 通过FID查询列表而不是直接通过航班号和航班日期
*/
override fun getData() {
// 构建搜索条件
// 构建搜索条件使用FID代替fdate/fno
val filterParams = mapOf(
"fdate" to flightDate.value?.ifEmpty { null },
"fno" to flightNo.value?.ifEmpty { null },
"fid" to fid.ifEmpty { null },
"sendAddress" to sendAddress.value?.ifEmpty { null },
"fdep" to fdep.value?.ifEmpty { null },
"wbNo" to waybillNo.value?.ifEmpty { null }