diff --git a/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt b/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt index 70237aa..80f8b5d 100644 --- a/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt +++ b/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt @@ -825,6 +825,13 @@ interface Api { @POST("IntExpStorageUse/modifyStorage") suspend fun modifyIntExpStorage(@Body data: RequestBody): BaseResultBean + /** + * 国际出港库位操作-出库 + * 接口路径: /IntExpStorageUse/outStorage + */ + @POST("IntExpStorageUse/outStorage") + suspend fun outIntExpStorage(@Body data: RequestBody): BaseResultBean + /** * 国际出港仓库-分页查询 * 接口路径: /IntExpStorageUse/pageQuery diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/activity/IntExpStorageUseActivity.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/activity/IntExpStorageUseActivity.kt index 15d2c56..01dc11f 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/activity/IntExpStorageUseActivity.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/activity/IntExpStorageUseActivity.kt @@ -3,6 +3,7 @@ package com.lukouguoji.gjc.activity import android.app.Activity import android.content.Intent import android.os.Bundle +import androidx.appcompat.app.AlertDialog import com.alibaba.android.arouter.facade.annotation.Route import com.lukouguoji.gjc.R import com.lukouguoji.gjc.databinding.ActivityIntExpStorageUseBinding @@ -119,6 +120,37 @@ class IntExpStorageUseActivity : }.show(this) } + /** + * 显示出库二次确认对话框 + */ + fun showOutStorageDialog() { + val list = viewModel.pageModel.rv?.commonAdapter()?.items as? List<*> ?: return + val allItems = list.filterIsInstance() + + // 收集所有选中的子列表项(库位) + val selectedStorageUseList = mutableListOf() + allItems.forEach { maWb -> + maWb.storageUseList?.filter { it.isSelected }?.let { selectedStorageUseList.addAll(it) } + } + + // 校验:必须至少选中一个库位 + if (selectedStorageUseList.isEmpty()) { + showToast("请选择要出库的库位") + return + } + + // 显示二次确认对话框 + AlertDialog.Builder(this) + .setTitle("出库确认") + .setMessage("确定要将选中的 ${selectedStorageUseList.size} 个库位执行出库操作吗?") + .setPositiveButton("确定") { _, _ -> + // 用户确认后,执行出库操作 + viewModel.performOutStorage(selectedStorageUseList) + } + .setNegativeButton("取消", null) + .show() + } + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == Constant.RequestCode.WAYBILL && resultCode == Activity.RESULT_OK) { diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpStorageUseViewModel.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpStorageUseViewModel.kt index cfa3201..9341b4a 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpStorageUseViewModel.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpStorageUseViewModel.kt @@ -207,24 +207,37 @@ class IntExpStorageUseViewModel : BasePageViewModel() { } /** - * 出库操作 + * 出库操作(在Activity中调用,会显示二次确认对话框) */ fun outStorage() { - val list = pageModel.rv?.commonAdapter()?.items as? List ?: return + // 由Activity显示二次确认对话框 + } - // 收集所有选中的子列表项(库位) - val selectedStorageUseList = mutableListOf() - list.forEach { maWb -> - maWb.storageUseList?.filter { it.isSelected }?.let { selectedStorageUseList.addAll(it) } - } - - if (selectedStorageUseList.isEmpty()) { + /** + * 执行出库操作 + * @param selectedStorageList 选中的子列表项(库位) + */ + fun performOutStorage(selectedStorageList: List) { + if (selectedStorageList.isEmpty()) { showToast("请选择要出库的库位") return } - // TODO: 实现出库接口调用 - showToast("出库功能待实现") + // 将选中的子列表项转换为RequestBody + val params = selectedStorageList.toRequestBody() + + launchLoadingCollect({ NetApply.api.outIntExpStorage(params) }) { + onSuccess = { + showToast("出库成功") + viewModelScope.launch { + FlowBus.with(ConstantEvent.EVENT_REFRESH).emit("refresh") + } + refresh() // 刷新列表 + } + onFailed = { _, msg -> + showToast(msg.noNull("出库失败")) + } + } } /** diff --git a/module_gjc/src/main/res/layout/activity_int_exp_storage_use.xml b/module_gjc/src/main/res/layout/activity_int_exp_storage_use.xml index 845de19..553ffbf 100644 --- a/module_gjc/src/main/res/layout/activity_int_exp_storage_use.xml +++ b/module_gjc/src/main/res/layout/activity_int_exp_storage_use.xml @@ -234,7 +234,7 @@