feat(出港计重): 对接后端统计分项/计重人/通道号/托盘字段,筛选对齐平板(问题清单 #12~#18)

- #12 三格统计改取 pageQueryTotal 出参 waitCheckInNumber/checkingNumber(一次请求),
  不再依赖 checkIn 入参过滤(内网实测 pageQuery 的 checkIn 过滤仍被忽略,统计出参正确)
- #13 待计重筛选对齐平板:航班日期/代理人/特码(移除通道号/承运人/运单类型)
- #14 计重记录筛选对齐平板:航班日期/代理人/特码(移除入库日期起止;dest/opId 实测被忽略一并移除)
- #15 运单详情「通道号」绑 checked/pageQuery 出参 passageWay
- #16 计重明细/修改记录「计重人」绑 listRecordByWh 出参 opUserName(回退 opId)
- #17 arriveFlag 已回填,「已提前运抵」置灰态生效(无需改代码,实机确认)
- #18 托盘改用平板同款 trayNumber + trayTotalWeight(= 数量 × 自重,自重默认 18kg);
  记录卡片/修改记录托盘自重绑 trayTotalWeight;修复托盘输入框 Double 回写致光标跳位(输 18 存成 81)
- 内网实测:三格 6/5/1;分托计重 trayNumber=2/trayTotalWeight=36 落库;修改记录保存 18.0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
YANG JIANKUAN
2026-10-09 03:45:18 -07:00
parent 415b685a85
commit 40edbe7c67
16 changed files with 105 additions and 152 deletions

View File

@@ -255,34 +255,16 @@
setOnResetClick="@{(v)-> activity.resetFilter()}"
title='@{"筛选条件"}'>
<!-- 通道号(后端暂无查询入参,预留,见接口问题清单) -->
<com.lukouguoji.module_base.ui.weight.phone.PhoneDataLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
hint='@{"请选择通道号"}'
list="@{viewModel.channelList}"
title='@{"通道号"}'
type="@{PhoneDataLayoutType.SPINNER}"
value="@={viewModel.channelFilter}" />
<!-- 筛选项与平板端查询参数保持一致:fdate / agentCode / spCode(运单号、航班号走顶部搜索框) -->
<!-- 承运人(后端暂无查询入参,预留,见接口问题清单) -->
<!-- 航班日期(复用既有 flightDate,手机默认空 = 全部) -->
<com.lukouguoji.module_base.ui.weight.phone.PhoneDataLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
hint='@{"请输入承运人"}'
title='@{"承运人"}'
type="@{PhoneDataLayoutType.INPUT}"
value="@={viewModel.carrierFilter}" />
<!-- 运单类型(后端暂无查询入参,预留,见接口问题清单) -->
<com.lukouguoji.module_base.ui.weight.phone.PhoneDataLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
hint='@{"请选择运单类型"}'
list="@{viewModel.awbTypeList}"
title='@{"运单类型"}'
type="@{PhoneDataLayoutType.SPINNER}"
value="@={viewModel.awbTypeFilter}" />
hint='@{"请选择航班日期"}'
title='@{"航班日期"}'
type="@{PhoneDataLayoutType.DATE}"
value="@={viewModel.flightDate}" />
<!-- 代理人(复用既有 agentCode 查询字段) -->
<com.lukouguoji.module_base.ui.weight.phone.PhoneDataLayout
@@ -294,6 +276,16 @@
type="@{PhoneDataLayoutType.SPINNER}"
value="@={viewModel.agentCode}" />
<!-- 特码(复用既有 spCode 查询字段) -->
<com.lukouguoji.module_base.ui.weight.phone.PhoneDataLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
hint='@{"请选择特码"}'
list="@{viewModel.spCodeList}"
title='@{"特码"}'
type="@{PhoneDataLayoutType.SPINNER}"
value="@={viewModel.spCode}" />
</com.lukouguoji.module_base.ui.weight.phone.PhoneFilterPanel>
</FrameLayout>

View File

@@ -6,7 +6,8 @@
变量 viewModel / activity / editRecord 与平板一致;保留 Activity 中引用的控件 id:recyclerView。
交互差异(业务逻辑全部复用 GjcWeighingRecordDetailsViewModel):
· 顶部卡片:运单号 + 总件数/总重量/托盘总重(totalCarWeight 为手机专属统计字段)
· 顶部卡片:运单号 + 总件数/总重量/托盘总重(totalCarWeight = 各记录 trayTotalWeight 之和,手机专属统计字段)
· 托盘自重绑 trayTotalWeight(与平板端一致,后端 listRecordByWh / updateRecordList 均支持)
· 每条记录卡片带「修改」→ 全屏「修改记录」覆层(isEditMode 驱动显隐,
平板端该状态驱动列表内联编辑,互不影响);保存走 onPhoneSaveClick(成功后留在本页)
-->
@@ -217,15 +218,15 @@
required="@{true}"
title='@{"托盘自重(kg)"}'
type="@{PhoneFormRowType.INPUT}"
value="@={editRecord.carWeightStr}" />
value="@={editRecord.trayTotalWeightStr}" />
<!-- 计重人:接口出参仅有操作员编码(无姓名,后端缺口见接口问题清单) -->
<!-- 计重人:opUserName 姓名,为空回退 opId -->
<com.lukouguoji.module_base.ui.weight.phone.PhoneFormRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
title='@{"计重人"}'
type="@{PhoneFormRowType.TEXT}"
value="@{editRecord.opId}" />
value="@{editRecord.opUserDisplay}" />
<com.lukouguoji.module_base.ui.weight.phone.PhoneFormRow
android:layout_width="match_parent"

View File

@@ -238,22 +238,14 @@
setOnResetClick="@{(v)-> activity.resetFilter()}"
title='@{"筛选条件"}'>
<!-- 入库日期起/止:后端暂无查询入参,预留(见接口问题清单) -->
<!-- 航班日期(与平板端查询参数 fdate 一致;后端不提供入库日期范围入参) -->
<com.lukouguoji.module_base.ui.weight.phone.PhoneDataLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
hint='@{"请选择入库日期"}'
title='@{"入库日期起"}'
hint='@{"请选择航班日期"}'
title='@{"航班日期"}'
type="@{PhoneDataLayoutType.DATE}"
value="@={viewModel.checkInDateStart}" />
<com.lukouguoji.module_base.ui.weight.phone.PhoneDataLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
hint='@{"请选择入库日期"}'
title='@{"入库日期止"}'
type="@{PhoneDataLayoutType.DATE}"
value="@={viewModel.checkInDateEnd}" />
value="@={viewModel.flightDate}" />
<!-- 代理人(复用既有 agentCode 查询字段) -->
<com.lukouguoji.module_base.ui.weight.phone.PhoneDataLayout
@@ -275,25 +267,6 @@
type="@{PhoneDataLayoutType.SPINNER}"
value="@={viewModel.spCode}" />
<!-- 目的站(后端支持入参 dest) -->
<com.lukouguoji.module_base.ui.weight.phone.PhoneDataLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
hint='@{"请输入目的站"}'
title='@{"目的站"}'
type="@{PhoneDataLayoutType.INPUT}"
value="@={viewModel.destFilter}" />
<!-- 计重人(后端支持入参 opId) -->
<com.lukouguoji.module_base.ui.weight.phone.PhoneDataLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
hint='@{"全部"}'
list="@{viewModel.whsUserList}"
title='@{"计重人"}'
type="@{PhoneDataLayoutType.SPINNER}"
value="@={viewModel.opUserFilter}" />
</com.lukouguoji.module_base.ui.weight.phone.PhoneFilterPanel>
</FrameLayout>

View File

@@ -9,8 +9,8 @@
交互差异(业务逻辑全部复用 GjcWeighingStartViewModel):
· 手机版从待计重卡片进入(必带 maWbId),故不做运单号输入行
· 平板「地磅称重」输入 → 手机直接编辑「运抵重量」(同一 arriveWeight 字段)
· 平板「托盘车号」→ 手机按设计稿为「托盘数量」(palletNumber 预留字段),
「托盘自重」相应改为手输(carWeight),两者后端暂无入参,见接口问题清单
· 平板「托盘车号」→ 手机按设计稿为「托盘数量」+「托盘自重」(默认 18kg),
提交 trayNumber / trayTotalWeight(= 数量 × 自重),与平板端托盘口径一致
-->
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
@@ -182,7 +182,7 @@
type="@{PhoneFormRowType.TEXT}"
value="@{viewModel.arriveVolume}" />
<!-- 托盘数量:设计稿字段,后端暂无入参(预留 palletNumber,见接口问题清单) -->
<!-- 托盘数量 → trayNumber -->
<com.lukouguoji.module_base.ui.weight.phone.PhoneFormRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -190,9 +190,9 @@
numeric="@{true}"
title='@{"托盘数量"}'
type="@{PhoneFormRowType.INPUT}"
value="@={viewModel.palletNumber}" />
value="@={viewModel.trayNumber}" />
<!-- 托盘自重:手机版手输(平板为托盘车号查询回填) -->
<!-- 托盘自重(单个,默认 18kg)× 数量 → trayTotalWeight -->
<com.lukouguoji.module_base.ui.weight.phone.PhoneFormRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -200,7 +200,7 @@
numeric="@{true}"
title='@{"托盘自重"}'
type="@{PhoneFormRowType.INPUT}"
value="@={viewModel.carWeight}" />
value="@={viewModel.trayWeight}" />
<com.lukouguoji.module_base.ui.weight.phone.PhoneFormRow
android:layout_width="match_parent"

View File

@@ -4,8 +4,7 @@
设计稿:documents/5.5寸手持端设计文件/03_出港计重/detail.html
结构:白色卡片「基本信息」 + 两列灰底字段网格(PhoneKvItem 套 bg_phone_stat_box)
注:「通道号」在 /IntExpCheckIn/checked/pageQuery 出参中不存在(后端缺口,见接口问题清单),
此处绑定空串由组件兜底显示 "-"。
「通道号」绑 /IntExpCheckIn/checked/pageQuery 出参 passageWay,空值由组件兜底显示 "-"。
-->
<layout xmlns:android="http://schemas.android.com/apk/res/android">
@@ -196,7 +195,7 @@
title='@{"业务类型"}'
value="@{viewModel.bean.businessName.empty ? viewModel.bean.businessType : viewModel.bean.businessName}" />
<!-- 通道号:接口出参无该字段(后端缺口),空值兜底 "-" -->
<!-- 通道号:passageWay,空值兜底 "-" -->
<com.lukouguoji.module_base.ui.weight.phone.PhoneKvItem
android:layout_width="0dp"
android:layout_height="wrap_content"
@@ -205,7 +204,7 @@
android:background="@drawable/bg_phone_stat_box"
android:padding="12dp"
title='@{"通道号"}'
value='@{""}' />
value="@{viewModel.bean.passageWay}" />
</LinearLayout>

View File

@@ -85,7 +85,7 @@
</LinearLayout>
<!-- 托盘自重(kg) -->
<!-- 托盘自重(kg):trayTotalWeight(与平板端一致) -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -103,14 +103,14 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{record.carWeight}"
android:text="@{String.valueOf(record.trayTotalWeight)}"
android:textColor="@color/phone_text_strong"
android:textSize="14sp"
tools:text="18" />
</LinearLayout>
<!-- 计重人(接口出参仅操作员编码,无姓名,见接口问题清单) -->
<!-- 计重人:opUserName 姓名,为空回退 opId -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -128,7 +128,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{record.opId}"
android:text="@{record.opUserDisplay}"
android:textColor="@color/phone_text_strong"
android:textSize="14sp"
tools:text="张三" />