[6.2.0] add func of fm info
This commit is contained in:
@@ -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>?
|
||||
)
|
||||
@@ -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)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user