From eb6124e310ae8875a0150ee5d2edd52d5a579d87 Mon Sep 17 00:00:00 2001
From: 18034727885 <973609879@qq.com>
Date: 星期四, 02 七月 2026 17:08:21 +0800
Subject: [PATCH] 快件订单优化

---
 app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt |  196 +++++++++++++++++++++++++++++++++++-------------
 1 files changed, 141 insertions(+), 55 deletions(-)

diff --git a/app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt b/app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt
index 5c0f19c..b23669e 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt
@@ -1,6 +1,7 @@
 package com.driver.igotrip.ui.main.small_cargo
 
 import android.annotation.SuppressLint
+import android.content.Intent
 import android.os.Bundle
 import android.os.Handler
 import android.os.Looper
@@ -10,6 +11,8 @@
 import android.widget.EditText
 import android.widget.ImageView
 import android.widget.TextView
+import androidx.activity.result.ActivityResultLauncher
+import androidx.activity.result.contract.ActivityResultContracts
 import cn.sinata.xldutils.utils.*
 import com.driver.igotrip.R
 import com.driver.igotrip.base.BaseEvent
@@ -27,6 +30,7 @@
 import com.driver.igotrip.netUtls.*
 import com.driver.igotrip.ui.DialogUtil
 import com.driver.igotrip.ui.UiUtil
+import com.driver.igotrip.ui.main.MediaOperationActivity
 import com.driver.igotrip.ui.main.ReassignActivity
 import com.driver.igotrip.utils.DateUtil
 import com.driver.igotrip.utils.MyUtils
@@ -81,6 +85,9 @@
     var graylist = arrayListOf<LatLng>() // 灰色轨迹
     var grayline: Polyline? = null
 
+    //业务多媒体类型
+    var businessMediaType: Int = 0
+
     private val tv_name by lazy { find<TextView>(R.id.tv_name) }
     private val tv_car_num by lazy { find<TextView>(R.id.tv_car_num) }
     private val tv_people_cargo by lazy { find<TextView>(R.id.tv_people_cargo) }
@@ -97,6 +104,9 @@
     private val iv_police by lazy { find<View>(R.id.iv_police) }
     private val iv_to_gd by lazy { find<View>(R.id.iv_to_gd) }
     private val slide_btn by lazy { find<SlidingButton>(R.id.slide_btn) }
