From b57a3cd1337eb32ede52876afd8fd17fcddadc84 Mon Sep 17 00:00:00 2001 From: YANG JIANKUAN Date: Wed, 2 Sep 2026 11:59:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=AE=A1=E9=87=8D=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=89=98=E7=9B=98=E8=87=AA=E9=87=8D=E6=94=B9=E5=8F=96=E6=89=98?= =?UTF-8?q?=E7=9B=98=E9=87=8D=E9=87=8F=E5=B9=B6=E6=94=AF=E6=8C=81=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E8=81=94=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 托盘自重原误取托盘车重(carWeight),改为托盘重量(trayTotalWeight)。 编辑模式下托盘自重可编辑,重量按编辑前后差值同步浮动,底部统计随之更新。 Co-Authored-By: Claude Opus 4.6 --- .../module_base/bean/GjcCheckInRecord.kt | 28 ++++++++++++++++++- .../res/layout/item_gjc_check_in_record.xml | 8 ++++-- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcCheckInRecord.kt b/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcCheckInRecord.kt index 796c730..8d2f3a3 100644 --- a/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcCheckInRecord.kt +++ b/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcCheckInRecord.kt @@ -22,7 +22,9 @@ data class GjcCheckInRecord( var weight: Double = 0.0, // 运抵重量 var volume: Double = 0.0, // 运抵体积 var whId: Long = 0, // GJC_WAREHOUSE.ID - var carWeight: String = "" // 托盘自重 + var carWeight: String = "", // 托盘车重 + var trayNumber: Int = 0, // 托盘数量 + var trayTotalWeight: Double = 0.0 // 托盘重量(托盘自重) ) : BaseObservable() { // 数据变化回调 @@ -53,4 +55,28 @@ data class GjcCheckInRecord( onDataChanged?.invoke() } } + + // 托盘自重编辑过程中的原始输入串(保持回显与输入一致,避免光标跳位) + // 不作为构造参数,data class copy 备份/恢复时自动丢弃,回退到 trayTotalWeight 显示 + // @Transient:仅界面内部状态,不参与 Gson 序列化提交 + @Transient + private var trayTotalWeightInput: String? = null + + // 托盘自重的字符串表示(用于双向绑定) + // 业务规则:重量包含托盘自重,托盘自重编辑后,重量同步增减相同差值 + @get:Bindable + var trayTotalWeightStr: String + get() = trayTotalWeightInput + ?: if (trayTotalWeight == 0.0) "" else trayTotalWeight.toString() + set(value) { + trayTotalWeightInput = value + val newTrayWeight = value.toDoubleOrNull() ?: 0.0 + if (trayTotalWeight != newTrayWeight) { + weight = Math.round((weight + newTrayWeight - trayTotalWeight) * 100) / 100.0 + trayTotalWeight = newTrayWeight + notifyPropertyChanged(BR.trayTotalWeightStr) + notifyPropertyChanged(BR.weightStr) + onDataChanged?.invoke() + } + } } diff --git a/module_gjc/src/main/res/layout/item_gjc_check_in_record.xml b/module_gjc/src/main/res/layout/item_gjc_check_in_record.xml index e1fcc60..c01dccf 100644 --- a/module_gjc/src/main/res/layout/item_gjc_check_in_record.xml +++ b/module_gjc/src/main/res/layout/item_gjc_check_in_record.xml @@ -67,17 +67,19 @@ type="@{DataLayoutType.INPUT}" value="@={record.weightStr}" /> - + + value="@={record.trayTotalWeightStr}" />