diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c582d6c..d2e068a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -51,6 +51,7 @@
+
+
()
+ }
+
changePwdLayout.setOnClickListener {
ChangePasswordDialog.Builder()
.setContext(requireContext())
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c582d6c..d2e068a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -51,6 +51,7 @@
+
()
+ }
+
changePwdLayout.setOnClickListener {
ChangePasswordDialog.Builder()
.setContext(requireContext())
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
index 19aafdd..148c993 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
@@ -7,6 +7,7 @@
import com.casic.smart.town.sanxi.adapter.InfrastructureAdapter
import com.casic.smart.town.sanxi.model.DeviceModel
import com.casic.smart.town.sanxi.util.ChartViewHelper
+import com.casic.smart.town.sanxi.util.LocaleConstant
import com.casic.smart.town.sanxi.view.AllWellActivity
import com.casic.smart.town.sanxi.view.BFWellActivity
import com.casic.smart.town.sanxi.view.CFWellActivity
@@ -20,11 +21,12 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.timestampToCompleteDate
import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_statistics.*
class StatisticsPageFragment : KotlinBaseFragment() {
- private val kTag = "StatisticsPageFragment"
private lateinit var pipeViewModel: PipeViewModel
private lateinit var wellViewModel: WellViewModel
private lateinit var infrastructureViewModel: InfrastructureViewModel
@@ -125,11 +127,10 @@
}
})
- infrastructureViewModel.countInfrastructure()
infrastructureViewModel.resultModel.observe(this, {
if (it.code == 200) {
- infrastructureRecyclerView.adapter =
- InfrastructureAdapter(requireContext(), it.data)
+ infrastructureRv.adapter = InfrastructureAdapter(requireContext(), it.data)
+ SaveKeyValues.putValue(LocaleConstant.INFRASTRUCTURE, it.toJson())
}
})
}
@@ -146,19 +147,28 @@
allWellDataView.setOnClickListener {
requireContext().navigatePageTo()
}
+
+ refreshImageView.setOnClickListener {
+ requestData()
+ }
}
override fun onResume() {
super.onResume()
- //每次页面切换都需要重新刷新不同状态的闸井数量
+ //每次页面切换都需要重新刷新数据
+ requestData()
+ }
+
+ private fun requestData() {
+ infrastructureViewModel.countInfrastructure()
+ wellViewModel.countWellByState()
pipeViewModel.getAlarmStatistics()
+ deviceViewModel.countDevice()
val time = System.currentTimeMillis()
pipeViewModel.getPipeHealthStatus(
time.timestampToLastWeekDate()!!,
time.timestampToCompleteDate(),
""
)
- wellViewModel.countWellByState()
- deviceViewModel.countDevice()
}
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c582d6c..d2e068a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -51,6 +51,7 @@
+
()
+ }
+
changePwdLayout.setOnClickListener {
ChangePasswordDialog.Builder()
.setContext(requireContext())
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
index 19aafdd..148c993 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
@@ -7,6 +7,7 @@
import com.casic.smart.town.sanxi.adapter.InfrastructureAdapter
import com.casic.smart.town.sanxi.model.DeviceModel
import com.casic.smart.town.sanxi.util.ChartViewHelper
+import com.casic.smart.town.sanxi.util.LocaleConstant
import com.casic.smart.town.sanxi.view.AllWellActivity
import com.casic.smart.town.sanxi.view.BFWellActivity
import com.casic.smart.town.sanxi.view.CFWellActivity
@@ -20,11 +21,12 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.timestampToCompleteDate
import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_statistics.*
class StatisticsPageFragment : KotlinBaseFragment() {
- private val kTag = "StatisticsPageFragment"
private lateinit var pipeViewModel: PipeViewModel
private lateinit var wellViewModel: WellViewModel
private lateinit var infrastructureViewModel: InfrastructureViewModel
@@ -125,11 +127,10 @@
}
})
- infrastructureViewModel.countInfrastructure()
infrastructureViewModel.resultModel.observe(this, {
if (it.code == 200) {
- infrastructureRecyclerView.adapter =
- InfrastructureAdapter(requireContext(), it.data)
+ infrastructureRv.adapter = InfrastructureAdapter(requireContext(), it.data)
+ SaveKeyValues.putValue(LocaleConstant.INFRASTRUCTURE, it.toJson())
}
})
}
@@ -146,19 +147,28 @@
allWellDataView.setOnClickListener {
requireContext().navigatePageTo()
}
+
+ refreshImageView.setOnClickListener {
+ requestData()
+ }
}
override fun onResume() {
super.onResume()
- //每次页面切换都需要重新刷新不同状态的闸井数量
+ //每次页面切换都需要重新刷新数据
+ requestData()
+ }
+
+ private fun requestData() {
+ infrastructureViewModel.countInfrastructure()
+ wellViewModel.countWellByState()
pipeViewModel.getAlarmStatistics()
+ deviceViewModel.countDevice()
val time = System.currentTimeMillis()
pipeViewModel.getPipeHealthStatus(
time.timestampToLastWeekDate()!!,
time.timestampToCompleteDate(),
""
)
- wellViewModel.countWellByState()
- deviceViewModel.countDevice()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
index ad14ce6..0a71d55 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
+++ b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
@@ -44,6 +44,7 @@
public static class DataModel {
private int facilitiesQuantity;
private String facilitiesName;
+ private String id;
public int getFacilitiesQuantity() {
return facilitiesQuantity;
@@ -60,5 +61,13 @@
public void setFacilitiesName(String facilitiesName) {
this.facilitiesName = facilitiesName;
}
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c582d6c..d2e068a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -51,6 +51,7 @@
+
()
+ }
+
changePwdLayout.setOnClickListener {
ChangePasswordDialog.Builder()
.setContext(requireContext())
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
index 19aafdd..148c993 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
@@ -7,6 +7,7 @@
import com.casic.smart.town.sanxi.adapter.InfrastructureAdapter
import com.casic.smart.town.sanxi.model.DeviceModel
import com.casic.smart.town.sanxi.util.ChartViewHelper
+import com.casic.smart.town.sanxi.util.LocaleConstant
import com.casic.smart.town.sanxi.view.AllWellActivity
import com.casic.smart.town.sanxi.view.BFWellActivity
import com.casic.smart.town.sanxi.view.CFWellActivity
@@ -20,11 +21,12 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.timestampToCompleteDate
import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_statistics.*
class StatisticsPageFragment : KotlinBaseFragment() {
- private val kTag = "StatisticsPageFragment"
private lateinit var pipeViewModel: PipeViewModel
private lateinit var wellViewModel: WellViewModel
private lateinit var infrastructureViewModel: InfrastructureViewModel
@@ -125,11 +127,10 @@
}
})
- infrastructureViewModel.countInfrastructure()
infrastructureViewModel.resultModel.observe(this, {
if (it.code == 200) {
- infrastructureRecyclerView.adapter =
- InfrastructureAdapter(requireContext(), it.data)
+ infrastructureRv.adapter = InfrastructureAdapter(requireContext(), it.data)
+ SaveKeyValues.putValue(LocaleConstant.INFRASTRUCTURE, it.toJson())
}
})
}
@@ -146,19 +147,28 @@
allWellDataView.setOnClickListener {
requireContext().navigatePageTo()
}
+
+ refreshImageView.setOnClickListener {
+ requestData()
+ }
}
override fun onResume() {
super.onResume()
- //每次页面切换都需要重新刷新不同状态的闸井数量
+ //每次页面切换都需要重新刷新数据
+ requestData()
+ }
+
+ private fun requestData() {
+ infrastructureViewModel.countInfrastructure()
+ wellViewModel.countWellByState()
pipeViewModel.getAlarmStatistics()
+ deviceViewModel.countDevice()
val time = System.currentTimeMillis()
pipeViewModel.getPipeHealthStatus(
time.timestampToLastWeekDate()!!,
time.timestampToCompleteDate(),
""
)
- wellViewModel.countWellByState()
- deviceViewModel.countDevice()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
index ad14ce6..0a71d55 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
+++ b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
@@ -44,6 +44,7 @@
public static class DataModel {
private int facilitiesQuantity;
private String facilitiesName;
+ private String id;
public int getFacilitiesQuantity() {
return facilitiesQuantity;
@@ -60,5 +61,13 @@
public void setFacilitiesName(String facilitiesName) {
this.facilitiesName = facilitiesName;
}
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
}
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
index 183c85c..7e43a9c 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
@@ -23,6 +23,7 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_DETAIL_MODEL = "userDetailModel"
+ const val INFRASTRUCTURE = "infrastructure"
val LAYER = arrayListOf(
"http://111.198.10.15:13002/arcgis/rest/services/sxxz/MapServer/0",
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c582d6c..d2e068a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -51,6 +51,7 @@
+
()
+ }
+
changePwdLayout.setOnClickListener {
ChangePasswordDialog.Builder()
.setContext(requireContext())
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
index 19aafdd..148c993 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
@@ -7,6 +7,7 @@
import com.casic.smart.town.sanxi.adapter.InfrastructureAdapter
import com.casic.smart.town.sanxi.model.DeviceModel
import com.casic.smart.town.sanxi.util.ChartViewHelper
+import com.casic.smart.town.sanxi.util.LocaleConstant
import com.casic.smart.town.sanxi.view.AllWellActivity
import com.casic.smart.town.sanxi.view.BFWellActivity
import com.casic.smart.town.sanxi.view.CFWellActivity
@@ -20,11 +21,12 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.timestampToCompleteDate
import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_statistics.*
class StatisticsPageFragment : KotlinBaseFragment() {
- private val kTag = "StatisticsPageFragment"
private lateinit var pipeViewModel: PipeViewModel
private lateinit var wellViewModel: WellViewModel
private lateinit var infrastructureViewModel: InfrastructureViewModel
@@ -125,11 +127,10 @@
}
})
- infrastructureViewModel.countInfrastructure()
infrastructureViewModel.resultModel.observe(this, {
if (it.code == 200) {
- infrastructureRecyclerView.adapter =
- InfrastructureAdapter(requireContext(), it.data)
+ infrastructureRv.adapter = InfrastructureAdapter(requireContext(), it.data)
+ SaveKeyValues.putValue(LocaleConstant.INFRASTRUCTURE, it.toJson())
}
})
}
@@ -146,19 +147,28 @@
allWellDataView.setOnClickListener {
requireContext().navigatePageTo()
}
+
+ refreshImageView.setOnClickListener {
+ requestData()
+ }
}
override fun onResume() {
super.onResume()
- //每次页面切换都需要重新刷新不同状态的闸井数量
+ //每次页面切换都需要重新刷新数据
+ requestData()
+ }
+
+ private fun requestData() {
+ infrastructureViewModel.countInfrastructure()
+ wellViewModel.countWellByState()
pipeViewModel.getAlarmStatistics()
+ deviceViewModel.countDevice()
val time = System.currentTimeMillis()
pipeViewModel.getPipeHealthStatus(
time.timestampToLastWeekDate()!!,
time.timestampToCompleteDate(),
""
)
- wellViewModel.countWellByState()
- deviceViewModel.countDevice()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
index ad14ce6..0a71d55 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
+++ b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
@@ -44,6 +44,7 @@
public static class DataModel {
private int facilitiesQuantity;
private String facilitiesName;
+ private String id;
public int getFacilitiesQuantity() {
return facilitiesQuantity;
@@ -60,5 +61,13 @@
public void setFacilitiesName(String facilitiesName) {
this.facilitiesName = facilitiesName;
}
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
}
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
index 183c85c..7e43a9c 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
@@ -23,6 +23,7 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_DETAIL_MODEL = "userDetailModel"
+ const val INFRASTRUCTURE = "infrastructure"
val LAYER = arrayListOf(
"http://111.198.10.15:13002/arcgis/rest/services/sxxz/MapServer/0",
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
index b9b15b2..e079e75 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
@@ -1,5 +1,6 @@
package com.casic.smart.town.sanxi.util.retrofit
+import okhttp3.RequestBody
import retrofit2.http.*
interface RetrofitService {
@@ -68,6 +69,12 @@
@GET("/statics/facilitiesStaticsByType")
suspend fun countInfrastructure(@Header("token") token: String): String
+ @POST("/statics/facilities/update")
+ suspend fun updateInfrastructureData(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
+
/**
* 根据设备类型统计设备数量
* */
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c582d6c..d2e068a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -51,6 +51,7 @@
+
()
+ }
+
changePwdLayout.setOnClickListener {
ChangePasswordDialog.Builder()
.setContext(requireContext())
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
index 19aafdd..148c993 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
@@ -7,6 +7,7 @@
import com.casic.smart.town.sanxi.adapter.InfrastructureAdapter
import com.casic.smart.town.sanxi.model.DeviceModel
import com.casic.smart.town.sanxi.util.ChartViewHelper
+import com.casic.smart.town.sanxi.util.LocaleConstant
import com.casic.smart.town.sanxi.view.AllWellActivity
import com.casic.smart.town.sanxi.view.BFWellActivity
import com.casic.smart.town.sanxi.view.CFWellActivity
@@ -20,11 +21,12 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.timestampToCompleteDate
import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_statistics.*
class StatisticsPageFragment : KotlinBaseFragment() {
- private val kTag = "StatisticsPageFragment"
private lateinit var pipeViewModel: PipeViewModel
private lateinit var wellViewModel: WellViewModel
private lateinit var infrastructureViewModel: InfrastructureViewModel
@@ -125,11 +127,10 @@
}
})
- infrastructureViewModel.countInfrastructure()
infrastructureViewModel.resultModel.observe(this, {
if (it.code == 200) {
- infrastructureRecyclerView.adapter =
- InfrastructureAdapter(requireContext(), it.data)
+ infrastructureRv.adapter = InfrastructureAdapter(requireContext(), it.data)
+ SaveKeyValues.putValue(LocaleConstant.INFRASTRUCTURE, it.toJson())
}
})
}
@@ -146,19 +147,28 @@
allWellDataView.setOnClickListener {
requireContext().navigatePageTo()
}
+
+ refreshImageView.setOnClickListener {
+ requestData()
+ }
}
override fun onResume() {
super.onResume()
- //每次页面切换都需要重新刷新不同状态的闸井数量
+ //每次页面切换都需要重新刷新数据
+ requestData()
+ }
+
+ private fun requestData() {
+ infrastructureViewModel.countInfrastructure()
+ wellViewModel.countWellByState()
pipeViewModel.getAlarmStatistics()
+ deviceViewModel.countDevice()
val time = System.currentTimeMillis()
pipeViewModel.getPipeHealthStatus(
time.timestampToLastWeekDate()!!,
time.timestampToCompleteDate(),
""
)
- wellViewModel.countWellByState()
- deviceViewModel.countDevice()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
index ad14ce6..0a71d55 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
+++ b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
@@ -44,6 +44,7 @@
public static class DataModel {
private int facilitiesQuantity;
private String facilitiesName;
+ private String id;
public int getFacilitiesQuantity() {
return facilitiesQuantity;
@@ -60,5 +61,13 @@
public void setFacilitiesName(String facilitiesName) {
this.facilitiesName = facilitiesName;
}
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
}
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
index 183c85c..7e43a9c 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
@@ -23,6 +23,7 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_DETAIL_MODEL = "userDetailModel"
+ const val INFRASTRUCTURE = "infrastructure"
val LAYER = arrayListOf(
"http://111.198.10.15:13002/arcgis/rest/services/sxxz/MapServer/0",
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
index b9b15b2..e079e75 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
@@ -1,5 +1,6 @@
package com.casic.smart.town.sanxi.util.retrofit
+import okhttp3.RequestBody
import retrofit2.http.*
interface RetrofitService {
@@ -68,6 +69,12 @@
@GET("/statics/facilitiesStaticsByType")
suspend fun countInfrastructure(@Header("token") token: String): String
+ @POST("/statics/facilities/update")
+ suspend fun updateInfrastructureData(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
+
/**
* 根据设备类型统计设备数量
* */
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
index 09e390d..6f1fe87 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
@@ -4,6 +4,9 @@
import com.casic.smart.town.sanxi.util.LocaleConstant
import com.pengxh.kt.lite.utils.RetrofitFactory
import com.pengxh.kt.lite.utils.SaveKeyValues
+import okhttp3.MediaType.Companion.toMediaType
+import okhttp3.RequestBody.Companion.toRequestBody
+import org.json.JSONObject
object RetrofitServiceManager {
@@ -76,6 +79,23 @@
return smartTownApi.countInfrastructure(AuthenticationHelper.token!!)
}
+ suspend fun updateInfrastructureData(
+ id: String,
+ facilitiesCode: String,
+ facilitiesName: String,
+ facilitiesQuantity: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ paramObject.put("facilitiesCode", facilitiesCode)
+ paramObject.put("facilitiesName", facilitiesName)
+ paramObject.put("facilitiesQuantity", facilitiesQuantity)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return smartTownApi.updateInfrastructureData(AuthenticationHelper.token!!, requestBody)
+ }
+
suspend fun countDevice(): String {
return smartTownApi.countDevice(AuthenticationHelper.token!!)
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c582d6c..d2e068a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -51,6 +51,7 @@
+
()
+ }
+
changePwdLayout.setOnClickListener {
ChangePasswordDialog.Builder()
.setContext(requireContext())
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
index 19aafdd..148c993 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
@@ -7,6 +7,7 @@
import com.casic.smart.town.sanxi.adapter.InfrastructureAdapter
import com.casic.smart.town.sanxi.model.DeviceModel
import com.casic.smart.town.sanxi.util.ChartViewHelper
+import com.casic.smart.town.sanxi.util.LocaleConstant
import com.casic.smart.town.sanxi.view.AllWellActivity
import com.casic.smart.town.sanxi.view.BFWellActivity
import com.casic.smart.town.sanxi.view.CFWellActivity
@@ -20,11 +21,12 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.timestampToCompleteDate
import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_statistics.*
class StatisticsPageFragment : KotlinBaseFragment() {
- private val kTag = "StatisticsPageFragment"
private lateinit var pipeViewModel: PipeViewModel
private lateinit var wellViewModel: WellViewModel
private lateinit var infrastructureViewModel: InfrastructureViewModel
@@ -125,11 +127,10 @@
}
})
- infrastructureViewModel.countInfrastructure()
infrastructureViewModel.resultModel.observe(this, {
if (it.code == 200) {
- infrastructureRecyclerView.adapter =
- InfrastructureAdapter(requireContext(), it.data)
+ infrastructureRv.adapter = InfrastructureAdapter(requireContext(), it.data)
+ SaveKeyValues.putValue(LocaleConstant.INFRASTRUCTURE, it.toJson())
}
})
}
@@ -146,19 +147,28 @@
allWellDataView.setOnClickListener {
requireContext().navigatePageTo()
}
+
+ refreshImageView.setOnClickListener {
+ requestData()
+ }
}
override fun onResume() {
super.onResume()
- //每次页面切换都需要重新刷新不同状态的闸井数量
+ //每次页面切换都需要重新刷新数据
+ requestData()
+ }
+
+ private fun requestData() {
+ infrastructureViewModel.countInfrastructure()
+ wellViewModel.countWellByState()
pipeViewModel.getAlarmStatistics()
+ deviceViewModel.countDevice()
val time = System.currentTimeMillis()
pipeViewModel.getPipeHealthStatus(
time.timestampToLastWeekDate()!!,
time.timestampToCompleteDate(),
""
)
- wellViewModel.countWellByState()
- deviceViewModel.countDevice()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
index ad14ce6..0a71d55 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
+++ b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
@@ -44,6 +44,7 @@
public static class DataModel {
private int facilitiesQuantity;
private String facilitiesName;
+ private String id;
public int getFacilitiesQuantity() {
return facilitiesQuantity;
@@ -60,5 +61,13 @@
public void setFacilitiesName(String facilitiesName) {
this.facilitiesName = facilitiesName;
}
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
}
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
index 183c85c..7e43a9c 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
@@ -23,6 +23,7 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_DETAIL_MODEL = "userDetailModel"
+ const val INFRASTRUCTURE = "infrastructure"
val LAYER = arrayListOf(
"http://111.198.10.15:13002/arcgis/rest/services/sxxz/MapServer/0",
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
index b9b15b2..e079e75 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
@@ -1,5 +1,6 @@
package com.casic.smart.town.sanxi.util.retrofit
+import okhttp3.RequestBody
import retrofit2.http.*
interface RetrofitService {
@@ -68,6 +69,12 @@
@GET("/statics/facilitiesStaticsByType")
suspend fun countInfrastructure(@Header("token") token: String): String
+ @POST("/statics/facilities/update")
+ suspend fun updateInfrastructureData(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
+
/**
* 根据设备类型统计设备数量
* */
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
index 09e390d..6f1fe87 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
@@ -4,6 +4,9 @@
import com.casic.smart.town.sanxi.util.LocaleConstant
import com.pengxh.kt.lite.utils.RetrofitFactory
import com.pengxh.kt.lite.utils.SaveKeyValues
+import okhttp3.MediaType.Companion.toMediaType
+import okhttp3.RequestBody.Companion.toRequestBody
+import org.json.JSONObject
object RetrofitServiceManager {
@@ -76,6 +79,23 @@
return smartTownApi.countInfrastructure(AuthenticationHelper.token!!)
}
+ suspend fun updateInfrastructureData(
+ id: String,
+ facilitiesCode: String,
+ facilitiesName: String,
+ facilitiesQuantity: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ paramObject.put("facilitiesCode", facilitiesCode)
+ paramObject.put("facilitiesName", facilitiesName)
+ paramObject.put("facilitiesQuantity", facilitiesQuantity)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return smartTownApi.updateInfrastructureData(AuthenticationHelper.token!!, requestBody)
+ }
+
suspend fun countDevice(): String {
return smartTownApi.countDevice(AuthenticationHelper.token!!)
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt b/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt
new file mode 100644
index 0000000..cfeef98
--- /dev/null
+++ b/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.smart.town.sanxi.view
+
+import android.graphics.Color
+import androidx.lifecycle.ViewModelProvider
+import com.casic.smart.town.sanxi.R
+import com.casic.smart.town.sanxi.model.InfrastructureModel
+import com.casic.smart.town.sanxi.util.LoadingDialogHub
+import com.casic.smart.town.sanxi.util.LocaleConstant
+import com.casic.smart.town.sanxi.vm.InfrastructureViewModel
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+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.show
+import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.vm.LoadState
+import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import kotlinx.android.synthetic.main.activity_update_data.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class UpdateDataActivity : KotlinBaseActivity() {
+
+ private val gson by lazy { Gson() }
+ private var dataBeans: MutableList = ArrayList()
+ private var dataTitles: MutableList = ArrayList()
+ private lateinit var facilitiesId: String
+ private lateinit var infrastructureViewModel: InfrastructureViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_update_data
+
+ override fun observeRequestState() {
+ infrastructureViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "处理中,请稍后")
+ LoadState.Success -> {
+ "基础设施数据更新成功".show(this)
+ LoadingDialogHub.dismiss()
+ this.finish()
+ }
+ LoadState.Fail -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(false).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this))
+ titleView.text = "更新基础设施数据"
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ infrastructureViewModel = ViewModelProvider(this)[InfrastructureViewModel::class.java]
+
+ val s = SaveKeyValues.getValue(LocaleConstant.INFRASTRUCTURE, "") as String
+ val infrastructureModel = gson.fromJson(
+ s, object : TypeToken() {}.type
+ )
+ infrastructureModel.data.forEach {
+ dataBeans.add(it)
+ dataTitles.add(it.facilitiesName)
+ }
+ }
+
+ override fun initEvent() {
+ facilitiesNameView.setOnClickListener {
+ if (dataTitles.isNotEmpty()) {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setItemTextColor(Color.BLUE)
+ .setActionItemTitle(dataTitles)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ facilitiesId = dataBeans[position].id
+ facilitiesNameView.text = dataTitles[position]
+ }
+ }).build().show()
+ }
+ }
+
+ submitButton.setOnClickListener {
+ val facilitiesName = facilitiesNameView.text.toString().trim()
+ if (facilitiesName.isBlank()) {
+ "请先选择设施名称".show(this)
+ return@setOnClickListener
+ }
+ val facilitiesCount = facilitiesCountView.text.toString().trim()
+ if (facilitiesCount.isBlank()) {
+ "请输入设施数量".show(this)
+ return@setOnClickListener
+ }
+ infrastructureViewModel.updateInfrastructureData(
+ facilitiesId, "", facilitiesName, facilitiesCount
+ )
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c582d6c..d2e068a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -51,6 +51,7 @@
+
()
+ }
+
changePwdLayout.setOnClickListener {
ChangePasswordDialog.Builder()
.setContext(requireContext())
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
index 19aafdd..148c993 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
@@ -7,6 +7,7 @@
import com.casic.smart.town.sanxi.adapter.InfrastructureAdapter
import com.casic.smart.town.sanxi.model.DeviceModel
import com.casic.smart.town.sanxi.util.ChartViewHelper
+import com.casic.smart.town.sanxi.util.LocaleConstant
import com.casic.smart.town.sanxi.view.AllWellActivity
import com.casic.smart.town.sanxi.view.BFWellActivity
import com.casic.smart.town.sanxi.view.CFWellActivity
@@ -20,11 +21,12 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.timestampToCompleteDate
import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_statistics.*
class StatisticsPageFragment : KotlinBaseFragment() {
- private val kTag = "StatisticsPageFragment"
private lateinit var pipeViewModel: PipeViewModel
private lateinit var wellViewModel: WellViewModel
private lateinit var infrastructureViewModel: InfrastructureViewModel
@@ -125,11 +127,10 @@
}
})
- infrastructureViewModel.countInfrastructure()
infrastructureViewModel.resultModel.observe(this, {
if (it.code == 200) {
- infrastructureRecyclerView.adapter =
- InfrastructureAdapter(requireContext(), it.data)
+ infrastructureRv.adapter = InfrastructureAdapter(requireContext(), it.data)
+ SaveKeyValues.putValue(LocaleConstant.INFRASTRUCTURE, it.toJson())
}
})
}
@@ -146,19 +147,28 @@
allWellDataView.setOnClickListener {
requireContext().navigatePageTo()
}
+
+ refreshImageView.setOnClickListener {
+ requestData()
+ }
}
override fun onResume() {
super.onResume()
- //每次页面切换都需要重新刷新不同状态的闸井数量
+ //每次页面切换都需要重新刷新数据
+ requestData()
+ }
+
+ private fun requestData() {
+ infrastructureViewModel.countInfrastructure()
+ wellViewModel.countWellByState()
pipeViewModel.getAlarmStatistics()
+ deviceViewModel.countDevice()
val time = System.currentTimeMillis()
pipeViewModel.getPipeHealthStatus(
time.timestampToLastWeekDate()!!,
time.timestampToCompleteDate(),
""
)
- wellViewModel.countWellByState()
- deviceViewModel.countDevice()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
index ad14ce6..0a71d55 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
+++ b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
@@ -44,6 +44,7 @@
public static class DataModel {
private int facilitiesQuantity;
private String facilitiesName;
+ private String id;
public int getFacilitiesQuantity() {
return facilitiesQuantity;
@@ -60,5 +61,13 @@
public void setFacilitiesName(String facilitiesName) {
this.facilitiesName = facilitiesName;
}
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
}
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
index 183c85c..7e43a9c 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
@@ -23,6 +23,7 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_DETAIL_MODEL = "userDetailModel"
+ const val INFRASTRUCTURE = "infrastructure"
val LAYER = arrayListOf(
"http://111.198.10.15:13002/arcgis/rest/services/sxxz/MapServer/0",
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
index b9b15b2..e079e75 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
@@ -1,5 +1,6 @@
package com.casic.smart.town.sanxi.util.retrofit
+import okhttp3.RequestBody
import retrofit2.http.*
interface RetrofitService {
@@ -68,6 +69,12 @@
@GET("/statics/facilitiesStaticsByType")
suspend fun countInfrastructure(@Header("token") token: String): String
+ @POST("/statics/facilities/update")
+ suspend fun updateInfrastructureData(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
+
/**
* 根据设备类型统计设备数量
* */
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
index 09e390d..6f1fe87 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
@@ -4,6 +4,9 @@
import com.casic.smart.town.sanxi.util.LocaleConstant
import com.pengxh.kt.lite.utils.RetrofitFactory
import com.pengxh.kt.lite.utils.SaveKeyValues
+import okhttp3.MediaType.Companion.toMediaType
+import okhttp3.RequestBody.Companion.toRequestBody
+import org.json.JSONObject
object RetrofitServiceManager {
@@ -76,6 +79,23 @@
return smartTownApi.countInfrastructure(AuthenticationHelper.token!!)
}
+ suspend fun updateInfrastructureData(
+ id: String,
+ facilitiesCode: String,
+ facilitiesName: String,
+ facilitiesQuantity: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ paramObject.put("facilitiesCode", facilitiesCode)
+ paramObject.put("facilitiesName", facilitiesName)
+ paramObject.put("facilitiesQuantity", facilitiesQuantity)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return smartTownApi.updateInfrastructureData(AuthenticationHelper.token!!, requestBody)
+ }
+
suspend fun countDevice(): String {
return smartTownApi.countDevice(AuthenticationHelper.token!!)
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt b/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt
new file mode 100644
index 0000000..cfeef98
--- /dev/null
+++ b/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.smart.town.sanxi.view
+
+import android.graphics.Color
+import androidx.lifecycle.ViewModelProvider
+import com.casic.smart.town.sanxi.R
+import com.casic.smart.town.sanxi.model.InfrastructureModel
+import com.casic.smart.town.sanxi.util.LoadingDialogHub
+import com.casic.smart.town.sanxi.util.LocaleConstant
+import com.casic.smart.town.sanxi.vm.InfrastructureViewModel
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+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.show
+import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.vm.LoadState
+import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import kotlinx.android.synthetic.main.activity_update_data.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class UpdateDataActivity : KotlinBaseActivity() {
+
+ private val gson by lazy { Gson() }
+ private var dataBeans: MutableList = ArrayList()
+ private var dataTitles: MutableList = ArrayList()
+ private lateinit var facilitiesId: String
+ private lateinit var infrastructureViewModel: InfrastructureViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_update_data
+
+ override fun observeRequestState() {
+ infrastructureViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "处理中,请稍后")
+ LoadState.Success -> {
+ "基础设施数据更新成功".show(this)
+ LoadingDialogHub.dismiss()
+ this.finish()
+ }
+ LoadState.Fail -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(false).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this))
+ titleView.text = "更新基础设施数据"
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ infrastructureViewModel = ViewModelProvider(this)[InfrastructureViewModel::class.java]
+
+ val s = SaveKeyValues.getValue(LocaleConstant.INFRASTRUCTURE, "") as String
+ val infrastructureModel = gson.fromJson(
+ s, object : TypeToken() {}.type
+ )
+ infrastructureModel.data.forEach {
+ dataBeans.add(it)
+ dataTitles.add(it.facilitiesName)
+ }
+ }
+
+ override fun initEvent() {
+ facilitiesNameView.setOnClickListener {
+ if (dataTitles.isNotEmpty()) {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setItemTextColor(Color.BLUE)
+ .setActionItemTitle(dataTitles)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ facilitiesId = dataBeans[position].id
+ facilitiesNameView.text = dataTitles[position]
+ }
+ }).build().show()
+ }
+ }
+
+ submitButton.setOnClickListener {
+ val facilitiesName = facilitiesNameView.text.toString().trim()
+ if (facilitiesName.isBlank()) {
+ "请先选择设施名称".show(this)
+ return@setOnClickListener
+ }
+ val facilitiesCount = facilitiesCountView.text.toString().trim()
+ if (facilitiesCount.isBlank()) {
+ "请输入设施数量".show(this)
+ return@setOnClickListener
+ }
+ infrastructureViewModel.updateInfrastructureData(
+ facilitiesId, "", facilitiesName, facilitiesCount
+ )
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt b/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
index 0f72b29..140c0a3 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
@@ -11,6 +11,7 @@
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
class InfrastructureViewModel : BaseViewModel() {
@@ -30,4 +31,26 @@
}, {
it.printStackTrace()
})
+
+ fun updateInfrastructureData(
+ id: String,
+ facilitiesCode: String,
+ facilitiesName: String,
+ facilitiesQuantity: String
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.updateInfrastructureData(
+ id, facilitiesCode, facilitiesName, facilitiesQuantity
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c582d6c..d2e068a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -51,6 +51,7 @@
+
()
+ }
+
changePwdLayout.setOnClickListener {
ChangePasswordDialog.Builder()
.setContext(requireContext())
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
index 19aafdd..148c993 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
@@ -7,6 +7,7 @@
import com.casic.smart.town.sanxi.adapter.InfrastructureAdapter
import com.casic.smart.town.sanxi.model.DeviceModel
import com.casic.smart.town.sanxi.util.ChartViewHelper
+import com.casic.smart.town.sanxi.util.LocaleConstant
import com.casic.smart.town.sanxi.view.AllWellActivity
import com.casic.smart.town.sanxi.view.BFWellActivity
import com.casic.smart.town.sanxi.view.CFWellActivity
@@ -20,11 +21,12 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.timestampToCompleteDate
import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_statistics.*
class StatisticsPageFragment : KotlinBaseFragment() {
- private val kTag = "StatisticsPageFragment"
private lateinit var pipeViewModel: PipeViewModel
private lateinit var wellViewModel: WellViewModel
private lateinit var infrastructureViewModel: InfrastructureViewModel
@@ -125,11 +127,10 @@
}
})
- infrastructureViewModel.countInfrastructure()
infrastructureViewModel.resultModel.observe(this, {
if (it.code == 200) {
- infrastructureRecyclerView.adapter =
- InfrastructureAdapter(requireContext(), it.data)
+ infrastructureRv.adapter = InfrastructureAdapter(requireContext(), it.data)
+ SaveKeyValues.putValue(LocaleConstant.INFRASTRUCTURE, it.toJson())
}
})
}
@@ -146,19 +147,28 @@
allWellDataView.setOnClickListener {
requireContext().navigatePageTo()
}
+
+ refreshImageView.setOnClickListener {
+ requestData()
+ }
}
override fun onResume() {
super.onResume()
- //每次页面切换都需要重新刷新不同状态的闸井数量
+ //每次页面切换都需要重新刷新数据
+ requestData()
+ }
+
+ private fun requestData() {
+ infrastructureViewModel.countInfrastructure()
+ wellViewModel.countWellByState()
pipeViewModel.getAlarmStatistics()
+ deviceViewModel.countDevice()
val time = System.currentTimeMillis()
pipeViewModel.getPipeHealthStatus(
time.timestampToLastWeekDate()!!,
time.timestampToCompleteDate(),
""
)
- wellViewModel.countWellByState()
- deviceViewModel.countDevice()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
index ad14ce6..0a71d55 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
+++ b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
@@ -44,6 +44,7 @@
public static class DataModel {
private int facilitiesQuantity;
private String facilitiesName;
+ private String id;
public int getFacilitiesQuantity() {
return facilitiesQuantity;
@@ -60,5 +61,13 @@
public void setFacilitiesName(String facilitiesName) {
this.facilitiesName = facilitiesName;
}
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
}
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
index 183c85c..7e43a9c 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
@@ -23,6 +23,7 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_DETAIL_MODEL = "userDetailModel"
+ const val INFRASTRUCTURE = "infrastructure"
val LAYER = arrayListOf(
"http://111.198.10.15:13002/arcgis/rest/services/sxxz/MapServer/0",
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
index b9b15b2..e079e75 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
@@ -1,5 +1,6 @@
package com.casic.smart.town.sanxi.util.retrofit
+import okhttp3.RequestBody
import retrofit2.http.*
interface RetrofitService {
@@ -68,6 +69,12 @@
@GET("/statics/facilitiesStaticsByType")
suspend fun countInfrastructure(@Header("token") token: String): String
+ @POST("/statics/facilities/update")
+ suspend fun updateInfrastructureData(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
+
/**
* 根据设备类型统计设备数量
* */
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
index 09e390d..6f1fe87 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
@@ -4,6 +4,9 @@
import com.casic.smart.town.sanxi.util.LocaleConstant
import com.pengxh.kt.lite.utils.RetrofitFactory
import com.pengxh.kt.lite.utils.SaveKeyValues
+import okhttp3.MediaType.Companion.toMediaType
+import okhttp3.RequestBody.Companion.toRequestBody
+import org.json.JSONObject
object RetrofitServiceManager {
@@ -76,6 +79,23 @@
return smartTownApi.countInfrastructure(AuthenticationHelper.token!!)
}
+ suspend fun updateInfrastructureData(
+ id: String,
+ facilitiesCode: String,
+ facilitiesName: String,
+ facilitiesQuantity: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ paramObject.put("facilitiesCode", facilitiesCode)
+ paramObject.put("facilitiesName", facilitiesName)
+ paramObject.put("facilitiesQuantity", facilitiesQuantity)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return smartTownApi.updateInfrastructureData(AuthenticationHelper.token!!, requestBody)
+ }
+
suspend fun countDevice(): String {
return smartTownApi.countDevice(AuthenticationHelper.token!!)
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt b/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt
new file mode 100644
index 0000000..cfeef98
--- /dev/null
+++ b/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.smart.town.sanxi.view
+
+import android.graphics.Color
+import androidx.lifecycle.ViewModelProvider
+import com.casic.smart.town.sanxi.R
+import com.casic.smart.town.sanxi.model.InfrastructureModel
+import com.casic.smart.town.sanxi.util.LoadingDialogHub
+import com.casic.smart.town.sanxi.util.LocaleConstant
+import com.casic.smart.town.sanxi.vm.InfrastructureViewModel
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+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.show
+import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.vm.LoadState
+import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import kotlinx.android.synthetic.main.activity_update_data.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class UpdateDataActivity : KotlinBaseActivity() {
+
+ private val gson by lazy { Gson() }
+ private var dataBeans: MutableList = ArrayList()
+ private var dataTitles: MutableList = ArrayList()
+ private lateinit var facilitiesId: String
+ private lateinit var infrastructureViewModel: InfrastructureViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_update_data
+
+ override fun observeRequestState() {
+ infrastructureViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "处理中,请稍后")
+ LoadState.Success -> {
+ "基础设施数据更新成功".show(this)
+ LoadingDialogHub.dismiss()
+ this.finish()
+ }
+ LoadState.Fail -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(false).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this))
+ titleView.text = "更新基础设施数据"
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ infrastructureViewModel = ViewModelProvider(this)[InfrastructureViewModel::class.java]
+
+ val s = SaveKeyValues.getValue(LocaleConstant.INFRASTRUCTURE, "") as String
+ val infrastructureModel = gson.fromJson(
+ s, object : TypeToken() {}.type
+ )
+ infrastructureModel.data.forEach {
+ dataBeans.add(it)
+ dataTitles.add(it.facilitiesName)
+ }
+ }
+
+ override fun initEvent() {
+ facilitiesNameView.setOnClickListener {
+ if (dataTitles.isNotEmpty()) {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setItemTextColor(Color.BLUE)
+ .setActionItemTitle(dataTitles)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ facilitiesId = dataBeans[position].id
+ facilitiesNameView.text = dataTitles[position]
+ }
+ }).build().show()
+ }
+ }
+
+ submitButton.setOnClickListener {
+ val facilitiesName = facilitiesNameView.text.toString().trim()
+ if (facilitiesName.isBlank()) {
+ "请先选择设施名称".show(this)
+ return@setOnClickListener
+ }
+ val facilitiesCount = facilitiesCountView.text.toString().trim()
+ if (facilitiesCount.isBlank()) {
+ "请输入设施数量".show(this)
+ return@setOnClickListener
+ }
+ infrastructureViewModel.updateInfrastructureData(
+ facilitiesId, "", facilitiesName, facilitiesCount
+ )
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt b/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
index 0f72b29..140c0a3 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
@@ -11,6 +11,7 @@
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
class InfrastructureViewModel : BaseViewModel() {
@@ -30,4 +31,26 @@
}, {
it.printStackTrace()
})
+
+ fun updateInfrastructureData(
+ id: String,
+ facilitiesCode: String,
+ facilitiesName: String,
+ facilitiesQuantity: String
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.updateInfrastructureData(
+ id, facilitiesCode, facilitiesName, facilitiesQuantity
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_refresh.xml b/app/src/main/res/drawable/ic_refresh.xml
new file mode 100644
index 0000000..031764c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_refresh.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c582d6c..d2e068a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -51,6 +51,7 @@
+
()
+ }
+
changePwdLayout.setOnClickListener {
ChangePasswordDialog.Builder()
.setContext(requireContext())
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
index 19aafdd..148c993 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
@@ -7,6 +7,7 @@
import com.casic.smart.town.sanxi.adapter.InfrastructureAdapter
import com.casic.smart.town.sanxi.model.DeviceModel
import com.casic.smart.town.sanxi.util.ChartViewHelper
+import com.casic.smart.town.sanxi.util.LocaleConstant
import com.casic.smart.town.sanxi.view.AllWellActivity
import com.casic.smart.town.sanxi.view.BFWellActivity
import com.casic.smart.town.sanxi.view.CFWellActivity
@@ -20,11 +21,12 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.timestampToCompleteDate
import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_statistics.*
class StatisticsPageFragment : KotlinBaseFragment() {
- private val kTag = "StatisticsPageFragment"
private lateinit var pipeViewModel: PipeViewModel
private lateinit var wellViewModel: WellViewModel
private lateinit var infrastructureViewModel: InfrastructureViewModel
@@ -125,11 +127,10 @@
}
})
- infrastructureViewModel.countInfrastructure()
infrastructureViewModel.resultModel.observe(this, {
if (it.code == 200) {
- infrastructureRecyclerView.adapter =
- InfrastructureAdapter(requireContext(), it.data)
+ infrastructureRv.adapter = InfrastructureAdapter(requireContext(), it.data)
+ SaveKeyValues.putValue(LocaleConstant.INFRASTRUCTURE, it.toJson())
}
})
}
@@ -146,19 +147,28 @@
allWellDataView.setOnClickListener {
requireContext().navigatePageTo()
}
+
+ refreshImageView.setOnClickListener {
+ requestData()
+ }
}
override fun onResume() {
super.onResume()
- //每次页面切换都需要重新刷新不同状态的闸井数量
+ //每次页面切换都需要重新刷新数据
+ requestData()
+ }
+
+ private fun requestData() {
+ infrastructureViewModel.countInfrastructure()
+ wellViewModel.countWellByState()
pipeViewModel.getAlarmStatistics()
+ deviceViewModel.countDevice()
val time = System.currentTimeMillis()
pipeViewModel.getPipeHealthStatus(
time.timestampToLastWeekDate()!!,
time.timestampToCompleteDate(),
""
)
- wellViewModel.countWellByState()
- deviceViewModel.countDevice()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
index ad14ce6..0a71d55 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
+++ b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
@@ -44,6 +44,7 @@
public static class DataModel {
private int facilitiesQuantity;
private String facilitiesName;
+ private String id;
public int getFacilitiesQuantity() {
return facilitiesQuantity;
@@ -60,5 +61,13 @@
public void setFacilitiesName(String facilitiesName) {
this.facilitiesName = facilitiesName;
}
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
}
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
index 183c85c..7e43a9c 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
@@ -23,6 +23,7 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_DETAIL_MODEL = "userDetailModel"
+ const val INFRASTRUCTURE = "infrastructure"
val LAYER = arrayListOf(
"http://111.198.10.15:13002/arcgis/rest/services/sxxz/MapServer/0",
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
index b9b15b2..e079e75 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
@@ -1,5 +1,6 @@
package com.casic.smart.town.sanxi.util.retrofit
+import okhttp3.RequestBody
import retrofit2.http.*
interface RetrofitService {
@@ -68,6 +69,12 @@
@GET("/statics/facilitiesStaticsByType")
suspend fun countInfrastructure(@Header("token") token: String): String
+ @POST("/statics/facilities/update")
+ suspend fun updateInfrastructureData(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
+
/**
* 根据设备类型统计设备数量
* */
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
index 09e390d..6f1fe87 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
@@ -4,6 +4,9 @@
import com.casic.smart.town.sanxi.util.LocaleConstant
import com.pengxh.kt.lite.utils.RetrofitFactory
import com.pengxh.kt.lite.utils.SaveKeyValues
+import okhttp3.MediaType.Companion.toMediaType
+import okhttp3.RequestBody.Companion.toRequestBody
+import org.json.JSONObject
object RetrofitServiceManager {
@@ -76,6 +79,23 @@
return smartTownApi.countInfrastructure(AuthenticationHelper.token!!)
}
+ suspend fun updateInfrastructureData(
+ id: String,
+ facilitiesCode: String,
+ facilitiesName: String,
+ facilitiesQuantity: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ paramObject.put("facilitiesCode", facilitiesCode)
+ paramObject.put("facilitiesName", facilitiesName)
+ paramObject.put("facilitiesQuantity", facilitiesQuantity)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return smartTownApi.updateInfrastructureData(AuthenticationHelper.token!!, requestBody)
+ }
+
suspend fun countDevice(): String {
return smartTownApi.countDevice(AuthenticationHelper.token!!)
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt b/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt
new file mode 100644
index 0000000..cfeef98
--- /dev/null
+++ b/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.smart.town.sanxi.view
+
+import android.graphics.Color
+import androidx.lifecycle.ViewModelProvider
+import com.casic.smart.town.sanxi.R
+import com.casic.smart.town.sanxi.model.InfrastructureModel
+import com.casic.smart.town.sanxi.util.LoadingDialogHub
+import com.casic.smart.town.sanxi.util.LocaleConstant
+import com.casic.smart.town.sanxi.vm.InfrastructureViewModel
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+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.show
+import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.vm.LoadState
+import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import kotlinx.android.synthetic.main.activity_update_data.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class UpdateDataActivity : KotlinBaseActivity() {
+
+ private val gson by lazy { Gson() }
+ private var dataBeans: MutableList = ArrayList()
+ private var dataTitles: MutableList = ArrayList()
+ private lateinit var facilitiesId: String
+ private lateinit var infrastructureViewModel: InfrastructureViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_update_data
+
+ override fun observeRequestState() {
+ infrastructureViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "处理中,请稍后")
+ LoadState.Success -> {
+ "基础设施数据更新成功".show(this)
+ LoadingDialogHub.dismiss()
+ this.finish()
+ }
+ LoadState.Fail -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(false).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this))
+ titleView.text = "更新基础设施数据"
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ infrastructureViewModel = ViewModelProvider(this)[InfrastructureViewModel::class.java]
+
+ val s = SaveKeyValues.getValue(LocaleConstant.INFRASTRUCTURE, "") as String
+ val infrastructureModel = gson.fromJson(
+ s, object : TypeToken() {}.type
+ )
+ infrastructureModel.data.forEach {
+ dataBeans.add(it)
+ dataTitles.add(it.facilitiesName)
+ }
+ }
+
+ override fun initEvent() {
+ facilitiesNameView.setOnClickListener {
+ if (dataTitles.isNotEmpty()) {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setItemTextColor(Color.BLUE)
+ .setActionItemTitle(dataTitles)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ facilitiesId = dataBeans[position].id
+ facilitiesNameView.text = dataTitles[position]
+ }
+ }).build().show()
+ }
+ }
+
+ submitButton.setOnClickListener {
+ val facilitiesName = facilitiesNameView.text.toString().trim()
+ if (facilitiesName.isBlank()) {
+ "请先选择设施名称".show(this)
+ return@setOnClickListener
+ }
+ val facilitiesCount = facilitiesCountView.text.toString().trim()
+ if (facilitiesCount.isBlank()) {
+ "请输入设施数量".show(this)
+ return@setOnClickListener
+ }
+ infrastructureViewModel.updateInfrastructureData(
+ facilitiesId, "", facilitiesName, facilitiesCount
+ )
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt b/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
index 0f72b29..140c0a3 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
@@ -11,6 +11,7 @@
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
class InfrastructureViewModel : BaseViewModel() {
@@ -30,4 +31,26 @@
}, {
it.printStackTrace()
})
+
+ fun updateInfrastructureData(
+ id: String,
+ facilitiesCode: String,
+ facilitiesName: String,
+ facilitiesQuantity: String
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.updateInfrastructureData(
+ id, facilitiesCode, facilitiesName, facilitiesQuantity
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_refresh.xml b/app/src/main/res/drawable/ic_refresh.xml
new file mode 100644
index 0000000..031764c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_refresh.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_update_data.xml b/app/src/main/res/drawable/ic_update_data.xml
new file mode 100644
index 0000000..49d3c58
--- /dev/null
+++ b/app/src/main/res/drawable/ic_update_data.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c582d6c..d2e068a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -51,6 +51,7 @@
+
()
+ }
+
changePwdLayout.setOnClickListener {
ChangePasswordDialog.Builder()
.setContext(requireContext())
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
index 19aafdd..148c993 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
@@ -7,6 +7,7 @@
import com.casic.smart.town.sanxi.adapter.InfrastructureAdapter
import com.casic.smart.town.sanxi.model.DeviceModel
import com.casic.smart.town.sanxi.util.ChartViewHelper
+import com.casic.smart.town.sanxi.util.LocaleConstant
import com.casic.smart.town.sanxi.view.AllWellActivity
import com.casic.smart.town.sanxi.view.BFWellActivity
import com.casic.smart.town.sanxi.view.CFWellActivity
@@ -20,11 +21,12 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.timestampToCompleteDate
import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_statistics.*
class StatisticsPageFragment : KotlinBaseFragment() {
- private val kTag = "StatisticsPageFragment"
private lateinit var pipeViewModel: PipeViewModel
private lateinit var wellViewModel: WellViewModel
private lateinit var infrastructureViewModel: InfrastructureViewModel
@@ -125,11 +127,10 @@
}
})
- infrastructureViewModel.countInfrastructure()
infrastructureViewModel.resultModel.observe(this, {
if (it.code == 200) {
- infrastructureRecyclerView.adapter =
- InfrastructureAdapter(requireContext(), it.data)
+ infrastructureRv.adapter = InfrastructureAdapter(requireContext(), it.data)
+ SaveKeyValues.putValue(LocaleConstant.INFRASTRUCTURE, it.toJson())
}
})
}
@@ -146,19 +147,28 @@
allWellDataView.setOnClickListener {
requireContext().navigatePageTo()
}
+
+ refreshImageView.setOnClickListener {
+ requestData()
+ }
}
override fun onResume() {
super.onResume()
- //每次页面切换都需要重新刷新不同状态的闸井数量
+ //每次页面切换都需要重新刷新数据
+ requestData()
+ }
+
+ private fun requestData() {
+ infrastructureViewModel.countInfrastructure()
+ wellViewModel.countWellByState()
pipeViewModel.getAlarmStatistics()
+ deviceViewModel.countDevice()
val time = System.currentTimeMillis()
pipeViewModel.getPipeHealthStatus(
time.timestampToLastWeekDate()!!,
time.timestampToCompleteDate(),
""
)
- wellViewModel.countWellByState()
- deviceViewModel.countDevice()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
index ad14ce6..0a71d55 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
+++ b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
@@ -44,6 +44,7 @@
public static class DataModel {
private int facilitiesQuantity;
private String facilitiesName;
+ private String id;
public int getFacilitiesQuantity() {
return facilitiesQuantity;
@@ -60,5 +61,13 @@
public void setFacilitiesName(String facilitiesName) {
this.facilitiesName = facilitiesName;
}
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
}
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
index 183c85c..7e43a9c 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
@@ -23,6 +23,7 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_DETAIL_MODEL = "userDetailModel"
+ const val INFRASTRUCTURE = "infrastructure"
val LAYER = arrayListOf(
"http://111.198.10.15:13002/arcgis/rest/services/sxxz/MapServer/0",
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
index b9b15b2..e079e75 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
@@ -1,5 +1,6 @@
package com.casic.smart.town.sanxi.util.retrofit
+import okhttp3.RequestBody
import retrofit2.http.*
interface RetrofitService {
@@ -68,6 +69,12 @@
@GET("/statics/facilitiesStaticsByType")
suspend fun countInfrastructure(@Header("token") token: String): String
+ @POST("/statics/facilities/update")
+ suspend fun updateInfrastructureData(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
+
/**
* 根据设备类型统计设备数量
* */
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
index 09e390d..6f1fe87 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
@@ -4,6 +4,9 @@
import com.casic.smart.town.sanxi.util.LocaleConstant
import com.pengxh.kt.lite.utils.RetrofitFactory
import com.pengxh.kt.lite.utils.SaveKeyValues
+import okhttp3.MediaType.Companion.toMediaType
+import okhttp3.RequestBody.Companion.toRequestBody
+import org.json.JSONObject
object RetrofitServiceManager {
@@ -76,6 +79,23 @@
return smartTownApi.countInfrastructure(AuthenticationHelper.token!!)
}
+ suspend fun updateInfrastructureData(
+ id: String,
+ facilitiesCode: String,
+ facilitiesName: String,
+ facilitiesQuantity: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ paramObject.put("facilitiesCode", facilitiesCode)
+ paramObject.put("facilitiesName", facilitiesName)
+ paramObject.put("facilitiesQuantity", facilitiesQuantity)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return smartTownApi.updateInfrastructureData(AuthenticationHelper.token!!, requestBody)
+ }
+
suspend fun countDevice(): String {
return smartTownApi.countDevice(AuthenticationHelper.token!!)
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt b/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt
new file mode 100644
index 0000000..cfeef98
--- /dev/null
+++ b/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.smart.town.sanxi.view
+
+import android.graphics.Color
+import androidx.lifecycle.ViewModelProvider
+import com.casic.smart.town.sanxi.R
+import com.casic.smart.town.sanxi.model.InfrastructureModel
+import com.casic.smart.town.sanxi.util.LoadingDialogHub
+import com.casic.smart.town.sanxi.util.LocaleConstant
+import com.casic.smart.town.sanxi.vm.InfrastructureViewModel
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+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.show
+import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.vm.LoadState
+import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import kotlinx.android.synthetic.main.activity_update_data.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class UpdateDataActivity : KotlinBaseActivity() {
+
+ private val gson by lazy { Gson() }
+ private var dataBeans: MutableList = ArrayList()
+ private var dataTitles: MutableList = ArrayList()
+ private lateinit var facilitiesId: String
+ private lateinit var infrastructureViewModel: InfrastructureViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_update_data
+
+ override fun observeRequestState() {
+ infrastructureViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "处理中,请稍后")
+ LoadState.Success -> {
+ "基础设施数据更新成功".show(this)
+ LoadingDialogHub.dismiss()
+ this.finish()
+ }
+ LoadState.Fail -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(false).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this))
+ titleView.text = "更新基础设施数据"
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ infrastructureViewModel = ViewModelProvider(this)[InfrastructureViewModel::class.java]
+
+ val s = SaveKeyValues.getValue(LocaleConstant.INFRASTRUCTURE, "") as String
+ val infrastructureModel = gson.fromJson(
+ s, object : TypeToken() {}.type
+ )
+ infrastructureModel.data.forEach {
+ dataBeans.add(it)
+ dataTitles.add(it.facilitiesName)
+ }
+ }
+
+ override fun initEvent() {
+ facilitiesNameView.setOnClickListener {
+ if (dataTitles.isNotEmpty()) {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setItemTextColor(Color.BLUE)
+ .setActionItemTitle(dataTitles)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ facilitiesId = dataBeans[position].id
+ facilitiesNameView.text = dataTitles[position]
+ }
+ }).build().show()
+ }
+ }
+
+ submitButton.setOnClickListener {
+ val facilitiesName = facilitiesNameView.text.toString().trim()
+ if (facilitiesName.isBlank()) {
+ "请先选择设施名称".show(this)
+ return@setOnClickListener
+ }
+ val facilitiesCount = facilitiesCountView.text.toString().trim()
+ if (facilitiesCount.isBlank()) {
+ "请输入设施数量".show(this)
+ return@setOnClickListener
+ }
+ infrastructureViewModel.updateInfrastructureData(
+ facilitiesId, "", facilitiesName, facilitiesCount
+ )
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt b/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
index 0f72b29..140c0a3 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
@@ -11,6 +11,7 @@
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
class InfrastructureViewModel : BaseViewModel() {
@@ -30,4 +31,26 @@
}, {
it.printStackTrace()
})
+
+ fun updateInfrastructureData(
+ id: String,
+ facilitiesCode: String,
+ facilitiesName: String,
+ facilitiesQuantity: String
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.updateInfrastructureData(
+ id, facilitiesCode, facilitiesName, facilitiesQuantity
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_refresh.xml b/app/src/main/res/drawable/ic_refresh.xml
new file mode 100644
index 0000000..031764c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_refresh.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_update_data.xml b/app/src/main/res/drawable/ic_update_data.xml
new file mode 100644
index 0000000..49d3c58
--- /dev/null
+++ b/app/src/main/res/drawable/ic_update_data.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_update_data.xml b/app/src/main/res/layout/activity_update_data.xml
new file mode 100644
index 0000000..5e2a371
--- /dev/null
+++ b/app/src/main/res/layout/activity_update_data.xml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c582d6c..d2e068a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -51,6 +51,7 @@
+
()
+ }
+
changePwdLayout.setOnClickListener {
ChangePasswordDialog.Builder()
.setContext(requireContext())
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
index 19aafdd..148c993 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
@@ -7,6 +7,7 @@
import com.casic.smart.town.sanxi.adapter.InfrastructureAdapter
import com.casic.smart.town.sanxi.model.DeviceModel
import com.casic.smart.town.sanxi.util.ChartViewHelper
+import com.casic.smart.town.sanxi.util.LocaleConstant
import com.casic.smart.town.sanxi.view.AllWellActivity
import com.casic.smart.town.sanxi.view.BFWellActivity
import com.casic.smart.town.sanxi.view.CFWellActivity
@@ -20,11 +21,12 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.timestampToCompleteDate
import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_statistics.*
class StatisticsPageFragment : KotlinBaseFragment() {
- private val kTag = "StatisticsPageFragment"
private lateinit var pipeViewModel: PipeViewModel
private lateinit var wellViewModel: WellViewModel
private lateinit var infrastructureViewModel: InfrastructureViewModel
@@ -125,11 +127,10 @@
}
})
- infrastructureViewModel.countInfrastructure()
infrastructureViewModel.resultModel.observe(this, {
if (it.code == 200) {
- infrastructureRecyclerView.adapter =
- InfrastructureAdapter(requireContext(), it.data)
+ infrastructureRv.adapter = InfrastructureAdapter(requireContext(), it.data)
+ SaveKeyValues.putValue(LocaleConstant.INFRASTRUCTURE, it.toJson())
}
})
}
@@ -146,19 +147,28 @@
allWellDataView.setOnClickListener {
requireContext().navigatePageTo()
}
+
+ refreshImageView.setOnClickListener {
+ requestData()
+ }
}
override fun onResume() {
super.onResume()
- //每次页面切换都需要重新刷新不同状态的闸井数量
+ //每次页面切换都需要重新刷新数据
+ requestData()
+ }
+
+ private fun requestData() {
+ infrastructureViewModel.countInfrastructure()
+ wellViewModel.countWellByState()
pipeViewModel.getAlarmStatistics()
+ deviceViewModel.countDevice()
val time = System.currentTimeMillis()
pipeViewModel.getPipeHealthStatus(
time.timestampToLastWeekDate()!!,
time.timestampToCompleteDate(),
""
)
- wellViewModel.countWellByState()
- deviceViewModel.countDevice()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
index ad14ce6..0a71d55 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
+++ b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
@@ -44,6 +44,7 @@
public static class DataModel {
private int facilitiesQuantity;
private String facilitiesName;
+ private String id;
public int getFacilitiesQuantity() {
return facilitiesQuantity;
@@ -60,5 +61,13 @@
public void setFacilitiesName(String facilitiesName) {
this.facilitiesName = facilitiesName;
}
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
}
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
index 183c85c..7e43a9c 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
@@ -23,6 +23,7 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_DETAIL_MODEL = "userDetailModel"
+ const val INFRASTRUCTURE = "infrastructure"
val LAYER = arrayListOf(
"http://111.198.10.15:13002/arcgis/rest/services/sxxz/MapServer/0",
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
index b9b15b2..e079e75 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
@@ -1,5 +1,6 @@
package com.casic.smart.town.sanxi.util.retrofit
+import okhttp3.RequestBody
import retrofit2.http.*
interface RetrofitService {
@@ -68,6 +69,12 @@
@GET("/statics/facilitiesStaticsByType")
suspend fun countInfrastructure(@Header("token") token: String): String
+ @POST("/statics/facilities/update")
+ suspend fun updateInfrastructureData(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
+
/**
* 根据设备类型统计设备数量
* */
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
index 09e390d..6f1fe87 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
@@ -4,6 +4,9 @@
import com.casic.smart.town.sanxi.util.LocaleConstant
import com.pengxh.kt.lite.utils.RetrofitFactory
import com.pengxh.kt.lite.utils.SaveKeyValues
+import okhttp3.MediaType.Companion.toMediaType
+import okhttp3.RequestBody.Companion.toRequestBody
+import org.json.JSONObject
object RetrofitServiceManager {
@@ -76,6 +79,23 @@
return smartTownApi.countInfrastructure(AuthenticationHelper.token!!)
}
+ suspend fun updateInfrastructureData(
+ id: String,
+ facilitiesCode: String,
+ facilitiesName: String,
+ facilitiesQuantity: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ paramObject.put("facilitiesCode", facilitiesCode)
+ paramObject.put("facilitiesName", facilitiesName)
+ paramObject.put("facilitiesQuantity", facilitiesQuantity)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return smartTownApi.updateInfrastructureData(AuthenticationHelper.token!!, requestBody)
+ }
+
suspend fun countDevice(): String {
return smartTownApi.countDevice(AuthenticationHelper.token!!)
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt b/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt
new file mode 100644
index 0000000..cfeef98
--- /dev/null
+++ b/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.smart.town.sanxi.view
+
+import android.graphics.Color
+import androidx.lifecycle.ViewModelProvider
+import com.casic.smart.town.sanxi.R
+import com.casic.smart.town.sanxi.model.InfrastructureModel
+import com.casic.smart.town.sanxi.util.LoadingDialogHub
+import com.casic.smart.town.sanxi.util.LocaleConstant
+import com.casic.smart.town.sanxi.vm.InfrastructureViewModel
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+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.show
+import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.vm.LoadState
+import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import kotlinx.android.synthetic.main.activity_update_data.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class UpdateDataActivity : KotlinBaseActivity() {
+
+ private val gson by lazy { Gson() }
+ private var dataBeans: MutableList = ArrayList()
+ private var dataTitles: MutableList = ArrayList()
+ private lateinit var facilitiesId: String
+ private lateinit var infrastructureViewModel: InfrastructureViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_update_data
+
+ override fun observeRequestState() {
+ infrastructureViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "处理中,请稍后")
+ LoadState.Success -> {
+ "基础设施数据更新成功".show(this)
+ LoadingDialogHub.dismiss()
+ this.finish()
+ }
+ LoadState.Fail -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(false).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this))
+ titleView.text = "更新基础设施数据"
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ infrastructureViewModel = ViewModelProvider(this)[InfrastructureViewModel::class.java]
+
+ val s = SaveKeyValues.getValue(LocaleConstant.INFRASTRUCTURE, "") as String
+ val infrastructureModel = gson.fromJson(
+ s, object : TypeToken() {}.type
+ )
+ infrastructureModel.data.forEach {
+ dataBeans.add(it)
+ dataTitles.add(it.facilitiesName)
+ }
+ }
+
+ override fun initEvent() {
+ facilitiesNameView.setOnClickListener {
+ if (dataTitles.isNotEmpty()) {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setItemTextColor(Color.BLUE)
+ .setActionItemTitle(dataTitles)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ facilitiesId = dataBeans[position].id
+ facilitiesNameView.text = dataTitles[position]
+ }
+ }).build().show()
+ }
+ }
+
+ submitButton.setOnClickListener {
+ val facilitiesName = facilitiesNameView.text.toString().trim()
+ if (facilitiesName.isBlank()) {
+ "请先选择设施名称".show(this)
+ return@setOnClickListener
+ }
+ val facilitiesCount = facilitiesCountView.text.toString().trim()
+ if (facilitiesCount.isBlank()) {
+ "请输入设施数量".show(this)
+ return@setOnClickListener
+ }
+ infrastructureViewModel.updateInfrastructureData(
+ facilitiesId, "", facilitiesName, facilitiesCount
+ )
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt b/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
index 0f72b29..140c0a3 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
@@ -11,6 +11,7 @@
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
class InfrastructureViewModel : BaseViewModel() {
@@ -30,4 +31,26 @@
}, {
it.printStackTrace()
})
+
+ fun updateInfrastructureData(
+ id: String,
+ facilitiesCode: String,
+ facilitiesName: String,
+ facilitiesQuantity: String
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.updateInfrastructureData(
+ id, facilitiesCode, facilitiesName, facilitiesQuantity
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_refresh.xml b/app/src/main/res/drawable/ic_refresh.xml
new file mode 100644
index 0000000..031764c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_refresh.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_update_data.xml b/app/src/main/res/drawable/ic_update_data.xml
new file mode 100644
index 0000000..49d3c58
--- /dev/null
+++ b/app/src/main/res/drawable/ic_update_data.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_update_data.xml b/app/src/main/res/layout/activity_update_data.xml
new file mode 100644
index 0000000..5e2a371
--- /dev/null
+++ b/app/src/main/res/layout/activity_update_data.xml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_more.xml b/app/src/main/res/layout/fragment_more.xml
index 757a83f..2e09f77 100644
--- a/app/src/main/res/layout/fragment_more.xml
+++ b/app/src/main/res/layout/fragment_more.xml
@@ -102,6 +102,25 @@
android:orientation="vertical">
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c582d6c..d2e068a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -51,6 +51,7 @@
+
()
+ }
+
changePwdLayout.setOnClickListener {
ChangePasswordDialog.Builder()
.setContext(requireContext())
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
index 19aafdd..148c993 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/fragment/StatisticsPageFragment.kt
@@ -7,6 +7,7 @@
import com.casic.smart.town.sanxi.adapter.InfrastructureAdapter
import com.casic.smart.town.sanxi.model.DeviceModel
import com.casic.smart.town.sanxi.util.ChartViewHelper
+import com.casic.smart.town.sanxi.util.LocaleConstant
import com.casic.smart.town.sanxi.view.AllWellActivity
import com.casic.smart.town.sanxi.view.BFWellActivity
import com.casic.smart.town.sanxi.view.CFWellActivity
@@ -20,11 +21,12 @@
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.timestampToCompleteDate
import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.toJson
+import com.pengxh.kt.lite.utils.SaveKeyValues
import kotlinx.android.synthetic.main.fragment_statistics.*
class StatisticsPageFragment : KotlinBaseFragment() {
- private val kTag = "StatisticsPageFragment"
private lateinit var pipeViewModel: PipeViewModel
private lateinit var wellViewModel: WellViewModel
private lateinit var infrastructureViewModel: InfrastructureViewModel
@@ -125,11 +127,10 @@
}
})
- infrastructureViewModel.countInfrastructure()
infrastructureViewModel.resultModel.observe(this, {
if (it.code == 200) {
- infrastructureRecyclerView.adapter =
- InfrastructureAdapter(requireContext(), it.data)
+ infrastructureRv.adapter = InfrastructureAdapter(requireContext(), it.data)
+ SaveKeyValues.putValue(LocaleConstant.INFRASTRUCTURE, it.toJson())
}
})
}
@@ -146,19 +147,28 @@
allWellDataView.setOnClickListener {
requireContext().navigatePageTo()
}
+
+ refreshImageView.setOnClickListener {
+ requestData()
+ }
}
override fun onResume() {
super.onResume()
- //每次页面切换都需要重新刷新不同状态的闸井数量
+ //每次页面切换都需要重新刷新数据
+ requestData()
+ }
+
+ private fun requestData() {
+ infrastructureViewModel.countInfrastructure()
+ wellViewModel.countWellByState()
pipeViewModel.getAlarmStatistics()
+ deviceViewModel.countDevice()
val time = System.currentTimeMillis()
pipeViewModel.getPipeHealthStatus(
time.timestampToLastWeekDate()!!,
time.timestampToCompleteDate(),
""
)
- wellViewModel.countWellByState()
- deviceViewModel.countDevice()
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
index ad14ce6..0a71d55 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
+++ b/app/src/main/java/com/casic/smart/town/sanxi/model/InfrastructureModel.java
@@ -44,6 +44,7 @@
public static class DataModel {
private int facilitiesQuantity;
private String facilitiesName;
+ private String id;
public int getFacilitiesQuantity() {
return facilitiesQuantity;
@@ -60,5 +61,13 @@
public void setFacilitiesName(String facilitiesName) {
this.facilitiesName = facilitiesName;
}
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
}
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
index 183c85c..7e43a9c 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/LocaleConstant.kt
@@ -23,6 +23,7 @@
const val ACCOUNT = "account"
const val PASSWORD = "password"
const val USER_DETAIL_MODEL = "userDetailModel"
+ const val INFRASTRUCTURE = "infrastructure"
val LAYER = arrayListOf(
"http://111.198.10.15:13002/arcgis/rest/services/sxxz/MapServer/0",
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
index b9b15b2..e079e75 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitService.kt
@@ -1,5 +1,6 @@
package com.casic.smart.town.sanxi.util.retrofit
+import okhttp3.RequestBody
import retrofit2.http.*
interface RetrofitService {
@@ -68,6 +69,12 @@
@GET("/statics/facilitiesStaticsByType")
suspend fun countInfrastructure(@Header("token") token: String): String
+ @POST("/statics/facilities/update")
+ suspend fun updateInfrastructureData(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
+
/**
* 根据设备类型统计设备数量
* */
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
index 09e390d..6f1fe87 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/util/retrofit/RetrofitServiceManager.kt
@@ -4,6 +4,9 @@
import com.casic.smart.town.sanxi.util.LocaleConstant
import com.pengxh.kt.lite.utils.RetrofitFactory
import com.pengxh.kt.lite.utils.SaveKeyValues
+import okhttp3.MediaType.Companion.toMediaType
+import okhttp3.RequestBody.Companion.toRequestBody
+import org.json.JSONObject
object RetrofitServiceManager {
@@ -76,6 +79,23 @@
return smartTownApi.countInfrastructure(AuthenticationHelper.token!!)
}
+ suspend fun updateInfrastructureData(
+ id: String,
+ facilitiesCode: String,
+ facilitiesName: String,
+ facilitiesQuantity: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ paramObject.put("facilitiesCode", facilitiesCode)
+ paramObject.put("facilitiesName", facilitiesName)
+ paramObject.put("facilitiesQuantity", facilitiesQuantity)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return smartTownApi.updateInfrastructureData(AuthenticationHelper.token!!, requestBody)
+ }
+
suspend fun countDevice(): String {
return smartTownApi.countDevice(AuthenticationHelper.token!!)
}
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt b/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt
new file mode 100644
index 0000000..cfeef98
--- /dev/null
+++ b/app/src/main/java/com/casic/smart/town/sanxi/view/UpdateDataActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.smart.town.sanxi.view
+
+import android.graphics.Color
+import androidx.lifecycle.ViewModelProvider
+import com.casic.smart.town.sanxi.R
+import com.casic.smart.town.sanxi.model.InfrastructureModel
+import com.casic.smart.town.sanxi.util.LoadingDialogHub
+import com.casic.smart.town.sanxi.util.LocaleConstant
+import com.casic.smart.town.sanxi.vm.InfrastructureViewModel
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+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.show
+import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
+import com.pengxh.kt.lite.utils.SaveKeyValues
+import com.pengxh.kt.lite.vm.LoadState
+import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import kotlinx.android.synthetic.main.activity_update_data.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class UpdateDataActivity : KotlinBaseActivity() {
+
+ private val gson by lazy { Gson() }
+ private var dataBeans: MutableList = ArrayList()
+ private var dataTitles: MutableList = ArrayList()
+ private lateinit var facilitiesId: String
+ private lateinit var infrastructureViewModel: InfrastructureViewModel
+
+ override fun initLayoutView(): Int = R.layout.activity_update_data
+
+ override fun observeRequestState() {
+ infrastructureViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "处理中,请稍后")
+ LoadState.Success -> {
+ "基础设施数据更新成功".show(this)
+ LoadingDialogHub.dismiss()
+ this.finish()
+ }
+ LoadState.Fail -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(false).init()
+ ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this))
+ titleView.text = "更新基础设施数据"
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ infrastructureViewModel = ViewModelProvider(this)[InfrastructureViewModel::class.java]
+
+ val s = SaveKeyValues.getValue(LocaleConstant.INFRASTRUCTURE, "") as String
+ val infrastructureModel = gson.fromJson(
+ s, object : TypeToken() {}.type
+ )
+ infrastructureModel.data.forEach {
+ dataBeans.add(it)
+ dataTitles.add(it.facilitiesName)
+ }
+ }
+
+ override fun initEvent() {
+ facilitiesNameView.setOnClickListener {
+ if (dataTitles.isNotEmpty()) {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setItemTextColor(Color.BLUE)
+ .setActionItemTitle(dataTitles)
+ .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ facilitiesId = dataBeans[position].id
+ facilitiesNameView.text = dataTitles[position]
+ }
+ }).build().show()
+ }
+ }
+
+ submitButton.setOnClickListener {
+ val facilitiesName = facilitiesNameView.text.toString().trim()
+ if (facilitiesName.isBlank()) {
+ "请先选择设施名称".show(this)
+ return@setOnClickListener
+ }
+ val facilitiesCount = facilitiesCountView.text.toString().trim()
+ if (facilitiesCount.isBlank()) {
+ "请输入设施数量".show(this)
+ return@setOnClickListener
+ }
+ infrastructureViewModel.updateInfrastructureData(
+ facilitiesId, "", facilitiesName, facilitiesCount
+ )
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt b/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
index 0f72b29..140c0a3 100644
--- a/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
+++ b/app/src/main/java/com/casic/smart/town/sanxi/vm/InfrastructureViewModel.kt
@@ -11,6 +11,7 @@
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
class InfrastructureViewModel : BaseViewModel() {
@@ -30,4 +31,26 @@
}, {
it.printStackTrace()
})
+
+ fun updateInfrastructureData(
+ id: String,
+ facilitiesCode: String,
+ facilitiesName: String,
+ facilitiesQuantity: String
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.updateInfrastructureData(
+ id, facilitiesCode, facilitiesName, facilitiesQuantity
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.obtainInstance())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_refresh.xml b/app/src/main/res/drawable/ic_refresh.xml
new file mode 100644
index 0000000..031764c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_refresh.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_update_data.xml b/app/src/main/res/drawable/ic_update_data.xml
new file mode 100644
index 0000000..49d3c58
--- /dev/null
+++ b/app/src/main/res/drawable/ic_update_data.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_update_data.xml b/app/src/main/res/layout/activity_update_data.xml
new file mode 100644
index 0000000..5e2a371
--- /dev/null
+++ b/app/src/main/res/layout/activity_update_data.xml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_more.xml b/app/src/main/res/layout/fragment_more.xml
index 757a83f..2e09f77 100644
--- a/app/src/main/res/layout/fragment_more.xml
+++ b/app/src/main/res/layout/fragment_more.xml
@@ -102,6 +102,25 @@
android:orientation="vertical">
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_statistics.xml b/app/src/main/res/layout/fragment_statistics.xml
index 18de0b1..9bf9304 100644
--- a/app/src/main/res/layout/fragment_statistics.xml
+++ b/app/src/main/res/layout/fragment_statistics.xml
@@ -7,14 +7,27 @@
android:background="@color/white"
android:orientation="vertical">
-
+ android:background="@color/mainThemeColor">
+
+
+
+
+