+
+    //跳转另一个页面并接收返回结果启动器
+    private lateinit var launcherForResult: ActivityResultLauncher<Intent>
 
     override fun setContentView() {
         setContentView(R.layout.activity_trip_cargo)
@@ -119,7 +129,28 @@
     }
 
     override fun initView() {
+        launcherForResult =
+            registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
+                when (businessMediaType) {
+                    0 -> {
+                        if (result.resultCode == RESULT_OK && result.data != null) {
+                            val result = result.data!!.getStringArrayListExtra("result")
+                            showConfirmPriceDialog(result!!.joinToString(separator = ","))
+                        } else {
 
+                        }
+                    }
+
+                    1 -> {
+                        if (result.resultCode == RESULT_OK && result.data != null) {
+                            val result = result.data!!.getStringArrayListExtra("result")
+                            showConfirmDeliveryDialog(result!!.joinToString(separator = ","))
+                        } else {
+
+                        }
+                    }
+                }
+            }
     }
 
     private fun addSockectCancel() {
@@ -320,18 +351,14 @@
                     2, 3, 4 -> {
                         if (it.data.orderState == 4) {
                             if (orderType == "4") {
-                                DialogUtil.getDelAndSureDialog(
-                                    this,
-                                    getString(R.string.确认现金金额).format(it.data.expressPayAllMoney)
-                                        .replace(",", "."),
-                                    {},
-                                    {
-                                        it.data.orderState++
-                                        callStatue("1", it.data.orderState) {
-                                            iv_to_gd.callOnClick()
-                                        }
-                                        showStatueMapUI(it)
-                                    })
+                                businessMediaType = 0
+                                launcherForResult.launch(
+                                    MediaOperationActivity.getIntent(
+                                        this,
+                                        getString(R.string.请上传图片),
+                                        getString(R.string.确认取货), 3, 1
+                                    )
+                                )
                             } else {
                                 it.data.orderState++
                                 callStatue("1", it.data.orderState) {
@@ -350,49 +377,16 @@
                     }
 
                     5, 6 -> {
-                        sendCode() {
-                            it.data.orderState = 6
-                            var dialog =
-                                DialogUtil.getDialog(this, R.layout.dialog_show_cargo_money)
-                            var viewContent = DialogUtil.getView(dialog)
-                            val view_hint_close_car =
-                                viewContent.find<View>(R.id.view_hint_close_car)
-                            val tv_car_num_close = viewContent.find<View>(R.id.tv_car_num_close)
-                            val tv_money = viewContent.find<TextView>(R.id.tv_money)
-                            val tv_sure_car_num = viewContent.find<TextView>(R.id.tv_sure_car_num)
-                            val et_num_zg = viewContent.find<EditText>(R.id.et_num_zg)
-                            view_hint_close_car.setOnClickListener {
-                                dialog.dismiss()
-                            }
-                            tv_car_num_close.setOnClickListener {
-                                dialog.dismiss()
-                            }
-                            if (it.data.driverPay == "1") {
-                                tv_money.visible()
-                                tv_money.text =
-                                    getString(R.string.确认现金金额).format(if (orderType == "4") it.data.expressPayAllMoney else if (it.data.payMoney == 0.0) it.data.orderMoney else it.data.payMoney)
-                                        .replace(",", ".")
-                            }
-                            tv_sure_car_num.setOnClickListener {
-                                var num = et_num_zg.getContent()
-                                if (num.isEmpty()) {
-                                    toast(getString(R.string.请输入验证码))
-                                    return@setOnClickListener
-                                }
-                                callStatue(orderBean!!.data.orderState, num) {
-                                    dialog.dismiss()
-//                                    startActivity<SmallOverActivity>(
-//                                        "orderId" to orderId,
-//                                        "orderType" to orderType
-//                                    )
-                                    /* startActivity<MajorSureMoneyActivity>(
-                                         "orderId" to orderId,
-                                         "orderType" to orderType
-                                     )*/
-                                    finish()
-                                }
-                            }
-                        }
+//                        sendCode() {
+                        businessMediaType = 1
+                        launcherForResult.launch(
+                            MediaOperationActivity.getIntent(
+                                this,
+                                getString(R.string.请上传图片),
+                                getString(R.string.确认送达), 3, 1
+                            )
+                        )
+//                        }
                     }
 
                     12 -> {
@@ -423,6 +417,62 @@
             }
         }
 
+    }
+
+    //显示确认送达弹窗
+    private fun showConfirmDeliveryDialog(url: String) {
+        orderBean?.let {
+            it.data.orderState = 6
+            val dialog = DialogUtil.getDialog(this, R.layout.dialog_show_cargo_money)
+            val viewContent = DialogUtil.getView(dialog)
+            val view_hint_close_car =
+                viewContent.find<View>(R.id.view_hint_close_car)
+            val tv_car_num_close = viewContent.find<View>(R.id.tv_car_num_close)
+            val tv_money = viewContent.find<TextView>(R.id.tv_money)
+            val tv_sure_car_num = viewContent.find<TextView>(R.id.tv_sure_car_num)
+            val et_num_zg = viewContent.find<EditText>(R.id.et_num_zg)
+            view_hint_close_car.setOnClickListener {
+                dialog.dismiss()
+            }
+            tv_car_num_close.setOnClickListener {
+                dialog.dismiss()
+            }
+            if (it.data.driverPay == "1") {
+                tv_money.visible()
+                tv_money.text =
+                    getString(R.string.确认现金金额).format(if (orderType == "4") it.data.expressPayAllMoney else if (it.data.payMoney == 0.0) it.data.orderMoney else it.data.payMoney)
+                        .replace(",", ".")
+            }
+            tv_sure_car_num.setOnClickListener {
+                val num = et_num_zg.getContent()
+                if (num.isEmpty()) {
+                    toast(getString(R.string.请输入验证码))
+                    return@setOnClickListener
+                }
+                confirmDelivery(6, num, url) {
+                    dialog.dismiss()
+                    finish()
+                }
+            }
+        }
+    }
+
+    //显示确认价格弹窗
+    private fun showConfirmPriceDialog(url: String) {
+        orderBean?.let {
+            DialogUtil.getDelAndSureDialog(
+                this,
+                getString(R.string.确认现金金额).format(it.data.expressPayAllMoney)
+                    .replace(",", "."),
+                {},
+                {
+                    confirmPickUp(url, 5) {
+                        it.data.orderState = 5
+                        showStatueMapUI(it)
+                        iv_to_gd.callOnClick()
+                    }
+                })
+        }
     }
 
     fun startNavi(startLat: Double, startLon: Double, endLat: Double, endLon: Double) {
@@ -475,6 +525,27 @@
         }
     }
 
+    //确认送达
+    private fun confirmDelivery(i: Int, num: String, imgTwo: String, click: () -> Unit) {
+        var map = getMapByAny()
+        map["orderId"] = orderId
+        map["orderType"] = orderType
+        map["state"] = i
+        if (!num.isNullOrEmpty())
+            map["pickUpCode"] = num
+        Log.e(
+            "定位==============》",
+            "${MyApplication.getLocation()?.latitude},${MyApplication.getLocation()?.longitude}"
+        )
+        map["imgTwo"] = imgTwo
+        map["lat"] = MyApplication.getLocation()?.latitude ?: 0.0
+        map["lon"] = MyApplication.getLocation()?.longitude ?: 0.0
+        callNet(Api.process, map) {
+            OrderTimeOutManager.instance.checkOrderManager(orderId, orderType, i)
+            click()
+        }
+    }
+
     private fun callStatue(phone: String, i: Int, click: () -> Unit) {
         var map = getMapByAny()
         map["orderId"] = orderId
@@ -489,6 +560,21 @@
         }
     }
 
+    //确认收获
+    private fun confirmPickUp(imgOne: String, i: Int, click: () -> Unit) {
+        var map = getMapByAny()
+        map["orderId"] = orderId
+        map["orderType"] = orderType
+        map["imgOne"] = imgOne
+        map["state"] = i
+        map["lat"] = MyApplication.getLocation()?.latitude ?: 0.0
+        map["lon"] = MyApplication.getLocation()?.longitude ?: 0.0
+        callNet(Api.process, map) {
+            OrderTimeOutManager.instance.checkOrderManager(orderId, orderType, i)
+            click()
+        }
+    }
+
     private var movedByFinger = false
 
     /***

--
Gitblit v1.7.1