From 3a1e1bc9d661c136e156a2212ffd3a28ffd3ba0a Mon Sep 17 00:00:00 2001 From: squallzhjch Date: Fri, 5 May 2023 16:52:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/navinfo/omqs/bean/EvaluationInfo.kt | 5 ++- .../com/navinfo/omqs/hilt/GlobalModule.kt | 12 ++++-- .../omqs/http/RetrofitNetworkServiceAPI.kt | 2 +- .../omqs/http/taskupload/TaskUploadScope.kt | 38 ++++++++++--------- .../EvaluationResultViewModel.kt | 9 ++++- .../collect/library/map/NIMapView.java | 5 ++- .../library/map/handler/LineHandler.kt | 2 +- .../library/map/handler/MarkHandler.kt | 4 +- .../map/handler/MeasureLayerHandler.kt | 2 +- 9 files changed, 48 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/com/navinfo/omqs/bean/EvaluationInfo.kt b/app/src/main/java/com/navinfo/omqs/bean/EvaluationInfo.kt index 49800ffb..9f4a541a 100644 --- a/app/src/main/java/com/navinfo/omqs/bean/EvaluationInfo.kt +++ b/app/src/main/java/com/navinfo/omqs/bean/EvaluationInfo.kt @@ -1,7 +1,10 @@ package com.navinfo.omqs.bean +import android.os.Parcelable import com.google.gson.annotations.SerializedName +import kotlinx.android.parcel.Parcelize +@Parcelize data class EvaluationInfo( @SerializedName("evaluationTaskId") val evaluationTaskId: String = "",//测评任务id @@ -46,5 +49,5 @@ data class EvaluationInfo( @SerializedName("evaluationWay") val evaluationWay: String = ""//测评方式 -) +) : Parcelable diff --git a/app/src/main/java/com/navinfo/omqs/hilt/GlobalModule.kt b/app/src/main/java/com/navinfo/omqs/hilt/GlobalModule.kt index 9baa08c1..e68fde92 100644 --- a/app/src/main/java/com/navinfo/omqs/hilt/GlobalModule.kt +++ b/app/src/main/java/com/navinfo/omqs/hilt/GlobalModule.kt @@ -24,6 +24,7 @@ import io.realm.Realm import kotlinx.coroutines.* import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor +import retrofit2.Call import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory import java.util.concurrent.TimeUnit @@ -66,7 +67,7 @@ class GlobalModule { }.apply { level = if (Constant.DEBUG) { //坑 !!!! 下载文件时打印log 内存不足 - HttpLoggingInterceptor.Level.BASIC + HttpLoggingInterceptor.Level.BODY } else { HttpLoggingInterceptor.Level.NONE } @@ -92,9 +93,12 @@ class GlobalModule { @Singleton fun provideGson(): Gson = GsonBuilder() // 解决解析Json时将int类型自动转换为Double的问题 - .registerTypeAdapter(object : TypeToken>() {}.getType(), IntTypeAdapter()) - .registerTypeAdapter(object : TypeToken>() {}.getType(), IntTypeAdapter()) - .registerTypeAdapter(object : TypeToken>() {}.getType(), IntTypeAdapter()) + .registerTypeAdapter(object : TypeToken>() {}.type, IntTypeAdapter()) + .registerTypeAdapter(object : TypeToken>() {}.type, IntTypeAdapter()) + .registerTypeAdapter(object : TypeToken>() {}.type, IntTypeAdapter()) +// .registerTypeAdapter(Call::class.java, object : TypeToken>(){ +// +// }) .create() @Provides diff --git a/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt b/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt index 2e542a0b..12c2a3c8 100644 --- a/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt +++ b/app/src/main/java/com/navinfo/omqs/http/RetrofitNetworkServiceAPI.kt @@ -58,7 +58,7 @@ interface RetrofitNetworkServiceAPI { @Headers("Content-Type: application/json") @POST("/devcp/upload") - suspend fun postRequest(@Body listEvaluationInfo: List?): Call + suspend fun postRequest(@Body listEvaluationInfo: List?): Response /** * @FormUrlEncoded 请求格式注解,请求实体是一个From表单,每个键值对需要使用@Field注解 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 d830be24..a34a6c25 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 @@ -9,6 +9,7 @@ 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.omqs.tools.FileManager.Companion.FileUploadStatus import io.realm.Realm @@ -114,9 +115,16 @@ class TaskUploadScope( taskBean.hadLinkDvoList.forEach { hadLinkDvoBean -> val objects = realm.where(QsRecordBean::class.java) .equalTo("linkId", /*"84207223282277331"*/hadLinkDvoBean.linkPid).findAll() + if(objects.size == 0){ +// change(FileUploadStatus.NONE) + return + } + val bodyList: MutableList = ArrayList() + if (objects != null) { - objects.forEach{ + val copyList =realm.copyFromRealm(objects) + copyList.forEach { val evaluationInfo = EvaluationInfo( taskBean.id.toString(), hadLinkDvoBean.linkPid,//"84207223282277331" @@ -137,26 +145,20 @@ class TaskUploadScope( bodyList.add(evaluationInfo) } - uploadManager.netApi.postRequest(bodyList).enqueue(object : - Callback { - override fun onResponse( - call: Call, - response: Response - ) { - if (response.code() == 200) { - taskBean.syncStatus = FileUploadStatus.DONE - // handle the response - Log.e("qj", "") - change(FileUploadStatus.DONE) - } - } - - override fun onFailure(call: Call, t: Throwable) { + val result = uploadManager.netApi.postRequest(bodyList)// .enqueue(object : +// Callback { + if (result.isSuccessful) { + if (result.code() == 200) { + taskBean.syncStatus = FileUploadStatus.DONE + // handle the response + change(FileUploadStatus.DONE) + } else { // handle the failure - Log.e("qj", "") change(FileUploadStatus.ERROR) } - }) + } else { + change(FileUploadStatus.ERROR) + } } } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt index c9334af9..35b9d371 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt @@ -91,6 +91,8 @@ class EvaluationResultViewModel @Inject constructor( var mSoundMeter: SoundMeter? = null + var classTypeTemp: String = "" + init { liveDataQsRecordBean.value = QsRecordBean(id = UUID.randomUUID().toString()) Log.e("jingo", "EvaluationResultViewModel 创建了 ${hashCode()}") @@ -128,6 +130,7 @@ class EvaluationResultViewModel @Inject constructor( geoPoint?.let { liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(it).toText() mapController.markerHandle.addMarker(geoPoint, markerTitle) + mapController.animationHandler.animationByLonLat(geoPoint.latitude,geoPoint.longitude) viewModelScope.launch { captureLink(geoPoint.longitude, geoPoint.latitude) } @@ -148,6 +151,8 @@ class EvaluationResultViewModel @Inject constructor( } } val point = GeometryTools.createGeoPoint(bean.geometry) + liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(point).toText() + mapController.animationHandler.animationByLonLat(point.latitude,point.longitude) mapController.markerHandle.addMarker(point, markerTitle) } @@ -196,6 +201,7 @@ class EvaluationResultViewModel @Inject constructor( if (liveDataQsRecordBean.value!!.classType.isEmpty()) { Log.e("jingo", "getClassTypeList $classType") liveDataQsRecordBean.value!!.classType = classType + classTypeTemp = classType } getProblemList(classType) } @@ -285,12 +291,14 @@ class EvaluationResultViewModel @Inject constructor( viewModelScope.launch(Dispatchers.IO) { getProblemList(classType) } + classTypeTemp = classType } /** * 监听右侧栏的点击事件,修改数据 */ fun setPhenomenonMiddleBean(adapterBean: RightBean) { + liveDataQsRecordBean.value!!.classType = classTypeTemp liveDataQsRecordBean.value!!.phenomenon = adapterBean.text liveDataQsRecordBean.value!!.problemType = adapterBean.title liveDataQsRecordBean.postValue(liveDataQsRecordBean.value) @@ -305,7 +313,6 @@ class EvaluationResultViewModel @Inject constructor( fun saveData() { viewModelScope.launch(Dispatchers.IO) { val realm = Realm.getDefaultInstance() - Log.e("jingo", "realm hashCOde ${realm.hashCode()}") realm.executeTransaction { it.copyToRealmOrUpdate(liveDataQsRecordBean.value) } diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/NIMapView.java b/collect-library/src/main/java/com/navinfo/collect/library/map/NIMapView.java index 1e66c804..c60c3bbe 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/NIMapView.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/NIMapView.java @@ -591,8 +591,9 @@ public final class NIMapView extends RelativeLayout { BASE(0)/*底图图层组*/, VECTOR_TILE(1)/*矢量瓦片组*/, VECTOR(2)/*高亮组*/, - OPERATE(3)/*操作图层组*/, - NAVIGATION(4)/*定位导航组*/; + OPERATE_LINE(3)/*操作图层组*/, + OPERATE_MARKER(4)/*操作图层组*/, + NAVIGATION(5)/*定位导航组*/; int groupIndex; diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LineHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LineHandler.kt index 6ff737f4..970a326f 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LineHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LineHandler.kt @@ -110,7 +110,7 @@ class LineHandler(context: AppCompatActivity, mapView: NIMapView) : BaseHandler( .strokeColor(context.resources.getColor(R.color.draw_line_red_color, null)) .fixed(true).randomOffset(false).build() mDefaultPathLayer = PathLayer(mMapView.vtmMap, defaultLineStyle) - addLayer(mDefaultPathLayer, NIMapView.LAYER_GROUPS.OPERATE) + addLayer(mDefaultPathLayer, NIMapView.LAYER_GROUPS.OPERATE_LINE) mPathLayer = PathLayer(mMapView.vtmMap, lineStyle) // addLayer(mPathLayer, NIMapView.LAYER_GROUPS.OPERATE) diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt index 2c8528c4..ca1e6a63 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt @@ -93,7 +93,7 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) : //初始化之间数据图层 initQsRecordDataLayer() - addLayer(mDefaultMarkerLayer, NIMapView.LAYER_GROUPS.OPERATE); + addLayer(mDefaultMarkerLayer, NIMapView.LAYER_GROUPS.OPERATE_MARKER); // 设置矢量图层均在12级以上才显示 mMapView.vtmMap.events.bind(Map.UpdateListener { e, mapPosition -> if (e == Map.SCALE_EVENT) { @@ -259,7 +259,7 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) : return true } }) - addLayer(itemizedLayer, NIMapView.LAYER_GROUPS.OPERATE) + addLayer(itemizedLayer, NIMapView.LAYER_GROUPS.OPERATE_MARKER) mContext.lifecycleScope.launch(Dispatchers.IO) { var list = mutableListOf() val realm = Realm.getDefaultInstance() diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MeasureLayerHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MeasureLayerHandler.kt index e6b99078..6308fe7a 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MeasureLayerHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MeasureLayerHandler.kt @@ -116,7 +116,7 @@ open class MeasureLayerHandler(context: AppCompatActivity, mapView: NIMapView) : mPathLayer = PathLayer(mMapView.vtmMap, lineStyle) - addLayer(mPathLayer, NIMapView.LAYER_GROUPS.OPERATE) + addLayer(mPathLayer, NIMapView.LAYER_GROUPS.OPERATE_LINE) }