From f8797b4d48ecee1a9c97e12cb220f9aeffb60301 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Fri, 11 Aug 2023 16:39:24 +0800 Subject: [PATCH] =?UTF-8?q?[6.0.0]=20=E4=BB=BB=E5=8A=A1=E5=92=8CUI?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/taxi/constant/TaskTypeEnum.kt | 2 +- .../java/com/mogo/och/taxi/model/TaxiModel.kt | 6 ++- .../och/taxi/model/TaxiUnmannedViewModel.kt | 28 +++++++++++- .../mogo/och/taxi/ui/TaxiBeingTaskFragment.kt | 29 ++++++------- .../och/taxi/ui/TaxiOrderCancelDialog.java | 43 ++++++------------- .../och/taxi/ui/unmanned/UnmannedIntent.kt | 22 +--------- .../och/taxi/ui/unmanned/UnmannedState.kt | 2 +- 7 files changed, 63 insertions(+), 69 deletions(-) diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/constant/TaskTypeEnum.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/constant/TaskTypeEnum.kt index d5ae73ec9f..89f59132c6 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/constant/TaskTypeEnum.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/constant/TaskTypeEnum.kt @@ -1,6 +1,6 @@ package com.mogo.och.taxi.constant/** * Created on 2023/8/7 - * taskType = 1 虚拟任务(演练), = 2 接驾任务(运营), = 3 //送驾任务(运营) + * taskType = 1 虚拟任务(演练任务), = 2 接驾任务(运营), = 3 //送驾任务(运营) */ enum class TaskTypeEnum(val code: Int) { None(0), diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt index e19df38a8b..fad2fa8e97 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt @@ -601,7 +601,11 @@ object TaxiModel { } } - private fun arriveSite(siteId: Long, isArriveEndSite: Boolean) { + /** + * 到站(起点、终点) + * isArriveEndSite true 终点, false 起点 + */ + public fun arriveSite(siteId: Long, isArriveEndSite: Boolean) { arriveSite(mContext!!,siteId,object : OchCommonServiceCallback{ override fun onSuccess(data: BaseData?) { if (data == null || data.code != 0) return diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiUnmannedViewModel.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiUnmannedViewModel.kt index b80c55d352..c588cf381d 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiUnmannedViewModel.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiUnmannedViewModel.kt @@ -25,6 +25,7 @@ import com.mogo.och.taxi.constant.TaxiOrderStatusEnum import com.mogo.och.taxi.constant.TaxiUnmannedConst import com.mogo.och.taxi.constant.TaxtServingStatusManager import com.mogo.och.taxi.network.CarServiceManager +import com.mogo.och.taxi.network.CarServiceManager.cancelOrder import com.mogo.och.taxi.network.CarServiceManager.contrailList import com.mogo.och.taxi.network.CarServiceManager.queryCarOrderByOrderNo import com.mogo.och.taxi.ui.unmanned.TaskAndOrderUiState @@ -72,8 +73,31 @@ class TaxiUnmannedViewModel : BaseViewModel(){ } is UnmannedIntent.CloseOrderByDriver -> { - + if (mCurrentTaskAndOrder != null && mCurrentTaskAndOrder!!.order != null){ + val site = mCurrentTaskAndOrder!!.order!!.orderEndSite; + TaxiModel.arriveSite(site!!.siteId,true) + } } + + is UnmannedIntent.CancelOrder -> {// 取消订单, 暂未加取消类型和原因 + handleCancelOrder() + } + } + } + + private fun handleCancelOrder() { + if (mCurrentTaskAndOrder != null && mCurrentTaskAndOrder!!.order != null){ + cancelOrder(mContext, mCurrentTaskAndOrder!!.order!!.orderNo, + object : OchCommonServiceCallback{ + override fun onSuccess(data: BaseData?) { + d(SceneConstant.M_TAXI + TAG, "handleCancelOrder() = onSuccess") + } + + override fun onFail(code: Int, msg: String?) { + d(SceneConstant.M_TAXI + TAG, "handleCancelOrder() $code $msg") + } + + }) } } @@ -265,7 +289,7 @@ class TaxiUnmannedViewModel : BaseViewModel(){ /** * 查询接驾/送驾任务轨迹集合 - * 注: 运营单刚来的时候, 有可能还在运行一个演练单, 要先跑完演练单才跑运营单 + * 注: 运营单刚来的时候, 有可能还在运行一个演练任务, 要先跑完演练任务才跑运营单 */ private fun queryOrderContrails(planningLines: Array?) { if (planningLines == null) return diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiBeingTaskFragment.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiBeingTaskFragment.kt index 85f3f8f73c..384fa05cfa 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiBeingTaskFragment.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiBeingTaskFragment.kt @@ -36,6 +36,7 @@ import com.mogo.och.taxi.bean.OrderDetail import com.mogo.och.taxi.bean.OrderQueryRouteInfoRespBean import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean import com.mogo.och.taxi.bean.StartServiceRespBean +import com.mogo.och.taxi.constant.TaskStatusEnum import com.mogo.och.taxi.constant.TaskTypeEnum import com.mogo.och.taxi.constant.TaxiOrderStatusEnum import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TAXI_END_MAP_MAKER @@ -43,6 +44,7 @@ import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TAXI_START_MAP_MAK import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TYPE_MARKER_TAXI_ORDER import com.mogo.och.taxi.model.TaxiModel import com.mogo.och.taxi.model.TaxiUnmannedViewModel +import com.mogo.och.taxi.ui.TaxiOrderCancelDialog.CommitReasonListener import com.mogo.och.taxi.ui.unmanned.TaskAndOrderUiState import com.mogo.och.taxi.ui.unmanned.UnmannedIntent import kotlinx.android.synthetic.main.taxi_no_data_common_view.noOrderDataTv @@ -193,7 +195,7 @@ class TaxiBeingTaskFragment : BaseFragment(), /** * 根据任务类型判断任务显示, * 虚拟单, 显示在进行中 前往上车点 - * 演练单,显示演练单, 同时有订单显示在待服务中 + * 演练任务,显示演练任务, 同时有订单显示在待服务中 * 当前任务是接驾任务,显示订单状态+运营单 订单显示在进行中, 任务不再显示 */ val taskType = taskAndOrder.taskType // 任务类型 @@ -427,25 +429,19 @@ class TaxiBeingTaskFragment : BaseFragment(), private fun updateUIShowStatus(taskType: Int, currentStatus: Int, order: OrderDetail?) { when (taskType) { - TaskTypeEnum.VirtualTask.code -> { //演练单 - taskStatus.visibility = View.VISIBLE - taskTypeTv.visibility = View.VISIBLE + TaskTypeEnum.VirtualTask.code -> { //演练任务 + cancelOrder.visibility = View.GONE orderPhoneAndNum.visibility = View.GONE - startStationName.visibility = View.VISIBLE - endStationName.visibility = View.VISIBLE taskClickBtn.visibility = View.GONE // currentStatus 0:空闲 1:获取任务 2:开始任务 3:到达目的地 naviToStart.visibility = View.GONE - naviToEnd.visibility = if (currentStatus == 2) View.VISIBLE else View.GONE - taskOtherInfo.visibility = if (currentStatus == 0) View.GONE else View.VISIBLE + naviToEnd.visibility = if (currentStatus >= TaskStatusEnum.StartTask.code) View.VISIBLE else View.GONE + taskOtherInfo.visibility = if (currentStatus == TaskStatusEnum.GetTask.code) View.GONE else View.VISIBLE } TaskTypeEnum.ToOrderEndTask.code,TaskTypeEnum.ToOrderStartTask.code -> {// 运营单(接驾任务、送驾任务) if (order == null) return - taskStatus.visibility = View.VISIBLE - taskTypeTv.visibility = View.VISIBLE + cancelOrder.visibility = View.VISIBLE orderPhoneAndNum.visibility = View.VISIBLE - startStationName.visibility = View.VISIBLE - endStationName.visibility = View.VISIBLE taskClickBtn.visibility = View.VISIBLE // orderStatus: 0 订单创建(为派单), 10 已派上司机(司机去往上车点), 20 司机到达上车点, // 30 乘客到达上车点, 40 服务中(去往目的地), 50 到达目的地, 60 已完成, 70 已取消 @@ -618,9 +614,12 @@ class TaxiBeingTaskFragment : BaseFragment(), d(SceneConstant.M_TAXI + TAG, taskStatus.text.toString()) startOrEndService() } else if (v.id == cancelOrder.id) { - if (mCurrentTaskAndOrder != null && mCurrentTaskAndOrder!!.order != null){ - TaxiOrderCancelDialog(mActivity, - mCurrentTaskAndOrder!!.order!!.orderNo,mCurrentTaskAndOrder!!.order!!.orderStatus).show() + if (mCurrentTaskAndOrder!!.order != null){ + TaxiOrderCancelDialog(mActivity,mCurrentTaskAndOrder!!.order!!.orderStatus + ) { type, reason -> + mViewModel.sendUiIntent(UnmannedIntent.CancelOrder(type,reason)) + } + .show() } } else if (v.id == naviToStart.id) { if (mTaxiFragment != null) { diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiOrderCancelDialog.java b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiOrderCancelDialog.java index 547f4239bc..cb371f43a1 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiOrderCancelDialog.java +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiOrderCancelDialog.java @@ -38,20 +38,18 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi private static final String TAG = "OCHTaxiOrderCancelDial"; protected WeakReference contextWeakReference; - private GridView mContentView; - private TextView mCancelCommitTv; - private TextView mDialogCancelTv; private String mCurrentReason = ""; private ContentAdapter mContentAdapter; private int mOrderStatus;//1:预约单,其他为即时单的状态, 主要是控制乘客上车 乘客下车这几个选项的显示 private String[] mContentArrays; - private String mOrderNo; - protected TaxiOrderCancelDialog(Context context, String orderNo, int orderStatus) { + private CommitReasonListener mCommitListener = null; + + protected TaxiOrderCancelDialog(Context context, int orderStatus,CommitReasonListener commitListener) { super(context,R.style.OrderCancelDialog); - mOrderNo = orderNo; this.mOrderStatus = orderStatus; contextWeakReference = new WeakReference<>(context); + this.mCommitListener = commitListener; initReasonArray(); } @@ -86,15 +84,6 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi } } - protected TaxiOrderCancelDialog(Context context, boolean cancelable, OnCancelListener cancelListener) { - super(context, cancelable, cancelListener); - } - - protected TaxiOrderCancelDialog(Context context, int themeResId) { - super(context, themeResId); - } - - @RequiresApi(api = Build.VERSION_CODES.M) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -122,11 +111,10 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi window.setAttributes(params); } - @RequiresApi(api = Build.VERSION_CODES.M) private void initView() { - mContentView = findViewById(R.id.module_och_taxi_order_cancel_content_gv); - mCancelCommitTv = findViewById(R.id.order_cancel_commit_tv); - mDialogCancelTv = findViewById(R.id.order_dialog_cancel_tv); + GridView mContentView = findViewById(R.id.module_och_taxi_order_cancel_content_gv); + TextView mCancelCommitTv = findViewById(R.id.order_cancel_commit_tv); + TextView mDialogCancelTv = findViewById(R.id.order_dialog_cancel_tv); mContentAdapter = new ContentAdapter(contextWeakReference.get(), mContentArrays); mContentView.setAdapter(mContentAdapter); mContentView.setSelector(new ColorDrawable(Color.TRANSPARENT)); @@ -140,12 +128,9 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi public void onClick(View v) { if (v.getId() == R.id.order_cancel_commit_tv) {//bt commit if (!TextUtils.isEmpty(mCurrentReason) && TaxiOrderCancelReasons.getType(mCurrentReason) != 0) { - if (1 == mOrderStatus){//订单 -// mOchTaxiFragmentWeak.get().cancelOrderById(mOrderNo, TaxiOrderCancelReasons.getType(mCurrentReason),mCurrentReason); - //todo 取消还未执行的订单 - }else {//任务 - //todo 取消正在执行的任务 -// mOchTaxiFragmentWeak.get().cancelCurOrder(TaxiOrderCancelReasons.getType(mCurrentReason),mCurrentReason); + //todo 取消正在执行的任务 + if (mCommitListener != null){ + mCommitListener.cancelCurOrder(TaxiOrderCancelReasons.getType(mCurrentReason),mCurrentReason); } dismiss(); }else { @@ -161,13 +146,13 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi public void onItemClick(AdapterView parent, View view, int position, long id) { CallerLogger.INSTANCE.d(M_TAXI + TAG,"mCurrentReason ="+ mContentArrays[position]); mCurrentReason = mContentArrays[position]; -// GradientDrawable background = (GradientDrawable) mCancelBt.getBackground();//GradientDrawable是Drawable的子类 -// background.setColor(Color.parseColor("#2B6EFF")); -// mCancelBt.setTextColor(Color.parseColor("#FFFFFF")); -// mCancelBt.setClickable(true); mContentAdapter.notifyCurrentReasons(mCurrentReason); } + interface CommitReasonListener{ + void cancelCurOrder(int type, String reason); + } + class ContentAdapter extends BaseAdapter{ private Context context; diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/unmanned/UnmannedIntent.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/unmanned/UnmannedIntent.kt index 454b6bcce4..9ce117ba92 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/unmanned/UnmannedIntent.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/unmanned/UnmannedIntent.kt @@ -8,29 +8,11 @@ import com.mogo.och.taxi.base.IUiIntent */ sealed class UnmannedIntent: IUiIntent{ - //获取接单/暂停接单状态 - object GetReceivingOrderState : UnmannedIntent() - //开始接单 、 暂停接单 object StartOrPauseReceivingOrder : UnmannedIntent() - //获取当前任务信息 - object GetCurrentTask : UnmannedIntent() - - //到站获取下一个执行的任务信息 - object GetNextTask: UnmannedIntent() - - //开始接单后获取要前往的虚拟站点 - object GetVirtualStation: UnmannedIntent() - - //开始执行任务 - object StartTask: UnmannedIntent() - - //到达乘客上车点 - object ArrivedOrderStartStation: UnmannedIntent() - - //到达乘客下车点 - object ArrivedOrderEndStation: UnmannedIntent() + //取消订单 + class CancelOrder(type: Int, reason: String) : UnmannedIntent() //订单服务完成 object JourneyCompleted: UnmannedIntent() diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/unmanned/UnmannedState.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/unmanned/UnmannedState.kt index 17551fa41b..92effaaba1 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/unmanned/UnmannedState.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/unmanned/UnmannedState.kt @@ -18,7 +18,7 @@ sealed class OrderUiState { sealed class TaskAndOrderUiState { object INIT : TaskAndOrderUiState() - data class TASKANDORDER(val model: QueryCurrentTaskRespBean.Result?) : TaskAndOrderUiState()//演练、接驾、送驾任务 + data class TASKANDORDER(val model: QueryCurrentTaskRespBean.Result?) : TaskAndOrderUiState()//演练任务、接驾、送驾任务 data class UNTRUTHTASK(val untruthTask: StartServiceRespBean.Result?) : TaskAndOrderUiState()//伪任务 data class ORDERCANCEL(var isCancel: Boolean) : TaskAndOrderUiState()//伪任务