From 0b25e9c68c1441e86621ac985795a1c1bc23cbfe Mon Sep 17 00:00:00 2001 From: YANGJIANKUAN Date: Fri, 13 Mar 2026 14:43:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=9B=BD=E9=99=85=E8=BF=9B=E6=B8=AF?= =?UTF-8?q?=E6=8F=90=E5=8F=96=E8=AE=B0=E5=BD=95=E6=8E=A5=E5=8F=A3=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E5=8F=8A=E5=AD=97=E6=AE=B5=E5=AF=B9=E9=BD=90=E5=90=8E?= =?UTF-8?q?=E7=AB=AF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - API路径 IntImpPickUpRecord/* 修正为 IntImpPickup/* - Bean字段名全部对齐后端schema(checkWeight→cashWeight等) - 请求参数名修正(paymentDateStart→beginDate, pageNum→page等) - 缴费日期起默认值设为当天 - 详情页改为携带列表数据,不再调用接口 - 运单号搜索框添加autoQuery自动查询 - 列表项布局按规范优化(箭头、列宽、completeSpace对齐) Co-Authored-By: Claude Opus 4.6 --- .../bean/IntImpPickUpRecordBean.kt | 33 +- .../lukouguoji/module_base/http/net/Api.kt | 21 +- .../activity/IntImpPickUpRecordActivity.kt | 10 + .../IntImpPickUpRecordDetailsActivity.kt | 6 +- .../holder/IntImpPickUpRecordViewHolder.kt | 2 +- .../IntImpPickUpRecordDetailsViewModel.kt | 23 +- .../viewModel/IntImpPickUpRecordViewModel.kt | 12 +- .../activity_int_imp_pick_up_record.xml | 7 + ...ctivity_int_imp_pick_up_record_details.xml | 26 +- .../layout/item_int_imp_pick_up_record.xml | 367 +++++++++--------- 10 files changed, 250 insertions(+), 257 deletions(-) diff --git a/module_base/src/main/java/com/lukouguoji/module_base/bean/IntImpPickUpRecordBean.kt b/module_base/src/main/java/com/lukouguoji/module_base/bean/IntImpPickUpRecordBean.kt index 59a16d6..35b8544 100644 --- a/module_base/src/main/java/com/lukouguoji/module_base/bean/IntImpPickUpRecordBean.kt +++ b/module_base/src/main/java/com/lukouguoji/module_base/bean/IntImpPickUpRecordBean.kt @@ -5,28 +5,33 @@ import java.io.Serializable /** * 国际进港提取记录-列表数据Bean - * 对应API: IntImpPickUpRecord/pageQuery + * 对应API: IntImpPickup/pageQuery */ class IntImpPickUpRecordBean : Serializable { var id: Long = 0 // 主键ID var wbNo: String = "" // 运单号 + var no: String = "" // 主单号 + var prefix: String = "" // 前缀 + var hno: String = "" // 分单号 + var serialNo: String = "" // 序号 var pc: Int = 0 // 件数 var weight: Double = 0.0 // 重量 - var checkWeight: Double = 0.0 // 计重重量 + var cashWeight: Double = 0.0 // 计费重量 var agentCode: String = "" // 代理人 var spCode: String = "" // 特码 - var serviceFee: Double = 0.0 // 服务费 - var storageFee: Double = 0.0 // 仓储费 - var totalAmount: Double = 0.0 // 总金额 - var pickUpTime: String = "" // 提取时间 - var pickUpNo: String = "" // 提货编号 - var infoFee: Double = 0.0 // 信息费 - var drawFee: Double = 0.0 // 抽单费 - var coldFee: Double = 0.0 // 冷藏费 - var forkliftFee: Double = 0.0 // 铲车费 - var tallyFee: Double = 0.0 // 理货费 - var operator: String = "" // 办理人 - var outTime: String = "" // 出库时间 + var optCharge: Double = 0.0 // 服务费 + var whsCharge: Double = 0.0 // 仓储费 + var amount: Double = 0.0 // 总金额 + var chargeTime: String = "" // 缴费时间/提取时间 + var pkId: String = "" // 提货编号 + var tranCharge: Double = 0.0 // 信息费 + var drawBillCharge: Double = 0.0 // 抽单费 + var efrCharge: Double = 0.0 // 冷藏费 + var svlCharge: Double = 0.0 // 铲车费 + var tallyCharge: Double = 0.0 // 理货费 + var chargeName: String = "" // 办理人名称 + var chargeId: String = "" // 收费员ID + var dlvTime: String = "" // 出库时间 // ========== UI扩展字段 ========== val checked: ObservableBoolean = ObservableBoolean(false) 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 eed277b..9ddf2ed 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 @@ -954,31 +954,24 @@ interface Api { /** * 国际进港提取记录-分页查询 - * 接口路径: /IntImpPickUpRecord/pageQuery + * 接口路径: /IntImpPickup/pageQuery */ - @POST("IntImpPickUpRecord/pageQuery") + @POST("IntImpPickup/pageQuery") suspend fun getIntImpPickUpRecordList(@Body data: RequestBody): PageInfo /** * 国际进港提取记录-分页合计 - * 接口路径: /IntImpPickUpRecord/pageQueryTotal + * 接口路径: /IntImpPickup/pageQueryTotal */ - @POST("IntImpPickUpRecord/pageQueryTotal") + @POST("IntImpPickup/pageQueryTotal") suspend fun getIntImpPickUpRecordTotal(@Body data: RequestBody): BaseResultBean /** * 国际进港提取记录-清除提货 - * 接口路径: /IntImpPickUpRecord/clearPickUp + * 接口路径: /IntImpPickup/clearPickup */ - @POST("IntImpPickUpRecord/clearPickUp") - suspend fun clearIntImpPickUp(@Body data: RequestBody): BaseResultBean - - /** - * 国际进港提取记录-详情 - * 接口路径: /IntImpPickUpRecord/getDetails - */ - @POST("IntImpPickUpRecord/getDetails") - suspend fun getIntImpPickUpRecordDetails(@Body data: RequestBody): BaseResultBean + @POST("IntImpPickup/clearPickup") + suspend fun clearIntImpPickUp(@Body data: RequestBody): BaseResultBean /** * 国际进港提取出库-分页查询 diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpPickUpRecordActivity.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpPickUpRecordActivity.kt index 6ab6a71..47f877c 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpPickUpRecordActivity.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpPickUpRecordActivity.kt @@ -46,6 +46,16 @@ class IntImpPickUpRecordActivity : viewModel.refresh() } + // 运单号自动查询额外参数 + binding.pslWbNo.autoQueryConfig.extraParamsProvider = { + mapOf( + "beginDate" to viewModel.paymentDateStart.value, + "endDate" to viewModel.paymentDateEnd.value, + "agentCode" to viewModel.agentCode.value, + "spCode" to viewModel.spCode.value + ) + } + // 初始化下拉列表 viewModel.initAgentList() viewModel.initSpecialCodeList() diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpPickUpRecordDetailsActivity.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpPickUpRecordDetailsActivity.kt index 0b9344b..bbd2e28 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpPickUpRecordDetailsActivity.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpPickUpRecordDetailsActivity.kt @@ -3,10 +3,12 @@ package com.lukouguoji.gjj.activity import android.content.Context import android.content.Intent import android.os.Bundle +import com.google.gson.Gson import com.lukouguoji.gjj.R import com.lukouguoji.gjj.databinding.ActivityIntImpPickUpRecordDetailsBinding import com.lukouguoji.gjj.viewModel.IntImpPickUpRecordDetailsViewModel import com.lukouguoji.module_base.base.BaseBindingActivity +import com.lukouguoji.module_base.bean.IntImpPickUpRecordBean import com.lukouguoji.module_base.common.Constant /** @@ -26,9 +28,9 @@ class IntImpPickUpRecordDetailsActivity : companion object { @JvmStatic - fun start(context: Context, id: Long) { + fun start(context: Context, bean: IntImpPickUpRecordBean) { val starter = Intent(context, IntImpPickUpRecordDetailsActivity::class.java) - .putExtra(Constant.Key.ID, id) + .putExtra(Constant.Key.DATA, Gson().toJson(bean)) context.startActivity(starter) } } diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntImpPickUpRecordViewHolder.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntImpPickUpRecordViewHolder.kt index cbaa252..de2e2e6 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntImpPickUpRecordViewHolder.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntImpPickUpRecordViewHolder.kt @@ -26,7 +26,7 @@ class IntImpPickUpRecordViewHolder(view: View) : // 列表项点击进入提取详情 itemView.setOnClickListener { - IntImpPickUpRecordDetailsActivity.start(itemView.context, bean.id) + IntImpPickUpRecordDetailsActivity.start(itemView.context, bean) } } } diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpPickUpRecordDetailsViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpPickUpRecordDetailsViewModel.kt index 0ed31e4..1628cca 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpPickUpRecordDetailsViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpPickUpRecordDetailsViewModel.kt @@ -2,41 +2,26 @@ package com.lukouguoji.gjj.viewModel import android.content.Intent import androidx.lifecycle.MutableLiveData +import com.google.gson.Gson import com.lukouguoji.module_base.base.BaseViewModel import com.lukouguoji.module_base.bean.IntImpPickUpRecordBean import com.lukouguoji.module_base.common.Constant -import com.lukouguoji.module_base.http.net.NetApply -import com.lukouguoji.module_base.ktx.launchLoadingCollect import com.lukouguoji.module_base.ktx.showToast -import com.lukouguoji.module_base.ktx.toRequestBody /** * 国际进港提取详情 ViewModel */ class IntImpPickUpRecordDetailsViewModel : BaseViewModel() { - var recordId: Long = 0 - val dataBean = MutableLiveData(IntImpPickUpRecordBean()) fun initOnCreated(intent: Intent) { - recordId = intent.getLongExtra(Constant.Key.ID, 0) - if (recordId > 0) { - getData() + val json = intent.getStringExtra(Constant.Key.DATA) ?: "" + if (json.isNotEmpty()) { + dataBean.value = Gson().fromJson(json, IntImpPickUpRecordBean::class.java) } else { showToast("参数错误") getTopActivity().finish() } } - - private fun getData() { - val params = mapOf("id" to recordId).toRequestBody() - launchLoadingCollect({ - NetApply.api.getIntImpPickUpRecordDetails(params) - }) { - onSuccess = { - dataBean.value = it.data ?: IntImpPickUpRecordBean() - } - } - } } diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpPickUpRecordViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpPickUpRecordViewModel.kt index c491364..d394d4f 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpPickUpRecordViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpPickUpRecordViewModel.kt @@ -18,8 +18,10 @@ import com.lukouguoji.module_base.ktx.launchLoadingCollect import com.lukouguoji.module_base.ktx.noNull import com.lukouguoji.module_base.ktx.showToast import com.lukouguoji.module_base.ktx.toRequestBody +import com.lukouguoji.module_base.ktx.formatDate import com.lukouguoji.module_base.model.ScanModel import com.lukouguoji.module_base.util.DictUtils +import dev.utils.common.DateUtils import dev.utils.app.info.KeyValue import kotlinx.coroutines.launch @@ -29,7 +31,7 @@ import kotlinx.coroutines.launch class IntImpPickUpRecordViewModel : BasePageViewModel() { // ========== 筛选条件 ========== - val paymentDateStart = MutableLiveData("") // 缴费日期起 + val paymentDateStart = MutableLiveData(DateUtils.getCurrentTime().formatDate()) // 缴费日期起 val paymentDateEnd = MutableLiveData("") // 缴费日期止 val agentCode = MutableLiveData("") // 代理人 val spCode = MutableLiveData("") // 特码 @@ -144,16 +146,16 @@ class IntImpPickUpRecordViewModel : BasePageViewModel() { */ override fun getData() { val filterParams = mapOf( - "paymentDateStart" to paymentDateStart.value?.ifEmpty { null }, - "paymentDateEnd" to paymentDateEnd.value?.ifEmpty { null }, + "beginDate" to paymentDateStart.value?.ifEmpty { null }, + "endDate" to paymentDateEnd.value?.ifEmpty { null }, "agentCode" to agentCode.value?.ifEmpty { null }, "spCode" to spCode.value?.ifEmpty { null }, "wbNo" to wbNo.value?.ifEmpty { null } ) val listParams = (filterParams + mapOf( - "pageNum" to pageModel.page, - "pageSize" to pageModel.limit + "page" to pageModel.page, + "limit" to pageModel.limit )).toRequestBody() val totalParams = filterParams.toRequestBody() diff --git a/module_gjj/src/main/res/layout/activity_int_imp_pick_up_record.xml b/module_gjj/src/main/res/layout/activity_int_imp_pick_up_record.xml index 9baa999..2ead80c 100644 --- a/module_gjj/src/main/res/layout/activity_int_imp_pick_up_record.xml +++ b/module_gjj/src/main/res/layout/activity_int_imp_pick_up_record.xml @@ -75,6 +75,13 @@ @@ -123,7 +123,7 @@ title='@{"计费重量"}' titleLength="@{5}" type="@{DataLayoutType.INPUT}" - value='@{String.valueOf(viewModel.dataBean.checkWeight)}' + value='@{String.valueOf(viewModel.dataBean.cashWeight)}' android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> @@ -133,7 +133,7 @@ title='@{"信息费"}' titleLength="@{5}" type="@{DataLayoutType.INPUT}" - value='@{String.valueOf(viewModel.dataBean.infoFee)}' + value='@{String.valueOf(viewModel.dataBean.tranCharge)}' android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> @@ -143,7 +143,7 @@ title='@{"服务费"}' titleLength="@{5}" type="@{DataLayoutType.INPUT}" - value='@{String.valueOf(viewModel.dataBean.serviceFee)}' + value='@{String.valueOf(viewModel.dataBean.optCharge)}' android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> @@ -162,7 +162,7 @@ title='@{"仓储费"}' titleLength="@{5}" type="@{DataLayoutType.INPUT}" - value='@{String.valueOf(viewModel.dataBean.storageFee)}' + value='@{String.valueOf(viewModel.dataBean.whsCharge)}' android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> @@ -172,7 +172,7 @@ title='@{"抽单费"}' titleLength="@{5}" type="@{DataLayoutType.INPUT}" - value='@{String.valueOf(viewModel.dataBean.drawFee)}' + value='@{String.valueOf(viewModel.dataBean.drawBillCharge)}' android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> @@ -182,7 +182,7 @@ title='@{"冷藏费"}' titleLength="@{5}" type="@{DataLayoutType.INPUT}" - value='@{String.valueOf(viewModel.dataBean.coldFee)}' + value='@{String.valueOf(viewModel.dataBean.efrCharge)}' android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> @@ -201,7 +201,7 @@ title='@{"铲车费"}' titleLength="@{5}" type="@{DataLayoutType.INPUT}" - value='@{String.valueOf(viewModel.dataBean.forkliftFee)}' + value='@{String.valueOf(viewModel.dataBean.svlCharge)}' android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> @@ -211,7 +211,7 @@ title='@{"理货费"}' titleLength="@{5}" type="@{DataLayoutType.INPUT}" - value='@{String.valueOf(viewModel.dataBean.tallyFee)}' + value='@{String.valueOf(viewModel.dataBean.tallyCharge)}' android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> @@ -221,7 +221,7 @@ title='@{"总金额"}' titleLength="@{5}" type="@{DataLayoutType.INPUT}" - value='@{String.valueOf(viewModel.dataBean.totalAmount)}' + value='@{String.valueOf(viewModel.dataBean.amount)}' android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> @@ -240,7 +240,7 @@ title='@{"提取时间"}' titleLength="@{5}" type="@{DataLayoutType.INPUT}" - value='@{viewModel.dataBean.pickUpTime}' + value='@{viewModel.dataBean.chargeTime}' android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> @@ -250,7 +250,7 @@ title='@{"办理人"}' titleLength="@{5}" type="@{DataLayoutType.INPUT}" - value='@{viewModel.dataBean.operator}' + value='@{viewModel.dataBean.chargeName}' android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> @@ -260,7 +260,7 @@ title='@{"出库时间"}' titleLength="@{5}" type="@{DataLayoutType.INPUT}" - value='@{viewModel.dataBean.outTime}' + value='@{viewModel.dataBean.dlvTime}' android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> diff --git a/module_gjj/src/main/res/layout/item_int_imp_pick_up_record.xml b/module_gjj/src/main/res/layout/item_int_imp_pick_up_record.xml index 3018ec5..d499e29 100644 --- a/module_gjj/src/main/res/layout/item_int_imp_pick_up_record.xml +++ b/module_gjj/src/main/res/layout/item_int_imp_pick_up_record.xml @@ -14,12 +14,13 @@ - @@ -29,7 +30,7 @@ android:id="@+id/iv_icon" android:layout_width="40dp" android:layout_height="40dp" - android:layout_marginEnd="10dp" + android:layout_gravity="center" loadImage="@{bean.checked.get() ? @drawable/img_plane_s : @drawable/img_plane}" android:src="@drawable/img_plane" /> @@ -37,268 +38,256 @@ - - + + android:layout_height="wrap_content"> - + android:layout_weight="1.0" + android:gravity="center_vertical"> - + - - - - - - - - - - - - - - - - - - - + android:gravity="center_vertical"> - + - - + + android:gravity="center_vertical"> - + - + + - - + - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:gravity="center_vertical"> - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + android:layout_width="30dp" + android:layout_height="30dp" + android:layout_gravity="center" + android:layout_marginLeft="10dp" + android:src="@drawable/img_pda_right" /> - +