From ca20d70e8ae02589a21456f3ac6883e714a26372 Mon Sep 17 00:00:00 2001 From: YANGJIANKUAN Date: Fri, 30 Jan 2026 18:28:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20opt=20=E5=87=BA=E6=B8=AF=E7=BB=84?= =?UTF-8?q?=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module_base/bean/GjcUldUseBean.kt | 14 +++++ .../assemble/IntExpAssembleStartActivity.kt | 8 ++- .../viewModel/IntExpAssembleStartViewModel.kt | 37 +++++++++++-- .../gjc/viewModel/IntExpAssembleViewModel.kt | 4 +- .../res/layout/activity_int_exp_assemble.xml | 2 +- .../main/res/layout/item_int_exp_assemble.xml | 54 +++++++++---------- 6 files changed, 83 insertions(+), 36 deletions(-) diff --git a/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcUldUseBean.kt b/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcUldUseBean.kt index 1110a4f..ccb0add 100644 --- a/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcUldUseBean.kt +++ b/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcUldUseBean.kt @@ -65,6 +65,20 @@ class GjcUldUseBean : Serializable { var loadArea: String = "" // 组装区 var pc: Long = 0 // 组装件数 + var fillWeightFlag: String = "" // 回填状态:0-未回填,1-部分回填,2-已回填 + + // 回填状态文本 + val fillWeightFlagText: String + get() = when (fillWeightFlag) { + "0" -> "未回填" + "1" -> "部分回填" + "2" -> "已回填" + else -> "" + } + + // 回填状态是否显示绿色(已回填时显示绿色) + val isFillWeightGreen: Boolean + get() = fillWeightFlag == "2" // ========== 出港组装页面扩展字段 ========== var isExpanded: Boolean = false // 展开状态(旧版保留) diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/page/assemble/IntExpAssembleStartActivity.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/page/assemble/IntExpAssembleStartActivity.kt index 4e0dd65..4959d63 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/page/assemble/IntExpAssembleStartActivity.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/page/assemble/IntExpAssembleStartActivity.kt @@ -35,6 +35,7 @@ class IntExpAssembleStartActivity : companion object { private const val EXTRA_ULD_NO = "uld" private const val EXTRA_EDIT_MODE = "edit_mode" + private const val EXTRA_LOAD_AREA = "load_area" @JvmStatic fun start(context: Context) { @@ -45,12 +46,14 @@ class IntExpAssembleStartActivity : /** * 从列表页"修改"模式启动 * @param uldNo ULD编号(将被锁定,整个页面生命周期内不可编辑) + * @param loadArea 组装位置(用于自动选中对应的组装位置) */ @JvmStatic - fun startForEdit(context: Context, uldNo: String) { + fun startForEdit(context: Context, uldNo: String, loadArea: String) { val starter = Intent(context, IntExpAssembleStartActivity::class.java) .putExtra(EXTRA_ULD_NO, uldNo) .putExtra(EXTRA_EDIT_MODE, true) + .putExtra(EXTRA_LOAD_AREA, loadArea) context.startActivity(starter) } } @@ -97,8 +100,9 @@ class IntExpAssembleStartActivity : val isEditMode = intent.getBooleanExtra(EXTRA_EDIT_MODE, false) if (isEditMode) { val uldNo = intent.getStringExtra(EXTRA_ULD_NO) ?: "" + val loadArea = intent.getStringExtra(EXTRA_LOAD_AREA) ?: "" if (uldNo.isNotEmpty()) { - viewModel.initFromEditMode(uldNo) + viewModel.initFromEditMode(uldNo, loadArea) } } } diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpAssembleStartViewModel.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpAssembleStartViewModel.kt index 1ec06df..81710ca 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpAssembleStartViewModel.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpAssembleStartViewModel.kt @@ -78,6 +78,9 @@ class IntExpAssembleStartViewModel : BaseViewModel() { // ========== 标记位,避免重复查询 ========== private var lastQueriedUldNo = "" + // ========== 修改模式待匹配的组装位置 ========== + private var pendingLoadArea: String = "" + /** * ULD编号锁定状态(页面内编辑模式) */ @@ -147,12 +150,30 @@ class IntExpAssembleStartViewModel : BaseViewModel() { } }?.toMutableList() ?: mutableListOf() - assemblePositionList.value = list - - // 保存默认选中的第一项 - if (list.isNotEmpty()) { + // 检查是否有待匹配的组装位置(修改模式) + if (pendingLoadArea.isNotEmpty() && list.isNotEmpty()) { + // 取消所有选中状态 + list.forEach { it.isSelected = false } + // 查找并选中匹配项 + val matchedItem = list.find { it.positionName == pendingLoadArea } + if (matchedItem != null) { + matchedItem.isSelected = true + selectedPosition.value = matchedItem + } else { + // 未找到匹配项,选中第一项 + list[0].isSelected = true + selectedPosition.value = list[0] + } + // 清空待匹配标记 + pendingLoadArea = "" + // 触发组装信息列表查询 + loadAssembledList() + } else if (list.isNotEmpty()) { + // 非修改模式,选中第一项 selectedPosition.value = list[0] } + + assemblePositionList.value = list } } } @@ -1013,13 +1034,19 @@ class IntExpAssembleStartViewModel : BaseViewModel() { /** * 从列表页"修改"模式初始化 * @param uldNo ULD编号 + * @param loadArea 组装位置(用于自动选中对应的组装位置) */ - fun initFromEditMode(uldNo: String) { + fun initFromEditMode(uldNo: String, loadArea: String = "") { if (uldNo.isEmpty()) return // 标记为修改模式(整个页面生命周期内 ULD 编号锁定) isFromEditMode.value = true + // 保存待匹配的组装位置(在组装位置列表加载完成后进行匹配选择) + if (loadArea.isNotEmpty()) { + pendingLoadArea = loadArea + } + // 填充 ULD 编号 uldInfo.value = uldInfo.value?.apply { this.uldNo = uldNo diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpAssembleViewModel.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpAssembleViewModel.kt index 2a54485..d5a8bce 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpAssembleViewModel.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpAssembleViewModel.kt @@ -176,12 +176,14 @@ class IntExpAssembleViewModel : BasePageViewModel() { /** * 修改单个列表项 - 跳转到开始组装页面(修改模式) * ULD 编号将被锁定,整个页面生命周期内不可编辑 + * 同时传递组装位置,用于自动选中对应项 */ private fun onEditItem(position: Int) { val bean = pageModel.rv?.commonAdapter()?.getItem(position) as? GjcUldUseBean ?: return com.lukouguoji.gjc.page.assemble.IntExpAssembleStartActivity.startForEdit( getTopActivity(), - bean.uld + bean.uld, + bean.loadArea ) } diff --git a/module_gjc/src/main/res/layout/activity_int_exp_assemble.xml b/module_gjc/src/main/res/layout/activity_int_exp_assemble.xml index 5d85182..51bbd59 100644 --- a/module_gjc/src/main/res/layout/activity_int_exp_assemble.xml +++ b/module_gjc/src/main/res/layout/activity_int_exp_assemble.xml @@ -135,7 +135,7 @@ itemLayoutId="@{viewModel.itemLayoutId}" viewHolder="@{viewModel.itemViewHolder}" tools:itemCount="3" - tools:listitem="@layout/item_int_exp_assemble_uld" /> + tools:listitem="@layout/item_int_exp_assemble" /> diff --git a/module_gjc/src/main/res/layout/item_int_exp_assemble.xml b/module_gjc/src/main/res/layout/item_int_exp_assemble.xml index 66e2bf8..e7bea4a 100644 --- a/module_gjc/src/main/res/layout/item_int_exp_assemble.xml +++ b/module_gjc/src/main/res/layout/item_int_exp_assemble.xml @@ -92,31 +92,6 @@ - - - - - - - - - @@ -192,6 +167,31 @@ + + + + + + + + + @@ -288,7 +288,7 @@