From 581a7c4d78244ebe57b29c6157f5018b890beb6d Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 26 Aug 2024 19:29:30 +0800 Subject: [PATCH] =?UTF-8?q?[6.6.0]=20[=E6=9C=AA=E4=B8=8A=E4=BC=A0=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/common/module/utils/DateTimeUtil.java | 1 + .../1.json | 24 +++++- .../mogo/och/weaknet/bean/WaitUploadTask.kt | 18 +++++ .../weaknet/database/bean/EventDataBean.kt | 20 +++++ .../och/weaknet/database/dao/EventDataDao.kt | 6 +- .../database/repository/EventRepository.kt | 70 +++++++++++++----- .../mogo/och/weaknet/model/BusLineModel.kt | 51 ++++++++----- .../com/mogo/och/weaknet/model/EventModel.kt | 55 +++++++++++++- .../com/mogo/och/weaknet/model/OrderModel.kt | 8 +- .../ui/taskrunning/RunningTaskManagerView.kt | 20 ++++- .../ui/taskrunning/RunningTastViewModel.kt | 56 ++++++++++++++ .../shuttle_task_wait_upload.png | Bin 0 -> 2750 bytes .../res/layout/shuttle_wadk_task_running.xml | 35 ++++++++- .../src/main/res/values/colors.xml | 2 + .../src/main/res/values/strings.xml | 2 + 15 files changed, 319 insertions(+), 49 deletions(-) create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/WaitUploadTask.kt create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/RunningTastViewModel.kt create mode 100644 OCH/shuttle/driver_weaknet/src/main/res/drawable-nodpi/shuttle_task_wait_upload.png diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java index b9d0e51ea8..3dd98d36ea 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java @@ -23,6 +23,7 @@ public class DateTimeUtil { public static final String yy_MM_dd = "yy.MM.dd"; public static final String yyyy_MM_dd_HH_mm = "yyyy-MM-dd HH:mm"; public static final String yyyy_MM_dd_HH_mm_ss = "yyyy-MM-dd HH:mm:ss"; + public static final String MM_dd_HH_mm_china = "yyyy年MM月dd日"; public static String formatCalendarToString(Calendar calendar, String format){ if (calendar == null) return ""; diff --git a/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/1.json b/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/1.json index 9d0be57659..442f316a99 100644 --- a/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/1.json +++ b/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/1.json @@ -2,7 +2,7 @@ "formatVersion": 1, "database": { "version": 1, - "identityHash": "1fb2dea0f72d7abf11cbb9928b9572c3", + "identityHash": "066a91b8d796cc1004c4e438b2c125f3", "entities": [ { "tableName": "contrail_data_table", @@ -495,7 +495,7 @@ }, { "tableName": "event_data_table", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `event_type` TEXT, `task_id` INTEGER, `business_time` INTEGER, `write_version` INTEGER, `site_id` INTEGER, `seq` INTEGER, `event_save_time` INTEGER NOT NULL, `update_status` INTEGER NOT NULL)", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `event_type` TEXT, `lineId` INTEGER, `lineName` TEXT, `task_id` INTEGER, `task_start_time` INTEGER, `business_time` INTEGER, `write_version` INTEGER, `site_id` INTEGER, `seq` INTEGER, `event_save_time` INTEGER NOT NULL, `update_status` INTEGER NOT NULL)", "fields": [ { "fieldPath": "id", @@ -509,12 +509,30 @@ "affinity": "TEXT", "notNull": false }, + { + "fieldPath": "lineId", + "columnName": "lineId", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "lineName", + "columnName": "lineName", + "affinity": "TEXT", + "notNull": false + }, { "fieldPath": "taskId", "columnName": "task_id", "affinity": "INTEGER", "notNull": false }, + { + "fieldPath": "taskStartTime", + "columnName": "task_start_time", + "affinity": "INTEGER", + "notNull": false + }, { "fieldPath": "businessTime", "columnName": "business_time", @@ -575,7 +593,7 @@ "views": [], "setupQueries": [ "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", - "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '1fb2dea0f72d7abf11cbb9928b9572c3')" + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '066a91b8d796cc1004c4e438b2c125f3')" ] } } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/WaitUploadTask.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/WaitUploadTask.kt new file mode 100644 index 0000000000..23907d60aa --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/WaitUploadTask.kt @@ -0,0 +1,18 @@ +package com.mogo.och.weaknet.bean + +data class WaitUploadLine(var lineName:String ,var lineId:Long,var task:MutableList){ + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + + other as WaitUploadLine + + return lineId == other.lineId + } + + override fun hashCode(): Int { + return lineId.hashCode() + } +} + +data class WaitUploadTask(val taskStartTime:Long,val taskId:Long) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/EventDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/EventDataBean.kt index 28c02bbbbb..73b42c4b28 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/EventDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/EventDataBean.kt @@ -17,12 +17,32 @@ data class EventDataBean( */ @ColumnInfo(name = "event_type", typeAffinity = ColumnInfo.TEXT) var eventType: String? = null, + + /** + * 任务id + */ + @ColumnInfo(name = "lineId", typeAffinity = ColumnInfo.INTEGER) + var lineId: Long? = null, + + /** + * 任务id + */ + @ColumnInfo(name = "lineName", typeAffinity = ColumnInfo.TEXT) + var lineName: String? = null, + + /** * 任务id */ @ColumnInfo(name = "task_id", typeAffinity = ColumnInfo.INTEGER) var taskId: Long? = null, + /** + * 任务id + */ + @ColumnInfo(name = "task_start_time", typeAffinity = ColumnInfo.INTEGER) + var taskStartTime: Long? = null, + /** * 业务发生的时间 */ diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/EventDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/EventDataDao.kt index f7b4c0bd18..24a017610f 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/EventDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/EventDataDao.kt @@ -6,9 +6,8 @@ import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query import com.mogo.och.common.module.utils.DateTimeUtil -import com.mogo.och.weaknet.database.bean.ContrailDataBean import com.mogo.och.weaknet.database.bean.EventDataBean -import com.mogo.och.weaknet.database.bean.LineDataBean +import io.reactivex.Observable @Dao interface EventDataDao { @@ -28,4 +27,7 @@ interface EventDataDao { @Query("SELECT * FROM ${EventDataBean.evnetDataTable} WHERE update_status = ${EventDataBean.notUpdate} LIMIT 10 OFFSET 0") fun queryEventByStatusWithPage():List? + @Query("SELECT * FROM ${EventDataBean.evnetDataTable} WHERE update_status = ${EventDataBean.updated} and event_save_time > :zeroTime GROUP by task_start_time") + fun queryWaitUploadInfo(zeroTime: Long = DateTimeUtil.getCurrentDateZero()): Observable?> + } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/EventRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/EventRepository.kt index a57d6e041d..95143fe2c4 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/EventRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/EventRepository.kt @@ -5,6 +5,8 @@ import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.weaknet.database.MyDataBase import com.mogo.och.weaknet.database.bean.EventDataBean import com.mogo.och.weaknet.database.dao.EventDataDao +import io.reactivex.Observable + object EventRepository { @@ -16,10 +18,13 @@ object EventRepository { eventDataDao = MyDataBase.instance.eventDataDao } - fun saveEventTaskStart(taskId: Long) { + fun saveEventTaskStart(taskId: Long, lineId: Long, taskStartTime: Long, name: String) { val event = EventDataBean() event.eventType = EventDataBean.TaskStart + event.lineId = lineId event.taskId = taskId + event.lineName = name + event.taskStartTime = taskStartTime event.businessTime = DateTimeUtil.getCurrentTimeStamp() event.writeVersion = DateTimeUtil.getCurrentTimeStamp() event.siteId = 0L @@ -30,23 +35,19 @@ object EventRepository { } } - fun saveEventTaskArriveSite(taskId: Long,siteId:Long,seq:Int) { + fun saveEventTaskArriveSite( + taskId: Long, + lineId: Long, + siteId: Long, + seq: Int, + taskStartTime: Long?, + lineName: String + ) { val event = EventDataBean() event.eventType = EventDataBean.TaskArriveSite - event.taskId = taskId - event.businessTime = DateTimeUtil.getCurrentTimeStamp() - event.writeVersion = DateTimeUtil.getCurrentTimeStamp() - event.siteId = siteId - event.seq = seq - DbThreadUtils.runInIoThread{ - eventDataDao?.insert(event) - eventCallback?.notifySyn() - } - } - - fun saveEventTaskLeaveSite(taskId: Long,siteId:Long,seq:Int) { - val event = EventDataBean() - event.eventType = EventDataBean.TaskLeaveSite + event.lineId = lineId + event.taskStartTime = taskStartTime + event.lineName = lineName event.taskId = taskId event.businessTime = DateTimeUtil.getCurrentTimeStamp() event.writeVersion = DateTimeUtil.getCurrentTimeStamp() @@ -58,10 +59,37 @@ object EventRepository { } } - fun saveEventTaskEnd(taskId: Long) { + fun saveEventTaskLeaveSite( + taskId: Long, + lineId: Long, + siteId: Long, + seq: Int, + taskStartTime: Long?, + lineName: String + ) { + val event = EventDataBean() + event.eventType = EventDataBean.TaskLeaveSite + event.lineId = lineId + event.taskId = taskId + event.taskStartTime = taskStartTime + event.lineName = lineName + event.businessTime = DateTimeUtil.getCurrentTimeStamp() + event.writeVersion = DateTimeUtil.getCurrentTimeStamp() + event.siteId = siteId + event.seq = seq + DbThreadUtils.runInIoThread { + eventDataDao?.insert(event) + eventCallback?.notifySyn() + } + } + + fun saveEventTaskEnd(taskId: Long, lineId: Long, taskStartTime: Long?, lineName: String) { val event = EventDataBean() event.eventType = EventDataBean.TaskEnd + event.lineId = lineId event.taskId = taskId + event.lineName = lineName + event.taskStartTime = taskStartTime event.businessTime = DateTimeUtil.getCurrentTimeStamp() event.writeVersion = DateTimeUtil.getCurrentTimeStamp() event.siteId = 0L @@ -80,12 +108,16 @@ object EventRepository { eventDataDao?.insert(*waitUpdateEvent.toTypedArray()) } - fun deleteObsoleteData(){ + fun deleteObsoleteData() { eventDataDao?.deleteObsoleteData()?.let { - OchChainLogManager.writeChainLogDb("删除临时数据","Event删除数量:${it}") + OchChainLogManager.writeChainLogDb("删除临时数据", "Event删除数量:${it}") } } + fun queryWaitUploadData(): Observable?>? { + return eventDataDao?.queryWaitUploadInfo() + } + interface EventCallback { fun notifySyn() } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/BusLineModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/BusLineModel.kt index 5e1d7b2da2..8150e645c3 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/BusLineModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/BusLineModel.kt @@ -16,7 +16,6 @@ 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 import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.ResourcesUtils @@ -243,7 +242,7 @@ object BusLineModel { override fun startSuccess() { SharedPrefsMgr.getInstance() .putLong(BusSwitchLineActivity.LASTCOMMITLINEID, line.lineId) - EventRepository.saveEventTaskStart(task.id) + EventRepository.saveEventTaskStart(task.id,line.lineId,task.taskStartTime,line.name) if (mBusLinesCallback != null) { mBusLinesCallback!!.onChangeLineIdSuccess() } @@ -330,14 +329,23 @@ object BusLineModel { 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 - ) + currentTask?.let { task -> + if (task.taskId!=null&&task.lineId!=null) { + TaskSiteRepository.updateLeave(task.taskId!!, startStation.siteId.toLong(), true) + // 设置滑动出发任务 + LineManager.lineInfos?.lineName?.let { lineName-> + EventRepository.saveEventTaskLeaveSite( + task.taskId!!, + task.lineId!!, + startStation.siteId.toLong(), + startStation.seq, + task.taskStartTime, + lineName + ) + } + + } + } } else { OchChainLogManager.writeChainLog( @@ -357,10 +365,14 @@ object BusLineModel { 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) + currentTask?.let { task-> + if (task.taskId!=null&&task.lineId!=null) { + TaskSiteRepository.updateDrivingStatusAndLeave(task.taskId!!,it.siteId.toLong(),TaskSiteDataBean.drivingStatusPassed,false) + // 设置到站任务 + LineManager.lineInfos?.let {lineInfo -> + EventRepository.saveEventTaskArriveSite(task.taskId!!,task.lineId!!,it.siteId.toLong(),it.seq,task.taskStartTime,lineInfo.lineName) + } + } } }else{ OchChainLogManager.writeChainLog("到站_数据更新_error","task:${currentTask}__taskId:${currentTask?.taskId}") @@ -405,9 +417,14 @@ object BusLineModel { fun endTask() { CallerOrderListenerManager.invokeOrderLineUpdate("") - currentTask?.taskId?.let { - TaskRepository.endTask(it) - EventRepository.saveEventTaskEnd(it) + currentTask?.let {task-> + if (task.taskId!=null&&task.lineId!=null) { + TaskRepository.endTask(task.taskId!!) + LineManager.lineInfos?.lineName?.let {lineName-> + EventRepository.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineName) + } + + } } currentTask = null diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt index 2f15710053..0e6a57041a 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt @@ -4,35 +4,52 @@ import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.data.BaseData 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.WaitUploadLine +import com.mogo.och.weaknet.bean.WaitUploadTask import com.mogo.och.weaknet.database.bean.EventDataBean import com.mogo.och.weaknet.database.repository.EventRepository import com.mogo.och.weaknet.net.OrderServiceManager +import io.reactivex.Observable +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.schedulers.Schedulers +import java.util.concurrent.atomic.AtomicBoolean object EventModel : EventRepository.EventCallback { - + private val isUpdating = AtomicBoolean(false) fun load(){ EventRepository.eventCallback = this + BizLoopManager.postDelayed(loopUpdateInfo,2*60*1000) } fun release(){ EventRepository.eventCallback = null } + private val loopUpdateInfo = object :Runnable{ + override fun run() { + updateEvent() + } + } + override fun notifySyn() { + BizLoopManager.removeCallback(loopUpdateInfo) updateEvent() } private fun updateEvent(){ + isUpdating.set(true) ThreadUtils.getSinglePool().submit { val waitUpdateEvent = EventRepository.queryWaitUpdateEvent() if(waitUpdateEvent.isNullOrEmpty()){ OchChainLogManager.writeChainLogDb("上报event","没有数据需要上报${Thread.currentThread().name}") + isUpdating.set(false) return@submit } OchChainLogManager.writeChainLogDb("上报event","开始上报:${Thread.currentThread().name}") @@ -44,15 +61,20 @@ object EventModel : EventRepository.EventCallback { } OchChainLogManager.writeChainLogDb("上报event成功","$transformDb2Net ${Thread.currentThread().name}") EventRepository.saveUpdateSuccess(waitUpdateEvent) + isUpdating.set(false) + BizLoopManager.postDelayed(loopUpdateInfo,2*60*1000) } override fun onFail(code: Int, msg: String?) { + isUpdating.set(false) OchChainLogManager.writeChainLogDb("上报event失败","$transformDb2Net ${Thread.currentThread().name}") + BizLoopManager.postDelayed(loopUpdateInfo,2*60*1000) } override fun onError() { - super.onError() + isUpdating.set(false) OchChainLogManager.writeChainLogDb("上报event失败","$transformDb2Net ${Thread.currentThread().name}") + BizLoopManager.postDelayed(loopUpdateInfo,2*60*1000) } }) @@ -61,6 +83,33 @@ object EventModel : EventRepository.EventCallback { } fun haveDataWaitSyn(): Boolean { - TODO("Not yet implemented") + EventRepository.queryWaitUpdateEvent()?.let { + return it.isNotEmpty() + } + return false + } + + fun queryWaitUploadInfo(): Observable>? { + return EventRepository.queryWaitUploadData() + ?.flatMap { waitUploadList-> + val result = mutableListOf() + waitUploadList.forEach { wait-> + if(wait.lineId!=null&&wait.lineName!=null&&wait.taskId!=null&&wait.taskStartTime!=null) { + val tempTask = WaitUploadTask(wait.taskStartTime!!,wait.taskId!!) + val tempLine = WaitUploadLine(wait.lineName!!, wait.lineId!!, mutableListOf(tempTask)) + if(result.contains(tempLine)){ + result.forEach{ + if(it.lineId == tempLine.lineId){ + it.task.add(tempTask) + } + } + }else{ + result.add(tempLine) + } + } + } + Observable.just(result) + }?.subscribeOn(Schedulers.io()) + ?.observeOn(AndroidSchedulers.mainThread()) } } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt index 309f392580..b32394fbdb 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt @@ -234,6 +234,10 @@ object OrderModel { */ private fun updateBusTaskStatus() { var arrivingOrArrivedStationIndex = 0 //已经到站或者即将到站的索引呢 + if(BusLineModel.stationList.isNullOrEmpty()){ + OchChainLogManager.writeChainLog("更新UI出错","${BusLineModel.currentTask}") + return + } BusLineModel.stationList?.let { for (i in it.indices) { val station = it[i] @@ -709,9 +713,9 @@ object OrderModel { // 登出 @JvmStatic fun logout() { - // TODO: 检测是否有本地任务没有同步到服务器端 if(EventModel.haveDataWaitSyn()){ - + ToastUtils.showShort(ResourcesUtils.getString(R.string.shuttle_logout_error)) + return } LoginStatusManager.loginOut() } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/RunningTaskManagerView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/RunningTaskManagerView.kt index 3841af3437..142d77869f 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/RunningTaskManagerView.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/RunningTaskManagerView.kt @@ -6,7 +6,11 @@ import android.graphics.drawable.ColorDrawable import android.util.AttributeSet import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.findViewTreeViewModelStoreOwner +import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.shuttle.weaknet.R +import kotlinx.android.synthetic.main.shuttle_wadk_task_running.view.actvCurrentDate import kotlinx.android.synthetic.main.shuttle_wadk_task_running.view.clLayout import kotlinx.android.synthetic.main.shuttle_wadk_task_running.view.ivTaskRunningClose @@ -20,13 +24,14 @@ class RunningTaskManagerView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr) { +) : ConstraintLayout(context, attrs, defStyleAttr), RunningTastViewModel.RunningTaskViewCallback { companion object { const val TAG = "BadCaseManagerView" } private var clickListener:ClickListener?=null + private var viewModel:RunningTastViewModel?=null init { LayoutInflater.from(context).inflate(R.layout.shuttle_wadk_task_running, this, true) @@ -55,6 +60,19 @@ class RunningTaskManagerView @JvmOverloads constructor( override fun onAttachedToWindow() { super.onAttachedToWindow() + viewModel = findViewTreeViewModelStoreOwner()?.let { + ViewModelProvider(it).get(RunningTastViewModel::class.java) + } + + viewModel?.setDistanceCallback(this) + } + + override fun onVisibilityAggregated(isVisible: Boolean) { + super.onVisibilityAggregated(isVisible) + if(isVisible){ + viewModel?.queryNewData() + actvCurrentDate.setText(DateTimeUtil.formatLongToString(System.currentTimeMillis(),DateTimeUtil.MM_dd_HH_mm_china)) + } } override fun onDetachedFromWindow() { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/RunningTastViewModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/RunningTastViewModel.kt new file mode 100644 index 0000000000..38bae2b391 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/RunningTastViewModel.kt @@ -0,0 +1,56 @@ +package com.mogo.och.weaknet.ui.taskrunning + +import androidx.lifecycle.ViewModel +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.och.weaknet.bean.WaitUploadLine +import com.mogo.och.weaknet.model.EventModel +import io.reactivex.Observer +import io.reactivex.disposables.Disposable + +/** + * @author XuXinChao + * @description BadCase录包管理页面 + * @since: 2022/12/15 + */ +class RunningTastViewModel : ViewModel() { + + private val TAG = RunningTastViewModel::class.java.simpleName + + private var viewCallback:RunningTaskViewCallback?=null + + + fun setDistanceCallback(viewCallback:RunningTaskViewCallback){ + this.viewCallback = viewCallback + } + + override fun onCleared() { + + } + + fun queryNewData() { + EventModel.queryWaitUploadInfo() + ?.subscribe(object : Observer> { + override fun onSubscribe(d: Disposable) { + CallerLogger.d(TAG, "onSubscribe") + } + + override fun onError(e: Throwable) { + CallerLogger.d(TAG, "onError${e.printStackTrace()}") + } + + override fun onComplete() { + CallerLogger.d(TAG, "onComplete") + } + + override fun onNext(data: MutableList) { + + } + + }) + } + + interface RunningTaskViewCallback{ + + } +} + diff --git a/OCH/shuttle/driver_weaknet/src/main/res/drawable-nodpi/shuttle_task_wait_upload.png b/OCH/shuttle/driver_weaknet/src/main/res/drawable-nodpi/shuttle_task_wait_upload.png new file mode 100644 index 0000000000000000000000000000000000000000..414342cf51f6667a5d55c963ba5625179e902e09 GIT binary patch literal 2750 zcmV;v3PJUWP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91VW0y51ONa40RR91CjbBd0K`TRQ~&@9C`m*?RA>e5TM3X9)fw(lol z8kA!rgcT88lubZb0oOfX4`ycP?CzO9^8TJYr!HU0kg-v9phf3N@d z|NooDG1WD)?bB@-CfzUL*a}R-T2QrJ)udiDu7Nm)VgOCOw`2qsq)@lz~=T}?<2#B6$ z+WY_jA+Pw%8&C(JxV~yag#{0K2j)2J0TPCF*G*7ObX|riE+SLZNx>$JTGsb~GU}>L zwY>Ms(SLx&Fl6O4F4EadT0hxgfog8> z%_JWh;5C|lEXkB-E@_#&RF*$^>0~lBajtsuqc8xOqsrp|&&nUUtk-tZ&YQo(2ljq5 z$cIOSVp=r$=Tn}JAG)C~bZFD09uOSuU$vXuv&mxoDy5~u!$Pe0xwz5(<{67jS^2{~ zPe!T=0@6Q#P|-!Bl??zuXE6~Fv;e4xIqF2WuCkhEE;d)%zgWNI=zo%0AP|%lr$2S4 z75WL0O9G4D*kU|tL8}M^!eqnUnUyW^oHW_JC7cz`zhnpP@LHFm4K3VwV!c|1NU@p_Q1I8#lx%?2=u%T3+b4l>BvNn{U#=+802v3 zzYK#wm>szP?mzgz&ciU#6FZ`*&_K=%5soI3bkEl0OWJ&B0&q`V2&7#9DQf0POi829 zd~UpeZh$cJ!Tn7bVahE816>Q6npvsAmf2(Y2lEZIvfq!fW5w4k}#otOX7Y}pLC;Ha!W9q)vYnEI5 z84%*9UrZ!Uzr?89lq)-Kc)(_vbF=0OEY_bJJkG`5dm&M*u2Nd$*l#28cmJfxQ{;`A zB9KEj2qLomIPH~95PPAU3GI7$QWR5|Z{=2(W$rR7A2^?yc=5rY$b_b~YPFPOMsJ^W z-U@l+)M}%qOH8=xvPfvol_***o3gAM1c(E;fgTn^HagV(cm&Ge!2kfjkdKXto{mRc zmQNI}R-Bx2a@@;*;C3(jzDp?tJi`V*`s`{=+s`vsL?JwsXXeyA)MeNtsfIKlU zPwwSiX=RGM6h87q#IxdICqaAjHeEF@!fZ#Ag**QO5b`PcrAW`VDBStf>6P5KeA{7d zT_wBON>1ikpD{Py`;1>n%Rbu{-)DzATh{tz&mUw0|9ogtt6oVr1VR=7VBlWS!!nR&wvF3h*1J>Q zjAN&EYi?NCzVM5pPZ#*wA`=ut-9JI5P2UCP&v)lmub$SS*B%Ka&h10#6zwbi-@hl= zp|{HhWdw>LTuZ+zzxB!S)2YPiy=CWV#B>@4!FB6Kr}M`3dBK(_q~}54h#g*FX$rJ} z_7Mx^nL`QD%K|}|(jXu=Qj~O=&;ovy64;O40KxM>pxiB_>$Wae_~7PAA>%qjjw}lT zxYzN%zZ8G~`-sR^<_H)90SV%8wtp=T0Hp#vtAFZ7p}$Q@EAcV%|Hm|9n%|vKnC(5;=8>44x_^De)+QH+kSuU7ih^i_JXi26-_G;bA`Z=JtYMwQ#(AiZKxSUt^gM_On8KLc|v4 zGlCLx{veBP%;dd>bgz8WojCgnlQ>ft9nc>5F z+nThi3USb@T_HVh0cmR>+{?b_Oph*MkjNBywygP5OKS)OJvkhRANVc(^e~;*{ee@R-=46M36_R<3fthCnFC4C*1I5AEv;`S01`2RrG#{bwHjZL9=X+@+JL5VEPhHBWeP(t^Vo!}zYxPe86|I+v76NZ{7$;UVcvq(zSW zG6Jdhc<*yDcId65D;X@n=pQ@Az;roLjO4xj7r9s^IesP;d}X69^Q9$sO+bLbVDE^% zw$Pzm4OHXcUe(>i2 z2Dz{mOJ1TQJ9s>4zy99L+|px8l7KN6UoQY%WFsPu6WA1JYQ_?l9C??EBUhX4-_KV2 zECEIXLE)9kCF6jo=i-LnL8~gW%1ZdgU~?xA|2$0E{5e~inmC&RMPW!WT32$kFDY?R zNkVR;RvRrkq%;V{icWF(EneK5sM) zQEZG7v^YNe)Z)WPm)DhORIjR~25_vONPoCc%TemQOKAY~k4yx<8{I`;(^8%5b=A-S z=pElpz^6M1iCxuTS?6I)1EBYe{xJ+b-9dyNV=U^er=tPTH|QOBpl9?#pig$-(;WiC zch*f4Xrz`Ge6xn{%zi2bBTYH(nQ`l1Z`K5Wl3#EB4;NBAS&|mSy8r+H07*qoM6N<$ Eg0-6sf&c&j literal 0 HcmV?d00001 diff --git a/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_wadk_task_running.xml b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_wadk_task_running.xml index 9d67a281ea..158aa44733 100644 --- a/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_wadk_task_running.xml +++ b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_wadk_task_running.xml @@ -23,16 +23,25 @@ android:layout_width="14dp" android:layout_height="50dp" android:layout_marginStart="80dp" - android:layout_marginTop="92dp" + android:layout_marginTop="95dp" android:background="#2966EC" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + + + + + #427d8e #3FC281 + #80203076 + #FFFFFF #99FFFFFF #FF52BBFF diff --git a/OCH/shuttle/driver_weaknet/src/main/res/values/strings.xml b/OCH/shuttle/driver_weaknet/src/main/res/values/strings.xml index 1f4f9157b9..21d1d201e2 100644 --- a/OCH/shuttle/driver_weaknet/src/main/res/values/strings.xml +++ b/OCH/shuttle/driver_weaknet/src/main/res/values/strings.xml @@ -39,6 +39,8 @@ 确认 取消 + 请在网络良好的区域完成任务信息同步后退出 + 暂无任务 本站核销成功:%1$d人 本站核销成功:0人