From 977b4b54daf726ce9ef2cb51d8a5e8fa529b4234 Mon Sep 17 00:00:00 2001 From: qiji4215 Date: Thu, 27 Apr 2023 12:16:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=97=AE=E9=A2=98=E5=9B=9E?= =?UTF-8?q?=E4=BC=A0=E4=B8=9A=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/navinfo/omqs/bean/TaskBean.kt | 2 +- .../omqs/http/taskupload/TaskUploadManager.kt | 2 +- .../omqs/http/taskupload/TaskUploadScope.kt | 103 +++++++++++------- .../com/navinfo/omqs/tools/FileManager.kt | 1 + .../ui/fragment/tasklist/TaskListAdapter.kt | 11 +- .../library/data/entity/QsRecordBean.kt | 2 +- 6 files changed, 77 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt b/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt index dc7c06f7..a036cabf 100644 --- a/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt +++ b/app/src/main/java/com/navinfo/omqs/bean/TaskBean.kt @@ -15,7 +15,7 @@ open class TaskBean @JvmOverloads constructor( /** * 测评任务id */ -// @PrimaryKey + @PrimaryKey var id: Int = 0, /** * 测评任务名称 diff --git a/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadManager.kt b/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadManager.kt index 2cf710c8..ba8c6341 100644 --- a/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadManager.kt +++ b/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadManager.kt @@ -64,7 +64,7 @@ class TaskUploadManager constructor( taskScopeMap.remove(id) for (entrySet in scopeMap) { val uploadScope = entrySet.value - if (uploadScope.isNotSync()) { + if (uploadScope.isWaiting()) { launchScope(uploadScope) break } diff --git a/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt b/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt index 41f3df80..d37463e5 100644 --- a/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt +++ b/app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt @@ -1,6 +1,8 @@ package com.navinfo.omqs.http.taskupload +import android.os.Build import android.util.Log +import androidx.annotation.RequiresApi import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.MutableLiveData import androidx.lifecycle.Observer @@ -25,7 +27,7 @@ class TaskUploadScope( /** - *下载任务,用来取消的 + * 用来取消的 */ private var uploadJob: Job? = null @@ -68,7 +70,8 @@ class TaskUploadScope( * @param status [OfflineMapCityBean.Status] */ private fun change(status: Int, message: String = "") { - if (taskBean.syncStatus != status ) { + if (taskBean.syncStatus != status) { + taskBean.syncStatus = status uploadData.postValue(taskBean) launch { val realm = Realm.getDefaultInstance() @@ -82,8 +85,8 @@ class TaskUploadScope( /** * 是否未上传 */ - fun isNotSync(): Boolean { - return taskBean.syncStatus == FileManager.Companion.FileUploadStatus.NONE + fun isWaiting(): Boolean { + return taskBean.syncStatus == FileManager.Companion.FileUploadStatus.WAITING } /** @@ -97,6 +100,7 @@ class TaskUploadScope( /** * 上传文件 */ + @RequiresApi(Build.VERSION_CODES.N) private suspend fun upload() { try { //如果已上传则返回 @@ -106,46 +110,65 @@ class TaskUploadScope( val realm = Realm.getDefaultInstance() taskBean.hadLinkDvoList.forEach { - val list = realm.where(QsRecordBean::class.java).equalTo("linkId", "123"/*it.linkPid*/).findAll() + val hadLinkDvoBean = it + val liveDataQSList = MutableLiveData>() + val objects = realm.where(QsRecordBean::class.java) + .equalTo("linkId", /*"84207223282277331"*/hadLinkDvoBean.linkPid).findAll() + val bodyList: MutableList = ArrayList() + if (objects != null) { + + liveDataQSList.postValue(realm.copyFromRealm(objects)) + + if (liveDataQSList.value!!.isNotEmpty()) { + + liveDataQSList.value?.forEach { + val evaluationInfo = EvaluationInfo( + taskBean.id.toString(), + hadLinkDvoBean.linkPid,//"84207223282277331" + "已测评", + hadLinkDvoBean.mesh,//"20065597" + "", + it.geometry, + it.classType, + it.problemType, + it.phenomenon, + it.description, + it.problemLink, + it.cause, + it.checkUserId, + it.checkTime + ) + + bodyList.add(evaluationInfo) + } + + uploadManager.netApi.postRequest(bodyList).enqueue(object : + Callback { + override fun onResponse( + call: Call, + response: Response + ) { + if(response.code()==200){ + taskBean.syncStatus = FileManager.Companion.FileUploadStatus.DONE + // handle the response + Log.e("qj", "") + change(FileManager.Companion.FileUploadStatus.DONE) + } + } + + override fun onFailure(call: Call, t: Throwable) { + // handle the failure + Log.e("qj", "") + change(FileManager.Companion.FileUploadStatus.ERROR) + } + }) + } + } } - val list: MutableList = ArrayList() - val evaluationInfo = EvaluationInfo(taskBean.id.toString(), - "123123", - "原库", - "123123", - "", - "POINT (116.252097 40.00752)", - "点限速", - "多余", - "多余", - "多余", - "多余", - "多余", - "张三", - "20230426") - - list.add(evaluationInfo) - - //3. Create an instance of the interface: - val apiService = uploadManager.netApi.postRequest(list).enqueue(object : - Callback { - override fun onResponse(call: Call, response: Response) { - // handle the response - Log.e("qj","") - change(FileManager.Companion.FileUploadStatus.NONE) - } - - override fun onFailure(call: Call, t: Throwable) { - // handle the failure - Log.e("qj","") - change(FileManager.Companion.FileUploadStatus.ERROR) - } - }) - } catch (e: Throwable) { change(FileManager.Companion.FileUploadStatus.ERROR) - Log.e("jingo","数据上传出错 ${e.message}") + Log.e("jingo", "数据上传出错 ${e.message}") } finally { } diff --git a/app/src/main/java/com/navinfo/omqs/tools/FileManager.kt b/app/src/main/java/com/navinfo/omqs/tools/FileManager.kt index 48a9230e..ea0dda7d 100644 --- a/app/src/main/java/com/navinfo/omqs/tools/FileManager.kt +++ b/app/src/main/java/com/navinfo/omqs/tools/FileManager.kt @@ -26,6 +26,7 @@ class FileManager { const val NONE = 0 //无状态 const val DONE = 1 //完成 const val ERROR = 2 //错误 + const val WAITING = 3 //等待中 } //初始化数据文件夹 diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt index c1c627fa..5195f2d3 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskListAdapter.kt @@ -114,9 +114,18 @@ class TaskListAdapter( private fun changeUploadTxtViews(binding: AdapterTaskListBinding, taskBean: TaskBean) { when (taskBean.syncStatus) { - FileManager.Companion.FileUploadStatus.NONE -> { + FileManager.Companion.FileUploadStatus.DONE -> { binding.taskUploadBtn.text = "已上传" } + FileManager.Companion.FileUploadStatus.ERROR -> { + binding.taskUploadBtn.text = "重新同步" + } + FileManager.Companion.FileUploadStatus.NONE -> { + binding.taskUploadBtn.text = "同步" + } + FileManager.Companion.FileUploadStatus.WAITING -> { + binding.taskUploadBtn.text = "等待同步" + } } } diff --git a/collect-library/src/main/java/com/navinfo/collect/library/data/entity/QsRecordBean.kt b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/QsRecordBean.kt index a939a767..a70856ef 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/data/entity/QsRecordBean.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/QsRecordBean.kt @@ -28,7 +28,7 @@ open class QsRecordBean @JvmOverloads constructor( /** * linkPid 绑定的道路ID */ - var linkId: String = "123", + var linkId: String = "84207223282277331", /** *问题分类 */