From d2340d46fb3d265baff37aeada4e1a90b93e9d8e Mon Sep 17 00:00:00 2001 From: YANG JIANKUAN Date: Fri, 9 Oct 2026 07:31:04 -0700 Subject: [PATCH] =?UTF-8?q?feat(=E5=87=BA=E6=B8=AF=E6=9F=A5=E8=AF=A2):=20?= =?UTF-8?q?=E4=B8=89=E6=A0=BC=E7=BB=9F=E8=AE=A1=E5=8F=96=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E7=AB=AF=E5=88=86=E9=A1=B9=EF=BC=8C=E7=AD=9B=E9=80=89=E8=A1=A5?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E7=B1=BB=E5=9E=8B=EF=BC=8C=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E9=94=81=E5=AE=9A=E7=8A=B6=E6=80=81/?= =?UTF-8?q?=E8=AE=A1=E8=B4=B9=E9=87=8D=E9=87=8F=EF=BC=88=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E6=B8=85=E5=8D=95=20#21/#22=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - #21 已入库/已离港改取 pageQueryTotal 出参 storedNumber/departedNumber(全量口径),删除客户端计数 - #21「起始时间参数无意义」:内网实测 beginDate/endDate 仅在携带 dateState 时生效, 手机筛选新增「日期类型」(入库/离港,默认入库,与主干平板一致),有起止日期时才携带 dateState - #22 后端确认无需展示:运单信息移除「锁定状态」「计费重量」,件重区改两列对齐 - 内网实测:当日入库 2/2/0;切换离港 0/0/0,与直调一致 Co-Authored-By: Claude Opus 5.5 --- .../gjc/viewModel/GjcQueryViewModel.kt | 39 ++++++++----------- .../main/res/layout/activity_gjc_query.xml | 22 ++++++++--- .../res/layout/fragment_gjc_query_waybill.xml | 33 +++++----------- 3 files changed, 41 insertions(+), 53 deletions(-) diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcQueryViewModel.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcQueryViewModel.kt index d5c112b..9d1d89a 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcQueryViewModel.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcQueryViewModel.kt @@ -7,7 +7,6 @@ import androidx.lifecycle.MutableLiveData import com.lukouguoji.gjc.R import com.lukouguoji.gjc.holder.GjcQueryViewHolder import com.lukouguoji.module_base.base.BasePageViewModel -import com.lukouguoji.module_base.bean.GjcMaWb import com.lukouguoji.module_base.common.Constant import com.lukouguoji.module_base.http.net.NetApply import com.lukouguoji.module_base.ktx.launchCollect @@ -81,14 +80,17 @@ class GjcQueryViewModel : BasePageViewModel() { // 特码下拉列表(设计稿筛选弹层为下拉;平板筛选为文本输入,不加载) val specialCodeList = MutableLiveData>(emptyList()) - // 三格统计:已入库 / 已离港(总票数复用 totalCount,为服务端全量口径) - // 后端无分项统计出参,且文档定义的 isFclose 入参实测被 pageQuery/pageQueryTotal 静默忽略 - // (2026-07-31 内网 A/B 验证,见接口问题清单)——已入库/已离港暂为「已加载数据」客户端计数口径 + // 三格统计:总票数 / 已入库 / 已离港,均取 pageQueryTotal 出参(wbNumber / storedNumber / departedNumber), + // 与列表同条件、服务端全量口径 val storedCount = MutableLiveData("0") val departedCount = MutableLiveData("0") + // 日期类型(0:入库,1:离港),与主干平板端一致。后端 beginDate/endDate 仅在携带 dateState 时生效 + // (内网实测:不带 dateState 时起止日期被忽略)。平板布局(本分支)不绑定,phoneExtras 关闭时不进请求 + val dateState = MutableLiveData("0") + val dateStateList = MutableLiveData(listOf(KeyValue("入库", "0"), KeyValue("离港", "1"))) + private var phoneExtrasEnabled = false - private var phoneLoadedList: List = emptyList() /** * 手机形态专属初始化(Activity 在 DeviceUtil.isPhone() 时调用)。 @@ -186,10 +188,15 @@ class GjcQueryViewModel : BasePageViewModel() { * 核心方法:调用API获取数据并转换PageInfo为BaseListBean */ override fun getData() { + // 手机版:日期类型,仅在有起止日期时携带(平板 phoneExtrasEnabled 恒 false → null 不进请求) + val hasDate = !flightDateStart.value.isNullOrEmpty() || !flightDateEnd.value.isNullOrEmpty() + val dateStateParam = if (phoneExtrasEnabled && hasDate) dateState.value?.toIntOrNull() else null + // 构建查询参数(列表接口) val listParams = mapOf( "pageNum" to pageModel.page, "pageSize" to pageModel.limit, + "dateState" to dateStateParam, "beginDate" to flightDateStart.value!!.ifEmpty { null }, "endDate" to flightDateEnd.value!!.ifEmpty { null }, "agentCode" to agentId.value!!.ifEmpty { null }, @@ -206,6 +213,7 @@ class GjcQueryViewModel : BasePageViewModel() { // 构建查询参数(统计接口 - 使用相同的搜索条件) val totalParams = mapOf( + "dateState" to dateStateParam, "beginDate" to flightDateStart.value!!.ifEmpty { null }, "endDate" to flightDateEnd.value!!.ifEmpty { null }, "agentCode" to agentId.value!!.ifEmpty { null }, @@ -227,14 +235,6 @@ class GjcQueryViewModel : BasePageViewModel() { onSuccess = { pageInfo -> // ⚠️ 核心:使用toBaseListBean()转换PageInfo为BaseListBean pageModel.handleListBean(pageInfo.toBaseListBean()) - - // 手机三格统计:对已加载数据做客户端计数(平板不触发) - if (phoneExtrasEnabled) { - val pageItems = pageInfo.list ?: emptyList() - phoneLoadedList = - if (pageModel.page <= 1) pageItems else phoneLoadedList + pageItems - updatePhoneCounts() - } } } @@ -247,20 +247,13 @@ class GjcQueryViewModel : BasePageViewModel() { totalCount.value = (data?.wbNumber ?: 0).toString() totalPc.value = (data?.totalPc ?: 0).toString() totalWeight.value = (data?.totalWeight ?: 0.0).toString() + // 手机三格统计分项(平板布局不绑定,无影响) + storedCount.value = (data?.storedNumber ?: 0).toString() + departedCount.value = (data?.departedNumber ?: 0).toString() } } } - /** - * 手机三格统计(已入库/已离港):与卡片状态标签同一判定口径(fclose / opDate), - * 统计范围为已加载的列表数据。 - */ - private fun updatePhoneCounts() { - departedCount.value = phoneLoadedList.count { it.isQueryDeparted }.toString() - storedCount.value = - phoneLoadedList.count { !it.isQueryDeparted && it.isQueryStored }.toString() - } - /** * 处理扫码结果 */ diff --git a/module_gjc/src/main/res/layout/activity_gjc_query.xml b/module_gjc/src/main/res/layout/activity_gjc_query.xml index e1aefee..9dff0c7 100644 --- a/module_gjc/src/main/res/layout/activity_gjc_query.xml +++ b/module_gjc/src/main/res/layout/activity_gjc_query.xml @@ -239,21 +239,31 @@ setOnResetClick="@{(v)-> viewModel.resetFilter()}" title='@{"筛选条件"}'> - + + + + - + diff --git a/module_gjc/src/main/res/layout/fragment_gjc_query_waybill.xml b/module_gjc/src/main/res/layout/fragment_gjc_query_waybill.xml index 1c106f1..4bc2c81 100644 --- a/module_gjc/src/main/res/layout/fragment_gjc_query_waybill.xml +++ b/module_gjc/src/main/res/layout/fragment_gjc_query_waybill.xml @@ -11,8 +11,8 @@ 数据全部来自既有 viewModel.maWbData(IntExpSearch/detail 的 maWb+maWbM 合并 Map), 取值统一走 viewModel.str()/dec() 帮助方法(空值兜底 "-")。 - 按设计稿新增展示的字段(承运人/始发站/中转站/目的站/UN编号/锁定状态/计费重量), - 其中锁定状态(lockStatus)与计费重量(cashWeight)在接口文档中无定义,实机核对后如缺失记入问题清单。 + 按设计稿新增展示的字段(承运人/始发站/中转站/目的站/UN编号); + 锁定状态与计费重量后端确认无需展示,已移除(问题清单 #22)。 入库件数/入库重量为 warehouseList 各批次求和(viewModel.inPcTotal/inWeightTotal)。 --> @@ -167,20 +167,13 @@ - + - - + + @@ -286,7 +284,7 @@ android:layout_marginBottom="12dp" android:background="@color/phone_divider" /> - + - - @@ -336,12 +327,6 @@ title='@{"入库重量"}' value="@{viewModel.inWeightTotal}" /> - - -