diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
index bed87f0..eb90311 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
index bed87f0..eb90311 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index bf3295f..027b98e 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
index bed87f0..eb90311 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index bf3295f..027b98e 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index 2117609..6464946 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -33,7 +33,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -82,7 +82,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
index bed87f0..eb90311 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index bf3295f..027b98e 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index 2117609..6464946 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -33,7 +33,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -82,7 +82,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
new file mode 100644
index 0000000..2359c3c
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
@@ -0,0 +1,143 @@
+package com.casic.br.operationsite.model;
+
+public class WorkSiteDetailModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
index bed87f0..eb90311 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index bf3295f..027b98e 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index 2117609..6464946 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -33,7 +33,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -82,7 +82,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
new file mode 100644
index 0000000..2359c3c
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
@@ -0,0 +1,143 @@
+package com.casic.br.operationsite.model;
+
+public class WorkSiteDetailModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
new file mode 100644
index 0000000..e6aefc7
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
@@ -0,0 +1,169 @@
+package com.casic.br.operationsite.model;
+
+import java.util.List;
+
+/**
+ * 施工现场列表数据模型
+ */
+public class WorkSiteListModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+ }
+}
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
index bed87f0..eb90311 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index bf3295f..027b98e 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index 2117609..6464946 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -33,7 +33,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -82,7 +82,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
new file mode 100644
index 0000000..2359c3c
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
@@ -0,0 +1,143 @@
+package com.casic.br.operationsite.model;
+
+public class WorkSiteDetailModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
new file mode 100644
index 0000000..e6aefc7
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
@@ -0,0 +1,169 @@
+package com.casic.br.operationsite.model;
+
+import java.util.List;
+
+/**
+ * 施工现场列表数据模型
+ */
+public class WorkSiteListModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
deleted file mode 100644
index b7954ca..0000000
--- a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package com.casic.br.operationsite.model;
-
-import java.util.List;
-
-public class WorkingListModel {
-
- private int code;
- private DataBean data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public DataBean getData() {
- return data;
- }
-
- public void setData(DataBean data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataBean {
- private List rows;
- private int total;
-
- public List getRows() {
- return rows;
- }
-
- public void setRows(List rows) {
- this.rows = rows;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public static class RowsBean {
- private String connectionPhone;
- private String id;
- private String imageUrl;
- private String updateTime;
- private String workPerson;
- private String workSiteDesc;
- private String workTitle;
-
- public String getConnectionPhone() {
- return connectionPhone;
- }
-
- public void setConnectionPhone(String connectionPhone) {
- this.connectionPhone = connectionPhone;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImageUrl() {
- return imageUrl;
- }
-
- public void setImageUrl(String imageUrl) {
- this.imageUrl = imageUrl;
- }
-
- public String getUpdateTime() {
- return updateTime;
- }
-
- public void setUpdateTime(String updateTime) {
- this.updateTime = updateTime;
- }
-
- public String getWorkPerson() {
- return workPerson;
- }
-
- public void setWorkPerson(String workPerson) {
- this.workPerson = workPerson;
- }
-
- public String getWorkSiteDesc() {
- return workSiteDesc;
- }
-
- public void setWorkSiteDesc(String workSiteDesc) {
- this.workSiteDesc = workSiteDesc;
- }
-
- public String getWorkTitle() {
- return workTitle;
- }
-
- public void setWorkTitle(String workTitle) {
- this.workTitle = workTitle;
- }
- }
- }
-}
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
index bed87f0..eb90311 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index bf3295f..027b98e 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index 2117609..6464946 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -33,7 +33,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -82,7 +82,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
new file mode 100644
index 0000000..2359c3c
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
@@ -0,0 +1,143 @@
+package com.casic.br.operationsite.model;
+
+public class WorkSiteDetailModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
new file mode 100644
index 0000000..e6aefc7
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
@@ -0,0 +1,169 @@
+package com.casic.br.operationsite.model;
+
+import java.util.List;
+
+/**
+ * 施工现场列表数据模型
+ */
+public class WorkSiteListModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
deleted file mode 100644
index b7954ca..0000000
--- a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package com.casic.br.operationsite.model;
-
-import java.util.List;
-
-public class WorkingListModel {
-
- private int code;
- private DataBean data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public DataBean getData() {
- return data;
- }
-
- public void setData(DataBean data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataBean {
- private List rows;
- private int total;
-
- public List getRows() {
- return rows;
- }
-
- public void setRows(List rows) {
- this.rows = rows;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public static class RowsBean {
- private String connectionPhone;
- private String id;
- private String imageUrl;
- private String updateTime;
- private String workPerson;
- private String workSiteDesc;
- private String workTitle;
-
- public String getConnectionPhone() {
- return connectionPhone;
- }
-
- public void setConnectionPhone(String connectionPhone) {
- this.connectionPhone = connectionPhone;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImageUrl() {
- return imageUrl;
- }
-
- public void setImageUrl(String imageUrl) {
- this.imageUrl = imageUrl;
- }
-
- public String getUpdateTime() {
- return updateTime;
- }
-
- public void setUpdateTime(String updateTime) {
- this.updateTime = updateTime;
- }
-
- public String getWorkPerson() {
- return workPerson;
- }
-
- public void setWorkPerson(String workPerson) {
- this.workPerson = workPerson;
- }
-
- public String getWorkSiteDesc() {
- return workSiteDesc;
- }
-
- public void setWorkSiteDesc(String workSiteDesc) {
- this.workSiteDesc = workSiteDesc;
- }
-
- public String getWorkTitle() {
- return workTitle;
- }
-
- public void setWorkTitle(String workTitle) {
- this.workTitle = workTitle;
- }
- }
- }
-}
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
index e489c55..c7890de 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
@@ -44,6 +44,15 @@
): String
/**
+ * 施工现场详情
+ */
+ @GET("/site/detail")
+ suspend fun obtainProjectDetail(
+ @Header("token") token: String,
+ @Query("id") id: String
+ ): String
+
+ /**
* 报警列表
*/
@GET("/alarm/listPage")
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
index bed87f0..eb90311 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index bf3295f..027b98e 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index 2117609..6464946 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -33,7 +33,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -82,7 +82,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
new file mode 100644
index 0000000..2359c3c
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
@@ -0,0 +1,143 @@
+package com.casic.br.operationsite.model;
+
+public class WorkSiteDetailModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
new file mode 100644
index 0000000..e6aefc7
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
@@ -0,0 +1,169 @@
+package com.casic.br.operationsite.model;
+
+import java.util.List;
+
+/**
+ * 施工现场列表数据模型
+ */
+public class WorkSiteListModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
deleted file mode 100644
index b7954ca..0000000
--- a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package com.casic.br.operationsite.model;
-
-import java.util.List;
-
-public class WorkingListModel {
-
- private int code;
- private DataBean data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public DataBean getData() {
- return data;
- }
-
- public void setData(DataBean data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataBean {
- private List rows;
- private int total;
-
- public List getRows() {
- return rows;
- }
-
- public void setRows(List rows) {
- this.rows = rows;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public static class RowsBean {
- private String connectionPhone;
- private String id;
- private String imageUrl;
- private String updateTime;
- private String workPerson;
- private String workSiteDesc;
- private String workTitle;
-
- public String getConnectionPhone() {
- return connectionPhone;
- }
-
- public void setConnectionPhone(String connectionPhone) {
- this.connectionPhone = connectionPhone;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImageUrl() {
- return imageUrl;
- }
-
- public void setImageUrl(String imageUrl) {
- this.imageUrl = imageUrl;
- }
-
- public String getUpdateTime() {
- return updateTime;
- }
-
- public void setUpdateTime(String updateTime) {
- this.updateTime = updateTime;
- }
-
- public String getWorkPerson() {
- return workPerson;
- }
-
- public void setWorkPerson(String workPerson) {
- this.workPerson = workPerson;
- }
-
- public String getWorkSiteDesc() {
- return workSiteDesc;
- }
-
- public void setWorkSiteDesc(String workSiteDesc) {
- this.workSiteDesc = workSiteDesc;
- }
-
- public String getWorkTitle() {
- return workTitle;
- }
-
- public void setWorkTitle(String workTitle) {
- this.workTitle = workTitle;
- }
- }
- }
-}
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
index e489c55..c7890de 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
@@ -44,6 +44,15 @@
): String
/**
+ * 施工现场详情
+ */
+ @GET("/site/detail")
+ suspend fun obtainProjectDetail(
+ @Header("token") token: String,
+ @Query("id") id: String
+ ): String
+
+ /**
* 报警列表
*/
@GET("/alarm/listPage")
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
index 3ba3359..3a6f684 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
@@ -49,6 +49,13 @@
}
/**
+ * 施工现场详情
+ */
+ suspend fun obtainProjectDetail(id: String): String {
+ return api.obtainProjectDetail(AuthenticationHelper.token!!, id)
+ }
+
+ /**
* 报警列表
*/
suspend fun obtainAlarmListByPage(page: Int): String {
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
index bed87f0..eb90311 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index bf3295f..027b98e 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index 2117609..6464946 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -33,7 +33,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -82,7 +82,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
new file mode 100644
index 0000000..2359c3c
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
@@ -0,0 +1,143 @@
+package com.casic.br.operationsite.model;
+
+public class WorkSiteDetailModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
new file mode 100644
index 0000000..e6aefc7
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
@@ -0,0 +1,169 @@
+package com.casic.br.operationsite.model;
+
+import java.util.List;
+
+/**
+ * 施工现场列表数据模型
+ */
+public class WorkSiteListModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
deleted file mode 100644
index b7954ca..0000000
--- a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package com.casic.br.operationsite.model;
-
-import java.util.List;
-
-public class WorkingListModel {
-
- private int code;
- private DataBean data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public DataBean getData() {
- return data;
- }
-
- public void setData(DataBean data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataBean {
- private List rows;
- private int total;
-
- public List getRows() {
- return rows;
- }
-
- public void setRows(List rows) {
- this.rows = rows;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public static class RowsBean {
- private String connectionPhone;
- private String id;
- private String imageUrl;
- private String updateTime;
- private String workPerson;
- private String workSiteDesc;
- private String workTitle;
-
- public String getConnectionPhone() {
- return connectionPhone;
- }
-
- public void setConnectionPhone(String connectionPhone) {
- this.connectionPhone = connectionPhone;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImageUrl() {
- return imageUrl;
- }
-
- public void setImageUrl(String imageUrl) {
- this.imageUrl = imageUrl;
- }
-
- public String getUpdateTime() {
- return updateTime;
- }
-
- public void setUpdateTime(String updateTime) {
- this.updateTime = updateTime;
- }
-
- public String getWorkPerson() {
- return workPerson;
- }
-
- public void setWorkPerson(String workPerson) {
- this.workPerson = workPerson;
- }
-
- public String getWorkSiteDesc() {
- return workSiteDesc;
- }
-
- public void setWorkSiteDesc(String workSiteDesc) {
- this.workSiteDesc = workSiteDesc;
- }
-
- public String getWorkTitle() {
- return workTitle;
- }
-
- public void setWorkTitle(String workTitle) {
- this.workTitle = workTitle;
- }
- }
- }
-}
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
index e489c55..c7890de 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
@@ -44,6 +44,15 @@
): String
/**
+ * 施工现场详情
+ */
+ @GET("/site/detail")
+ suspend fun obtainProjectDetail(
+ @Header("token") token: String,
+ @Query("id") id: String
+ ): String
+
+ /**
* 报警列表
*/
@GET("/alarm/listPage")
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
index 3ba3359..3a6f684 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
@@ -49,6 +49,13 @@
}
/**
+ * 施工现场详情
+ */
+ suspend fun obtainProjectDetail(id: String): String {
+ return api.obtainProjectDetail(AuthenticationHelper.token!!, id)
+ }
+
+ /**
* 报警列表
*/
suspend fun obtainAlarmListByPage(page: Int): String {
diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
index 00802a0..12d2275 100644
--- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
@@ -7,7 +7,11 @@
val USER_PERMISSIONS = arrayOf(
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
- Manifest.permission.CAMERA
+ Manifest.permission.CAMERA,
+ Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS,
+ Manifest.permission.ACCESS_COARSE_LOCATION,
+ Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.READ_PHONE_STATE
)
const val SERVER_BASE_URL = "http://192.168.43.66:8083"
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
index bed87f0..eb90311 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index bf3295f..027b98e 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index 2117609..6464946 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -33,7 +33,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -82,7 +82,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
new file mode 100644
index 0000000..2359c3c
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
@@ -0,0 +1,143 @@
+package com.casic.br.operationsite.model;
+
+public class WorkSiteDetailModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
new file mode 100644
index 0000000..e6aefc7
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
@@ -0,0 +1,169 @@
+package com.casic.br.operationsite.model;
+
+import java.util.List;
+
+/**
+ * 施工现场列表数据模型
+ */
+public class WorkSiteListModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
deleted file mode 100644
index b7954ca..0000000
--- a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package com.casic.br.operationsite.model;
-
-import java.util.List;
-
-public class WorkingListModel {
-
- private int code;
- private DataBean data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public DataBean getData() {
- return data;
- }
-
- public void setData(DataBean data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataBean {
- private List rows;
- private int total;
-
- public List getRows() {
- return rows;
- }
-
- public void setRows(List rows) {
- this.rows = rows;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public static class RowsBean {
- private String connectionPhone;
- private String id;
- private String imageUrl;
- private String updateTime;
- private String workPerson;
- private String workSiteDesc;
- private String workTitle;
-
- public String getConnectionPhone() {
- return connectionPhone;
- }
-
- public void setConnectionPhone(String connectionPhone) {
- this.connectionPhone = connectionPhone;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImageUrl() {
- return imageUrl;
- }
-
- public void setImageUrl(String imageUrl) {
- this.imageUrl = imageUrl;
- }
-
- public String getUpdateTime() {
- return updateTime;
- }
-
- public void setUpdateTime(String updateTime) {
- this.updateTime = updateTime;
- }
-
- public String getWorkPerson() {
- return workPerson;
- }
-
- public void setWorkPerson(String workPerson) {
- this.workPerson = workPerson;
- }
-
- public String getWorkSiteDesc() {
- return workSiteDesc;
- }
-
- public void setWorkSiteDesc(String workSiteDesc) {
- this.workSiteDesc = workSiteDesc;
- }
-
- public String getWorkTitle() {
- return workTitle;
- }
-
- public void setWorkTitle(String workTitle) {
- this.workTitle = workTitle;
- }
- }
- }
-}
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
index e489c55..c7890de 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
@@ -44,6 +44,15 @@
): String
/**
+ * 施工现场详情
+ */
+ @GET("/site/detail")
+ suspend fun obtainProjectDetail(
+ @Header("token") token: String,
+ @Query("id") id: String
+ ): String
+
+ /**
* 报警列表
*/
@GET("/alarm/listPage")
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
index 3ba3359..3a6f684 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
@@ -49,6 +49,13 @@
}
/**
+ * 施工现场详情
+ */
+ suspend fun obtainProjectDetail(id: String): String {
+ return api.obtainProjectDetail(AuthenticationHelper.token!!, id)
+ }
+
+ /**
* 报警列表
*/
suspend fun obtainAlarmListByPage(page: Int): String {
diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
index 00802a0..12d2275 100644
--- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
@@ -7,7 +7,11 @@
val USER_PERMISSIONS = arrayOf(
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
- Manifest.permission.CAMERA
+ Manifest.permission.CAMERA,
+ Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS,
+ Manifest.permission.ACCESS_COARSE_LOCATION,
+ Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.READ_PHONE_STATE
)
const val SERVER_BASE_URL = "http://192.168.43.66:8083"
diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
index 5411dbd..b1daa34 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
@@ -1,27 +1,38 @@
package com.casic.br.operationsite.view
import android.os.Bundle
+import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.AMap
import com.amap.api.maps.AMapOptions
import com.amap.api.maps.CameraUpdateFactory
-import com.amap.api.maps.model.BitmapDescriptorFactory
-import com.amap.api.maps.model.CameraPosition
-import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.MarkerOptions
+import com.amap.api.maps.model.*
+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.br.operationsite.R
+import com.casic.br.operationsite.utils.DialogHelper
+import com.casic.br.operationsite.vm.WorkSiteViewModel
import com.gyf.immersionbar.ImmersionBar
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.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import com.pengxh.kt.lite.vm.LoadState
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_site_tab.*
import kotlinx.android.synthetic.main.include_base_title.*
-class WorkSiteTabActivity : KotlinBaseActivity(), AMap.OnMapLoadedListener {
+class WorkSiteTabActivity : KotlinBaseActivity() {
+ private val kTag = "WorkSiteTabActivity"
private lateinit var aMap: AMap
+ private lateinit var workSiteViewModel: WorkSiteViewModel
+ private val geocoderSearch by lazy { GeocodeSearch(this) }
private var latLng: LatLng? = null
override fun initLayoutView(): Int = R.layout.activity_site_tab
@@ -37,7 +48,9 @@
override fun initData() {
val id = intent.getStringExtra(Constant.INTENT_PARAM)!!
-
+ /**
+ * 地图初始化设置
+ * */
aMap = mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
@@ -46,40 +59,99 @@
uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度
uiSettings.isRotateGesturesEnabled = false//不允许地图旋转
- //地图加载成功之后调用
- aMap.addOnMapLoadedListener(this)
- }
-
- override fun onMapLoaded() {
- if (latLng == null) {
- "经纬度异常,无法在地图显示".show(this)
- return
- }
/**
- * 参数1---要移动到的经纬度
- * 参数2---地图的放缩级别zoom
- * 参数3---地图倾斜度
- * 参数4---地图的旋转角度
+ * 数据初始化
* */
- val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f)
- val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback {
- override fun onFinish() {
- //添加Marker
- val markerOptions = MarkerOptions()
- .position(latLng)
- .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location))
- .draggable(true)
- aMap.addMarker(markerOptions)
+ workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java)
+ workSiteViewModel.obtainProjectDetail(id)
+ workSiteViewModel.detailModel.observe(this, {
+ if (it.code == 200) {
+ val detailData = it.data
+ projectNameView.text = detailData.workTitle
+ principalView.text = String.format("现场负责人:${detailData.workPerson}")
+ phoneNumberView.text = String.format("联系电话:${detailData.connectionPhone}")
+ completedDateView.text = String.format("竣工日期:${detailData.completedDate}")
+ projectProgressView.text = "工程进度:${detailData.projectProgress}%"
+
+ this.latLng = LatLng(
+ detailData.latitude.toDouble(), detailData.longitude.toDouble()
+ )
+ val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f)
+ val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback {
+ override fun onFinish() {
+ //添加Marker
+ val markerOptions = MarkerOptions()
+ .position(latLng)
+ .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location))
+ .draggable(true)
+ aMap.addMarker(markerOptions)
+ }
+
+ override fun onCancel() {
+
+ }
+ })
+
+ val queryParam = RegeocodeQuery(
+ LatLonPoint(detailData.latitude.toDouble(), detailData.longitude.toDouble()),
+ 200f,
+ GeocodeSearch.AMAP
+ )
+ geocoderSearch.getFromLocationAsyn(queryParam)
+ geocoderSearch.setOnGeocodeSearchListener(object :
+ GeocodeSearch.OnGeocodeSearchListener {
+ override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) {
+ if (rCode == 1000) {
+ locationView.text = String.format(
+ "地址:${result?.regeocodeAddress?.formatAddress}"
+ )
+ }
+ }
+
+ override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) {
+
+ }
+ })
}
+ })
- override fun onCancel() {
-
+ workSiteViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后...")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
}
})
}
override fun initEvent() {
+ navigationView.setOnClickListener {
+ if (latLng == null) {
+ "经纬度异常,无法开启导航".show(this)
+ return@setOnClickListener
+ }
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("提示")
+ .setMessage("确定要前往吗")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ Poi("", latLng, "").showRouteOnMap(this@WorkSiteTabActivity)
+ }
+
+ override fun onCancelClick() {
+
+ }
+ }).build().show()
+ }
+
alarmTextView.setOnClickListener {
navigatePageTo()
}
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
index bed87f0..eb90311 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index bf3295f..027b98e 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index 2117609..6464946 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -33,7 +33,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -82,7 +82,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
new file mode 100644
index 0000000..2359c3c
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
@@ -0,0 +1,143 @@
+package com.casic.br.operationsite.model;
+
+public class WorkSiteDetailModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
new file mode 100644
index 0000000..e6aefc7
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
@@ -0,0 +1,169 @@
+package com.casic.br.operationsite.model;
+
+import java.util.List;
+
+/**
+ * 施工现场列表数据模型
+ */
+public class WorkSiteListModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
deleted file mode 100644
index b7954ca..0000000
--- a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package com.casic.br.operationsite.model;
-
-import java.util.List;
-
-public class WorkingListModel {
-
- private int code;
- private DataBean data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public DataBean getData() {
- return data;
- }
-
- public void setData(DataBean data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataBean {
- private List rows;
- private int total;
-
- public List getRows() {
- return rows;
- }
-
- public void setRows(List rows) {
- this.rows = rows;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public static class RowsBean {
- private String connectionPhone;
- private String id;
- private String imageUrl;
- private String updateTime;
- private String workPerson;
- private String workSiteDesc;
- private String workTitle;
-
- public String getConnectionPhone() {
- return connectionPhone;
- }
-
- public void setConnectionPhone(String connectionPhone) {
- this.connectionPhone = connectionPhone;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImageUrl() {
- return imageUrl;
- }
-
- public void setImageUrl(String imageUrl) {
- this.imageUrl = imageUrl;
- }
-
- public String getUpdateTime() {
- return updateTime;
- }
-
- public void setUpdateTime(String updateTime) {
- this.updateTime = updateTime;
- }
-
- public String getWorkPerson() {
- return workPerson;
- }
-
- public void setWorkPerson(String workPerson) {
- this.workPerson = workPerson;
- }
-
- public String getWorkSiteDesc() {
- return workSiteDesc;
- }
-
- public void setWorkSiteDesc(String workSiteDesc) {
- this.workSiteDesc = workSiteDesc;
- }
-
- public String getWorkTitle() {
- return workTitle;
- }
-
- public void setWorkTitle(String workTitle) {
- this.workTitle = workTitle;
- }
- }
- }
-}
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
index e489c55..c7890de 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
@@ -44,6 +44,15 @@
): String
/**
+ * 施工现场详情
+ */
+ @GET("/site/detail")
+ suspend fun obtainProjectDetail(
+ @Header("token") token: String,
+ @Query("id") id: String
+ ): String
+
+ /**
* 报警列表
*/
@GET("/alarm/listPage")
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
index 3ba3359..3a6f684 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
@@ -49,6 +49,13 @@
}
/**
+ * 施工现场详情
+ */
+ suspend fun obtainProjectDetail(id: String): String {
+ return api.obtainProjectDetail(AuthenticationHelper.token!!, id)
+ }
+
+ /**
* 报警列表
*/
suspend fun obtainAlarmListByPage(page: Int): String {
diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
index 00802a0..12d2275 100644
--- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
@@ -7,7 +7,11 @@
val USER_PERMISSIONS = arrayOf(
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
- Manifest.permission.CAMERA
+ Manifest.permission.CAMERA,
+ Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS,
+ Manifest.permission.ACCESS_COARSE_LOCATION,
+ Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.READ_PHONE_STATE
)
const val SERVER_BASE_URL = "http://192.168.43.66:8083"
diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
index 5411dbd..b1daa34 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
@@ -1,27 +1,38 @@
package com.casic.br.operationsite.view
import android.os.Bundle
+import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.AMap
import com.amap.api.maps.AMapOptions
import com.amap.api.maps.CameraUpdateFactory
-import com.amap.api.maps.model.BitmapDescriptorFactory
-import com.amap.api.maps.model.CameraPosition
-import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.MarkerOptions
+import com.amap.api.maps.model.*
+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.br.operationsite.R
+import com.casic.br.operationsite.utils.DialogHelper
+import com.casic.br.operationsite.vm.WorkSiteViewModel
import com.gyf.immersionbar.ImmersionBar
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.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import com.pengxh.kt.lite.vm.LoadState
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_site_tab.*
import kotlinx.android.synthetic.main.include_base_title.*
-class WorkSiteTabActivity : KotlinBaseActivity(), AMap.OnMapLoadedListener {
+class WorkSiteTabActivity : KotlinBaseActivity() {
+ private val kTag = "WorkSiteTabActivity"
private lateinit var aMap: AMap
+ private lateinit var workSiteViewModel: WorkSiteViewModel
+ private val geocoderSearch by lazy { GeocodeSearch(this) }
private var latLng: LatLng? = null
override fun initLayoutView(): Int = R.layout.activity_site_tab
@@ -37,7 +48,9 @@
override fun initData() {
val id = intent.getStringExtra(Constant.INTENT_PARAM)!!
-
+ /**
+ * 地图初始化设置
+ * */
aMap = mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
@@ -46,40 +59,99 @@
uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度
uiSettings.isRotateGesturesEnabled = false//不允许地图旋转
- //地图加载成功之后调用
- aMap.addOnMapLoadedListener(this)
- }
-
- override fun onMapLoaded() {
- if (latLng == null) {
- "经纬度异常,无法在地图显示".show(this)
- return
- }
/**
- * 参数1---要移动到的经纬度
- * 参数2---地图的放缩级别zoom
- * 参数3---地图倾斜度
- * 参数4---地图的旋转角度
+ * 数据初始化
* */
- val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f)
- val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback {
- override fun onFinish() {
- //添加Marker
- val markerOptions = MarkerOptions()
- .position(latLng)
- .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location))
- .draggable(true)
- aMap.addMarker(markerOptions)
+ workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java)
+ workSiteViewModel.obtainProjectDetail(id)
+ workSiteViewModel.detailModel.observe(this, {
+ if (it.code == 200) {
+ val detailData = it.data
+ projectNameView.text = detailData.workTitle
+ principalView.text = String.format("现场负责人:${detailData.workPerson}")
+ phoneNumberView.text = String.format("联系电话:${detailData.connectionPhone}")
+ completedDateView.text = String.format("竣工日期:${detailData.completedDate}")
+ projectProgressView.text = "工程进度:${detailData.projectProgress}%"
+
+ this.latLng = LatLng(
+ detailData.latitude.toDouble(), detailData.longitude.toDouble()
+ )
+ val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f)
+ val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback {
+ override fun onFinish() {
+ //添加Marker
+ val markerOptions = MarkerOptions()
+ .position(latLng)
+ .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location))
+ .draggable(true)
+ aMap.addMarker(markerOptions)
+ }
+
+ override fun onCancel() {
+
+ }
+ })
+
+ val queryParam = RegeocodeQuery(
+ LatLonPoint(detailData.latitude.toDouble(), detailData.longitude.toDouble()),
+ 200f,
+ GeocodeSearch.AMAP
+ )
+ geocoderSearch.getFromLocationAsyn(queryParam)
+ geocoderSearch.setOnGeocodeSearchListener(object :
+ GeocodeSearch.OnGeocodeSearchListener {
+ override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) {
+ if (rCode == 1000) {
+ locationView.text = String.format(
+ "地址:${result?.regeocodeAddress?.formatAddress}"
+ )
+ }
+ }
+
+ override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) {
+
+ }
+ })
}
+ })
- override fun onCancel() {
-
+ workSiteViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后...")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
}
})
}
override fun initEvent() {
+ navigationView.setOnClickListener {
+ if (latLng == null) {
+ "经纬度异常,无法开启导航".show(this)
+ return@setOnClickListener
+ }
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("提示")
+ .setMessage("确定要前往吗")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ Poi("", latLng, "").showRouteOnMap(this@WorkSiteTabActivity)
+ }
+
+ override fun onCancelClick() {
+
+ }
+ }).build().show()
+ }
+
alarmTextView.setOnClickListener {
navigatePageTo()
}
diff --git a/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt
index 7ec5243..1aee0a3 100644
--- a/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt
+++ b/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt
@@ -4,13 +4,15 @@
import com.casic.br.operationsite.base.BaseApplication
import com.casic.br.operationsite.extensions.separateResponseCode
import com.casic.br.operationsite.extensions.toErrorMessage
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteDetailModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.retrofit.RetrofitServiceManager
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.pengxh.kt.lite.extensions.launch
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.vm.BaseViewModel
+import com.pengxh.kt.lite.vm.LoadState
/**
* 现场作业ViewModel
@@ -18,14 +20,15 @@
class WorkSiteViewModel : BaseViewModel() {
private val gson = Gson()
- val workingModel = MutableLiveData()
+ val worksiteModel = MutableLiveData()
+ val detailModel = MutableLiveData()
fun obtainProjectListByPage(keywords: String, state: String, page: Int) = launch({
val response = RetrofitServiceManager.obtainProjectListByPage(keywords, state, page)
val responseCode = response.separateResponseCode()
if (responseCode == 200) {
- workingModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
+ worksiteModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
)
} else {
response.toErrorMessage().show(BaseApplication.obtainInstance())
@@ -33,4 +36,21 @@
}, {
it.printStackTrace()
})
+
+ fun obtainProjectDetail(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainProjectDetail(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ detailModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ loadState.value = LoadState.Success
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
index bed87f0..eb90311 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index bf3295f..027b98e 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index 2117609..6464946 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -33,7 +33,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -82,7 +82,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
new file mode 100644
index 0000000..2359c3c
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
@@ -0,0 +1,143 @@
+package com.casic.br.operationsite.model;
+
+public class WorkSiteDetailModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
new file mode 100644
index 0000000..e6aefc7
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
@@ -0,0 +1,169 @@
+package com.casic.br.operationsite.model;
+
+import java.util.List;
+
+/**
+ * 施工现场列表数据模型
+ */
+public class WorkSiteListModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
deleted file mode 100644
index b7954ca..0000000
--- a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package com.casic.br.operationsite.model;
-
-import java.util.List;
-
-public class WorkingListModel {
-
- private int code;
- private DataBean data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public DataBean getData() {
- return data;
- }
-
- public void setData(DataBean data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataBean {
- private List rows;
- private int total;
-
- public List getRows() {
- return rows;
- }
-
- public void setRows(List rows) {
- this.rows = rows;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public static class RowsBean {
- private String connectionPhone;
- private String id;
- private String imageUrl;
- private String updateTime;
- private String workPerson;
- private String workSiteDesc;
- private String workTitle;
-
- public String getConnectionPhone() {
- return connectionPhone;
- }
-
- public void setConnectionPhone(String connectionPhone) {
- this.connectionPhone = connectionPhone;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImageUrl() {
- return imageUrl;
- }
-
- public void setImageUrl(String imageUrl) {
- this.imageUrl = imageUrl;
- }
-
- public String getUpdateTime() {
- return updateTime;
- }
-
- public void setUpdateTime(String updateTime) {
- this.updateTime = updateTime;
- }
-
- public String getWorkPerson() {
- return workPerson;
- }
-
- public void setWorkPerson(String workPerson) {
- this.workPerson = workPerson;
- }
-
- public String getWorkSiteDesc() {
- return workSiteDesc;
- }
-
- public void setWorkSiteDesc(String workSiteDesc) {
- this.workSiteDesc = workSiteDesc;
- }
-
- public String getWorkTitle() {
- return workTitle;
- }
-
- public void setWorkTitle(String workTitle) {
- this.workTitle = workTitle;
- }
- }
- }
-}
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
index e489c55..c7890de 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
@@ -44,6 +44,15 @@
): String
/**
+ * 施工现场详情
+ */
+ @GET("/site/detail")
+ suspend fun obtainProjectDetail(
+ @Header("token") token: String,
+ @Query("id") id: String
+ ): String
+
+ /**
* 报警列表
*/
@GET("/alarm/listPage")
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
index 3ba3359..3a6f684 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
@@ -49,6 +49,13 @@
}
/**
+ * 施工现场详情
+ */
+ suspend fun obtainProjectDetail(id: String): String {
+ return api.obtainProjectDetail(AuthenticationHelper.token!!, id)
+ }
+
+ /**
* 报警列表
*/
suspend fun obtainAlarmListByPage(page: Int): String {
diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
index 00802a0..12d2275 100644
--- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
@@ -7,7 +7,11 @@
val USER_PERMISSIONS = arrayOf(
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
- Manifest.permission.CAMERA
+ Manifest.permission.CAMERA,
+ Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS,
+ Manifest.permission.ACCESS_COARSE_LOCATION,
+ Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.READ_PHONE_STATE
)
const val SERVER_BASE_URL = "http://192.168.43.66:8083"
diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
index 5411dbd..b1daa34 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
@@ -1,27 +1,38 @@
package com.casic.br.operationsite.view
import android.os.Bundle
+import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.AMap
import com.amap.api.maps.AMapOptions
import com.amap.api.maps.CameraUpdateFactory
-import com.amap.api.maps.model.BitmapDescriptorFactory
-import com.amap.api.maps.model.CameraPosition
-import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.MarkerOptions
+import com.amap.api.maps.model.*
+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.br.operationsite.R
+import com.casic.br.operationsite.utils.DialogHelper
+import com.casic.br.operationsite.vm.WorkSiteViewModel
import com.gyf.immersionbar.ImmersionBar
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.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import com.pengxh.kt.lite.vm.LoadState
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_site_tab.*
import kotlinx.android.synthetic.main.include_base_title.*
-class WorkSiteTabActivity : KotlinBaseActivity(), AMap.OnMapLoadedListener {
+class WorkSiteTabActivity : KotlinBaseActivity() {
+ private val kTag = "WorkSiteTabActivity"
private lateinit var aMap: AMap
+ private lateinit var workSiteViewModel: WorkSiteViewModel
+ private val geocoderSearch by lazy { GeocodeSearch(this) }
private var latLng: LatLng? = null
override fun initLayoutView(): Int = R.layout.activity_site_tab
@@ -37,7 +48,9 @@
override fun initData() {
val id = intent.getStringExtra(Constant.INTENT_PARAM)!!
-
+ /**
+ * 地图初始化设置
+ * */
aMap = mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
@@ -46,40 +59,99 @@
uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度
uiSettings.isRotateGesturesEnabled = false//不允许地图旋转
- //地图加载成功之后调用
- aMap.addOnMapLoadedListener(this)
- }
-
- override fun onMapLoaded() {
- if (latLng == null) {
- "经纬度异常,无法在地图显示".show(this)
- return
- }
/**
- * 参数1---要移动到的经纬度
- * 参数2---地图的放缩级别zoom
- * 参数3---地图倾斜度
- * 参数4---地图的旋转角度
+ * 数据初始化
* */
- val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f)
- val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback {
- override fun onFinish() {
- //添加Marker
- val markerOptions = MarkerOptions()
- .position(latLng)
- .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location))
- .draggable(true)
- aMap.addMarker(markerOptions)
+ workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java)
+ workSiteViewModel.obtainProjectDetail(id)
+ workSiteViewModel.detailModel.observe(this, {
+ if (it.code == 200) {
+ val detailData = it.data
+ projectNameView.text = detailData.workTitle
+ principalView.text = String.format("现场负责人:${detailData.workPerson}")
+ phoneNumberView.text = String.format("联系电话:${detailData.connectionPhone}")
+ completedDateView.text = String.format("竣工日期:${detailData.completedDate}")
+ projectProgressView.text = "工程进度:${detailData.projectProgress}%"
+
+ this.latLng = LatLng(
+ detailData.latitude.toDouble(), detailData.longitude.toDouble()
+ )
+ val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f)
+ val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback {
+ override fun onFinish() {
+ //添加Marker
+ val markerOptions = MarkerOptions()
+ .position(latLng)
+ .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location))
+ .draggable(true)
+ aMap.addMarker(markerOptions)
+ }
+
+ override fun onCancel() {
+
+ }
+ })
+
+ val queryParam = RegeocodeQuery(
+ LatLonPoint(detailData.latitude.toDouble(), detailData.longitude.toDouble()),
+ 200f,
+ GeocodeSearch.AMAP
+ )
+ geocoderSearch.getFromLocationAsyn(queryParam)
+ geocoderSearch.setOnGeocodeSearchListener(object :
+ GeocodeSearch.OnGeocodeSearchListener {
+ override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) {
+ if (rCode == 1000) {
+ locationView.text = String.format(
+ "地址:${result?.regeocodeAddress?.formatAddress}"
+ )
+ }
+ }
+
+ override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) {
+
+ }
+ })
}
+ })
- override fun onCancel() {
-
+ workSiteViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后...")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
}
})
}
override fun initEvent() {
+ navigationView.setOnClickListener {
+ if (latLng == null) {
+ "经纬度异常,无法开启导航".show(this)
+ return@setOnClickListener
+ }
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("提示")
+ .setMessage("确定要前往吗")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ Poi("", latLng, "").showRouteOnMap(this@WorkSiteTabActivity)
+ }
+
+ override fun onCancelClick() {
+
+ }
+ }).build().show()
+ }
+
alarmTextView.setOnClickListener {
navigatePageTo()
}
diff --git a/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt
index 7ec5243..1aee0a3 100644
--- a/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt
+++ b/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt
@@ -4,13 +4,15 @@
import com.casic.br.operationsite.base.BaseApplication
import com.casic.br.operationsite.extensions.separateResponseCode
import com.casic.br.operationsite.extensions.toErrorMessage
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteDetailModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.retrofit.RetrofitServiceManager
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.pengxh.kt.lite.extensions.launch
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.vm.BaseViewModel
+import com.pengxh.kt.lite.vm.LoadState
/**
* 现场作业ViewModel
@@ -18,14 +20,15 @@
class WorkSiteViewModel : BaseViewModel() {
private val gson = Gson()
- val workingModel = MutableLiveData()
+ val worksiteModel = MutableLiveData()
+ val detailModel = MutableLiveData()
fun obtainProjectListByPage(keywords: String, state: String, page: Int) = launch({
val response = RetrofitServiceManager.obtainProjectListByPage(keywords, state, page)
val responseCode = response.separateResponseCode()
if (responseCode == 200) {
- workingModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
+ worksiteModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
)
} else {
response.toErrorMessage().show(BaseApplication.obtainInstance())
@@ -33,4 +36,21 @@
}, {
it.printStackTrace()
})
+
+ fun obtainProjectDetail(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainProjectDetail(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ detailModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ loadState.value = LoadState.Success
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_device.xml b/app/src/main/res/drawable/ic_device.xml
new file mode 100644
index 0000000..831c4c4
--- /dev/null
+++ b/app/src/main/res/drawable/ic_device.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
index bed87f0..eb90311 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index bf3295f..027b98e 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index 2117609..6464946 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -33,7 +33,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -82,7 +82,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
new file mode 100644
index 0000000..2359c3c
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
@@ -0,0 +1,143 @@
+package com.casic.br.operationsite.model;
+
+public class WorkSiteDetailModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
new file mode 100644
index 0000000..e6aefc7
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
@@ -0,0 +1,169 @@
+package com.casic.br.operationsite.model;
+
+import java.util.List;
+
+/**
+ * 施工现场列表数据模型
+ */
+public class WorkSiteListModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
deleted file mode 100644
index b7954ca..0000000
--- a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package com.casic.br.operationsite.model;
-
-import java.util.List;
-
-public class WorkingListModel {
-
- private int code;
- private DataBean data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public DataBean getData() {
- return data;
- }
-
- public void setData(DataBean data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataBean {
- private List rows;
- private int total;
-
- public List getRows() {
- return rows;
- }
-
- public void setRows(List rows) {
- this.rows = rows;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public static class RowsBean {
- private String connectionPhone;
- private String id;
- private String imageUrl;
- private String updateTime;
- private String workPerson;
- private String workSiteDesc;
- private String workTitle;
-
- public String getConnectionPhone() {
- return connectionPhone;
- }
-
- public void setConnectionPhone(String connectionPhone) {
- this.connectionPhone = connectionPhone;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImageUrl() {
- return imageUrl;
- }
-
- public void setImageUrl(String imageUrl) {
- this.imageUrl = imageUrl;
- }
-
- public String getUpdateTime() {
- return updateTime;
- }
-
- public void setUpdateTime(String updateTime) {
- this.updateTime = updateTime;
- }
-
- public String getWorkPerson() {
- return workPerson;
- }
-
- public void setWorkPerson(String workPerson) {
- this.workPerson = workPerson;
- }
-
- public String getWorkSiteDesc() {
- return workSiteDesc;
- }
-
- public void setWorkSiteDesc(String workSiteDesc) {
- this.workSiteDesc = workSiteDesc;
- }
-
- public String getWorkTitle() {
- return workTitle;
- }
-
- public void setWorkTitle(String workTitle) {
- this.workTitle = workTitle;
- }
- }
- }
-}
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
index e489c55..c7890de 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
@@ -44,6 +44,15 @@
): String
/**
+ * 施工现场详情
+ */
+ @GET("/site/detail")
+ suspend fun obtainProjectDetail(
+ @Header("token") token: String,
+ @Query("id") id: String
+ ): String
+
+ /**
* 报警列表
*/
@GET("/alarm/listPage")
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
index 3ba3359..3a6f684 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
@@ -49,6 +49,13 @@
}
/**
+ * 施工现场详情
+ */
+ suspend fun obtainProjectDetail(id: String): String {
+ return api.obtainProjectDetail(AuthenticationHelper.token!!, id)
+ }
+
+ /**
* 报警列表
*/
suspend fun obtainAlarmListByPage(page: Int): String {
diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
index 00802a0..12d2275 100644
--- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
@@ -7,7 +7,11 @@
val USER_PERMISSIONS = arrayOf(
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
- Manifest.permission.CAMERA
+ Manifest.permission.CAMERA,
+ Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS,
+ Manifest.permission.ACCESS_COARSE_LOCATION,
+ Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.READ_PHONE_STATE
)
const val SERVER_BASE_URL = "http://192.168.43.66:8083"
diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
index 5411dbd..b1daa34 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
@@ -1,27 +1,38 @@
package com.casic.br.operationsite.view
import android.os.Bundle
+import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.AMap
import com.amap.api.maps.AMapOptions
import com.amap.api.maps.CameraUpdateFactory
-import com.amap.api.maps.model.BitmapDescriptorFactory
-import com.amap.api.maps.model.CameraPosition
-import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.MarkerOptions
+import com.amap.api.maps.model.*
+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.br.operationsite.R
+import com.casic.br.operationsite.utils.DialogHelper
+import com.casic.br.operationsite.vm.WorkSiteViewModel
import com.gyf.immersionbar.ImmersionBar
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.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import com.pengxh.kt.lite.vm.LoadState
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_site_tab.*
import kotlinx.android.synthetic.main.include_base_title.*
-class WorkSiteTabActivity : KotlinBaseActivity(), AMap.OnMapLoadedListener {
+class WorkSiteTabActivity : KotlinBaseActivity() {
+ private val kTag = "WorkSiteTabActivity"
private lateinit var aMap: AMap
+ private lateinit var workSiteViewModel: WorkSiteViewModel
+ private val geocoderSearch by lazy { GeocodeSearch(this) }
private var latLng: LatLng? = null
override fun initLayoutView(): Int = R.layout.activity_site_tab
@@ -37,7 +48,9 @@
override fun initData() {
val id = intent.getStringExtra(Constant.INTENT_PARAM)!!
-
+ /**
+ * 地图初始化设置
+ * */
aMap = mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
@@ -46,40 +59,99 @@
uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度
uiSettings.isRotateGesturesEnabled = false//不允许地图旋转
- //地图加载成功之后调用
- aMap.addOnMapLoadedListener(this)
- }
-
- override fun onMapLoaded() {
- if (latLng == null) {
- "经纬度异常,无法在地图显示".show(this)
- return
- }
/**
- * 参数1---要移动到的经纬度
- * 参数2---地图的放缩级别zoom
- * 参数3---地图倾斜度
- * 参数4---地图的旋转角度
+ * 数据初始化
* */
- val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f)
- val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback {
- override fun onFinish() {
- //添加Marker
- val markerOptions = MarkerOptions()
- .position(latLng)
- .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location))
- .draggable(true)
- aMap.addMarker(markerOptions)
+ workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java)
+ workSiteViewModel.obtainProjectDetail(id)
+ workSiteViewModel.detailModel.observe(this, {
+ if (it.code == 200) {
+ val detailData = it.data
+ projectNameView.text = detailData.workTitle
+ principalView.text = String.format("现场负责人:${detailData.workPerson}")
+ phoneNumberView.text = String.format("联系电话:${detailData.connectionPhone}")
+ completedDateView.text = String.format("竣工日期:${detailData.completedDate}")
+ projectProgressView.text = "工程进度:${detailData.projectProgress}%"
+
+ this.latLng = LatLng(
+ detailData.latitude.toDouble(), detailData.longitude.toDouble()
+ )
+ val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f)
+ val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback {
+ override fun onFinish() {
+ //添加Marker
+ val markerOptions = MarkerOptions()
+ .position(latLng)
+ .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location))
+ .draggable(true)
+ aMap.addMarker(markerOptions)
+ }
+
+ override fun onCancel() {
+
+ }
+ })
+
+ val queryParam = RegeocodeQuery(
+ LatLonPoint(detailData.latitude.toDouble(), detailData.longitude.toDouble()),
+ 200f,
+ GeocodeSearch.AMAP
+ )
+ geocoderSearch.getFromLocationAsyn(queryParam)
+ geocoderSearch.setOnGeocodeSearchListener(object :
+ GeocodeSearch.OnGeocodeSearchListener {
+ override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) {
+ if (rCode == 1000) {
+ locationView.text = String.format(
+ "地址:${result?.regeocodeAddress?.formatAddress}"
+ )
+ }
+ }
+
+ override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) {
+
+ }
+ })
}
+ })
- override fun onCancel() {
-
+ workSiteViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后...")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
}
})
}
override fun initEvent() {
+ navigationView.setOnClickListener {
+ if (latLng == null) {
+ "经纬度异常,无法开启导航".show(this)
+ return@setOnClickListener
+ }
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("提示")
+ .setMessage("确定要前往吗")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ Poi("", latLng, "").showRouteOnMap(this@WorkSiteTabActivity)
+ }
+
+ override fun onCancelClick() {
+
+ }
+ }).build().show()
+ }
+
alarmTextView.setOnClickListener {
navigatePageTo()
}
diff --git a/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt
index 7ec5243..1aee0a3 100644
--- a/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt
+++ b/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt
@@ -4,13 +4,15 @@
import com.casic.br.operationsite.base.BaseApplication
import com.casic.br.operationsite.extensions.separateResponseCode
import com.casic.br.operationsite.extensions.toErrorMessage
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteDetailModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.retrofit.RetrofitServiceManager
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.pengxh.kt.lite.extensions.launch
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.vm.BaseViewModel
+import com.pengxh.kt.lite.vm.LoadState
/**
* 现场作业ViewModel
@@ -18,14 +20,15 @@
class WorkSiteViewModel : BaseViewModel() {
private val gson = Gson()
- val workingModel = MutableLiveData()
+ val worksiteModel = MutableLiveData()
+ val detailModel = MutableLiveData()
fun obtainProjectListByPage(keywords: String, state: String, page: Int) = launch({
val response = RetrofitServiceManager.obtainProjectListByPage(keywords, state, page)
val responseCode = response.separateResponseCode()
if (responseCode == 200) {
- workingModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
+ worksiteModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
)
} else {
response.toErrorMessage().show(BaseApplication.obtainInstance())
@@ -33,4 +36,21 @@
}, {
it.printStackTrace()
})
+
+ fun obtainProjectDetail(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainProjectDetail(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ detailModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ loadState.value = LoadState.Success
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_device.xml b/app/src/main/res/drawable/ic_device.xml
new file mode 100644
index 0000000..831c4c4
--- /dev/null
+++ b/app/src/main/res/drawable/ic_device.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_location.xml b/app/src/main/res/drawable/ic_location.xml
new file mode 100644
index 0000000..52e376f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_location.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/build.gradle b/app/build.gradle
index 019b44e..22edc63 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -87,6 +87,10 @@
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//高德导航(带有地图,无需再依赖地图)
implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0'
+ //高德地图搜索
+ implementation 'com.amap.api:search:8.1.0'
+ //高德定位
+ implementation 'com.amap.api:location:5.3.1'
//CameraX
def CameraX_version = '1.1.0'
implementation "androidx.camera:camera-core:${CameraX_version}"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f5b198..902751b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,8 @@
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
index bed87f0..eb90311 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index bf3295f..027b98e 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index 2117609..6464946 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -33,7 +33,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -82,7 +82,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
new file mode 100644
index 0000000..2359c3c
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
@@ -0,0 +1,143 @@
+package com.casic.br.operationsite.model;
+
+public class WorkSiteDetailModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
new file mode 100644
index 0000000..e6aefc7
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
@@ -0,0 +1,169 @@
+package com.casic.br.operationsite.model;
+
+import java.util.List;
+
+/**
+ * 施工现场列表数据模型
+ */
+public class WorkSiteListModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
deleted file mode 100644
index b7954ca..0000000
--- a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package com.casic.br.operationsite.model;
-
-import java.util.List;
-
-public class WorkingListModel {
-
- private int code;
- private DataBean data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public DataBean getData() {
- return data;
- }
-
- public void setData(DataBean data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataBean {
- private List rows;
- private int total;
-
- public List getRows() {
- return rows;
- }
-
- public void setRows(List rows) {
- this.rows = rows;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public static class RowsBean {
- private String connectionPhone;
- private String id;
- private String imageUrl;
- private String updateTime;
- private String workPerson;
- private String workSiteDesc;
- private String workTitle;
-
- public String getConnectionPhone() {
- return connectionPhone;
- }
-
- public void setConnectionPhone(String connectionPhone) {
- this.connectionPhone = connectionPhone;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImageUrl() {
- return imageUrl;
- }
-
- public void setImageUrl(String imageUrl) {
- this.imageUrl = imageUrl;
- }
-
- public String getUpdateTime() {
- return updateTime;
- }
-
- public void setUpdateTime(String updateTime) {
- this.updateTime = updateTime;
- }
-
- public String getWorkPerson() {
- return workPerson;
- }
-
- public void setWorkPerson(String workPerson) {
- this.workPerson = workPerson;
- }
-
- public String getWorkSiteDesc() {
- return workSiteDesc;
- }
-
- public void setWorkSiteDesc(String workSiteDesc) {
- this.workSiteDesc = workSiteDesc;
- }
-
- public String getWorkTitle() {
- return workTitle;
- }
-
- public void setWorkTitle(String workTitle) {
- this.workTitle = workTitle;
- }
- }
- }
-}
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
index e489c55..c7890de 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
@@ -44,6 +44,15 @@
): String
/**
+ * 施工现场详情
+ */
+ @GET("/site/detail")
+ suspend fun obtainProjectDetail(
+ @Header("token") token: String,
+ @Query("id") id: String
+ ): String
+
+ /**
* 报警列表
*/
@GET("/alarm/listPage")
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
index 3ba3359..3a6f684 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
@@ -49,6 +49,13 @@
}
/**
+ * 施工现场详情
+ */
+ suspend fun obtainProjectDetail(id: String): String {
+ return api.obtainProjectDetail(AuthenticationHelper.token!!, id)
+ }
+
+ /**
* 报警列表
*/
suspend fun obtainAlarmListByPage(page: Int): String {
diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
index 00802a0..12d2275 100644
--- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
@@ -7,7 +7,11 @@
val USER_PERMISSIONS = arrayOf(
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
- Manifest.permission.CAMERA
+ Manifest.permission.CAMERA,
+ Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS,
+ Manifest.permission.ACCESS_COARSE_LOCATION,
+ Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.READ_PHONE_STATE
)
const val SERVER_BASE_URL = "http://192.168.43.66:8083"
diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
index 5411dbd..b1daa34 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
@@ -1,27 +1,38 @@
package com.casic.br.operationsite.view
import android.os.Bundle
+import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.AMap
import com.amap.api.maps.AMapOptions
import com.amap.api.maps.CameraUpdateFactory
-import com.amap.api.maps.model.BitmapDescriptorFactory
-import com.amap.api.maps.model.CameraPosition
-import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.MarkerOptions
+import com.amap.api.maps.model.*
+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.br.operationsite.R
+import com.casic.br.operationsite.utils.DialogHelper
+import com.casic.br.operationsite.vm.WorkSiteViewModel
import com.gyf.immersionbar.ImmersionBar
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.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import com.pengxh.kt.lite.vm.LoadState
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_site_tab.*
import kotlinx.android.synthetic.main.include_base_title.*
-class WorkSiteTabActivity : KotlinBaseActivity(), AMap.OnMapLoadedListener {
+class WorkSiteTabActivity : KotlinBaseActivity() {
+ private val kTag = "WorkSiteTabActivity"
private lateinit var aMap: AMap
+ private lateinit var workSiteViewModel: WorkSiteViewModel
+ private val geocoderSearch by lazy { GeocodeSearch(this) }
private var latLng: LatLng? = null
override fun initLayoutView(): Int = R.layout.activity_site_tab
@@ -37,7 +48,9 @@
override fun initData() {
val id = intent.getStringExtra(Constant.INTENT_PARAM)!!
-
+ /**
+ * 地图初始化设置
+ * */
aMap = mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
@@ -46,40 +59,99 @@
uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度
uiSettings.isRotateGesturesEnabled = false//不允许地图旋转
- //地图加载成功之后调用
- aMap.addOnMapLoadedListener(this)
- }
-
- override fun onMapLoaded() {
- if (latLng == null) {
- "经纬度异常,无法在地图显示".show(this)
- return
- }
/**
- * 参数1---要移动到的经纬度
- * 参数2---地图的放缩级别zoom
- * 参数3---地图倾斜度
- * 参数4---地图的旋转角度
+ * 数据初始化
* */
- val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f)
- val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback {
- override fun onFinish() {
- //添加Marker
- val markerOptions = MarkerOptions()
- .position(latLng)
- .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location))
- .draggable(true)
- aMap.addMarker(markerOptions)
+ workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java)
+ workSiteViewModel.obtainProjectDetail(id)
+ workSiteViewModel.detailModel.observe(this, {
+ if (it.code == 200) {
+ val detailData = it.data
+ projectNameView.text = detailData.workTitle
+ principalView.text = String.format("现场负责人:${detailData.workPerson}")
+ phoneNumberView.text = String.format("联系电话:${detailData.connectionPhone}")
+ completedDateView.text = String.format("竣工日期:${detailData.completedDate}")
+ projectProgressView.text = "工程进度:${detailData.projectProgress}%"
+
+ this.latLng = LatLng(
+ detailData.latitude.toDouble(), detailData.longitude.toDouble()
+ )
+ val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f)
+ val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback {
+ override fun onFinish() {
+ //添加Marker
+ val markerOptions = MarkerOptions()
+ .position(latLng)
+ .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location))
+ .draggable(true)
+ aMap.addMarker(markerOptions)
+ }
+
+ override fun onCancel() {
+
+ }
+ })
+
+ val queryParam = RegeocodeQuery(
+ LatLonPoint(detailData.latitude.toDouble(), detailData.longitude.toDouble()),
+ 200f,
+ GeocodeSearch.AMAP
+ )
+ geocoderSearch.getFromLocationAsyn(queryParam)
+ geocoderSearch.setOnGeocodeSearchListener(object :
+ GeocodeSearch.OnGeocodeSearchListener {
+ override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) {
+ if (rCode == 1000) {
+ locationView.text = String.format(
+ "地址:${result?.regeocodeAddress?.formatAddress}"
+ )
+ }
+ }
+
+ override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) {
+
+ }
+ })
}
+ })
- override fun onCancel() {
-
+ workSiteViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后...")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
}
})
}
override fun initEvent() {
+ navigationView.setOnClickListener {
+ if (latLng == null) {
+ "经纬度异常,无法开启导航".show(this)
+ return@setOnClickListener
+ }
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("提示")
+ .setMessage("确定要前往吗")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ Poi("", latLng, "").showRouteOnMap(this@WorkSiteTabActivity)
+ }
+
+ override fun onCancelClick() {
+
+ }
+ }).build().show()
+ }
+
alarmTextView.setOnClickListener {
navigatePageTo()
}
diff --git a/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt
index 7ec5243..1aee0a3 100644
--- a/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt
+++ b/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt
@@ -4,13 +4,15 @@
import com.casic.br.operationsite.base.BaseApplication
import com.casic.br.operationsite.extensions.separateResponseCode
import com.casic.br.operationsite.extensions.toErrorMessage
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteDetailModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.retrofit.RetrofitServiceManager
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.pengxh.kt.lite.extensions.launch
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.vm.BaseViewModel
+import com.pengxh.kt.lite.vm.LoadState
/**
* 现场作业ViewModel
@@ -18,14 +20,15 @@
class WorkSiteViewModel : BaseViewModel() {
private val gson = Gson()
- val workingModel = MutableLiveData()
+ val worksiteModel = MutableLiveData()
+ val detailModel = MutableLiveData()
fun obtainProjectListByPage(keywords: String, state: String, page: Int) = launch({
val response = RetrofitServiceManager.obtainProjectListByPage(keywords, state, page)
val responseCode = response.separateResponseCode()
if (responseCode == 200) {
- workingModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
+ worksiteModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
)
} else {
response.toErrorMessage().show(BaseApplication.obtainInstance())
@@ -33,4 +36,21 @@
}, {
it.printStackTrace()
})
+
+ fun obtainProjectDetail(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainProjectDetail(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ detailModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ loadState.value = LoadState.Success
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_device.xml b/app/src/main/res/drawable/ic_device.xml
new file mode 100644
index 0000000..831c4c4
--- /dev/null
+++ b/app/src/main/res/drawable/ic_device.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_location.xml b/app/src/main/res/drawable/ic_location.xml
new file mode 100644
index 0000000..52e376f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_location.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml
index 1366064..e0f063b 100644
--- a/app/src/main/res/layout/activity_permssion.xml
+++ b/app/src/main/res/layout/activity_permssion.xml
@@ -122,6 +122,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -16,6 +18,10 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
index ff5ce37..6f8a036 100644
--- a/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
+++ b/app/src/main/java/com/casic/br/operationsite/adapter/WorkingListAdapter.kt
@@ -9,12 +9,12 @@
import com.bumptech.glide.Glide
import com.casic.br.operationsite.R
import com.casic.br.operationsite.extensions.combineImagePath
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
class WorkingListAdapter(
private val context: Context,
- private val dataRows: MutableList
+ private val dataRows: MutableList
) : RecyclerView.Adapter() {
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
index bed87f0..eb90311 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/CompletedFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
index bf3295f..027b98e 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/NotStartFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -32,7 +32,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -81,7 +81,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
index 2117609..6464946 100644
--- a/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
+++ b/app/src/main/java/com/casic/br/operationsite/fragment/WorkingFragment.kt
@@ -11,7 +11,7 @@
import com.casic.br.operationsite.adapter.WorkingListAdapter
import com.casic.br.operationsite.extensions.showEmptyPage
import com.casic.br.operationsite.model.BroadcastDataModel
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.utils.LocaleConstant
import com.casic.br.operationsite.view.WorkSiteTabActivity
import com.casic.br.operationsite.vm.WorkSiteViewModel
@@ -33,7 +33,7 @@
private lateinit var workingListAdapter: WorkingListAdapter
private lateinit var workSiteViewModel: WorkSiteViewModel
private lateinit var broadcastManager: BroadcastManager
- private var dataBeans: MutableList = ArrayList()
+ private var dataBeans: MutableList = ArrayList()
private var pageIndex = 1
private var isRefresh = false
private var isLoadMore = false
@@ -82,7 +82,7 @@
obtainProjectListByPage()
}
- workSiteViewModel.workingModel.observe(this, {
+ workSiteViewModel.worksiteModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
new file mode 100644
index 0000000..2359c3c
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteDetailModel.java
@@ -0,0 +1,143 @@
+package com.casic.br.operationsite.model;
+
+public class WorkSiteDetailModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
new file mode 100644
index 0000000..e6aefc7
--- /dev/null
+++ b/app/src/main/java/com/casic/br/operationsite/model/WorkSiteListModel.java
@@ -0,0 +1,169 @@
+package com.casic.br.operationsite.model;
+
+import java.util.List;
+
+/**
+ * 施工现场列表数据模型
+ */
+public class WorkSiteListModel {
+
+ private int code;
+ private DataBean data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataBean getData() {
+ return data;
+ }
+
+ public void setData(DataBean data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataBean {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsBean {
+ private String completedDate;
+ private String connectionPhone;
+ private String id;
+ private String imageUrl;
+ private String latitude;
+ private String longitude;
+ private String projectProgress;
+ private String updateTime;
+ private String workPerson;
+ private String workSiteDesc;
+ private String workTitle;
+
+ public String getCompletedDate() {
+ return completedDate;
+ }
+
+ public void setCompletedDate(String completedDate) {
+ this.completedDate = completedDate;
+ }
+
+ public String getConnectionPhone() {
+ return connectionPhone;
+ }
+
+ public void setConnectionPhone(String connectionPhone) {
+ this.connectionPhone = connectionPhone;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getProjectProgress() {
+ return projectProgress;
+ }
+
+ public void setProjectProgress(String projectProgress) {
+ this.projectProgress = projectProgress;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getWorkPerson() {
+ return workPerson;
+ }
+
+ public void setWorkPerson(String workPerson) {
+ this.workPerson = workPerson;
+ }
+
+ public String getWorkSiteDesc() {
+ return workSiteDesc;
+ }
+
+ public void setWorkSiteDesc(String workSiteDesc) {
+ this.workSiteDesc = workSiteDesc;
+ }
+
+ public String getWorkTitle() {
+ return workTitle;
+ }
+
+ public void setWorkTitle(String workTitle) {
+ this.workTitle = workTitle;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java b/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
deleted file mode 100644
index b7954ca..0000000
--- a/app/src/main/java/com/casic/br/operationsite/model/WorkingListModel.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package com.casic.br.operationsite.model;
-
-import java.util.List;
-
-public class WorkingListModel {
-
- private int code;
- private DataBean data;
- private String message;
- private boolean success;
-
- public int getCode() {
- return code;
- }
-
- public void setCode(int code) {
- this.code = code;
- }
-
- public DataBean getData() {
- return data;
- }
-
- public void setData(DataBean data) {
- this.data = data;
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- this.message = message;
- }
-
- public boolean isSuccess() {
- return success;
- }
-
- public void setSuccess(boolean success) {
- this.success = success;
- }
-
- public static class DataBean {
- private List rows;
- private int total;
-
- public List getRows() {
- return rows;
- }
-
- public void setRows(List rows) {
- this.rows = rows;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public static class RowsBean {
- private String connectionPhone;
- private String id;
- private String imageUrl;
- private String updateTime;
- private String workPerson;
- private String workSiteDesc;
- private String workTitle;
-
- public String getConnectionPhone() {
- return connectionPhone;
- }
-
- public void setConnectionPhone(String connectionPhone) {
- this.connectionPhone = connectionPhone;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getImageUrl() {
- return imageUrl;
- }
-
- public void setImageUrl(String imageUrl) {
- this.imageUrl = imageUrl;
- }
-
- public String getUpdateTime() {
- return updateTime;
- }
-
- public void setUpdateTime(String updateTime) {
- this.updateTime = updateTime;
- }
-
- public String getWorkPerson() {
- return workPerson;
- }
-
- public void setWorkPerson(String workPerson) {
- this.workPerson = workPerson;
- }
-
- public String getWorkSiteDesc() {
- return workSiteDesc;
- }
-
- public void setWorkSiteDesc(String workSiteDesc) {
- this.workSiteDesc = workSiteDesc;
- }
-
- public String getWorkTitle() {
- return workTitle;
- }
-
- public void setWorkTitle(String workTitle) {
- this.workTitle = workTitle;
- }
- }
- }
-}
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
index e489c55..c7890de 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt
@@ -44,6 +44,15 @@
): String
/**
+ * 施工现场详情
+ */
+ @GET("/site/detail")
+ suspend fun obtainProjectDetail(
+ @Header("token") token: String,
+ @Query("id") id: String
+ ): String
+
+ /**
* 报警列表
*/
@GET("/alarm/listPage")
diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
index 3ba3359..3a6f684 100644
--- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt
@@ -49,6 +49,13 @@
}
/**
+ * 施工现场详情
+ */
+ suspend fun obtainProjectDetail(id: String): String {
+ return api.obtainProjectDetail(AuthenticationHelper.token!!, id)
+ }
+
+ /**
* 报警列表
*/
suspend fun obtainAlarmListByPage(page: Int): String {
diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
index 00802a0..12d2275 100644
--- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt
@@ -7,7 +7,11 @@
val USER_PERMISSIONS = arrayOf(
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
- Manifest.permission.CAMERA
+ Manifest.permission.CAMERA,
+ Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS,
+ Manifest.permission.ACCESS_COARSE_LOCATION,
+ Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.READ_PHONE_STATE
)
const val SERVER_BASE_URL = "http://192.168.43.66:8083"
diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
index 5411dbd..b1daa34 100644
--- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
+++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt
@@ -1,27 +1,38 @@
package com.casic.br.operationsite.view
import android.os.Bundle
+import androidx.lifecycle.ViewModelProvider
import com.amap.api.maps.AMap
import com.amap.api.maps.AMapOptions
import com.amap.api.maps.CameraUpdateFactory
-import com.amap.api.maps.model.BitmapDescriptorFactory
-import com.amap.api.maps.model.CameraPosition
-import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.MarkerOptions
+import com.amap.api.maps.model.*
+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.br.operationsite.R
+import com.casic.br.operationsite.utils.DialogHelper
+import com.casic.br.operationsite.vm.WorkSiteViewModel
import com.gyf.immersionbar.ImmersionBar
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.extensions.showRouteOnMap
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import com.pengxh.kt.lite.vm.LoadState
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_site_tab.*
import kotlinx.android.synthetic.main.include_base_title.*
-class WorkSiteTabActivity : KotlinBaseActivity(), AMap.OnMapLoadedListener {
+class WorkSiteTabActivity : KotlinBaseActivity() {
+ private val kTag = "WorkSiteTabActivity"
private lateinit var aMap: AMap
+ private lateinit var workSiteViewModel: WorkSiteViewModel
+ private val geocoderSearch by lazy { GeocodeSearch(this) }
private var latLng: LatLng? = null
override fun initLayoutView(): Int = R.layout.activity_site_tab
@@ -37,7 +48,9 @@
override fun initData() {
val id = intent.getStringExtra(Constant.INTENT_PARAM)!!
-
+ /**
+ * 地图初始化设置
+ * */
aMap = mapView.map
aMap.mapType = AMap.MAP_TYPE_NORMAL
val uiSettings = aMap.uiSettings
@@ -46,40 +59,99 @@
uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度
uiSettings.isRotateGesturesEnabled = false//不允许地图旋转
- //地图加载成功之后调用
- aMap.addOnMapLoadedListener(this)
- }
-
- override fun onMapLoaded() {
- if (latLng == null) {
- "经纬度异常,无法在地图显示".show(this)
- return
- }
/**
- * 参数1---要移动到的经纬度
- * 参数2---地图的放缩级别zoom
- * 参数3---地图倾斜度
- * 参数4---地图的旋转角度
+ * 数据初始化
* */
- val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f)
- val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition)
- aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback {
- override fun onFinish() {
- //添加Marker
- val markerOptions = MarkerOptions()
- .position(latLng)
- .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location))
- .draggable(true)
- aMap.addMarker(markerOptions)
+ workSiteViewModel = ViewModelProvider(this).get(WorkSiteViewModel::class.java)
+ workSiteViewModel.obtainProjectDetail(id)
+ workSiteViewModel.detailModel.observe(this, {
+ if (it.code == 200) {
+ val detailData = it.data
+ projectNameView.text = detailData.workTitle
+ principalView.text = String.format("现场负责人:${detailData.workPerson}")
+ phoneNumberView.text = String.format("联系电话:${detailData.connectionPhone}")
+ completedDateView.text = String.format("竣工日期:${detailData.completedDate}")
+ projectProgressView.text = "工程进度:${detailData.projectProgress}%"
+
+ this.latLng = LatLng(
+ detailData.latitude.toDouble(), detailData.longitude.toDouble()
+ )
+ val cameraPosition = CameraPosition(latLng, 13f, 0f, 0f)
+ val newCameraPosition = CameraUpdateFactory.newCameraPosition(cameraPosition)
+ aMap.animateCamera(newCameraPosition, 1500, object : AMap.CancelableCallback {
+ override fun onFinish() {
+ //添加Marker
+ val markerOptions = MarkerOptions()
+ .position(latLng)
+ .icon(BitmapDescriptorFactory.fromResource(R.mipmap.well_location))
+ .draggable(true)
+ aMap.addMarker(markerOptions)
+ }
+
+ override fun onCancel() {
+
+ }
+ })
+
+ val queryParam = RegeocodeQuery(
+ LatLonPoint(detailData.latitude.toDouble(), detailData.longitude.toDouble()),
+ 200f,
+ GeocodeSearch.AMAP
+ )
+ geocoderSearch.getFromLocationAsyn(queryParam)
+ geocoderSearch.setOnGeocodeSearchListener(object :
+ GeocodeSearch.OnGeocodeSearchListener {
+ override fun onRegeocodeSearched(result: RegeocodeResult?, rCode: Int) {
+ if (rCode == 1000) {
+ locationView.text = String.format(
+ "地址:${result?.regeocodeAddress?.formatAddress}"
+ )
+ }
+ }
+
+ override fun onGeocodeSearched(result: GeocodeResult?, rCode: Int) {
+
+ }
+ })
}
+ })
- override fun onCancel() {
-
+ workSiteViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后...")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
}
})
}
override fun initEvent() {
+ navigationView.setOnClickListener {
+ if (latLng == null) {
+ "经纬度异常,无法开启导航".show(this)
+ return@setOnClickListener
+ }
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("提示")
+ .setMessage("确定要前往吗")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ Poi("", latLng, "").showRouteOnMap(this@WorkSiteTabActivity)
+ }
+
+ override fun onCancelClick() {
+
+ }
+ }).build().show()
+ }
+
alarmTextView.setOnClickListener {
navigatePageTo()
}
diff --git a/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt
index 7ec5243..1aee0a3 100644
--- a/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt
+++ b/app/src/main/java/com/casic/br/operationsite/vm/WorkSiteViewModel.kt
@@ -4,13 +4,15 @@
import com.casic.br.operationsite.base.BaseApplication
import com.casic.br.operationsite.extensions.separateResponseCode
import com.casic.br.operationsite.extensions.toErrorMessage
-import com.casic.br.operationsite.model.WorkingListModel
+import com.casic.br.operationsite.model.WorkSiteDetailModel
+import com.casic.br.operationsite.model.WorkSiteListModel
import com.casic.br.operationsite.retrofit.RetrofitServiceManager
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.pengxh.kt.lite.extensions.launch
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.vm.BaseViewModel
+import com.pengxh.kt.lite.vm.LoadState
/**
* 现场作业ViewModel
@@ -18,14 +20,15 @@
class WorkSiteViewModel : BaseViewModel() {
private val gson = Gson()
- val workingModel = MutableLiveData()
+ val worksiteModel = MutableLiveData()
+ val detailModel = MutableLiveData()
fun obtainProjectListByPage(keywords: String, state: String, page: Int) = launch({
val response = RetrofitServiceManager.obtainProjectListByPage(keywords, state, page)
val responseCode = response.separateResponseCode()
if (responseCode == 200) {
- workingModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
+ worksiteModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
)
} else {
response.toErrorMessage().show(BaseApplication.obtainInstance())
@@ -33,4 +36,21 @@
}, {
it.printStackTrace()
})
+
+ fun obtainProjectDetail(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainProjectDetail(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ detailModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ loadState.value = LoadState.Success
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_device.xml b/app/src/main/res/drawable/ic_device.xml
new file mode 100644
index 0000000..831c4c4
--- /dev/null
+++ b/app/src/main/res/drawable/ic_device.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_location.xml b/app/src/main/res/drawable/ic_location.xml
new file mode 100644
index 0000000..52e376f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_location.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml
index 1366064..e0f063b 100644
--- a/app/src/main/res/layout/activity_permssion.xml
+++ b/app/src/main/res/layout/activity_permssion.xml
@@ -122,6 +122,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -71,19 +68,19 @@
android:id="@+id/principalView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="负责人:张三" />
+ android:text="负责人:" />
+ android:text="电话:" />
+ android:text="竣工日期:" />
+ android:text="工程进度:" />
@@ -149,7 +146,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:text="地址:深圳市南山区前海自贸区XX路XX号"
+ android:text="地址:"
android:textSize="@dimen/sp_14" />