[fea]
[bean 改为dbbean]
This commit is contained in:
yangyakun
2024-09-18 19:16:58 +08:00
parent 33bfe81327
commit fd79620c29
33 changed files with 274 additions and 457 deletions

View File

@@ -14,7 +14,7 @@ import com.mogo.och.weaknet.repository.db.repository.LineRepository
import com.mogo.och.weaknet.repository.db.repository.TaskRepository
import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository
import com.mogo.och.weaknet.ui.fragment.ShuttleFragment
import com.mogo.och.weaknet.model.BusLineModel
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.util.BusAnalyticsManager
/**
@@ -43,14 +43,14 @@ class ShuttleDriverProvider : CommonServiceImpl() {
busFragment = ShuttleFragment()
}
OchAutopilotAnalytics.ochEventKey = BusAnalyticsManager
BusLineModel.init();
LineModel.init();
return busFragment!!
}
override fun resetFragment() {
busFragment = null
OchAutopilotAnalytics.ochEventKey = null
BusLineModel.release()
LineModel.release()
}
}

View File

@@ -1,19 +0,0 @@
package com.mogo.och.weaknet.bean;
import com.mogo.eagle.core.data.BaseData;
import java.util.List;
/**
* @author: wangmingjun
* @date: 2022/2/9
*/
public class BusQueryLineTaskResponse extends BaseData {
public List<Result> data;
public static class Result {
public long id;
public long taskStartTime;
}
}

View File

@@ -1,38 +0,0 @@
package com.mogo.och.weaknet.bean;
import com.mogo.eagle.core.data.BaseData;
import java.util.List;
/**
* @author: wangmingjun
* @date: 2022/2/9
*/
public class BusQueryLinesResponse extends BaseData {
public List<Result> data;
public static class Result {
public long lineId;//线路id
public String name;//线路名字
public int choose; // 1:绑定 2:未被绑定
public String startSiteName;//始发站名称
public String endSiteName;//终点名称
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Result result = (Result) o;
return lineId == result.lineId;
}
@Override
public int hashCode() {
return Long.hashCode(lineId);
}
}
}

View File

