feat: 国际出港 出港计重

This commit is contained in:
2026-01-17 21:05:48 +08:00
parent d6be019c3a
commit a52259f951
3 changed files with 81 additions and 1 deletions

View File

@@ -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

View File

@@ -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 = ""
}
}
}
/**
* 航班日期点击
*/

View File

@@ -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}"