From fa6c3f473e43c6ec6bba6f5ced2e7cd15c1e554c Mon Sep 17 00:00:00 2001 From: YANG JIANKUAN Date: Wed, 14 Oct 2026 20:21:04 -0700 Subject: [PATCH] =?UTF-8?q?fix(gjc):=20=E8=AE=A1=E9=87=8D=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E8=BF=90=E5=8D=95=E8=AF=A6=E6=83=85=E8=A1=A5=E9=BD=90?= =?UTF-8?q?=E8=88=AA=E7=8F=AD=E6=97=A5=E6=9C=9F=E3=80=81=E8=88=AA=E7=8F=AD?= =?UTF-8?q?=E5=8F=B7=E3=80=81=E8=88=AA=E7=A8=8B=E4=B8=8E=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit IntExpCheckIn/checked/pageQuery 出参中 fdate/fno/range/businessType/remark 恒为空, 详情页只展示列表传入的数据,因此全部显示 "-"。进入后按 11 位运单号调用 IntExpCheckIn/queryWbByNo 补齐空值,业务类型代码按国际出港字典(IO)转中文名。 Refs: 禅道 Bug #622 Co-Authored-By: Claude Opus 5.5 --- .../viewModel/GjcWeighingWbDetailViewModel.kt | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcWeighingWbDetailViewModel.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcWeighingWbDetailViewModel.kt index 0de37cf..2bf8a50 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcWeighingWbDetailViewModel.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcWeighingWbDetailViewModel.kt @@ -5,14 +5,18 @@ import androidx.lifecycle.MutableLiveData import com.lukouguoji.module_base.base.BaseViewModel import com.lukouguoji.module_base.bean.GjcWeighingRecordBean import com.lukouguoji.module_base.common.Constant +import com.lukouguoji.module_base.http.net.NetApply +import com.lukouguoji.module_base.ktx.formatDate +import com.lukouguoji.module_base.ktx.launchCollect import com.lukouguoji.module_base.ktx.showToast +import com.lukouguoji.module_base.util.DictUtils /** * 国际出港计重-运单详情 ViewModel(5.5寸手机版专属页面) * - * 只读展示计重记录列表传入的运单信息,无接口请求。 - * 注:设计稿中的「通道号」字段在 /IntExpCheckIn/checked/pageQuery 出参中不存在(后端缺口, - * 见接口问题清单),布局侧空值兜底显示 "-"。 + * 先展示计重记录列表传入的运单信息;/IntExpCheckIn/checked/pageQuery 出参中 + * 航班日期/航班号/航程/业务类型/备注恒为空(Bug #622),再按 11 位运单号调 + * /IntExpCheckIn/queryWbByNo 补齐这些字段(只补空值,不覆盖列表已有数据)。 */ class GjcWeighingWbDetailViewModel : BaseViewModel() { @@ -23,8 +27,37 @@ class GjcWeighingWbDetailViewModel : BaseViewModel() { val data = intent.getSerializableExtra(Constant.Key.BEAN) as? GjcWeighingRecordBean if (data != null) { bean.value = data + loadWaybillInfo(data) } else { showToast("参数错误") } } + + private fun loadWaybillInfo(data: GjcWeighingRecordBean) { + if (data.wbNo.isEmpty()) return + launchCollect({ NetApply.api.getIntExpCheckInWbByNo(data.wbNo) }) { + onSuccess = { result -> + result.data?.let { wb -> + if (data.fdate.isEmpty()) data.fdate = wb.fdate.formatDate() + if (data.fno.isEmpty()) data.fno = wb.fno.orEmpty() + if (data.range.isEmpty()) data.range = wb.range.orEmpty() + if (data.businessType.isEmpty()) data.businessType = wb.businessType.orEmpty() + if (data.businessName.isEmpty()) data.businessName = wb.businessName.orEmpty() + if (data.remark.isEmpty()) data.remark = wb.remark.orEmpty() + bean.value = data + fillBusinessName(data) + } + } + } + } + + /** queryWbByNo 只返回业务类型代码(如 ANR),按国际出港业务类型字典转成中文名(与开始计重页同源) */ + private fun fillBusinessName(data: GjcWeighingRecordBean) { + if (data.businessName.isNotEmpty() || data.businessType.isEmpty()) return + DictUtils.getBusinessTypeList(type = "IO", addAll = false) { list -> + val name = list.firstOrNull { it.value == data.businessType }?.key ?: return@getBusinessTypeList + data.businessName = name + bean.postValue(data) + } + } }