@@ -1,160 +0,0 @@
package com.mogo.och.weaknet.bean
import com.mogo.eagle.core.data.BaseData
import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.SiteDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import com.mogo.och.weaknet.repository.db.repository.ContraiRepository
import com.mogo.och.weaknet.repository.db.repository.LineRepository
import com.mogo.och.weaknet.repository.db.repository.SiteRepository
import com.mogo.och.weaknet.repository.db.repository.TaskRepository
/**
*
*/
data class CarExecutableTaskResponse(val data: List<Result>?) : BaseData(){
data class Result(
var line: LineInfo?,
var siteList: List<SiteInfo>?,//站点名称
val contrail: ContrailInfo?,//站点名称
val taskList: List<TaskInfo>?,//站点名称
)
data class LineInfo(
val lineId:Long?,
var lineName:String?,
) {
/**
* 把线路net bean 转为db bean
*/
fun toDbBean(endStationName:String?): LineDataBean {
val result = LineDataBean()
result.lineId = lineId
result.lineName = lineName
result.endStationName = endStationName
return result
}
}
data class SiteInfo(
val siteId:Long?,
var name:String?,
var seq:Int?,
var gcjLon:Double?,
var gcjLat:Double?,
var lon:Double?,
var lat:Double?,
){
companion object{
/**
* 把net站点信息转为数据库bean信息并保存
*/
fun toDbBeans(siteListInfo: List<SiteInfo>,lineId: Long?): List<SiteDataBean> {
val reuslts = mutableListOf<SiteDataBean>()
var tempSiteDataBean:SiteDataBean?=null
siteListInfo.forEach {
tempSiteDataBean = SiteDataBean()
tempSiteDataBean?.lineId = lineId
tempSiteDataBean?.siteId = it.siteId
tempSiteDataBean?.name = it.name
tempSiteDataBean?.seq = it.seq
tempSiteDataBean?.gcjLon = it.gcjLon
tempSiteDataBean?.gcjLat = it.gcjLat
tempSiteDataBean?.lon = it.lon
tempSiteDataBean?.lat = it.lat
reuslts.add(tempSiteDataBean!!)
}
return reuslts
}
}
}
data class ContrailInfo(
val csvFileUrl:String?,
val csvFileMd5:String?,
val txtFileUrl:String?,
val txtFileMd5:String?,
val contrailSaveTime:Long?,
) {
/**
* 把net bean转为数据库bean
*/
fun toDbBean(lineId: Long?): ContrailDataBean {
val result = ContrailDataBean()
result.lineId = lineId
result.csvFileUrl = csvFileUrl
result.csvFileMd5 = csvFileMd5
result.txtFileUrl = txtFileUrl
result.txtFileMd5 = txtFileMd5
result.contrailSaveTime = contrailSaveTime
return result
}
}
data class TaskInfo(
val id:Long?,
val lineId:Long?,
val taskDate:Long?,
val taskStartTime:Long?,
) {
companion object {
/**
* 把网络传来的任务信息转成数据库结构
*/
fun toDbBeans(taskInfs: List<TaskInfo>, lineId: Long?
): List<TaskDataBean> {
val reuslts = mutableListOf<TaskDataBean>()
var tempTaskDataBean:TaskDataBean?=null
taskInfs.forEach {
tempTaskDataBean = TaskDataBean()
tempTaskDataBean?.lineId = lineId
tempTaskDataBean?.taskId = it.id
tempTaskDataBean?.taskDate = it.taskDate
tempTaskDataBean?.taskStartTime = it.taskStartTime
reuslts.add(tempTaskDataBean!!)
}
return reuslts
}
}
}
companion object{
/**
* 保存 线路信息、自驾轨迹信息、站点信息和任务到数据库
*/
fun save2Db(data: CarExecutableTaskResponse) {
val lineList = mutableListOf<LineDataBean>()
val contrailList = mutableListOf<ContrailDataBean>()
val siteList = mutableListOf<SiteDataBean>()
data.data?.forEach { dataInfo->
var lineId:Long?=null
dataInfo.line?.let { lineInfo->
lineId = lineInfo.lineId
val lastStation = dataInfo.siteList?.last()
lineList.add(lineInfo.toDbBean(lastStation?.name))
}
dataInfo.contrail?.let { contrailInfo->
contrailList.add(contrailInfo.toDbBean(lineId))
}
dataInfo.siteList?.let {siteListInfo->
siteList.addAll(SiteInfo.toDbBeans(siteListInfo,lineId))
}
dataInfo.taskList?.let { taskInfs ->
val taskList = TaskInfo.toDbBeans(taskInfs, lineId)
TaskRepository.addOrUpdate(taskList,lineId)
}
}
LineRepository.checkAndUpdate(lineList)
ContraiRepository.addOrUpdate(contrailList)
SiteRepository.addOrUpdate(siteList)
}
}
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.bean;
package com.mogo.och.weaknet.bean.request;
import com.mogo.commons.storage.SharedPrefsMgr;

View File

@@ -1,14 +1,11 @@
package com.mogo.och.weaknet.bean
package com.mogo.och.weaknet.bean.request
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.network.utils.digest.DigestUtils
import com.mogo.och.weaknet.repository.db.bean.EventDataBean
/**
* @author congtaowang
* @since 2021/3/22
*
* 根据车机行驶线路站点信息
* 上报事件
*/
data class ShuttleEventRequest(val requestId: String, val sn: String, val businessType: Int,val eventList:MutableList<Event>){
companion object{
@@ -16,19 +13,20 @@ data class ShuttleEventRequest(val requestId: String, val sn: String, val busine
fun transformDb2Net(waitUpdateEvent: List<EventDataBean>): ShuttleEventRequest {
val md5Hex = DigestUtils.md5Hex(waitUpdateEvent.toString())
val eventList4Request = mutableListOf<Event>()
var tempEvent:Event?=null
var tempEvent: Event?=null
waitUpdateEvent.forEach {
tempEvent = Event(it.eventType,
EventData(it.taskId,it.businessTime,it.writeVersion,it.siteId,it.seq,it.driverId)
)
eventList4Request.add(tempEvent!!)
}
return ShuttleEventRequest(md5Hex, SharedPrefsMgr.getInstance().sn,businessTypeShuttle,eventList4Request)
return ShuttleEventRequest(md5Hex, SharedPrefsMgr.getInstance().sn,
businessTypeShuttle,eventList4Request)
}
}
}
data class Event(var eventType: String?,val eventData:EventData)
data class Event(var eventType: String?,val eventData: EventData)
data class EventData(
var taskId: Long?,

View File

@@ -1,11 +1,11 @@
package com.mogo.och.weaknet.bean
package com.mogo.och.weaknet.bean.response
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.model.BusLineModel
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean
import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository
import java.lang.Boolean
@@ -59,7 +59,7 @@ class BusRoutesResponse : BaseData() {
if (lineInfo == null && taskAndsite.lineId != null && taskAndsite.lineName != null) {
lineInfo = LineInfo(taskAndsite.lineId!!, taskAndsite.lineName!!)
}
lineInfo?.multiMap?.put("taskInfo",BusLineModel.getTaskTime())
lineInfo?.multiMap?.put("taskInfo",LineModel.getTaskTime())
}
LineManager.setLineInfo(lineInfo)

View File

@@ -0,0 +1,67 @@
package com.mogo.och.weaknet.bean.response
import com.mogo.eagle.core.data.BaseData
import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.SiteDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import com.mogo.och.weaknet.repository.db.repository.ContraiRepository
import com.mogo.och.weaknet.repository.db.repository.LineRepository
import com.mogo.och.weaknet.repository.db.repository.SiteRepository
import com.mogo.och.weaknet.repository.db.repository.TaskRepository
/**
*
*/
data class CarExecutableTaskResponse(val data: List<Result>?) : BaseData(){
data class Result(
var line: LineDataBean?,
var siteList: List<SiteDataBean>?,//站点名称
val contrail: ContrailDataBean?,//站点名称
val taskList: List<TaskDataBean>?,//站点名称
)
companion object{
/**
* 保存 线路信息、自驾轨迹信息、站点信息和任务到数据库
*/
fun save2Db(data: CarExecutableTaskResponse) {
val lineList = mutableListOf<LineDataBean>()
val contrailList = mutableListOf<ContrailDataBean>()
val siteList = mutableListOf<SiteDataBean>()
data.data?.forEach { dataInfo->
var lineId:Long?=null
dataInfo.line?.let { lineInfo->
lineId = lineInfo.lineId
lineInfo.endStationName = dataInfo.siteList?.last()?.name?:""
lineList.add(lineInfo)
}
dataInfo.contrail?.let { contrailInfo->
contrailInfo.lineId = lineId
contrailList.add(contrailInfo)
}
dataInfo.siteList?.let {siteListInfo->
siteListInfo.forEach {
it.lineId = lineId
}
siteList.addAll(siteListInfo)
}
dataInfo.taskList?.let { taskInfs ->
taskInfs.forEach {
it.lineId = lineId
}
TaskRepository.addOrUpdate(taskInfs,lineId)
}
}
LineRepository.checkAndUpdate(lineList)
ContraiRepository.addOrUpdate(contrailList)
SiteRepository.addOrUpdate(siteList)
}
}
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.bean;
package com.mogo.och.weaknet.bean.response;
import com.mogo.eagle.core.data.BaseData;

View File

@@ -1,7 +1,7 @@
package com.mogo.och.weaknet.callback;
import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse;
import com.mogo.och.weaknet.bean.BusQueryLinesResponse;
import com.mogo.och.weaknet.repository.db.bean.LineDataBean;
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean;
import java.util.List;
@@ -10,9 +10,9 @@ import java.util.List;
* @date: 2022/2/9
*/
public interface IBusLinesCallback {
default void onBusLinesChange(List<BusQueryLinesResponse.Result> data){}
default void onBusLinesChange(List<LineDataBean> data){}
default void onChangeLineIdSuccess(){}
default void onBusLineTasks(List<BusQueryLineTaskResponse.Result> o){}
default void onBusLineTasks(List<TaskDataBean> o){}
default void onRefreshSuccess(long currentTimeStamp){}

View File

@@ -6,10 +6,10 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.weaknet.bean.ShuttleEventRequest
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
import com.mogo.och.weaknet.bean.WaitUploadLine
import com.mogo.och.weaknet.bean.WaitUploadTask
import com.mogo.och.weaknet.repository.net.OrderServiceManager
import com.mogo.och.weaknet.repository.net.shuttlesaas.OrderServiceManager
import com.mogo.och.weaknet.repository.db.bean.EventDataBean
import com.mogo.och.weaknet.repository.db.repository.EventRepository
import io.reactivex.Observable

View File

@@ -19,23 +19,20 @@ import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse
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.bean.response.BusRoutesResponse
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
import com.mogo.och.weaknet.callback.IBusLinesCallback
import com.mogo.och.weaknet.constant.BusConst
import com.mogo.och.weaknet.repository.net.OrderServiceManager
import com.mogo.och.weaknet.repository.net.shuttlesaas.OrderServiceManager
import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean
import com.mogo.och.weaknet.repository.db.repository.ContraiRepository
import com.mogo.och.weaknet.repository.db.repository.EventRepository
import com.mogo.och.weaknet.repository.db.repository.LineRepository
import com.mogo.och.weaknet.repository.db.repository.TaskRepository
import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository
import com.mogo.och.weaknet.repository.db.transform.FRetryWithTime11
import com.mogo.och.weaknet.repository.db.transform.TransformTask
import com.mogo.och.weaknet.repository.db.transform.transform4DataBase
import io.reactivex.Observer
import io.reactivex.disposables.Disposable
import java.util.concurrent.ConcurrentHashMap
@@ -46,7 +43,7 @@ import java.util.concurrent.atomic.AtomicBoolean
* @date: 2022/2/9
*/
@SuppressLint("StaticFieldLeak")
object BusLineModel {
object LineModel {
private var mContext: Context? = null
private val mBusLinesCallbackMap: MutableMap<String, IBusLinesCallback> = ConcurrentHashMap()
@@ -178,8 +175,7 @@ object BusLineModel {
@JvmStatic
fun queryBusLines() {
LineRepository.queryCanUseLine()
?.transform4DataBase(FRetryWithTime11())
?.subscribe(object : Observer<List<BusQueryLinesResponse.Result>> {
?.subscribe(object : Observer<List<LineDataBean>?> {
override fun onSubscribe(d: Disposable) {
d(TAG, "onSubscribe")
}
@@ -192,7 +188,7 @@ object BusLineModel {
d(TAG, "onComplete")
}
override fun onNext(data: List<BusQueryLinesResponse.Result>) {
override fun onNext(data: List<LineDataBean>) {
mBusLinesCallbackMap.forEach {
it.value.onBusLinesChange(data)
}
@@ -208,8 +204,7 @@ object BusLineModel {
@JvmStatic
fun queryBusLineTasksById(lineId: Long) {
TaskRepository.queryCanUserTask(lineId)
?.transform4DataBase(TransformTask())
?.subscribe(object : Observer<List<BusQueryLineTaskResponse.Result>> {
?.subscribe(object : Observer<List<TaskDataBean?>?> {
override fun onSubscribe(d: Disposable) {
d(TAG, "onSubscribe")
}
@@ -222,7 +217,7 @@ object BusLineModel {
d(TAG, "onComplete")
}
override fun onNext(data: List<BusQueryLineTaskResponse.Result>) {
override fun onNext(data: List<TaskDataBean?>) {
mBusLinesCallbackMap.forEach {
it.value.onBusLineTasks(data)
}
@@ -235,28 +230,33 @@ object BusLineModel {
* 开始任务
*/
@JvmStatic
fun commitSwitchLineId(task: BusQueryLineTaskResponse.Result, line: BusQueryLinesResponse.Result) {
TaskRepository.startTask(
task.id,
line.lineId,
line.name,
object : TaskRepository.TaskStatusCallback {
override fun startSuccess() {
com.mogo.och.weaknet.repository.db.repository.EventRepository.saveEventTaskStart(task.id,line.lineId,task.taskStartTime,line.name)
OrderModel.queryBusRoutes()
mBusLinesCallbackMap.forEach {
it.value.onChangeLineIdSuccess()
}
}
fun commitSwitchLineId(task: TaskDataBean, line: LineDataBean) {
line.getLineIdAndName { lineId, lineName ->
task.getLineIdAndName { taskId, taskTime ->
TaskRepository.startTask(
taskId,
lineId,
lineName,
object : TaskRepository.TaskStatusCallback {
override fun startSuccess() {
EventRepository.saveEventTaskStart(taskId,lineId,taskTime,lineName)
OrderModel.queryBusRoutes()
mBusLinesCallbackMap.forEach {
it.value.onChangeLineIdSuccess()
}
}
override fun startFail(msg: String) {
ToastUtils.showShort("选择任务失败:$msg")
mBusLinesCallbackMap.forEach {
it.value.onChangeLineIdFail()
}
}
override fun startFail(msg: String) {
ToastUtils.showShort("选择任务失败:$msg")
mBusLinesCallbackMap.forEach {
it.value.onChangeLineIdFail()
}
}
})
}
}
})
}
// 1、从别的数据库加载任务
@@ -314,7 +314,7 @@ object BusLineModel {
}
val tempList = sorted.toMutableList()
val possible = tempList.removeFirst()
val queryLastData = com.mogo.och.weaknet.repository.db.repository.EventRepository.queryLastData()
val queryLastData = EventRepository.queryLastData()
if(queryLastData!=null){
if(possible.taskId==queryLastData.taskId){
// 最后一个事件和最新的task一直 恢复数据
@@ -418,7 +418,7 @@ object BusLineModel {
OchChainLogManager.writeChainLogDb("滑动出发", "task:${currentTask}__taskId:${currentTask?.taskId}")
// 设置滑动出发任务
LineManager.lineInfos?.lineName?.let { lineName->
com.mogo.och.weaknet.repository.db.repository.EventRepository.saveEventTaskLeaveSite(
EventRepository.saveEventTaskLeaveSite(
task.taskId!!,
task.lineId!!,
it.siteId.toLong(),
@@ -455,7 +455,7 @@ object BusLineModel {
TaskSiteRepository.updateDrivingStatusAndLeave(task.taskId!!,start.siteId.toLong(),TaskSiteDataBean.drivingStatusPassed,false)
// 设置到站任务
LineManager.lineInfos?.let {lineInfo ->
com.mogo.och.weaknet.repository.db.repository.EventRepository.saveEventTaskArriveSite(task.taskId!!,task.lineId!!,start.siteId.toLong(),start.seq,task.taskStartTime,lineInfo.lineName)
EventRepository.saveEventTaskArriveSite(task.taskId!!,task.lineId!!,start.siteId.toLong(),start.seq,task.taskStartTime,lineInfo.lineName)
}
}
}
@@ -510,7 +510,7 @@ object BusLineModel {
if (task.taskId!=null&&task.lineId!=null) {
TaskRepository.endTask(task.taskId!!)
LineManager.lineInfos?.lineName?.let {lineName->
com.mogo.och.weaknet.repository.db.repository.EventRepository.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineName)
EventRepository.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineName)
}
}
}

View File

@@ -13,7 +13,6 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
@@ -204,8 +203,8 @@ object OrderModel {
fun queryBusRoutes() {
d(M_BUS + TAG, "查询小巴路线")
ThreadUtils.getIoPool().execute {
BusLineModel.loadStartedTaskAndDefaultInfo()
if(BusLineModel.stationList.isNullOrEmpty()){
LineModel.loadStartedTaskAndDefaultInfo()
if(LineModel.stationList.isNullOrEmpty()){
d(M_BUS + TAG, "获取到小巴路线数据:空 ")
LineManager.setLineInfo(null)
updateBusStatus()
@@ -223,11 +222,11 @@ object OrderModel {
*/
private fun updateBusTaskStatus() {
var arrivingOrArrivedStationIndex = 0 //已经到站或者即将到站的索引呢
if(BusLineModel.stationList.isNullOrEmpty()){
OchChainLogManager.writeChainLog("更新UI出错","${BusLineModel.currentTask}")
if(LineModel.stationList.isNullOrEmpty()){
OchChainLogManager.writeChainLog("更新UI出错","${LineModel.currentTask}")
return
}
BusLineModel.stationList?.let {
LineModel.stationList?.let {
for (i in it.indices) {
val station = it[i]
@@ -251,7 +250,7 @@ object OrderModel {
}
}
val arrivingOrArrivedStation = it[arrivingOrArrivedStationIndex]
val lineTime = BusLineModel.getTaskTime()
val lineTime = LineModel.getTaskTime()
LineManager.lineInfos?.let {lineInfo->
if (arrivingOrArrivedStationIndex == 0 || (
arrivingOrArrivedStation.drivingStatus == BusConst.STATION_STATUS_STOPPED
@@ -283,7 +282,7 @@ object OrderModel {
isGoingToNextStation = false
ThirdDeviceData.endTask()
BusLineModel.endTask()
LineModel.endTask()
ThirdDeviceData.sendTaskDetailsToClients()
mADASStatusCallback?.clearBusStationsMarkers()
removeTipRunnables()
@@ -410,7 +409,7 @@ object OrderModel {
*/
@JvmStatic
fun autoDriveToNextStation() {
if (BusLineModel.isLastStation()==true) {
if (LineModel.isLastStation()==true) {
// 当前站是最后一站,结束当前行程
abortTask()
return
@@ -424,7 +423,7 @@ object OrderModel {
ThirdDeviceData.leaveStation()
BusLineModel.leaveStation()
LineModel.leaveStation()
updateBusStatus()
}
@@ -435,8 +434,8 @@ object OrderModel {
* 车机端展示 三站: 中间为即将到到达或者刚到达的站
*/
private fun updateBusStatus() {
BusLineModel.stationList?.let {
if (BusLineModel.startTaskMessage()) { //默认是第一站到站查询
LineModel.stationList?.let {
if (LineModel.startTaskMessage()) { //默认是第一站到站查询
LineManager.lineInfos?.lineName?.let { lineName->
LedScreenManager.sendTripInfo2Led(
LedScreenManager.START_TRIP,
@@ -450,7 +449,7 @@ object OrderModel {
}
BusLineModel.setDemoMode()
LineModel.setDemoMode()
LineManager.getStartStation {
isGoingToNextStation = it.isLeaving
@@ -467,11 +466,11 @@ object OrderModel {
}
private fun beforeTaskTips() {
if (BusLineModel.currentTask == null) return
if (LineModel.currentTask == null) return
removeTipRunnables()
val taskTime = BusLineModel.currentTask!!.taskStartTime?:return
val taskTime = LineModel.currentTask!!.taskStartTime?:return
val tip3Time = taskTime - 3 * 60 * 1000 - DateTimeUtil.getCurrentTimeStamp() // 首站离开前3分钟提示
val tip1Time = taskTime - 60 * 1000 - DateTimeUtil.getCurrentTimeStamp() // 首站离开前1分钟提示
@@ -486,7 +485,7 @@ object OrderModel {
private var tip3Runnable = Runnable {
if (BusLineModel.startTaskMessage()) {
if (LineModel.startTaskMessage()) {
tipStartTask("3")
} else {
removeTipRunnables()
@@ -494,7 +493,7 @@ object OrderModel {
}
private var tip1Runnable = Runnable {
if (BusLineModel.startTaskMessage()) {
if (LineModel.startTaskMessage()) {
tipStartTask("1")
} else {
removeTipRunnables()
@@ -572,7 +571,7 @@ object OrderModel {
isGoingToNextStation = false
ThirdDeviceData.arriveStation()
BusLineModel.arrivedStation()
LineModel.arrivedStation()
updateBusStatus()
}

View File

@@ -33,7 +33,7 @@ object ThirdDeviceData {
LineManager.lineInfos!!.lineName,
start.name,
end.name,
BusLineModel.isLastStation()==true
LineModel.isLastStation()==true
)
}
}
@@ -47,7 +47,7 @@ object ThirdDeviceData {
LineManager.lineInfos!!.lineName,
start.name,
end.name,
BusLineModel.isLastStation()==true
LineModel.isLastStation()==true
)
}
}
@@ -65,17 +65,17 @@ object ThirdDeviceData {
}
fun sendTaskDetailsToClients() {
if (LineManager.lineInfos==null|| BusLineModel.currentTask ==null|| BusLineModel.stationList.isNullOrEmpty()) {
if (LineManager.lineInfos==null|| LineModel.currentTask ==null|| LineModel.stationList.isNullOrEmpty()) {
val data = BusTransferData(if (LoginStatusManager.isLogin()) 1 else 0, null)
val msg = TaskDetailsMsg(GsonUtils.toJson(data), BusinessType.shuttle)
d(M_BUS + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg))
LanSocketManager.sendMsgToClient(msg)
}else{
busRoutesResult.setSite(BusLineModel.stationList)
busRoutesResult.setSite(LineModel.stationList)
busRoutesResult.lineId = LineManager.lineInfos!!.lineId.toInt()
busRoutesResult.name = LineManager.lineInfos!!.lineName
busRoutesResult.taskId = BusLineModel.currentTask!!.taskId!!.toInt()
busRoutesResult.taskTime = BusLineModel.currentTask!!.taskStartTime!!
busRoutesResult.taskId = LineModel.currentTask!!.taskId!!.toInt()
busRoutesResult.taskTime = LineModel.currentTask!!.taskStartTime!!
val data = BusTransferData(if (LoginStatusManager.isLogin()) 1 else 0, busRoutesResult)
val msg = TaskDetailsMsg(GsonUtils.toJson(data), BusinessType.shuttle)
d(M_BUS + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg))

View File

@@ -22,9 +22,9 @@ import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
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
import com.mogo.och.weaknet.bean.WriteOffCountResponse
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
import com.mogo.och.weaknet.bean.WriteOffPassenger
import com.mogo.och.weaknet.repository.net.OrderServiceManager
import com.mogo.och.weaknet.repository.net.shuttlesaas.OrderServiceManager
import com.mogo.och.weaknet.util.ShuttleVoiceManager
import io.reactivex.Observable
import io.reactivex.ObservableEmitter
@@ -33,9 +33,9 @@ import io.reactivex.schedulers.Schedulers
object TicketModel : IOchOnMessageListener<WriteOffPassenger>{
private val TAG = "TicketModel"
private const val TAG = "TicketModel"
private val SELECTWRITEOFFCOUNT = "SELECTWRITEOFFCOUNT"
private const val SELECTWRITEOFFCOUNT = "SELECTWRITEOFFCOUNT"
private var emitterMain: ObservableEmitter<Int>?=null
@@ -98,7 +98,7 @@ object TicketModel : IOchOnMessageListener<WriteOffPassenger>{
private fun selectWriteOffCount(){
LineManager.endStation?.let { endStation->
BusLineModel.currentTask?.let {currentTask->
LineModel.currentTask?.let { currentTask->
OrderServiceManager.queryBusTaskByLineId(AbsMogoApplication.getApp(),
"${currentTask.taskId}",
"${endStation.siteId}",
@@ -133,12 +133,6 @@ object TicketModel : IOchOnMessageListener<WriteOffPassenger>{
if(writeOffMsg.ticketSize==null||writeOffMsg.ticketSize==0){
return
}
// playPassenger(
// writeOffMsg.ticketSize?:0,
// writeOffMsg.phone ?: "",
// writeOffMsg.ticketName ?: "",
// writeOffMsg.orderNo?:""
// )
} else { // 核验失败
ShuttleVoiceManager.writeOffFaile(writeOffMsg.failedReason ?: "")
var tempPhone = writeOffMsg.phone

View File

@@ -3,6 +3,7 @@ package com.mogo.och.weaknet.repository.db.bean
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
import com.google.gson.annotations.SerializedName
@Entity(tableName = LineDataBean.lineDataTable)
data class LineDataBean(
@@ -26,6 +27,7 @@ data class LineDataBean(
* 终点站名称
*/
@ColumnInfo(name = "end_station_name", typeAffinity = ColumnInfo.TEXT)
@SerializedName("endSiteName")
var endStationName: String? = null,
/**
@@ -49,4 +51,12 @@ data class LineDataBean(
return true
}
fun getLineIdAndName(function: (lineId:Long,lineName:String) -> Unit) {
lineId?.let {id->
lineName?.let {name->
function(id,name)
}
}
}
}

View File

@@ -3,16 +3,20 @@ package com.mogo.och.weaknet.repository.db.bean
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
import com.google.gson.annotations.SerializedName
@Entity(tableName = TaskDataBean.taskDataTable)
class TaskDataBean(
@PrimaryKey(autoGenerate = true) var id: Int = 0,
@PrimaryKey(autoGenerate = true)
@SerializedName("idtemp")
var id: Int = 0,
/**
* 任务id
*/
@ColumnInfo(name = "task_id", typeAffinity = ColumnInfo.INTEGER, index = true)
@SerializedName("id")
var taskId: Long? = null,
/**
@@ -83,5 +87,13 @@ class TaskDataBean(
return result
}
fun getLineIdAndName(function: (lineId:Long,lineName:Long) -> Unit) {
taskId?.let {id->
taskStartTime?.let {time->
function(id,time)
}
}
}
}

View File

@@ -1,9 +1,5 @@
package com.mogo.och.weaknet.repository.db.transform
import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse
import com.mogo.och.weaknet.bean.BusQueryLinesResponse
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import io.reactivex.Observable
import io.reactivex.ObservableSource
import io.reactivex.android.schedulers.AndroidSchedulers
@@ -16,31 +12,3 @@ fun <T,V> Observable<T>.transform4DataBase(transfor:Function<T, ObservableSource
.observeOn(AndroidSchedulers.mainThread())
}
class FRetryWithTime11 : Function<List<LineDataBean>?, ObservableSource<List<BusQueryLinesResponse.Result>>> {
override fun apply(baseData: List<LineDataBean>): ObservableSource<List<BusQueryLinesResponse.Result>> {
val result = mutableListOf<BusQueryLinesResponse.Result>()
var temp:BusQueryLinesResponse.Result? = null
baseData.forEach {
temp = BusQueryLinesResponse.Result()
temp?.lineId = it.lineId
temp?.name = it.lineName
temp?.endSiteName = it.endStationName
result.add(temp!!)
}
return Observable.just(result)
}
}
class TransformTask : Function<List<TaskDataBean>?, ObservableSource<List<BusQueryLineTaskResponse.Result>>> {
override fun apply(baseData: List<TaskDataBean>): ObservableSource<List<BusQueryLineTaskResponse.Result>> {
val result = mutableListOf<BusQueryLineTaskResponse.Result>()
var temp:BusQueryLineTaskResponse.Result? = null
baseData.forEach {
temp = BusQueryLineTaskResponse.Result()
temp?.id = it.taskId
temp?.taskStartTime = it.taskStartTime
result.add(temp!!)
}
return Observable.just(result)
}
}

View File

@@ -1,11 +1,11 @@
package com.mogo.och.weaknet.repository.net;
package com.mogo.och.weaknet.repository.net.shuttlesaas;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.weaknet.bean.BusQueryLineStationsRequest;
import com.mogo.och.weaknet.bean.BusRoutesResponse;
import com.mogo.och.weaknet.bean.CarExecutableTaskResponse;
import com.mogo.och.weaknet.bean.ShuttleEventRequest;
import com.mogo.och.weaknet.bean.WriteOffCountResponse;
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest;
import com.mogo.och.weaknet.bean.response.BusRoutesResponse;
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse;
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest;
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse;
import io.reactivex.Observable;
import retrofit2.http.Body;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.repository.net
package com.mogo.och.weaknet.repository.net.shuttlesaas
import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
@@ -9,11 +9,11 @@ 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.weaknet.bean.BusQueryLineStationsRequest
import com.mogo.och.weaknet.bean.BusRoutesResponse
import com.mogo.och.weaknet.bean.CarExecutableTaskResponse
import com.mogo.och.weaknet.bean.ShuttleEventRequest
import com.mogo.och.weaknet.bean.WriteOffCountResponse
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
import com.mogo.och.weaknet.bean.response.BusRoutesResponse
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
/**
* @author: wangmingjun

View File

@@ -10,7 +10,7 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.common.module.wigets.WindowRelativeLayout
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.bean.BusQueryLinesResponse
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.loading_biz
import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.swtichLine
import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.swtichTask
@@ -70,7 +70,7 @@ class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallbac
swtichLine.loadingDatas()
}
override fun showSwitchTaskByLineInfo(lineInfo: BusQueryLinesResponse.Result) {
override fun showSwitchTaskByLineInfo(lineInfo: LineDataBean) {
// 展示loading
showLoadingView()
swtichTask.queryTaskByLineInfo(lineInfo)

View File

@@ -3,9 +3,9 @@ package com.mogo.och.weaknet.ui.bizswitch
import androidx.lifecycle.ViewModel
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.weaknet.bean.BusQueryLinesResponse
import com.mogo.och.weaknet.callback.IBusLinesCallback
import com.mogo.och.weaknet.model.BusLineModel
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
/**
* @author XuXinChao
@@ -20,19 +20,19 @@ class SwtichBizeModel : ViewModel(), IBusLinesCallback {
override fun onCleared() {
BusLineModel.setBusLinesCallback(TAG, null)
LineModel.setBusLinesCallback(TAG, null)
}
fun setDistanceCallback(viewCallback: SwtichLineViewCallback) {
this.viewCallback = viewCallback
BusLineModel.setBusLinesCallback(TAG, this)
LineModel.setBusLinesCallback(TAG, this)
this.viewCallback?.showLoadingView()
ThreadUtils.getIoPool().execute {
BusLineModel.loadStartedTaskAndDefaultInfo()
LineModel.loadStartedTaskAndDefaultInfo()
}
}
fun loadingSwitchTask(lineInfo: BusQueryLinesResponse.Result) {
fun loadingSwitchTask(lineInfo: LineDataBean) {
viewCallback?.showSwitchTaskByLineInfo(lineInfo)
}
@@ -56,7 +56,7 @@ class SwtichBizeModel : ViewModel(), IBusLinesCallback {
interface SwtichLineViewCallback {
fun showSwtichLineView()
fun showLoadingView()
fun showSwitchTaskByLineInfo(lineInfo: BusQueryLinesResponse.Result)
fun showSwitchTaskByLineInfo(lineInfo: LineDataBean)
fun showSwitchTaskInfo()
fun loadLineData()
fun loadRunningTask()
@@ -77,7 +77,7 @@ class SwtichBizeModel : ViewModel(), IBusLinesCallback {
override fun onCompleteTask() {
super.onCompleteTask()
ThreadUtils.getIoPool().execute {
BusLineModel.loadStartedTaskAndDefaultInfo()
LineModel.loadStartedTaskAndDefaultInfo()
}
}
}

View File

@@ -21,7 +21,7 @@ import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatu
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.weaknet.callback.IBusADASStatusCallback
import com.mogo.och.weaknet.model.BusLineModel
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.model.OrderModel
import com.mogo.och.weaknet.util.BusTrajectoryManager
import mogo_msg.MogoReportMsg.MogoReportMessage
@@ -103,7 +103,7 @@ class BusPresenter(view: ShuttleFragment?) : Presenter<ShuttleFragment?>(view),
when (state) {
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE, IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING, IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {
if (FunctionBuildConfig.isDemoMode
&& ((mCurrentStation >= 0 && mCurrentStation <= BusLineModel.stationList!!.size - 1) && OrderModel.isGoingToNextStation)
&& ((mCurrentStation >= 0 && mCurrentStation <= LineModel.stationList!!.size - 1) && OrderModel.isGoingToNextStation)
) {
d(SceneConstant.M_BUS + "BusOrderModel=", "有美化功能")
return

View File

@@ -4,34 +4,29 @@ import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import androidx.appcompat.widget.AppCompatTextView
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.DiffUtil.Callback
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.mogo.och.weaknet.bean.BusQueryLinesResponse
import com.mogo.och.weaknet.ui.switchline.SwitchLineAdapter.SwitchLineViewHolder
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
/**
* 路线列表adapter
*/
class SwitchLineAdapter(
private val mContext: Context,
val mData: MutableList<BusQueryLinesResponse.Result>
val mData: MutableList<LineDataBean>
) : RecyclerView.Adapter<SwitchLineViewHolder>() {
companion object{
const val TAG = "SwitchLineAdapter"
}
// RecyclerView设置点击事件
private var mItemClickListener: LineItemClickListener? = null
var checkLine:BusQueryLinesResponse.Result? = null
var checkTask: BusQueryLineTaskResponse.Result? = null
fun setDataList(dataList: List<BusQueryLinesResponse.Result>) {
fun setDataList(dataList: List<LineDataBean>) {
if (this.mData == dataList) {
// 如果新旧列表一致,则直接返回
return
@@ -57,8 +52,8 @@ class SwitchLineAdapter(
val currentPosition = holder.bindingAdapterPosition
val line = mData[currentPosition]
holder.lineName.text = line.name
val string = mContext.getString(R.string.bus_line_goto_end, line.endSiteName)
holder.lineName.text = line.lineName
val string = mContext.getString(R.string.bus_line_goto_end, line.endStationName)
holder.lineEndName.text = string
@@ -82,10 +77,10 @@ class SwitchLineAdapter(
}
interface LineItemClickListener {
fun onItemClick(data: BusQueryLinesResponse.Result)
fun onItemClick(data: LineDataBean)
}
inner class MyDiffCallback(private val oldData:List<BusQueryLinesResponse.Result>, private val newData:List<BusQueryLinesResponse.Result>):
inner class MyDiffCallback(private val oldData:List<LineDataBean>, private val newData:List<LineDataBean>):
Callback(){
override fun getOldListSize(): Int {
return oldData.size

View File

@@ -9,18 +9,14 @@ import android.view.View
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import androidx.recyclerview.widget.LinearLayoutManager
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.common.module.wigets.WindowRelativeLayout
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse
import com.mogo.och.weaknet.bean.BusQueryLinesResponse
import com.mogo.och.weaknet.model.BusLineModel
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import com.mogo.och.weaknet.ui.bizswitch.SwtichBizeModel
import kotlinx.android.synthetic.main.shuttle_wadk_task_running.view.no_order_data_view
import kotlinx.android.synthetic.main.shuttle_weak_switch_line.view.aciv_refresh_task
@@ -74,7 +70,7 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba
switch_line_rv.setAdapter(mAdapter)
//设置item 点击事件
mAdapter.setOnLineItemClickListener(object : SwitchLineAdapter.LineItemClickListener{
override fun onItemClick(data: BusQueryLinesResponse.Result) {
override fun onItemClick(data: LineDataBean) {
viewbizModel?.loadingSwitchTask(data)
}
})
@@ -117,7 +113,7 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba
}
override fun onBusLinesChange(data: MutableList<BusQueryLinesResponse.Result>?) {
override fun onBusLinesChange(data: MutableList<LineDataBean>?) {
if (data.isNullOrEmpty()) {
showNoData(true)
}else{

View File

@@ -3,10 +3,10 @@ package com.mogo.och.weaknet.ui.switchline
import androidx.lifecycle.ViewModel
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.weaknet.bean.BusQueryLinesResponse
import com.mogo.och.weaknet.callback.IBusLinesCallback
import com.mogo.och.weaknet.model.BusLineModel
import com.mogo.och.weaknet.model.BusLineModel.EXECUTABLECHANGETIME
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.model.LineModel.EXECUTABLECHANGETIME
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
/**
* @author XuXinChao
@@ -21,16 +21,16 @@ class SwtichLineModel : ViewModel(), IBusLinesCallback {
override fun onCleared() {
BusLineModel.setBusLinesCallback(TAG,null)
LineModel.setBusLinesCallback(TAG,null)
}
fun setDistanceCallback(viewCallback:SwtichLineViewCallback){
this.viewCallback = viewCallback
BusLineModel.setBusLinesCallback(TAG,this)
LineModel.setBusLinesCallback(TAG,this)
}
fun queryBusLines() {
BusLineModel.queryBusLines()
LineModel.queryBusLines()
}
fun setRefreshTime() {
@@ -41,16 +41,16 @@ class SwtichLineModel : ViewModel(), IBusLinesCallback {
}
fun refreshTask() {
BusLineModel.refreshTask()
LineModel.refreshTask()
}
interface SwtichLineViewCallback{
fun startTaskState(success: Boolean)
fun onBusLinesChange(data: MutableList<BusQueryLinesResponse.Result>?)
fun onBusLinesChange(data: MutableList<LineDataBean>?)
fun refreshDate(formatLongToString: String?)
}
override fun onBusLinesChange(data: MutableList<BusQueryLinesResponse.Result>?) {
override fun onBusLinesChange(data: MutableList<LineDataBean>?) {
viewCallback?.onBusLinesChange(data)
}

View File

@@ -9,9 +9,10 @@ import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.DiffUtil.Callback
import androidx.recyclerview.widget.RecyclerView
import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.weaknet.ui.switchtask.SwitchLineTaskAdapter.SwitchLineTaskViewHolder
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
/**
* 路线列表adapter
@@ -19,11 +20,11 @@ import com.mogo.och.shuttle.weaknet.R
@Suppress("UNUSED_EXPRESSION")
class SwitchLineTaskAdapter(
private val mContext: Context,
private var checkTask:BusQueryLineTaskResponse.Result?,
private val mData: MutableList<BusQueryLineTaskResponse.Result>,
private var checkTask:TaskDataBean?,
private val mData: MutableList<TaskDataBean>,
) : RecyclerView.Adapter<SwitchLineTaskViewHolder>() {
fun setDataList(dataList: List<BusQueryLineTaskResponse.Result>) {
fun setDataList(dataList: List<TaskDataBean>) {
if (this.mData == dataList) {
// 如果新旧列表一致,则直接返回
return
@@ -37,7 +38,7 @@ class SwitchLineTaskAdapter(
diffResult.dispatchUpdatesTo(this)
}
fun getCheckTask():BusQueryLineTaskResponse.Result?{
fun getCheckTask(): TaskDataBean?{
return checkTask
}
@@ -57,17 +58,17 @@ class SwitchLineTaskAdapter(
override fun onBindViewHolder(holder: SwitchLineTaskViewHolder, position: Int) {
val currentPosition = holder.bindingAdapterPosition
val task = mData[currentPosition]
val taskStartTime = TimeUtils.millis2String(task.taskStartTime, "HH:mm")
val taskStartTime = TimeUtils.millis2String(task.taskStartTime?:System.currentTimeMillis(), "HH:mm")
holder.taskTime.text = taskStartTime
holder.taskTime.isChecked = if(checkTask!=null) checkTask!!.id == task.id else false
holder.taskTime.isChecked = if(checkTask!=null) checkTask!!.taskId == task.taskId else false
holder.taskTime.setOnClickListener {
if(checkTask==null){
resetOther()
checkTask = task
mTaskItemClickListener?.onItemClick(currentPosition,true)
}else{
if(checkTask!!.id==task.id){
if(checkTask!!.taskId==task.taskId){
checkTask = null
mTaskItemClickListener?.onItemClick(currentPosition,false)
}else {
@@ -84,7 +85,7 @@ class SwitchLineTaskAdapter(
private fun resetOther() {
mData.forEachIndexed { index, result ->
if(checkTask!=null && result.id==checkTask!!.id){
if(checkTask!=null && result.taskId==checkTask!!.taskId){
checkTask = null
notifyItemChanged(index)
}
@@ -103,7 +104,7 @@ class SwitchLineTaskAdapter(
fun onItemClick(position: Int,isCheck:Boolean)
}
inner class MyDiffCallback(private val oldData:List<BusQueryLineTaskResponse.Result>, private val newData:List<BusQueryLineTaskResponse.Result>):
inner class MyDiffCallback(private val oldData:List<TaskDataBean>, private val newData:List<TaskDataBean>):
Callback(){
override fun getOldListSize(): Int {
return oldData.size
@@ -116,13 +117,13 @@ class SwitchLineTaskAdapter(
override fun areItemsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean {
val oldItem = oldData[oldItemPosition]
val newItem = newData[newItemPosition]
return oldItem.id == newItem.id
return oldItem.taskId == newItem.taskId
}
override fun areContentsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean {
val oldItem = oldData[oldItemPosition]
val newItem = newData[newItemPosition]
return oldItem.id == newItem.id
return oldItem.taskId == newItem.taskId
}
}

View File

@@ -8,13 +8,13 @@ import androidx.lifecycle.findViewTreeViewModelStoreOwner
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.common.module.wigets.WindowRelativeLayout
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse
import com.mogo.och.weaknet.bean.BusQueryLinesResponse
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import com.mogo.och.weaknet.ui.bizswitch.SwtichBizeModel
import com.mogo.och.weaknet.ui.switchtask.SwitchLineTaskAdapter.TaskItemClickListener
import kotlinx.android.synthetic.main.shuttle_weak_switch_task.view.actvLineEndStationName
@@ -98,20 +98,22 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba
viewModel?.setDistanceCallback(this)
}
fun queryTaskByLineInfo(lineInfo: BusQueryLinesResponse.Result) {
fun queryTaskByLineInfo(lineInfo: LineDataBean) {
viewModel?.queryBusLineTasksById(lineInfo)
busLineName.text = lineInfo.name
actvLineEndStationName.text = "${lineInfo.endSiteName}方向"
busLineName.text = lineInfo.lineName
actvLineEndStationName.text = "${lineInfo.endStationName}方向"
}
override fun showTaskByLineIdResult(taskList: MutableList<BusQueryLineTaskResponse.Result>) {
if(taskList.isEmpty()){
showEmptyView()
}else {
showData()
mAdapter.setDataList(taskList)
override fun showTaskByLineIdResult(taskList: MutableList<TaskDataBean>?) {
BizLoopManager.runInMainThread{
if(taskList.isNullOrEmpty()){
showEmptyView()
}else {
showData()
mAdapter.setDataList(taskList)
}
viewbizModel?.showSwitchTaskInfo()
}
viewbizModel?.showSwitchTaskInfo()
}
private fun showData(){

View File

@@ -5,10 +5,10 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse
import com.mogo.och.weaknet.bean.BusQueryLinesResponse
import com.mogo.och.weaknet.callback.IBusLinesCallback
import com.mogo.och.weaknet.model.BusLineModel
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import io.reactivex.disposables.Disposable
/**
@@ -22,38 +22,38 @@ class SwtichTaskModel : ViewModel(), IBusLinesCallback {
private var viewCallback:SwtichLineViewCallback?=null
private var tasksBelongLine: BusQueryLinesResponse.Result? = null
private var tasksBelongLine: LineDataBean? = null
private var subscribe: Disposable? = null
override fun onCleared() {
RxUtils.disposeSubscribe(subscribe)
BusLineModel.setBusLinesCallback(TAG,null)
LineModel.setBusLinesCallback(TAG,null)
}
fun setDistanceCallback(viewCallback:SwtichLineViewCallback){
this.viewCallback = viewCallback
BusLineModel.setBusLinesCallback(TAG,this)
LineModel.setBusLinesCallback(TAG,this)
}
fun queryBusLineTasksById(lineInfo: BusQueryLinesResponse.Result) {
fun queryBusLineTasksById(lineInfo: LineDataBean) {
tasksBelongLine = lineInfo
BusLineModel.queryBusLineTasksById(lineInfo.lineId)
LineModel.queryBusLineTasksById(lineInfo.lineId?:-1L)
}
interface SwtichLineViewCallback{
fun showTaskByLineIdResult(taskList: MutableList<BusQueryLineTaskResponse.Result>)
fun showTaskByLineIdResult(taskList: MutableList<TaskDataBean>?)
fun showLoading()
fun hideLoading()
fun startTaskSuccess()
}
override fun onBusLineTasks(o: MutableList<BusQueryLineTaskResponse.Result>) {
override fun onBusLineTasks(o: MutableList<TaskDataBean>?) {
viewCallback?.showTaskByLineIdResult(o)
}
override fun onRefreshSuccess(currentTimeStamp: Long) {
TODO("Not yet implemented")
}
// 选择线路成功
@@ -75,13 +75,13 @@ class SwtichTaskModel : ViewModel(), IBusLinesCallback {
viewCallback?.hideLoading()
}
fun changeLineStart(checkTask:BusQueryLineTaskResponse.Result) {
fun changeLineStart(checkTask:TaskDataBean) {
if(tasksBelongLine==null){
ToastUtils.showShort("请重新选择线路")
return
}
viewCallback?.showLoading()
BusLineModel.commitSwitchLineId(checkTask,tasksBelongLine!!)
LineModel.commitSwitchLineId(checkTask,tasksBelongLine!!)
}

View File

@@ -8,14 +8,10 @@ import android.view.View
import android.view.ViewGroup
import androidx.appcompat.widget.AppCompatImageView
import androidx.appcompat.widget.AppCompatTextView
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.DiffUtil.Callback
import androidx.recyclerview.widget.RecyclerView
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.weaknet.bean.BusQueryLinesResponse
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse
import com.mogo.och.weaknet.ui.writeoff.WriteOffView
import me.jessyan.autosize.utils.AutoSizeUtils

View File

@@ -3,7 +3,7 @@ package com.mogo.och.weaknet.ui.taskrunning
import androidx.lifecycle.ViewModel
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.weaknet.callback.IBusLinesCallback
import com.mogo.och.weaknet.model.BusLineModel
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.model.OrderModel
/**
@@ -23,7 +23,7 @@ class TaskRunningModel : ViewModel(), IBusLinesCallback {
fun setDistanceCallback(viewCallback:SwtichLineViewCallback){
this.viewCallback = viewCallback
BusLineModel.setBusLinesCallback(TAG,this)
LineModel.setBusLinesCallback(TAG,this)
}
fun leaveStation() {

View File

@@ -1,6 +1,5 @@
package com.mogo.och.weaknet.ui.taskrunning
import android.animation.ObjectAnimator
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
@@ -16,11 +15,9 @@ import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.common.module.wigets.OCHCommitDialog
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.model.BusLineModel
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.ui.bizswitch.SwtichBizeModel
import com.mogo.och.weaknet.ui.switchline.SwitchLineAdapter
import com.mogo.och.weaknet.view.BizLeaveStationView.SlideListener
import kotlinx.android.synthetic.main.shuttle_weak_switch_line.view.switch_line_rv
import kotlinx.android.synthetic.main.shuttle_weak_task_running.view.aciv_task_leave_station_slide_bg
import kotlinx.android.synthetic.main.shuttle_weak_task_running.view.actv_arriver_station
import kotlinx.android.synthetic.main.shuttle_weak_task_running.view.actv_complete_task
@@ -112,18 +109,18 @@ class TaskRunningView: ConstraintLayout, TaskRunningModel.SwtichLineViewCallback
override fun showRunningTaskInfo() {
bus_task_running_line_name.text = LineManager.lineInfos?.lineName?:""
actv_running_task_time.text = BusLineModel.getTaskTime()
BusLineModel.stationList?.takeIf { it.size>2 }?.let {
actv_running_task_time.text = LineModel.getTaskTime()
LineModel.stationList?.takeIf { it.size>2 }?.let {
actv_running_task_last_station.text = "${it.last().name ?: ""}"
mAdapter.setDataList(it,BusLineModel.startStationIndex)
CallerLogger.d(TAG,"BusLineModel.startStationIndex:${BusLineModel.startStationIndex}___$it")
val currentStation = it.get(BusLineModel.startStationIndex)
mAdapter.setDataList(it,LineModel.startStationIndex)
CallerLogger.d(TAG,"BusLineModel.startStationIndex:${LineModel.startStationIndex}___$it")
val currentStation = it.get(LineModel.startStationIndex)
if(currentStation.isLeaving){
showArriverStationAndCompleteTask()
}else{
showLeaveStationView()
}
if(BusLineModel.startStationIndex==it.size-1){
if(LineModel.startStationIndex==it.size-1){
aciv_task_leave_station_slide_bg.setTextValue("单程结束")
}else{
aciv_task_leave_station_slide_bg.setTextValue("滑动出发")

View File

@@ -11,12 +11,11 @@ import com.mogo.eagle.core.utilcode.util.GsonUtils;
import com.mogo.och.common.module.biz.login.LoginStatusManager;
import com.mogo.och.common.module.manager.autopilot.line.LineManager;
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager;
import com.mogo.och.data.bean.BusRoutesResult;
import com.mogo.och.data.bean.ContraiInfo;
import com.mogo.och.data.bean.LineInfo;
import com.mogo.och.weaknet.constant.BusConst;
import com.mogo.och.weaknet.model.OrderModel;
import com.mogo.och.weaknet.model.BusLineModel;
import com.mogo.och.weaknet.model.LineModel;
import java.util.concurrent.TimeUnit;
@@ -54,8 +53,8 @@ public class BusTrajectoryManager {
* 同步Bus路线信息
*/
public void syncTrajectoryInfo() {
if (LoginStatusManager.isLogin() && BusLineModel.INSTANCE.getCurrentTask() != null
&& BusLineModel.getStartStationIndex() == 0
if (LoginStatusManager.isLogin() && LineModel.INSTANCE.getCurrentTask() != null
&& LineModel.getStartStationIndex() == 0
&& !OrderModel.isGoingToNextStation()) {
CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() start.");
startTrajReqLoop();