[6.8.0]
[fix] [任务重选问题]
This commit is contained in:
@@ -17,6 +17,7 @@ object OCHSocketMessageManager {
|
||||
const val msgWriteOffPassengerType:Int = 6295554 //核销消息
|
||||
const val msgOperateDoorType = 6295556 // 开/关门消息
|
||||
const val msgOrderClosedType = 6295555 //订单结束消息
|
||||
const val msgTaskUsedType = 6295557 //订单结束消息
|
||||
|
||||
const val OPERATION_SYSTEM: Int = -1 // 运营消息 默认是次消息类型
|
||||
const val OPERATION_ORDER_TYPE: Int = 0 // 还车通知
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.mogo.och.common.module.manager.socket.cloud.data
|
||||
/**
|
||||
* @author: wangmingjun
|
||||
* @date: 2023/2/25
|
||||
*/
|
||||
data class TaskUsedMsg(
|
||||
var sn: String,
|
||||
var businessType: Int,
|
||||
var plateNumber: String,
|
||||
var taskId: Long,
|
||||
var pushTimeStamp: Long = System.currentTimeMillis() // 消息下发时间戳
|
||||
){
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.mogo.och.weaknet.action
|
||||
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.manager.socket.cloud.IOchOnMessageListener
|
||||
import com.mogo.och.common.module.manager.socket.cloud.data.TaskUsedMsg
|
||||
import com.mogo.och.weaknet.model.LineModel
|
||||
import com.mogo.och.weaknet.repository.RepositoryManager
|
||||
|
||||
class TaskUsedAction() :
|
||||
IOchOnMessageListener<TaskUsedMsg> {
|
||||
|
||||
private val tag = "OperateAction"
|
||||
|
||||
override fun target(): Class<TaskUsedMsg> {
|
||||
|
||||
return TaskUsedMsg::class.java
|
||||
}
|
||||
|
||||
override fun onMsgReceived(obj: TaskUsedMsg?) {
|
||||
i(M_BUS + tag, "onMsgReceived = $obj")
|
||||
obj?.apply {
|
||||
if (LoginStatusManager.getLoginInfo()?.businessType==businessType
|
||||
&&RepositoryManager.supportDb()) {
|
||||
LineModel.endTaskByOther(taskId,plateNumber)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -29,4 +29,6 @@ public interface IBusLinesCallback {
|
||||
|
||||
default void onCompleteTask(){}
|
||||
default void onCompleteTaskFail(){}
|
||||
|
||||
default void onEndTaskByOther(long taskId,String plateNumber){}
|
||||
}
|
||||
|
||||
@@ -453,4 +453,11 @@ object LineModel {
|
||||
}
|
||||
}
|
||||
|
||||
fun endTaskByOther(taskId: Long,plateNumber:String) {
|
||||
RepositoryManager.endTaskByOther(taskId)
|
||||
mBusLinesCallbackMap.forEach { callback ->
|
||||
callback.value.onEndTaskByOther(taskId,plateNumber)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.mogo.och.common.module.utils.ResourcesUtils
|
||||
import com.mogo.och.data.bean.BusRoutesResult
|
||||
import com.mogo.och.data.bean.BusTransferData
|
||||
import com.mogo.och.shuttle.weaknet.R
|
||||
import com.mogo.och.weaknet.action.TaskUsedAction
|
||||
import com.mogo.och.weaknet.constant.BusConst
|
||||
import com.mogo.och.weaknet.util.ShuttleVoiceManager
|
||||
|
||||
@@ -36,6 +37,12 @@ object ThirdDeviceData {
|
||||
OCHSocketMessageManager.msgMonitorType,
|
||||
OperateAction(true)
|
||||
)
|
||||
|
||||
OCHSocketMessageManager.registerSocketMessageListener(
|
||||
OCHSocketMessageManager.msgTaskUsedType,
|
||||
TaskUsedAction()
|
||||
)
|
||||
|
||||
// 长链接监听
|
||||
AbnormalFactorsLoopManager.startLoopAbnormalFactors(AbsMogoApplication.getApp())
|
||||
|
||||
@@ -50,6 +57,8 @@ object ThirdDeviceData {
|
||||
|
||||
OCHSocketMessageManager.releaseSocketMessageListener(OCHSocketMessageManager.msgMonitorType)
|
||||
|
||||
OCHSocketMessageManager.releaseSocketMessageListener(OCHSocketMessageManager.msgTaskUsedType)
|
||||
|
||||
AbnormalFactorsLoopManager.stopLoopAbnormalFactors()
|
||||
|
||||
//监听乘客屏发来的消息
|
||||
|
||||
@@ -128,6 +128,11 @@ object RepositoryManager {
|
||||
return lineRepository?.endTask(taskId)
|
||||
}
|
||||
|
||||
|
||||
fun endTaskByOther(taskId: Long) {
|
||||
lineRepository?.endTaskByOther(taskId)
|
||||
}
|
||||
|
||||
fun haveRunningTask():Boolean{
|
||||
return lineRepository?.haveRunningTask()?:false
|
||||
}
|
||||
|
||||
@@ -34,5 +34,6 @@ interface ILineRepository {
|
||||
}
|
||||
|
||||
fun release()
|
||||
fun endTaskByOther(taskId: Long) {}
|
||||
|
||||
}
|
||||
@@ -314,6 +314,10 @@ class WeaknetRepository : ILineRepository {
|
||||
}
|
||||
}
|
||||
|
||||
override fun endTaskByOther(taskId: Long) {
|
||||
TaskDb.endTask(taskId)
|
||||
}
|
||||
|
||||
override fun queryCarExecutableTaskList(
|
||||
ochCommonServiceCallback: OchCommonServiceCallback<CarExecutableTaskResponse>
|
||||
) {
|
||||
|
||||
@@ -93,6 +93,14 @@ class SwitchLineTaskAdapter(
|
||||
return mData.size
|
||||
}
|
||||
|
||||
fun setCurrentTaskUsed(taskId: Long) {
|
||||
mData.forEach {
|
||||
if(it.taskId==taskId){
|
||||
it.status = TaskDataBean.used
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class SwitchLineTaskViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||
val taskTime: AppCompatCheckedTextView = itemView.findViewById(R.id.actv_task_time) // 时间
|
||||
}
|
||||
|
||||
@@ -52,6 +52,8 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba
|
||||
|
||||
private lateinit var linearLayoutManager:GridLayoutManager
|
||||
|
||||
private val tempData = mutableMapOf<Long,String>()
|
||||
|
||||
init {
|
||||
LayoutInflater.from(context).inflate(R.layout.shuttle_weak_switch_task, this, true)
|
||||
initView()
|
||||
@@ -73,7 +75,16 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba
|
||||
if(tempCheckTask==null){
|
||||
ToastUtils.showShort("请选择任务")
|
||||
}else{
|
||||
viewModel?.changeLineStart(tempCheckTask)
|
||||
if(tempCheckTask.status == TaskDataBean.used){
|
||||
val reason = tempData[tempCheckTask.taskId]
|
||||
if(reason==null){
|
||||
ToastUtils.showShort("该任务已被其他车辆使用、请切换任务")
|
||||
}else{
|
||||
ToastUtils.showShort("该任务已被${reason}使用、请切换任务")
|
||||
}
|
||||
}else {
|
||||
viewModel?.changeLineStart(tempCheckTask)
|
||||
}
|
||||
}
|
||||
}
|
||||
actv_cancle_task.onClick {
|
||||
@@ -140,6 +151,7 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba
|
||||
|
||||
override fun startTaskSuccess() {
|
||||
viewbizModel?.showRunningTaskView()
|
||||
tempData.clear()
|
||||
}
|
||||
|
||||
override fun showErrorInfo() {
|
||||
@@ -156,6 +168,13 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba
|
||||
mAdapter.setDataList(mutableListOf())
|
||||
}
|
||||
|
||||
override fun setCurrentTaskUsed(taskId: Long,plateNumber: String) {
|
||||
BizLoopManager.runInMainThread{
|
||||
mAdapter.setCurrentTaskUsed(taskId)
|
||||
tempData[taskId] = "该任务已被${plateNumber}使用"
|
||||
}
|
||||
}
|
||||
|
||||
private fun showEmptyView(){
|
||||
actv_submit_task.setTextColor(ResourcesUtils.getColor(R.color.bus_color_66666))
|
||||
actv_submit_task.isEnabled = false
|
||||
|
||||
@@ -78,6 +78,7 @@ class SwtichTaskModel : ViewModel(), IBusLinesCallback {
|
||||
fun startTaskSuccess()
|
||||
fun showErrorInfo()
|
||||
fun resetRecycleView()
|
||||
fun setCurrentTaskUsed(taskId: Long,plateNumber:String)
|
||||
}
|
||||
|
||||
fun onBusLineTasks(o: MutableList<TaskDataBean>?) {
|
||||
@@ -121,6 +122,8 @@ class SwtichTaskModel : ViewModel(), IBusLinesCallback {
|
||||
LineModel.commitSwitchLineId(checkTask,tasksBelongLine!!)
|
||||
}
|
||||
|
||||
|
||||
override fun onEndTaskByOther(taskId: Long,plateNumber:String) {
|
||||
viewCallback?.setCurrentTaskUsed(taskId,plateNumber)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user