[6.2.0]AI数据采集和主动录包增加缓存

This commit is contained in:
xuxinchao
2023-11-16 17:13:17 +08:00
parent 7256c2804b
commit 71aa655267
6 changed files with 182 additions and 3 deletions

View File

@@ -31,8 +31,11 @@ import com.zhjt.mogo_core_function_devatools.R
import com.zhjt.mogo_core_function_devatools.badcase.biz.adapter.AiDataListAdapter
import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig
import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.BadCaseNetManager
import com.zhjt.mogo_core_function_devatools.badcase.repository.store.BadCaseReasonStore
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import org.json.JSONArray
import org.json.JSONObject
import record_cache.RecordPanelOuterClass
import java.lang.StringBuilder
import java.util.*
@@ -266,4 +269,28 @@ class AIDataCollectWindow constructor(activity: Activity) : View.OnTouchListener
}
}
override fun onAiDataError() {
//数据请求错误,使用缓存数据
if(BadCaseReasonStore.getAiDataRecord().isNotEmpty()){
val list = ArrayList<AiDataEntity>()
val result = JSONArray(BadCaseReasonStore.getAiDataRecord())
if(result.length()>0){
for(i in 0 until result.length()){
val jsonObject = result[i] as JSONObject
val id = jsonObject.optInt("id")
val name = jsonObject.optString("name")
val content = jsonObject.optString("content")
val entity = AiDataEntity(id, name, content,false)
list.add(entity)
}
}
if(list.isNotEmpty()){
//刷新列表
aiDataListAdapter?.setData(list)
}
}else{
ToastUtils.showShort("AI数据采集数据请求错误且无缓存数据可用")
}
}
}

View File

@@ -56,8 +56,10 @@ import com.zhjt.mogo_core_function_devatools.badcase.biz.adapter.BadReasonListAd
import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig
import com.zhjt.mogo_core_function_devatools.badcase.record.RecordManager
import com.zhjt.mogo_core_function_devatools.badcase.repository.net.api.BadCaseNetManager
import com.zhjt.mogo_core_function_devatools.badcase.repository.store.BadCaseReasonStore
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import org.json.JSONArray
import org.json.JSONException
import org.json.JSONObject
import record_cache.RecordPanelOuterClass
@@ -565,4 +567,41 @@ class InitiativeBadCaseWindow constructor(activity: Activity) : View.OnTouchList
}
}
override fun onInitiativeError() {
if(BadCaseReasonStore.getInitiativeDataRecord().isNotEmpty()){
val list = ArrayList<RecordOptionEntity>()
val result = JSONArray(BadCaseReasonStore.getInitiativeDataRecord())
if(result.length() > 0){
for(i in 0 until result.length()){
val entity = RecordOptionEntity()
val jsonObject = result[i] as JSONObject
val optionName = jsonObject.optString("optionName")
entity.optionName = optionName
val optionCode = jsonObject.optString("optionCode")
entity.optionCode = optionCode
val children = jsonObject.optJSONArray("children")
if (children != null) {
if(children.length() > 0){
for(index in 0 until children.length()){
val childJson = children[index] as JSONObject
val child = RecordOptionEntity()
val childOptionNme = childJson.optString("optionName")
val childOptionCode = childJson.optString("optionCode")
child.optionName = childOptionNme
child.optionCode = childOptionCode
entity.children.add(child)
}
}
}
list.add(entity)
}
}
if(list.isNotEmpty()){
badReasonListAdapter?.setData(list)
}
}else{
ToastUtils.showShort("主动录包数据采集错误且无缓存数据可用")
}
}
}

View File

@@ -5,6 +5,7 @@ import com.mogo.eagle.core.data.deva.badcase.AiDataEntity
import com.mogo.eagle.core.data.deva.badcase.RecordOptionEntity
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsNetManager
import com.zhjt.mogo_core_function_devatools.badcase.repository.net.BadCaseNetModel
import com.zhjt.mogo_core_function_devatools.badcase.repository.store.BadCaseReasonStore
import org.json.JSONArray
import org.json.JSONObject
@@ -39,10 +40,12 @@ class BadCaseNetManager {
}
//将结果回调到调用页面
CallerDevaToolsNetManager.invokeAiDataResponse(list)
//缓存数据
BadCaseReasonStore.setAiDataRecord(it)
},
onError =
{
CallerDevaToolsNetManager.invokeAiDataError()
})
}
@@ -50,7 +53,6 @@ class BadCaseNetManager {
badCaseNetModel.getRecordOption(optionType,mac,
onSuccess =
{
Log.i("xuxinchao","onSuccess="+it)
val list = ArrayList<RecordOptionEntity>()
val result = JSONArray(it)
if(result.length() > 0){
@@ -82,14 +84,24 @@ class BadCaseNetManager {
if(optionType == 1){
//主动录包
CallerDevaToolsNetManager.invokeInitiativeResponse(list)
//缓存数据
BadCaseReasonStore.setInitiativeDataRecord(it)
} else if(optionType == 2){
//被动录包
CallerDevaToolsNetManager.invokePassiveResponse(list)
//缓存数据
BadCaseReasonStore.setPassiveDataRecord(it)
}
},
onError =
{
if(optionType == 1){
//主动录包
CallerDevaToolsNetManager.invokeInitiativeError()
}else if(optionType == 2){
//被动录包
CallerDevaToolsNetManager.invokePassiveError()
}
}
)
}

View File

@@ -0,0 +1,56 @@
package com.zhjt.mogo_core_function_devatools.badcase.repository.store
import com.mogo.eagle.core.utilcode.util.SPUtils
object BadCaseReasonStore {
//AI数据采集
private const val aiData = "AI_DATA"
//主动录包
private const val initiativeData = "INITIATIVE_DATA"
//被动录包
private const val passiveData = "PASSIVE_DATA"
/**
* 获取AI数据采集缓存数据
*/
fun getAiDataRecord(): String{
return SPUtils.getInstance().getString(aiData,"")
}
/**
* 设置AI数据采集缓存数据
*/
fun setAiDataRecord(data: String){
SPUtils.getInstance().put(aiData,data)
}
/**
* 获取主动录包缓存数据
*/
fun getInitiativeDataRecord(): String{
return SPUtils.getInstance().getString(initiativeData,"")
}
/**
* 设置主动录包缓存数据
*/
fun setInitiativeDataRecord(data: String){
SPUtils.getInstance().put(initiativeData,data)
}
/**
* 获取被动录包缓存数据
*/
fun getPassiveDataRecord(): String{
return SPUtils.getInstance().getString(passiveData,"")
}
/**
* 设置被动录包缓存数据
*/
fun setPassiveDataRecord(data: String){
SPUtils.getInstance().put(passiveData,data)
}
}