diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/activity/GjcQueryActivity.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/activity/GjcQueryActivity.kt index 37918c2..004786c 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/activity/GjcQueryActivity.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/activity/GjcQueryActivity.kt @@ -54,7 +54,7 @@ class GjcQueryActivity : } // 航班号:大写字母+数字 - binding.filterPanel.filterFlightNo.et.setUpperCaseAlphanumericFilter() + binding.flightNoSearch.et.setUpperCaseAlphanumericFilter() // 目的港:仅大写字母 binding.filterPanel.filterDest.et.setUpperCaseLetterFilter() diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcQueryViewModel.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcQueryViewModel.kt index 69034e8..4969100 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcQueryViewModel.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcQueryViewModel.kt @@ -25,13 +25,22 @@ import com.lukouguoji.module_base.ktx.formatDate class GjcQueryViewModel : BasePageViewModel() { // ==================== 搜索条件 ==================== + val dateState = MutableLiveData("0") // 日期类型(0:入库,1:离港) val flightDateStart = MutableLiveData(DateUtils.getCurrentTime().formatDate()) // 航班日期起 val flightDateEnd = MutableLiveData("") // 航班日期止 val agentId = MutableLiveData("") // 代理ID - val outStatus = MutableLiveData("") // 出库状态 + val flightNo = MutableLiveData("") // 航班号 val waybillNo = MutableLiveData("") // 运单号 // ==================== 下拉列表 ==================== + // 日期类型下拉列表(对应接口 dateState) + val dateStateList = MutableLiveData( + listOf( + KeyValue("入库", "0"), + KeyValue("离港", "1") + ) + ) + // 代理下拉列表(从API获取) val agentList = MutableLiveData(listOf(KeyValue("全部", ""))) @@ -49,9 +58,10 @@ class GjcQueryViewModel : BasePageViewModel() { val itemLayoutId = R.layout.item_gjc_query // ==================== 统计数据 ==================== - val totalCount = MutableLiveData("0") // 合计票数 - val totalPc = MutableLiveData("0") // 总件数 - val totalWeight = MutableLiveData("0") // 总重量 + val totalCount = MutableLiveData("0") // 合计票数 + val totalPc = MutableLiveData("0") // 总件数 + val totalWeight = MutableLiveData("0") // 总重量 + val totalFlightNumber = MutableLiveData("0") // 航班航次 // ==================== 筛选面板 ==================== val filterVisible = MutableLiveData(false) @@ -70,7 +80,7 @@ class GjcQueryViewModel : BasePageViewModel() { // ==================== 筛选条件 ==================== val spCode = MutableLiveData("") // 特码 - val flightNo = MutableLiveData("") // 航班号 + val outStatus = MutableLiveData("") // 出库状态 val dest = MutableLiveData("") // 目的港 val awbType = MutableLiveData("") // 运单类型 val businessType = MutableLiveData("") // 业务类型 @@ -79,11 +89,11 @@ class GjcQueryViewModel : BasePageViewModel() { // 是否有筛选条件(任意一个非空则为 true,用于筛选按钮红点) val hasFilter: MediatorLiveData = MediatorLiveData().apply { val update = { _: Any? -> - value = listOf(spCode, flightNo, dest, awbType, businessType, goodsCn) + value = listOf(spCode, outStatus, dest, awbType, businessType, goodsCn) .any { !it.value.isNullOrEmpty() } } addSource(spCode, update) - addSource(flightNo, update) + addSource(outStatus, update) addSource(dest, update) addSource(awbType, update) addSource(businessType, update) @@ -127,7 +137,7 @@ class GjcQueryViewModel : BasePageViewModel() { */ fun resetFilter() { spCode.value = "" - flightNo.value = "" + outStatus.value = "" dest.value = "" awbType.value = "" businessType.value = "" @@ -160,39 +170,32 @@ class GjcQueryViewModel : BasePageViewModel() { * 核心方法:调用API获取数据并转换PageInfo为BaseListBean */ override fun getData() { + // 公共查询条件(列表与统计接口共用) + val commonParams = mapOf( + // 日期类型(0:入库,1:离港)+ 日期范围 + "dateState" to dateState.value?.ifEmpty { null }?.toIntOrNull(), + "beginDate" to flightDateStart.value?.ifEmpty { null }, + "endDate" to flightDateEnd.value?.ifEmpty { null }, + "agentCode" to agentId.value?.ifEmpty { null }, + "fno" to flightNo.value?.ifEmpty { null }, + "wbNo" to waybillNo.value?.ifEmpty { null }, + // 筛选面板条件 + "spCode" to spCode.value?.ifEmpty { null }, + "outState" to outStatus.value?.ifEmpty { null }?.toIntOrNull(), + "dest" to dest.value?.ifEmpty { null }, + "awbType" to awbType.value?.ifEmpty { null }, + "businessType" to businessType.value?.ifEmpty { null }, + "goodsCn" to goodsCn.value?.ifEmpty { null } + ) + // 构建查询参数(列表接口) - val listParams = mapOf( + val listParams = (commonParams + mapOf( "pageNum" to pageModel.page, - "pageSize" to pageModel.limit, - "beginDate" to flightDateStart.value!!.ifEmpty { null }, - "endDate" to flightDateEnd.value!!.ifEmpty { null }, - "agentCode" to agentId.value!!.ifEmpty { null }, - "outState" to outStatus.value!!.ifEmpty { null }, - "wbNo" to waybillNo.value!!.ifEmpty { null }, - // 筛选条件(暂未使用) - "spCode" to spCode.value!!.ifEmpty { null }, - "fno" to flightNo.value!!.ifEmpty { null }, - "dest" to dest.value!!.ifEmpty { null }, - "awbType" to awbType.value!!.ifEmpty { null }, - "businessType" to businessType.value!!.ifEmpty { null }, - "goodsCn" to goodsCn.value!!.ifEmpty { null } - ).toRequestBody() + "pageSize" to pageModel.limit + )).toRequestBody() // 构建查询参数(统计接口 - 使用相同的搜索条件) - val totalParams = mapOf( - "beginDate" to flightDateStart.value!!.ifEmpty { null }, - "endDate" to flightDateEnd.value!!.ifEmpty { null }, - "agentCode" to agentId.value!!.ifEmpty { null }, - "outState" to outStatus.value!!.ifEmpty { null }, - "wbNo" to waybillNo.value!!.ifEmpty { null }, - // 筛选条件 - "spCode" to spCode.value!!.ifEmpty { null }, - "fno" to flightNo.value!!.ifEmpty { null }, - "dest" to dest.value!!.ifEmpty { null }, - "awbType" to awbType.value!!.ifEmpty { null }, - "businessType" to businessType.value!!.ifEmpty { null }, - "goodsCn" to goodsCn.value!!.ifEmpty { null } - ).toRequestBody() + val totalParams = commonParams.toRequestBody() // 获取列表数据(显示loading) launchLoadingCollect({ @@ -213,6 +216,7 @@ class GjcQueryViewModel : BasePageViewModel() { totalCount.value = (data?.wbNumber ?: 0).toString() totalPc.value = (data?.totalPc ?: 0).toString() totalWeight.value = (data?.totalWeight ?: 0.0).toString() + totalFlightNumber.value = (data?.flightNumber ?: 0).toString() } } } diff --git a/module_gjc/src/main/res/layout/activity_gjc_query.xml b/module_gjc/src/main/res/layout/activity_gjc_query.xml index 1b60f63..5768961 100644 --- a/module_gjc/src/main/res/layout/activity_gjc_query.xml +++ b/module_gjc/src/main/res/layout/activity_gjc_query.xml @@ -42,6 +42,16 @@ android:gravity="center_vertical" android:orientation="horizontal"> + + + - + + hint='@{"请输入航班号"}' + type="@{SearchLayoutType.INPUT}" + value="@={viewModel.flightNo}" /> + + diff --git a/module_gjc/src/main/res/layout/layout_gjc_query_filter.xml b/module_gjc/src/main/res/layout/layout_gjc_query_filter.xml index 69adf3b..d692d6c 100644 --- a/module_gjc/src/main/res/layout/layout_gjc_query_filter.xml +++ b/module_gjc/src/main/res/layout/layout_gjc_query_filter.xml @@ -67,17 +67,17 @@ type="@{DataLayoutType.INPUT}" value='@={viewModel.spCode}' /> - + + type="@{DataLayoutType.SPINNER}" + value='@={viewModel.outStatus}' />