[6.6.0]
[滑动出发、到站、结束任务]
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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?:""))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.mogo.och.data.bean
|
||||
|
||||
data class LineInfo(
|
||||
/**
|
||||
* 线路id
|
||||
*/
|
||||
val lineId: Long,
|
||||
|
||||
/**
|
||||
* 线路名称
|
||||
*/
|
||||
val lineName: String,
|
||||
|
||||
)
|
||||
@@ -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()
|
||||
|
||||
@@ -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++) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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 +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -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 +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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:taxi,10: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;
|
||||
}
|
||||
}
|
||||
@@ -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!!)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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>?
|
||||
|
||||
@@ -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)
|
||||
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -103,6 +103,12 @@ object TaskRepository {
|
||||
return taskDataDao?.queryRunningTaskByStatus()
|
||||
}
|
||||
|
||||
fun endTask(taskId: Long) {
|
||||
DbThreadUtils.runInIoThread{
|
||||
taskDataDao?.endTask(taskId)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
interface TaskStatusCallback{
|
||||
fun startSuccess()
|
||||
|
||||
@@ -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>? {
|
||||
|
||||
@@ -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, "美化模式-ignore:false(到达中间站)")
|
||||
OrderModel.clearStartAutopilotTag()
|
||||
} else {
|
||||
OrderModel.closeBeautificationMode()
|
||||
OrderModel.clearStartAutopilotTag()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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>{
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -427,7 +427,7 @@ public class TaxiModel {
|
||||
if (mOrderStatusCallback != null) {
|
||||
mOrderStatusCallback.onCurrentOrderCancelDone();
|
||||
}
|
||||
LineManager.setLineId(-1);
|
||||
LineManager.setLineInfo(null);
|
||||
clearCurrentOCHOrder();
|
||||
cancelAutopilot();
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user