From 0ae77ffbf8847449fbb35b301c0d1b9698e00da4 Mon Sep 17 00:00:00 2001 From: YANGJIANKUAN Date: Sun, 22 Mar 2026 18:38:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9B=BD=E9=99=85=E8=BF=9B=E6=B8=AF?= =?UTF-8?q?=E8=88=B1=E5=8D=95=E6=96=B0=E5=A2=9E=E9=A1=B5=E9=9D=A2=E4=BC=98?= =?UTF-8?q?=E5=8C=96=EF=BC=88=E8=88=AA=E7=8F=AD=E4=BB=A3=E5=85=A5=E3=80=81?= =?UTF-8?q?=E5=BF=85=E5=A1=AB=E6=A0=A1=E9=AA=8C=E3=80=81=E7=89=B9=E7=A0=81?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=80=BC=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- .../gjj/activity/GjjManifestAddActivity.kt | 11 +++++++- .../gjj/viewModel/GjjManifestAddViewModel.kt | 28 +++++++++++++------ .../gjj/viewModel/IntImpManifestViewModel.kt | 4 ++- .../res/layout/activity_gjj_manifest_add.xml | 18 ++++++------ 4 files changed, 42 insertions(+), 19 deletions(-) diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/activity/GjjManifestAddActivity.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/activity/GjjManifestAddActivity.kt index e2f9424..93aa4e0 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/activity/GjjManifestAddActivity.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/activity/GjjManifestAddActivity.kt @@ -46,12 +46,21 @@ class GjjManifestAddActivity : * 新增舱单 */ @JvmStatic - fun start(context: Context, fid: String = "", dep: String, dest: String) { + fun start( + context: Context, + fid: String = "", + dep: String, + dest: String, + flightDate: String = "", + flightNo: String = "" + ) { val starter = Intent(context, GjjManifestAddActivity::class.java) .putExtra(Constant.Key.PAGE_TYPE, DetailsPageType.Add.name) .putExtra(Constant.Key.ID, fid) .putExtra(Constant.Key.DEPARTURE, dep) .putExtra(Constant.Key.DESTINATION, dest) + .putExtra("flightDate", flightDate) + .putExtra("flightNo", flightNo) context.startActivity(starter) } diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestAddViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestAddViewModel.kt index 2609fec..ab283b9 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestAddViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestAddViewModel.kt @@ -212,12 +212,22 @@ class GjjManifestAddViewModel : BaseViewModel() { departure.value = intent.getStringExtra(Constant.Key.DEPARTURE).noNull() destination.value = intent.getStringExtra(Constant.Key.DESTINATION).noNull() + // 回填航班日期和航班号(从列表页传入) + val passedFlightDate = intent.getStringExtra("flightDate").noNull() + val passedFlightNo = intent.getStringExtra("flightNo").noNull() + if (passedFlightDate.isNotEmpty()) { + flightDate.value = passedFlightDate + } + if (passedFlightNo.isNotEmpty()) { + flightNo.value = passedFlightNo + } + // 如果航班日期和航班号都有值且已从列表页获得航班信息,标记已查询避免重复请求 + if (passedFlightDate.isNotEmpty() && passedFlightNo.isNotEmpty() && fid.isNotEmpty()) { + lastQueriedFlight = "$passedFlightDate-$passedFlightNo" + } + // 编辑模式:从Bean对象加载数据 if (pageType.value == DetailsPageType.Modify) { - // 回填航班日期和航班号(Bean中不包含,从列表页传入) - flightDate.value = intent.getStringExtra("flightDate").noNull() - flightNo.value = intent.getStringExtra("flightNo").noNull() - val bean = intent.getSerializableExtra(Constant.Key.BEAN) if (bean is com.lukouguoji.module_base.bean.GjjManifest) { loadManifestFromBean(bean) @@ -314,10 +324,12 @@ class GjjManifestAddViewModel : BaseViewModel() { || verifyWaybillNo(waybillNo.value) || agent.value.verifyNullOrEmpty("请选择代理") || waybillNum.value.verifyNullOrEmpty("请输入运单件数") - || actualNum.value.verifyNullOrEmpty("请输入实到数量") - || goodsNameEn.value.verifyNullOrEmpty("请输入品名(英)") || actualWeight.value.verifyNullOrEmpty("请输入实到重量") - || packageType.value.verifyNullOrEmpty("请选择包装类型") + || goodsNameEn.value.verifyNullOrEmpty("请输入品名(英)") + || waybillType.value.verifyNullOrEmpty("请选择运单类型") + || businessType.value.verifyNullOrEmpty("请选择业务类型") + || departure.value.verifyNullOrEmpty("请输入始发站") + || destination.value.verifyNullOrEmpty("请输入目的站") ) ) { return @@ -328,7 +340,7 @@ class GjjManifestAddViewModel : BaseViewModel() { "fid" to fid, "wbNo" to waybillNo.value, "agentCode" to agent.value, - "spCode" to specialCode.value, + "spCode" to specialCode.value.let { if (it.isNullOrEmpty()) "NOR" else it }, "businessType" to businessType.value, "totalPc" to waybillNum.value, "pc" to actualNum.value, diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestViewModel.kt index 7b9b017..81453e7 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestViewModel.kt @@ -257,7 +257,9 @@ class IntImpManifestViewModel : BasePageViewModel() { context = getTopActivity(), fid = fid, dep = sendAddress.value ?: "", - dest = fdest.value ?: "" + dest = fdest.value ?: "", + flightDate = flightDate.value ?: "", + flightNo = flightNo.value ?: "" ) } diff --git a/module_gjj/src/main/res/layout/activity_gjj_manifest_add.xml b/module_gjj/src/main/res/layout/activity_gjj_manifest_add.xml index 01d6855..f0ad167 100644 --- a/module_gjj/src/main/res/layout/activity_gjj_manifest_add.xml +++ b/module_gjj/src/main/res/layout/activity_gjj_manifest_add.xml @@ -103,7 +103,7 @@