From aab4eb9413ae8e3bf296ad6663360095c453a74d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E5=8B=A4=E6=B0=91?= Date: Tue, 21 Apr 2026 19:03:21 +0800 Subject: [PATCH] =?UTF-8?q?refactor(repository):=20=E9=87=8D=E6=9E=84OCR?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E4=BF=9D=E5=AD=98=E6=8E=A5=E5=8F=A3=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 multipart 表单上传方式,改用JSON请求体 - 新增 SaveOcrResultRequest 数据类封装请求参数 - 简化HTTP客户端调用逻辑,移除手动请求体构建 - 更新SprayingResultVM中的API调用方式以匹配新接口 --- .../glass/model/data/SaveOcrResultRequest.kt | 9 +++++++++ .../com/nova/brain/glass/repository/Service.kt | 11 ++--------- .../brain/glass/viewmodel/SprayingResultVM.kt | 16 ++++++++-------- 3 files changed, 19 insertions(+), 17 deletions(-) create mode 100644 app/src/main/java/com/nova/brain/glass/model/data/SaveOcrResultRequest.kt diff --git a/app/src/main/java/com/nova/brain/glass/model/data/SaveOcrResultRequest.kt b/app/src/main/java/com/nova/brain/glass/model/data/SaveOcrResultRequest.kt new file mode 100644 index 0000000..7232528 --- /dev/null +++ b/app/src/main/java/com/nova/brain/glass/model/data/SaveOcrResultRequest.kt @@ -0,0 +1,9 @@ +package com.nova.brain.glass.model.data + +data class SaveOcrResultRequest( + val taskId: String, + val productionInfoId: String, + val ocrResult: String, + val result: String, + val filePath: String +) diff --git a/app/src/main/java/com/nova/brain/glass/repository/Service.kt b/app/src/main/java/com/nova/brain/glass/repository/Service.kt index 202e772..5564f37 100644 --- a/app/src/main/java/com/nova/brain/glass/repository/Service.kt +++ b/app/src/main/java/com/nova/brain/glass/repository/Service.kt @@ -12,6 +12,7 @@ import com.nova.brain.glass.model.data.BatchUploadResponse import com.nova.brain.glass.model.data.OcrResultData import com.nova.brain.glass.model.data.RecognizeByPathRequest import com.nova.brain.glass.model.data.RecognizeByPathResponse +import com.nova.brain.glass.model.data.SaveOcrResultRequest import com.nova.brain.glass.model.data.SubmitTaskRequest import com.nova.brain.glass.model.data.SubmitTaskResponse import com.nova.brain.glass.model.data.PushToNextData @@ -30,7 +31,6 @@ import okhttp3.RequestBody import okhttp3.ResponseBody import retrofit2.http.Body import retrofit2.http.GET -import retrofit2.http.Headers import retrofit2.http.Multipart import retrofit2.http.Part import retrofit2.http.POST @@ -79,15 +79,8 @@ interface Service { @POST("/skyscopicsecond-api/api/aiGlasses/recognizeByPath") fun recognizeByPath(@Body body: RecognizeByPathRequest): Observable - @Multipart @POST("/skyscopicsecond-api/api/aiGlasses/saveOcrResult") - fun saveOcrResult( - @Part("taskId") taskId: RequestBody, - @Part("productionInfoId") productionInfoId: RequestBody, - @Part("ocrResult") ocrResult: RequestBody, - @Part("result") result: RequestBody, - @Part("filePath") filePath: RequestBody - ): Observable + fun saveOcrResult(@Body body: SaveOcrResultRequest): Observable @POST("/skyscopicsecond-api/api/aiGlasses/submitTask") fun submitTask(@Body body: SubmitTaskRequest): Observable diff --git a/app/src/main/java/com/nova/brain/glass/viewmodel/SprayingResultVM.kt b/app/src/main/java/com/nova/brain/glass/viewmodel/SprayingResultVM.kt index 9844189..cf60102 100644 --- a/app/src/main/java/com/nova/brain/glass/viewmodel/SprayingResultVM.kt +++ b/app/src/main/java/com/nova/brain/glass/viewmodel/SprayingResultVM.kt @@ -3,6 +3,7 @@ package com.nova.brain.glass.viewmodel import androidx.lifecycle.MutableLiveData import com.nova.brain.glass.MyApplication import com.nova.brain.glass.model.ItemItem +import com.nova.brain.glass.model.data.SaveOcrResultRequest import com.nova.brain.glass.model.data.SubmitTaskRequest import com.nova.brain.glass.repository.Service import com.xuqm.base.di.manager.HttpManager @@ -10,8 +11,6 @@ import com.xuqm.base.viewmodel.BaseListViewModel import com.xuqm.base.viewmodel.callback.Response import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers -import okhttp3.MediaType.Companion.toMediaTypeOrNull -import okhttp3.RequestBody.Companion.toRequestBody enum class SubmitTaskState { IDLE, @@ -75,15 +74,16 @@ class SprayingResultVM : BaseListViewModel() { ) { if (saveOcrState.value == SaveOcrState.LOADING) return saveOcrState.value = SaveOcrState.LOADING - val plain = "text/plain".toMediaTypeOrNull() add( HttpManager.getApi(MyApplication.appComponent2, Service::class.java) .saveOcrResult( - taskId = taskId.toRequestBody(plain), - productionInfoId = productionInfoId.toRequestBody(plain), - ocrResult = ocrResultJson.toRequestBody(plain), - result = resultJson.toRequestBody(plain), - filePath = filePath.toRequestBody(plain) + SaveOcrResultRequest( + taskId = taskId, + productionInfoId = productionInfoId, + ocrResult = ocrResultJson, + result = resultJson, + filePath = filePath + ) ) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread())