feat: 国际出港 出港计重
This commit is contained in:
@@ -897,6 +897,21 @@ interface Api {
|
|||||||
@POST("IntExpCheckIn/pageQueryTotal")
|
@POST("IntExpCheckIn/pageQueryTotal")
|
||||||
suspend fun getGjcWeighingStatistics(@Body data: RequestBody): BaseResultBean<GjcWeighingStatisticsBean>
|
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查询详情
|
* 国际出港待计重-开始计重-根据wbId查询详情
|
||||||
* 接口路径: /IntExpCheckIn/queryWbById
|
* 接口路径: /IntExpCheckIn/queryWbById
|
||||||
|
|||||||
@@ -36,12 +36,15 @@ import java.util.Date
|
|||||||
*/
|
*/
|
||||||
class GjcWeighingStartViewModel : BaseViewModel() {
|
class GjcWeighingStartViewModel : BaseViewModel() {
|
||||||
|
|
||||||
// 运单ID(从列表页传入)
|
// 运单ID(从列表页传入,或通过运单号查询获得)
|
||||||
var maWbId: Long = 0
|
var maWbId: Long = 0
|
||||||
|
|
||||||
// 运单数据Bean
|
// 运单数据Bean
|
||||||
val maWbBean = MutableLiveData(GjcMaWb())
|
val maWbBean = MutableLiveData(GjcMaWb())
|
||||||
|
|
||||||
|
// 用于防止重复查询的标记
|
||||||
|
private var lastQueriedWbNo: String = ""
|
||||||
|
|
||||||
// 航班日期(格式化为字符串用于DataBinding)
|
// 航班日期(格式化为字符串用于DataBinding)
|
||||||
val flightDate = MutableLiveData<String>(DateUtils.getCurrentTime().formatDate())
|
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
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
hint='@{"请输入运单号"}'
|
hint='@{"请输入运单号"}'
|
||||||
required="@{true}"
|
required="@{true}"
|
||||||
|
setRefreshCallBack="@{viewModel::onWaybillNoInputComplete}"
|
||||||
title='@{"运单号"}'
|
title='@{"运单号"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
|||||||
Reference in New Issue
Block a user