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.OcrResultData
|
||||||
import com.nova.brain.glass.model.data.RecognizeByPathRequest
|
import com.nova.brain.glass.model.data.RecognizeByPathRequest
|
||||||
import com.nova.brain.glass.model.data.RecognizeByPathResponse
|
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.SubmitTaskRequest
|
||||||
import com.nova.brain.glass.model.data.SubmitTaskResponse
|
import com.nova.brain.glass.model.data.SubmitTaskResponse
|
||||||
import com.nova.brain.glass.model.data.PushToNextData
|
import com.nova.brain.glass.model.data.PushToNextData
|
||||||
@ -30,7 +31,6 @@ import okhttp3.RequestBody
|
|||||||
import okhttp3.ResponseBody
|
import okhttp3.ResponseBody
|
||||||
import retrofit2.http.Body
|
import retrofit2.http.Body
|
||||||
import retrofit2.http.GET
|
import retrofit2.http.GET
|
||||||
import retrofit2.http.Headers
|
|
||||||
import retrofit2.http.Multipart
|
import retrofit2.http.Multipart
|
||||||
import retrofit2.http.Part
|
import retrofit2.http.Part
|
||||||
import retrofit2.http.POST
|
import retrofit2.http.POST
|
||||||
@ -79,15 +79,8 @@ interface Service {
|
|||||||
@POST("/skyscopicsecond-api/api/aiGlasses/recognizeByPath")
|
@POST("/skyscopicsecond-api/api/aiGlasses/recognizeByPath")
|
||||||
fun recognizeByPath(@Body body: RecognizeByPathRequest): Observable<RecognizeByPathResponse>
|
fun recognizeByPath(@Body body: RecognizeByPathRequest): Observable<RecognizeByPathResponse>
|
||||||
|
|
||||||
@Multipart
|
|
||||||
@POST("/skyscopicsecond-api/api/aiGlasses/saveOcrResult")
|
@POST("/skyscopicsecond-api/api/aiGlasses/saveOcrResult")
|
||||||
fun saveOcrResult(
|
fun saveOcrResult(@Body body: SaveOcrResultRequest): Observable<SubmitTaskResponse>
|
||||||
@Part("taskId") taskId: RequestBody,
|
|
||||||
@Part("productionInfoId") productionInfoId: RequestBody,
|
|
||||||
@Part("ocrResult") ocrResult: RequestBody,
|
|
||||||
@Part("result") result: RequestBody,
|
|
||||||
@Part("filePath") filePath: RequestBody
|
|
||||||
): Observable<SubmitTaskResponse>
|
|
||||||
|
|
||||||
@POST("/skyscopicsecond-api/api/aiGlasses/submitTask")
|
@POST("/skyscopicsecond-api/api/aiGlasses/submitTask")
|
||||||
fun submitTask(@Body body: SubmitTaskRequest): Observable<SubmitTaskResponse>
|
fun submitTask(@Body body: SubmitTaskRequest): Observable<SubmitTaskResponse>
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package com.nova.brain.glass.viewmodel
|
|||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import com.nova.brain.glass.MyApplication
|
import com.nova.brain.glass.MyApplication
|
||||||
import com.nova.brain.glass.model.ItemItem
|
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.model.data.SubmitTaskRequest
|
||||||
import com.nova.brain.glass.repository.Service
|
import com.nova.brain.glass.repository.Service
|
||||||
import com.xuqm.base.di.manager.HttpManager
|
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 com.xuqm.base.viewmodel.callback.Response
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||||
import io.reactivex.schedulers.Schedulers
|
import io.reactivex.schedulers.Schedulers
|
||||||
import okhttp3.MediaType.Companion.toMediaTypeOrNull
|
|
||||||
import okhttp3.RequestBody.Companion.toRequestBody
|
|
||||||
|
|
||||||
enum class SubmitTaskState {
|
enum class SubmitTaskState {
|
||||||
IDLE,
|
IDLE,
|
||||||
@ -75,15 +74,16 @@ class SprayingResultVM : BaseListViewModel<ItemItem>() {
|
|||||||
) {
|
) {
|
||||||
if (saveOcrState.value == SaveOcrState.LOADING) return
|
if (saveOcrState.value == SaveOcrState.LOADING) return
|
||||||
saveOcrState.value = SaveOcrState.LOADING
|
saveOcrState.value = SaveOcrState.LOADING
|
||||||
val plain = "text/plain".toMediaTypeOrNull()
|
|
||||||
add(
|
add(
|
||||||
HttpManager.getApi(MyApplication.appComponent2, Service::class.java)
|
HttpManager.getApi(MyApplication.appComponent2, Service::class.java)
|
||||||
.saveOcrResult(
|
.saveOcrResult(
|
||||||
taskId = taskId.toRequestBody(plain),
|
SaveOcrResultRequest(
|
||||||
productionInfoId = productionInfoId.toRequestBody(plain),
|
taskId = taskId,
|
||||||
ocrResult = ocrResultJson.toRequestBody(plain),
|
productionInfoId = productionInfoId,
|
||||||
result = resultJson.toRequestBody(plain),
|
ocrResult = ocrResultJson,
|
||||||
filePath = filePath.toRequestBody(plain)
|
result = resultJson,
|
||||||
|
filePath = filePath
|
||||||
|
)
|
||||||
)
|
)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户