[滑动出发、到站、结束任务]
This commit is contained in:
yangyakun
2024-08-15 15:07:53 +08:00
parent 2f7be03ce6
commit 5d1593927d
35 changed files with 643 additions and 1119 deletions

View File

@@ -78,6 +78,7 @@ import com.mogo.och.common.module.voice.VoiceNotice;
import com.mogo.och.data.bean.BusRoutesResult;
import com.mogo.och.data.bean.BusStationBean;
import com.mogo.och.data.bean.BusTransferData;
import com.mogo.och.data.bean.LineInfo;
import com.mogo.och.data.manager.cache.CacheDataManager;
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager;
@@ -941,14 +942,15 @@ public class OrderModel {
*/
private void updateBusStatus(BusRoutesResult result) {
if (result == null) {
LineManager.setLineId(-1);
LineManager.setLineInfo(null);
return;
}
busRoutesResult = result;
List<BusStationBean> site = result.getSites();
currentTaskId = result.getTaskId();
currentLineId = result.getLineId();
LineManager.setLineId(currentLineId);
String lineName = result.getName();
LineManager.setLineInfo(new LineInfo(currentLineId,lineName));
stationList.clear();
stationList.addAll(site);

View File

@@ -667,7 +667,7 @@ class DriverM1Model {
if (TextUtils.isEmpty(data.data.orderNo)){//还未换车,显示还车状态
mOrderCallback?.updateReturnCarStatus(false)
mCurrentOrder = null
LineManager.setLineId(-1)
LineManager.setLineInfo(null)
currentChangeDestMsg = null
sendCharterEndTripInfo()
startOrStopCheckCountDown(false)
@@ -681,7 +681,7 @@ class DriverM1Model {
mOrderCallback?.updateReturnCarStatus(true)
clearAutopilotControlParameters()
mCurrentOrder = null
LineManager.setLineId(-1)
LineManager.setLineInfo(null);
currentChangeDestMsg = null
isArrivedStation = false
startOrStopCheckCountDown(false)
@@ -708,7 +708,7 @@ class DriverM1Model {
d(SceneConstant.M_CHARTER_D + TAG, "data.data is null")
isArrivedStation = false
mCurrentOrder = null
LineManager.setLineId(-1)
LineManager.setLineInfo(null)
queryCurrentServiceStatus()
return
}
@@ -726,9 +726,9 @@ class DriverM1Model {
mCurrentOrder?.lineId.let {
if (it == null || it < 0) {
LineManager.setLineId(-1)
LineManager.setLineInfo(null)
} else {
LineManager.setLineId(it)
LineManager.setLineInfo(LineInfo(it.toLong(),mCurrentOrder?.lineName?:""))
}
}

View File

@@ -23,10 +23,6 @@ object OchAutoPilotManager : IMoGoReceiveReceivedAckListener {
const val TAG = "OchAutoPilotManager"
var contraiInfo: ContraiInfo? = null
var startStation: BusStationBean? = null
var endStation: BusStationBean? = null
init {
CallerReceiveReceivedAckListenerManager.addListener(TAG,this)
}

View File

@@ -2,36 +2,29 @@ package com.mogo.och.common.module.manager.autopilot.line
import com.mogo.eagle.core.function.call.map.CallerMapGlobalTrajectoryDrawManager
import com.mogo.och.common.module.utils.CallerBase
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.data.bean.ContraiInfo
import com.mogo.och.data.bean.LineInfo
/**
* 订单中
*/
object LineManager : CallerBase<ILineCallback>() {
private var lineId: Int = -1
@JvmStatic
fun setLineId(value: Int) {
lineId = if (value < 0) {
clearGlobalTrajectory(true)
-1
} else {
value
}
}
@JvmStatic
fun setLineId(value: Long) {
lineId = if (value < 0) {
clearGlobalTrajectory(true)
-1
} else {
value.toInt()
}
}
var lineInfos: LineInfo? = null
var contraiInfo: ContraiInfo? = null
var startStation: BusStationBean? = null
var endStation: BusStationBean? = null
@JvmStatic
fun getLineId():Int{
return lineId
fun setLineInfo(lineInfo: LineInfo?){
if(lineInfo==null){
clearGlobalTrajectory(true)
}
this.lineInfos = lineInfo
}
override fun doSomeAfterAddListener(tag: String, listener: ILineCallback) {
super.doSomeAfterAddListener(tag, listener)
if (hasDrawnGlobalTrajectory()) {
@@ -55,7 +48,7 @@ object LineManager : CallerBase<ILineCallback>() {
}
fun drawGlobalTrajectory(): Pair<Boolean, String> {
if(lineId<0){
if (lineInfos == null) {
return Pair(false,"请设置正确线路或订单")
}
return CallerMapGlobalTrajectoryDrawManager.drawGlobalTrajectory().apply {

View File

@@ -109,6 +109,18 @@ public class DateTimeUtil {
return calendar.getTimeInMillis();
}
public static boolean isSameDay(long startData,long endData){
Calendar startCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));
startCalendar.setTimeInMillis(startData);
Calendar endCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));
endCalendar.setTimeInMillis(endData);
int startDayofYear = startCalendar.get(Calendar.DAY_OF_YEAR);
int endDayofYear = endCalendar.get(Calendar.DAY_OF_YEAR);
return startDayofYear==endDayofYear;
}
public static String getAfterSecondTime(int timeInSecond){
Calendar beforeTime = Calendar.getInstance();
beforeTime.add(Calendar.SECOND, timeInSecond);

View File

@@ -0,0 +1,14 @@
package com.mogo.och.data.bean
data class LineInfo(
/**
* 线路id
*/
val lineId: Long,
/**
* 线路名称
*/
val lineName: String,
)

View File

@@ -86,7 +86,7 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
return getFragmentByServeName(OchCommonConst.OFFLINE_PASSENGER)
}
}
if(DeviceUtils.isEB5Model()&&AppIdentityModeUtils.isCharterPassenger(FunctionBuildConfig.appIdentityMode)){
if(DeviceUtils.isEB5Model()&&!AppIdentityModeUtils.isCharterPassenger(FunctionBuildConfig.appIdentityMode)){
val maxVolume = VolumeUtils.getMaxVolume(AudioManager.STREAM_MUSIC)
val volume = VolumeUtils.getVolume(AudioManager.STREAM_MUSIC)
val tartgetVolume = (maxVolume * 0.8).toInt()

View File

@@ -59,6 +59,7 @@ import com.mogo.och.common.module.voice.VoiceNotice;
import com.mogo.och.data.bean.BusRoutesResult;
import com.mogo.och.data.bean.BusStationBean;
import com.mogo.och.data.bean.BusTransferData;
import com.mogo.och.data.bean.LineInfo;
import com.mogo.och.data.manager.cache.CacheDataManager;
import com.mogo.och.shuttle.R;
import com.mogo.och.shuttle.bean.BusRoutesResponse;
@@ -882,11 +883,11 @@ public class OrderModel {
*/
private void updateBusStatus(BusRoutesResult result) {
if (result == null) {
LineManager.setLineId(-1);
LineManager.setLineInfo(null);
return;
}
busRoutesResult = result;
LineManager.setLineId(busRoutesResult.getLineId());
LineManager.setLineInfo(new LineInfo(busRoutesResult.getLineId(),busRoutesResult.getName()));
stationList.clear();
stationList.addAll(result.getSites());
for (int i = 0; i < stationList.size(); i++) {

View File

@@ -1,23 +0,0 @@
package com.mogo.och.weaknet.bean;
import com.mogo.commons.storage.SharedPrefsMgr;
import com.mogo.och.common.module.utils.DateTimeUtil;
/**
* 中止/结束任务请求
*/
public class BusCloseTaskRequest {
private String sn;
private int taskId;
private long writeVersion;
public BusCloseTaskRequest(int taskId) {
this.sn = SharedPrefsMgr.getInstance().getSn();
this.taskId = taskId;
this.writeVersion = DateTimeUtil.getCurrentTimeStamp();
}
public String getSn() {
return sn;
}
}

View File

@@ -1,86 +0,0 @@
package com.mogo.och.weaknet.bean;
/**
* @author congtaowang
* @since 2021/3/23
* <p>
* 小巴订单
*/
public class BusOrderBean {
/**
* orderNo number
* passengerPhone string 下单用户电话
* startStationId integer 开始站点
* startStationName string
* endStationId integer 结束站点
* endStationName string
*/
private String orderNo;
private String passengerPhone;
private int startStationId;//乘客上车点
private String startStationName;
private String endStationName;
private int endStationId;//乘客下车点
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public void setPassengerPhone(String passengerPhone) {
this.passengerPhone = passengerPhone;
}
public void setStartStationId(int startStationId) {
this.startStationId = startStationId;
}
public void setStartStationName(String startStationName) {
this.startStationName = startStationName;
}
public void setEndStationName(String endStationName) {
this.endStationName = endStationName;
}
public void setEndStationId(int endStationId) {
this.endStationId = endStationId;
}
public String getOrderNo() {
return orderNo;
}
public String getPassengerPhone() {
return passengerPhone;
}
public int getStartStationId() {
return startStationId;
}
public String getStartStationName() {
return startStationName;
}
public String getEndStationName() {
return endStationName;
}
public int getEndStationId() {
return endStationId;
}
@Override
public String toString() {
return "BusOrderBean{" +
"orderNo=" + orderNo +
", passengerPhone='" + passengerPhone + '\'' +
", startStationId=" + startStationId +
", startStationName='" + startStationName + '\'' +
", endStationName='" + endStationName + '\'' +
", endStationId=" + endStationId +
'}';
}
}

View File

@@ -1,23 +0,0 @@
package com.mogo.och.weaknet.bean;
import com.mogo.eagle.core.data.BaseData;
import java.util.List;
/**
* @author: wangmingjun
* @date: 2021/10/19
*/
public class BusOrdersResponse extends BaseData {
public Result data;
public static class Result{
public List<BusOrderBean> orders;
}
@Override
public String toString() {
return "BusOrdersResponse{" +
"data=" + data +
'}';
}
}

View File

@@ -1,20 +0,0 @@
package com.mogo.och.weaknet.bean;
import com.mogo.commons.storage.SharedPrefsMgr;
import com.mogo.och.common.module.utils.DateTimeUtil;
/**
* @author: wangmingjun
* @date: 2021/10/18
*/
public class BusResetDrivingLineRequest {
public String sn;
public long taskId; //切换到的线路id
public long writeVersion; //更新时间戳
public BusResetDrivingLineRequest(long taskId) {
this.sn = SharedPrefsMgr.getInstance().getSn();
this.taskId = taskId;
this.writeVersion = DateTimeUtil.getCurrentTimeStamp();
}
}

View File

@@ -1,8 +1,10 @@
package com.mogo.och.weaknet.bean
import com.mogo.eagle.core.data.BaseData
import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.data.bean.BusRoutesResult
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.data.bean.LineInfo
import com.mogo.och.weaknet.database.bean.TaskSiteDataBean
import java.lang.Boolean
import kotlin.String
@@ -23,13 +25,15 @@ class BusRoutesResponse : BaseData() {
companion object {
fun db2Beans(runnintTaskAndSites: List<TaskSiteDataBean>?): Triple<MutableList<BusStationBean>,BusStationBean?,Int> {
fun db2Beans(runnintTaskAndSites: List<TaskSiteDataBean>?): Pair<MutableList<BusStationBean>,Int> {
val result = mutableListOf<BusStationBean>()
var temp: BusStationBean? = null
var currentStation: BusStationBean? = null
var currentStationIndex = -1
var lineInfo:LineInfo?=null
if (runnintTaskAndSites.isNullOrEmpty()) {
return Triple(result,null,currentStationIndex)
LineManager.setLineInfo(lineInfo)
return Pair(result,currentStationIndex)
}
runnintTaskAndSites.forEachIndexed { index, taskAndsite ->
temp = BusStationBean()
@@ -46,12 +50,22 @@ class BusRoutesResponse : BaseData() {
temp?.seq = (taskAndsite.seq ?: 0)
temp?.siteId = if (taskAndsite.siteId == null) 0 else taskAndsite.siteId!!.toInt()
result.add(temp!!)
if (temp!!.drivingStatus == 2) {
// 正在进行中的任务
if (temp!!.drivingStatus == TaskSiteDataBean.drivingStatusCurrent) {
currentStation = temp
currentStationIndex = index
}
// 线路信息
if (lineInfo == null && taskAndsite.lineId != null && taskAndsite.lineName != null) {
lineInfo = LineInfo(taskAndsite.lineId!!, taskAndsite.lineName!!)
}
}
return Triple(result,currentStation,currentStationIndex)
LineManager.setLineInfo(lineInfo)
LineManager.startStation = currentStation
if (currentStationIndex < result.size-1) {
LineManager.endStation = result[currentStationIndex + 1]
}
return Pair(result,currentStationIndex)
}
}
}

View File

@@ -1,26 +0,0 @@
package com.mogo.och.weaknet.bean;
import com.mogo.commons.storage.SharedPrefsMgr;
/**
* @author congtaowang
* @since 2021/3/22
*
* 小巴车运营状态请求参数
*/
public class BusUpdateSiteStatusRequest {
public String sn;
public int taskId;
public int seq;//站点序号
public int siteId;//站点id
public long writeVersion; //更新时间戳
public BusUpdateSiteStatusRequest(int taskId,int siteId,int seq, long writeVersion) {
this.sn = SharedPrefsMgr.getInstance().getSn();
this.seq = seq;
this.siteId = siteId;
this.taskId = taskId;
this.writeVersion = writeVersion;
}
}

View File

@@ -1,36 +0,0 @@
package com.mogo.och.weaknet.bean;
import com.mogo.commons.storage.SharedPrefsMgr;
/**
* 查询下车乘客请求参数
*
* @author tongchenfei
*/
public class QueryLeaveAwayPassengersRequest {
private String sn;
private int seq; //站点在线路中的序号
private int siteId; //站点id
public QueryLeaveAwayPassengersRequest(int seq, int siteId) {
this.sn = SharedPrefsMgr.getInstance().getSn();
this.seq = seq;
this.siteId = siteId;
}
public void setSeq(int seq) {
this.seq = seq;
}
public void setSiteId(int siteId) {
this.siteId = siteId;
}
public int getSeq() {
return seq;
}
public int getSiteId() {
return siteId;
}
}

View File

@@ -1,60 +0,0 @@
package com.mogo.och.weaknet.bean;
import com.mogo.eagle.core.data.BaseData;
import java.util.List;
public
/**
* @author congtaowang
* @since 2021/3/26
*
* 到站查询下车乘客
*/
class QueryLeaveAwayPassengersResponse extends BaseData {
public Result data;
public static class Result {
public List< LeaveAwayPassenger > orders;
}
public static class LeaveAwayPassenger {
/**
* orderNo: 订单no
* orderStatus: 订单状态
* orderType订单类型0及时1预约
* bookingTime预计用车时间
* businessType订单运营类型 9:taxi10:bus
* startSiteId 起点站点id
* userPhone: 乘客联系方式
* startSitePoint开始站点坐标
* startSiteAddr开始地址
* endSiteId结束站点id
* endSitePoint结束站点坐标
* carNumber车牌号
* createTime: 创建时间
* startTime开始时间
* startSiteGcjPoint高精坐标
* endSiteGcjPoint
*/
//todo 目前是需要乘客电话来通知乘客下车 目前后台没有乘客信息userPhone
public String orderNo;
public int orderStatus;
public int orderType;
public long bookingTime;
public int businessType;
public int startSiteId;
public String passengerPhone;
public List<Double> startSitePoint;
public String startSiteAddr;
public int endSiteId;
public List<Double> endSitePoint;
public String carNumber;
public long createTime;
public long startTime;
public List< Double > startSiteGcjPoint;
public List< Double > endSiteGcjPoint;
}
}

View File

@@ -5,6 +5,7 @@ import androidx.room.Entity
import androidx.room.PrimaryKey
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager
import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.data.bean.ContraiInfo
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
@@ -69,7 +70,7 @@ data class ContrailDataBean(
OchChainLogManager.writeChainLogAutopilot("轨迹错误",this.toString())
return
}
OchAutoPilotManager.contraiInfo = ContraiInfo(lineId!!,csvFileUrl!!,csvFileMd5!!,txtFileUrl!!,txtFileMd5!!,contrailSaveTime!!)
LineManager.contraiInfo = ContraiInfo(lineId!!,csvFileUrl!!,csvFileMd5!!,txtFileUrl!!,txtFileMd5!!,contrailSaveTime!!)
}
}
}

View File

@@ -64,4 +64,24 @@ class TaskDataBean(
const val used = 2L
}
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as TaskDataBean
if (taskId != other.taskId) return false
if (lineId != other.lineId) return false
return true
}
override fun hashCode(): Int {
var result = taskId?.hashCode() ?: 0
result = 31 * result + (lineId?.hashCode() ?: 0)
return result
}
}

View File

@@ -7,6 +7,7 @@ import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.weaknet.database.bean.TaskDataBean
import com.mogo.och.weaknet.database.bean.TaskSiteDataBean
import io.reactivex.Observable
@Dao
@@ -23,6 +24,9 @@ interface TaskDataDao {
@Query("DELETE FROM ${TaskDataBean.taskDataTable} WHERE task_get_time < :zeroTime")
fun deleteDataByZero(zeroTime:Long): Int
@Query("UPDATE ${TaskDataBean.taskDataTable} SET end_time = :endTime,status = ${TaskDataBean.used} WHERE task_id = :taskId")
fun endTask(taskId: Long,endTime:Long = DateTimeUtil.getCurrentTimeStamp())
//查询当天插入的所有数据
@Query("SELECT * FROM ${TaskDataBean.taskDataTable} WHERE task_get_time > :zeroTime")
fun loadAllData(zeroTime:Long): List<TaskDataBean>?

View File

@@ -13,7 +13,16 @@ interface TaskSiteDataDao {
fun insert(vararg lineDataBean: TaskSiteDataBean):List<Long>
//查询当天插入的所有数据
@Query("SELECT * FROM ${TaskSiteDataBean.usedTaskDataTable} WHERE task_id > :taskId")
@Query("SELECT * FROM ${TaskSiteDataBean.usedTaskDataTable} WHERE task_id = :taskId")
fun queryRunningTask(taskId: Long): List<TaskSiteDataBean>?
@Query("UPDATE ${TaskSiteDataBean.usedTaskDataTable} SET leaving = :leave WHERE task_id = :taskId and site_id = :siteId")
fun updateLeave(taskId: Long, siteId: Long, leave: Int)
@Query("UPDATE ${TaskSiteDataBean.usedTaskDataTable} SET leaving = :leave , driving_status = :drivingStatusCurrent WHERE task_id = :taskId and site_id = :siteId")
fun updateDrivingStatusANdLeave(taskId: Long, siteId: Long, drivingStatusCurrent: Int, leave: Int)
@Query("UPDATE ${TaskSiteDataBean.usedTaskDataTable} SET driving_status = :drivingStatusCurrent WHERE task_id = :taskId and site_id = :siteId")
fun updateDrivingStatus(taskId: Long, siteId: Long, drivingStatusCurrent: Int)
}

View File

@@ -23,8 +23,10 @@ object EventRepository {
event.writeVersion = DateTimeUtil.getCurrentTimeStamp()
event.siteId = 0L
event.seq = 0
eventDataDao?.insert()
eventCallback?.notify()
DbThreadUtils.runInIoThread {
eventDataDao?.insert(event)
eventCallback?.notifySyn()
}
}
fun saveEventTaskArriveSite(taskId: Long,siteId:Long,seq:Int) {
@@ -35,8 +37,10 @@ object EventRepository {
event.writeVersion = DateTimeUtil.getCurrentTimeStamp()
event.siteId = siteId
event.seq = seq
eventDataDao?.insert()
eventCallback?.notify()
DbThreadUtils.runInIoThread{
eventDataDao?.insert(event)
eventCallback?.notifySyn()
}
}
fun saveEventTaskLeaveSite(taskId: Long,siteId:Long,seq:Int) {
@@ -47,8 +51,10 @@ object EventRepository {
event.writeVersion = DateTimeUtil.getCurrentTimeStamp()
event.siteId = siteId
event.seq = seq
eventDataDao?.insert()
eventCallback?.notify()
DbThreadUtils.runInIoThread {
eventDataDao?.insert(event)
eventCallback?.notifySyn()
}
}
fun saveEventTaskEnd(taskId: Long) {
@@ -59,12 +65,14 @@ object EventRepository {
event.writeVersion = DateTimeUtil.getCurrentTimeStamp()
event.siteId = 0L
event.seq = 0
eventDataDao?.insert()
eventCallback?.notify()
DbThreadUtils.runInIoThread {
eventDataDao?.insert(event)
eventCallback?.notifySyn()
}
}
interface EventCallback {
fun notify()
fun notifySyn()
}

View File

@@ -103,6 +103,12 @@ object TaskRepository {
return taskDataDao?.queryRunningTaskByStatus()
}
fun endTask(taskId: Long) {
DbThreadUtils.runInIoThread{
taskDataDao?.endTask(taskId)
}
}
interface TaskStatusCallback{
fun startSuccess()

View File

@@ -13,6 +13,10 @@ object TaskSiteRepository {
taskSiteDataDao = MyDataBase.instance.taskSiteDataDao
}
fun addOrUpdate(vararg lineDataBean: TaskSiteDataBean){
taskSiteDataDao?.insert(*lineDataBean)
}
// 开始线路
fun startTask(taskId: Long, linId: Long,lineName:String):Int? {
// 获取线路的站点
@@ -25,6 +29,9 @@ object TaskSiteRepository {
taskId,
lineName
)
if(toTaskSiteDatas.size<2){
throw DataException("站点数据不全请稍后再试")
}
// 把线路所有的站点搬迁到运行中表格中
val result = taskSiteDataDao?.insert(*toTaskSiteDatas.toTypedArray())
return if(result.isNullOrEmpty()){
@@ -34,13 +41,23 @@ object TaskSiteRepository {
}
}
//
fun leaveStation(){
// 滑动出发
fun updateLeave(taskId: Long, siteId: Long, leave:Boolean) {
DbThreadUtils.runInIoThread{
taskSiteDataDao?.updateLeave(taskId,siteId,if(leave) 1 else 0)
}
}
fun arriveSiteStation(){
fun updateDrivingStatus(taskId: Long, siteId: Long, drivingStatus: Int){
DbThreadUtils.runInIoThread{
taskSiteDataDao?.updateDrivingStatus(taskId,siteId,drivingStatus)
}
}
fun updateDrivingStatusAndLeave(taskId: Long, siteId: Long, drivingStatus: Int, leave: Boolean){
DbThreadUtils.runInIoThread{
taskSiteDataDao?.updateDrivingStatusANdLeave(taskId,siteId,drivingStatus,if(leave) 1 else 0)
}
}
fun queryRunningTask(taskId: Long): List<TaskSiteDataBean>? {

View File

@@ -4,9 +4,14 @@ import android.annotation.SuppressLint
import android.content.Context
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.network.utils.digest.DigestUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.manager.loop.LoopInfo
@@ -18,7 +23,10 @@ import com.mogo.och.weaknet.bean.BusQueryLinesResponse
import com.mogo.och.weaknet.bean.BusRoutesResponse
import com.mogo.och.weaknet.bean.CarExecutableTaskResponse
import com.mogo.och.weaknet.callback.IBusLinesCallback
import com.mogo.och.weaknet.constant.BusConst
import com.mogo.och.weaknet.database.bean.ContrailDataBean
import com.mogo.och.weaknet.database.bean.TaskDataBean
import com.mogo.och.weaknet.database.bean.TaskSiteDataBean
import com.mogo.och.weaknet.database.repository.ContraiRepository
import com.mogo.och.weaknet.database.repository.EventRepository
import com.mogo.och.weaknet.database.repository.LineRepository
@@ -49,13 +57,13 @@ object BusLineModel {
// 展示上一次刷新时间
private const val executableChangeTime = "executablechangetime"
var currentTask: TaskDataBean?=null
// 当前任务的站点列表
private var stationList = mutableListOf<BusStationBean>()
var stationList:MutableList<BusStationBean>? = mutableListOf<BusStationBean>()
// 当前站点
private var startStation: BusStationBean? = null
private var startStationIndex: Int = -1
private var endStation: BusStationBean? = null
var startStationIndex: Int = 0 //A->B 此处值是A站点索引
@JvmStatic
fun init() {
@@ -91,9 +99,12 @@ object BusLineModel {
val currentRequest = DigestUtils.md5Hex(data.data.toString())
val lastChangeMd5 =
SharedPrefsMgr.getInstance().getString(executableChangeMd5)
SharedPrefsMgr.getInstance()
.putLong(executableChangeTime, DateTimeUtil.getCurrentTimeStamp())
if (currentRequest == lastChangeMd5) {
val lastUpdateTime = SharedPrefsMgr.getInstance().getLong(executableChangeTime, 0)
val currentTimeStamp = DateTimeUtil.getCurrentTimeStamp()
SharedPrefsMgr.getInstance().putLong(executableChangeTime, currentTimeStamp)
val sameDay = DateTimeUtil.isSameDay(currentTimeStamp, lastUpdateTime)
if (currentRequest == lastChangeMd5 && sameDay) {
return
}
SharedPrefsMgr.getInstance().putString(executableChangeMd5, currentRequest)
@@ -203,30 +214,157 @@ object BusLineModel {
// 1、从别的数据库加载任务
// 2、本地没有从远端恢复任务
fun loadStartedTaskAndDefaultInfo() {
// 获取正在运行的任务
val runningTaskInfo = TaskRepository.queryRunningTask()
if (runningTaskInfo.isNullOrEmpty()) {
// 本地没有进行中的任务
// todo: 尝试加载远程数据
} else if (runningTaskInfo.size > 1) {
// TODO: 1 清理本地数据 2 加载后台数据
// 本地有多条正在进行的任务 需要check event
// TODO:1 比对event表 1 清理错误数据 2 加载后台数据
} else {
val first = runningTaskInfo.first()
// 只有一条进行中的任务
currentTask = runningTaskInfo.first()
// 恢复站点信息
first.taskId?.let {
currentTask?.taskId?.let {
// 获取正在进行中的具体信息
val runnintTaskAndSites = TaskSiteRepository.queryRunningTask(it)
if(runnintTaskAndSites.isNullOrEmpty()||runnintTaskAndSites.size<2){
// TODO: 错误数据需要上报一下 有进行中的任务 在正在跑的任务重没有数据
return
}
val db2Beans = BusRoutesResponse.db2Beans(runnintTaskAndSites)
stationList = db2Beans.first
startStation = db2Beans.second
startStationIndex = db2Beans.third
if (startStationIndex < stationList.size) {
endStation = stationList[startStationIndex + 1]
}
startStationIndex = db2Beans.second
}
// 设置自动驾驶信息
first.lineId?.let {
currentTask?.lineId?.let {
val contraiInfoTemp = ContraiRepository.queryAutopilotInfoByLineid(it)
ContrailDataBean.save2Common(contraiInfoTemp)
}
}
}
// 滑动出发
fun leaveStation(){
//开始站点: leaving false->true
LineManager.startStation?.let { startStation ->
startStation.drivingStatus = TaskSiteDataBean.drivingStatusCurrent
startStation.isLeaving = true
if (currentTask != null && currentTask!!.taskId != null) {
currentTask?.taskId?.let { taskId ->
TaskSiteRepository.updateLeave(taskId, startStation.siteId.toLong(), true)
// 设置滑动出发任务
EventRepository.saveEventTaskLeaveSite(
taskId,
startStation.siteId.toLong(),
startStation.seq
)
}
} else {
OchChainLogManager.writeChainLog(
"滑动出发_数据更新_error",
"task:${currentTask}__taskId:${currentTask?.taskId}"
)
}
}
val changeInfo =
"taskId:${currentTask?.taskId}--lineId:${currentTask?.lineId}--currentStationName:${LineManager.startStation?.name}--finalNextStationName:${LineManager.endStation?.name}"
OchChainLogManager.writeChainLog("滑动出发", changeInfo)
}
// 到站
fun arrivedStation() {
// 开始站点leaving true->false drivingStatus 2->1
LineManager.startStation?.let {
it.drivingStatus = TaskSiteDataBean.drivingStatusPassed
it.isLeaving = false
if(currentTask!=null&& currentTask!!.taskId!=null){
currentTask?.taskId?.let { taskId->
TaskSiteRepository.updateDrivingStatusAndLeave(taskId,it.siteId.toLong(),TaskSiteDataBean.drivingStatusPassed,false)
// 设置到站任务
EventRepository.saveEventTaskArriveSite(taskId,it.siteId.toLong(),it.seq)
}
}else{
OchChainLogManager.writeChainLog("到站_数据更新_error","task:${currentTask}__taskId:${currentTask?.taskId}")
}
}
// 结束站点: drivingStatus 3-2
LineManager.endStation?.let {
it.drivingStatus = TaskSiteDataBean.drivingStatusCurrent
if(currentTask!=null&& currentTask!!.taskId!=null){
currentTask?.taskId?.let { taskId->
TaskSiteRepository.updateDrivingStatus(taskId,it.siteId.toLong(),TaskSiteDataBean.drivingStatusCurrent)
}
}else{
OchChainLogManager.writeChainLog("到站_数据更新_error","task:${currentTask}__taskId:${currentTask?.taskId}")
}
}
stationList?.let {
startStationIndex+=1
LineManager.startStation = LineManager.endStation
if(startStationIndex+1< it.size){
LineManager.endStation = it[startStationIndex+1]
}
}
}
fun isLastStation():Boolean?{
if (stationList.isNullOrEmpty()) {
return null
}else{
return startStationIndex == stationList!!.size - 1
}
}
fun getTaskTime():String {
return DateTimeUtil.formatLongToString(
currentTask!!.taskStartTime!!,
DateTimeUtil.HH_mm
)
}
fun abortTask() {
currentTask?.taskId?.let {
TaskRepository.endTask(it)
EventRepository.saveEventTaskEnd(it)
}
currentTask = null
LineManager.lineInfos = null
LineManager.startStation = null
LineManager.endStation = null
stationList = mutableListOf()
startStationIndex = 0
}
fun startTaskMessage():Boolean {
if (!stationList.isNullOrEmpty()) {
return startStationIndex == 0 && stationList!!.first().drivingStatus == BusConst.STATION_STATUS_STOPPED && !stationList!!.first().isLeaving
}
return false
}
fun setDemoMode() {
// 美化是否开始
if (FunctionBuildConfig.isDemoMode) { //行驶过程中设置美化
if (LineManager.startStation!=null&&LineManager.startStation!!.isLeaving) {
OrderModel.startBeautificationMode()
d(M_BUS + TAG, "美化模式-ignore置为true每次滑动出发")
} else if (startStationIndex > 0 && startStationIndex < stationList!!.size - 1) {
//美化模式下 中间站点到站 引导线要一直绘制所以此处不出强制绘制不传false
CallerAutoPilotControlManager.setIPCDemoMode(false)
d(M_BUS + TAG, "美化模式-ignorefalse到达中间站")
OrderModel.clearStartAutopilotTag()
} else {
OrderModel.closeBeautificationMode()
OrderModel.clearStartAutopilotTag()
}
}
}
}

View File

@@ -6,23 +6,18 @@ import com.mogo.eagle.core.data.enums.EventTypeEnumNew
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
import com.mogo.eagle.core.data.msgbox.MsgBoxType
import com.mogo.eagle.core.data.msgbox.V2XMsg
import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager.saveMsgBox
import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.manager.autopilot.line.LineManager
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.IOchOnMessageListener
import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager
import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
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.manager.socket.lan.bean.WriteOffDevicesMsg
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffMsg
import com.mogo.och.common.module.network.OchCommonServiceCallback
@@ -94,28 +89,29 @@ object TicketModel : IOchOnMessageListener<WriteOffPassenger>{
}
private fun selectWriteOffCount(){
val busRoutesResult = OrderModel.busRoutesResult
val busNextStation = OrderModel.busNextStation
if(busRoutesResult==null||busNextStation==null){
emitterMain?.onNext(0)
d(SceneConstant.M_BUS + TAG, "线路或者站点未空:${busRoutesResult}----${busNextStation}")
return
LineManager.endStation?.let { endStation->
BusLineModel.currentTask?.let {currentTask->
OrderServiceManager.queryBusTaskByLineId(AbsMogoApplication.getApp(),
"${currentTask.taskId}",
"${endStation.siteId}",
object : OchCommonServiceCallback<WriteOffCountResponse> {
override fun onSuccess(data: WriteOffCountResponse?) {
data?.data?.let {
emitterMain?.onNext(it)
d(SceneConstant.M_BUS + TAG, "${endStation.name}核销人数:${it}")
}
}
override fun onFail(code: Int, msg: String?) {
}
})
return
}
}
OrderServiceManager.queryBusTaskByLineId(AbsMogoApplication.getApp(),
"${busRoutesResult.taskId}",
"${busNextStation.siteId}",
object : OchCommonServiceCallback<WriteOffCountResponse> {
override fun onSuccess(data: WriteOffCountResponse?) {
data?.data?.let {
emitterMain?.onNext(it)
d(SceneConstant.M_BUS + TAG, "${busNextStation.name}核销人数:${it}")
}
}
override fun onFail(code: Int, msg: String?) {
}
})
emitterMain?.onNext(0)
d(SceneConstant.M_BUS + TAG, "线路或者站点未空")
}
fun getWriteOffCountObservable():Observable<Int>{

View File

@@ -1,13 +1,7 @@
package com.mogo.och.weaknet.net;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.weaknet.bean.BusCloseTaskRequest;
import com.mogo.och.weaknet.bean.BusQueryLineStationsRequest;
import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse;
import com.mogo.och.weaknet.bean.BusQueryLinesResponse;
import com.mogo.och.weaknet.bean.BusResetDrivingLineRequest;
import com.mogo.och.weaknet.bean.BusRoutesResponse;
import com.mogo.och.weaknet.bean.BusUpdateSiteStatusRequest;
import com.mogo.och.weaknet.bean.CarExecutableTaskResponse;
import com.mogo.och.weaknet.bean.WriteOffCountResponse;
@@ -27,6 +21,7 @@ import retrofit2.http.Query;
* wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072
*/
public interface IBascApiService {
/**
* 查询当前运行任务
*
@@ -37,55 +32,6 @@ public interface IBascApiService {
@POST( "/och-shuttle-cabin/api/business/v1/driver/lineDataWithDriver/query" )
Observable<BusRoutesResponse> queryBusRoutes(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusQueryLineStationsRequest request);
/**
* @param request 请求参数{"destLine":1,"sn":"F803EB2046PZD00229"} 这个接口是重置bus线路的 不是重置线路中站点的
* @return 返回值是重置后的车站列表
* 开始路线
*/
@Headers( {"Content-Type:application/json;charset=UTF-8"} )
@POST( "/och-shuttle-cabin/api/flow/v1/driver/startTask" )
Observable<BusRoutesResponse> switchLine(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusResetDrivingLineRequest request);
/**
* 离站,通知服务器
* @param request
* @return
*/
@Headers({"Content-Type:application/json;charset=UTF-8"})
@POST("/och-shuttle-cabin/api/flow/v1/driver/leave")
Observable<BaseData> leaveStation(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusUpdateSiteStatusRequest request);
/**
* 到站 更新到站信息
* @param request
* @return
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@POST("/och-shuttle-cabin/api/flow/v1/driver/arrive")
Observable<BaseData> arriveSiteStation(@Header ("appId") String appId,@Header("ticket") String ticket,@Body BusUpdateSiteStatusRequest request);
/**
* 中止任务
* @param appId
* @param ticket
* @param data
* @return
*/
@POST("/och-shuttle-cabin/api/flow/v1/driver/abortTask")
Observable<BaseData> abortTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data);
/**
* 任务正常跑完结束
* @param appId
* @param ticket
* @param data
* @return
*/
@Headers( {"Content-type:application/json;charset=UTF-8"} )
@POST("/och-shuttle-cabin/api/flow/v1/driver/endTask")
Observable<BaseData> endTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data);
@Headers( {"Content-type:application/json;charset=UTF-8"} )
@GET("och-shuttle-cabin/api/business/v1/task/writeOffCount")
Observable<WriteOffCountResponse> writeOffCount(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("taskId") String taskId, @Query("siteId") String siteId);

View File

@@ -3,20 +3,14 @@ package com.mogo.och.weaknet.net
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.network.MoGoRetrofitFactory
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.network.OchCommonSubscribeImpl
import com.mogo.och.common.module.network.interceptor.transformIoTry
import com.mogo.och.common.module.network.interceptor.transformTry
import com.mogo.och.weaknet.bean.BusCloseTaskRequest
import com.mogo.och.weaknet.bean.BusQueryLineStationsRequest
import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse
import com.mogo.och.weaknet.bean.BusQueryLinesResponse
import com.mogo.och.weaknet.bean.BusResetDrivingLineRequest
import com.mogo.och.weaknet.bean.BusRoutesResponse
import com.mogo.och.weaknet.bean.BusUpdateSiteStatusRequest
import com.mogo.och.weaknet.bean.CarExecutableTaskResponse
import com.mogo.och.weaknet.bean.WriteOffCountResponse
@@ -48,106 +42,6 @@ object OrderServiceManager {
.subscribe(OchCommonSubscribeImpl(context, callback, "queryBusRoutes"))
}
/**
* 重置线路站点
* @param context
* @param taskId
* @param callback
*/
@JvmStatic
fun switchLine(
context: Context,
taskId: Long,
callback: OchCommonServiceCallback<BusRoutesResponse>?
) {
mService.switchLine(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
BusResetDrivingLineRequest(taskId)
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "switchLine"))
}
/**
* 中断当前任务
* @param context
* @param taskId
* @param callback
*/
@JvmStatic
fun abortTask(context: Context, taskId: Int, callback: OchCommonServiceCallback<BaseData>?) {
mService.abortTask(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
BusCloseTaskRequest(taskId)
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "abortTask"))
}
/**
* 正常结束任务
* @param context
* @param taskId
* @param callback
*/
@JvmStatic
fun endTask(context: Context, taskId: Int, callback: OchCommonServiceCallback<BaseData>?) {
mService.endTask(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
BusCloseTaskRequest(taskId)
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "endTask"))
}
/**
* 离站上报
* @param context
* @param seq
* @param siteId
* @param callback
*/
@JvmStatic
fun leaveStation(
context: Context,
seq: Int,
siteId: Int,
taskId: Int,
writeVersion: Long,
callback: OchCommonServiceCallback<BaseData>?
) {
mService.leaveStation(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
BusUpdateSiteStatusRequest(taskId, siteId, seq,writeVersion)
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "leaveStation"))
}
/**
* 到站更新站点状态
* @param context
* @param seq
* @param siteId
* @param callback
*/
@JvmStatic
fun arriveSiteStation(
context: Context, seq: Int, siteId: Int, taskId: Int, writeVersion: Long,
callback: OchCommonServiceCallback<BaseData>?
) {
mService.arriveSiteStation(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
BusUpdateSiteStatusRequest(taskId, siteId, seq, writeVersion)
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation"))
}
@JvmStatic
fun queryBusTaskByLineId(
context: Context,

View File

@@ -25,6 +25,7 @@ import com.mogo.och.weaknet.callback.IBusControllerStatusCallback
import com.mogo.och.weaknet.callback.IRefreshBusStationsCallback
import com.mogo.och.weaknet.callback.ISlidePannelHideCallback
import com.mogo.och.weaknet.fragment.ShuttleFragment
import com.mogo.och.weaknet.model.BusLineModel
import com.mogo.och.weaknet.model.OrderModel
import com.mogo.och.weaknet.util.BusTrajectoryManager
import mogo_msg.MogoReportMsg.MogoReportMessage

View File

@@ -13,6 +13,7 @@ import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager;
import com.mogo.och.data.bean.BusRoutesResult;
import com.mogo.och.weaknet.constant.BusConst;
import com.mogo.och.weaknet.model.OrderModel;
import com.mogo.och.weaknet.model.BusLineModel;
import java.util.concurrent.TimeUnit;
@@ -52,7 +53,7 @@ public class BusTrajectoryManager {
public void syncTrajectoryInfo() {
BusRoutesResult routesResult = OrderModel.getBusRoutesResult();
if (LoginStatusManager.isLogin() && routesResult != null
&& OrderModel.getCurrentStationIndex() == 0
&& BusLineModel.INSTANCE.getStartStationIndex() == 0
&& !OrderModel.isGoingToNextStation()) {
CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() start.");
startTrajReqLoop();

View File

@@ -427,7 +427,7 @@ public class TaxiModel {
if (mOrderStatusCallback != null) {
mOrderStatusCallback.onCurrentOrderCancelDone();
}
LineManager.setLineId(-1);
LineManager.setLineInfo(null);
clearCurrentOCHOrder();
cancelAutopilot();
}

View File

@@ -25,6 +25,7 @@ import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager;
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager;
import com.mogo.och.common.module.manager.autopilot.line.LineManager;
import com.mogo.och.common.module.voice.VoiceNotice;
import com.mogo.och.data.bean.LineInfo;
import com.mogo.och.taxi.bean.OrderQueryRespBean;
import com.mogo.och.data.taxi.OrderQueryRouteInfoRespBean;
import com.mogo.och.taxi.callback.ITaxiADASStatusCallback;
@@ -289,7 +290,7 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
OchChainLogManager.writeChainLog("订单信息变化",order.toString());
OrderModel.INSTANCE.invokeListener(order);
CallerLogger.d(M_TAXI + TAG, "order = " + order.toString());
LineManager.setLineId(order.lineId);
LineManager.setLineInfo(new LineInfo(order.lineId,order.lineName));
if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == order.orderStatus) {
TaxiModel.getInstance().queryAutopilotStatus(true);
TaxiModel.getInstance().setStation();
@@ -325,7 +326,7 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
TaxiModel.getInstance().startOrStopCalculateRouteInfo(false);
TaxiModel.getInstance().cleanLineMarker();
TaxiModel.getInstance().cleanStation();
LineManager.setLineId(-1);
LineManager.setLineInfo(null);
UiThreadHandler.post(new Runnable() {
@Override
public void run() {

View File

@@ -10,6 +10,7 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.common.module.map.AmapNaviToDestinationModel
import com.mogo.och.data.bean.LineInfo
import com.mogo.och.unmanned.taxi.base.BaseViewModel
import com.mogo.och.unmanned.taxi.base.IUiIntent
import com.mogo.och.unmanned.taxi.bean.GrayLineBean
@@ -55,8 +56,8 @@ class TaxiRoutingFragmentViewModel : BaseViewModel<TaxiRoutingUiState, TaxiRouti
)
)
}
task.contrailBean?.lineId?.also {
LineManager.setLineId(it)
if(task.contrailBean?.lineId != null &&task.contrailBean.lineName!=null){
LineManager.setLineInfo(LineInfo(task.contrailBean.lineId,task.contrailBean.lineName))
}
// 设置灰度路线任务执行状态,切换模式时判断使用
MogoStatusManager.getInstance()
@@ -151,7 +152,7 @@ class TaxiRoutingFragmentViewModel : BaseViewModel<TaxiRoutingUiState, TaxiRouti
TaxiRoutingModel.updateCurrentGrayLineAndContrail(null, null, -1L)
// 设置灰度路线任务执行状态,切换模式时判断使用
MogoStatusManager.getInstance().setTaxiUnmanedDriverLineRoutingPerformTask(TAG, false)
LineManager.setLineId(-1)
LineManager.setLineInfo(null);
TaxiRoutingModel.startNaviToEndStationByAMap(false)
// 移除到站监听
TaxiRoutingModel.removeAutoPilotStatusListener()

View File

@@ -23,6 +23,7 @@ import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.utils.ToastUtilsOch
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.data.bean.LineInfo
import com.mogo.och.unmanned.taxi.R
import com.mogo.och.unmanned.taxi.base.BaseViewModel
import com.mogo.och.unmanned.taxi.base.IUiIntent
@@ -245,7 +246,7 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
// 设置task执行相关状态切换模式时判断使用
if (result == null || result.taskType == TaskTypeEnum.None.code) {
MogoStatusManager.getInstance().setTaxiUnmanedDriverPerformTask(TAG, false)
LineManager.setLineId(-1)
LineManager.setLineInfo(null);
} else {
MogoStatusManager.getInstance().setTaxiUnmanedDriverPerformTask(TAG, true)
}
@@ -273,7 +274,7 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
val endStation = MogoLocation()
endStation.longitude = curTaskAndOrder.endSite!!.gcjLon
endStation.latitude = curTaskAndOrder.endSite!!.gcjLat
LineManager.setLineId(result.lineId)
LineManager.setLineInfo(LineInfo(result.lineId,""))
TrajectoryAndDistanceManager.setStationPoint(
startStation,
endStation,
@@ -341,7 +342,7 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
TaxiTaskModel.cancelAutopilot()
// 设置task执行相关状态切换模式时判断使用
MogoStatusManager.getInstance().setTaxiUnmanedDriverPerformTask(TAG, false)
LineManager.setLineId(-1)
LineManager.setLineInfo(null);
}
override fun onOrderArriveAtEnd(orderNo: String) {
@@ -365,7 +366,7 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
}
// 设置task执行相关状态切换模式时判断使用
MogoStatusManager.getInstance().setTaxiUnmanedDriverPerformTask(TAG, false)
LineManager.setLineId(-1)
LineManager.setLineInfo(null);
}
override fun onStartAutopilot(postDelayTime: Long) {

View File

@@ -57,6 +57,7 @@ import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil.coordinateConverterWgsToGcjLocations
import com.mogo.och.common.module.utils.OCHThreadPoolManager
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.data.bean.LineInfo
import com.mogo.och.data.taxi.QueryCarOrderByNoRespBean
import com.mogo.och.unmanned.taxi.bean.PrepareTaskRespBean
import com.mogo.och.unmanned.taxi.bean.QueryCurrentTaskRespBean
@@ -622,7 +623,7 @@ object TaxiTaskModel {
DebugView.printInfoMsg("[上报ArriveSite] success siteId=$siteId, isArriveAtEndSite=$isArriveAtEndSite")
d(TAG, "submitArriveSite-onSuccess data=" + GsonUtil.jsonFromObject(data))
mDriveToNearestStationTask = null
LineManager.setLineId(-1)
LineManager.setLineInfo(null);
if (isArrivedNearestStation) {// 播报提醒
VoiceNotice.showNotice("已到达出车点")
}
@@ -804,7 +805,7 @@ object TaxiTaskModel {
d(TAG, "queryCurrentTaskOnce ArriveAtEnd")
//订单到站结束轨迹剩余里程就算和高德计算, 防止到站查询订单全程的显示被覆盖
LineManager.setLineId(-1)
LineManager.setLineInfo(null);
TrajectoryAndDistanceManager.setStationPoint(null, null, -1L)
destroyAmapNavi()
@@ -879,7 +880,7 @@ object TaxiTaskModel {
if (mDriveToNearestStationTask == null){
destroyAmapNavi()
}
LineManager.setLineId(-1)
LineManager.setLineInfo(null);
TrajectoryAndDistanceManager.setStationPoint(null, null, -1L)
}
@@ -1254,7 +1255,7 @@ object TaxiTaskModel {
val endStation = MogoLocation()
endStation.longitude = curTaskAndOrder.endSite!!.gcjLon
endStation.latitude = curTaskAndOrder.endSite!!.gcjLat
LineManager.setLineId(curTaskAndOrder.lineId)
LineManager.setLineInfo(LineInfo(curTaskAndOrder.lineId,""))
TrajectoryAndDistanceManager.setStationPoint(
startStation,
endStation,
@@ -1486,7 +1487,7 @@ object TaxiTaskModel {
mCurrentTaskWithOrder = null
mDriveToNearestStationTask = null
DebugView.printInfoMsg("[登出] 退出登陆")
LineManager.setLineId(-1)
LineManager.setLineInfo(null);
MogoStatusManager.getInstance().setTaxiUnmanedDriverPerformTask(TAG, false)
MogoStatusManager.getInstance().setTaxiUnmanedDriverTakingOrders(TAG, false)
MogoStatusManager.getInstance().setTaxiUnmanedDriverLineRoutingPerformTask(TAG, false)