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 @@