[6.6.0]数据闭环接口

This commit is contained in:
xuxinchao
2024-08-21 17:36:20 +08:00
parent cbe8c27e4c
commit 051f1ecf62
15 changed files with 271 additions and 2 deletions

View File

@@ -18,6 +18,7 @@ import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.data.deva.bindingcar.ModifyBindingcarInfo
import com.mogo.eagle.core.data.deva.chain.ChainConstant
import com.mogo.eagle.core.data.deva.chain.ChainLogParam
import com.mogo.eagle.core.data.deva.report.PadAddProblemReq
import com.mogo.eagle.core.data.deva.report.WorkOrderReportInfo
import com.mogo.eagle.core.data.deva.scene.SceneModule
import com.mogo.eagle.core.data.deva.scene.SceneTAG
@@ -601,6 +602,17 @@ class DevaToolsProvider : IDevaToolsProvider, IAppStateListener {
BindingCarManager.workOrderReport(workOrderReportInfo)
}
/**
* 上报故障到运营平台
*/
override fun problemPadAdd(padAddProblemReq: PadAddProblemReq) {
WorkOrderManager.workOrderManager.problemPadAdd(padAddProblemReq)
}
override fun getCategories(tenantId: Long, level: Int, parentId: Int) {
WorkOrderManager.workOrderManager.getCategories(tenantId, level, parentId)
}
override fun queryAppUpgrade() {
BindingCarManager.queryAppUpgrade()
}

View File

@@ -1,18 +1,46 @@
package com.zhjt.mogo_core_function_devatools.workorder
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.eagle.core.data.Response
import com.mogo.eagle.core.data.deva.report.CategoryInfo
import com.mogo.eagle.core.data.deva.report.PadAddProblemReq
import com.mogo.eagle.core.data.deva.report.WorkOrderReportInfo
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.Header
import retrofit2.http.Headers
import retrofit2.http.POST
import retrofit2.http.Query
/**
* 工单上报接口
*/
interface WorkOrderApiService {
/**
* 工单上报到运维平台
*/
@Headers("Content-Type:application/json;charset=UTF-8")
@POST("/api/v1/monitor/yk/manual/callback/?token=eapir6gqq6v9p2m82tzrnj")
suspend fun workOrderReport(@Body workOrderReportInfo: WorkOrderReportInfo): Response<Any>
/**
* 上报故障到运营平台
*/
@Headers("Content-Type:application/json;charset=UTF-8")
@POST("/vehicle-data-service/problem/pad/add")
suspend fun problemPadAdd(@Body padAddProblemReq: PadAddProblemReq): Response<Any>
/**
* 获取报障、接管、一键上报配置
*/
@Headers("Content-type:application/json;charset=UTF-8")
@GET("/platform/biz/categories/terminal")
suspend fun getCategories(
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
@Header("tenantId") tenantId: Long,
@Query("level") level: Int,
@Query("parentId") parentId: Int
): Response<List<CategoryInfo>>
}

View File

