[6.2.0] add func of fm info

This commit is contained in:
zhongchao
2023-11-07 16:17:01 +08:00
parent 37d630fc55
commit e03d808f5a
3 changed files with 68 additions and 13 deletions

View File

@@ -9,4 +9,13 @@ import java.io.Serializable
data class FMInfoMsg(
var fmInfoList: List<FmInfo.FaultInfo>?,
var policyCode: String?
) : Serializable
) : Serializable
/**
* 数据中心使用,用于过滤变更数据
*/
data class FMFilterInfoMsg(
var fmInfoList: List<FmInfo.FaultInfo>?,
var policyCode: String?,
var cacheFilterList: MutableList<String>?
)

View File

@@ -1,8 +1,12 @@
package com.mogo.eagle.core.function.call.autopilot
import androidx.collection.ArraySet
import com.mogo.eagle.core.data.msgbox.FMFilterInfoMsg
import com.mogo.eagle.core.data.msgbox.FMInfoMsg
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
import com.mogo.eagle.core.data.msgbox.MsgBoxType
import com.mogo.eagle.core.function.api.autopilot.IMoGoFaultManagementStateListener
import com.mogo.eagle.core.function.call.base.CallerBase
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
import fault_management.FmInfo
/**
@@ -10,18 +14,60 @@ import fault_management.FmInfo
*/
object CallerFaultManagementStateListenerManager : CallerBase<IMoGoFaultManagementStateListener>() {
private val cacheFaultList = ArrayList<String>()
private val cachePolicyMap = hashMapOf<String,Any>()
private val cachePolicyMap = hashMapOf<String, FMFilterInfoMsg>()
fun invokeFaultManagementState(fmInfo: FmInfo.FaultResultMsg) {
val list = fmInfo.infosList
list.forEach {
cacheFaultList.add(it.faultId)
val policyCode = fmInfo.downgradePolicyCode
if (policyCode == null || policyCode.isEmpty()) {
return
}
// M_LISTENERS.forEach {
// val listener = it.value
// listener.onFaultManagementState(fmInfo)
// }
val list = fmInfo.infosList ?: return
//报告类数据不下发
if ("FM_DP_NO_ACTION" == policyCode) {
return
}
val fmFilterInfoMsg = cachePolicyMap[policyCode]
val cacheFaultList = ArrayList<String>()
if (fmFilterInfoMsg?.cacheFilterList != null) {
if (fmFilterInfoMsg.cacheFilterList?.size == list.size) {
//判断两个集合重复 true:return
var sameResult = false
list.forEach {
sameResult = fmFilterInfoMsg.cacheFilterList?.contains(it.faultId) == true
}
if (sameResult) {
return
}
}
// 更新数据内容
list.forEach {
cacheFaultList.add(it.faultId)
}
fmFilterInfoMsg.cacheFilterList?.clear()
fmFilterInfoMsg.cacheFilterList = cacheFaultList
fmFilterInfoMsg.fmInfoList = list
cachePolicyMap[policyCode] = fmFilterInfoMsg
CallerMsgBoxManager.saveMsgBox(
MsgBoxBean(
MsgBoxType.FMINFO,
FMInfoMsg(list, policyCode)
)
)
} else {
// 首次添加 listener
cachePolicyMap.clear()
list.forEach {
cacheFaultList.add(it.faultId)
}
cachePolicyMap[policyCode] = FMFilterInfoMsg(list, policyCode, cacheFaultList)
CallerMsgBoxManager.saveMsgBox(
MsgBoxBean(
MsgBoxType.FMINFO,
FMInfoMsg(list, policyCode)
)
)
}
}
}

View File

@@ -61,7 +61,7 @@ bytex.ASM_API=ASM7
################ 外部依赖引用 ################
# loglib
LOGLIB_VERSION=1.9.18
LOGLIB_VERSION=1.10.2
######## MogoAiCloudSDK Version ########
# 网络请求LOGLIB_VERSION
MOGO_NETWORK_VERSION=1.4.7.19