diff --git a/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/model/BusPassengerModel.kt b/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/model/BusPassengerModel.kt index 06213886a6..bc01906981 100644 --- a/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/model/BusPassengerModel.kt +++ b/OCH/bus/passenger/src/main/java/jinlv/com/mogo/och/bus/passenger/model/BusPassengerModel.kt @@ -39,18 +39,10 @@ import com.mogo.och.bus.passenger.callback.* import com.mogo.och.bus.passenger.constant.BusPassengerConst import com.mogo.och.bus.passenger.network.BusPassengerServiceManager import com.mogo.och.bus.passenger.network.BusPassengerServiceManager.driverAppSn -import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg -import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg -import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType -import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager -import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.pushAppOperationalMsgBox import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager -import com.mogo.och.common.module.network.OchCommonServiceCallback -import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.startLoopAbnormalFactors -import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.stopLoopAbnormalFactors import com.mogo.och.common.module.manager.distance.IDistanceListener import com.mogo.och.common.module.manager.distance.ITrajectoryListener import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager.addDistanceListener @@ -59,11 +51,21 @@ import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager. import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager.suspendCalculate import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.manager.loop.LoopInfo +import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.startLoopAbnormalFactors +import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.stopLoopAbnormalFactors +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager +import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.pushAppOperationalMsgBox +import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg +import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg +import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType +import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg +import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.OCHThreadPoolManager import com.mogo.och.common.module.utils.PinYinUtil import com.mogo.och.data.bean.BusRoutesResult import com.mogo.och.data.bean.BusStationBean +import com.mogo.och.data.bean.BusTransferData import io.reactivex.schedulers.Schedulers import java.util.concurrent.ConcurrentHashMap @@ -165,12 +167,7 @@ object BusPassengerModel { override fun onSuccess(data: PM2RoutesResponse) { if (data.result == null) { d(M_BUS_P + TAG, "order = queryDriverSiteByCoordinate = null") - if (routesResult != null) { - routesResult = null - mNextStationIndex = 0 - } - cleanStation("queryDriverSiteByCoordinate") - mRouteLineInfoCallback?.showNoTaskView() + clearLocalRouteResult() return } if (routesResult != null && data.result.equals(routesResult)) { @@ -202,7 +199,11 @@ object BusPassengerModel { }) } - private fun updatePassengerRouteInfo(result: BusRoutesResult) { + private fun updatePassengerRouteInfo(result: BusRoutesResult?) { + if (result == null) { + clearLocalRouteResult() + return + } if (mRouteLineInfoCallback != null) { d( M_BUS_P + TAG, @@ -434,6 +435,24 @@ object BusPassengerModel { OCHSocketMessageManager.OPERATION_SYSTEM ) } + }else if (baseMsg != null && baseMsg.type == DPMsgType.TYPE_TASK_DETAILS.type){ + val msg = GsonUtils.fromJson(String(byteArray), TaskDetailsMsg::class.java) + if (msg == null || msg.msg?.isEmpty() == true){ + clearLocalRouteResult() + return + } + val (loginStatus, result) = GsonUtils.fromJson( + msg.msg, + BusTransferData::class.java + ) + + if (msg != null && mDriverStatusCallback != null) { + mDriverStatusCallback!!.changeOperationStatus(loginStatus == 1) + } + if (result != null) { //已司机端传来的为准 + routesResult = result + updatePassengerRouteInfo(routesResult) + } } } } @@ -528,4 +547,15 @@ object BusPassengerModel { setStationPoint(null, null, -1L) } + private fun clearLocalRouteResult() { + if (routesResult != null) { + routesResult = null + } + mNextStationIndex = 0 + cleanStation("queryDriverSiteByCoordinate") + if (mRouteLineInfoCallback != null) { + mRouteLineInfoCallback!!.showNoTaskView() + } + } + } \ No newline at end of file