@@ -1,6 +1,8 @@
package com.zhjt.mogo_core_function_devatools.workorder
import com.mogo.commons.debug.DebugConfig
import com.mogo.eagle.core.data.app.UrlConfig
import com.mogo.eagle.core.data.config.FunctionBuildConfig
/**
* 工单上报域名管理
@@ -21,6 +23,10 @@ class WorkOrderHostConst {
}
}
fun getOchUrl():String{
return FunctionBuildConfig.urlJson.ochUrl
}
}
}

View File

@@ -2,6 +2,7 @@ package com.zhjt.mogo_core_function_devatools.workorder
import android.content.Context
import android.view.WindowManager
import com.mogo.eagle.core.data.deva.report.PadAddProblemReq
import com.mogo.eagle.core.data.deva.report.WorkOrderReportInfo
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
import com.zhjt.mogo_core_function_devatools.ext.enqueuePop
@@ -54,7 +55,7 @@ class WorkOrderManager{
/**
* 工单上报
*/
fun workOrderReport(workOrderReportInfo: WorkOrderReportInfo,){
fun workOrderReport(workOrderReportInfo: WorkOrderReportInfo){
workOrderNetWorkModel.workOrderReport(workOrderReportInfo,
onSuccess = {
CallerDevaToolsListenerManager.invokeWorkOrderReportSuccess()
@@ -65,6 +66,34 @@ class WorkOrderManager{
)
}
/**
* 上报故障到运营平台
*/
fun problemPadAdd(padAddProblemReq: PadAddProblemReq){
workOrderNetWorkModel.problemPadAdd(padAddProblemReq,
onSuccess = {
CallerDevaToolsListenerManager.invokeProblemPadAddSuccess()
},
onError = {
CallerDevaToolsListenerManager.invokeProblemPadAddError()
}
)
}
/**
* 获取报障、接管、一键上报配置
*/
fun getCategories(tenantId: Long, level: Int, parentId: Int){
workOrderNetWorkModel.getCategories(tenantId,level,parentId,
onSuccess = {
CallerDevaToolsListenerManager.invokeGetCategoriesSuccess(it)
},
onError = {
CallerDevaToolsListenerManager.invokeGetCategoriesError(it)
}
)
}
fun destroy(){
mContext = null
}

View File

@@ -1,10 +1,14 @@
package com.zhjt.mogo_core_function_devatools.workorder
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.eagle.core.data.Response
import com.mogo.eagle.core.data.deva.report.CategoryInfo
import com.mogo.eagle.core.data.deva.report.PadAddProblemReq
import com.mogo.eagle.core.data.deva.report.WorkOrderReportInfo
import com.mogo.eagle.core.network.MoGoRetrofitFactory
import com.mogo.eagle.core.network.apiResponseCall
import com.mogo.eagle.core.network.request
import com.zhjt.mogo_core_function_devatools.workorder.WorkOrderHostConst.Companion.getOchUrl
import com.zhjt.mogo_core_function_devatools.workorder.WorkOrderHostConst.Companion.getWorkOrderBaseUrl
/**
@@ -34,4 +38,45 @@ class WorkOrderNetWorkModel {
}
}
/**
* 上报故障到运营平台
*/
fun problemPadAdd(padAddProblemReq: PadAddProblemReq,
onSuccess: ((String) -> Unit), onError: ((String) -> Unit)){
request<Response<Any>>{
loader{
apiResponseCall{
getNetWorkApi(getOchUrl()).problemPadAdd(padAddProblemReq)
}
}
onSuccess{
onSuccess.invoke("")
}
onError{
onError.invoke("")
}
}
}
/**
* 获取报障、接管、一键上报配置
*/
fun getCategories(tenantId: Long, level: Int, parentId: Int,
onSuccess: ((List<CategoryInfo>) -> Unit),
onError: ((String) -> Unit)){
request<Response<List<CategoryInfo>>>{
loader{
apiResponseCall{
getNetWorkApi(getOchUrl()).getCategories(MoGoAiCloudClientConfig.getInstance().serviceAppId,tenantId, level, parentId)
}
}
onSuccess {
onSuccess.invoke(it.data)
}
onError {
onError.invoke(it.message+"")
}
}
}
}

View File

@@ -0,0 +1,31 @@
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- This is the main color -->
<item>
<shape>
<!-- 边框颜色 -->
<solid android:color="#00FF00"/>
<corners
android:bottomLeftRadius="32dp"
android:bottomRightRadius="@dimen/dp_32"
android:topLeftRadius="@dimen/dp_0"
android:topRightRadius="@dimen/dp_0"
/>
</shape>
</item>
<!-- 给View的上 左 右设置8dp的边框 -->
<item android:bottom="8dp" android:left="8dp" android:right="8dp" >
<shape>
<!-- View填充颜色 -->
<solid android:color="#F2161927" />
<corners
android:bottomLeftRadius="32dp"
android:bottomRightRadius="@dimen/dp_32"
android:topLeftRadius="@dimen/dp_0"
android:topRightRadius="@dimen/dp_0"
/>
</shape>
</item>
</layer-list>

View File

@@ -6,6 +6,8 @@
android:textSize="@dimen/sp_30"
android:textColor="@color/white"
android:gravity="center_vertical"
android:layout_marginStart="@dimen/dp_21"
android:layout_marginTop="@dimen/dp_30"
>
</TextView>

View File

@@ -270,6 +270,7 @@
app:layout_constraintTop_toBottomOf="@id/viewTakeOverType"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/dp_39"
android:background="@drawable/bg_reason_list"
android:visibility="gone"
/>
@@ -297,7 +298,7 @@
tvTakeOverType,ivTakeOverTypeSelect,viewTakeOverReasonLabel,tvTakeOverReasonTitle,
viewTakeOverReason,tvTakeOverReason,ivTakeOverReasonSelect,viewTakeOverNoteLabel,
tvTakeOverNoteTitle,tvTakeOverNoteSupplement,etNoteInput,ivNoteAudio,
tvTakeOverReport,tvTakeOverCancel,rvTakeOverList"
tvTakeOverReport,tvTakeOverCancel"
/>