feat: 国际出港 出港计重
This commit is contained in:
@@ -897,6 +897,21 @@ interface Api {
|
||||
@POST("IntExpCheckIn/pageQueryTotal")
|
||||
suspend fun getGjcWeighingStatistics(@Body data: RequestBody): BaseResultBean<GjcWeighingStatisticsBean>
|
||||
|
||||
/**
|
||||
* 国际出港待计重-运单号模糊查询(用于自动补全)
|
||||
* 接口路径: /IntExpCheckIn/queryWbNoList
|
||||
*/
|
||||
@POST("IntExpCheckIn/queryWbNoList")
|
||||
suspend fun getIntExpCheckInWbNoList(@Body data: RequestBody): BaseResultBean<List<String>>
|
||||
|
||||
/**
|
||||
* 国际出港待计重-根据11位具体运单号查询运单信息
|
||||
* 接口路径: /IntExpCheckIn/queryWbByNo
|
||||
* @param wbNo 11位运单号
|
||||
*/
|
||||
@POST("IntExpCheckIn/queryWbByNo")
|
||||
suspend fun getIntExpCheckInWbByNo(@Query("wbNo") wbNo: String): BaseResultBean<GjcMaWb>
|
||||
|
||||
/**
|
||||
* 国际出港待计重-开始计重-根据wbId查询详情
|
||||
* 接口路径: /IntExpCheckIn/queryWbById
|
||||
|
||||
@@ -36,12 +36,15 @@ import java.util.Date
|
||||
*/
|
||||
class GjcWeighingStartViewModel : BaseViewModel() {
|
||||
|
||||
// 运单ID(从列表页传入)
|
||||
// 运单ID(从列表页传入,或通过运单号查询获得)
|
||||
var maWbId: Long = 0
|
||||
|
||||
// 运单数据Bean
|
||||
val maWbBean = MutableLiveData(GjcMaWb())
|
||||
|
||||
// 用于防止重复查询的标记
|
||||
private var lastQueriedWbNo: String = ""
|
||||
|
||||
// 航班日期(格式化为字符串用于DataBinding)
|
||||
val flightDate = MutableLiveData<String>(DateUtils.getCurrentTime().formatDate())
|
||||
|
||||
@@ -185,6 +188,67 @@ class GjcWeighingStartViewModel : BaseViewModel() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 运单号输入完成时调用(添加模式专用)
|
||||
* 当用户输入完整运单号后,自动根据运单号查询并填充表单
|
||||
*/
|
||||
fun onWaybillNoInputComplete() {
|
||||
val wbNo = maWbBean.value?.wbNo ?: ""
|
||||
|
||||
// 验证运单号是否为空
|
||||
if (wbNo.isEmpty()) {
|
||||
return
|
||||
}
|
||||
|
||||
// 防止重复查询
|
||||
if (wbNo == lastQueriedWbNo) {
|
||||
return
|
||||
}
|
||||
|
||||
// 验证运单号长度(11位)
|
||||
if (wbNo.length != 11) {
|
||||
showToast("请输入完整的11位运单号")
|
||||
return
|
||||
}
|
||||
|
||||
// 更新查询标记
|
||||
lastQueriedWbNo = wbNo
|
||||
|
||||
// 直接根据运单号查询运单详情
|
||||
launchLoadingCollect({ NetApply.api.getIntExpCheckInWbByNo(wbNo) }) {
|
||||
onSuccess = { result ->
|
||||
val data = result.data
|
||||
if (data != null) {
|
||||
// 保存 maWbId
|
||||
maWbId = data.maWbId ?: 0
|
||||
|
||||
// 更新整个 maWbBean
|
||||
maWbBean.value = data
|
||||
|
||||
// 更新航班日期字符串
|
||||
flightDate.value = data.fdate?.formatDate() ?: ""
|
||||
|
||||
// 更新备注
|
||||
pageRemark.value = data.remark
|
||||
|
||||
// 加载实时计重数据(如果 maWbId 有效)
|
||||
if (maWbId > 0) {
|
||||
loadRealTimeRecord()
|
||||
}
|
||||
} else {
|
||||
showToast("未找到该运单信息")
|
||||
// 清空查询标记,允许重新查询
|
||||
lastQueriedWbNo = ""
|
||||
}
|
||||
}
|
||||
onFailed = { code, msg ->
|
||||
showToast("查询失败: $msg")
|
||||
// 清空查询标记,允许重新查询
|
||||
lastQueriedWbNo = ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 航班日期点击
|
||||
*/
|
||||
|
||||
@@ -64,6 +64,7 @@
|
||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||
hint='@{"请输入运单号"}'
|
||||
required="@{true}"
|
||||
setRefreshCallBack="@{viewModel::onWaybillNoInputComplete}"
|
||||
title='@{"运单号"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
|
||||
Reference in New Issue
Block a user