[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"
/>

View File

@@ -0,0 +1,13 @@
package com.mogo.eagle.core.data.deva.report
/**
* 报障、接管、一键上报配置返回实体类
* @param id id
* @param name 名称
* @param desc 描述
* @param level 级别 枚举: 1,2,3 枚举备注: 1 :一级 2 :二级 3 :三级
* @param terminalType 适用终端 枚举: 1,2,3 枚举备注: 1 :小程序 2 :APP 3 :全部
* @param parentId 父级
*/
data class CategoryInfo(val id: Int,val name: String,val desc: String,
val level: Int, val terminalType: Int,val parentId: Int)

View File

@@ -0,0 +1,8 @@
package com.mogo.eagle.core.data.deva.report
/**
* 鹰眼上报故障接口实体类
* @param padProblemList 问题列表
* @param plateNo 车牌号
*/
data class PadAddProblemReq(var padProblemList: List<PadProblemInfo>,var plateNo: String)

View File

@@ -0,0 +1,18 @@
package com.mogo.eagle.core.data.deva.report
/**
* 上报故障问题实体类
* @param address 故障地点
* @param faultCodeList 故障码列表
* @param faultStartTime 故障开始时间 yyyy-MM-dd HH:mm:ss
* @param level1Id 一级分类ID
* @param level2Id 二级分类ID
* @param level3Id 三级分类ID
* @param lineName 行驶路线
* @param reportNote 上报描述
* @param reportType 上报方式0小程序 1司机屏 2云端上报
* @param reporterMark 上报人标识(手机号)
*/
data class PadProblemInfo(var address: String,var faultCodeList: List<String>,var faultStartTime: String,
var level1Id: Int,var level2Id: Int,var level3Id: Int,var lineName: String,var reportNote: String,
var reportType: Int,var reporterMark: String)

View File

@@ -8,6 +8,7 @@ import com.alibaba.android.arouter.facade.template.IProvider
import com.mogo.eagle.core.data.EnvConfig
import com.mogo.eagle.core.data.deva.bindingcar.ModifyBindingcarInfo
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
@@ -256,6 +257,16 @@ interface IDevaToolsProvider : IProvider {
*/
fun workOrderReport(workOrderReportInfo: WorkOrderReportInfo)
/**
* 上报故障到运营平台
*/
fun problemPadAdd(padAddProblemReq: PadAddProblemReq)
/**
* 获取报障、接管、一键上报配置
*/
fun getCategories(tenantId: Long, level: Int, parentId: Int)
/**
* 查询app是否有更新
*/

View File

@@ -1,5 +1,6 @@
package com.mogo.eagle.core.function.api.devatools
import com.mogo.eagle.core.data.deva.report.CategoryInfo
import com.mogo.eagle.core.data.deva.scene.SceneModule
/**
@@ -55,6 +56,14 @@ interface IMoGoDevaToolsListener {
fun workOrderReportError(){}
fun problemPadAddSuccess(){}
fun problemPadAddError(){}
fun getCategoriesSuccess(list: List<CategoryInfo>){}
fun getCategoriesError(msg: String){}
fun mofangStatus(status:Boolean){
}

View File

@@ -1,5 +1,6 @@
package com.mogo.eagle.core.function.call.devatools
import com.mogo.eagle.core.data.deva.report.CategoryInfo
import com.mogo.eagle.core.data.deva.scene.SceneModule
import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener
import com.mogo.eagle.core.function.call.base.CallerBase
@@ -78,6 +79,46 @@ object CallerDevaToolsListenerManager : CallerBase<IMoGoDevaToolsListener>() {
}
}
/**
* 上报故障到运营平台成功
*/
fun invokeProblemPadAddSuccess(){
M_LISTENERS.forEach{
val listener = it.value
listener.problemPadAddSuccess()
}
}
/**
* 上报故障到运营平台失败
*/
fun invokeProblemPadAddError(){
M_LISTENERS.forEach{
val listener = it.value
listener.problemPadAddError()
}
}
/**
* 获取报障、接管、一键上报配置成功
*/
fun invokeGetCategoriesSuccess(list: List<CategoryInfo>){
M_LISTENERS.forEach{
val listener = it.value
listener.getCategoriesSuccess(list)
}
}
/**
* 获取报障、接管、一键上报配置失败
*/
fun invokeGetCategoriesError(msg: String){
M_LISTENERS.forEach{
val listener = it.value
listener.getCategoriesError(msg)
}
}
fun invokeMoFangStatus(status:Boolean){
M_LISTENERS.forEach {
val listener = it.value

View File

@@ -9,6 +9,7 @@ import com.mogo.eagle.core.data.deva.bindingcar.ModifyBindingcarInfo
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.constants.MogoServicePaths
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
@@ -356,6 +357,20 @@ object CallerDevaToolsManager {
devaToolsProviderApi?.workOrderReport(workOrderReportInfo)
}
/**
* 上报故障到运营平台
*/
fun problemPadAdd(padAddProblemReq: PadAddProblemReq){
devaToolsProviderApi?.problemPadAdd(padAddProblemReq)
}
/**
* 获取报障、接管、一键上报配置
*/
fun getCategories(tenantId: Long, level: Int, parentId: Int){
devaToolsProviderApi?.getCategories(tenantId, level, parentId)
}
fun dockerVersion(dockerVersion: String?){
devaToolsProviderApi?.dockerVersion(dockerVersion)
}