From 051f1ecf6295c499b462a6181f3af02765f26d1e Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Wed, 21 Aug 2024 17:36:20 +0800 Subject: [PATCH] =?UTF-8?q?[6.6.0]=E6=95=B0=E6=8D=AE=E9=97=AD=E7=8E=AF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevaToolsProvider.kt | 12 +++++ .../workorder/WorkOrderApiService.kt | 28 ++++++++++++ .../workorder/WorkOrderHostConst.kt | 6 +++ .../workorder/WorkOrderManager.kt | 31 ++++++++++++- .../workorder/WorkOrderNetWorkModel.kt | 45 +++++++++++++++++++ .../src/main/res/drawable/bg_reason_list.xml | 31 +++++++++++++ .../src/main/res/layout/item_order_reason.xml | 2 + .../main/res/layout/view_take_over_reason.xml | 3 +- .../core/data/deva/report/CategoryInfo.kt | 13 ++++++ .../core/data/deva/report/PadAddProblemReq.kt | 8 ++++ .../core/data/deva/report/PadProblemInfo.kt | 18 ++++++++ .../api/devatools/IDevaToolsProvider.kt | 11 +++++ .../api/devatools/IMoGoDevaToolsListener.kt | 9 ++++ .../CallerDevaToolsListenerManager.kt | 41 +++++++++++++++++ .../call/devatools/CallerDevaToolsManager.kt | 15 +++++++ 15 files changed, 271 insertions(+), 2 deletions(-) create mode 100644 core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_reason_list.xml create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/report/CategoryInfo.kt create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/report/PadAddProblemReq.kt create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/report/PadProblemInfo.kt diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index d1cc73df59..938bc209b2 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -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() } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderApiService.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderApiService.kt index b986614026..f784fe4834 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderApiService.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderApiService.kt @@ -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 + /** + * 上报故障到运营平台 + */ + @Headers("Content-Type:application/json;charset=UTF-8") + @POST("/vehicle-data-service/problem/pad/add") + suspend fun problemPadAdd(@Body padAddProblemReq: PadAddProblemReq): Response + + /** + * 获取报障、接管、一键上报配置 + */ + @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> + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderHostConst.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderHostConst.kt index b19c7e72de..1bde7d36d0 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderHostConst.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderHostConst.kt @@ -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 + } + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderManager.kt index d6d6b012ca..3fb31414b1 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderManager.kt @@ -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 } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderNetWorkModel.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderNetWorkModel.kt index 1c7625cc03..2d99a2f7af 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderNetWorkModel.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderNetWorkModel.kt @@ -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>{ + loader{ + apiResponseCall{ + getNetWorkApi(getOchUrl()).problemPadAdd(padAddProblemReq) + } + } + onSuccess{ + onSuccess.invoke("") + } + onError{ + onError.invoke("") + } + } + } + + /** + * 获取报障、接管、一键上报配置 + */ + fun getCategories(tenantId: Long, level: Int, parentId: Int, + onSuccess: ((List) -> Unit), + onError: ((String) -> Unit)){ + request>>{ + loader{ + apiResponseCall{ + getNetWorkApi(getOchUrl()).getCategories(MoGoAiCloudClientConfig.getInstance().serviceAppId,tenantId, level, parentId) + } + } + onSuccess { + onSuccess.invoke(it.data) + } + onError { + onError.invoke(it.message+"") + } + } + } + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_reason_list.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_reason_list.xml new file mode 100644 index 0000000000..28a4f7a863 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_reason_list.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_order_reason.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_order_reason.xml index 088d9b3238..241ad89a80 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_order_reason.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_order_reason.xml @@ -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" > \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml index 8a1a7bb2c9..f8aa3e6611 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml @@ -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" /> diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/report/CategoryInfo.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/report/CategoryInfo.kt new file mode 100644 index 0000000000..0813b99018 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/report/CategoryInfo.kt @@ -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) \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/report/PadAddProblemReq.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/report/PadAddProblemReq.kt new file mode 100644 index 0000000000..bdd3902a52 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/report/PadAddProblemReq.kt @@ -0,0 +1,8 @@ +package com.mogo.eagle.core.data.deva.report + +/** + * 鹰眼上报故障接口实体类 + * @param padProblemList 问题列表 + * @param plateNo 车牌号 + */ +data class PadAddProblemReq(var padProblemList: List,var plateNo: String) \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/report/PadProblemInfo.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/report/PadProblemInfo.kt new file mode 100644 index 0000000000..08585d8c09 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/report/PadProblemInfo.kt @@ -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,var faultStartTime: String, + var level1Id: Int,var level2Id: Int,var level3Id: Int,var lineName: String,var reportNote: String, + var reportType: Int,var reporterMark: String) \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt index 12a3cc421f..b4119f3c75 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt @@ -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是否有更新 */ diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IMoGoDevaToolsListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IMoGoDevaToolsListener.kt index e95e402167..36e1e015c3 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IMoGoDevaToolsListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IMoGoDevaToolsListener.kt @@ -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){} + + fun getCategoriesError(msg: String){} + fun mofangStatus(status:Boolean){ } diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsListenerManager.kt index 9d92707d20..d500af0ab2 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsListenerManager.kt @@ -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() { } } + /** + * 上报故障到运营平台成功 + */ + 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){ + 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 diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt index 52c2dd58a8..9d2c6918d3 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt @@ -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) }