diff --git a/app/src/main/java/com/casic/qd/smartwell/model/MapDeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/MapDeviceListModel.kt new file mode 100644 index 0000000..1360f4f --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/model/MapDeviceListModel.kt @@ -0,0 +1,44 @@ +package com.casic.qd.smartwell.model + +class MapDeviceListModel { + var code = 0 + var data: List? = null + var message: String? = null + var isSuccess = false + + class DataBean { + var area: String? = null + var areaFullName: String? = null + var bfzt: String? = null + var bfztName: String? = null + var communication: String? = null + var concenCode: String? = null + var concenId: String? = null + var dayCount: String? = null + var deptName: String? = null + var deptid: String? = null + var devcode: String? = null + var deviceName: String? = null + var deviceType: String? = null + var deviceTypeName: String? = null + var id: String? = null + var installDate: String? = null + var latitude: String? = null + var longitude: String? = null + var modelId: String? = null + var modelName: String? = null + var monthCount: String? = null + var onlineState: String? = null + var onlineStateName: String? = null + var position: String? = null + var statusName: String? = null + var totalCount: String? = null + var ts: String? = null + var uptime: String? = null + var valid: String? = null + var watchNum: String? = null + var watchType: String? = null + var wellCode: String? = null + var wellId: String? = null + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/model/MapDeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/MapDeviceListModel.kt new file mode 100644 index 0000000..1360f4f --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/model/MapDeviceListModel.kt @@ -0,0 +1,44 @@ +package com.casic.qd.smartwell.model + +class MapDeviceListModel { + var code = 0 + var data: List? = null + var message: String? = null + var isSuccess = false + + class DataBean { + var area: String? = null + var areaFullName: String? = null + var bfzt: String? = null + var bfztName: String? = null + var communication: String? = null + var concenCode: String? = null + var concenId: String? = null + var dayCount: String? = null + var deptName: String? = null + var deptid: String? = null + var devcode: String? = null + var deviceName: String? = null + var deviceType: String? = null + var deviceTypeName: String? = null + var id: String? = null + var installDate: String? = null + var latitude: String? = null + var longitude: String? = null + var modelId: String? = null + var modelName: String? = null + var monthCount: String? = null + var onlineState: String? = null + var onlineStateName: String? = null + var position: String? = null + var statusName: String? = null + var totalCount: String? = null + var ts: String? = null + var uptime: String? = null + var valid: String? = null + var watchNum: String? = null + var watchType: String? = null + var wellCode: String? = null + var wellId: String? = null + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt index 06fadd2..831f862 100644 --- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt @@ -231,9 +231,19 @@ @GET("/waterMeterData/listPage") suspend fun obtainDeviceData( @Header("token") token: String, - @Query("areaId") devCode: String?, - @Query("keywords") beginTime: String?, + @Query("areaId") areaId: String?, + @Query("keywords") keywords: String?, @Query("offset") offset: Int, @Query("limit") limit: Int ): String + + /** + * 根据设备类型获取所有设备 + * */ + @GET("/overview/wellMapping") + suspend fun obtainMapDeviceResult( + @Header("token") token: String, + @Query("keywords") keywords: String?, + @Query("devType") devType: String? + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/model/MapDeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/MapDeviceListModel.kt new file mode 100644 index 0000000..1360f4f --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/model/MapDeviceListModel.kt @@ -0,0 +1,44 @@ +package com.casic.qd.smartwell.model + +class MapDeviceListModel { + var code = 0 + var data: List? = null + var message: String? = null + var isSuccess = false + + class DataBean { + var area: String? = null + var areaFullName: String? = null + var bfzt: String? = null + var bfztName: String? = null + var communication: String? = null + var concenCode: String? = null + var concenId: String? = null + var dayCount: String? = null + var deptName: String? = null + var deptid: String? = null + var devcode: String? = null + var deviceName: String? = null + var deviceType: String? = null + var deviceTypeName: String? = null + var id: String? = null + var installDate: String? = null + var latitude: String? = null + var longitude: String? = null + var modelId: String? = null + var modelName: String? = null + var monthCount: String? = null + var onlineState: String? = null + var onlineStateName: String? = null + var position: String? = null + var statusName: String? = null + var totalCount: String? = null + var ts: String? = null + var uptime: String? = null + var valid: String? = null + var watchNum: String? = null + var watchType: String? = null + var wellCode: String? = null + var wellId: String? = null + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt index 06fadd2..831f862 100644 --- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt @@ -231,9 +231,19 @@ @GET("/waterMeterData/listPage") suspend fun obtainDeviceData( @Header("token") token: String, - @Query("areaId") devCode: String?, - @Query("keywords") beginTime: String?, + @Query("areaId") areaId: String?, + @Query("keywords") keywords: String?, @Query("offset") offset: Int, @Query("limit") limit: Int ): String + + /** + * 根据设备类型获取所有设备 + * */ + @GET("/overview/wellMapping") + suspend fun obtainMapDeviceResult( + @Header("token") token: String, + @Query("keywords") keywords: String?, + @Query("devType") devType: String? + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt index 29dc335..e446f48 100644 --- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt @@ -227,4 +227,11 @@ AuthenticationHelper.token!!, areaId, keywords, page, Constant.PAGE_LIMIT ) } + + /** + * 根据设备类型获取所有设备 + */ + suspend fun obtainMapDeviceResult(keywords: String?, devType: String?): String { + return api.obtainMapDeviceResult(AuthenticationHelper.token!!, keywords, devType) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/model/MapDeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/MapDeviceListModel.kt new file mode 100644 index 0000000..1360f4f --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/model/MapDeviceListModel.kt @@ -0,0 +1,44 @@ +package com.casic.qd.smartwell.model + +class MapDeviceListModel { + var code = 0 + var data: List? = null + var message: String? = null + var isSuccess = false + + class DataBean { + var area: String? = null + var areaFullName: String? = null + var bfzt: String? = null + var bfztName: String? = null + var communication: String? = null + var concenCode: String? = null + var concenId: String? = null + var dayCount: String? = null + var deptName: String? = null + var deptid: String? = null + var devcode: String? = null + var deviceName: String? = null + var deviceType: String? = null + var deviceTypeName: String? = null + var id: String? = null + var installDate: String? = null + var latitude: String? = null + var longitude: String? = null + var modelId: String? = null + var modelName: String? = null + var monthCount: String? = null + var onlineState: String? = null + var onlineStateName: String? = null + var position: String? = null + var statusName: String? = null + var totalCount: String? = null + var ts: String? = null + var uptime: String? = null + var valid: String? = null + var watchNum: String? = null + var watchType: String? = null + var wellCode: String? = null + var wellId: String? = null + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt index 06fadd2..831f862 100644 --- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt @@ -231,9 +231,19 @@ @GET("/waterMeterData/listPage") suspend fun obtainDeviceData( @Header("token") token: String, - @Query("areaId") devCode: String?, - @Query("keywords") beginTime: String?, + @Query("areaId") areaId: String?, + @Query("keywords") keywords: String?, @Query("offset") offset: Int, @Query("limit") limit: Int ): String + + /** + * 根据设备类型获取所有设备 + * */ + @GET("/overview/wellMapping") + suspend fun obtainMapDeviceResult( + @Header("token") token: String, + @Query("keywords") keywords: String?, + @Query("devType") devType: String? + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt index 29dc335..e446f48 100644 --- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt @@ -227,4 +227,11 @@ AuthenticationHelper.token!!, areaId, keywords, page, Constant.PAGE_LIMIT ) } + + /** + * 根据设备类型获取所有设备 + */ + suspend fun obtainMapDeviceResult(keywords: String?, devType: String?): String { + return api.obtainMapDeviceResult(AuthenticationHelper.token!!, keywords, devType) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt index 8401ec5..41ffcc3 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt @@ -4,16 +4,18 @@ import android.location.Location import android.os.Bundle import android.util.Log +import androidx.lifecycle.ViewModelProvider import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.AMapUtils +import com.amap.api.maps.CoordinateConverter import com.amap.api.maps.model.* import com.casic.qd.smartwell.R import com.casic.qd.smartwell.base.BaseActivity import com.casic.qd.smartwell.extensions.show -import com.casic.qd.smartwell.extensions.toJson import com.casic.qd.smartwell.utils.Constant import com.casic.qd.smartwell.utils.SaveKeyValues +import com.casic.qd.smartwell.vm.DeviceViewModel import com.casic.qd.smartwell.widgets.GaoDeClusterMarkerView import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -31,6 +33,7 @@ private val kTag = "MapActivity" private var authenticatedType: MutableList = ArrayList() + private lateinit var deviceViewModel: DeviceViewModel private lateinit var aMap: AMap /** @@ -62,9 +65,36 @@ userDeviceJson, object : TypeToken>() {}.type ) } - Log.d(kTag, authenticatedType.toJson()) //获取权限内所有窨井数据 - + deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + authenticatedType.forEach { + deviceViewModel.obtainMapDeviceResult("", it) + } + deviceViewModel.mapDeviceResultModel.observe(this, { + if (it.code == 200) { + it.data?.forEach { dataModel -> + val lat = dataModel.latitude.toString() + val lng = dataModel.longitude.toString() + if (lat.isNotBlank() && lng.isNotBlank()) { + //返回true代表当前位置在大陆、港澳地区,反之不在 + if (CoordinateConverter.isAMapDataAvailable( + lat.toDouble(), lng.toDouble() + ) + ) { + allMarkerOptions.add( + MarkerOptions().position( + LatLng(lat.toDouble(), lng.toDouble()) + ).title(dataModel.deviceTypeName).snippet(dataModel.deviceName) + ) + } else { + Log.d(kTag, "${dataModel.devcode}闸井经纬度不在国内,异常经纬度 ===> [${lng},${lat}]") + } + } else { + Log.d(kTag, "${dataModel.devcode}设备经纬度异常,异常经纬度 ===> [${lng},${lat}]") + } + } + } + }) } override fun initEvent() { @@ -116,7 +146,6 @@ } private fun initClustersMarkers() { - return val proj = aMap.projection val dm = resources.displayMetrics var screenLocation: Point diff --git a/app/src/main/java/com/casic/qd/smartwell/model/MapDeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/MapDeviceListModel.kt new file mode 100644 index 0000000..1360f4f --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/model/MapDeviceListModel.kt @@ -0,0 +1,44 @@ +package com.casic.qd.smartwell.model + +class MapDeviceListModel { + var code = 0 + var data: List? = null + var message: String? = null + var isSuccess = false + + class DataBean { + var area: String? = null + var areaFullName: String? = null + var bfzt: String? = null + var bfztName: String? = null + var communication: String? = null + var concenCode: String? = null + var concenId: String? = null + var dayCount: String? = null + var deptName: String? = null + var deptid: String? = null + var devcode: String? = null + var deviceName: String? = null + var deviceType: String? = null + var deviceTypeName: String? = null + var id: String? = null + var installDate: String? = null + var latitude: String? = null + var longitude: String? = null + var modelId: String? = null + var modelName: String? = null + var monthCount: String? = null + var onlineState: String? = null + var onlineStateName: String? = null + var position: String? = null + var statusName: String? = null + var totalCount: String? = null + var ts: String? = null + var uptime: String? = null + var valid: String? = null + var watchNum: String? = null + var watchType: String? = null + var wellCode: String? = null + var wellId: String? = null + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt index 06fadd2..831f862 100644 --- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt @@ -231,9 +231,19 @@ @GET("/waterMeterData/listPage") suspend fun obtainDeviceData( @Header("token") token: String, - @Query("areaId") devCode: String?, - @Query("keywords") beginTime: String?, + @Query("areaId") areaId: String?, + @Query("keywords") keywords: String?, @Query("offset") offset: Int, @Query("limit") limit: Int ): String + + /** + * 根据设备类型获取所有设备 + * */ + @GET("/overview/wellMapping") + suspend fun obtainMapDeviceResult( + @Header("token") token: String, + @Query("keywords") keywords: String?, + @Query("devType") devType: String? + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt index 29dc335..e446f48 100644 --- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt @@ -227,4 +227,11 @@ AuthenticationHelper.token!!, areaId, keywords, page, Constant.PAGE_LIMIT ) } + + /** + * 根据设备类型获取所有设备 + */ + suspend fun obtainMapDeviceResult(keywords: String?, devType: String?): String { + return api.obtainMapDeviceResult(AuthenticationHelper.token!!, keywords, devType) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt index 8401ec5..41ffcc3 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MapActivity.kt @@ -4,16 +4,18 @@ import android.location.Location import android.os.Bundle import android.util.Log +import androidx.lifecycle.ViewModelProvider import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.AMapUtils +import com.amap.api.maps.CoordinateConverter import com.amap.api.maps.model.* import com.casic.qd.smartwell.R import com.casic.qd.smartwell.base.BaseActivity import com.casic.qd.smartwell.extensions.show -import com.casic.qd.smartwell.extensions.toJson import com.casic.qd.smartwell.utils.Constant import com.casic.qd.smartwell.utils.SaveKeyValues +import com.casic.qd.smartwell.vm.DeviceViewModel import com.casic.qd.smartwell.widgets.GaoDeClusterMarkerView import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -31,6 +33,7 @@ private val kTag = "MapActivity" private var authenticatedType: MutableList = ArrayList() + private lateinit var deviceViewModel: DeviceViewModel private lateinit var aMap: AMap /** @@ -62,9 +65,36 @@ userDeviceJson, object : TypeToken>() {}.type ) } - Log.d(kTag, authenticatedType.toJson()) //获取权限内所有窨井数据 - + deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) + authenticatedType.forEach { + deviceViewModel.obtainMapDeviceResult("", it) + } + deviceViewModel.mapDeviceResultModel.observe(this, { + if (it.code == 200) { + it.data?.forEach { dataModel -> + val lat = dataModel.latitude.toString() + val lng = dataModel.longitude.toString() + if (lat.isNotBlank() && lng.isNotBlank()) { + //返回true代表当前位置在大陆、港澳地区,反之不在 + if (CoordinateConverter.isAMapDataAvailable( + lat.toDouble(), lng.toDouble() + ) + ) { + allMarkerOptions.add( + MarkerOptions().position( + LatLng(lat.toDouble(), lng.toDouble()) + ).title(dataModel.deviceTypeName).snippet(dataModel.deviceName) + ) + } else { + Log.d(kTag, "${dataModel.devcode}闸井经纬度不在国内,异常经纬度 ===> [${lng},${lat}]") + } + } else { + Log.d(kTag, "${dataModel.devcode}设备经纬度异常,异常经纬度 ===> [${lng},${lat}]") + } + } + } + }) } override fun initEvent() { @@ -116,7 +146,6 @@ } private fun initClustersMarkers() { - return val proj = aMap.projection val dm = resources.displayMetrics var screenLocation: Point diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/DeviceViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/DeviceViewModel.kt index fbf67ba..ac4cc02 100644 --- a/app/src/main/java/com/casic/qd/smartwell/vm/DeviceViewModel.kt +++ b/app/src/main/java/com/casic/qd/smartwell/vm/DeviceViewModel.kt @@ -22,6 +22,7 @@ val dayDataModel = MutableLiveData() val totalDataModel = MutableLiveData() val deviceDataModel = MutableLiveData() + val mapDeviceResultModel = MutableLiveData() /** * 管网资产统计 @@ -116,4 +117,19 @@ Log.e(kTag, it.toString(), it) "服务器异常".show() }) + + fun obtainMapDeviceResult(keywords: String?, devType: String?) = launch({ + val response = RetrofitServiceManager.obtainMapDeviceResult(keywords, devType) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + mapDeviceResultModel.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + response.toErrorMessage().show() + } + }, { + Log.e(kTag, it.toString(), it) + "服务器异常".show() + }) } \ No newline at end of file