Merge branch 'master' of gitlab.navinfo.com:CollectVehicle/OneMapQS

 Conflicts:
	app/src/main/java/com/navinfo/omqs/http/taskupload/TaskUploadScope.kt
This commit is contained in:
squallzhjch
2023-05-08 14:33:52 +08:00
152 changed files with 341 additions and 154 deletions

View File

@@ -47,11 +47,6 @@ class Constant {
*/
lateinit var DOWNLOAD_PATH: String
/**
* 服务器地址
*/
const val SERVER_ADDRESS = "http://fastmap.navinfo.com/"
const val DEBUG = true
var IS_VIDEO_SPEED by kotlin.properties.Delegates.notNull<Boolean>()

View File

@@ -1,74 +0,0 @@
package com.navinfo.omqs.bean
import com.google.gson.annotations.SerializedName
import com.navinfo.collect.library.data.entity.HadLinkDvoBean
import com.navinfo.omqs.Constant
import com.navinfo.omqs.tools.FileManager
import com.navinfo.omqs.tools.FileManager.Companion.FileDownloadStatus
import io.realm.RealmList
import io.realm.RealmObject
import io.realm.annotations.Ignore
import io.realm.annotations.PrimaryKey
open class TaskBean @JvmOverloads constructor(
/**
* 测评任务id
*/
@PrimaryKey
var id: Int = 0,
/**
* 测评任务名称
*/
var evaluationTaskName: String = "",
/**
* 市编码
*/
var cityCode: String = "",
/**
*市名称
*/
var cityName: String = "",
/**
* omdb标准版
*/
var dataVersion: String = "",
/**
* 测评人名称
*/
var evaluatorName: String = "",
/**
* 项目标签
*/
var project: String = "",
/**
* 图幅号
*/
@SerializedName("hadLinkDvo")
var hadLinkDvoList: RealmList<HadLinkDvoBean> = RealmList<HadLinkDvoBean>(),
/**
* 文件大小
*/
var fileSize: Long = 0L,
/**
* 当前下载进度
*/
var currentSize: Long = 0L,
/**
* 当前下载状态
*/
var status: Int = FileDownloadStatus.NONE,
/**
* 上传状态
*/
var syncStatus: Int = FileManager.Companion.FileUploadStatus.NONE,
@Ignore
var message: String = "",
var color: Int = 0xFF00AA
) : RealmObject() {
fun getDownLoadUrl(): String {
return "${Constant.SERVER_ADDRESS}devcp/download?fileStr=$id"
}
}

View File

@@ -1,7 +1,6 @@
package com.navinfo.omqs.db
import com.navinfo.collect.library.data.entity.HadLinkDvoBean
import com.navinfo.omqs.bean.TaskBean
import com.navinfo.collect.library.data.entity.TaskBean
import io.realm.annotations.RealmModule
@RealmModule(classes = [TaskBean::class])

View File

@@ -7,6 +7,7 @@ import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.google.gson.reflect.TypeToken
import com.navinfo.collect.library.data.dao.impl.TraceDataBase
import com.navinfo.collect.library.system.Constant.SERVER_ADDRESS
import com.navinfo.omqs.Constant
import com.navinfo.omqs.OMQSApplication
import com.navinfo.omqs.db.RoomAppDatabase
@@ -82,7 +83,7 @@ class GlobalModule {
converterFactory: GsonConverterFactory,
): Retrofit {
val retrofitBuilder = Retrofit.Builder()
.baseUrl(Constant.SERVER_ADDRESS)
.baseUrl(SERVER_ADDRESS)
.client(client.get())
.addConverterFactory(converterFactory)

View File

@@ -1,7 +1,7 @@
package com.navinfo.omqs.http
import com.navinfo.omqs.bean.OfflineMapCityBean
import com.navinfo.omqs.bean.TaskBean
import com.navinfo.collect.library.data.entity.TaskBean
/**

View File

@@ -1,7 +1,7 @@
package com.navinfo.omqs.http
import com.navinfo.omqs.bean.OfflineMapCityBean
import com.navinfo.omqs.bean.TaskBean
import com.navinfo.collect.library.data.entity.TaskBean
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import javax.inject.Inject

View File

@@ -2,9 +2,8 @@ package com.navinfo.omqs.http
import com.navinfo.omqs.bean.EvaluationInfo
import com.navinfo.omqs.bean.OfflineMapCityBean
import com.navinfo.omqs.bean.TaskBean
import com.navinfo.collect.library.data.entity.TaskBean
import okhttp3.ResponseBody
import retrofit2.Call
import retrofit2.Response
import retrofit2.http.*

View File

@@ -4,13 +4,10 @@ import android.content.Context
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.Observer
import com.navinfo.collect.library.map.NIMapController
import com.navinfo.omqs.bean.TaskBean
import com.navinfo.collect.library.data.entity.TaskBean
import com.navinfo.omqs.hilt.ImportOMDBHiltFactory
import com.navinfo.omqs.hilt.OMDBDataBaseHiltFactory
import com.navinfo.omqs.http.RetrofitNetworkServiceAPI
import dagger.hilt.android.qualifiers.ActivityContext
import java.util.concurrent.ConcurrentHashMap
import javax.inject.Inject
/**

View File

@@ -5,7 +5,7 @@ import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Observer
import com.navinfo.omqs.Constant
import com.navinfo.omqs.bean.TaskBean
import com.navinfo.collect.library.data.entity.TaskBean
import com.navinfo.omqs.db.ImportOMDBHelper
import com.navinfo.omqs.tools.FileManager
import com.navinfo.omqs.tools.FileManager.Companion.FileDownloadStatus

View File

@@ -3,7 +3,7 @@ package com.navinfo.omqs.http.taskupload
import android.content.Context
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.Observer
import com.navinfo.omqs.bean.TaskBean
import com.navinfo.collect.library.data.entity.TaskBean
import com.navinfo.omqs.http.RetrofitNetworkServiceAPI
import java.util.concurrent.ConcurrentHashMap

View File

@@ -8,16 +8,10 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Observer
import com.navinfo.collect.library.data.entity.QsRecordBean
import com.navinfo.omqs.bean.EvaluationInfo
import com.navinfo.omqs.bean.TaskBean
import com.navinfo.omqs.http.NetResult
import com.navinfo.omqs.tools.FileManager
import com.navinfo.collect.library.data.entity.TaskBean
import com.navinfo.omqs.tools.FileManager.Companion.FileUploadStatus
import io.realm.Realm
import kotlinx.coroutines.*
import okhttp3.ResponseBody
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import java.util.*
class TaskUploadScope(
@@ -67,7 +61,6 @@ class TaskUploadScope(
}
}
/**
* 更新状态
* @param status [OfflineMapCityBean.Status]
@@ -76,10 +69,13 @@ class TaskUploadScope(
if (taskBean.syncStatus != status) {
taskBean.syncStatus = status
uploadData.postValue(taskBean)
launch {
val realm = Realm.getDefaultInstance()
realm.executeTransaction {
it.copyToRealmOrUpdate(taskBean)
//同步中不进行状态记录,只做界面变更显示
if(status!=FileUploadStatus.UPLOADING){
launch {
val realm = Realm.getDefaultInstance()
realm.executeTransaction {
it.copyToRealmOrUpdate(taskBean)
}
}
}
}
@@ -112,11 +108,17 @@ class TaskUploadScope(
}
val realm = Realm.getDefaultInstance()
val bodyList: MutableList<EvaluationInfo> = ArrayList()
if (taskBean.syncStatus == FileUploadStatus.WAITING){
change(FileUploadStatus.UPLOADING)
}
taskBean.hadLinkDvoList.forEach { hadLinkDvoBean ->
val objects = realm.where(QsRecordBean::class.java)
.equalTo("linkId", /*"84207223282277331"*/hadLinkDvoBean.linkPid).findAll()
if (objects != null) {
if (objects != null&&objects.size>0) {
val copyList = realm.copyFromRealm(objects)
copyList.forEach {
val evaluationInfo = EvaluationInfo(
@@ -139,26 +141,26 @@ class TaskUploadScope(
bodyList.add(evaluationInfo)
}
}
}
if (bodyList.size == 0) {
if (taskBean.syncStatus == FileUploadStatus.WAITING)
change(FileUploadStatus.NONE)
return
}
val result = uploadManager.netApi.postRequest(bodyList)// .enqueue(object :
if(bodyList.size>0){
val result = uploadManager.netApi.postRequest(bodyList)// .enqueue(object :
// Callback<ResponseBody> {
if (result.isSuccessful) {
if (result.code() == 200) {
// handle the response
change(FileUploadStatus.DONE)
if (result.isSuccessful) {
if (result.code() == 200) {
// taskBean.syncStatus = FileUploadStatus.DONE
// handle the response
change(FileUploadStatus.DONE)
} else {
// handle the failure
change(FileUploadStatus.ERROR)
}
} else {
// handle the failure
change(FileUploadStatus.ERROR)
}
} else {
change(FileUploadStatus.ERROR)
}else{
change(FileUploadStatus.NONE)
}
} catch (e: Throwable) {
change(FileUploadStatus.ERROR)

View File

@@ -3,7 +3,7 @@ package com.navinfo.omqs.tools
import android.content.Context
import com.navinfo.omqs.Constant
import com.navinfo.omqs.bean.OfflineMapCityBean
import com.navinfo.omqs.bean.TaskBean
import com.navinfo.collect.library.data.entity.TaskBean
import java.io.File
class FileManager {
@@ -27,6 +27,7 @@ class FileManager {
const val DONE = 1 //完成
const val ERROR = 2 //错误
const val WAITING = 3 //等待中
const val UPLOADING = 4 //同步中
}
//初始化数据文件夹

View File

@@ -176,7 +176,7 @@ class LoginViewModel @Inject constructor(
.directory(userFolder)
.name("OMQS.realm")
.encryptionKey(password)
.modules(Realm.getDefaultModule(), MyRealmModule())
// .modules(Realm.getDefaultModule(), MyRealmModule())
.schemaVersion(1)
.build()
Realm.setDefaultConfiguration(config)

View File

@@ -31,7 +31,7 @@ import com.navinfo.omqs.Constant
import com.navinfo.omqs.R
import com.navinfo.omqs.bean.ImportConfig
import com.navinfo.omqs.bean.SignBean
import com.navinfo.omqs.bean.TaskBean
import com.navinfo.collect.library.data.entity.TaskBean
import com.navinfo.omqs.db.RealmOperateHelper
import com.navinfo.omqs.ui.dialog.CommonDialog
import com.navinfo.omqs.ui.manager.TakePhotoManager

View File

@@ -1,18 +1,11 @@
package com.navinfo.omqs.ui.fragment.tasklist
import android.content.Context
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.Observer
import com.navinfo.collect.library.data.entity.QsRecordBean
import com.navinfo.omqs.R
import com.navinfo.omqs.bean.TaskBean
import com.navinfo.omqs.databinding.AdapterQsRecordListBinding
import com.navinfo.omqs.databinding.AdapterTaskListBinding
import com.navinfo.omqs.http.taskdownload.TaskDownloadManager
import com.navinfo.omqs.tools.FileManager.Companion.FileDownloadStatus
import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter
import com.navinfo.omqs.ui.other.BaseViewHolder

View File

@@ -1,25 +1,19 @@
package com.navinfo.omqs.ui.fragment.tasklist
import android.content.Context
import android.graphics.Color
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.Observer
import com.navinfo.omqs.R
import com.navinfo.omqs.bean.TaskBean
import com.navinfo.collect.library.data.entity.TaskBean
import com.navinfo.omqs.databinding.AdapterTaskListBinding
import com.navinfo.omqs.http.taskdownload.TaskDownloadManager
import com.navinfo.omqs.http.taskupload.TaskUploadManager
import com.navinfo.omqs.tools.FileManager
import com.navinfo.omqs.tools.FileManager.Companion.FileDownloadStatus
import com.navinfo.omqs.tools.FileManager.Companion.FileUploadStatus
import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter
import com.navinfo.omqs.ui.other.BaseViewHolder
import java.io.File
import java.util.*
import javax.inject.Inject
/**
* 离线地图城市列表 RecyclerView 适配器
@@ -130,6 +124,9 @@ class TaskListAdapter(
FileUploadStatus.WAITING -> {
binding.taskUploadBtn.text = "等待同步"
}
FileUploadStatus.UPLOADING -> {
binding.taskUploadBtn.text = "同步中"
}
}
}

View File

@@ -10,7 +10,7 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.navinfo.collect.library.map.NIMapController
import com.navinfo.omqs.Constant
import com.navinfo.omqs.bean.TaskBean
import com.navinfo.collect.library.data.entity.TaskBean
import com.navinfo.omqs.http.NetResult
import com.navinfo.omqs.http.NetworkService
import com.navinfo.omqs.tools.FileManager