diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/LoginProvider.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/LoginProvider.kt index f689914e4c..591e16019c 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/LoginProvider.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/LoginProvider.kt @@ -119,7 +119,7 @@ class LoginProvider : LoginService { } if (loginFragment is ILoginViewCallback) { UiThreadHandler.post({ - if (loginFragment!!.isAdded) { + if (loginFragment?.isAdded==true) { (loginFragment as ILoginViewCallback).showErrorInfo(businessInfo) } },UiThreadHandler.MODE.QUEUE) @@ -142,7 +142,7 @@ class LoginProvider : LoginService { changeStatus(checkAllEnv) UiThreadHandler.post({ changeStatus(checkAllEnv) - if (loginFragment!!.isAdded) { + if (loginFragment?.isAdded==true) { (loginFragment as ILoginViewCallback).checkAllEnv(checkAllEnv) } },UiThreadHandler.MODE.QUEUE) @@ -153,7 +153,7 @@ class LoginProvider : LoginService { } override fun changeStatus(currentStatus: String) { - if (loginFragment!!.isAdded) { + if (loginFragment?.isAdded==true) { (loginFragment as ILoginViewCallback).updateStatus(currentStatus) } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt index 7a2699fc7c..507d11c2f8 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt @@ -304,6 +304,15 @@ object LineModel { } + fun isLastStation(end: BusStationBean):Boolean{ + return if (stationList.isNullOrEmpty()) { + false + }else{ + val last = stationList?.last() + return last==end + } + } + fun getTaskTime():String { return DateTimeUtil.formatLongToString( currentTask?.taskStartTime?:System.currentTimeMillis(), @@ -421,9 +430,9 @@ object LineModel { ochInfo.siteMarkerList = mutableListOf() CallerDataCenterBizListener.invokeOchInfo(ochInfo) OchChainLogManager.writeChainLogMap("地图","站点信息:${ochInfo}") - CallerEagleBaseFunctionCall4OchManager.updateOrderStatus(true) - }else{ CallerEagleBaseFunctionCall4OchManager.updateOrderStatus(false) + }else{ + CallerEagleBaseFunctionCall4OchManager.updateOrderStatus(true) val siteList = mutableListOf() var temp: SiteMarkerBean?=null stationList?.let { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt index 44c56f12bf..c446c75c33 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt @@ -111,7 +111,7 @@ object ThirdDeviceData { lineInfo.lineName, start.name, end.name, - LineModel.isLastStation() == true + LineModel.isLastStation(end) ) } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchConst.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchConst.kt index 821f5abd26..cc04bb7f9e 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchConst.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchConst.kt @@ -49,5 +49,10 @@ class MogoLogCatchConst { * 关闭高精地图每个瓦片数据文件下载、删除的日志 */ const val CLOSE_HD_MAP_TILE_FILE_LOG = 9 + + /** + * 上传Logcat日志 + */ + const val UPLOAD_LOG_CAT_FILE = 10 } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt index 7afb4d0eff..e538c9adb3 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/logcatch/MogoLogCatchManager.kt @@ -22,7 +22,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.LogLevel import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA import com.mogo.commons.storage.SharedPrefsMgr -import com.mogo.eagle.core.data.deva.chain.ChainConstant +import com.mogo.core.log.record.LogcatManager import com.mogo.eagle.core.data.deva.chain.ChainLogParam import com.mogo.eagle.core.utilcode.mogo.toast.TipToast import com.mogo.eagle.core.utilcode.util.ThreadUtils @@ -31,6 +31,7 @@ import com.zhidao.loglib.bean.RemoteLogPushContent import com.zhidao.loglib.call.LogInfoManagerFactory import com.zhidao.loglib.core.ILogListener import com.zhidao.loglib.core.LogInfoManager +import com.zhjt.mogo_core_function_devatools.logcat.config.LogRecordConfig import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.CACHE_MAP_UPLOAD import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.CACHE_TRACE_UPLOAD import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.CLOSE_HD_MAP_TILE_FILE_LOG @@ -41,10 +42,16 @@ import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companio import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.OPEN_HD_MAP_TILE_FILE_LOG import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.START_CATCH_LOG import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.STOP_CATCH_LOG -import com.zhjt.mogo_core_function_devatools.trace.TraceManager +import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.UPLOAD_LOG_CAT_FILE import com.zhjt.mogo_core_function_devatools.trace.TraceManager.Companion.traceManager import com.zhjt.service_biz.BizConfig +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.launch import java.io.File +import java.util.concurrent.TimeUnit.MINUTES +import java.util.concurrent.atomic.AtomicLong @SuppressLint("StaticFieldLeak") object MogoLogCatchManager : IMogoOnMessageListener, Handler.Callback, @@ -62,6 +69,12 @@ object MogoLogCatchManager : IMogoOnMessageListener, Handl private var logInfoManager: LogInfoManager? = null private var mapCacheUpload = false + private val scope by lazy { CoroutineScope(Dispatchers.IO + SupervisorJob()) } + + private val uploadThreshold by lazy { MINUTES.toMillis(1) } //全量日志的上传的安全时间,在此时间内,上传任务只会触发一次 + + private val lastUploadTime by lazy { AtomicLong(0) } + fun init(context: Context) { mContext = context MogoAiCloudSocketManager.getInstance(AbsMogoApplication.getApp().applicationContext) @@ -159,6 +172,9 @@ object MogoLogCatchManager : IMogoOnMessageListener, Handl } } } + UPLOAD_LOG_CAT_FILE -> { + uploadLogcat(obj.cmd.toIntOrNull()) + } else -> { } } @@ -283,6 +299,35 @@ object MogoLogCatchManager : IMogoOnMessageListener, Handl CallerAutoPilotControlManager.setEnableLog(false) } + private fun uploadLogcat(timeType: Int?) { + if (timeType == null) return + val endTime = System.currentTimeMillis() + val startTime = when(timeType) { + LogRecordConfig.ALL_LOG_15_MINUTES -> endTime - MINUTES.toMillis(15) + LogRecordConfig.ALL_LOG_30_MINUTES -> endTime - MINUTES.toMillis(30) + LogRecordConfig.ALL_LOG_45_MINUTES -> endTime - MINUTES.toMillis(45) + LogRecordConfig.ALL_LOG_60_MINUTES -> endTime - MINUTES.toMillis(60) + LogRecordConfig.ALL_LOG_120_MINUTES -> endTime - MINUTES.toMillis(120) + LogRecordConfig.ALL_LOG_SAME_DAY -> endTime - (endTime % 86400000) + LogRecordConfig.ALL_LOG -> 0 + else -> endTime + } + if (startTime < endTime) { + val now = System.currentTimeMillis() + val last = lastUploadTime.get() + if (last <= 0) { + lastUploadTime.set(System.currentTimeMillis()) + } + if (last > 0 && (now - last) <= uploadThreshold) { + return + } + lastUploadTime.set(System.currentTimeMillis()) + scope.launch { + LogcatManager.upload(startTime, endTime) + } + } + } + override fun onError(errorCount: Int) { ThreadUtils.runOnUiThread { TipToast.shortTip("日志抓取出现错误,出错数量:$errorCount")