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:
@@ -22,9 +22,16 @@ 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, // 托盘重量(托盘数量 × 托盘自重,与平板端一致)
|
||||
var opUserName: String = "" // 计重人姓名(opId 关联查询)
|
||||
) : BaseObservable() {
|
||||
|
||||
/** 计重人:优先姓名,为空回退操作员编码 */
|
||||
val opUserDisplay: String
|
||||
get() = opUserName.ifEmpty { opId }
|
||||
|
||||
// 数据变化回调
|
||||
var onDataChanged: (() -> Unit)? = null
|
||||
|
||||
@@ -54,14 +61,23 @@ data class GjcCheckInRecord(
|
||||
}
|
||||
}
|
||||
|
||||
// 托盘自重的字符串表示(用于双向绑定,5.5寸手机版「修改记录」覆层)
|
||||
/**
|
||||
* 托盘重量输入原文(手机「修改记录」覆层)。保留原文而非由 Double 反推:
|
||||
* 输入 "1" 时若 getter 返回 "1.0",输入框会被重设、光标回到开头,再输 "8" 就成了 "81"(实机踩过)。
|
||||
* transient:不参与 Gson 提交序列化。
|
||||
*/
|
||||
@Transient
|
||||
private var trayTotalWeightInput: String? = null
|
||||
|
||||
// 托盘重量的字符串表示(用于双向绑定,5.5寸手机版「修改记录」覆层)
|
||||
@get:Bindable
|
||||
var carWeightStr: String
|
||||
get() = carWeight
|
||||
var trayTotalWeightStr: String
|
||||
get() = trayTotalWeightInput ?: if (trayTotalWeight == 0.0) "" else trayTotalWeight.toString()
|
||||
set(value) {
|
||||
if (carWeight != value) {
|
||||
carWeight = value
|
||||
notifyPropertyChanged(BR.carWeightStr)
|
||||
if (trayTotalWeightStr != value) {
|
||||
trayTotalWeightInput = value
|
||||
trayTotalWeight = value.toDoubleOrNull() ?: 0.0
|
||||
notifyPropertyChanged(BR.trayTotalWeightStr)
|
||||
onDataChanged?.invoke()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,8 +76,8 @@ data class GjcMaWb(
|
||||
var carNumber: String? = null, // 车牌号
|
||||
var passageWay: String? = null, // 通道号
|
||||
var passageWayId: String? = null,
|
||||
var palletNumber: String? = null, // 托盘数量(5.5寸手机版开始计重页,后端暂无该入参,见接口问题清单)
|
||||
var carWeight: String? = null, // 托盘自重(5.5寸手机版手输,后端暂无该入参,见接口问题清单)
|
||||
var trayNumber: Int? = null, // 托盘数量(splitCheckIn / completeCheckIn 入参,与平板端一致)
|
||||
var trayTotalWeight: Double? = null, // 托盘重量 = 托盘数量 × 托盘自重
|
||||
|
||||
// ==================== 状态信息 ====================
|
||||
var checkIn: String? = null, // 收运状态。0:待收运,1:已收运,2:收运中
|
||||
|
||||
@@ -73,6 +73,7 @@ class GjcWeighingRecordBean : Serializable {
|
||||
var paperTime: String = "" // 单据时间
|
||||
|
||||
var userName: String = "" // 收运人
|
||||
var passageWay: String = "" // 通道号(计重时选定的通道号名称)
|
||||
var userId: String = "" // 收运人ID
|
||||
|
||||
var remark: String = "" // 备注
|
||||
|
||||
@@ -10,4 +10,6 @@ class GjcWeighingStatisticsBean {
|
||||
var totalPc: Long = 0 // 总件数
|
||||
var totalWeight: Double = 0.0 // 总重量
|
||||
var cargoWeight: Double = 0.0 // 总货重
|
||||
var waitCheckInNumber: Int = 0 // 待计重票数(IntExpCheckIn/pageQueryTotal)
|
||||
var checkingNumber: Int = 0 // 计重中票数(IntExpCheckIn/pageQueryTotal)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user