diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 388948e..07f1c2a 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -7,6 +7,11 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage import com.casic.smarttube.extensions.toTextColor @@ -17,6 +22,7 @@ private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { + private val geocoderSearch by lazy { GeocodeSearch(context) } private val layoutInflater: LayoutInflater = LayoutInflater.from(context) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { @@ -31,8 +37,30 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.deviceCode -// holder.wellNameView.text = String.format("位置:${rowsBean}") + holder.deviceCodeView.text = rowsBean.devcode + if (rowsBean.latGaode.isBlank() || rowsBean.lngGaode.isBlank()) { + holder.locationView.text = "经纬度异常,无法查看具体位置" + } else { + val queryParam = RegeocodeQuery( + LatLonPoint(rowsBean.latGaode.toDouble(), rowsBean.lngGaode.toDouble()), + 200f, + GeocodeSearch.AMAP + ) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : + GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + holder.locationView.text = + String.format("管盯位置:${result?.regeocodeAddress?.formatAddress}") + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" } else { @@ -43,7 +71,7 @@ holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp holder.strengthDataView.text = rowsBean.strength - holder.installDateView.text = String.format("更新时间:${rowsBean.uptime}") + holder.installDateView.text = String.format("更新时间:${rowsBean.installDate}") if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 388948e..07f1c2a 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -7,6 +7,11 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage import com.casic.smarttube.extensions.toTextColor @@ -17,6 +22,7 @@ private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { + private val geocoderSearch by lazy { GeocodeSearch(context) } private val layoutInflater: LayoutInflater = LayoutInflater.from(context) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { @@ -31,8 +37,30 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.deviceCode -// holder.wellNameView.text = String.format("位置:${rowsBean}") + holder.deviceCodeView.text = rowsBean.devcode + if (rowsBean.latGaode.isBlank() || rowsBean.lngGaode.isBlank()) { + holder.locationView.text = "经纬度异常,无法查看具体位置" + } else { + val queryParam = RegeocodeQuery( + LatLonPoint(rowsBean.latGaode.toDouble(), rowsBean.lngGaode.toDouble()), + 200f, + GeocodeSearch.AMAP + ) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : + GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + holder.locationView.text = + String.format("管盯位置:${result?.regeocodeAddress?.formatAddress}") + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" } else { @@ -43,7 +71,7 @@ holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp holder.strengthDataView.text = rowsBean.strength - holder.installDateView.text = String.format("更新时间:${rowsBean.uptime}") + holder.installDateView.text = String.format("更新时间:${rowsBean.installDate}") if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt index dfd6b8d..f5c8889 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class GroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 388948e..07f1c2a 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -7,6 +7,11 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage import com.casic.smarttube.extensions.toTextColor @@ -17,6 +22,7 @@ private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { + private val geocoderSearch by lazy { GeocodeSearch(context) } private val layoutInflater: LayoutInflater = LayoutInflater.from(context) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { @@ -31,8 +37,30 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.deviceCode -// holder.wellNameView.text = String.format("位置:${rowsBean}") + holder.deviceCodeView.text = rowsBean.devcode + if (rowsBean.latGaode.isBlank() || rowsBean.lngGaode.isBlank()) { + holder.locationView.text = "经纬度异常,无法查看具体位置" + } else { + val queryParam = RegeocodeQuery( + LatLonPoint(rowsBean.latGaode.toDouble(), rowsBean.lngGaode.toDouble()), + 200f, + GeocodeSearch.AMAP + ) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : + GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + holder.locationView.text = + String.format("管盯位置:${result?.regeocodeAddress?.formatAddress}") + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" } else { @@ -43,7 +71,7 @@ holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp holder.strengthDataView.text = rowsBean.strength - holder.installDateView.text = String.format("更新时间:${rowsBean.uptime}") + holder.installDateView.text = String.format("更新时间:${rowsBean.installDate}") if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt index dfd6b8d..f5c8889 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class GroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt index d0b8760..f4e49bd 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class OverviewGroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 388948e..07f1c2a 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -7,6 +7,11 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage import com.casic.smarttube.extensions.toTextColor @@ -17,6 +22,7 @@ private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { + private val geocoderSearch by lazy { GeocodeSearch(context) } private val layoutInflater: LayoutInflater = LayoutInflater.from(context) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { @@ -31,8 +37,30 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.deviceCode -// holder.wellNameView.text = String.format("位置:${rowsBean}") + holder.deviceCodeView.text = rowsBean.devcode + if (rowsBean.latGaode.isBlank() || rowsBean.lngGaode.isBlank()) { + holder.locationView.text = "经纬度异常,无法查看具体位置" + } else { + val queryParam = RegeocodeQuery( + LatLonPoint(rowsBean.latGaode.toDouble(), rowsBean.lngGaode.toDouble()), + 200f, + GeocodeSearch.AMAP + ) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : + GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + holder.locationView.text = + String.format("管盯位置:${result?.regeocodeAddress?.formatAddress}") + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" } else { @@ -43,7 +71,7 @@ holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp holder.strengthDataView.text = rowsBean.strength - holder.installDateView.text = String.format("更新时间:${rowsBean.uptime}") + holder.installDateView.text = String.format("更新时间:${rowsBean.installDate}") if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt index dfd6b8d..f5c8889 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class GroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt index d0b8760..f4e49bd 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class OverviewGroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 3a1eaf1..81ed156 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -52,7 +52,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel private lateinit var groupListAdapter: GroupListAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false /** @@ -115,7 +115,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) - //默认数据 TODO http://111.198.10.15:11311/tube/groupdevice/list?wellGroupId=hallo 返回值需要加上组下面设备总数 + //默认数据 groupViewModel.obtainProGroupList() //地图初始化 @@ -157,7 +157,7 @@ } } val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 13f) } }) groupViewModel.groupModel.observe(this, { @@ -197,7 +197,13 @@ } //计算所有点的中心点位置 val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 16f) + } + }) + groupViewModel.loadState.observe(this, { state -> + when (state) { + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) return homeView @@ -223,12 +229,6 @@ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) homeView.homeRecyclerView!!.adapter = groupListAdapter - groupViewModel.loadState.observe(this, { state -> - when (state) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") - else -> dialogManager.dismissLoadingDialog() - } - }) groupListAdapter.setOnItemClickListener(object : GroupListAdapter.OnItemClickListener { override fun onClicked(position: Int) { @@ -264,9 +264,9 @@ } //移动到指定经纬度 - private fun moveToPosition(latLng: LatLng) { + private fun moveToPosition(latLng: LatLng, scale: Float) { //移动到指定经纬度 - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) + val cameraPosition = CameraPosition(latLng, scale, 0f, 0f) val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) aMap.animateCamera(cameraUpdate, 1500, null) } @@ -369,7 +369,7 @@ deviceCodeView.text = String.format("设备编号: ${device.devcode}") deviceModelView.text = String.format("设备模型: ${device.modelName}") //获取设备最新浓度信息 - deviceViewModel.obtainTubeLastData(device.devcode) + deviceViewModel.obtainTubeLastData(device.groupId, device.devcode) deviceViewModel.lastDataModel.observe(requireActivity(), { if (it.code == 200) { deviceValueView.text = String.format("最新浓度: ${it.data.strength}") diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 388948e..07f1c2a 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -7,6 +7,11 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage import com.casic.smarttube.extensions.toTextColor @@ -17,6 +22,7 @@ private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { + private val geocoderSearch by lazy { GeocodeSearch(context) } private val layoutInflater: LayoutInflater = LayoutInflater.from(context) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { @@ -31,8 +37,30 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.deviceCode -// holder.wellNameView.text = String.format("位置:${rowsBean}") + holder.deviceCodeView.text = rowsBean.devcode + if (rowsBean.latGaode.isBlank() || rowsBean.lngGaode.isBlank()) { + holder.locationView.text = "经纬度异常,无法查看具体位置" + } else { + val queryParam = RegeocodeQuery( + LatLonPoint(rowsBean.latGaode.toDouble(), rowsBean.lngGaode.toDouble()), + 200f, + GeocodeSearch.AMAP + ) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : + GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + holder.locationView.text = + String.format("管盯位置:${result?.regeocodeAddress?.formatAddress}") + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" } else { @@ -43,7 +71,7 @@ holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp holder.strengthDataView.text = rowsBean.strength - holder.installDateView.text = String.format("更新时间:${rowsBean.uptime}") + holder.installDateView.text = String.format("更新时间:${rowsBean.installDate}") if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt index dfd6b8d..f5c8889 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class GroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt index d0b8760..f4e49bd 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class OverviewGroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 3a1eaf1..81ed156 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -52,7 +52,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel private lateinit var groupListAdapter: GroupListAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false /** @@ -115,7 +115,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) - //默认数据 TODO http://111.198.10.15:11311/tube/groupdevice/list?wellGroupId=hallo 返回值需要加上组下面设备总数 + //默认数据 groupViewModel.obtainProGroupList() //地图初始化 @@ -157,7 +157,7 @@ } } val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 13f) } }) groupViewModel.groupModel.observe(this, { @@ -197,7 +197,13 @@ } //计算所有点的中心点位置 val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 16f) + } + }) + groupViewModel.loadState.observe(this, { state -> + when (state) { + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) return homeView @@ -223,12 +229,6 @@ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) homeView.homeRecyclerView!!.adapter = groupListAdapter - groupViewModel.loadState.observe(this, { state -> - when (state) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") - else -> dialogManager.dismissLoadingDialog() - } - }) groupListAdapter.setOnItemClickListener(object : GroupListAdapter.OnItemClickListener { override fun onClicked(position: Int) { @@ -264,9 +264,9 @@ } //移动到指定经纬度 - private fun moveToPosition(latLng: LatLng) { + private fun moveToPosition(latLng: LatLng, scale: Float) { //移动到指定经纬度 - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) + val cameraPosition = CameraPosition(latLng, scale, 0f, 0f) val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) aMap.animateCamera(cameraUpdate, 1500, null) } @@ -369,7 +369,7 @@ deviceCodeView.text = String.format("设备编号: ${device.devcode}") deviceModelView.text = String.format("设备模型: ${device.modelName}") //获取设备最新浓度信息 - deviceViewModel.obtainTubeLastData(device.devcode) + deviceViewModel.obtainTubeLastData(device.groupId, device.devcode) deviceViewModel.lastDataModel.observe(requireActivity(), { if (it.code == 200) { deviceValueView.text = String.format("最新浓度: ${it.data.strength}") diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java index 053cf17..7073dab 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -42,15 +42,29 @@ } public static class DataModel { + private String isUse; private String strength; - private String snr; - private String pci; + private String deptid; private String rsrp; - private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; + private String devcode; + private String lngGaode; + private String latGaode; + private String installDate; + private String snr; + private String pci; + private String wellName; + + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } public String getStrength() { return strength; @@ -60,20 +74,12 @@ this.strength = strength; } - public String getSnr() { - return snr; + public String getDeptid() { + return deptid; } - public void setSnr(String snr) { - this.snr = snr; - } - - public String getPci() { - return pci; - } - - public void setPci(String pci) { - this.pci = pci; + public void setDeptid(String deptid) { + this.deptid = deptid; } public String getRsrp() { @@ -84,14 +90,6 @@ this.rsrp = rsrp; } - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } - public String getCell() { return cell; } @@ -123,5 +121,61 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + + public String getSnr() { + return snr; + } + + public void setSnr(String snr) { + this.snr = snr; + } + + public String getPci() { + return pci; + } + + public void setPci(String pci) { + this.pci = pci; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } } } diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 388948e..07f1c2a 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -7,6 +7,11 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage import com.casic.smarttube.extensions.toTextColor @@ -17,6 +22,7 @@ private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { + private val geocoderSearch by lazy { GeocodeSearch(context) } private val layoutInflater: LayoutInflater = LayoutInflater.from(context) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { @@ -31,8 +37,30 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.deviceCode -// holder.wellNameView.text = String.format("位置:${rowsBean}") + holder.deviceCodeView.text = rowsBean.devcode + if (rowsBean.latGaode.isBlank() || rowsBean.lngGaode.isBlank()) { + holder.locationView.text = "经纬度异常,无法查看具体位置" + } else { + val queryParam = RegeocodeQuery( + LatLonPoint(rowsBean.latGaode.toDouble(), rowsBean.lngGaode.toDouble()), + 200f, + GeocodeSearch.AMAP + ) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : + GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + holder.locationView.text = + String.format("管盯位置:${result?.regeocodeAddress?.formatAddress}") + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" } else { @@ -43,7 +71,7 @@ holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp holder.strengthDataView.text = rowsBean.strength - holder.installDateView.text = String.format("更新时间:${rowsBean.uptime}") + holder.installDateView.text = String.format("更新时间:${rowsBean.installDate}") if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt index dfd6b8d..f5c8889 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class GroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt index d0b8760..f4e49bd 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class OverviewGroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 3a1eaf1..81ed156 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -52,7 +52,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel private lateinit var groupListAdapter: GroupListAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false /** @@ -115,7 +115,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) - //默认数据 TODO http://111.198.10.15:11311/tube/groupdevice/list?wellGroupId=hallo 返回值需要加上组下面设备总数 + //默认数据 groupViewModel.obtainProGroupList() //地图初始化 @@ -157,7 +157,7 @@ } } val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 13f) } }) groupViewModel.groupModel.observe(this, { @@ -197,7 +197,13 @@ } //计算所有点的中心点位置 val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 16f) + } + }) + groupViewModel.loadState.observe(this, { state -> + when (state) { + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) return homeView @@ -223,12 +229,6 @@ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) homeView.homeRecyclerView!!.adapter = groupListAdapter - groupViewModel.loadState.observe(this, { state -> - when (state) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") - else -> dialogManager.dismissLoadingDialog() - } - }) groupListAdapter.setOnItemClickListener(object : GroupListAdapter.OnItemClickListener { override fun onClicked(position: Int) { @@ -264,9 +264,9 @@ } //移动到指定经纬度 - private fun moveToPosition(latLng: LatLng) { + private fun moveToPosition(latLng: LatLng, scale: Float) { //移动到指定经纬度 - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) + val cameraPosition = CameraPosition(latLng, scale, 0f, 0f) val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) aMap.animateCamera(cameraUpdate, 1500, null) } @@ -369,7 +369,7 @@ deviceCodeView.text = String.format("设备编号: ${device.devcode}") deviceModelView.text = String.format("设备模型: ${device.modelName}") //获取设备最新浓度信息 - deviceViewModel.obtainTubeLastData(device.devcode) + deviceViewModel.obtainTubeLastData(device.groupId, device.devcode) deviceViewModel.lastDataModel.observe(requireActivity(), { if (it.code == 200) { deviceValueView.text = String.format("最新浓度: ${it.data.strength}") diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java index 053cf17..7073dab 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -42,15 +42,29 @@ } public static class DataModel { + private String isUse; private String strength; - private String snr; - private String pci; + private String deptid; private String rsrp; - private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; + private String devcode; + private String lngGaode; + private String latGaode; + private String installDate; + private String snr; + private String pci; + private String wellName; + + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } public String getStrength() { return strength; @@ -60,20 +74,12 @@ this.strength = strength; } - public String getSnr() { - return snr; + public String getDeptid() { + return deptid; } - public void setSnr(String snr) { - this.snr = snr; - } - - public String getPci() { - return pci; - } - - public void setPci(String pci) { - this.pci = pci; + public void setDeptid(String deptid) { + this.deptid = deptid; } public String getRsrp() { @@ -84,14 +90,6 @@ this.rsrp = rsrp; } - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } - public String getCell() { return cell; } @@ -123,5 +121,61 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + + public String getSnr() { + return snr; + } + + public void setSnr(String snr) { + this.snr = snr; + } + + public String getPci() { + return pci; + } + + public void setPci(String pci) { + this.pci = pci; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } } } diff --git a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java index e197690..abd8d76 100644 --- a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java +++ b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java @@ -5,7 +5,7 @@ public class ProjectGroupModel { private int code; - private List data; + private List data; private String message; private String success; @@ -17,11 +17,11 @@ this.code = code; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -41,11 +41,12 @@ this.success = success; } - public static class DataBean { + public static class DataModel { private String lngGaode; private String latGaode; private String installDate; private String wellCode; + private String deviceCount; private String groupId; private String deptid; private String wellId; @@ -82,6 +83,14 @@ this.wellCode = wellCode; } + public String getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(String deviceCount) { + this.deviceCount = deviceCount; + } + public String getGroupId() { return groupId; } diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 388948e..07f1c2a 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -7,6 +7,11 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage import com.casic.smarttube.extensions.toTextColor @@ -17,6 +22,7 @@ private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { + private val geocoderSearch by lazy { GeocodeSearch(context) } private val layoutInflater: LayoutInflater = LayoutInflater.from(context) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { @@ -31,8 +37,30 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.deviceCode -// holder.wellNameView.text = String.format("位置:${rowsBean}") + holder.deviceCodeView.text = rowsBean.devcode + if (rowsBean.latGaode.isBlank() || rowsBean.lngGaode.isBlank()) { + holder.locationView.text = "经纬度异常,无法查看具体位置" + } else { + val queryParam = RegeocodeQuery( + LatLonPoint(rowsBean.latGaode.toDouble(), rowsBean.lngGaode.toDouble()), + 200f, + GeocodeSearch.AMAP + ) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : + GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + holder.locationView.text = + String.format("管盯位置:${result?.regeocodeAddress?.formatAddress}") + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" } else { @@ -43,7 +71,7 @@ holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp holder.strengthDataView.text = rowsBean.strength - holder.installDateView.text = String.format("更新时间:${rowsBean.uptime}") + holder.installDateView.text = String.format("更新时间:${rowsBean.installDate}") if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt index dfd6b8d..f5c8889 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class GroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt index d0b8760..f4e49bd 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class OverviewGroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 3a1eaf1..81ed156 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -52,7 +52,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel private lateinit var groupListAdapter: GroupListAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false /** @@ -115,7 +115,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) - //默认数据 TODO http://111.198.10.15:11311/tube/groupdevice/list?wellGroupId=hallo 返回值需要加上组下面设备总数 + //默认数据 groupViewModel.obtainProGroupList() //地图初始化 @@ -157,7 +157,7 @@ } } val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 13f) } }) groupViewModel.groupModel.observe(this, { @@ -197,7 +197,13 @@ } //计算所有点的中心点位置 val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 16f) + } + }) + groupViewModel.loadState.observe(this, { state -> + when (state) { + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) return homeView @@ -223,12 +229,6 @@ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) homeView.homeRecyclerView!!.adapter = groupListAdapter - groupViewModel.loadState.observe(this, { state -> - when (state) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") - else -> dialogManager.dismissLoadingDialog() - } - }) groupListAdapter.setOnItemClickListener(object : GroupListAdapter.OnItemClickListener { override fun onClicked(position: Int) { @@ -264,9 +264,9 @@ } //移动到指定经纬度 - private fun moveToPosition(latLng: LatLng) { + private fun moveToPosition(latLng: LatLng, scale: Float) { //移动到指定经纬度 - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) + val cameraPosition = CameraPosition(latLng, scale, 0f, 0f) val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) aMap.animateCamera(cameraUpdate, 1500, null) } @@ -369,7 +369,7 @@ deviceCodeView.text = String.format("设备编号: ${device.devcode}") deviceModelView.text = String.format("设备模型: ${device.modelName}") //获取设备最新浓度信息 - deviceViewModel.obtainTubeLastData(device.devcode) + deviceViewModel.obtainTubeLastData(device.groupId, device.devcode) deviceViewModel.lastDataModel.observe(requireActivity(), { if (it.code == 200) { deviceValueView.text = String.format("最新浓度: ${it.data.strength}") diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java index 053cf17..7073dab 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -42,15 +42,29 @@ } public static class DataModel { + private String isUse; private String strength; - private String snr; - private String pci; + private String deptid; private String rsrp; - private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; + private String devcode; + private String lngGaode; + private String latGaode; + private String installDate; + private String snr; + private String pci; + private String wellName; + + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } public String getStrength() { return strength; @@ -60,20 +74,12 @@ this.strength = strength; } - public String getSnr() { - return snr; + public String getDeptid() { + return deptid; } - public void setSnr(String snr) { - this.snr = snr; - } - - public String getPci() { - return pci; - } - - public void setPci(String pci) { - this.pci = pci; + public void setDeptid(String deptid) { + this.deptid = deptid; } public String getRsrp() { @@ -84,14 +90,6 @@ this.rsrp = rsrp; } - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } - public String getCell() { return cell; } @@ -123,5 +121,61 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + + public String getSnr() { + return snr; + } + + public void setSnr(String snr) { + this.snr = snr; + } + + public String getPci() { + return pci; + } + + public void setPci(String pci) { + this.pci = pci; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } } } diff --git a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java index e197690..abd8d76 100644 --- a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java +++ b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java @@ -5,7 +5,7 @@ public class ProjectGroupModel { private int code; - private List data; + private List data; private String message; private String success; @@ -17,11 +17,11 @@ this.code = code; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -41,11 +41,12 @@ this.success = success; } - public static class DataBean { + public static class DataModel { private String lngGaode; private String latGaode; private String installDate; private String wellCode; + private String deviceCount; private String groupId; private String deptid; private String wellId; @@ -82,6 +83,14 @@ this.wellCode = wellCode; } + public String getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(String deviceCount) { + this.deviceCount = deviceCount; + } + public String getGroupId() { return groupId; } diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt index 8917d0c..29587e3 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt @@ -107,12 +107,14 @@ /** * 获取设备详情 * - * @param deviceCode 管盯设备编号 + * @param wellGroupId 组 + * @param devcode 管盯设备编号 */ - @GET("/tube/detail/{deviceCode}") + @GET("/tube/detail") suspend fun obtainDeviceDetail( @Header("token") token: String, - @Path("deviceCode") deviceCode: String + @Query("wellGroupId") wellGroupId: String, + @Query("devcode") devcode: String ): String /** @@ -165,6 +167,7 @@ @GET("/tube/groupdevice/history") suspend fun obtainDeviceHistoryData( @Header("token") token: String, + @Query("wellGroupId") wellGroupId: String, @Query("devcode") devcode: String?, @Query("beginTime") beginTime: String?, @Query("endTime") endTime: String? @@ -173,12 +176,13 @@ /** * 获取设备最新数据 * - * @param devcode 管盯设备编号 + * @param wellGroupId 管盯设备编号 */ - @GET("/tube/latestdata/{devcode}") + @GET("/tube/latestdata") suspend fun obtainTubeLastData( @Header("token") token: String, - @Path("devcode") devcode: String + @Query("wellGroupId") wellGroupId: String, + @Query("devcode") devcode: String ): String /** diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 388948e..07f1c2a 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -7,6 +7,11 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage import com.casic.smarttube.extensions.toTextColor @@ -17,6 +22,7 @@ private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { + private val geocoderSearch by lazy { GeocodeSearch(context) } private val layoutInflater: LayoutInflater = LayoutInflater.from(context) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { @@ -31,8 +37,30 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.deviceCode -// holder.wellNameView.text = String.format("位置:${rowsBean}") + holder.deviceCodeView.text = rowsBean.devcode + if (rowsBean.latGaode.isBlank() || rowsBean.lngGaode.isBlank()) { + holder.locationView.text = "经纬度异常,无法查看具体位置" + } else { + val queryParam = RegeocodeQuery( + LatLonPoint(rowsBean.latGaode.toDouble(), rowsBean.lngGaode.toDouble()), + 200f, + GeocodeSearch.AMAP + ) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : + GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + holder.locationView.text = + String.format("管盯位置:${result?.regeocodeAddress?.formatAddress}") + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" } else { @@ -43,7 +71,7 @@ holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp holder.strengthDataView.text = rowsBean.strength - holder.installDateView.text = String.format("更新时间:${rowsBean.uptime}") + holder.installDateView.text = String.format("更新时间:${rowsBean.installDate}") if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt index dfd6b8d..f5c8889 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class GroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt index d0b8760..f4e49bd 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class OverviewGroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 3a1eaf1..81ed156 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -52,7 +52,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel private lateinit var groupListAdapter: GroupListAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false /** @@ -115,7 +115,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) - //默认数据 TODO http://111.198.10.15:11311/tube/groupdevice/list?wellGroupId=hallo 返回值需要加上组下面设备总数 + //默认数据 groupViewModel.obtainProGroupList() //地图初始化 @@ -157,7 +157,7 @@ } } val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 13f) } }) groupViewModel.groupModel.observe(this, { @@ -197,7 +197,13 @@ } //计算所有点的中心点位置 val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 16f) + } + }) + groupViewModel.loadState.observe(this, { state -> + when (state) { + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) return homeView @@ -223,12 +229,6 @@ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) homeView.homeRecyclerView!!.adapter = groupListAdapter - groupViewModel.loadState.observe(this, { state -> - when (state) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") - else -> dialogManager.dismissLoadingDialog() - } - }) groupListAdapter.setOnItemClickListener(object : GroupListAdapter.OnItemClickListener { override fun onClicked(position: Int) { @@ -264,9 +264,9 @@ } //移动到指定经纬度 - private fun moveToPosition(latLng: LatLng) { + private fun moveToPosition(latLng: LatLng, scale: Float) { //移动到指定经纬度 - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) + val cameraPosition = CameraPosition(latLng, scale, 0f, 0f) val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) aMap.animateCamera(cameraUpdate, 1500, null) } @@ -369,7 +369,7 @@ deviceCodeView.text = String.format("设备编号: ${device.devcode}") deviceModelView.text = String.format("设备模型: ${device.modelName}") //获取设备最新浓度信息 - deviceViewModel.obtainTubeLastData(device.devcode) + deviceViewModel.obtainTubeLastData(device.groupId, device.devcode) deviceViewModel.lastDataModel.observe(requireActivity(), { if (it.code == 200) { deviceValueView.text = String.format("最新浓度: ${it.data.strength}") diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java index 053cf17..7073dab 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -42,15 +42,29 @@ } public static class DataModel { + private String isUse; private String strength; - private String snr; - private String pci; + private String deptid; private String rsrp; - private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; + private String devcode; + private String lngGaode; + private String latGaode; + private String installDate; + private String snr; + private String pci; + private String wellName; + + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } public String getStrength() { return strength; @@ -60,20 +74,12 @@ this.strength = strength; } - public String getSnr() { - return snr; + public String getDeptid() { + return deptid; } - public void setSnr(String snr) { - this.snr = snr; - } - - public String getPci() { - return pci; - } - - public void setPci(String pci) { - this.pci = pci; + public void setDeptid(String deptid) { + this.deptid = deptid; } public String getRsrp() { @@ -84,14 +90,6 @@ this.rsrp = rsrp; } - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } - public String getCell() { return cell; } @@ -123,5 +121,61 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + + public String getSnr() { + return snr; + } + + public void setSnr(String snr) { + this.snr = snr; + } + + public String getPci() { + return pci; + } + + public void setPci(String pci) { + this.pci = pci; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } } } diff --git a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java index e197690..abd8d76 100644 --- a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java +++ b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java @@ -5,7 +5,7 @@ public class ProjectGroupModel { private int code; - private List data; + private List data; private String message; private String success; @@ -17,11 +17,11 @@ this.code = code; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -41,11 +41,12 @@ this.success = success; } - public static class DataBean { + public static class DataModel { private String lngGaode; private String latGaode; private String installDate; private String wellCode; + private String deviceCount; private String groupId; private String deptid; private String wellId; @@ -82,6 +83,14 @@ this.wellCode = wellCode; } + public String getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(String deviceCount) { + this.deviceCount = deviceCount; + } + public String getGroupId() { return groupId; } diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt index 8917d0c..29587e3 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt @@ -107,12 +107,14 @@ /** * 获取设备详情 * - * @param deviceCode 管盯设备编号 + * @param wellGroupId 组 + * @param devcode 管盯设备编号 */ - @GET("/tube/detail/{deviceCode}") + @GET("/tube/detail") suspend fun obtainDeviceDetail( @Header("token") token: String, - @Path("deviceCode") deviceCode: String + @Query("wellGroupId") wellGroupId: String, + @Query("devcode") devcode: String ): String /** @@ -165,6 +167,7 @@ @GET("/tube/groupdevice/history") suspend fun obtainDeviceHistoryData( @Header("token") token: String, + @Query("wellGroupId") wellGroupId: String, @Query("devcode") devcode: String?, @Query("beginTime") beginTime: String?, @Query("endTime") endTime: String? @@ -173,12 +176,13 @@ /** * 获取设备最新数据 * - * @param devcode 管盯设备编号 + * @param wellGroupId 管盯设备编号 */ - @GET("/tube/latestdata/{devcode}") + @GET("/tube/latestdata") suspend fun obtainTubeLastData( @Header("token") token: String, - @Path("devcode") devcode: String + @Query("wellGroupId") wellGroupId: String, + @Query("devcode") devcode: String ): String /** diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt index 824e47b..6b60224 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt @@ -97,8 +97,8 @@ /** * 获取设备详情 */ - suspend fun obtainDeviceDetail(tubeId: String): String { - return api.obtainDeviceDetail(AuthenticationHelper.token!!, tubeId) + suspend fun obtainDeviceDetail(groupId: String, tubeId: String): String { + return api.obtainDeviceDetail(AuthenticationHelper.token!!, groupId, tubeId) } /** @@ -133,10 +133,10 @@ * 根据设备编号获取历史数据 */ suspend fun obtainDeviceHistoryData( - devcode: String, beginTime: String?, endTime: String? + groupId: String, devcode: String, beginTime: String?, endTime: String? ): String { return api.obtainDeviceHistoryData( - AuthenticationHelper.token!!, devcode, beginTime, endTime + AuthenticationHelper.token!!, groupId, devcode, beginTime, endTime ) } @@ -152,8 +152,8 @@ /** * 获取设备最新数据 */ - suspend fun obtainTubeLastData(devcode: String): String { - return api.obtainTubeLastData(AuthenticationHelper.token!!, devcode) + suspend fun obtainTubeLastData(groupId: String, devcode: String): String { + return api.obtainTubeLastData(AuthenticationHelper.token!!, groupId, devcode) } /** diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 388948e..07f1c2a 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -7,6 +7,11 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage import com.casic.smarttube.extensions.toTextColor @@ -17,6 +22,7 @@ private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { + private val geocoderSearch by lazy { GeocodeSearch(context) } private val layoutInflater: LayoutInflater = LayoutInflater.from(context) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { @@ -31,8 +37,30 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.deviceCode -// holder.wellNameView.text = String.format("位置:${rowsBean}") + holder.deviceCodeView.text = rowsBean.devcode + if (rowsBean.latGaode.isBlank() || rowsBean.lngGaode.isBlank()) { + holder.locationView.text = "经纬度异常,无法查看具体位置" + } else { + val queryParam = RegeocodeQuery( + LatLonPoint(rowsBean.latGaode.toDouble(), rowsBean.lngGaode.toDouble()), + 200f, + GeocodeSearch.AMAP + ) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : + GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + holder.locationView.text = + String.format("管盯位置:${result?.regeocodeAddress?.formatAddress}") + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" } else { @@ -43,7 +71,7 @@ holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp holder.strengthDataView.text = rowsBean.strength - holder.installDateView.text = String.format("更新时间:${rowsBean.uptime}") + holder.installDateView.text = String.format("更新时间:${rowsBean.installDate}") if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt index dfd6b8d..f5c8889 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class GroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt index d0b8760..f4e49bd 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class OverviewGroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 3a1eaf1..81ed156 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -52,7 +52,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel private lateinit var groupListAdapter: GroupListAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false /** @@ -115,7 +115,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) - //默认数据 TODO http://111.198.10.15:11311/tube/groupdevice/list?wellGroupId=hallo 返回值需要加上组下面设备总数 + //默认数据 groupViewModel.obtainProGroupList() //地图初始化 @@ -157,7 +157,7 @@ } } val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 13f) } }) groupViewModel.groupModel.observe(this, { @@ -197,7 +197,13 @@ } //计算所有点的中心点位置 val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 16f) + } + }) + groupViewModel.loadState.observe(this, { state -> + when (state) { + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) return homeView @@ -223,12 +229,6 @@ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) homeView.homeRecyclerView!!.adapter = groupListAdapter - groupViewModel.loadState.observe(this, { state -> - when (state) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") - else -> dialogManager.dismissLoadingDialog() - } - }) groupListAdapter.setOnItemClickListener(object : GroupListAdapter.OnItemClickListener { override fun onClicked(position: Int) { @@ -264,9 +264,9 @@ } //移动到指定经纬度 - private fun moveToPosition(latLng: LatLng) { + private fun moveToPosition(latLng: LatLng, scale: Float) { //移动到指定经纬度 - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) + val cameraPosition = CameraPosition(latLng, scale, 0f, 0f) val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) aMap.animateCamera(cameraUpdate, 1500, null) } @@ -369,7 +369,7 @@ deviceCodeView.text = String.format("设备编号: ${device.devcode}") deviceModelView.text = String.format("设备模型: ${device.modelName}") //获取设备最新浓度信息 - deviceViewModel.obtainTubeLastData(device.devcode) + deviceViewModel.obtainTubeLastData(device.groupId, device.devcode) deviceViewModel.lastDataModel.observe(requireActivity(), { if (it.code == 200) { deviceValueView.text = String.format("最新浓度: ${it.data.strength}") diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java index 053cf17..7073dab 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -42,15 +42,29 @@ } public static class DataModel { + private String isUse; private String strength; - private String snr; - private String pci; + private String deptid; private String rsrp; - private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; + private String devcode; + private String lngGaode; + private String latGaode; + private String installDate; + private String snr; + private String pci; + private String wellName; + + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } public String getStrength() { return strength; @@ -60,20 +74,12 @@ this.strength = strength; } - public String getSnr() { - return snr; + public String getDeptid() { + return deptid; } - public void setSnr(String snr) { - this.snr = snr; - } - - public String getPci() { - return pci; - } - - public void setPci(String pci) { - this.pci = pci; + public void setDeptid(String deptid) { + this.deptid = deptid; } public String getRsrp() { @@ -84,14 +90,6 @@ this.rsrp = rsrp; } - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } - public String getCell() { return cell; } @@ -123,5 +121,61 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + + public String getSnr() { + return snr; + } + + public void setSnr(String snr) { + this.snr = snr; + } + + public String getPci() { + return pci; + } + + public void setPci(String pci) { + this.pci = pci; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } } } diff --git a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java index e197690..abd8d76 100644 --- a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java +++ b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java @@ -5,7 +5,7 @@ public class ProjectGroupModel { private int code; - private List data; + private List data; private String message; private String success; @@ -17,11 +17,11 @@ this.code = code; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -41,11 +41,12 @@ this.success = success; } - public static class DataBean { + public static class DataModel { private String lngGaode; private String latGaode; private String installDate; private String wellCode; + private String deviceCount; private String groupId; private String deptid; private String wellId; @@ -82,6 +83,14 @@ this.wellCode = wellCode; } + public String getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(String deviceCount) { + this.deviceCount = deviceCount; + } + public String getGroupId() { return groupId; } diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt index 8917d0c..29587e3 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt @@ -107,12 +107,14 @@ /** * 获取设备详情 * - * @param deviceCode 管盯设备编号 + * @param wellGroupId 组 + * @param devcode 管盯设备编号 */ - @GET("/tube/detail/{deviceCode}") + @GET("/tube/detail") suspend fun obtainDeviceDetail( @Header("token") token: String, - @Path("deviceCode") deviceCode: String + @Query("wellGroupId") wellGroupId: String, + @Query("devcode") devcode: String ): String /** @@ -165,6 +167,7 @@ @GET("/tube/groupdevice/history") suspend fun obtainDeviceHistoryData( @Header("token") token: String, + @Query("wellGroupId") wellGroupId: String, @Query("devcode") devcode: String?, @Query("beginTime") beginTime: String?, @Query("endTime") endTime: String? @@ -173,12 +176,13 @@ /** * 获取设备最新数据 * - * @param devcode 管盯设备编号 + * @param wellGroupId 管盯设备编号 */ - @GET("/tube/latestdata/{devcode}") + @GET("/tube/latestdata") suspend fun obtainTubeLastData( @Header("token") token: String, - @Path("devcode") devcode: String + @Query("wellGroupId") wellGroupId: String, + @Query("devcode") devcode: String ): String /** diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt index 824e47b..6b60224 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt @@ -97,8 +97,8 @@ /** * 获取设备详情 */ - suspend fun obtainDeviceDetail(tubeId: String): String { - return api.obtainDeviceDetail(AuthenticationHelper.token!!, tubeId) + suspend fun obtainDeviceDetail(groupId: String, tubeId: String): String { + return api.obtainDeviceDetail(AuthenticationHelper.token!!, groupId, tubeId) } /** @@ -133,10 +133,10 @@ * 根据设备编号获取历史数据 */ suspend fun obtainDeviceHistoryData( - devcode: String, beginTime: String?, endTime: String? + groupId: String, devcode: String, beginTime: String?, endTime: String? ): String { return api.obtainDeviceHistoryData( - AuthenticationHelper.token!!, devcode, beginTime, endTime + AuthenticationHelper.token!!, groupId, devcode, beginTime, endTime ) } @@ -152,8 +152,8 @@ /** * 获取设备最新数据 */ - suspend fun obtainTubeLastData(devcode: String): String { - return api.obtainTubeLastData(AuthenticationHelper.token!!, devcode) + suspend fun obtainTubeLastData(groupId: String, devcode: String): String { + return api.obtainTubeLastData(AuthenticationHelper.token!!, groupId, devcode) } /** diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index 68078bb..988d02e 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -1,6 +1,5 @@ package com.casic.smarttube.view -import android.view.View import androidx.lifecycle.ViewModelProvider import com.amap.api.services.core.LatLonPoint import com.amap.api.services.geocoder.GeocodeResult @@ -11,11 +10,8 @@ import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.DeviceViewModel import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState @@ -38,10 +34,11 @@ } override fun initData() { - val tubeId = intent.getStringExtra(Constant.INTENT_PARAM)!! + val params = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) dialogManager = DialogManager.obtainInstance(this) - deviceViewModel.obtainDeviceDetail(tubeId) + deviceViewModel.obtainDeviceDetail(params[0], params[1]) deviceViewModel.deviceDetailModel.observe(this, { if (it.code == 200) { val device = it.data diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 388948e..07f1c2a 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -7,6 +7,11 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage import com.casic.smarttube.extensions.toTextColor @@ -17,6 +22,7 @@ private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { + private val geocoderSearch by lazy { GeocodeSearch(context) } private val layoutInflater: LayoutInflater = LayoutInflater.from(context) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { @@ -31,8 +37,30 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.deviceCode -// holder.wellNameView.text = String.format("位置:${rowsBean}") + holder.deviceCodeView.text = rowsBean.devcode + if (rowsBean.latGaode.isBlank() || rowsBean.lngGaode.isBlank()) { + holder.locationView.text = "经纬度异常,无法查看具体位置" + } else { + val queryParam = RegeocodeQuery( + LatLonPoint(rowsBean.latGaode.toDouble(), rowsBean.lngGaode.toDouble()), + 200f, + GeocodeSearch.AMAP + ) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : + GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + holder.locationView.text = + String.format("管盯位置:${result?.regeocodeAddress?.formatAddress}") + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" } else { @@ -43,7 +71,7 @@ holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp holder.strengthDataView.text = rowsBean.strength - holder.installDateView.text = String.format("更新时间:${rowsBean.uptime}") + holder.installDateView.text = String.format("更新时间:${rowsBean.installDate}") if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt index dfd6b8d..f5c8889 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class GroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt index d0b8760..f4e49bd 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class OverviewGroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 3a1eaf1..81ed156 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -52,7 +52,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel private lateinit var groupListAdapter: GroupListAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false /** @@ -115,7 +115,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) - //默认数据 TODO http://111.198.10.15:11311/tube/groupdevice/list?wellGroupId=hallo 返回值需要加上组下面设备总数 + //默认数据 groupViewModel.obtainProGroupList() //地图初始化 @@ -157,7 +157,7 @@ } } val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 13f) } }) groupViewModel.groupModel.observe(this, { @@ -197,7 +197,13 @@ } //计算所有点的中心点位置 val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 16f) + } + }) + groupViewModel.loadState.observe(this, { state -> + when (state) { + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) return homeView @@ -223,12 +229,6 @@ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) homeView.homeRecyclerView!!.adapter = groupListAdapter - groupViewModel.loadState.observe(this, { state -> - when (state) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") - else -> dialogManager.dismissLoadingDialog() - } - }) groupListAdapter.setOnItemClickListener(object : GroupListAdapter.OnItemClickListener { override fun onClicked(position: Int) { @@ -264,9 +264,9 @@ } //移动到指定经纬度 - private fun moveToPosition(latLng: LatLng) { + private fun moveToPosition(latLng: LatLng, scale: Float) { //移动到指定经纬度 - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) + val cameraPosition = CameraPosition(latLng, scale, 0f, 0f) val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) aMap.animateCamera(cameraUpdate, 1500, null) } @@ -369,7 +369,7 @@ deviceCodeView.text = String.format("设备编号: ${device.devcode}") deviceModelView.text = String.format("设备模型: ${device.modelName}") //获取设备最新浓度信息 - deviceViewModel.obtainTubeLastData(device.devcode) + deviceViewModel.obtainTubeLastData(device.groupId, device.devcode) deviceViewModel.lastDataModel.observe(requireActivity(), { if (it.code == 200) { deviceValueView.text = String.format("最新浓度: ${it.data.strength}") diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java index 053cf17..7073dab 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -42,15 +42,29 @@ } public static class DataModel { + private String isUse; private String strength; - private String snr; - private String pci; + private String deptid; private String rsrp; - private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; + private String devcode; + private String lngGaode; + private String latGaode; + private String installDate; + private String snr; + private String pci; + private String wellName; + + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } public String getStrength() { return strength; @@ -60,20 +74,12 @@ this.strength = strength; } - public String getSnr() { - return snr; + public String getDeptid() { + return deptid; } - public void setSnr(String snr) { - this.snr = snr; - } - - public String getPci() { - return pci; - } - - public void setPci(String pci) { - this.pci = pci; + public void setDeptid(String deptid) { + this.deptid = deptid; } public String getRsrp() { @@ -84,14 +90,6 @@ this.rsrp = rsrp; } - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } - public String getCell() { return cell; } @@ -123,5 +121,61 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + + public String getSnr() { + return snr; + } + + public void setSnr(String snr) { + this.snr = snr; + } + + public String getPci() { + return pci; + } + + public void setPci(String pci) { + this.pci = pci; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } } } diff --git a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java index e197690..abd8d76 100644 --- a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java +++ b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java @@ -5,7 +5,7 @@ public class ProjectGroupModel { private int code; - private List data; + private List data; private String message; private String success; @@ -17,11 +17,11 @@ this.code = code; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -41,11 +41,12 @@ this.success = success; } - public static class DataBean { + public static class DataModel { private String lngGaode; private String latGaode; private String installDate; private String wellCode; + private String deviceCount; private String groupId; private String deptid; private String wellId; @@ -82,6 +83,14 @@ this.wellCode = wellCode; } + public String getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(String deviceCount) { + this.deviceCount = deviceCount; + } + public String getGroupId() { return groupId; } diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt index 8917d0c..29587e3 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt @@ -107,12 +107,14 @@ /** * 获取设备详情 * - * @param deviceCode 管盯设备编号 + * @param wellGroupId 组 + * @param devcode 管盯设备编号 */ - @GET("/tube/detail/{deviceCode}") + @GET("/tube/detail") suspend fun obtainDeviceDetail( @Header("token") token: String, - @Path("deviceCode") deviceCode: String + @Query("wellGroupId") wellGroupId: String, + @Query("devcode") devcode: String ): String /** @@ -165,6 +167,7 @@ @GET("/tube/groupdevice/history") suspend fun obtainDeviceHistoryData( @Header("token") token: String, + @Query("wellGroupId") wellGroupId: String, @Query("devcode") devcode: String?, @Query("beginTime") beginTime: String?, @Query("endTime") endTime: String? @@ -173,12 +176,13 @@ /** * 获取设备最新数据 * - * @param devcode 管盯设备编号 + * @param wellGroupId 管盯设备编号 */ - @GET("/tube/latestdata/{devcode}") + @GET("/tube/latestdata") suspend fun obtainTubeLastData( @Header("token") token: String, - @Path("devcode") devcode: String + @Query("wellGroupId") wellGroupId: String, + @Query("devcode") devcode: String ): String /** diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt index 824e47b..6b60224 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt @@ -97,8 +97,8 @@ /** * 获取设备详情 */ - suspend fun obtainDeviceDetail(tubeId: String): String { - return api.obtainDeviceDetail(AuthenticationHelper.token!!, tubeId) + suspend fun obtainDeviceDetail(groupId: String, tubeId: String): String { + return api.obtainDeviceDetail(AuthenticationHelper.token!!, groupId, tubeId) } /** @@ -133,10 +133,10 @@ * 根据设备编号获取历史数据 */ suspend fun obtainDeviceHistoryData( - devcode: String, beginTime: String?, endTime: String? + groupId: String, devcode: String, beginTime: String?, endTime: String? ): String { return api.obtainDeviceHistoryData( - AuthenticationHelper.token!!, devcode, beginTime, endTime + AuthenticationHelper.token!!, groupId, devcode, beginTime, endTime ) } @@ -152,8 +152,8 @@ /** * 获取设备最新数据 */ - suspend fun obtainTubeLastData(devcode: String): String { - return api.obtainTubeLastData(AuthenticationHelper.token!!, devcode) + suspend fun obtainTubeLastData(groupId: String, devcode: String): String { + return api.obtainTubeLastData(AuthenticationHelper.token!!, groupId, devcode) } /** diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index 68078bb..988d02e 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -1,6 +1,5 @@ package com.casic.smarttube.view -import android.view.View import androidx.lifecycle.ViewModelProvider import com.amap.api.services.core.LatLonPoint import com.amap.api.services.geocoder.GeocodeResult @@ -11,11 +10,8 @@ import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.DeviceViewModel import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState @@ -38,10 +34,11 @@ } override fun initData() { - val tubeId = intent.getStringExtra(Constant.INTENT_PARAM)!! + val params = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) dialogManager = DialogManager.obtainInstance(this) - deviceViewModel.obtainDeviceDetail(tubeId) + deviceViewModel.obtainDeviceDetail(params[0], params[1]) deviceViewModel.deviceDetailModel.observe(this, { if (it.code == 200) { val device = it.data diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index 68a68d6..94de959 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -108,7 +108,6 @@ } private fun obtainDeviceListByPage() { - //TODO http://111.198.10.15:11311/tube/groupdevice/listpage?wellGroupId=203&order=0&offset=1&limit=20 新增经纬度字段 groupViewModel.obtainDeviceListByPage(groupId, order, pageIndex) } @@ -130,19 +129,23 @@ deviceAdapter.setOnItemClickListener(object : DeviceListAdapter.OnItemClickListener { override fun onClicked(position: Int) { - if (dataBeans[position].deviceCode.isNullOrBlank()) { + if (dataBeans[position].devcode.isNullOrBlank()) { "设备编号为空,无法查看设备详情".show(this@GroupDeviceActivity) return } - navigatePageTo(dataBeans[position].deviceCode) + navigatePageTo( + arrayListOf(groupId, dataBeans[position].devcode) + ) } override fun onHistoryClicked(position: Int) { - if (dataBeans[position].deviceCode.isNullOrBlank()) { + if (dataBeans[position].devcode.isNullOrBlank()) { "设备编号为空,无法查看历史数据".show(this@GroupDeviceActivity) return } - navigatePageTo(dataBeans[position].deviceCode) + navigatePageTo( + arrayListOf(groupId, dataBeans[position].devcode) + ) } }) } diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 388948e..07f1c2a 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -7,6 +7,11 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage import com.casic.smarttube.extensions.toTextColor @@ -17,6 +22,7 @@ private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { + private val geocoderSearch by lazy { GeocodeSearch(context) } private val layoutInflater: LayoutInflater = LayoutInflater.from(context) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { @@ -31,8 +37,30 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.deviceCode -// holder.wellNameView.text = String.format("位置:${rowsBean}") + holder.deviceCodeView.text = rowsBean.devcode + if (rowsBean.latGaode.isBlank() || rowsBean.lngGaode.isBlank()) { + holder.locationView.text = "经纬度异常,无法查看具体位置" + } else { + val queryParam = RegeocodeQuery( + LatLonPoint(rowsBean.latGaode.toDouble(), rowsBean.lngGaode.toDouble()), + 200f, + GeocodeSearch.AMAP + ) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : + GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + holder.locationView.text = + String.format("管盯位置:${result?.regeocodeAddress?.formatAddress}") + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" } else { @@ -43,7 +71,7 @@ holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp holder.strengthDataView.text = rowsBean.strength - holder.installDateView.text = String.format("更新时间:${rowsBean.uptime}") + holder.installDateView.text = String.format("更新时间:${rowsBean.installDate}") if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt index dfd6b8d..f5c8889 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class GroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt index d0b8760..f4e49bd 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class OverviewGroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 3a1eaf1..81ed156 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -52,7 +52,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel private lateinit var groupListAdapter: GroupListAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false /** @@ -115,7 +115,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) - //默认数据 TODO http://111.198.10.15:11311/tube/groupdevice/list?wellGroupId=hallo 返回值需要加上组下面设备总数 + //默认数据 groupViewModel.obtainProGroupList() //地图初始化 @@ -157,7 +157,7 @@ } } val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 13f) } }) groupViewModel.groupModel.observe(this, { @@ -197,7 +197,13 @@ } //计算所有点的中心点位置 val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 16f) + } + }) + groupViewModel.loadState.observe(this, { state -> + when (state) { + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) return homeView @@ -223,12 +229,6 @@ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) homeView.homeRecyclerView!!.adapter = groupListAdapter - groupViewModel.loadState.observe(this, { state -> - when (state) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") - else -> dialogManager.dismissLoadingDialog() - } - }) groupListAdapter.setOnItemClickListener(object : GroupListAdapter.OnItemClickListener { override fun onClicked(position: Int) { @@ -264,9 +264,9 @@ } //移动到指定经纬度 - private fun moveToPosition(latLng: LatLng) { + private fun moveToPosition(latLng: LatLng, scale: Float) { //移动到指定经纬度 - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) + val cameraPosition = CameraPosition(latLng, scale, 0f, 0f) val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) aMap.animateCamera(cameraUpdate, 1500, null) } @@ -369,7 +369,7 @@ deviceCodeView.text = String.format("设备编号: ${device.devcode}") deviceModelView.text = String.format("设备模型: ${device.modelName}") //获取设备最新浓度信息 - deviceViewModel.obtainTubeLastData(device.devcode) + deviceViewModel.obtainTubeLastData(device.groupId, device.devcode) deviceViewModel.lastDataModel.observe(requireActivity(), { if (it.code == 200) { deviceValueView.text = String.format("最新浓度: ${it.data.strength}") diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java index 053cf17..7073dab 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -42,15 +42,29 @@ } public static class DataModel { + private String isUse; private String strength; - private String snr; - private String pci; + private String deptid; private String rsrp; - private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; + private String devcode; + private String lngGaode; + private String latGaode; + private String installDate; + private String snr; + private String pci; + private String wellName; + + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } public String getStrength() { return strength; @@ -60,20 +74,12 @@ this.strength = strength; } - public String getSnr() { - return snr; + public String getDeptid() { + return deptid; } - public void setSnr(String snr) { - this.snr = snr; - } - - public String getPci() { - return pci; - } - - public void setPci(String pci) { - this.pci = pci; + public void setDeptid(String deptid) { + this.deptid = deptid; } public String getRsrp() { @@ -84,14 +90,6 @@ this.rsrp = rsrp; } - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } - public String getCell() { return cell; } @@ -123,5 +121,61 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + + public String getSnr() { + return snr; + } + + public void setSnr(String snr) { + this.snr = snr; + } + + public String getPci() { + return pci; + } + + public void setPci(String pci) { + this.pci = pci; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } } } diff --git a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java index e197690..abd8d76 100644 --- a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java +++ b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java @@ -5,7 +5,7 @@ public class ProjectGroupModel { private int code; - private List data; + private List data; private String message; private String success; @@ -17,11 +17,11 @@ this.code = code; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -41,11 +41,12 @@ this.success = success; } - public static class DataBean { + public static class DataModel { private String lngGaode; private String latGaode; private String installDate; private String wellCode; + private String deviceCount; private String groupId; private String deptid; private String wellId; @@ -82,6 +83,14 @@ this.wellCode = wellCode; } + public String getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(String deviceCount) { + this.deviceCount = deviceCount; + } + public String getGroupId() { return groupId; } diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt index 8917d0c..29587e3 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt @@ -107,12 +107,14 @@ /** * 获取设备详情 * - * @param deviceCode 管盯设备编号 + * @param wellGroupId 组 + * @param devcode 管盯设备编号 */ - @GET("/tube/detail/{deviceCode}") + @GET("/tube/detail") suspend fun obtainDeviceDetail( @Header("token") token: String, - @Path("deviceCode") deviceCode: String + @Query("wellGroupId") wellGroupId: String, + @Query("devcode") devcode: String ): String /** @@ -165,6 +167,7 @@ @GET("/tube/groupdevice/history") suspend fun obtainDeviceHistoryData( @Header("token") token: String, + @Query("wellGroupId") wellGroupId: String, @Query("devcode") devcode: String?, @Query("beginTime") beginTime: String?, @Query("endTime") endTime: String? @@ -173,12 +176,13 @@ /** * 获取设备最新数据 * - * @param devcode 管盯设备编号 + * @param wellGroupId 管盯设备编号 */ - @GET("/tube/latestdata/{devcode}") + @GET("/tube/latestdata") suspend fun obtainTubeLastData( @Header("token") token: String, - @Path("devcode") devcode: String + @Query("wellGroupId") wellGroupId: String, + @Query("devcode") devcode: String ): String /** diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt index 824e47b..6b60224 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt @@ -97,8 +97,8 @@ /** * 获取设备详情 */ - suspend fun obtainDeviceDetail(tubeId: String): String { - return api.obtainDeviceDetail(AuthenticationHelper.token!!, tubeId) + suspend fun obtainDeviceDetail(groupId: String, tubeId: String): String { + return api.obtainDeviceDetail(AuthenticationHelper.token!!, groupId, tubeId) } /** @@ -133,10 +133,10 @@ * 根据设备编号获取历史数据 */ suspend fun obtainDeviceHistoryData( - devcode: String, beginTime: String?, endTime: String? + groupId: String, devcode: String, beginTime: String?, endTime: String? ): String { return api.obtainDeviceHistoryData( - AuthenticationHelper.token!!, devcode, beginTime, endTime + AuthenticationHelper.token!!, groupId, devcode, beginTime, endTime ) } @@ -152,8 +152,8 @@ /** * 获取设备最新数据 */ - suspend fun obtainTubeLastData(devcode: String): String { - return api.obtainTubeLastData(AuthenticationHelper.token!!, devcode) + suspend fun obtainTubeLastData(groupId: String, devcode: String): String { + return api.obtainTubeLastData(AuthenticationHelper.token!!, groupId, devcode) } /** diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index 68078bb..988d02e 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -1,6 +1,5 @@ package com.casic.smarttube.view -import android.view.View import androidx.lifecycle.ViewModelProvider import com.amap.api.services.core.LatLonPoint import com.amap.api.services.geocoder.GeocodeResult @@ -11,11 +10,8 @@ import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.DeviceViewModel import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState @@ -38,10 +34,11 @@ } override fun initData() { - val tubeId = intent.getStringExtra(Constant.INTENT_PARAM)!! + val params = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) dialogManager = DialogManager.obtainInstance(this) - deviceViewModel.obtainDeviceDetail(tubeId) + deviceViewModel.obtainDeviceDetail(params[0], params[1]) deviceViewModel.deviceDetailModel.observe(this, { if (it.code == 200) { val device = it.data diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index 68a68d6..94de959 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -108,7 +108,6 @@ } private fun obtainDeviceListByPage() { - //TODO http://111.198.10.15:11311/tube/groupdevice/listpage?wellGroupId=203&order=0&offset=1&limit=20 新增经纬度字段 groupViewModel.obtainDeviceListByPage(groupId, order, pageIndex) } @@ -130,19 +129,23 @@ deviceAdapter.setOnItemClickListener(object : DeviceListAdapter.OnItemClickListener { override fun onClicked(position: Int) { - if (dataBeans[position].deviceCode.isNullOrBlank()) { + if (dataBeans[position].devcode.isNullOrBlank()) { "设备编号为空,无法查看设备详情".show(this@GroupDeviceActivity) return } - navigatePageTo(dataBeans[position].deviceCode) + navigatePageTo( + arrayListOf(groupId, dataBeans[position].devcode) + ) } override fun onHistoryClicked(position: Int) { - if (dataBeans[position].deviceCode.isNullOrBlank()) { + if (dataBeans[position].devcode.isNullOrBlank()) { "设备编号为空,无法查看历史数据".show(this@GroupDeviceActivity) return } - navigatePageTo(dataBeans[position].deviceCode) + navigatePageTo( + arrayListOf(groupId, dataBeans[position].devcode) + ) } }) } diff --git a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt index c7c4db0..7a6dc0e 100644 --- a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt @@ -24,6 +24,7 @@ private val kTag = "HistoryDataActivity" private lateinit var deviceViewModel: DeviceViewModel + private lateinit var groupId: String private lateinit var devCode: String override fun initLayoutView(): Int = R.layout.activity_history_data @@ -35,7 +36,10 @@ } override fun initData() { - devCode = intent.getStringExtra(Constant.INTENT_PARAM)!! + val params = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + groupId = params[0] + devCode = params[1] + deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) } @@ -54,7 +58,7 @@ 0 -> { //本年度 deviceViewModel.obtainDeviceHistoryData( - devCode, "$year-01-01", time.timestampToDate() + groupId, devCode, "$year-01-01", time.timestampToDate() ) } 1 -> { @@ -67,25 +71,28 @@ else -> "" } deviceViewModel.obtainDeviceHistoryData( - devCode, startDate, time.timestampToDate() + groupId, devCode, startDate, time.timestampToDate() ) } 2 -> { //近30日 deviceViewModel.obtainDeviceHistoryData( - devCode, time.timestampToLastMonthDate(), time.timestampToDate() + groupId, + devCode, + time.timestampToLastMonthDate(), + time.timestampToDate() ) } 3 -> { //近7日 deviceViewModel.obtainDeviceHistoryData( - devCode, time.timestampToLastWeekDate(), time.timestampToDate() + groupId, devCode, time.timestampToLastWeekDate(), time.timestampToDate() ) } 4 -> { //今日 deviceViewModel.obtainDeviceHistoryData( - devCode, time.timestampToDate(), time.timestampToDate() + groupId, devCode, time.timestampToDate(), time.timestampToDate() ) } 5 -> { @@ -98,7 +105,7 @@ DateSelectDialog.OnDialogButtonClickListener { override fun onConfirmClick(startDate: String, endDate: String) { deviceViewModel.obtainDeviceHistoryData( - devCode, startDate, endDate + groupId, devCode, startDate, endDate ) } diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 388948e..07f1c2a 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -7,6 +7,11 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage import com.casic.smarttube.extensions.toTextColor @@ -17,6 +22,7 @@ private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { + private val geocoderSearch by lazy { GeocodeSearch(context) } private val layoutInflater: LayoutInflater = LayoutInflater.from(context) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { @@ -31,8 +37,30 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.deviceCode -// holder.wellNameView.text = String.format("位置:${rowsBean}") + holder.deviceCodeView.text = rowsBean.devcode + if (rowsBean.latGaode.isBlank() || rowsBean.lngGaode.isBlank()) { + holder.locationView.text = "经纬度异常,无法查看具体位置" + } else { + val queryParam = RegeocodeQuery( + LatLonPoint(rowsBean.latGaode.toDouble(), rowsBean.lngGaode.toDouble()), + 200f, + GeocodeSearch.AMAP + ) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : + GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + holder.locationView.text = + String.format("管盯位置:${result?.regeocodeAddress?.formatAddress}") + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" } else { @@ -43,7 +71,7 @@ holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp holder.strengthDataView.text = rowsBean.strength - holder.installDateView.text = String.format("更新时间:${rowsBean.uptime}") + holder.installDateView.text = String.format("更新时间:${rowsBean.installDate}") if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt index dfd6b8d..f5c8889 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class GroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt index d0b8760..f4e49bd 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class OverviewGroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 3a1eaf1..81ed156 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -52,7 +52,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel private lateinit var groupListAdapter: GroupListAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false /** @@ -115,7 +115,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) - //默认数据 TODO http://111.198.10.15:11311/tube/groupdevice/list?wellGroupId=hallo 返回值需要加上组下面设备总数 + //默认数据 groupViewModel.obtainProGroupList() //地图初始化 @@ -157,7 +157,7 @@ } } val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 13f) } }) groupViewModel.groupModel.observe(this, { @@ -197,7 +197,13 @@ } //计算所有点的中心点位置 val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 16f) + } + }) + groupViewModel.loadState.observe(this, { state -> + when (state) { + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) return homeView @@ -223,12 +229,6 @@ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) homeView.homeRecyclerView!!.adapter = groupListAdapter - groupViewModel.loadState.observe(this, { state -> - when (state) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") - else -> dialogManager.dismissLoadingDialog() - } - }) groupListAdapter.setOnItemClickListener(object : GroupListAdapter.OnItemClickListener { override fun onClicked(position: Int) { @@ -264,9 +264,9 @@ } //移动到指定经纬度 - private fun moveToPosition(latLng: LatLng) { + private fun moveToPosition(latLng: LatLng, scale: Float) { //移动到指定经纬度 - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) + val cameraPosition = CameraPosition(latLng, scale, 0f, 0f) val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) aMap.animateCamera(cameraUpdate, 1500, null) } @@ -369,7 +369,7 @@ deviceCodeView.text = String.format("设备编号: ${device.devcode}") deviceModelView.text = String.format("设备模型: ${device.modelName}") //获取设备最新浓度信息 - deviceViewModel.obtainTubeLastData(device.devcode) + deviceViewModel.obtainTubeLastData(device.groupId, device.devcode) deviceViewModel.lastDataModel.observe(requireActivity(), { if (it.code == 200) { deviceValueView.text = String.format("最新浓度: ${it.data.strength}") diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java index 053cf17..7073dab 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -42,15 +42,29 @@ } public static class DataModel { + private String isUse; private String strength; - private String snr; - private String pci; + private String deptid; private String rsrp; - private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; + private String devcode; + private String lngGaode; + private String latGaode; + private String installDate; + private String snr; + private String pci; + private String wellName; + + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } public String getStrength() { return strength; @@ -60,20 +74,12 @@ this.strength = strength; } - public String getSnr() { - return snr; + public String getDeptid() { + return deptid; } - public void setSnr(String snr) { - this.snr = snr; - } - - public String getPci() { - return pci; - } - - public void setPci(String pci) { - this.pci = pci; + public void setDeptid(String deptid) { + this.deptid = deptid; } public String getRsrp() { @@ -84,14 +90,6 @@ this.rsrp = rsrp; } - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } - public String getCell() { return cell; } @@ -123,5 +121,61 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + + public String getSnr() { + return snr; + } + + public void setSnr(String snr) { + this.snr = snr; + } + + public String getPci() { + return pci; + } + + public void setPci(String pci) { + this.pci = pci; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } } } diff --git a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java index e197690..abd8d76 100644 --- a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java +++ b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java @@ -5,7 +5,7 @@ public class ProjectGroupModel { private int code; - private List data; + private List data; private String message; private String success; @@ -17,11 +17,11 @@ this.code = code; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -41,11 +41,12 @@ this.success = success; } - public static class DataBean { + public static class DataModel { private String lngGaode; private String latGaode; private String installDate; private String wellCode; + private String deviceCount; private String groupId; private String deptid; private String wellId; @@ -82,6 +83,14 @@ this.wellCode = wellCode; } + public String getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(String deviceCount) { + this.deviceCount = deviceCount; + } + public String getGroupId() { return groupId; } diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt index 8917d0c..29587e3 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt @@ -107,12 +107,14 @@ /** * 获取设备详情 * - * @param deviceCode 管盯设备编号 + * @param wellGroupId 组 + * @param devcode 管盯设备编号 */ - @GET("/tube/detail/{deviceCode}") + @GET("/tube/detail") suspend fun obtainDeviceDetail( @Header("token") token: String, - @Path("deviceCode") deviceCode: String + @Query("wellGroupId") wellGroupId: String, + @Query("devcode") devcode: String ): String /** @@ -165,6 +167,7 @@ @GET("/tube/groupdevice/history") suspend fun obtainDeviceHistoryData( @Header("token") token: String, + @Query("wellGroupId") wellGroupId: String, @Query("devcode") devcode: String?, @Query("beginTime") beginTime: String?, @Query("endTime") endTime: String? @@ -173,12 +176,13 @@ /** * 获取设备最新数据 * - * @param devcode 管盯设备编号 + * @param wellGroupId 管盯设备编号 */ - @GET("/tube/latestdata/{devcode}") + @GET("/tube/latestdata") suspend fun obtainTubeLastData( @Header("token") token: String, - @Path("devcode") devcode: String + @Query("wellGroupId") wellGroupId: String, + @Query("devcode") devcode: String ): String /** diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt index 824e47b..6b60224 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt @@ -97,8 +97,8 @@ /** * 获取设备详情 */ - suspend fun obtainDeviceDetail(tubeId: String): String { - return api.obtainDeviceDetail(AuthenticationHelper.token!!, tubeId) + suspend fun obtainDeviceDetail(groupId: String, tubeId: String): String { + return api.obtainDeviceDetail(AuthenticationHelper.token!!, groupId, tubeId) } /** @@ -133,10 +133,10 @@ * 根据设备编号获取历史数据 */ suspend fun obtainDeviceHistoryData( - devcode: String, beginTime: String?, endTime: String? + groupId: String, devcode: String, beginTime: String?, endTime: String? ): String { return api.obtainDeviceHistoryData( - AuthenticationHelper.token!!, devcode, beginTime, endTime + AuthenticationHelper.token!!, groupId, devcode, beginTime, endTime ) } @@ -152,8 +152,8 @@ /** * 获取设备最新数据 */ - suspend fun obtainTubeLastData(devcode: String): String { - return api.obtainTubeLastData(AuthenticationHelper.token!!, devcode) + suspend fun obtainTubeLastData(groupId: String, devcode: String): String { + return api.obtainTubeLastData(AuthenticationHelper.token!!, groupId, devcode) } /** diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index 68078bb..988d02e 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -1,6 +1,5 @@ package com.casic.smarttube.view -import android.view.View import androidx.lifecycle.ViewModelProvider import com.amap.api.services.core.LatLonPoint import com.amap.api.services.geocoder.GeocodeResult @@ -11,11 +10,8 @@ import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.DeviceViewModel import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState @@ -38,10 +34,11 @@ } override fun initData() { - val tubeId = intent.getStringExtra(Constant.INTENT_PARAM)!! + val params = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) dialogManager = DialogManager.obtainInstance(this) - deviceViewModel.obtainDeviceDetail(tubeId) + deviceViewModel.obtainDeviceDetail(params[0], params[1]) deviceViewModel.deviceDetailModel.observe(this, { if (it.code == 200) { val device = it.data diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index 68a68d6..94de959 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -108,7 +108,6 @@ } private fun obtainDeviceListByPage() { - //TODO http://111.198.10.15:11311/tube/groupdevice/listpage?wellGroupId=203&order=0&offset=1&limit=20 新增经纬度字段 groupViewModel.obtainDeviceListByPage(groupId, order, pageIndex) } @@ -130,19 +129,23 @@ deviceAdapter.setOnItemClickListener(object : DeviceListAdapter.OnItemClickListener { override fun onClicked(position: Int) { - if (dataBeans[position].deviceCode.isNullOrBlank()) { + if (dataBeans[position].devcode.isNullOrBlank()) { "设备编号为空,无法查看设备详情".show(this@GroupDeviceActivity) return } - navigatePageTo(dataBeans[position].deviceCode) + navigatePageTo( + arrayListOf(groupId, dataBeans[position].devcode) + ) } override fun onHistoryClicked(position: Int) { - if (dataBeans[position].deviceCode.isNullOrBlank()) { + if (dataBeans[position].devcode.isNullOrBlank()) { "设备编号为空,无法查看历史数据".show(this@GroupDeviceActivity) return } - navigatePageTo(dataBeans[position].deviceCode) + navigatePageTo( + arrayListOf(groupId, dataBeans[position].devcode) + ) } }) } diff --git a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt index c7c4db0..7a6dc0e 100644 --- a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt @@ -24,6 +24,7 @@ private val kTag = "HistoryDataActivity" private lateinit var deviceViewModel: DeviceViewModel + private lateinit var groupId: String private lateinit var devCode: String override fun initLayoutView(): Int = R.layout.activity_history_data @@ -35,7 +36,10 @@ } override fun initData() { - devCode = intent.getStringExtra(Constant.INTENT_PARAM)!! + val params = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + groupId = params[0] + devCode = params[1] + deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) } @@ -54,7 +58,7 @@ 0 -> { //本年度 deviceViewModel.obtainDeviceHistoryData( - devCode, "$year-01-01", time.timestampToDate() + groupId, devCode, "$year-01-01", time.timestampToDate() ) } 1 -> { @@ -67,25 +71,28 @@ else -> "" } deviceViewModel.obtainDeviceHistoryData( - devCode, startDate, time.timestampToDate() + groupId, devCode, startDate, time.timestampToDate() ) } 2 -> { //近30日 deviceViewModel.obtainDeviceHistoryData( - devCode, time.timestampToLastMonthDate(), time.timestampToDate() + groupId, + devCode, + time.timestampToLastMonthDate(), + time.timestampToDate() ) } 3 -> { //近7日 deviceViewModel.obtainDeviceHistoryData( - devCode, time.timestampToLastWeekDate(), time.timestampToDate() + groupId, devCode, time.timestampToLastWeekDate(), time.timestampToDate() ) } 4 -> { //今日 deviceViewModel.obtainDeviceHistoryData( - devCode, time.timestampToDate(), time.timestampToDate() + groupId, devCode, time.timestampToDate(), time.timestampToDate() ) } 5 -> { @@ -98,7 +105,7 @@ DateSelectDialog.OnDialogButtonClickListener { override fun onConfirmClick(startDate: String, endDate: String) { deviceViewModel.obtainDeviceHistoryData( - devCode, startDate, endDate + groupId, devCode, startDate, endDate ) } diff --git a/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt b/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt index fbb6e55..e3d4c62 100644 --- a/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt +++ b/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt @@ -38,9 +38,9 @@ it.printStackTrace() }) - fun obtainDeviceDetail(tubeId: String) = launch({ + fun obtainDeviceDetail(groupId: String, tubeId: String) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.obtainDeviceDetail(tubeId) + val response = RetrofitServiceManager.obtainDeviceDetail(groupId, tubeId) val responseCode = response.separateResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success @@ -55,8 +55,14 @@ it.printStackTrace() }) - fun obtainDeviceHistoryData(devcode: String, beginTime: String?, endTime: String?) = launch({ - val response = RetrofitServiceManager.obtainDeviceHistoryData(devcode, beginTime, endTime) + fun obtainDeviceHistoryData( + groupId: String, + devcode: String, + beginTime: String?, + endTime: String? + ) = launch({ + val response = + RetrofitServiceManager.obtainDeviceHistoryData(groupId, devcode, beginTime, endTime) val responseCode = response.separateResponseCode() if (responseCode == 200) { historyDataModel.value = gson.fromJson( @@ -69,8 +75,8 @@ it.printStackTrace() }) - fun obtainTubeLastData(devcode: String) = launch({ - val response = RetrofitServiceManager.obtainTubeLastData(devcode) + fun obtainTubeLastData(groupId: String, devcode: String) = launch({ + val response = RetrofitServiceManager.obtainTubeLastData(groupId, devcode) when (response.separateResponseCode()) { 200 -> { lastDataModel.value = gson.fromJson( diff --git a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt index 388948e..07f1c2a 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/DeviceListAdapter.kt @@ -7,6 +7,11 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.amap.api.services.core.LatLonPoint +import com.amap.api.services.geocoder.GeocodeResult +import com.amap.api.services.geocoder.GeocodeSearch +import com.amap.api.services.geocoder.RegeocodeQuery +import com.amap.api.services.geocoder.RegeocodeResult import com.casic.smarttube.R import com.casic.smarttube.extensions.toBatteryImage import com.casic.smarttube.extensions.toTextColor @@ -17,6 +22,7 @@ private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { + private val geocoderSearch by lazy { GeocodeSearch(context) } private val layoutInflater: LayoutInflater = LayoutInflater.from(context) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { @@ -31,8 +37,30 @@ //绑定数据 val rowsBean = dataRows[position] holder.batteryView.setBackgroundResource(rowsBean.cell.toBatteryImage()) - holder.deviceCodeView.text = rowsBean.deviceCode -// holder.wellNameView.text = String.format("位置:${rowsBean}") + holder.deviceCodeView.text = rowsBean.devcode + if (rowsBean.latGaode.isBlank() || rowsBean.lngGaode.isBlank()) { + holder.locationView.text = "经纬度异常,无法查看具体位置" + } else { + val queryParam = RegeocodeQuery( + LatLonPoint(rowsBean.latGaode.toDouble(), rowsBean.lngGaode.toDouble()), + 200f, + GeocodeSearch.AMAP + ) + geocoderSearch.getFromLocationAsyn(queryParam) + geocoderSearch.setOnGeocodeSearchListener(object : + GeocodeSearch.OnGeocodeSearchListener { + override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) { + if (rCode == 1000) { + holder.locationView.text = + String.format("管盯位置:${result?.regeocodeAddress?.formatAddress}") + } + } + + override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) { + + } + }) + } holder.batteryDataView.text = if (rowsBean.cell.isNullOrBlank()) { "0%" } else { @@ -43,7 +71,7 @@ holder.pciDataView.text = rowsBean.pci holder.rsrpDataView.text = rowsBean.rsrp holder.strengthDataView.text = rowsBean.strength - holder.installDateView.text = String.format("更新时间:${rowsBean.uptime}") + holder.installDateView.text = String.format("更新时间:${rowsBean.installDate}") if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt index dfd6b8d..f5c8889 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/GroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class GroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt index d0b8760..f4e49bd 100644 --- a/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt +++ b/app/src/main/java/com/casic/smarttube/adapter/OverviewGroupListAdapter.kt @@ -15,7 +15,7 @@ import com.casic.smarttube.model.ProjectGroupModel class OverviewGroupListAdapter( - context: Context, private val dataRows: MutableList + context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private val geocoderSearch by lazy { GeocodeSearch(context) } @@ -57,7 +57,7 @@ } }) } - holder.deviceNumView.text = String.format("管理设备数:${5}") + holder.deviceNumView.text = String.format("管理设备数:${rowsBean.deviceCount}") //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 3a1eaf1..81ed156 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -52,7 +52,7 @@ private lateinit var deviceViewModel: DeviceViewModel private lateinit var groupViewModel: ProjectGroupViewModel private lateinit var groupListAdapter: GroupListAdapter - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() private var isRefresh = false /** @@ -115,7 +115,7 @@ deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) groupViewModel = ViewModelProvider(this).get(ProjectGroupViewModel::class.java) - //默认数据 TODO http://111.198.10.15:11311/tube/groupdevice/list?wellGroupId=hallo 返回值需要加上组下面设备总数 + //默认数据 groupViewModel.obtainProGroupList() //地图初始化 @@ -157,7 +157,7 @@ } } val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 13f) } }) groupViewModel.groupModel.observe(this, { @@ -197,7 +197,13 @@ } //计算所有点的中心点位置 val centerLatLng = LatLng(latitudeList[0], longitudeList[0]) - moveToPosition(centerLatLng) + moveToPosition(centerLatLng, 16f) + } + }) + groupViewModel.loadState.observe(this, { state -> + when (state) { + LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") + else -> dialogManager.dismissLoadingDialog() } }) return homeView @@ -223,12 +229,6 @@ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) ) homeView.homeRecyclerView!!.adapter = groupListAdapter - groupViewModel.loadState.observe(this, { state -> - when (state) { - LoadState.Loading -> dialogManager.showLoadingDialog("数据加载中...") - else -> dialogManager.dismissLoadingDialog() - } - }) groupListAdapter.setOnItemClickListener(object : GroupListAdapter.OnItemClickListener { override fun onClicked(position: Int) { @@ -264,9 +264,9 @@ } //移动到指定经纬度 - private fun moveToPosition(latLng: LatLng) { + private fun moveToPosition(latLng: LatLng, scale: Float) { //移动到指定经纬度 - val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f) + val cameraPosition = CameraPosition(latLng, scale, 0f, 0f) val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) aMap.animateCamera(cameraUpdate, 1500, null) } @@ -369,7 +369,7 @@ deviceCodeView.text = String.format("设备编号: ${device.devcode}") deviceModelView.text = String.format("设备模型: ${device.modelName}") //获取设备最新浓度信息 - deviceViewModel.obtainTubeLastData(device.devcode) + deviceViewModel.obtainTubeLastData(device.groupId, device.devcode) deviceViewModel.lastDataModel.observe(requireActivity(), { if (it.code == 200) { deviceValueView.text = String.format("最新浓度: ${it.data.strength}") diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java index 053cf17..7073dab 100644 --- a/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java +++ b/app/src/main/java/com/casic/smarttube/model/DeviceListModel.java @@ -42,15 +42,29 @@ } public static class DataModel { + private String isUse; private String strength; - private String snr; - private String pci; + private String deptid; private String rsrp; - private String deviceCode; private String cell; private String deviceName; private String uptime; private String tubeId; + private String devcode; + private String lngGaode; + private String latGaode; + private String installDate; + private String snr; + private String pci; + private String wellName; + + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } public String getStrength() { return strength; @@ -60,20 +74,12 @@ this.strength = strength; } - public String getSnr() { - return snr; + public String getDeptid() { + return deptid; } - public void setSnr(String snr) { - this.snr = snr; - } - - public String getPci() { - return pci; - } - - public void setPci(String pci) { - this.pci = pci; + public void setDeptid(String deptid) { + this.deptid = deptid; } public String getRsrp() { @@ -84,14 +90,6 @@ this.rsrp = rsrp; } - public String getDeviceCode() { - return deviceCode; - } - - public void setDeviceCode(String deviceCode) { - this.deviceCode = deviceCode; - } - public String getCell() { return cell; } @@ -123,5 +121,61 @@ public void setTubeId(String tubeId) { this.tubeId = tubeId; } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getInstallDate() { + return installDate; + } + + public void setInstallDate(String installDate) { + this.installDate = installDate; + } + + public String getSnr() { + return snr; + } + + public void setSnr(String snr) { + this.snr = snr; + } + + public String getPci() { + return pci; + } + + public void setPci(String pci) { + this.pci = pci; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } } } diff --git a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java index e197690..abd8d76 100644 --- a/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java +++ b/app/src/main/java/com/casic/smarttube/model/ProjectGroupModel.java @@ -5,7 +5,7 @@ public class ProjectGroupModel { private int code; - private List data; + private List data; private String message; private String success; @@ -17,11 +17,11 @@ this.code = code; } - public List getData() { + public List getData() { return data; } - public void setData(List data) { + public void setData(List data) { this.data = data; } @@ -41,11 +41,12 @@ this.success = success; } - public static class DataBean { + public static class DataModel { private String lngGaode; private String latGaode; private String installDate; private String wellCode; + private String deviceCount; private String groupId; private String deptid; private String wellId; @@ -82,6 +83,14 @@ this.wellCode = wellCode; } + public String getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(String deviceCount) { + this.deviceCount = deviceCount; + } + public String getGroupId() { return groupId; } diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt index 8917d0c..29587e3 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt @@ -107,12 +107,14 @@ /** * 获取设备详情 * - * @param deviceCode 管盯设备编号 + * @param wellGroupId 组 + * @param devcode 管盯设备编号 */ - @GET("/tube/detail/{deviceCode}") + @GET("/tube/detail") suspend fun obtainDeviceDetail( @Header("token") token: String, - @Path("deviceCode") deviceCode: String + @Query("wellGroupId") wellGroupId: String, + @Query("devcode") devcode: String ): String /** @@ -165,6 +167,7 @@ @GET("/tube/groupdevice/history") suspend fun obtainDeviceHistoryData( @Header("token") token: String, + @Query("wellGroupId") wellGroupId: String, @Query("devcode") devcode: String?, @Query("beginTime") beginTime: String?, @Query("endTime") endTime: String? @@ -173,12 +176,13 @@ /** * 获取设备最新数据 * - * @param devcode 管盯设备编号 + * @param wellGroupId 管盯设备编号 */ - @GET("/tube/latestdata/{devcode}") + @GET("/tube/latestdata") suspend fun obtainTubeLastData( @Header("token") token: String, - @Path("devcode") devcode: String + @Query("wellGroupId") wellGroupId: String, + @Query("devcode") devcode: String ): String /** diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt index 824e47b..6b60224 100644 --- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt @@ -97,8 +97,8 @@ /** * 获取设备详情 */ - suspend fun obtainDeviceDetail(tubeId: String): String { - return api.obtainDeviceDetail(AuthenticationHelper.token!!, tubeId) + suspend fun obtainDeviceDetail(groupId: String, tubeId: String): String { + return api.obtainDeviceDetail(AuthenticationHelper.token!!, groupId, tubeId) } /** @@ -133,10 +133,10 @@ * 根据设备编号获取历史数据 */ suspend fun obtainDeviceHistoryData( - devcode: String, beginTime: String?, endTime: String? + groupId: String, devcode: String, beginTime: String?, endTime: String? ): String { return api.obtainDeviceHistoryData( - AuthenticationHelper.token!!, devcode, beginTime, endTime + AuthenticationHelper.token!!, groupId, devcode, beginTime, endTime ) } @@ -152,8 +152,8 @@ /** * 获取设备最新数据 */ - suspend fun obtainTubeLastData(devcode: String): String { - return api.obtainTubeLastData(AuthenticationHelper.token!!, devcode) + suspend fun obtainTubeLastData(groupId: String, devcode: String): String { + return api.obtainTubeLastData(AuthenticationHelper.token!!, groupId, devcode) } /** diff --git a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt index 68078bb..988d02e 100644 --- a/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/DeviceDetailActivity.kt @@ -1,6 +1,5 @@ package com.casic.smarttube.view -import android.view.View import androidx.lifecycle.ViewModelProvider import com.amap.api.services.core.LatLonPoint import com.amap.api.services.geocoder.GeocodeResult @@ -11,11 +10,8 @@ import com.casic.smarttube.utils.DialogManager import com.casic.smarttube.vm.DeviceViewModel import com.gyf.immersionbar.ImmersionBar -import com.pengxh.kt.lite.adapter.ReadOnlyImageAdapter import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor -import com.pengxh.kt.lite.extensions.navigatePageTo -import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.Constant import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil import com.pengxh.kt.lite.vm.LoadState @@ -38,10 +34,11 @@ } override fun initData() { - val tubeId = intent.getStringExtra(Constant.INTENT_PARAM)!! + val params = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) dialogManager = DialogManager.obtainInstance(this) - deviceViewModel.obtainDeviceDetail(tubeId) + deviceViewModel.obtainDeviceDetail(params[0], params[1]) deviceViewModel.deviceDetailModel.observe(this, { if (it.code == 200) { val device = it.data diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt index 68a68d6..94de959 100644 --- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt @@ -108,7 +108,6 @@ } private fun obtainDeviceListByPage() { - //TODO http://111.198.10.15:11311/tube/groupdevice/listpage?wellGroupId=203&order=0&offset=1&limit=20 新增经纬度字段 groupViewModel.obtainDeviceListByPage(groupId, order, pageIndex) } @@ -130,19 +129,23 @@ deviceAdapter.setOnItemClickListener(object : DeviceListAdapter.OnItemClickListener { override fun onClicked(position: Int) { - if (dataBeans[position].deviceCode.isNullOrBlank()) { + if (dataBeans[position].devcode.isNullOrBlank()) { "设备编号为空,无法查看设备详情".show(this@GroupDeviceActivity) return } - navigatePageTo(dataBeans[position].deviceCode) + navigatePageTo( + arrayListOf(groupId, dataBeans[position].devcode) + ) } override fun onHistoryClicked(position: Int) { - if (dataBeans[position].deviceCode.isNullOrBlank()) { + if (dataBeans[position].devcode.isNullOrBlank()) { "设备编号为空,无法查看历史数据".show(this@GroupDeviceActivity) return } - navigatePageTo(dataBeans[position].deviceCode) + navigatePageTo( + arrayListOf(groupId, dataBeans[position].devcode) + ) } }) } diff --git a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt index c7c4db0..7a6dc0e 100644 --- a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt +++ b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt @@ -24,6 +24,7 @@ private val kTag = "HistoryDataActivity" private lateinit var deviceViewModel: DeviceViewModel + private lateinit var groupId: String private lateinit var devCode: String override fun initLayoutView(): Int = R.layout.activity_history_data @@ -35,7 +36,10 @@ } override fun initData() { - devCode = intent.getStringExtra(Constant.INTENT_PARAM)!! + val params = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! + groupId = params[0] + devCode = params[1] + deviceViewModel = ViewModelProvider(this).get(DeviceViewModel::class.java) } @@ -54,7 +58,7 @@ 0 -> { //本年度 deviceViewModel.obtainDeviceHistoryData( - devCode, "$year-01-01", time.timestampToDate() + groupId, devCode, "$year-01-01", time.timestampToDate() ) } 1 -> { @@ -67,25 +71,28 @@ else -> "" } deviceViewModel.obtainDeviceHistoryData( - devCode, startDate, time.timestampToDate() + groupId, devCode, startDate, time.timestampToDate() ) } 2 -> { //近30日 deviceViewModel.obtainDeviceHistoryData( - devCode, time.timestampToLastMonthDate(), time.timestampToDate() + groupId, + devCode, + time.timestampToLastMonthDate(), + time.timestampToDate() ) } 3 -> { //近7日 deviceViewModel.obtainDeviceHistoryData( - devCode, time.timestampToLastWeekDate(), time.timestampToDate() + groupId, devCode, time.timestampToLastWeekDate(), time.timestampToDate() ) } 4 -> { //今日 deviceViewModel.obtainDeviceHistoryData( - devCode, time.timestampToDate(), time.timestampToDate() + groupId, devCode, time.timestampToDate(), time.timestampToDate() ) } 5 -> { @@ -98,7 +105,7 @@ DateSelectDialog.OnDialogButtonClickListener { override fun onConfirmClick(startDate: String, endDate: String) { deviceViewModel.obtainDeviceHistoryData( - devCode, startDate, endDate + groupId, devCode, startDate, endDate ) } diff --git a/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt b/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt index fbb6e55..e3d4c62 100644 --- a/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt +++ b/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt @@ -38,9 +38,9 @@ it.printStackTrace() }) - fun obtainDeviceDetail(tubeId: String) = launch({ + fun obtainDeviceDetail(groupId: String, tubeId: String) = launch({ loadState.value = LoadState.Loading - val response = RetrofitServiceManager.obtainDeviceDetail(tubeId) + val response = RetrofitServiceManager.obtainDeviceDetail(groupId, tubeId) val responseCode = response.separateResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success @@ -55,8 +55,14 @@ it.printStackTrace() }) - fun obtainDeviceHistoryData(devcode: String, beginTime: String?, endTime: String?) = launch({ - val response = RetrofitServiceManager.obtainDeviceHistoryData(devcode, beginTime, endTime) + fun obtainDeviceHistoryData( + groupId: String, + devcode: String, + beginTime: String?, + endTime: String? + ) = launch({ + val response = + RetrofitServiceManager.obtainDeviceHistoryData(groupId, devcode, beginTime, endTime) val responseCode = response.separateResponseCode() if (responseCode == 200) { historyDataModel.value = gson.fromJson( @@ -69,8 +75,8 @@ it.printStackTrace() }) - fun obtainTubeLastData(devcode: String) = launch({ - val response = RetrofitServiceManager.obtainTubeLastData(devcode) + fun obtainTubeLastData(groupId: String, devcode: String) = launch({ + val response = RetrofitServiceManager.obtainTubeLastData(groupId, devcode) when (response.separateResponseCode()) { 200 -> { lastDataModel.value = gson.fromJson( diff --git a/app/src/main/res/layout/item_device_rv.xml b/app/src/main/res/layout/item_device_rv.xml index 9542c7d..43e4096 100644 --- a/app/src/main/res/layout/item_device_rv.xml +++ b/app/src/main/res/layout/item_device_rv.xml @@ -40,7 +40,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginVertical="@dimen/dp_5" - android:text="位置:航天科工集团第二研究院203所" + android:text="@string/unknown" android:textColor="@color/subTextColor" android:textSize="@dimen/sp_14" /> @@ -57,7 +57,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" - android:text="安装日期:2022-01-04" + android:text="更新时间:2022-01-04" android:textColor="@color/hintTextColor" android:textSize="@dimen/sp_12" />