refactor(repository): 重构OCR结果保存接口实现
- 移除 multipart 表单上传方式,改用JSON请求体 - 新增 SaveOcrResultRequest 数据类封装请求参数 - 简化HTTP客户端调用逻辑,移除手动请求体构建 - 更新SprayingResultVM中的API调用方式以匹配新接口
这个提交包含在:
父节点
3eda1f1305
当前提交
aab4eb9413
@ -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
|
||||
)
|
||||
@ -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<RecognizeByPathResponse>
|
||||
|
||||
@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<SubmitTaskResponse>
|
||||
fun saveOcrResult(@Body body: SaveOcrResultRequest): Observable<SubmitTaskResponse>
|
||||
|
||||
@POST("/skyscopicsecond-api/api/aiGlasses/submitTask")
|
||||
fun submitTask(@Body body: SubmitTaskRequest): Observable<SubmitTaskResponse>
|
||||
|
||||
@ -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<ItemItem>() {
|
||||
) {
|
||||
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())
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户