diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e206b5e..e72465c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e206b5e..e72465c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@
+
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
index 6f7029b..d5c580f 100644
--- a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
@@ -26,8 +26,8 @@
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
//绑定数据
val rowsBean = dataRows[position]
- holder.wellCodeView.text = rowsBean.wellCode
holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellCodeView.text = rowsBean.wellCode
holder.wellLocationView.text = rowsBean.position
if (rowsBean.bfztName == "布防") {
holder.wellStateView.setImageResource(R.mipmap.ybf)
@@ -48,8 +48,8 @@
override fun getItemCount(): Int = dataRows.size
inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
- var wellTypeView: TextView = view.findViewById(R.id.wellTypeView)
var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
var wellStateView: ImageView = view.findViewById(R.id.wellStateView)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e206b5e..e72465c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@
+
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
index 6f7029b..d5c580f 100644
--- a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
@@ -26,8 +26,8 @@
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
//绑定数据
val rowsBean = dataRows[position]
- holder.wellCodeView.text = rowsBean.wellCode
holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellCodeView.text = rowsBean.wellCode
holder.wellLocationView.text = rowsBean.position
if (rowsBean.bfztName == "布防") {
holder.wellStateView.setImageResource(R.mipmap.ybf)
@@ -48,8 +48,8 @@
override fun getItemCount(): Int = dataRows.size
inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
- var wellTypeView: TextView = view.findViewById(R.id.wellTypeView)
var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
var wellStateView: ImageView = view.findViewById(R.id.wellStateView)
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
new file mode 100644
index 0000000..8d4fe45
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
@@ -0,0 +1,87 @@
+package com.casic.app.smartwell.adapter
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.extensions.covertColor
+import com.casic.app.smartwell.model.WellListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class WellOperationAdapter(
+ private val context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
+ val view: View =
+ layoutInflater.inflate(R.layout.item_well_operation_recycleview, parent, false)
+ return ItemViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.wellCodeView.text = rowsBean.wellCode
+ holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellLocationView.text = rowsBean.position
+ if (rowsBean.bfztName == "布防") {
+ holder.operationButton.text = "撤防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.redTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.redTextColor.covertColor(context))
+ } else {
+ holder.operationButton.text = "布防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.greenTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.greenTextColor.covertColor(context))
+ }
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ holder.operationButton.setOnClickListener {
+ listener!!.onOperationClicked(position)
+ }
+ holder.navigationButton.setOnClickListener {
+ listener!!.onNavigationButtonClicked(position)
+ }
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
+ var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
+ var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton)
+ var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+
+ fun onOperationClicked(position: Int)
+
+ fun onNavigationButtonClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e206b5e..e72465c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@
+
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
index 6f7029b..d5c580f 100644
--- a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
@@ -26,8 +26,8 @@
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
//绑定数据
val rowsBean = dataRows[position]
- holder.wellCodeView.text = rowsBean.wellCode
holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellCodeView.text = rowsBean.wellCode
holder.wellLocationView.text = rowsBean.position
if (rowsBean.bfztName == "布防") {
holder.wellStateView.setImageResource(R.mipmap.ybf)
@@ -48,8 +48,8 @@
override fun getItemCount(): Int = dataRows.size
inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
- var wellTypeView: TextView = view.findViewById(R.id.wellTypeView)
var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
var wellStateView: ImageView = view.findViewById(R.id.wellStateView)
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
new file mode 100644
index 0000000..8d4fe45
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
@@ -0,0 +1,87 @@
+package com.casic.app.smartwell.adapter
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.extensions.covertColor
+import com.casic.app.smartwell.model.WellListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class WellOperationAdapter(
+ private val context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
+ val view: View =
+ layoutInflater.inflate(R.layout.item_well_operation_recycleview, parent, false)
+ return ItemViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.wellCodeView.text = rowsBean.wellCode
+ holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellLocationView.text = rowsBean.position
+ if (rowsBean.bfztName == "布防") {
+ holder.operationButton.text = "撤防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.redTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.redTextColor.covertColor(context))
+ } else {
+ holder.operationButton.text = "布防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.greenTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.greenTextColor.covertColor(context))
+ }
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ holder.operationButton.setOnClickListener {
+ listener!!.onOperationClicked(position)
+ }
+ holder.navigationButton.setOnClickListener {
+ listener!!.onNavigationButtonClicked(position)
+ }
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
+ var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
+ var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton)
+ var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+
+ fun onOperationClicked(position: Int)
+
+ fun onNavigationButtonClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
index 174b53c..0fcd0a1 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
@@ -64,6 +64,17 @@
): WellMonitorModel
/**
+ * 闸井布防撤防
+ */
+ @FormUrlEncoded
+ @POST("/well/bfcf")
+ suspend fun obtainOperationResult(
+ @Header("token") token: String,
+ @Field("wellId") wellId: String,
+ @Field("bfzt") bfzt: String
+ ): CommonResultModel
+
+ /**
* 获取用户信息
*/
@GET("/user/info")
@@ -73,7 +84,7 @@
* 修改密码
*/
@FormUrlEncoded
- @POST("mgr/changePwd")
+ @POST("/mgr/changePwd")
suspend fun changePassword(
@Header("token") token: String,
@Field("oldPwd") oldPwd: String,
@@ -89,6 +100,6 @@
/**
* 更新APK版本
*/
- @POST("app/checkVersion")
+ @POST("/app/checkVersion")
suspend fun obtainVersionResult(@Header("token") token: String): VersionResultModel
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e206b5e..e72465c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@
+
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
index 6f7029b..d5c580f 100644
--- a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
@@ -26,8 +26,8 @@
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
//绑定数据
val rowsBean = dataRows[position]
- holder.wellCodeView.text = rowsBean.wellCode
holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellCodeView.text = rowsBean.wellCode
holder.wellLocationView.text = rowsBean.position
if (rowsBean.bfztName == "布防") {
holder.wellStateView.setImageResource(R.mipmap.ybf)
@@ -48,8 +48,8 @@
override fun getItemCount(): Int = dataRows.size
inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
- var wellTypeView: TextView = view.findViewById(R.id.wellTypeView)
var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
var wellStateView: ImageView = view.findViewById(R.id.wellStateView)
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
new file mode 100644
index 0000000..8d4fe45
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
@@ -0,0 +1,87 @@
+package com.casic.app.smartwell.adapter
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.extensions.covertColor
+import com.casic.app.smartwell.model.WellListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class WellOperationAdapter(
+ private val context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
+ val view: View =
+ layoutInflater.inflate(R.layout.item_well_operation_recycleview, parent, false)
+ return ItemViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.wellCodeView.text = rowsBean.wellCode
+ holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellLocationView.text = rowsBean.position
+ if (rowsBean.bfztName == "布防") {
+ holder.operationButton.text = "撤防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.redTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.redTextColor.covertColor(context))
+ } else {
+ holder.operationButton.text = "布防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.greenTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.greenTextColor.covertColor(context))
+ }
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ holder.operationButton.setOnClickListener {
+ listener!!.onOperationClicked(position)
+ }
+ holder.navigationButton.setOnClickListener {
+ listener!!.onNavigationButtonClicked(position)
+ }
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
+ var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
+ var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton)
+ var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+
+ fun onOperationClicked(position: Int)
+
+ fun onNavigationButtonClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
index 174b53c..0fcd0a1 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
@@ -64,6 +64,17 @@
): WellMonitorModel
/**
+ * 闸井布防撤防
+ */
+ @FormUrlEncoded
+ @POST("/well/bfcf")
+ suspend fun obtainOperationResult(
+ @Header("token") token: String,
+ @Field("wellId") wellId: String,
+ @Field("bfzt") bfzt: String
+ ): CommonResultModel
+
+ /**
* 获取用户信息
*/
@GET("/user/info")
@@ -73,7 +84,7 @@
* 修改密码
*/
@FormUrlEncoded
- @POST("mgr/changePwd")
+ @POST("/mgr/changePwd")
suspend fun changePassword(
@Header("token") token: String,
@Field("oldPwd") oldPwd: String,
@@ -89,6 +100,6 @@
/**
* 更新APK版本
*/
- @POST("app/checkVersion")
+ @POST("/app/checkVersion")
suspend fun obtainVersionResult(@Header("token") token: String): VersionResultModel
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
index deeaa36..c564911 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -63,6 +63,13 @@
}
/**
+ * 闸井布防撤防
+ */
+ suspend fun obtainOperationResult(wellId: String, bfzt: String): CommonResultModel {
+ return api.obtainOperationResult(AuthenticationHelper.token!!, wellId, bfzt)
+ }
+
+ /**
* 获取用户信息
*/
suspend fun obtainUserDetail(): UserDetailModel {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e206b5e..e72465c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@
+
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
index 6f7029b..d5c580f 100644
--- a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
@@ -26,8 +26,8 @@
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
//绑定数据
val rowsBean = dataRows[position]
- holder.wellCodeView.text = rowsBean.wellCode
holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellCodeView.text = rowsBean.wellCode
holder.wellLocationView.text = rowsBean.position
if (rowsBean.bfztName == "布防") {
holder.wellStateView.setImageResource(R.mipmap.ybf)
@@ -48,8 +48,8 @@
override fun getItemCount(): Int = dataRows.size
inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
- var wellTypeView: TextView = view.findViewById(R.id.wellTypeView)
var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
var wellStateView: ImageView = view.findViewById(R.id.wellStateView)
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
new file mode 100644
index 0000000..8d4fe45
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
@@ -0,0 +1,87 @@
+package com.casic.app.smartwell.adapter
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.extensions.covertColor
+import com.casic.app.smartwell.model.WellListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class WellOperationAdapter(
+ private val context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
+ val view: View =
+ layoutInflater.inflate(R.layout.item_well_operation_recycleview, parent, false)
+ return ItemViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.wellCodeView.text = rowsBean.wellCode
+ holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellLocationView.text = rowsBean.position
+ if (rowsBean.bfztName == "布防") {
+ holder.operationButton.text = "撤防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.redTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.redTextColor.covertColor(context))
+ } else {
+ holder.operationButton.text = "布防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.greenTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.greenTextColor.covertColor(context))
+ }
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ holder.operationButton.setOnClickListener {
+ listener!!.onOperationClicked(position)
+ }
+ holder.navigationButton.setOnClickListener {
+ listener!!.onNavigationButtonClicked(position)
+ }
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
+ var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
+ var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton)
+ var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+
+ fun onOperationClicked(position: Int)
+
+ fun onNavigationButtonClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
index 174b53c..0fcd0a1 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
@@ -64,6 +64,17 @@
): WellMonitorModel
/**
+ * 闸井布防撤防
+ */
+ @FormUrlEncoded
+ @POST("/well/bfcf")
+ suspend fun obtainOperationResult(
+ @Header("token") token: String,
+ @Field("wellId") wellId: String,
+ @Field("bfzt") bfzt: String
+ ): CommonResultModel
+
+ /**
* 获取用户信息
*/
@GET("/user/info")
@@ -73,7 +84,7 @@
* 修改密码
*/
@FormUrlEncoded
- @POST("mgr/changePwd")
+ @POST("/mgr/changePwd")
suspend fun changePassword(
@Header("token") token: String,
@Field("oldPwd") oldPwd: String,
@@ -89,6 +100,6 @@
/**
* 更新APK版本
*/
- @POST("app/checkVersion")
+ @POST("/app/checkVersion")
suspend fun obtainVersionResult(@Header("token") token: String): VersionResultModel
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
index deeaa36..c564911 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -63,6 +63,13 @@
}
/**
+ * 闸井布防撤防
+ */
+ suspend fun obtainOperationResult(wellId: String, bfzt: String): CommonResultModel {
+ return api.obtainOperationResult(AuthenticationHelper.token!!, wellId, bfzt)
+ }
+
+ /**
* 获取用户信息
*/
suspend fun obtainUserDetail(): UserDetailModel {
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index a3ce02e..8e804f8 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -23,6 +23,7 @@
import com.casic.app.smartwell.widgets.EasyPopupWindow
import kotlinx.android.synthetic.main.activity_well_management.*
import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
import java.lang.ref.WeakReference
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e206b5e..e72465c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@
+
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
index 6f7029b..d5c580f 100644
--- a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
@@ -26,8 +26,8 @@
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
//绑定数据
val rowsBean = dataRows[position]
- holder.wellCodeView.text = rowsBean.wellCode
holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellCodeView.text = rowsBean.wellCode
holder.wellLocationView.text = rowsBean.position
if (rowsBean.bfztName == "布防") {
holder.wellStateView.setImageResource(R.mipmap.ybf)
@@ -48,8 +48,8 @@
override fun getItemCount(): Int = dataRows.size
inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
- var wellTypeView: TextView = view.findViewById(R.id.wellTypeView)
var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
var wellStateView: ImageView = view.findViewById(R.id.wellStateView)
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
new file mode 100644
index 0000000..8d4fe45
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
@@ -0,0 +1,87 @@
+package com.casic.app.smartwell.adapter
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.extensions.covertColor
+import com.casic.app.smartwell.model.WellListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class WellOperationAdapter(
+ private val context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
+ val view: View =
+ layoutInflater.inflate(R.layout.item_well_operation_recycleview, parent, false)
+ return ItemViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.wellCodeView.text = rowsBean.wellCode
+ holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellLocationView.text = rowsBean.position
+ if (rowsBean.bfztName == "布防") {
+ holder.operationButton.text = "撤防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.redTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.redTextColor.covertColor(context))
+ } else {
+ holder.operationButton.text = "布防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.greenTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.greenTextColor.covertColor(context))
+ }
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ holder.operationButton.setOnClickListener {
+ listener!!.onOperationClicked(position)
+ }
+ holder.navigationButton.setOnClickListener {
+ listener!!.onNavigationButtonClicked(position)
+ }
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
+ var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
+ var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton)
+ var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+
+ fun onOperationClicked(position: Int)
+
+ fun onNavigationButtonClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
index 174b53c..0fcd0a1 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
@@ -64,6 +64,17 @@
): WellMonitorModel
/**
+ * 闸井布防撤防
+ */
+ @FormUrlEncoded
+ @POST("/well/bfcf")
+ suspend fun obtainOperationResult(
+ @Header("token") token: String,
+ @Field("wellId") wellId: String,
+ @Field("bfzt") bfzt: String
+ ): CommonResultModel
+
+ /**
* 获取用户信息
*/
@GET("/user/info")
@@ -73,7 +84,7 @@
* 修改密码
*/
@FormUrlEncoded
- @POST("mgr/changePwd")
+ @POST("/mgr/changePwd")
suspend fun changePassword(
@Header("token") token: String,
@Field("oldPwd") oldPwd: String,
@@ -89,6 +100,6 @@
/**
* 更新APK版本
*/
- @POST("app/checkVersion")
+ @POST("/app/checkVersion")
suspend fun obtainVersionResult(@Header("token") token: String): VersionResultModel
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
index deeaa36..c564911 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -63,6 +63,13 @@
}
/**
+ * 闸井布防撤防
+ */
+ suspend fun obtainOperationResult(wellId: String, bfzt: String): CommonResultModel {
+ return api.obtainOperationResult(AuthenticationHelper.token!!, wellId, bfzt)
+ }
+
+ /**
* 获取用户信息
*/
suspend fun obtainUserDetail(): UserDetailModel {
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index a3ce02e..8e804f8 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -23,6 +23,7 @@
import com.casic.app.smartwell.widgets.EasyPopupWindow
import kotlinx.android.synthetic.main.activity_well_management.*
import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
import java.lang.ref.WeakReference
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
new file mode 100644
index 0000000..a73cc8f
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
@@ -0,0 +1,285 @@
+package com.casic.app.smartwell.view
+
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import android.view.View
+import android.view.animation.LinearInterpolator
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.amap.api.maps.model.LatLng
+import com.amap.api.maps.model.Poi
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.adapter.WellOperationAdapter
+import com.casic.app.smartwell.base.BaseActivity
+import com.casic.app.smartwell.extensions.navigatePageTo
+import com.casic.app.smartwell.extensions.show
+import com.casic.app.smartwell.extensions.showRouteOnMap
+import com.casic.app.smartwell.model.WellListModel
+import com.casic.app.smartwell.model.WellTypeModel
+import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.vm.WellListViewModel
+import com.casic.app.smartwell.vm.WellOperationViewModel
+import com.casic.app.smartwell.vm.WellTypeViewModel
+import com.casic.app.smartwell.widgets.EasyPopupWindow
+import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
+import kotlinx.android.synthetic.main.activity_well_operation.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
+import java.lang.ref.WeakReference
+
+class WellOperationActivity : BaseActivity() {
+
+ private lateinit var wellTypeViewModel: WellTypeViewModel
+ private lateinit var wellListViewModel: WellListViewModel
+ private lateinit var operationViewModel: WellOperationViewModel
+ private lateinit var easyPopupWindow: EasyPopupWindow
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var wellOperationAdapter: WellOperationAdapter
+ private var items: MutableList = ArrayList()
+ private var wellTypeModel = WellTypeModel.DataBean()
+ private var dataBeans: MutableList = ArrayList()
+ private var keywords = ""
+ private var wellType = ""
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+ private var clickedPosition = 0
+
+ override fun initLayoutView(): Int = R.layout.activity_well_operation
+
+ override fun setupTopBarLayout() {
+ titleView.text = "布防撤防"
+ leftBackView.visibility = View.VISIBLE
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ easyPopupWindow = EasyPopupWindow(this)
+ easyPopupWindow.setBackgroundDrawable(null)
+ wellTypeViewModel = ViewModelProvider(this).get(WellTypeViewModel::class.java)
+ wellTypeViewModel.obtainWellType()
+ wellTypeViewModel.wellTypeModel.observe(this, {
+ if (it.code == 200) {
+ it.data!!.forEachIndexed { index, dataBean ->
+ val bean: WellTypeModel.DataBean
+ if (index == 0) {
+ bean = WellTypeModel.DataBean()
+ bean.id = ""
+ bean.name = "全\u3000部"
+ bean.value = ""
+ } else {
+ bean = dataBean
+ }
+ items.add(bean)
+ }
+ easyPopupWindow.setupPopupData(items)
+ }
+ })
+ wellListViewModel = ViewModelProvider(this).get(WellListViewModel::class.java)
+ weakReferenceHandler = WeakReferenceHandler(this)
+ obtainWellList(keywords, wellType, pageIndex)
+ //数据监听
+ wellListViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ operationRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows!!)
+ operationRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022032801)
+ }
+ })
+ operationViewModel = ViewModelProvider(this).get(WellOperationViewModel::class.java)
+ }
+
+ override fun initEvent() {
+ wellTypeLayout.setOnClickListener {
+ //旋转arrowImageView
+ val rotateAnimation = arrowImageView.animate()
+ rotateAnimation.duration = 200
+ rotateAnimation.interpolator = LinearInterpolator()
+ rotateAnimation.rotation(180f)
+ easyPopupWindow.showAsDropDown(wellTypeLayout)
+ easyPopupWindow.setOnPopupWindowClickListener(object :
+ EasyPopupWindow.OnPopupWindowClickListener {
+ override fun onPopupClick(position: Int) {
+ rotateAnimation.rotation(0f)
+ wellTypeModel = items[position]
+ wellTypeView.text = wellTypeModel.name
+ }
+ })
+ }
+
+ searchTextView.setOnClickListener {
+ keywords = searchInputView.text.toString().trim()
+ wellType = wellTypeModel.value.toString()
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ operationRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+ operationRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ //撤防布防状态监听
+ operationViewModel.operationResultModel.observe(this, {
+ if (it.code == 200) {
+ val rowsBean = dataBeans[clickedPosition]
+ if (rowsBean.bfztName == "布防") {
+ rowsBean.bfzt = "1"
+ rowsBean.bfztName = "撤防"
+ } else {
+ rowsBean.bfzt = "0"
+ rowsBean.bfztName = "布防"
+ }
+ }
+ })
+ operationViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "处理中,请稍后")
+ }
+ is LoadState.Success -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作成功".show(this)
+ wellOperationAdapter.notifyItemChanged(clickedPosition)
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作失败".show(this)
+ }
+ }
+ })
+ }
+
+ private fun obtainWellList(
+ keywords: String?, wellType: String?, pageIndex: Int
+ ) {
+ wellListViewModel.obtainWellList(
+ keywords = keywords,
+ wellType = wellType,
+ deptid = "",
+ isAlarm = "",
+ page = pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: WellOperationActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (msg.what == 2022032801) {
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.wellOperationAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.show("抱歉,无法查询到相关记录", null)
+ } else {
+ activity.emptyView!!.hide()
+ activity.wellOperationAdapter =
+ WellOperationAdapter(activity, activity.dataBeans)
+ activity.operationListView!!.layoutManager = LinearLayoutManager(activity)
+ activity.operationListView!!.adapter = activity.wellOperationAdapter
+ activity.wellOperationAdapter.setOnItemClickListener(object :
+ WellOperationAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val wellId = activity.dataBeans[position].id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ activity.navigatePageTo(WellDetailActivity::class.java, wellId)
+ }
+
+ override fun onOperationClicked(position: Int) {
+ //标记被点击的item位置
+ activity.clickedPosition = position
+
+ val detailModel = activity.dataBeans[position]
+ val wellId = detailModel.id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ val bfzt = if (detailModel.bfztName == "布防") {
+ "0"
+ } else {
+ "1"
+ }
+ val tips = if (detailModel.bfztName == "布防") {
+ "撤防"
+ } else {
+ "布防"
+ }
+ AlertControlDialog.Builder()
+ .setContext(activity)
+ .setTitle("操作提示")
+ .setMessage("确定将该井${tips}吗")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ activity.operationViewModel.obtainOperationResult(
+ wellId, bfzt
+ )
+ }
+
+ override fun onCancelClick() {
+
+ }
+ })
+ .build().show()
+ }
+
+ override fun onNavigationButtonClicked(position: Int) {
+ val wellDetail = activity.dataBeans[position]
+ val lat = wellDetail.latGaode.toString()
+ val lng = wellDetail.lngGaode.toString()
+ if (lat == "" || lng == "") {
+ "窨井经纬度异常,无法开启导航".show(activity)
+ return
+ }
+ Poi(
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble()),
+ ""
+ ).showRouteOnMap(activity)
+ }
+ })
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e206b5e..e72465c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@
+
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
index 6f7029b..d5c580f 100644
--- a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
@@ -26,8 +26,8 @@
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
//绑定数据
val rowsBean = dataRows[position]
- holder.wellCodeView.text = rowsBean.wellCode
holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellCodeView.text = rowsBean.wellCode
holder.wellLocationView.text = rowsBean.position
if (rowsBean.bfztName == "布防") {
holder.wellStateView.setImageResource(R.mipmap.ybf)
@@ -48,8 +48,8 @@
override fun getItemCount(): Int = dataRows.size
inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
- var wellTypeView: TextView = view.findViewById(R.id.wellTypeView)
var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
var wellStateView: ImageView = view.findViewById(R.id.wellStateView)
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
new file mode 100644
index 0000000..8d4fe45
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
@@ -0,0 +1,87 @@
+package com.casic.app.smartwell.adapter
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.extensions.covertColor
+import com.casic.app.smartwell.model.WellListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class WellOperationAdapter(
+ private val context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
+ val view: View =
+ layoutInflater.inflate(R.layout.item_well_operation_recycleview, parent, false)
+ return ItemViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.wellCodeView.text = rowsBean.wellCode
+ holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellLocationView.text = rowsBean.position
+ if (rowsBean.bfztName == "布防") {
+ holder.operationButton.text = "撤防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.redTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.redTextColor.covertColor(context))
+ } else {
+ holder.operationButton.text = "布防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.greenTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.greenTextColor.covertColor(context))
+ }
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ holder.operationButton.setOnClickListener {
+ listener!!.onOperationClicked(position)
+ }
+ holder.navigationButton.setOnClickListener {
+ listener!!.onNavigationButtonClicked(position)
+ }
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
+ var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
+ var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton)
+ var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+
+ fun onOperationClicked(position: Int)
+
+ fun onNavigationButtonClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
index 174b53c..0fcd0a1 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
@@ -64,6 +64,17 @@
): WellMonitorModel
/**
+ * 闸井布防撤防
+ */
+ @FormUrlEncoded
+ @POST("/well/bfcf")
+ suspend fun obtainOperationResult(
+ @Header("token") token: String,
+ @Field("wellId") wellId: String,
+ @Field("bfzt") bfzt: String
+ ): CommonResultModel
+
+ /**
* 获取用户信息
*/
@GET("/user/info")
@@ -73,7 +84,7 @@
* 修改密码
*/
@FormUrlEncoded
- @POST("mgr/changePwd")
+ @POST("/mgr/changePwd")
suspend fun changePassword(
@Header("token") token: String,
@Field("oldPwd") oldPwd: String,
@@ -89,6 +100,6 @@
/**
* 更新APK版本
*/
- @POST("app/checkVersion")
+ @POST("/app/checkVersion")
suspend fun obtainVersionResult(@Header("token") token: String): VersionResultModel
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
index deeaa36..c564911 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -63,6 +63,13 @@
}
/**
+ * 闸井布防撤防
+ */
+ suspend fun obtainOperationResult(wellId: String, bfzt: String): CommonResultModel {
+ return api.obtainOperationResult(AuthenticationHelper.token!!, wellId, bfzt)
+ }
+
+ /**
* 获取用户信息
*/
suspend fun obtainUserDetail(): UserDetailModel {
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index a3ce02e..8e804f8 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -23,6 +23,7 @@
import com.casic.app.smartwell.widgets.EasyPopupWindow
import kotlinx.android.synthetic.main.activity_well_management.*
import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
import java.lang.ref.WeakReference
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
new file mode 100644
index 0000000..a73cc8f
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
@@ -0,0 +1,285 @@
+package com.casic.app.smartwell.view
+
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import android.view.View
+import android.view.animation.LinearInterpolator
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.amap.api.maps.model.LatLng
+import com.amap.api.maps.model.Poi
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.adapter.WellOperationAdapter
+import com.casic.app.smartwell.base.BaseActivity
+import com.casic.app.smartwell.extensions.navigatePageTo
+import com.casic.app.smartwell.extensions.show
+import com.casic.app.smartwell.extensions.showRouteOnMap
+import com.casic.app.smartwell.model.WellListModel
+import com.casic.app.smartwell.model.WellTypeModel
+import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.vm.WellListViewModel
+import com.casic.app.smartwell.vm.WellOperationViewModel
+import com.casic.app.smartwell.vm.WellTypeViewModel
+import com.casic.app.smartwell.widgets.EasyPopupWindow
+import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
+import kotlinx.android.synthetic.main.activity_well_operation.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
+import java.lang.ref.WeakReference
+
+class WellOperationActivity : BaseActivity() {
+
+ private lateinit var wellTypeViewModel: WellTypeViewModel
+ private lateinit var wellListViewModel: WellListViewModel
+ private lateinit var operationViewModel: WellOperationViewModel
+ private lateinit var easyPopupWindow: EasyPopupWindow
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var wellOperationAdapter: WellOperationAdapter
+ private var items: MutableList = ArrayList()
+ private var wellTypeModel = WellTypeModel.DataBean()
+ private var dataBeans: MutableList = ArrayList()
+ private var keywords = ""
+ private var wellType = ""
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+ private var clickedPosition = 0
+
+ override fun initLayoutView(): Int = R.layout.activity_well_operation
+
+ override fun setupTopBarLayout() {
+ titleView.text = "布防撤防"
+ leftBackView.visibility = View.VISIBLE
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ easyPopupWindow = EasyPopupWindow(this)
+ easyPopupWindow.setBackgroundDrawable(null)
+ wellTypeViewModel = ViewModelProvider(this).get(WellTypeViewModel::class.java)
+ wellTypeViewModel.obtainWellType()
+ wellTypeViewModel.wellTypeModel.observe(this, {
+ if (it.code == 200) {
+ it.data!!.forEachIndexed { index, dataBean ->
+ val bean: WellTypeModel.DataBean
+ if (index == 0) {
+ bean = WellTypeModel.DataBean()
+ bean.id = ""
+ bean.name = "全\u3000部"
+ bean.value = ""
+ } else {
+ bean = dataBean
+ }
+ items.add(bean)
+ }
+ easyPopupWindow.setupPopupData(items)
+ }
+ })
+ wellListViewModel = ViewModelProvider(this).get(WellListViewModel::class.java)
+ weakReferenceHandler = WeakReferenceHandler(this)
+ obtainWellList(keywords, wellType, pageIndex)
+ //数据监听
+ wellListViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ operationRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows!!)
+ operationRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022032801)
+ }
+ })
+ operationViewModel = ViewModelProvider(this).get(WellOperationViewModel::class.java)
+ }
+
+ override fun initEvent() {
+ wellTypeLayout.setOnClickListener {
+ //旋转arrowImageView
+ val rotateAnimation = arrowImageView.animate()
+ rotateAnimation.duration = 200
+ rotateAnimation.interpolator = LinearInterpolator()
+ rotateAnimation.rotation(180f)
+ easyPopupWindow.showAsDropDown(wellTypeLayout)
+ easyPopupWindow.setOnPopupWindowClickListener(object :
+ EasyPopupWindow.OnPopupWindowClickListener {
+ override fun onPopupClick(position: Int) {
+ rotateAnimation.rotation(0f)
+ wellTypeModel = items[position]
+ wellTypeView.text = wellTypeModel.name
+ }
+ })
+ }
+
+ searchTextView.setOnClickListener {
+ keywords = searchInputView.text.toString().trim()
+ wellType = wellTypeModel.value.toString()
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ operationRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+ operationRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ //撤防布防状态监听
+ operationViewModel.operationResultModel.observe(this, {
+ if (it.code == 200) {
+ val rowsBean = dataBeans[clickedPosition]
+ if (rowsBean.bfztName == "布防") {
+ rowsBean.bfzt = "1"
+ rowsBean.bfztName = "撤防"
+ } else {
+ rowsBean.bfzt = "0"
+ rowsBean.bfztName = "布防"
+ }
+ }
+ })
+ operationViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "处理中,请稍后")
+ }
+ is LoadState.Success -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作成功".show(this)
+ wellOperationAdapter.notifyItemChanged(clickedPosition)
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作失败".show(this)
+ }
+ }
+ })
+ }
+
+ private fun obtainWellList(
+ keywords: String?, wellType: String?, pageIndex: Int
+ ) {
+ wellListViewModel.obtainWellList(
+ keywords = keywords,
+ wellType = wellType,
+ deptid = "",
+ isAlarm = "",
+ page = pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: WellOperationActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (msg.what == 2022032801) {
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.wellOperationAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.show("抱歉,无法查询到相关记录", null)
+ } else {
+ activity.emptyView!!.hide()
+ activity.wellOperationAdapter =
+ WellOperationAdapter(activity, activity.dataBeans)
+ activity.operationListView!!.layoutManager = LinearLayoutManager(activity)
+ activity.operationListView!!.adapter = activity.wellOperationAdapter
+ activity.wellOperationAdapter.setOnItemClickListener(object :
+ WellOperationAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val wellId = activity.dataBeans[position].id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ activity.navigatePageTo(WellDetailActivity::class.java, wellId)
+ }
+
+ override fun onOperationClicked(position: Int) {
+ //标记被点击的item位置
+ activity.clickedPosition = position
+
+ val detailModel = activity.dataBeans[position]
+ val wellId = detailModel.id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ val bfzt = if (detailModel.bfztName == "布防") {
+ "0"
+ } else {
+ "1"
+ }
+ val tips = if (detailModel.bfztName == "布防") {
+ "撤防"
+ } else {
+ "布防"
+ }
+ AlertControlDialog.Builder()
+ .setContext(activity)
+ .setTitle("操作提示")
+ .setMessage("确定将该井${tips}吗")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ activity.operationViewModel.obtainOperationResult(
+ wellId, bfzt
+ )
+ }
+
+ override fun onCancelClick() {
+
+ }
+ })
+ .build().show()
+ }
+
+ override fun onNavigationButtonClicked(position: Int) {
+ val wellDetail = activity.dataBeans[position]
+ val lat = wellDetail.latGaode.toString()
+ val lng = wellDetail.lngGaode.toString()
+ if (lat == "" || lng == "") {
+ "窨井经纬度异常,无法开启导航".show(activity)
+ return
+ }
+ Poi(
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble()),
+ ""
+ ).showRouteOnMap(activity)
+ }
+ })
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
index b3bb6a9..a494283 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
@@ -5,6 +5,7 @@
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.extensions.navigatePageTo
import com.casic.app.smartwell.view.WellManagementActivity
+import com.casic.app.smartwell.view.WellOperationActivity
import com.pengxh.app.multilib.base.BaseFragment
import kotlinx.android.synthetic.main.fragment_home.*
@@ -22,7 +23,7 @@
when (position) {
0 -> requireContext().navigatePageTo(WellManagementActivity::class.java)
// 1 -> startActivity(Intent(context, SearchRecordActivity::class.java))
-// 2 -> startActivity(Intent(context, StatisticsActivity::class.java))
+ 2 -> requireContext().navigatePageTo(WellOperationActivity::class.java)
}
}
})
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e206b5e..e72465c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@
+
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
index 6f7029b..d5c580f 100644
--- a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
@@ -26,8 +26,8 @@
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
//绑定数据
val rowsBean = dataRows[position]
- holder.wellCodeView.text = rowsBean.wellCode
holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellCodeView.text = rowsBean.wellCode
holder.wellLocationView.text = rowsBean.position
if (rowsBean.bfztName == "布防") {
holder.wellStateView.setImageResource(R.mipmap.ybf)
@@ -48,8 +48,8 @@
override fun getItemCount(): Int = dataRows.size
inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
- var wellTypeView: TextView = view.findViewById(R.id.wellTypeView)
var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
var wellStateView: ImageView = view.findViewById(R.id.wellStateView)
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
new file mode 100644
index 0000000..8d4fe45
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
@@ -0,0 +1,87 @@
+package com.casic.app.smartwell.adapter
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.extensions.covertColor
+import com.casic.app.smartwell.model.WellListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class WellOperationAdapter(
+ private val context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
+ val view: View =
+ layoutInflater.inflate(R.layout.item_well_operation_recycleview, parent, false)
+ return ItemViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.wellCodeView.text = rowsBean.wellCode
+ holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellLocationView.text = rowsBean.position
+ if (rowsBean.bfztName == "布防") {
+ holder.operationButton.text = "撤防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.redTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.redTextColor.covertColor(context))
+ } else {
+ holder.operationButton.text = "布防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.greenTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.greenTextColor.covertColor(context))
+ }
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ holder.operationButton.setOnClickListener {
+ listener!!.onOperationClicked(position)
+ }
+ holder.navigationButton.setOnClickListener {
+ listener!!.onNavigationButtonClicked(position)
+ }
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
+ var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
+ var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton)
+ var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+
+ fun onOperationClicked(position: Int)
+
+ fun onNavigationButtonClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
index 174b53c..0fcd0a1 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
@@ -64,6 +64,17 @@
): WellMonitorModel
/**
+ * 闸井布防撤防
+ */
+ @FormUrlEncoded
+ @POST("/well/bfcf")
+ suspend fun obtainOperationResult(
+ @Header("token") token: String,
+ @Field("wellId") wellId: String,
+ @Field("bfzt") bfzt: String
+ ): CommonResultModel
+
+ /**
* 获取用户信息
*/
@GET("/user/info")
@@ -73,7 +84,7 @@
* 修改密码
*/
@FormUrlEncoded
- @POST("mgr/changePwd")
+ @POST("/mgr/changePwd")
suspend fun changePassword(
@Header("token") token: String,
@Field("oldPwd") oldPwd: String,
@@ -89,6 +100,6 @@
/**
* 更新APK版本
*/
- @POST("app/checkVersion")
+ @POST("/app/checkVersion")
suspend fun obtainVersionResult(@Header("token") token: String): VersionResultModel
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
index deeaa36..c564911 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -63,6 +63,13 @@
}
/**
+ * 闸井布防撤防
+ */
+ suspend fun obtainOperationResult(wellId: String, bfzt: String): CommonResultModel {
+ return api.obtainOperationResult(AuthenticationHelper.token!!, wellId, bfzt)
+ }
+
+ /**
* 获取用户信息
*/
suspend fun obtainUserDetail(): UserDetailModel {
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index a3ce02e..8e804f8 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -23,6 +23,7 @@
import com.casic.app.smartwell.widgets.EasyPopupWindow
import kotlinx.android.synthetic.main.activity_well_management.*
import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
import java.lang.ref.WeakReference
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
new file mode 100644
index 0000000..a73cc8f
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
@@ -0,0 +1,285 @@
+package com.casic.app.smartwell.view
+
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import android.view.View
+import android.view.animation.LinearInterpolator
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.amap.api.maps.model.LatLng
+import com.amap.api.maps.model.Poi
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.adapter.WellOperationAdapter
+import com.casic.app.smartwell.base.BaseActivity
+import com.casic.app.smartwell.extensions.navigatePageTo
+import com.casic.app.smartwell.extensions.show
+import com.casic.app.smartwell.extensions.showRouteOnMap
+import com.casic.app.smartwell.model.WellListModel
+import com.casic.app.smartwell.model.WellTypeModel
+import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.vm.WellListViewModel
+import com.casic.app.smartwell.vm.WellOperationViewModel
+import com.casic.app.smartwell.vm.WellTypeViewModel
+import com.casic.app.smartwell.widgets.EasyPopupWindow
+import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
+import kotlinx.android.synthetic.main.activity_well_operation.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
+import java.lang.ref.WeakReference
+
+class WellOperationActivity : BaseActivity() {
+
+ private lateinit var wellTypeViewModel: WellTypeViewModel
+ private lateinit var wellListViewModel: WellListViewModel
+ private lateinit var operationViewModel: WellOperationViewModel
+ private lateinit var easyPopupWindow: EasyPopupWindow
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var wellOperationAdapter: WellOperationAdapter
+ private var items: MutableList = ArrayList()
+ private var wellTypeModel = WellTypeModel.DataBean()
+ private var dataBeans: MutableList = ArrayList()
+ private var keywords = ""
+ private var wellType = ""
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+ private var clickedPosition = 0
+
+ override fun initLayoutView(): Int = R.layout.activity_well_operation
+
+ override fun setupTopBarLayout() {
+ titleView.text = "布防撤防"
+ leftBackView.visibility = View.VISIBLE
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ easyPopupWindow = EasyPopupWindow(this)
+ easyPopupWindow.setBackgroundDrawable(null)
+ wellTypeViewModel = ViewModelProvider(this).get(WellTypeViewModel::class.java)
+ wellTypeViewModel.obtainWellType()
+ wellTypeViewModel.wellTypeModel.observe(this, {
+ if (it.code == 200) {
+ it.data!!.forEachIndexed { index, dataBean ->
+ val bean: WellTypeModel.DataBean
+ if (index == 0) {
+ bean = WellTypeModel.DataBean()
+ bean.id = ""
+ bean.name = "全\u3000部"
+ bean.value = ""
+ } else {
+ bean = dataBean
+ }
+ items.add(bean)
+ }
+ easyPopupWindow.setupPopupData(items)
+ }
+ })
+ wellListViewModel = ViewModelProvider(this).get(WellListViewModel::class.java)
+ weakReferenceHandler = WeakReferenceHandler(this)
+ obtainWellList(keywords, wellType, pageIndex)
+ //数据监听
+ wellListViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ operationRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows!!)
+ operationRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022032801)
+ }
+ })
+ operationViewModel = ViewModelProvider(this).get(WellOperationViewModel::class.java)
+ }
+
+ override fun initEvent() {
+ wellTypeLayout.setOnClickListener {
+ //旋转arrowImageView
+ val rotateAnimation = arrowImageView.animate()
+ rotateAnimation.duration = 200
+ rotateAnimation.interpolator = LinearInterpolator()
+ rotateAnimation.rotation(180f)
+ easyPopupWindow.showAsDropDown(wellTypeLayout)
+ easyPopupWindow.setOnPopupWindowClickListener(object :
+ EasyPopupWindow.OnPopupWindowClickListener {
+ override fun onPopupClick(position: Int) {
+ rotateAnimation.rotation(0f)
+ wellTypeModel = items[position]
+ wellTypeView.text = wellTypeModel.name
+ }
+ })
+ }
+
+ searchTextView.setOnClickListener {
+ keywords = searchInputView.text.toString().trim()
+ wellType = wellTypeModel.value.toString()
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ operationRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+ operationRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ //撤防布防状态监听
+ operationViewModel.operationResultModel.observe(this, {
+ if (it.code == 200) {
+ val rowsBean = dataBeans[clickedPosition]
+ if (rowsBean.bfztName == "布防") {
+ rowsBean.bfzt = "1"
+ rowsBean.bfztName = "撤防"
+ } else {
+ rowsBean.bfzt = "0"
+ rowsBean.bfztName = "布防"
+ }
+ }
+ })
+ operationViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "处理中,请稍后")
+ }
+ is LoadState.Success -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作成功".show(this)
+ wellOperationAdapter.notifyItemChanged(clickedPosition)
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作失败".show(this)
+ }
+ }
+ })
+ }
+
+ private fun obtainWellList(
+ keywords: String?, wellType: String?, pageIndex: Int
+ ) {
+ wellListViewModel.obtainWellList(
+ keywords = keywords,
+ wellType = wellType,
+ deptid = "",
+ isAlarm = "",
+ page = pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: WellOperationActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (msg.what == 2022032801) {
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.wellOperationAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.show("抱歉,无法查询到相关记录", null)
+ } else {
+ activity.emptyView!!.hide()
+ activity.wellOperationAdapter =
+ WellOperationAdapter(activity, activity.dataBeans)
+ activity.operationListView!!.layoutManager = LinearLayoutManager(activity)
+ activity.operationListView!!.adapter = activity.wellOperationAdapter
+ activity.wellOperationAdapter.setOnItemClickListener(object :
+ WellOperationAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val wellId = activity.dataBeans[position].id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ activity.navigatePageTo(WellDetailActivity::class.java, wellId)
+ }
+
+ override fun onOperationClicked(position: Int) {
+ //标记被点击的item位置
+ activity.clickedPosition = position
+
+ val detailModel = activity.dataBeans[position]
+ val wellId = detailModel.id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ val bfzt = if (detailModel.bfztName == "布防") {
+ "0"
+ } else {
+ "1"
+ }
+ val tips = if (detailModel.bfztName == "布防") {
+ "撤防"
+ } else {
+ "布防"
+ }
+ AlertControlDialog.Builder()
+ .setContext(activity)
+ .setTitle("操作提示")
+ .setMessage("确定将该井${tips}吗")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ activity.operationViewModel.obtainOperationResult(
+ wellId, bfzt
+ )
+ }
+
+ override fun onCancelClick() {
+
+ }
+ })
+ .build().show()
+ }
+
+ override fun onNavigationButtonClicked(position: Int) {
+ val wellDetail = activity.dataBeans[position]
+ val lat = wellDetail.latGaode.toString()
+ val lng = wellDetail.lngGaode.toString()
+ if (lat == "" || lng == "") {
+ "窨井经纬度异常,无法开启导航".show(activity)
+ return
+ }
+ Poi(
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble()),
+ ""
+ ).showRouteOnMap(activity)
+ }
+ })
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
index b3bb6a9..a494283 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
@@ -5,6 +5,7 @@
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.extensions.navigatePageTo
import com.casic.app.smartwell.view.WellManagementActivity
+import com.casic.app.smartwell.view.WellOperationActivity
import com.pengxh.app.multilib.base.BaseFragment
import kotlinx.android.synthetic.main.fragment_home.*
@@ -22,7 +23,7 @@
when (position) {
0 -> requireContext().navigatePageTo(WellManagementActivity::class.java)
// 1 -> startActivity(Intent(context, SearchRecordActivity::class.java))
-// 2 -> startActivity(Intent(context, StatisticsActivity::class.java))
+ 2 -> requireContext().navigatePageTo(WellOperationActivity::class.java)
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt b/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt
new file mode 100644
index 0000000..43c66a6
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt
@@ -0,0 +1,20 @@
+package com.casic.app.smartwell.vm
+
+import androidx.lifecycle.MutableLiveData
+import com.casic.app.smartwell.base.BaseViewModel
+import com.casic.app.smartwell.extensions.launch
+import com.casic.app.smartwell.model.CommonResultModel
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.utils.retrofit.RetrofitServiceManager
+
+class WellOperationViewModel : BaseViewModel() {
+ val operationResultModel = MutableLiveData()
+
+ fun obtainOperationResult(wellId: String, bfzt: String) = launch({
+ loadState.value = LoadState.Loading
+ operationResultModel.value = RetrofitServiceManager.obtainOperationResult(wellId, bfzt)
+ loadState.value = LoadState.Success
+ }, {
+ loadState.value = LoadState.Fail
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e206b5e..e72465c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@
+
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
index 6f7029b..d5c580f 100644
--- a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
@@ -26,8 +26,8 @@
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
//绑定数据
val rowsBean = dataRows[position]
- holder.wellCodeView.text = rowsBean.wellCode
holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellCodeView.text = rowsBean.wellCode
holder.wellLocationView.text = rowsBean.position
if (rowsBean.bfztName == "布防") {
holder.wellStateView.setImageResource(R.mipmap.ybf)
@@ -48,8 +48,8 @@
override fun getItemCount(): Int = dataRows.size
inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
- var wellTypeView: TextView = view.findViewById(R.id.wellTypeView)
var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
var wellStateView: ImageView = view.findViewById(R.id.wellStateView)
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
new file mode 100644
index 0000000..8d4fe45
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
@@ -0,0 +1,87 @@
+package com.casic.app.smartwell.adapter
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.extensions.covertColor
+import com.casic.app.smartwell.model.WellListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class WellOperationAdapter(
+ private val context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
+ val view: View =
+ layoutInflater.inflate(R.layout.item_well_operation_recycleview, parent, false)
+ return ItemViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.wellCodeView.text = rowsBean.wellCode
+ holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellLocationView.text = rowsBean.position
+ if (rowsBean.bfztName == "布防") {
+ holder.operationButton.text = "撤防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.redTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.redTextColor.covertColor(context))
+ } else {
+ holder.operationButton.text = "布防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.greenTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.greenTextColor.covertColor(context))
+ }
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ holder.operationButton.setOnClickListener {
+ listener!!.onOperationClicked(position)
+ }
+ holder.navigationButton.setOnClickListener {
+ listener!!.onNavigationButtonClicked(position)
+ }
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
+ var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
+ var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton)
+ var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+
+ fun onOperationClicked(position: Int)
+
+ fun onNavigationButtonClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
index 174b53c..0fcd0a1 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
@@ -64,6 +64,17 @@
): WellMonitorModel
/**
+ * 闸井布防撤防
+ */
+ @FormUrlEncoded
+ @POST("/well/bfcf")
+ suspend fun obtainOperationResult(
+ @Header("token") token: String,
+ @Field("wellId") wellId: String,
+ @Field("bfzt") bfzt: String
+ ): CommonResultModel
+
+ /**
* 获取用户信息
*/
@GET("/user/info")
@@ -73,7 +84,7 @@
* 修改密码
*/
@FormUrlEncoded
- @POST("mgr/changePwd")
+ @POST("/mgr/changePwd")
suspend fun changePassword(
@Header("token") token: String,
@Field("oldPwd") oldPwd: String,
@@ -89,6 +100,6 @@
/**
* 更新APK版本
*/
- @POST("app/checkVersion")
+ @POST("/app/checkVersion")
suspend fun obtainVersionResult(@Header("token") token: String): VersionResultModel
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
index deeaa36..c564911 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -63,6 +63,13 @@
}
/**
+ * 闸井布防撤防
+ */
+ suspend fun obtainOperationResult(wellId: String, bfzt: String): CommonResultModel {
+ return api.obtainOperationResult(AuthenticationHelper.token!!, wellId, bfzt)
+ }
+
+ /**
* 获取用户信息
*/
suspend fun obtainUserDetail(): UserDetailModel {
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index a3ce02e..8e804f8 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -23,6 +23,7 @@
import com.casic.app.smartwell.widgets.EasyPopupWindow
import kotlinx.android.synthetic.main.activity_well_management.*
import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
import java.lang.ref.WeakReference
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
new file mode 100644
index 0000000..a73cc8f
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
@@ -0,0 +1,285 @@
+package com.casic.app.smartwell.view
+
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import android.view.View
+import android.view.animation.LinearInterpolator
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.amap.api.maps.model.LatLng
+import com.amap.api.maps.model.Poi
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.adapter.WellOperationAdapter
+import com.casic.app.smartwell.base.BaseActivity
+import com.casic.app.smartwell.extensions.navigatePageTo
+import com.casic.app.smartwell.extensions.show
+import com.casic.app.smartwell.extensions.showRouteOnMap
+import com.casic.app.smartwell.model.WellListModel
+import com.casic.app.smartwell.model.WellTypeModel
+import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.vm.WellListViewModel
+import com.casic.app.smartwell.vm.WellOperationViewModel
+import com.casic.app.smartwell.vm.WellTypeViewModel
+import com.casic.app.smartwell.widgets.EasyPopupWindow
+import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
+import kotlinx.android.synthetic.main.activity_well_operation.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
+import java.lang.ref.WeakReference
+
+class WellOperationActivity : BaseActivity() {
+
+ private lateinit var wellTypeViewModel: WellTypeViewModel
+ private lateinit var wellListViewModel: WellListViewModel
+ private lateinit var operationViewModel: WellOperationViewModel
+ private lateinit var easyPopupWindow: EasyPopupWindow
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var wellOperationAdapter: WellOperationAdapter
+ private var items: MutableList = ArrayList()
+ private var wellTypeModel = WellTypeModel.DataBean()
+ private var dataBeans: MutableList = ArrayList()
+ private var keywords = ""
+ private var wellType = ""
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+ private var clickedPosition = 0
+
+ override fun initLayoutView(): Int = R.layout.activity_well_operation
+
+ override fun setupTopBarLayout() {
+ titleView.text = "布防撤防"
+ leftBackView.visibility = View.VISIBLE
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ easyPopupWindow = EasyPopupWindow(this)
+ easyPopupWindow.setBackgroundDrawable(null)
+ wellTypeViewModel = ViewModelProvider(this).get(WellTypeViewModel::class.java)
+ wellTypeViewModel.obtainWellType()
+ wellTypeViewModel.wellTypeModel.observe(this, {
+ if (it.code == 200) {
+ it.data!!.forEachIndexed { index, dataBean ->
+ val bean: WellTypeModel.DataBean
+ if (index == 0) {
+ bean = WellTypeModel.DataBean()
+ bean.id = ""
+ bean.name = "全\u3000部"
+ bean.value = ""
+ } else {
+ bean = dataBean
+ }
+ items.add(bean)
+ }
+ easyPopupWindow.setupPopupData(items)
+ }
+ })
+ wellListViewModel = ViewModelProvider(this).get(WellListViewModel::class.java)
+ weakReferenceHandler = WeakReferenceHandler(this)
+ obtainWellList(keywords, wellType, pageIndex)
+ //数据监听
+ wellListViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ operationRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows!!)
+ operationRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022032801)
+ }
+ })
+ operationViewModel = ViewModelProvider(this).get(WellOperationViewModel::class.java)
+ }
+
+ override fun initEvent() {
+ wellTypeLayout.setOnClickListener {
+ //旋转arrowImageView
+ val rotateAnimation = arrowImageView.animate()
+ rotateAnimation.duration = 200
+ rotateAnimation.interpolator = LinearInterpolator()
+ rotateAnimation.rotation(180f)
+ easyPopupWindow.showAsDropDown(wellTypeLayout)
+ easyPopupWindow.setOnPopupWindowClickListener(object :
+ EasyPopupWindow.OnPopupWindowClickListener {
+ override fun onPopupClick(position: Int) {
+ rotateAnimation.rotation(0f)
+ wellTypeModel = items[position]
+ wellTypeView.text = wellTypeModel.name
+ }
+ })
+ }
+
+ searchTextView.setOnClickListener {
+ keywords = searchInputView.text.toString().trim()
+ wellType = wellTypeModel.value.toString()
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ operationRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+ operationRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ //撤防布防状态监听
+ operationViewModel.operationResultModel.observe(this, {
+ if (it.code == 200) {
+ val rowsBean = dataBeans[clickedPosition]
+ if (rowsBean.bfztName == "布防") {
+ rowsBean.bfzt = "1"
+ rowsBean.bfztName = "撤防"
+ } else {
+ rowsBean.bfzt = "0"
+ rowsBean.bfztName = "布防"
+ }
+ }
+ })
+ operationViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "处理中,请稍后")
+ }
+ is LoadState.Success -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作成功".show(this)
+ wellOperationAdapter.notifyItemChanged(clickedPosition)
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作失败".show(this)
+ }
+ }
+ })
+ }
+
+ private fun obtainWellList(
+ keywords: String?, wellType: String?, pageIndex: Int
+ ) {
+ wellListViewModel.obtainWellList(
+ keywords = keywords,
+ wellType = wellType,
+ deptid = "",
+ isAlarm = "",
+ page = pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: WellOperationActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (msg.what == 2022032801) {
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.wellOperationAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.show("抱歉,无法查询到相关记录", null)
+ } else {
+ activity.emptyView!!.hide()
+ activity.wellOperationAdapter =
+ WellOperationAdapter(activity, activity.dataBeans)
+ activity.operationListView!!.layoutManager = LinearLayoutManager(activity)
+ activity.operationListView!!.adapter = activity.wellOperationAdapter
+ activity.wellOperationAdapter.setOnItemClickListener(object :
+ WellOperationAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val wellId = activity.dataBeans[position].id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ activity.navigatePageTo(WellDetailActivity::class.java, wellId)
+ }
+
+ override fun onOperationClicked(position: Int) {
+ //标记被点击的item位置
+ activity.clickedPosition = position
+
+ val detailModel = activity.dataBeans[position]
+ val wellId = detailModel.id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ val bfzt = if (detailModel.bfztName == "布防") {
+ "0"
+ } else {
+ "1"
+ }
+ val tips = if (detailModel.bfztName == "布防") {
+ "撤防"
+ } else {
+ "布防"
+ }
+ AlertControlDialog.Builder()
+ .setContext(activity)
+ .setTitle("操作提示")
+ .setMessage("确定将该井${tips}吗")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ activity.operationViewModel.obtainOperationResult(
+ wellId, bfzt
+ )
+ }
+
+ override fun onCancelClick() {
+
+ }
+ })
+ .build().show()
+ }
+
+ override fun onNavigationButtonClicked(position: Int) {
+ val wellDetail = activity.dataBeans[position]
+ val lat = wellDetail.latGaode.toString()
+ val lng = wellDetail.lngGaode.toString()
+ if (lat == "" || lng == "") {
+ "窨井经纬度异常,无法开启导航".show(activity)
+ return
+ }
+ Poi(
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble()),
+ ""
+ ).showRouteOnMap(activity)
+ }
+ })
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
index b3bb6a9..a494283 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
@@ -5,6 +5,7 @@
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.extensions.navigatePageTo
import com.casic.app.smartwell.view.WellManagementActivity
+import com.casic.app.smartwell.view.WellOperationActivity
import com.pengxh.app.multilib.base.BaseFragment
import kotlinx.android.synthetic.main.fragment_home.*
@@ -22,7 +23,7 @@
when (position) {
0 -> requireContext().navigatePageTo(WellManagementActivity::class.java)
// 1 -> startActivity(Intent(context, SearchRecordActivity::class.java))
-// 2 -> startActivity(Intent(context, StatisticsActivity::class.java))
+ 2 -> requireContext().navigatePageTo(WellOperationActivity::class.java)
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt b/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt
new file mode 100644
index 0000000..43c66a6
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt
@@ -0,0 +1,20 @@
+package com.casic.app.smartwell.vm
+
+import androidx.lifecycle.MutableLiveData
+import com.casic.app.smartwell.base.BaseViewModel
+import com.casic.app.smartwell.extensions.launch
+import com.casic.app.smartwell.model.CommonResultModel
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.utils.retrofit.RetrofitServiceManager
+
+class WellOperationViewModel : BaseViewModel() {
+ val operationResultModel = MutableLiveData()
+
+ fun obtainOperationResult(wellId: String, bfzt: String) = launch({
+ loadState.value = LoadState.Loading
+ operationResultModel.value = RetrofitServiceManager.obtainOperationResult(wellId, bfzt)
+ loadState.value = LoadState.Success
+ }, {
+ loadState.value = LoadState.Fail
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_well_management.xml b/app/src/main/res/layout/activity_well_management.xml
index 6f61fc4..06c9434 100644
--- a/app/src/main/res/layout/activity_well_management.xml
+++ b/app/src/main/res/layout/activity_well_management.xml
@@ -9,86 +9,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
index 6f7029b..d5c580f 100644
--- a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
@@ -26,8 +26,8 @@
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
//绑定数据
val rowsBean = dataRows[position]
- holder.wellCodeView.text = rowsBean.wellCode
holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellCodeView.text = rowsBean.wellCode
holder.wellLocationView.text = rowsBean.position
if (rowsBean.bfztName == "布防") {
holder.wellStateView.setImageResource(R.mipmap.ybf)
@@ -48,8 +48,8 @@
override fun getItemCount(): Int = dataRows.size
inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
- var wellTypeView: TextView = view.findViewById(R.id.wellTypeView)
var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
var wellStateView: ImageView = view.findViewById(R.id.wellStateView)
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
new file mode 100644
index 0000000..8d4fe45
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
@@ -0,0 +1,87 @@
+package com.casic.app.smartwell.adapter
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.extensions.covertColor
+import com.casic.app.smartwell.model.WellListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class WellOperationAdapter(
+ private val context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
+ val view: View =
+ layoutInflater.inflate(R.layout.item_well_operation_recycleview, parent, false)
+ return ItemViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.wellCodeView.text = rowsBean.wellCode
+ holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellLocationView.text = rowsBean.position
+ if (rowsBean.bfztName == "布防") {
+ holder.operationButton.text = "撤防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.redTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.redTextColor.covertColor(context))
+ } else {
+ holder.operationButton.text = "布防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.greenTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.greenTextColor.covertColor(context))
+ }
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ holder.operationButton.setOnClickListener {
+ listener!!.onOperationClicked(position)
+ }
+ holder.navigationButton.setOnClickListener {
+ listener!!.onNavigationButtonClicked(position)
+ }
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
+ var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
+ var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton)
+ var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+
+ fun onOperationClicked(position: Int)
+
+ fun onNavigationButtonClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
index 174b53c..0fcd0a1 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
@@ -64,6 +64,17 @@
): WellMonitorModel
/**
+ * 闸井布防撤防
+ */
+ @FormUrlEncoded
+ @POST("/well/bfcf")
+ suspend fun obtainOperationResult(
+ @Header("token") token: String,
+ @Field("wellId") wellId: String,
+ @Field("bfzt") bfzt: String
+ ): CommonResultModel
+
+ /**
* 获取用户信息
*/
@GET("/user/info")
@@ -73,7 +84,7 @@
* 修改密码
*/
@FormUrlEncoded
- @POST("mgr/changePwd")
+ @POST("/mgr/changePwd")
suspend fun changePassword(
@Header("token") token: String,
@Field("oldPwd") oldPwd: String,
@@ -89,6 +100,6 @@
/**
* 更新APK版本
*/
- @POST("app/checkVersion")
+ @POST("/app/checkVersion")
suspend fun obtainVersionResult(@Header("token") token: String): VersionResultModel
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
index deeaa36..c564911 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -63,6 +63,13 @@
}
/**
+ * 闸井布防撤防
+ */
+ suspend fun obtainOperationResult(wellId: String, bfzt: String): CommonResultModel {
+ return api.obtainOperationResult(AuthenticationHelper.token!!, wellId, bfzt)
+ }
+
+ /**
* 获取用户信息
*/
suspend fun obtainUserDetail(): UserDetailModel {
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index a3ce02e..8e804f8 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -23,6 +23,7 @@
import com.casic.app.smartwell.widgets.EasyPopupWindow
import kotlinx.android.synthetic.main.activity_well_management.*
import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
import java.lang.ref.WeakReference
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
new file mode 100644
index 0000000..a73cc8f
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
@@ -0,0 +1,285 @@
+package com.casic.app.smartwell.view
+
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import android.view.View
+import android.view.animation.LinearInterpolator
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.amap.api.maps.model.LatLng
+import com.amap.api.maps.model.Poi
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.adapter.WellOperationAdapter
+import com.casic.app.smartwell.base.BaseActivity
+import com.casic.app.smartwell.extensions.navigatePageTo
+import com.casic.app.smartwell.extensions.show
+import com.casic.app.smartwell.extensions.showRouteOnMap
+import com.casic.app.smartwell.model.WellListModel
+import com.casic.app.smartwell.model.WellTypeModel
+import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.vm.WellListViewModel
+import com.casic.app.smartwell.vm.WellOperationViewModel
+import com.casic.app.smartwell.vm.WellTypeViewModel
+import com.casic.app.smartwell.widgets.EasyPopupWindow
+import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
+import kotlinx.android.synthetic.main.activity_well_operation.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
+import java.lang.ref.WeakReference
+
+class WellOperationActivity : BaseActivity() {
+
+ private lateinit var wellTypeViewModel: WellTypeViewModel
+ private lateinit var wellListViewModel: WellListViewModel
+ private lateinit var operationViewModel: WellOperationViewModel
+ private lateinit var easyPopupWindow: EasyPopupWindow
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var wellOperationAdapter: WellOperationAdapter
+ private var items: MutableList = ArrayList()
+ private var wellTypeModel = WellTypeModel.DataBean()
+ private var dataBeans: MutableList = ArrayList()
+ private var keywords = ""
+ private var wellType = ""
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+ private var clickedPosition = 0
+
+ override fun initLayoutView(): Int = R.layout.activity_well_operation
+
+ override fun setupTopBarLayout() {
+ titleView.text = "布防撤防"
+ leftBackView.visibility = View.VISIBLE
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ easyPopupWindow = EasyPopupWindow(this)
+ easyPopupWindow.setBackgroundDrawable(null)
+ wellTypeViewModel = ViewModelProvider(this).get(WellTypeViewModel::class.java)
+ wellTypeViewModel.obtainWellType()
+ wellTypeViewModel.wellTypeModel.observe(this, {
+ if (it.code == 200) {
+ it.data!!.forEachIndexed { index, dataBean ->
+ val bean: WellTypeModel.DataBean
+ if (index == 0) {
+ bean = WellTypeModel.DataBean()
+ bean.id = ""
+ bean.name = "全\u3000部"
+ bean.value = ""
+ } else {
+ bean = dataBean
+ }
+ items.add(bean)
+ }
+ easyPopupWindow.setupPopupData(items)
+ }
+ })
+ wellListViewModel = ViewModelProvider(this).get(WellListViewModel::class.java)
+ weakReferenceHandler = WeakReferenceHandler(this)
+ obtainWellList(keywords, wellType, pageIndex)
+ //数据监听
+ wellListViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ operationRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows!!)
+ operationRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022032801)
+ }
+ })
+ operationViewModel = ViewModelProvider(this).get(WellOperationViewModel::class.java)
+ }
+
+ override fun initEvent() {
+ wellTypeLayout.setOnClickListener {
+ //旋转arrowImageView
+ val rotateAnimation = arrowImageView.animate()
+ rotateAnimation.duration = 200
+ rotateAnimation.interpolator = LinearInterpolator()
+ rotateAnimation.rotation(180f)
+ easyPopupWindow.showAsDropDown(wellTypeLayout)
+ easyPopupWindow.setOnPopupWindowClickListener(object :
+ EasyPopupWindow.OnPopupWindowClickListener {
+ override fun onPopupClick(position: Int) {
+ rotateAnimation.rotation(0f)
+ wellTypeModel = items[position]
+ wellTypeView.text = wellTypeModel.name
+ }
+ })
+ }
+
+ searchTextView.setOnClickListener {
+ keywords = searchInputView.text.toString().trim()
+ wellType = wellTypeModel.value.toString()
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ operationRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+ operationRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ //撤防布防状态监听
+ operationViewModel.operationResultModel.observe(this, {
+ if (it.code == 200) {
+ val rowsBean = dataBeans[clickedPosition]
+ if (rowsBean.bfztName == "布防") {
+ rowsBean.bfzt = "1"
+ rowsBean.bfztName = "撤防"
+ } else {
+ rowsBean.bfzt = "0"
+ rowsBean.bfztName = "布防"
+ }
+ }
+ })
+ operationViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "处理中,请稍后")
+ }
+ is LoadState.Success -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作成功".show(this)
+ wellOperationAdapter.notifyItemChanged(clickedPosition)
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作失败".show(this)
+ }
+ }
+ })
+ }
+
+ private fun obtainWellList(
+ keywords: String?, wellType: String?, pageIndex: Int
+ ) {
+ wellListViewModel.obtainWellList(
+ keywords = keywords,
+ wellType = wellType,
+ deptid = "",
+ isAlarm = "",
+ page = pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: WellOperationActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (msg.what == 2022032801) {
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.wellOperationAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.show("抱歉,无法查询到相关记录", null)
+ } else {
+ activity.emptyView!!.hide()
+ activity.wellOperationAdapter =
+ WellOperationAdapter(activity, activity.dataBeans)
+ activity.operationListView!!.layoutManager = LinearLayoutManager(activity)
+ activity.operationListView!!.adapter = activity.wellOperationAdapter
+ activity.wellOperationAdapter.setOnItemClickListener(object :
+ WellOperationAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val wellId = activity.dataBeans[position].id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ activity.navigatePageTo(WellDetailActivity::class.java, wellId)
+ }
+
+ override fun onOperationClicked(position: Int) {
+ //标记被点击的item位置
+ activity.clickedPosition = position
+
+ val detailModel = activity.dataBeans[position]
+ val wellId = detailModel.id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ val bfzt = if (detailModel.bfztName == "布防") {
+ "0"
+ } else {
+ "1"
+ }
+ val tips = if (detailModel.bfztName == "布防") {
+ "撤防"
+ } else {
+ "布防"
+ }
+ AlertControlDialog.Builder()
+ .setContext(activity)
+ .setTitle("操作提示")
+ .setMessage("确定将该井${tips}吗")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ activity.operationViewModel.obtainOperationResult(
+ wellId, bfzt
+ )
+ }
+
+ override fun onCancelClick() {
+
+ }
+ })
+ .build().show()
+ }
+
+ override fun onNavigationButtonClicked(position: Int) {
+ val wellDetail = activity.dataBeans[position]
+ val lat = wellDetail.latGaode.toString()
+ val lng = wellDetail.lngGaode.toString()
+ if (lat == "" || lng == "") {
+ "窨井经纬度异常,无法开启导航".show(activity)
+ return
+ }
+ Poi(
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble()),
+ ""
+ ).showRouteOnMap(activity)
+ }
+ })
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
index b3bb6a9..a494283 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
@@ -5,6 +5,7 @@
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.extensions.navigatePageTo
import com.casic.app.smartwell.view.WellManagementActivity
+import com.casic.app.smartwell.view.WellOperationActivity
import com.pengxh.app.multilib.base.BaseFragment
import kotlinx.android.synthetic.main.fragment_home.*
@@ -22,7 +23,7 @@
when (position) {
0 -> requireContext().navigatePageTo(WellManagementActivity::class.java)
// 1 -> startActivity(Intent(context, SearchRecordActivity::class.java))
-// 2 -> startActivity(Intent(context, StatisticsActivity::class.java))
+ 2 -> requireContext().navigatePageTo(WellOperationActivity::class.java)
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt b/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt
new file mode 100644
index 0000000..43c66a6
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt
@@ -0,0 +1,20 @@
+package com.casic.app.smartwell.vm
+
+import androidx.lifecycle.MutableLiveData
+import com.casic.app.smartwell.base.BaseViewModel
+import com.casic.app.smartwell.extensions.launch
+import com.casic.app.smartwell.model.CommonResultModel
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.utils.retrofit.RetrofitServiceManager
+
+class WellOperationViewModel : BaseViewModel() {
+ val operationResultModel = MutableLiveData()
+
+ fun obtainOperationResult(wellId: String, bfzt: String) = launch({
+ loadState.value = LoadState.Loading
+ operationResultModel.value = RetrofitServiceManager.obtainOperationResult(wellId, bfzt)
+ loadState.value = LoadState.Success
+ }, {
+ loadState.value = LoadState.Fail
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_well_management.xml b/app/src/main/res/layout/activity_well_management.xml
index 6f61fc4..06c9434 100644
--- a/app/src/main/res/layout/activity_well_management.xml
+++ b/app/src/main/res/layout/activity_well_management.xml
@@ -9,86 +9,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e206b5e..e72465c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@
+
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
index 6f7029b..d5c580f 100644
--- a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
@@ -26,8 +26,8 @@
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
//绑定数据
val rowsBean = dataRows[position]
- holder.wellCodeView.text = rowsBean.wellCode
holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellCodeView.text = rowsBean.wellCode
holder.wellLocationView.text = rowsBean.position
if (rowsBean.bfztName == "布防") {
holder.wellStateView.setImageResource(R.mipmap.ybf)
@@ -48,8 +48,8 @@
override fun getItemCount(): Int = dataRows.size
inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
- var wellTypeView: TextView = view.findViewById(R.id.wellTypeView)
var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
var wellStateView: ImageView = view.findViewById(R.id.wellStateView)
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
new file mode 100644
index 0000000..8d4fe45
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
@@ -0,0 +1,87 @@
+package com.casic.app.smartwell.adapter
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.extensions.covertColor
+import com.casic.app.smartwell.model.WellListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class WellOperationAdapter(
+ private val context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
+ val view: View =
+ layoutInflater.inflate(R.layout.item_well_operation_recycleview, parent, false)
+ return ItemViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.wellCodeView.text = rowsBean.wellCode
+ holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellLocationView.text = rowsBean.position
+ if (rowsBean.bfztName == "布防") {
+ holder.operationButton.text = "撤防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.redTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.redTextColor.covertColor(context))
+ } else {
+ holder.operationButton.text = "布防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.greenTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.greenTextColor.covertColor(context))
+ }
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ holder.operationButton.setOnClickListener {
+ listener!!.onOperationClicked(position)
+ }
+ holder.navigationButton.setOnClickListener {
+ listener!!.onNavigationButtonClicked(position)
+ }
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
+ var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
+ var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton)
+ var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+
+ fun onOperationClicked(position: Int)
+
+ fun onNavigationButtonClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
index 174b53c..0fcd0a1 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
@@ -64,6 +64,17 @@
): WellMonitorModel
/**
+ * 闸井布防撤防
+ */
+ @FormUrlEncoded
+ @POST("/well/bfcf")
+ suspend fun obtainOperationResult(
+ @Header("token") token: String,
+ @Field("wellId") wellId: String,
+ @Field("bfzt") bfzt: String
+ ): CommonResultModel
+
+ /**
* 获取用户信息
*/
@GET("/user/info")
@@ -73,7 +84,7 @@
* 修改密码
*/
@FormUrlEncoded
- @POST("mgr/changePwd")
+ @POST("/mgr/changePwd")
suspend fun changePassword(
@Header("token") token: String,
@Field("oldPwd") oldPwd: String,
@@ -89,6 +100,6 @@
/**
* 更新APK版本
*/
- @POST("app/checkVersion")
+ @POST("/app/checkVersion")
suspend fun obtainVersionResult(@Header("token") token: String): VersionResultModel
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
index deeaa36..c564911 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -63,6 +63,13 @@
}
/**
+ * 闸井布防撤防
+ */
+ suspend fun obtainOperationResult(wellId: String, bfzt: String): CommonResultModel {
+ return api.obtainOperationResult(AuthenticationHelper.token!!, wellId, bfzt)
+ }
+
+ /**
* 获取用户信息
*/
suspend fun obtainUserDetail(): UserDetailModel {
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index a3ce02e..8e804f8 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -23,6 +23,7 @@
import com.casic.app.smartwell.widgets.EasyPopupWindow
import kotlinx.android.synthetic.main.activity_well_management.*
import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
import java.lang.ref.WeakReference
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
new file mode 100644
index 0000000..a73cc8f
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
@@ -0,0 +1,285 @@
+package com.casic.app.smartwell.view
+
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import android.view.View
+import android.view.animation.LinearInterpolator
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.amap.api.maps.model.LatLng
+import com.amap.api.maps.model.Poi
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.adapter.WellOperationAdapter
+import com.casic.app.smartwell.base.BaseActivity
+import com.casic.app.smartwell.extensions.navigatePageTo
+import com.casic.app.smartwell.extensions.show
+import com.casic.app.smartwell.extensions.showRouteOnMap
+import com.casic.app.smartwell.model.WellListModel
+import com.casic.app.smartwell.model.WellTypeModel
+import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.vm.WellListViewModel
+import com.casic.app.smartwell.vm.WellOperationViewModel
+import com.casic.app.smartwell.vm.WellTypeViewModel
+import com.casic.app.smartwell.widgets.EasyPopupWindow
+import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
+import kotlinx.android.synthetic.main.activity_well_operation.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
+import java.lang.ref.WeakReference
+
+class WellOperationActivity : BaseActivity() {
+
+ private lateinit var wellTypeViewModel: WellTypeViewModel
+ private lateinit var wellListViewModel: WellListViewModel
+ private lateinit var operationViewModel: WellOperationViewModel
+ private lateinit var easyPopupWindow: EasyPopupWindow
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var wellOperationAdapter: WellOperationAdapter
+ private var items: MutableList = ArrayList()
+ private var wellTypeModel = WellTypeModel.DataBean()
+ private var dataBeans: MutableList = ArrayList()
+ private var keywords = ""
+ private var wellType = ""
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+ private var clickedPosition = 0
+
+ override fun initLayoutView(): Int = R.layout.activity_well_operation
+
+ override fun setupTopBarLayout() {
+ titleView.text = "布防撤防"
+ leftBackView.visibility = View.VISIBLE
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ easyPopupWindow = EasyPopupWindow(this)
+ easyPopupWindow.setBackgroundDrawable(null)
+ wellTypeViewModel = ViewModelProvider(this).get(WellTypeViewModel::class.java)
+ wellTypeViewModel.obtainWellType()
+ wellTypeViewModel.wellTypeModel.observe(this, {
+ if (it.code == 200) {
+ it.data!!.forEachIndexed { index, dataBean ->
+ val bean: WellTypeModel.DataBean
+ if (index == 0) {
+ bean = WellTypeModel.DataBean()
+ bean.id = ""
+ bean.name = "全\u3000部"
+ bean.value = ""
+ } else {
+ bean = dataBean
+ }
+ items.add(bean)
+ }
+ easyPopupWindow.setupPopupData(items)
+ }
+ })
+ wellListViewModel = ViewModelProvider(this).get(WellListViewModel::class.java)
+ weakReferenceHandler = WeakReferenceHandler(this)
+ obtainWellList(keywords, wellType, pageIndex)
+ //数据监听
+ wellListViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ operationRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows!!)
+ operationRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022032801)
+ }
+ })
+ operationViewModel = ViewModelProvider(this).get(WellOperationViewModel::class.java)
+ }
+
+ override fun initEvent() {
+ wellTypeLayout.setOnClickListener {
+ //旋转arrowImageView
+ val rotateAnimation = arrowImageView.animate()
+ rotateAnimation.duration = 200
+ rotateAnimation.interpolator = LinearInterpolator()
+ rotateAnimation.rotation(180f)
+ easyPopupWindow.showAsDropDown(wellTypeLayout)
+ easyPopupWindow.setOnPopupWindowClickListener(object :
+ EasyPopupWindow.OnPopupWindowClickListener {
+ override fun onPopupClick(position: Int) {
+ rotateAnimation.rotation(0f)
+ wellTypeModel = items[position]
+ wellTypeView.text = wellTypeModel.name
+ }
+ })
+ }
+
+ searchTextView.setOnClickListener {
+ keywords = searchInputView.text.toString().trim()
+ wellType = wellTypeModel.value.toString()
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ operationRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+ operationRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ //撤防布防状态监听
+ operationViewModel.operationResultModel.observe(this, {
+ if (it.code == 200) {
+ val rowsBean = dataBeans[clickedPosition]
+ if (rowsBean.bfztName == "布防") {
+ rowsBean.bfzt = "1"
+ rowsBean.bfztName = "撤防"
+ } else {
+ rowsBean.bfzt = "0"
+ rowsBean.bfztName = "布防"
+ }
+ }
+ })
+ operationViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "处理中,请稍后")
+ }
+ is LoadState.Success -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作成功".show(this)
+ wellOperationAdapter.notifyItemChanged(clickedPosition)
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作失败".show(this)
+ }
+ }
+ })
+ }
+
+ private fun obtainWellList(
+ keywords: String?, wellType: String?, pageIndex: Int
+ ) {
+ wellListViewModel.obtainWellList(
+ keywords = keywords,
+ wellType = wellType,
+ deptid = "",
+ isAlarm = "",
+ page = pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: WellOperationActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (msg.what == 2022032801) {
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.wellOperationAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.show("抱歉,无法查询到相关记录", null)
+ } else {
+ activity.emptyView!!.hide()
+ activity.wellOperationAdapter =
+ WellOperationAdapter(activity, activity.dataBeans)
+ activity.operationListView!!.layoutManager = LinearLayoutManager(activity)
+ activity.operationListView!!.adapter = activity.wellOperationAdapter
+ activity.wellOperationAdapter.setOnItemClickListener(object :
+ WellOperationAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val wellId = activity.dataBeans[position].id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ activity.navigatePageTo(WellDetailActivity::class.java, wellId)
+ }
+
+ override fun onOperationClicked(position: Int) {
+ //标记被点击的item位置
+ activity.clickedPosition = position
+
+ val detailModel = activity.dataBeans[position]
+ val wellId = detailModel.id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ val bfzt = if (detailModel.bfztName == "布防") {
+ "0"
+ } else {
+ "1"
+ }
+ val tips = if (detailModel.bfztName == "布防") {
+ "撤防"
+ } else {
+ "布防"
+ }
+ AlertControlDialog.Builder()
+ .setContext(activity)
+ .setTitle("操作提示")
+ .setMessage("确定将该井${tips}吗")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ activity.operationViewModel.obtainOperationResult(
+ wellId, bfzt
+ )
+ }
+
+ override fun onCancelClick() {
+
+ }
+ })
+ .build().show()
+ }
+
+ override fun onNavigationButtonClicked(position: Int) {
+ val wellDetail = activity.dataBeans[position]
+ val lat = wellDetail.latGaode.toString()
+ val lng = wellDetail.lngGaode.toString()
+ if (lat == "" || lng == "") {
+ "窨井经纬度异常,无法开启导航".show(activity)
+ return
+ }
+ Poi(
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble()),
+ ""
+ ).showRouteOnMap(activity)
+ }
+ })
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
index b3bb6a9..a494283 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
@@ -5,6 +5,7 @@
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.extensions.navigatePageTo
import com.casic.app.smartwell.view.WellManagementActivity
+import com.casic.app.smartwell.view.WellOperationActivity
import com.pengxh.app.multilib.base.BaseFragment
import kotlinx.android.synthetic.main.fragment_home.*
@@ -22,7 +23,7 @@
when (position) {
0 -> requireContext().navigatePageTo(WellManagementActivity::class.java)
// 1 -> startActivity(Intent(context, SearchRecordActivity::class.java))
-// 2 -> startActivity(Intent(context, StatisticsActivity::class.java))
+ 2 -> requireContext().navigatePageTo(WellOperationActivity::class.java)
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt b/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt
new file mode 100644
index 0000000..43c66a6
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt
@@ -0,0 +1,20 @@
+package com.casic.app.smartwell.vm
+
+import androidx.lifecycle.MutableLiveData
+import com.casic.app.smartwell.base.BaseViewModel
+import com.casic.app.smartwell.extensions.launch
+import com.casic.app.smartwell.model.CommonResultModel
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.utils.retrofit.RetrofitServiceManager
+
+class WellOperationViewModel : BaseViewModel() {
+ val operationResultModel = MutableLiveData()
+
+ fun obtainOperationResult(wellId: String, bfzt: String) = launch({
+ loadState.value = LoadState.Loading
+ operationResultModel.value = RetrofitServiceManager.obtainOperationResult(wellId, bfzt)
+ loadState.value = LoadState.Success
+ }, {
+ loadState.value = LoadState.Fail
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_well_management.xml b/app/src/main/res/layout/activity_well_management.xml
index 6f61fc4..06c9434 100644
--- a/app/src/main/res/layout/activity_well_management.xml
+++ b/app/src/main/res/layout/activity_well_management.xml
@@ -9,86 +9,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_search_bar.xml b/app/src/main/res/layout/include_search_bar.xml
new file mode 100644
index 0000000..7a416d6
--- /dev/null
+++ b/app/src/main/res/layout/include_search_bar.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e206b5e..e72465c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@
+
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
index 6f7029b..d5c580f 100644
--- a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
@@ -26,8 +26,8 @@
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
//绑定数据
val rowsBean = dataRows[position]
- holder.wellCodeView.text = rowsBean.wellCode
holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellCodeView.text = rowsBean.wellCode
holder.wellLocationView.text = rowsBean.position
if (rowsBean.bfztName == "布防") {
holder.wellStateView.setImageResource(R.mipmap.ybf)
@@ -48,8 +48,8 @@
override fun getItemCount(): Int = dataRows.size
inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
- var wellTypeView: TextView = view.findViewById(R.id.wellTypeView)
var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
var wellStateView: ImageView = view.findViewById(R.id.wellStateView)
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
new file mode 100644
index 0000000..8d4fe45
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
@@ -0,0 +1,87 @@
+package com.casic.app.smartwell.adapter
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.extensions.covertColor
+import com.casic.app.smartwell.model.WellListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class WellOperationAdapter(
+ private val context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
+ val view: View =
+ layoutInflater.inflate(R.layout.item_well_operation_recycleview, parent, false)
+ return ItemViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.wellCodeView.text = rowsBean.wellCode
+ holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellLocationView.text = rowsBean.position
+ if (rowsBean.bfztName == "布防") {
+ holder.operationButton.text = "撤防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.redTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.redTextColor.covertColor(context))
+ } else {
+ holder.operationButton.text = "布防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.greenTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.greenTextColor.covertColor(context))
+ }
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ holder.operationButton.setOnClickListener {
+ listener!!.onOperationClicked(position)
+ }
+ holder.navigationButton.setOnClickListener {
+ listener!!.onNavigationButtonClicked(position)
+ }
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
+ var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
+ var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton)
+ var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+
+ fun onOperationClicked(position: Int)
+
+ fun onNavigationButtonClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
index 174b53c..0fcd0a1 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
@@ -64,6 +64,17 @@
): WellMonitorModel
/**
+ * 闸井布防撤防
+ */
+ @FormUrlEncoded
+ @POST("/well/bfcf")
+ suspend fun obtainOperationResult(
+ @Header("token") token: String,
+ @Field("wellId") wellId: String,
+ @Field("bfzt") bfzt: String
+ ): CommonResultModel
+
+ /**
* 获取用户信息
*/
@GET("/user/info")
@@ -73,7 +84,7 @@
* 修改密码
*/
@FormUrlEncoded
- @POST("mgr/changePwd")
+ @POST("/mgr/changePwd")
suspend fun changePassword(
@Header("token") token: String,
@Field("oldPwd") oldPwd: String,
@@ -89,6 +100,6 @@
/**
* 更新APK版本
*/
- @POST("app/checkVersion")
+ @POST("/app/checkVersion")
suspend fun obtainVersionResult(@Header("token") token: String): VersionResultModel
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
index deeaa36..c564911 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -63,6 +63,13 @@
}
/**
+ * 闸井布防撤防
+ */
+ suspend fun obtainOperationResult(wellId: String, bfzt: String): CommonResultModel {
+ return api.obtainOperationResult(AuthenticationHelper.token!!, wellId, bfzt)
+ }
+
+ /**
* 获取用户信息
*/
suspend fun obtainUserDetail(): UserDetailModel {
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index a3ce02e..8e804f8 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -23,6 +23,7 @@
import com.casic.app.smartwell.widgets.EasyPopupWindow
import kotlinx.android.synthetic.main.activity_well_management.*
import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
import java.lang.ref.WeakReference
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
new file mode 100644
index 0000000..a73cc8f
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
@@ -0,0 +1,285 @@
+package com.casic.app.smartwell.view
+
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import android.view.View
+import android.view.animation.LinearInterpolator
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.amap.api.maps.model.LatLng
+import com.amap.api.maps.model.Poi
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.adapter.WellOperationAdapter
+import com.casic.app.smartwell.base.BaseActivity
+import com.casic.app.smartwell.extensions.navigatePageTo
+import com.casic.app.smartwell.extensions.show
+import com.casic.app.smartwell.extensions.showRouteOnMap
+import com.casic.app.smartwell.model.WellListModel
+import com.casic.app.smartwell.model.WellTypeModel
+import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.vm.WellListViewModel
+import com.casic.app.smartwell.vm.WellOperationViewModel
+import com.casic.app.smartwell.vm.WellTypeViewModel
+import com.casic.app.smartwell.widgets.EasyPopupWindow
+import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
+import kotlinx.android.synthetic.main.activity_well_operation.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
+import java.lang.ref.WeakReference
+
+class WellOperationActivity : BaseActivity() {
+
+ private lateinit var wellTypeViewModel: WellTypeViewModel
+ private lateinit var wellListViewModel: WellListViewModel
+ private lateinit var operationViewModel: WellOperationViewModel
+ private lateinit var easyPopupWindow: EasyPopupWindow
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var wellOperationAdapter: WellOperationAdapter
+ private var items: MutableList = ArrayList()
+ private var wellTypeModel = WellTypeModel.DataBean()
+ private var dataBeans: MutableList = ArrayList()
+ private var keywords = ""
+ private var wellType = ""
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+ private var clickedPosition = 0
+
+ override fun initLayoutView(): Int = R.layout.activity_well_operation
+
+ override fun setupTopBarLayout() {
+ titleView.text = "布防撤防"
+ leftBackView.visibility = View.VISIBLE
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ easyPopupWindow = EasyPopupWindow(this)
+ easyPopupWindow.setBackgroundDrawable(null)
+ wellTypeViewModel = ViewModelProvider(this).get(WellTypeViewModel::class.java)
+ wellTypeViewModel.obtainWellType()
+ wellTypeViewModel.wellTypeModel.observe(this, {
+ if (it.code == 200) {
+ it.data!!.forEachIndexed { index, dataBean ->
+ val bean: WellTypeModel.DataBean
+ if (index == 0) {
+ bean = WellTypeModel.DataBean()
+ bean.id = ""
+ bean.name = "全\u3000部"
+ bean.value = ""
+ } else {
+ bean = dataBean
+ }
+ items.add(bean)
+ }
+ easyPopupWindow.setupPopupData(items)
+ }
+ })
+ wellListViewModel = ViewModelProvider(this).get(WellListViewModel::class.java)
+ weakReferenceHandler = WeakReferenceHandler(this)
+ obtainWellList(keywords, wellType, pageIndex)
+ //数据监听
+ wellListViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ operationRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows!!)
+ operationRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022032801)
+ }
+ })
+ operationViewModel = ViewModelProvider(this).get(WellOperationViewModel::class.java)
+ }
+
+ override fun initEvent() {
+ wellTypeLayout.setOnClickListener {
+ //旋转arrowImageView
+ val rotateAnimation = arrowImageView.animate()
+ rotateAnimation.duration = 200
+ rotateAnimation.interpolator = LinearInterpolator()
+ rotateAnimation.rotation(180f)
+ easyPopupWindow.showAsDropDown(wellTypeLayout)
+ easyPopupWindow.setOnPopupWindowClickListener(object :
+ EasyPopupWindow.OnPopupWindowClickListener {
+ override fun onPopupClick(position: Int) {
+ rotateAnimation.rotation(0f)
+ wellTypeModel = items[position]
+ wellTypeView.text = wellTypeModel.name
+ }
+ })
+ }
+
+ searchTextView.setOnClickListener {
+ keywords = searchInputView.text.toString().trim()
+ wellType = wellTypeModel.value.toString()
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ operationRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+ operationRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ //撤防布防状态监听
+ operationViewModel.operationResultModel.observe(this, {
+ if (it.code == 200) {
+ val rowsBean = dataBeans[clickedPosition]
+ if (rowsBean.bfztName == "布防") {
+ rowsBean.bfzt = "1"
+ rowsBean.bfztName = "撤防"
+ } else {
+ rowsBean.bfzt = "0"
+ rowsBean.bfztName = "布防"
+ }
+ }
+ })
+ operationViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "处理中,请稍后")
+ }
+ is LoadState.Success -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作成功".show(this)
+ wellOperationAdapter.notifyItemChanged(clickedPosition)
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作失败".show(this)
+ }
+ }
+ })
+ }
+
+ private fun obtainWellList(
+ keywords: String?, wellType: String?, pageIndex: Int
+ ) {
+ wellListViewModel.obtainWellList(
+ keywords = keywords,
+ wellType = wellType,
+ deptid = "",
+ isAlarm = "",
+ page = pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: WellOperationActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (msg.what == 2022032801) {
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.wellOperationAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.show("抱歉,无法查询到相关记录", null)
+ } else {
+ activity.emptyView!!.hide()
+ activity.wellOperationAdapter =
+ WellOperationAdapter(activity, activity.dataBeans)
+ activity.operationListView!!.layoutManager = LinearLayoutManager(activity)
+ activity.operationListView!!.adapter = activity.wellOperationAdapter
+ activity.wellOperationAdapter.setOnItemClickListener(object :
+ WellOperationAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val wellId = activity.dataBeans[position].id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ activity.navigatePageTo(WellDetailActivity::class.java, wellId)
+ }
+
+ override fun onOperationClicked(position: Int) {
+ //标记被点击的item位置
+ activity.clickedPosition = position
+
+ val detailModel = activity.dataBeans[position]
+ val wellId = detailModel.id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ val bfzt = if (detailModel.bfztName == "布防") {
+ "0"
+ } else {
+ "1"
+ }
+ val tips = if (detailModel.bfztName == "布防") {
+ "撤防"
+ } else {
+ "布防"
+ }
+ AlertControlDialog.Builder()
+ .setContext(activity)
+ .setTitle("操作提示")
+ .setMessage("确定将该井${tips}吗")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ activity.operationViewModel.obtainOperationResult(
+ wellId, bfzt
+ )
+ }
+
+ override fun onCancelClick() {
+
+ }
+ })
+ .build().show()
+ }
+
+ override fun onNavigationButtonClicked(position: Int) {
+ val wellDetail = activity.dataBeans[position]
+ val lat = wellDetail.latGaode.toString()
+ val lng = wellDetail.lngGaode.toString()
+ if (lat == "" || lng == "") {
+ "窨井经纬度异常,无法开启导航".show(activity)
+ return
+ }
+ Poi(
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble()),
+ ""
+ ).showRouteOnMap(activity)
+ }
+ })
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
index b3bb6a9..a494283 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
@@ -5,6 +5,7 @@
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.extensions.navigatePageTo
import com.casic.app.smartwell.view.WellManagementActivity
+import com.casic.app.smartwell.view.WellOperationActivity
import com.pengxh.app.multilib.base.BaseFragment
import kotlinx.android.synthetic.main.fragment_home.*
@@ -22,7 +23,7 @@
when (position) {
0 -> requireContext().navigatePageTo(WellManagementActivity::class.java)
// 1 -> startActivity(Intent(context, SearchRecordActivity::class.java))
-// 2 -> startActivity(Intent(context, StatisticsActivity::class.java))
+ 2 -> requireContext().navigatePageTo(WellOperationActivity::class.java)
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt b/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt
new file mode 100644
index 0000000..43c66a6
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt
@@ -0,0 +1,20 @@
+package com.casic.app.smartwell.vm
+
+import androidx.lifecycle.MutableLiveData
+import com.casic.app.smartwell.base.BaseViewModel
+import com.casic.app.smartwell.extensions.launch
+import com.casic.app.smartwell.model.CommonResultModel
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.utils.retrofit.RetrofitServiceManager
+
+class WellOperationViewModel : BaseViewModel() {
+ val operationResultModel = MutableLiveData()
+
+ fun obtainOperationResult(wellId: String, bfzt: String) = launch({
+ loadState.value = LoadState.Loading
+ operationResultModel.value = RetrofitServiceManager.obtainOperationResult(wellId, bfzt)
+ loadState.value = LoadState.Success
+ }, {
+ loadState.value = LoadState.Fail
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_well_management.xml b/app/src/main/res/layout/activity_well_management.xml
index 6f61fc4..06c9434 100644
--- a/app/src/main/res/layout/activity_well_management.xml
+++ b/app/src/main/res/layout/activity_well_management.xml
@@ -9,86 +9,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_search_bar.xml b/app/src/main/res/layout/include_search_bar.xml
new file mode 100644
index 0000000..7a416d6
--- /dev/null
+++ b/app/src/main/res/layout/include_search_bar.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_well_operation_recycleview.xml b/app/src/main/res/layout/item_well_operation_recycleview.xml
new file mode 100644
index 0000000..75c154f
--- /dev/null
+++ b/app/src/main/res/layout/item_well_operation_recycleview.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e206b5e..e72465c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@
+
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
index 6f7029b..d5c580f 100644
--- a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
@@ -26,8 +26,8 @@
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
//绑定数据
val rowsBean = dataRows[position]
- holder.wellCodeView.text = rowsBean.wellCode
holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellCodeView.text = rowsBean.wellCode
holder.wellLocationView.text = rowsBean.position
if (rowsBean.bfztName == "布防") {
holder.wellStateView.setImageResource(R.mipmap.ybf)
@@ -48,8 +48,8 @@
override fun getItemCount(): Int = dataRows.size
inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
- var wellTypeView: TextView = view.findViewById(R.id.wellTypeView)
var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
var wellStateView: ImageView = view.findViewById(R.id.wellStateView)
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
new file mode 100644
index 0000000..8d4fe45
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
@@ -0,0 +1,87 @@
+package com.casic.app.smartwell.adapter
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.extensions.covertColor
+import com.casic.app.smartwell.model.WellListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class WellOperationAdapter(
+ private val context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
+ val view: View =
+ layoutInflater.inflate(R.layout.item_well_operation_recycleview, parent, false)
+ return ItemViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.wellCodeView.text = rowsBean.wellCode
+ holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellLocationView.text = rowsBean.position
+ if (rowsBean.bfztName == "布防") {
+ holder.operationButton.text = "撤防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.redTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.redTextColor.covertColor(context))
+ } else {
+ holder.operationButton.text = "布防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.greenTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.greenTextColor.covertColor(context))
+ }
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ holder.operationButton.setOnClickListener {
+ listener!!.onOperationClicked(position)
+ }
+ holder.navigationButton.setOnClickListener {
+ listener!!.onNavigationButtonClicked(position)
+ }
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
+ var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
+ var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton)
+ var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+
+ fun onOperationClicked(position: Int)
+
+ fun onNavigationButtonClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
index 174b53c..0fcd0a1 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
@@ -64,6 +64,17 @@
): WellMonitorModel
/**
+ * 闸井布防撤防
+ */
+ @FormUrlEncoded
+ @POST("/well/bfcf")
+ suspend fun obtainOperationResult(
+ @Header("token") token: String,
+ @Field("wellId") wellId: String,
+ @Field("bfzt") bfzt: String
+ ): CommonResultModel
+
+ /**
* 获取用户信息
*/
@GET("/user/info")
@@ -73,7 +84,7 @@
* 修改密码
*/
@FormUrlEncoded
- @POST("mgr/changePwd")
+ @POST("/mgr/changePwd")
suspend fun changePassword(
@Header("token") token: String,
@Field("oldPwd") oldPwd: String,
@@ -89,6 +100,6 @@
/**
* 更新APK版本
*/
- @POST("app/checkVersion")
+ @POST("/app/checkVersion")
suspend fun obtainVersionResult(@Header("token") token: String): VersionResultModel
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
index deeaa36..c564911 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -63,6 +63,13 @@
}
/**
+ * 闸井布防撤防
+ */
+ suspend fun obtainOperationResult(wellId: String, bfzt: String): CommonResultModel {
+ return api.obtainOperationResult(AuthenticationHelper.token!!, wellId, bfzt)
+ }
+
+ /**
* 获取用户信息
*/
suspend fun obtainUserDetail(): UserDetailModel {
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index a3ce02e..8e804f8 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -23,6 +23,7 @@
import com.casic.app.smartwell.widgets.EasyPopupWindow
import kotlinx.android.synthetic.main.activity_well_management.*
import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
import java.lang.ref.WeakReference
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
new file mode 100644
index 0000000..a73cc8f
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
@@ -0,0 +1,285 @@
+package com.casic.app.smartwell.view
+
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import android.view.View
+import android.view.animation.LinearInterpolator
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.amap.api.maps.model.LatLng
+import com.amap.api.maps.model.Poi
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.adapter.WellOperationAdapter
+import com.casic.app.smartwell.base.BaseActivity
+import com.casic.app.smartwell.extensions.navigatePageTo
+import com.casic.app.smartwell.extensions.show
+import com.casic.app.smartwell.extensions.showRouteOnMap
+import com.casic.app.smartwell.model.WellListModel
+import com.casic.app.smartwell.model.WellTypeModel
+import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.vm.WellListViewModel
+import com.casic.app.smartwell.vm.WellOperationViewModel
+import com.casic.app.smartwell.vm.WellTypeViewModel
+import com.casic.app.smartwell.widgets.EasyPopupWindow
+import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
+import kotlinx.android.synthetic.main.activity_well_operation.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
+import java.lang.ref.WeakReference
+
+class WellOperationActivity : BaseActivity() {
+
+ private lateinit var wellTypeViewModel: WellTypeViewModel
+ private lateinit var wellListViewModel: WellListViewModel
+ private lateinit var operationViewModel: WellOperationViewModel
+ private lateinit var easyPopupWindow: EasyPopupWindow
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var wellOperationAdapter: WellOperationAdapter
+ private var items: MutableList = ArrayList()
+ private var wellTypeModel = WellTypeModel.DataBean()
+ private var dataBeans: MutableList = ArrayList()
+ private var keywords = ""
+ private var wellType = ""
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+ private var clickedPosition = 0
+
+ override fun initLayoutView(): Int = R.layout.activity_well_operation
+
+ override fun setupTopBarLayout() {
+ titleView.text = "布防撤防"
+ leftBackView.visibility = View.VISIBLE
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ easyPopupWindow = EasyPopupWindow(this)
+ easyPopupWindow.setBackgroundDrawable(null)
+ wellTypeViewModel = ViewModelProvider(this).get(WellTypeViewModel::class.java)
+ wellTypeViewModel.obtainWellType()
+ wellTypeViewModel.wellTypeModel.observe(this, {
+ if (it.code == 200) {
+ it.data!!.forEachIndexed { index, dataBean ->
+ val bean: WellTypeModel.DataBean
+ if (index == 0) {
+ bean = WellTypeModel.DataBean()
+ bean.id = ""
+ bean.name = "全\u3000部"
+ bean.value = ""
+ } else {
+ bean = dataBean
+ }
+ items.add(bean)
+ }
+ easyPopupWindow.setupPopupData(items)
+ }
+ })
+ wellListViewModel = ViewModelProvider(this).get(WellListViewModel::class.java)
+ weakReferenceHandler = WeakReferenceHandler(this)
+ obtainWellList(keywords, wellType, pageIndex)
+ //数据监听
+ wellListViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ operationRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows!!)
+ operationRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022032801)
+ }
+ })
+ operationViewModel = ViewModelProvider(this).get(WellOperationViewModel::class.java)
+ }
+
+ override fun initEvent() {
+ wellTypeLayout.setOnClickListener {
+ //旋转arrowImageView
+ val rotateAnimation = arrowImageView.animate()
+ rotateAnimation.duration = 200
+ rotateAnimation.interpolator = LinearInterpolator()
+ rotateAnimation.rotation(180f)
+ easyPopupWindow.showAsDropDown(wellTypeLayout)
+ easyPopupWindow.setOnPopupWindowClickListener(object :
+ EasyPopupWindow.OnPopupWindowClickListener {
+ override fun onPopupClick(position: Int) {
+ rotateAnimation.rotation(0f)
+ wellTypeModel = items[position]
+ wellTypeView.text = wellTypeModel.name
+ }
+ })
+ }
+
+ searchTextView.setOnClickListener {
+ keywords = searchInputView.text.toString().trim()
+ wellType = wellTypeModel.value.toString()
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ operationRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+ operationRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ //撤防布防状态监听
+ operationViewModel.operationResultModel.observe(this, {
+ if (it.code == 200) {
+ val rowsBean = dataBeans[clickedPosition]
+ if (rowsBean.bfztName == "布防") {
+ rowsBean.bfzt = "1"
+ rowsBean.bfztName = "撤防"
+ } else {
+ rowsBean.bfzt = "0"
+ rowsBean.bfztName = "布防"
+ }
+ }
+ })
+ operationViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "处理中,请稍后")
+ }
+ is LoadState.Success -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作成功".show(this)
+ wellOperationAdapter.notifyItemChanged(clickedPosition)
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作失败".show(this)
+ }
+ }
+ })
+ }
+
+ private fun obtainWellList(
+ keywords: String?, wellType: String?, pageIndex: Int
+ ) {
+ wellListViewModel.obtainWellList(
+ keywords = keywords,
+ wellType = wellType,
+ deptid = "",
+ isAlarm = "",
+ page = pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: WellOperationActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (msg.what == 2022032801) {
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.wellOperationAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.show("抱歉,无法查询到相关记录", null)
+ } else {
+ activity.emptyView!!.hide()
+ activity.wellOperationAdapter =
+ WellOperationAdapter(activity, activity.dataBeans)
+ activity.operationListView!!.layoutManager = LinearLayoutManager(activity)
+ activity.operationListView!!.adapter = activity.wellOperationAdapter
+ activity.wellOperationAdapter.setOnItemClickListener(object :
+ WellOperationAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val wellId = activity.dataBeans[position].id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ activity.navigatePageTo(WellDetailActivity::class.java, wellId)
+ }
+
+ override fun onOperationClicked(position: Int) {
+ //标记被点击的item位置
+ activity.clickedPosition = position
+
+ val detailModel = activity.dataBeans[position]
+ val wellId = detailModel.id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ val bfzt = if (detailModel.bfztName == "布防") {
+ "0"
+ } else {
+ "1"
+ }
+ val tips = if (detailModel.bfztName == "布防") {
+ "撤防"
+ } else {
+ "布防"
+ }
+ AlertControlDialog.Builder()
+ .setContext(activity)
+ .setTitle("操作提示")
+ .setMessage("确定将该井${tips}吗")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ activity.operationViewModel.obtainOperationResult(
+ wellId, bfzt
+ )
+ }
+
+ override fun onCancelClick() {
+
+ }
+ })
+ .build().show()
+ }
+
+ override fun onNavigationButtonClicked(position: Int) {
+ val wellDetail = activity.dataBeans[position]
+ val lat = wellDetail.latGaode.toString()
+ val lng = wellDetail.lngGaode.toString()
+ if (lat == "" || lng == "") {
+ "窨井经纬度异常,无法开启导航".show(activity)
+ return
+ }
+ Poi(
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble()),
+ ""
+ ).showRouteOnMap(activity)
+ }
+ })
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
index b3bb6a9..a494283 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
@@ -5,6 +5,7 @@
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.extensions.navigatePageTo
import com.casic.app.smartwell.view.WellManagementActivity
+import com.casic.app.smartwell.view.WellOperationActivity
import com.pengxh.app.multilib.base.BaseFragment
import kotlinx.android.synthetic.main.fragment_home.*
@@ -22,7 +23,7 @@
when (position) {
0 -> requireContext().navigatePageTo(WellManagementActivity::class.java)
// 1 -> startActivity(Intent(context, SearchRecordActivity::class.java))
-// 2 -> startActivity(Intent(context, StatisticsActivity::class.java))
+ 2 -> requireContext().navigatePageTo(WellOperationActivity::class.java)
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt b/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt
new file mode 100644
index 0000000..43c66a6
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt
@@ -0,0 +1,20 @@
+package com.casic.app.smartwell.vm
+
+import androidx.lifecycle.MutableLiveData
+import com.casic.app.smartwell.base.BaseViewModel
+import com.casic.app.smartwell.extensions.launch
+import com.casic.app.smartwell.model.CommonResultModel
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.utils.retrofit.RetrofitServiceManager
+
+class WellOperationViewModel : BaseViewModel() {
+ val operationResultModel = MutableLiveData()
+
+ fun obtainOperationResult(wellId: String, bfzt: String) = launch({
+ loadState.value = LoadState.Loading
+ operationResultModel.value = RetrofitServiceManager.obtainOperationResult(wellId, bfzt)
+ loadState.value = LoadState.Success
+ }, {
+ loadState.value = LoadState.Fail
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_well_management.xml b/app/src/main/res/layout/activity_well_management.xml
index 6f61fc4..06c9434 100644
--- a/app/src/main/res/layout/activity_well_management.xml
+++ b/app/src/main/res/layout/activity_well_management.xml
@@ -9,86 +9,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_search_bar.xml b/app/src/main/res/layout/include_search_bar.xml
new file mode 100644
index 0000000..7a416d6
--- /dev/null
+++ b/app/src/main/res/layout/include_search_bar.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_well_operation_recycleview.xml b/app/src/main/res/layout/item_well_operation_recycleview.xml
new file mode 100644
index 0000000..75c154f
--- /dev/null
+++ b/app/src/main/res/layout/item_well_operation_recycleview.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_well_recycleview.xml b/app/src/main/res/layout/item_well_recycleview.xml
index 20b5126..2f15441 100644
--- a/app/src/main/res/layout/item_well_recycleview.xml
+++ b/app/src/main/res/layout/item_well_recycleview.xml
@@ -18,22 +18,36 @@
android:layout_weight="1"
android:padding="@dimen/dp_10">
-
+ android:layout_height="wrap_content">
-
+
+
+
+
+
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
index 6f7029b..d5c580f 100644
--- a/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellListAdapter.kt
@@ -26,8 +26,8 @@
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
//绑定数据
val rowsBean = dataRows[position]
- holder.wellCodeView.text = rowsBean.wellCode
holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellCodeView.text = rowsBean.wellCode
holder.wellLocationView.text = rowsBean.position
if (rowsBean.bfztName == "布防") {
holder.wellStateView.setImageResource(R.mipmap.ybf)
@@ -48,8 +48,8 @@
override fun getItemCount(): Int = dataRows.size
inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
- var wellTypeView: TextView = view.findViewById(R.id.wellTypeView)
var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
var wellStateView: ImageView = view.findViewById(R.id.wellStateView)
diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
new file mode 100644
index 0000000..8d4fe45
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/adapter/WellOperationAdapter.kt
@@ -0,0 +1,87 @@
+package com.casic.app.smartwell.adapter
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.extensions.covertColor
+import com.casic.app.smartwell.model.WellListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class WellOperationAdapter(
+ private val context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
+ val view: View =
+ layoutInflater.inflate(R.layout.item_well_operation_recycleview, parent, false)
+ return ItemViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.wellCodeView.text = rowsBean.wellCode
+ holder.wellTypeView.text = rowsBean.wellTypeName
+ holder.wellLocationView.text = rowsBean.position
+ if (rowsBean.bfztName == "布防") {
+ holder.operationButton.text = "撤防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.redTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.redTextColor.covertColor(context))
+ } else {
+ holder.operationButton.text = "布防"
+ holder.operationButton.setStrokeColors(
+ ColorStateList.valueOf(
+ R.color.greenTextColor.covertColor(context)
+ )
+ )
+ holder.operationButton.setBackgroundColor(R.color.greenTextColor.covertColor(context))
+ }
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ holder.operationButton.setOnClickListener {
+ listener!!.onOperationClicked(position)
+ }
+ holder.navigationButton.setOnClickListener {
+ listener!!.onNavigationButtonClicked(position)
+ }
+ }
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var wellTypeView: QMUIRoundButton = view.findViewById(R.id.wellTypeView)
+ var wellLocationView: TextView = view.findViewById(R.id.wellLocationView)
+ var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton)
+ var navigationButton: QMUIRoundButton = view.findViewById(R.id.navigationButton)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+
+ fun onOperationClicked(position: Int)
+
+ fun onNavigationButtonClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
index 174b53c..0fcd0a1 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt
@@ -64,6 +64,17 @@
): WellMonitorModel
/**
+ * 闸井布防撤防
+ */
+ @FormUrlEncoded
+ @POST("/well/bfcf")
+ suspend fun obtainOperationResult(
+ @Header("token") token: String,
+ @Field("wellId") wellId: String,
+ @Field("bfzt") bfzt: String
+ ): CommonResultModel
+
+ /**
* 获取用户信息
*/
@GET("/user/info")
@@ -73,7 +84,7 @@
* 修改密码
*/
@FormUrlEncoded
- @POST("mgr/changePwd")
+ @POST("/mgr/changePwd")
suspend fun changePassword(
@Header("token") token: String,
@Field("oldPwd") oldPwd: String,
@@ -89,6 +100,6 @@
/**
* 更新APK版本
*/
- @POST("app/checkVersion")
+ @POST("/app/checkVersion")
suspend fun obtainVersionResult(@Header("token") token: String): VersionResultModel
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
index deeaa36..c564911 100644
--- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -63,6 +63,13 @@
}
/**
+ * 闸井布防撤防
+ */
+ suspend fun obtainOperationResult(wellId: String, bfzt: String): CommonResultModel {
+ return api.obtainOperationResult(AuthenticationHelper.token!!, wellId, bfzt)
+ }
+
+ /**
* 获取用户信息
*/
suspend fun obtainUserDetail(): UserDetailModel {
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
index a3ce02e..8e804f8 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt
@@ -23,6 +23,7 @@
import com.casic.app.smartwell.widgets.EasyPopupWindow
import kotlinx.android.synthetic.main.activity_well_management.*
import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
import java.lang.ref.WeakReference
diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
new file mode 100644
index 0000000..a73cc8f
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt
@@ -0,0 +1,285 @@
+package com.casic.app.smartwell.view
+
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import android.view.View
+import android.view.animation.LinearInterpolator
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.amap.api.maps.model.LatLng
+import com.amap.api.maps.model.Poi
+import com.casic.app.smartwell.R
+import com.casic.app.smartwell.adapter.WellOperationAdapter
+import com.casic.app.smartwell.base.BaseActivity
+import com.casic.app.smartwell.extensions.navigatePageTo
+import com.casic.app.smartwell.extensions.show
+import com.casic.app.smartwell.extensions.showRouteOnMap
+import com.casic.app.smartwell.model.WellListModel
+import com.casic.app.smartwell.model.WellTypeModel
+import com.casic.app.smartwell.utils.DialogHelper
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.vm.WellListViewModel
+import com.casic.app.smartwell.vm.WellOperationViewModel
+import com.casic.app.smartwell.vm.WellTypeViewModel
+import com.casic.app.smartwell.widgets.EasyPopupWindow
+import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
+import kotlinx.android.synthetic.main.activity_well_operation.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_search_bar.*
+import java.lang.ref.WeakReference
+
+class WellOperationActivity : BaseActivity() {
+
+ private lateinit var wellTypeViewModel: WellTypeViewModel
+ private lateinit var wellListViewModel: WellListViewModel
+ private lateinit var operationViewModel: WellOperationViewModel
+ private lateinit var easyPopupWindow: EasyPopupWindow
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var wellOperationAdapter: WellOperationAdapter
+ private var items: MutableList = ArrayList()
+ private var wellTypeModel = WellTypeModel.DataBean()
+ private var dataBeans: MutableList = ArrayList()
+ private var keywords = ""
+ private var wellType = ""
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+ private var clickedPosition = 0
+
+ override fun initLayoutView(): Int = R.layout.activity_well_operation
+
+ override fun setupTopBarLayout() {
+ titleView.text = "布防撤防"
+ leftBackView.visibility = View.VISIBLE
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initData() {
+ easyPopupWindow = EasyPopupWindow(this)
+ easyPopupWindow.setBackgroundDrawable(null)
+ wellTypeViewModel = ViewModelProvider(this).get(WellTypeViewModel::class.java)
+ wellTypeViewModel.obtainWellType()
+ wellTypeViewModel.wellTypeModel.observe(this, {
+ if (it.code == 200) {
+ it.data!!.forEachIndexed { index, dataBean ->
+ val bean: WellTypeModel.DataBean
+ if (index == 0) {
+ bean = WellTypeModel.DataBean()
+ bean.id = ""
+ bean.name = "全\u3000部"
+ bean.value = ""
+ } else {
+ bean = dataBean
+ }
+ items.add(bean)
+ }
+ easyPopupWindow.setupPopupData(items)
+ }
+ })
+ wellListViewModel = ViewModelProvider(this).get(WellListViewModel::class.java)
+ weakReferenceHandler = WeakReferenceHandler(this)
+ obtainWellList(keywords, wellType, pageIndex)
+ //数据监听
+ wellListViewModel.listModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ operationRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows!!)
+ operationRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022032801)
+ }
+ })
+ operationViewModel = ViewModelProvider(this).get(WellOperationViewModel::class.java)
+ }
+
+ override fun initEvent() {
+ wellTypeLayout.setOnClickListener {
+ //旋转arrowImageView
+ val rotateAnimation = arrowImageView.animate()
+ rotateAnimation.duration = 200
+ rotateAnimation.interpolator = LinearInterpolator()
+ rotateAnimation.rotation(180f)
+ easyPopupWindow.showAsDropDown(wellTypeLayout)
+ easyPopupWindow.setOnPopupWindowClickListener(object :
+ EasyPopupWindow.OnPopupWindowClickListener {
+ override fun onPopupClick(position: Int) {
+ rotateAnimation.rotation(0f)
+ wellTypeModel = items[position]
+ wellTypeView.text = wellTypeModel.name
+ }
+ })
+ }
+
+ searchTextView.setOnClickListener {
+ keywords = searchInputView.text.toString().trim()
+ wellType = wellTypeModel.value.toString()
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ operationRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+ operationRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainWellList(keywords, wellType, pageIndex)
+ }
+
+ //撤防布防状态监听
+ operationViewModel.operationResultModel.observe(this, {
+ if (it.code == 200) {
+ val rowsBean = dataBeans[clickedPosition]
+ if (rowsBean.bfztName == "布防") {
+ rowsBean.bfzt = "1"
+ rowsBean.bfztName = "撤防"
+ } else {
+ rowsBean.bfzt = "0"
+ rowsBean.bfztName = "布防"
+ }
+ }
+ })
+ operationViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "处理中,请稍后")
+ }
+ is LoadState.Success -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作成功".show(this)
+ wellOperationAdapter.notifyItemChanged(clickedPosition)
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ "操作失败".show(this)
+ }
+ }
+ })
+ }
+
+ private fun obtainWellList(
+ keywords: String?, wellType: String?, pageIndex: Int
+ ) {
+ wellListViewModel.obtainWellList(
+ keywords = keywords,
+ wellType = wellType,
+ deptid = "",
+ isAlarm = "",
+ page = pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: WellOperationActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (msg.what == 2022032801) {
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.wellOperationAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.show("抱歉,无法查询到相关记录", null)
+ } else {
+ activity.emptyView!!.hide()
+ activity.wellOperationAdapter =
+ WellOperationAdapter(activity, activity.dataBeans)
+ activity.operationListView!!.layoutManager = LinearLayoutManager(activity)
+ activity.operationListView!!.adapter = activity.wellOperationAdapter
+ activity.wellOperationAdapter.setOnItemClickListener(object :
+ WellOperationAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val wellId = activity.dataBeans[position].id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ activity.navigatePageTo(WellDetailActivity::class.java, wellId)
+ }
+
+ override fun onOperationClicked(position: Int) {
+ //标记被点击的item位置
+ activity.clickedPosition = position
+
+ val detailModel = activity.dataBeans[position]
+ val wellId = detailModel.id.toString()
+ if (wellId == "") {
+ "井编号异常,无法查看详情".show(activity)
+ return
+ }
+ val bfzt = if (detailModel.bfztName == "布防") {
+ "0"
+ } else {
+ "1"
+ }
+ val tips = if (detailModel.bfztName == "布防") {
+ "撤防"
+ } else {
+ "布防"
+ }
+ AlertControlDialog.Builder()
+ .setContext(activity)
+ .setTitle("操作提示")
+ .setMessage("确定将该井${tips}吗")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onConfirmClick() {
+ activity.operationViewModel.obtainOperationResult(
+ wellId, bfzt
+ )
+ }
+
+ override fun onCancelClick() {
+
+ }
+ })
+ .build().show()
+ }
+
+ override fun onNavigationButtonClicked(position: Int) {
+ val wellDetail = activity.dataBeans[position]
+ val lat = wellDetail.latGaode.toString()
+ val lng = wellDetail.lngGaode.toString()
+ if (lat == "" || lng == "") {
+ "窨井经纬度异常,无法开启导航".show(activity)
+ return
+ }
+ Poi(
+ wellDetail.position,
+ LatLng(lat.toDouble(), lng.toDouble()),
+ ""
+ ).showRouteOnMap(activity)
+ }
+ })
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
index b3bb6a9..a494283 100644
--- a/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/HomePageFragment.kt
@@ -5,6 +5,7 @@
import com.casic.app.smartwell.adapter.HomeRecycleAdapter
import com.casic.app.smartwell.extensions.navigatePageTo
import com.casic.app.smartwell.view.WellManagementActivity
+import com.casic.app.smartwell.view.WellOperationActivity
import com.pengxh.app.multilib.base.BaseFragment
import kotlinx.android.synthetic.main.fragment_home.*
@@ -22,7 +23,7 @@
when (position) {
0 -> requireContext().navigatePageTo(WellManagementActivity::class.java)
// 1 -> startActivity(Intent(context, SearchRecordActivity::class.java))
-// 2 -> startActivity(Intent(context, StatisticsActivity::class.java))
+ 2 -> requireContext().navigatePageTo(WellOperationActivity::class.java)
}
}
})
diff --git a/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt b/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt
new file mode 100644
index 0000000..43c66a6
--- /dev/null
+++ b/app/src/main/java/com/casic/app/smartwell/vm/WellOperationViewModel.kt
@@ -0,0 +1,20 @@
+package com.casic.app.smartwell.vm
+
+import androidx.lifecycle.MutableLiveData
+import com.casic.app.smartwell.base.BaseViewModel
+import com.casic.app.smartwell.extensions.launch
+import com.casic.app.smartwell.model.CommonResultModel
+import com.casic.app.smartwell.utils.LoadState
+import com.casic.app.smartwell.utils.retrofit.RetrofitServiceManager
+
+class WellOperationViewModel : BaseViewModel() {
+ val operationResultModel = MutableLiveData()
+
+ fun obtainOperationResult(wellId: String, bfzt: String) = launch({
+ loadState.value = LoadState.Loading
+ operationResultModel.value = RetrofitServiceManager.obtainOperationResult(wellId, bfzt)
+ loadState.value = LoadState.Success
+ }, {
+ loadState.value = LoadState.Fail
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_well_management.xml b/app/src/main/res/layout/activity_well_management.xml
index 6f61fc4..06c9434 100644
--- a/app/src/main/res/layout/activity_well_management.xml
+++ b/app/src/main/res/layout/activity_well_management.xml
@@ -9,86 +9,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_search_bar.xml b/app/src/main/res/layout/include_search_bar.xml
new file mode 100644
index 0000000..7a416d6
--- /dev/null
+++ b/app/src/main/res/layout/include_search_bar.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_well_operation_recycleview.xml b/app/src/main/res/layout/item_well_operation_recycleview.xml
new file mode 100644
index 0000000..75c154f
--- /dev/null
+++ b/app/src/main/res/layout/item_well_operation_recycleview.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_well_recycleview.xml b/app/src/main/res/layout/item_well_recycleview.xml
index 20b5126..2f15441 100644
--- a/app/src/main/res/layout/item_well_recycleview.xml
+++ b/app/src/main/res/layout/item_well_recycleview.xml
@@ -18,22 +18,36 @@
android:layout_weight="1"
android:padding="@dimen/dp_10">
-
+ android:layout_height="wrap_content">
-
+
+
+
+
#F7F7F7
#CCCCCC
#13AD00
+ #F86364
#54FFFFFF
#54000000