diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(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 f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
index 9496bf4..c5bf469 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
@@ -123,7 +123,7 @@
* 查询告警
* */
@GET("/alarm/list")
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
@Header("token") token: String,
@Query("keywords") keywords: String?,
@Query("alarmType") alarmType: String?,
@@ -187,4 +187,19 @@
@Header("token") token: String,
@Query("deptType") deptType: String
): String
+
+ /**
+ * 查询设备列表
+ * */
+ @GET("/device/list")
+ suspend fun obtainDeviceResult(
+ @Header("token") token: String,
+ @Query("keywords") keywords: String?,
+ @Query("deviceType") deviceType: String?,
+ @Query("deptid") deptid: String?,
+ @Query("isOnline") isOnline: String?,
+ @Query("areaId") areaId: String?,
+ @Query("offset") offset: Int,
+ @Query("limit") limit: Int
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
index 9496bf4..c5bf469 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
@@ -123,7 +123,7 @@
* 查询告警
* */
@GET("/alarm/list")
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
@Header("token") token: String,
@Query("keywords") keywords: String?,
@Query("alarmType") alarmType: String?,
@@ -187,4 +187,19 @@
@Header("token") token: String,
@Query("deptType") deptType: String
): String
+
+ /**
+ * 查询设备列表
+ * */
+ @GET("/device/list")
+ suspend fun obtainDeviceResult(
+ @Header("token") token: String,
+ @Query("keywords") keywords: String?,
+ @Query("deviceType") deviceType: String?,
+ @Query("deptid") deptid: String?,
+ @Query("isOnline") isOnline: String?,
+ @Query("areaId") areaId: String?,
+ @Query("offset") offset: Int,
+ @Query("limit") limit: Int
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
index 575b2a9..6f728e0 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -116,7 +116,7 @@
/**
* 查询告警
*/
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
keywords: String?,
alarmType: String?,
areaId: String?,
@@ -126,7 +126,7 @@
status: String?,
page: Int
): String {
- return api.obtainSearchResult(
+ return api.obtainAlarmResult(
AuthenticationHelper.token!!,
keywords,
alarmType,
@@ -181,4 +181,27 @@
suspend fun obtainOwnerShip(deptType: String): String {
return api.obtainOwnerShip(AuthenticationHelper.token!!, deptType)
}
+
+ /**
+ * 查询设备列表
+ */
+ suspend fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ): String {
+ return api.obtainDeviceResult(
+ AuthenticationHelper.token!!,
+ keywords,
+ deviceType,
+ deptId,
+ isOnline,
+ areaId,
+ page,
+ Constant.PAGE_LIMIT
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
index 9496bf4..c5bf469 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
@@ -123,7 +123,7 @@
* 查询告警
* */
@GET("/alarm/list")
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
@Header("token") token: String,
@Query("keywords") keywords: String?,
@Query("alarmType") alarmType: String?,
@@ -187,4 +187,19 @@
@Header("token") token: String,
@Query("deptType") deptType: String
): String
+
+ /**
+ * 查询设备列表
+ * */
+ @GET("/device/list")
+ suspend fun obtainDeviceResult(
+ @Header("token") token: String,
+ @Query("keywords") keywords: String?,
+ @Query("deviceType") deviceType: String?,
+ @Query("deptid") deptid: String?,
+ @Query("isOnline") isOnline: String?,
+ @Query("areaId") areaId: String?,
+ @Query("offset") offset: Int,
+ @Query("limit") limit: Int
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
index 575b2a9..6f728e0 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -116,7 +116,7 @@
/**
* 查询告警
*/
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
keywords: String?,
alarmType: String?,
areaId: String?,
@@ -126,7 +126,7 @@
status: String?,
page: Int
): String {
- return api.obtainSearchResult(
+ return api.obtainAlarmResult(
AuthenticationHelper.token!!,
keywords,
alarmType,
@@ -181,4 +181,27 @@
suspend fun obtainOwnerShip(deptType: String): String {
return api.obtainOwnerShip(AuthenticationHelper.token!!, deptType)
}
+
+ /**
+ * 查询设备列表
+ */
+ suspend fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ): String {
+ return api.obtainDeviceResult(
+ AuthenticationHelper.token!!,
+ keywords,
+ deviceType,
+ deptId,
+ isOnline,
+ areaId,
+ page,
+ Constant.PAGE_LIMIT
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
index 61c68ab..b909fa1 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
@@ -21,7 +21,7 @@
import com.casic.qd.smartwell.utils.DialogHelper
import com.casic.qd.smartwell.utils.LoadState
import com.casic.qd.smartwell.vm.AlarmViewModel
-import com.casic.qd.smartwell.vm.SearchAlarmViewModel
+import com.casic.qd.smartwell.vm.SearchResultViewModel
import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_alarm_search_result.*
import kotlinx.android.synthetic.main.include_base_title.*
@@ -31,7 +31,7 @@
class AlarmSearchResultActivity : BaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var searchAlarmViewModel: SearchAlarmViewModel
+ private lateinit var searchAlarmViewModel: SearchResultViewModel
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var args: ArrayList
private lateinit var alarmListAdapter: AlarmListAdapter
@@ -49,7 +49,7 @@
override fun initData() {
args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
weakReferenceHandler = WeakReferenceHandler(this)
- searchAlarmViewModel = ViewModelProvider(this).get(SearchAlarmViewModel::class.java)
+ searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java)
//注册广播接收者
BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION,
@@ -65,7 +65,7 @@
override fun initEvent() {
obtainSearchResult(args, pageIndex)
- searchAlarmViewModel.listModel.observe(this, {
+ searchAlarmViewModel.alarmResultModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
@@ -90,6 +90,7 @@
weakReferenceHandler.sendEmptyMessage(2022041501)
}
})
+
searchAlarmViewModel.loadState.observe(this, {
when (it) {
is LoadState.Loading -> {
@@ -100,6 +101,7 @@
}
}
})
+
resultRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
@@ -133,7 +135,7 @@
}
private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
- searchAlarmViewModel.obtainSearchResult(
+ searchAlarmViewModel.obtainAlarmResult(
args[0], args[1], args[2], args[3], args[4], args[5], "1", pageIndex
)
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
index 9496bf4..c5bf469 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
@@ -123,7 +123,7 @@
* 查询告警
* */
@GET("/alarm/list")
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
@Header("token") token: String,
@Query("keywords") keywords: String?,
@Query("alarmType") alarmType: String?,
@@ -187,4 +187,19 @@
@Header("token") token: String,
@Query("deptType") deptType: String
): String
+
+ /**
+ * 查询设备列表
+ * */
+ @GET("/device/list")
+ suspend fun obtainDeviceResult(
+ @Header("token") token: String,
+ @Query("keywords") keywords: String?,
+ @Query("deviceType") deviceType: String?,
+ @Query("deptid") deptid: String?,
+ @Query("isOnline") isOnline: String?,
+ @Query("areaId") areaId: String?,
+ @Query("offset") offset: Int,
+ @Query("limit") limit: Int
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
index 575b2a9..6f728e0 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -116,7 +116,7 @@
/**
* 查询告警
*/
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
keywords: String?,
alarmType: String?,
areaId: String?,
@@ -126,7 +126,7 @@
status: String?,
page: Int
): String {
- return api.obtainSearchResult(
+ return api.obtainAlarmResult(
AuthenticationHelper.token!!,
keywords,
alarmType,
@@ -181,4 +181,27 @@
suspend fun obtainOwnerShip(deptType: String): String {
return api.obtainOwnerShip(AuthenticationHelper.token!!, deptType)
}
+
+ /**
+ * 查询设备列表
+ */
+ suspend fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ): String {
+ return api.obtainDeviceResult(
+ AuthenticationHelper.token!!,
+ keywords,
+ deviceType,
+ deptId,
+ isOnline,
+ areaId,
+ page,
+ Constant.PAGE_LIMIT
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
index 61c68ab..b909fa1 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
@@ -21,7 +21,7 @@
import com.casic.qd.smartwell.utils.DialogHelper
import com.casic.qd.smartwell.utils.LoadState
import com.casic.qd.smartwell.vm.AlarmViewModel
-import com.casic.qd.smartwell.vm.SearchAlarmViewModel
+import com.casic.qd.smartwell.vm.SearchResultViewModel
import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_alarm_search_result.*
import kotlinx.android.synthetic.main.include_base_title.*
@@ -31,7 +31,7 @@
class AlarmSearchResultActivity : BaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var searchAlarmViewModel: SearchAlarmViewModel
+ private lateinit var searchAlarmViewModel: SearchResultViewModel
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var args: ArrayList
private lateinit var alarmListAdapter: AlarmListAdapter
@@ -49,7 +49,7 @@
override fun initData() {
args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
weakReferenceHandler = WeakReferenceHandler(this)
- searchAlarmViewModel = ViewModelProvider(this).get(SearchAlarmViewModel::class.java)
+ searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java)
//注册广播接收者
BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION,
@@ -65,7 +65,7 @@
override fun initEvent() {
obtainSearchResult(args, pageIndex)
- searchAlarmViewModel.listModel.observe(this, {
+ searchAlarmViewModel.alarmResultModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
@@ -90,6 +90,7 @@
weakReferenceHandler.sendEmptyMessage(2022041501)
}
})
+
searchAlarmViewModel.loadState.observe(this, {
when (it) {
is LoadState.Loading -> {
@@ -100,6 +101,7 @@
}
}
})
+
resultRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
@@ -133,7 +135,7 @@
}
private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
- searchAlarmViewModel.obtainSearchResult(
+ searchAlarmViewModel.obtainAlarmResult(
args[0], args[1], args[2], args[3], args[4], args[5], "1", pageIndex
)
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
new file mode 100644
index 0000000..08c5ecc
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
@@ -0,0 +1,21 @@
+package com.casic.qd.smartwell.view
+
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+
+class DeviceDataDetailActivity : BaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_device_detail
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
index 9496bf4..c5bf469 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
@@ -123,7 +123,7 @@
* 查询告警
* */
@GET("/alarm/list")
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
@Header("token") token: String,
@Query("keywords") keywords: String?,
@Query("alarmType") alarmType: String?,
@@ -187,4 +187,19 @@
@Header("token") token: String,
@Query("deptType") deptType: String
): String
+
+ /**
+ * 查询设备列表
+ * */
+ @GET("/device/list")
+ suspend fun obtainDeviceResult(
+ @Header("token") token: String,
+ @Query("keywords") keywords: String?,
+ @Query("deviceType") deviceType: String?,
+ @Query("deptid") deptid: String?,
+ @Query("isOnline") isOnline: String?,
+ @Query("areaId") areaId: String?,
+ @Query("offset") offset: Int,
+ @Query("limit") limit: Int
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
index 575b2a9..6f728e0 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -116,7 +116,7 @@
/**
* 查询告警
*/
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
keywords: String?,
alarmType: String?,
areaId: String?,
@@ -126,7 +126,7 @@
status: String?,
page: Int
): String {
- return api.obtainSearchResult(
+ return api.obtainAlarmResult(
AuthenticationHelper.token!!,
keywords,
alarmType,
@@ -181,4 +181,27 @@
suspend fun obtainOwnerShip(deptType: String): String {
return api.obtainOwnerShip(AuthenticationHelper.token!!, deptType)
}
+
+ /**
+ * 查询设备列表
+ */
+ suspend fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ): String {
+ return api.obtainDeviceResult(
+ AuthenticationHelper.token!!,
+ keywords,
+ deviceType,
+ deptId,
+ isOnline,
+ areaId,
+ page,
+ Constant.PAGE_LIMIT
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
index 61c68ab..b909fa1 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
@@ -21,7 +21,7 @@
import com.casic.qd.smartwell.utils.DialogHelper
import com.casic.qd.smartwell.utils.LoadState
import com.casic.qd.smartwell.vm.AlarmViewModel
-import com.casic.qd.smartwell.vm.SearchAlarmViewModel
+import com.casic.qd.smartwell.vm.SearchResultViewModel
import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_alarm_search_result.*
import kotlinx.android.synthetic.main.include_base_title.*
@@ -31,7 +31,7 @@
class AlarmSearchResultActivity : BaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var searchAlarmViewModel: SearchAlarmViewModel
+ private lateinit var searchAlarmViewModel: SearchResultViewModel
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var args: ArrayList
private lateinit var alarmListAdapter: AlarmListAdapter
@@ -49,7 +49,7 @@
override fun initData() {
args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
weakReferenceHandler = WeakReferenceHandler(this)
- searchAlarmViewModel = ViewModelProvider(this).get(SearchAlarmViewModel::class.java)
+ searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java)
//注册广播接收者
BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION,
@@ -65,7 +65,7 @@
override fun initEvent() {
obtainSearchResult(args, pageIndex)
- searchAlarmViewModel.listModel.observe(this, {
+ searchAlarmViewModel.alarmResultModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
@@ -90,6 +90,7 @@
weakReferenceHandler.sendEmptyMessage(2022041501)
}
})
+
searchAlarmViewModel.loadState.observe(this, {
when (it) {
is LoadState.Loading -> {
@@ -100,6 +101,7 @@
}
}
})
+
resultRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
@@ -133,7 +135,7 @@
}
private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
- searchAlarmViewModel.obtainSearchResult(
+ searchAlarmViewModel.obtainAlarmResult(
args[0], args[1], args[2], args[3], args[4], args[5], "1", pageIndex
)
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
new file mode 100644
index 0000000..08c5ecc
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
@@ -0,0 +1,21 @@
+package com.casic.qd.smartwell.view
+
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+
+class DeviceDataDetailActivity : BaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_device_detail
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
index cfc25d2..c70e4c6 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
@@ -1,21 +1,143 @@
package com.casic.qd.smartwell.view
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.adapter.DeviceListAdapter
import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.navigatePageTo
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.showEmptyPage
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.utils.DialogHelper
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.vm.SearchResultViewModel
+import kotlinx.android.synthetic.main.activity_device_search_result.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import java.lang.ref.WeakReference
class DeviceSearchResultActivity : BaseActivity() {
+ private lateinit var args: ArrayList
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchDeviceViewModel: SearchResultViewModel
+ private lateinit var deviceListAdapter: DeviceListAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
override fun initLayoutView(): Int = R.layout.activity_device_search_result
override fun setupTopBarLayout() {
-
+ titleView.text = "查询结果"
}
override fun initData() {
-
+ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
+ weakReferenceHandler = WeakReferenceHandler(this)
+ searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
}
override fun initEvent() {
+ obtainSearchResult(args, pageIndex)
+ searchDeviceViewModel.deviceResultModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ resultRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show()
+ }
+ dataBeans.addAll(dataRows!!)
+ resultRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022042001)
+ }
+ })
+ searchDeviceViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
+ }
+ })
+
+ resultRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainSearchResult(args, pageIndex)
+ }
+ resultRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainSearchResult(args, pageIndex)
+ }
+ }
+
+ private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
+ searchDeviceViewModel.obtainDeviceResult(
+ args[0], args[1], args[2], args[3], args[4], pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: DeviceSearchResultActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.deviceListAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.showEmptyPage {
+ activity.obtainSearchResult(activity.args, activity.pageIndex)
+ }
+ } else {
+ activity.emptyView!!.hide()
+ activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans)
+ activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity)
+ activity.resultRecyclerView!!.adapter = activity.deviceListAdapter
+ activity.deviceListAdapter.setOnItemClickListener(object :
+ DeviceListAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val deviceCode = activity.dataBeans[position].devcode.toString()
+ if (deviceCode.isBlank()) {
+ "设备编号异常,无法查看历史数据".show()
+ return
+ }
+ activity.navigatePageTo(
+ DeviceDataDetailActivity::class.java, deviceCode
+ )
+ }
+ })
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
index 9496bf4..c5bf469 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
@@ -123,7 +123,7 @@
* 查询告警
* */
@GET("/alarm/list")
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
@Header("token") token: String,
@Query("keywords") keywords: String?,
@Query("alarmType") alarmType: String?,
@@ -187,4 +187,19 @@
@Header("token") token: String,
@Query("deptType") deptType: String
): String
+
+ /**
+ * 查询设备列表
+ * */
+ @GET("/device/list")
+ suspend fun obtainDeviceResult(
+ @Header("token") token: String,
+ @Query("keywords") keywords: String?,
+ @Query("deviceType") deviceType: String?,
+ @Query("deptid") deptid: String?,
+ @Query("isOnline") isOnline: String?,
+ @Query("areaId") areaId: String?,
+ @Query("offset") offset: Int,
+ @Query("limit") limit: Int
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
index 575b2a9..6f728e0 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -116,7 +116,7 @@
/**
* 查询告警
*/
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
keywords: String?,
alarmType: String?,
areaId: String?,
@@ -126,7 +126,7 @@
status: String?,
page: Int
): String {
- return api.obtainSearchResult(
+ return api.obtainAlarmResult(
AuthenticationHelper.token!!,
keywords,
alarmType,
@@ -181,4 +181,27 @@
suspend fun obtainOwnerShip(deptType: String): String {
return api.obtainOwnerShip(AuthenticationHelper.token!!, deptType)
}
+
+ /**
+ * 查询设备列表
+ */
+ suspend fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ): String {
+ return api.obtainDeviceResult(
+ AuthenticationHelper.token!!,
+ keywords,
+ deviceType,
+ deptId,
+ isOnline,
+ areaId,
+ page,
+ Constant.PAGE_LIMIT
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
index 61c68ab..b909fa1 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
@@ -21,7 +21,7 @@
import com.casic.qd.smartwell.utils.DialogHelper
import com.casic.qd.smartwell.utils.LoadState
import com.casic.qd.smartwell.vm.AlarmViewModel
-import com.casic.qd.smartwell.vm.SearchAlarmViewModel
+import com.casic.qd.smartwell.vm.SearchResultViewModel
import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_alarm_search_result.*
import kotlinx.android.synthetic.main.include_base_title.*
@@ -31,7 +31,7 @@
class AlarmSearchResultActivity : BaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var searchAlarmViewModel: SearchAlarmViewModel
+ private lateinit var searchAlarmViewModel: SearchResultViewModel
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var args: ArrayList
private lateinit var alarmListAdapter: AlarmListAdapter
@@ -49,7 +49,7 @@
override fun initData() {
args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
weakReferenceHandler = WeakReferenceHandler(this)
- searchAlarmViewModel = ViewModelProvider(this).get(SearchAlarmViewModel::class.java)
+ searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java)
//注册广播接收者
BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION,
@@ -65,7 +65,7 @@
override fun initEvent() {
obtainSearchResult(args, pageIndex)
- searchAlarmViewModel.listModel.observe(this, {
+ searchAlarmViewModel.alarmResultModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
@@ -90,6 +90,7 @@
weakReferenceHandler.sendEmptyMessage(2022041501)
}
})
+
searchAlarmViewModel.loadState.observe(this, {
when (it) {
is LoadState.Loading -> {
@@ -100,6 +101,7 @@
}
}
})
+
resultRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
@@ -133,7 +135,7 @@
}
private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
- searchAlarmViewModel.obtainSearchResult(
+ searchAlarmViewModel.obtainAlarmResult(
args[0], args[1], args[2], args[3], args[4], args[5], "1", pageIndex
)
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
new file mode 100644
index 0000000..08c5ecc
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
@@ -0,0 +1,21 @@
+package com.casic.qd.smartwell.view
+
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+
+class DeviceDataDetailActivity : BaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_device_detail
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
index cfc25d2..c70e4c6 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
@@ -1,21 +1,143 @@
package com.casic.qd.smartwell.view
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.adapter.DeviceListAdapter
import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.navigatePageTo
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.showEmptyPage
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.utils.DialogHelper
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.vm.SearchResultViewModel
+import kotlinx.android.synthetic.main.activity_device_search_result.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import java.lang.ref.WeakReference
class DeviceSearchResultActivity : BaseActivity() {
+ private lateinit var args: ArrayList
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchDeviceViewModel: SearchResultViewModel
+ private lateinit var deviceListAdapter: DeviceListAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
override fun initLayoutView(): Int = R.layout.activity_device_search_result
override fun setupTopBarLayout() {
-
+ titleView.text = "查询结果"
}
override fun initData() {
-
+ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
+ weakReferenceHandler = WeakReferenceHandler(this)
+ searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
}
override fun initEvent() {
+ obtainSearchResult(args, pageIndex)
+ searchDeviceViewModel.deviceResultModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ resultRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show()
+ }
+ dataBeans.addAll(dataRows!!)
+ resultRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022042001)
+ }
+ })
+ searchDeviceViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
+ }
+ })
+
+ resultRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainSearchResult(args, pageIndex)
+ }
+ resultRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainSearchResult(args, pageIndex)
+ }
+ }
+
+ private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
+ searchDeviceViewModel.obtainDeviceResult(
+ args[0], args[1], args[2], args[3], args[4], pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: DeviceSearchResultActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.deviceListAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.showEmptyPage {
+ activity.obtainSearchResult(activity.args, activity.pageIndex)
+ }
+ } else {
+ activity.emptyView!!.hide()
+ activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans)
+ activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity)
+ activity.resultRecyclerView!!.adapter = activity.deviceListAdapter
+ activity.deviceListAdapter.setOnItemClickListener(object :
+ DeviceListAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val deviceCode = activity.dataBeans[position].devcode.toString()
+ if (deviceCode.isBlank()) {
+ "设备编号异常,无法查看历史数据".show()
+ return
+ }
+ activity.navigatePageTo(
+ DeviceDataDetailActivity::class.java, deviceCode
+ )
+ }
+ })
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
index 853b311..142be88 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
@@ -28,12 +28,13 @@
*/
class SearchRecordActivity : BaseActivity() {
- private val kTag = "SearchRecordActivity"
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var areaViewModel: AreaViewModel
private var authenticatedType: MutableList = ArrayList()
private var deviceTypeValue = ""
+ private var deptId = ""
+ private var deviceState = "0"
private var areaId = ""
override fun initLayoutView(): Int = R.layout.activity_search_record
@@ -85,7 +86,7 @@
})
ownerShipView.setOnClickListener {
- authenticateViewModel.obtainOwnerShip("")
+ authenticateViewModel.obtainOwnerShip("03")
}
authenticateViewModel.resultModel.observe(this, {
if (it.code == 200) {
@@ -99,8 +100,9 @@
sheetBuilder.addItem(model.name)
}
sheetBuilder.setGravityCenter(true)
- .setOnSheetItemClickListener { dialog, _, _, tag ->
+ .setOnSheetItemClickListener { dialog, _, position, tag ->
ownerShipView.text = tag
+ this.deptId = ownerShipModel[position].id.toString()
dialog.dismiss()
}.build().show()
@@ -115,6 +117,11 @@
.setGravityCenter(true)
.setOnSheetItemClickListener { dialog, _, _, tag ->
deviceStateView.text = tag
+ this.deviceState = if (tag == "在线") {
+ "1"
+ } else {
+ "0"
+ }
dialog.dismiss()
}.build().show()
@@ -158,8 +165,8 @@
DeviceSearchResultActivity::class.java, addAll(
wellCodeView.text.toString().trim(),
deviceTypeValue,
- "权属单位",
- "在线情况",
+ deptId,
+ deviceState,
areaId
)
)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
index 9496bf4..c5bf469 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
@@ -123,7 +123,7 @@
* 查询告警
* */
@GET("/alarm/list")
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
@Header("token") token: String,
@Query("keywords") keywords: String?,
@Query("alarmType") alarmType: String?,
@@ -187,4 +187,19 @@
@Header("token") token: String,
@Query("deptType") deptType: String
): String
+
+ /**
+ * 查询设备列表
+ * */
+ @GET("/device/list")
+ suspend fun obtainDeviceResult(
+ @Header("token") token: String,
+ @Query("keywords") keywords: String?,
+ @Query("deviceType") deviceType: String?,
+ @Query("deptid") deptid: String?,
+ @Query("isOnline") isOnline: String?,
+ @Query("areaId") areaId: String?,
+ @Query("offset") offset: Int,
+ @Query("limit") limit: Int
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
index 575b2a9..6f728e0 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -116,7 +116,7 @@
/**
* 查询告警
*/
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
keywords: String?,
alarmType: String?,
areaId: String?,
@@ -126,7 +126,7 @@
status: String?,
page: Int
): String {
- return api.obtainSearchResult(
+ return api.obtainAlarmResult(
AuthenticationHelper.token!!,
keywords,
alarmType,
@@ -181,4 +181,27 @@
suspend fun obtainOwnerShip(deptType: String): String {
return api.obtainOwnerShip(AuthenticationHelper.token!!, deptType)
}
+
+ /**
+ * 查询设备列表
+ */
+ suspend fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ): String {
+ return api.obtainDeviceResult(
+ AuthenticationHelper.token!!,
+ keywords,
+ deviceType,
+ deptId,
+ isOnline,
+ areaId,
+ page,
+ Constant.PAGE_LIMIT
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
index 61c68ab..b909fa1 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
@@ -21,7 +21,7 @@
import com.casic.qd.smartwell.utils.DialogHelper
import com.casic.qd.smartwell.utils.LoadState
import com.casic.qd.smartwell.vm.AlarmViewModel
-import com.casic.qd.smartwell.vm.SearchAlarmViewModel
+import com.casic.qd.smartwell.vm.SearchResultViewModel
import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_alarm_search_result.*
import kotlinx.android.synthetic.main.include_base_title.*
@@ -31,7 +31,7 @@
class AlarmSearchResultActivity : BaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var searchAlarmViewModel: SearchAlarmViewModel
+ private lateinit var searchAlarmViewModel: SearchResultViewModel
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var args: ArrayList
private lateinit var alarmListAdapter: AlarmListAdapter
@@ -49,7 +49,7 @@
override fun initData() {
args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
weakReferenceHandler = WeakReferenceHandler(this)
- searchAlarmViewModel = ViewModelProvider(this).get(SearchAlarmViewModel::class.java)
+ searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java)
//注册广播接收者
BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION,
@@ -65,7 +65,7 @@
override fun initEvent() {
obtainSearchResult(args, pageIndex)
- searchAlarmViewModel.listModel.observe(this, {
+ searchAlarmViewModel.alarmResultModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
@@ -90,6 +90,7 @@
weakReferenceHandler.sendEmptyMessage(2022041501)
}
})
+
searchAlarmViewModel.loadState.observe(this, {
when (it) {
is LoadState.Loading -> {
@@ -100,6 +101,7 @@
}
}
})
+
resultRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
@@ -133,7 +135,7 @@
}
private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
- searchAlarmViewModel.obtainSearchResult(
+ searchAlarmViewModel.obtainAlarmResult(
args[0], args[1], args[2], args[3], args[4], args[5], "1", pageIndex
)
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
new file mode 100644
index 0000000..08c5ecc
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
@@ -0,0 +1,21 @@
+package com.casic.qd.smartwell.view
+
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+
+class DeviceDataDetailActivity : BaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_device_detail
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
index cfc25d2..c70e4c6 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
@@ -1,21 +1,143 @@
package com.casic.qd.smartwell.view
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.adapter.DeviceListAdapter
import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.navigatePageTo
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.showEmptyPage
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.utils.DialogHelper
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.vm.SearchResultViewModel
+import kotlinx.android.synthetic.main.activity_device_search_result.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import java.lang.ref.WeakReference
class DeviceSearchResultActivity : BaseActivity() {
+ private lateinit var args: ArrayList
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchDeviceViewModel: SearchResultViewModel
+ private lateinit var deviceListAdapter: DeviceListAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
override fun initLayoutView(): Int = R.layout.activity_device_search_result
override fun setupTopBarLayout() {
-
+ titleView.text = "查询结果"
}
override fun initData() {
-
+ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
+ weakReferenceHandler = WeakReferenceHandler(this)
+ searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
}
override fun initEvent() {
+ obtainSearchResult(args, pageIndex)
+ searchDeviceViewModel.deviceResultModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ resultRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show()
+ }
+ dataBeans.addAll(dataRows!!)
+ resultRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022042001)
+ }
+ })
+ searchDeviceViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
+ }
+ })
+
+ resultRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainSearchResult(args, pageIndex)
+ }
+ resultRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainSearchResult(args, pageIndex)
+ }
+ }
+
+ private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
+ searchDeviceViewModel.obtainDeviceResult(
+ args[0], args[1], args[2], args[3], args[4], pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: DeviceSearchResultActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.deviceListAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.showEmptyPage {
+ activity.obtainSearchResult(activity.args, activity.pageIndex)
+ }
+ } else {
+ activity.emptyView!!.hide()
+ activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans)
+ activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity)
+ activity.resultRecyclerView!!.adapter = activity.deviceListAdapter
+ activity.deviceListAdapter.setOnItemClickListener(object :
+ DeviceListAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val deviceCode = activity.dataBeans[position].devcode.toString()
+ if (deviceCode.isBlank()) {
+ "设备编号异常,无法查看历史数据".show()
+ return
+ }
+ activity.navigatePageTo(
+ DeviceDataDetailActivity::class.java, deviceCode
+ )
+ }
+ })
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
index 853b311..142be88 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
@@ -28,12 +28,13 @@
*/
class SearchRecordActivity : BaseActivity() {
- private val kTag = "SearchRecordActivity"
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var areaViewModel: AreaViewModel
private var authenticatedType: MutableList = ArrayList()
private var deviceTypeValue = ""
+ private var deptId = ""
+ private var deviceState = "0"
private var areaId = ""
override fun initLayoutView(): Int = R.layout.activity_search_record
@@ -85,7 +86,7 @@
})
ownerShipView.setOnClickListener {
- authenticateViewModel.obtainOwnerShip("")
+ authenticateViewModel.obtainOwnerShip("03")
}
authenticateViewModel.resultModel.observe(this, {
if (it.code == 200) {
@@ -99,8 +100,9 @@
sheetBuilder.addItem(model.name)
}
sheetBuilder.setGravityCenter(true)
- .setOnSheetItemClickListener { dialog, _, _, tag ->
+ .setOnSheetItemClickListener { dialog, _, position, tag ->
ownerShipView.text = tag
+ this.deptId = ownerShipModel[position].id.toString()
dialog.dismiss()
}.build().show()
@@ -115,6 +117,11 @@
.setGravityCenter(true)
.setOnSheetItemClickListener { dialog, _, _, tag ->
deviceStateView.text = tag
+ this.deviceState = if (tag == "在线") {
+ "1"
+ } else {
+ "0"
+ }
dialog.dismiss()
}.build().show()
@@ -158,8 +165,8 @@
DeviceSearchResultActivity::class.java, addAll(
wellCodeView.text.toString().trim(),
deviceTypeValue,
- "权属单位",
- "在线情况",
+ deptId,
+ deviceState,
areaId
)
)
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
deleted file mode 100644
index 1ae3407..0000000
--- a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.casic.qd.smartwell.vm
-
-import android.util.Log
-import androidx.lifecycle.MutableLiveData
-import com.casic.qd.smartwell.base.BaseViewModel
-import com.casic.qd.smartwell.extensions.launch
-import com.casic.qd.smartwell.extensions.separateResponseCode
-import com.casic.qd.smartwell.extensions.show
-import com.casic.qd.smartwell.extensions.toErrorMessage
-import com.casic.qd.smartwell.model.AlarmListModel
-import com.casic.qd.smartwell.utils.LoadState
-import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
-import com.google.gson.Gson
-import com.google.gson.reflect.TypeToken
-
-class SearchAlarmViewModel : BaseViewModel() {
-
- private val kTag = "SearchAlarmViewModel"
- private val gson = Gson()
- val listModel = MutableLiveData()
-
- fun obtainSearchResult(
- keywords: String?,
- alarmType: String?,
- areaId: String?,
- alarmContentType: String?,
- beginTime: String?,
- endTime: String?,
- status: String?,
- page: Int
- ) = launch({
- loadState.value = LoadState.Loading
- val response = RetrofitServiceManager.obtainSearchResult(
- keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
- )
- val responseCode = response.separateResponseCode()
- if (responseCode == 200) {
- loadState.value = LoadState.Success
- listModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
- )
- } else {
- loadState.value = LoadState.Fail
- response.toErrorMessage().show()
- }
- }, {
- loadState.value = LoadState.Fail
- Log.e(kTag, it.toString(), it)
- "服务器异常".show()
- })
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
index 9496bf4..c5bf469 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
@@ -123,7 +123,7 @@
* 查询告警
* */
@GET("/alarm/list")
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
@Header("token") token: String,
@Query("keywords") keywords: String?,
@Query("alarmType") alarmType: String?,
@@ -187,4 +187,19 @@
@Header("token") token: String,
@Query("deptType") deptType: String
): String
+
+ /**
+ * 查询设备列表
+ * */
+ @GET("/device/list")
+ suspend fun obtainDeviceResult(
+ @Header("token") token: String,
+ @Query("keywords") keywords: String?,
+ @Query("deviceType") deviceType: String?,
+ @Query("deptid") deptid: String?,
+ @Query("isOnline") isOnline: String?,
+ @Query("areaId") areaId: String?,
+ @Query("offset") offset: Int,
+ @Query("limit") limit: Int
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
index 575b2a9..6f728e0 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -116,7 +116,7 @@
/**
* 查询告警
*/
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
keywords: String?,
alarmType: String?,
areaId: String?,
@@ -126,7 +126,7 @@
status: String?,
page: Int
): String {
- return api.obtainSearchResult(
+ return api.obtainAlarmResult(
AuthenticationHelper.token!!,
keywords,
alarmType,
@@ -181,4 +181,27 @@
suspend fun obtainOwnerShip(deptType: String): String {
return api.obtainOwnerShip(AuthenticationHelper.token!!, deptType)
}
+
+ /**
+ * 查询设备列表
+ */
+ suspend fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ): String {
+ return api.obtainDeviceResult(
+ AuthenticationHelper.token!!,
+ keywords,
+ deviceType,
+ deptId,
+ isOnline,
+ areaId,
+ page,
+ Constant.PAGE_LIMIT
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
index 61c68ab..b909fa1 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
@@ -21,7 +21,7 @@
import com.casic.qd.smartwell.utils.DialogHelper
import com.casic.qd.smartwell.utils.LoadState
import com.casic.qd.smartwell.vm.AlarmViewModel
-import com.casic.qd.smartwell.vm.SearchAlarmViewModel
+import com.casic.qd.smartwell.vm.SearchResultViewModel
import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_alarm_search_result.*
import kotlinx.android.synthetic.main.include_base_title.*
@@ -31,7 +31,7 @@
class AlarmSearchResultActivity : BaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var searchAlarmViewModel: SearchAlarmViewModel
+ private lateinit var searchAlarmViewModel: SearchResultViewModel
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var args: ArrayList
private lateinit var alarmListAdapter: AlarmListAdapter
@@ -49,7 +49,7 @@
override fun initData() {
args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
weakReferenceHandler = WeakReferenceHandler(this)
- searchAlarmViewModel = ViewModelProvider(this).get(SearchAlarmViewModel::class.java)
+ searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java)
//注册广播接收者
BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION,
@@ -65,7 +65,7 @@
override fun initEvent() {
obtainSearchResult(args, pageIndex)
- searchAlarmViewModel.listModel.observe(this, {
+ searchAlarmViewModel.alarmResultModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
@@ -90,6 +90,7 @@
weakReferenceHandler.sendEmptyMessage(2022041501)
}
})
+
searchAlarmViewModel.loadState.observe(this, {
when (it) {
is LoadState.Loading -> {
@@ -100,6 +101,7 @@
}
}
})
+
resultRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
@@ -133,7 +135,7 @@
}
private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
- searchAlarmViewModel.obtainSearchResult(
+ searchAlarmViewModel.obtainAlarmResult(
args[0], args[1], args[2], args[3], args[4], args[5], "1", pageIndex
)
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
new file mode 100644
index 0000000..08c5ecc
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
@@ -0,0 +1,21 @@
+package com.casic.qd.smartwell.view
+
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+
+class DeviceDataDetailActivity : BaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_device_detail
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
index cfc25d2..c70e4c6 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
@@ -1,21 +1,143 @@
package com.casic.qd.smartwell.view
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.adapter.DeviceListAdapter
import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.navigatePageTo
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.showEmptyPage
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.utils.DialogHelper
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.vm.SearchResultViewModel
+import kotlinx.android.synthetic.main.activity_device_search_result.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import java.lang.ref.WeakReference
class DeviceSearchResultActivity : BaseActivity() {
+ private lateinit var args: ArrayList
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchDeviceViewModel: SearchResultViewModel
+ private lateinit var deviceListAdapter: DeviceListAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
override fun initLayoutView(): Int = R.layout.activity_device_search_result
override fun setupTopBarLayout() {
-
+ titleView.text = "查询结果"
}
override fun initData() {
-
+ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
+ weakReferenceHandler = WeakReferenceHandler(this)
+ searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
}
override fun initEvent() {
+ obtainSearchResult(args, pageIndex)
+ searchDeviceViewModel.deviceResultModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ resultRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show()
+ }
+ dataBeans.addAll(dataRows!!)
+ resultRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022042001)
+ }
+ })
+ searchDeviceViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
+ }
+ })
+
+ resultRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainSearchResult(args, pageIndex)
+ }
+ resultRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainSearchResult(args, pageIndex)
+ }
+ }
+
+ private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
+ searchDeviceViewModel.obtainDeviceResult(
+ args[0], args[1], args[2], args[3], args[4], pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: DeviceSearchResultActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.deviceListAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.showEmptyPage {
+ activity.obtainSearchResult(activity.args, activity.pageIndex)
+ }
+ } else {
+ activity.emptyView!!.hide()
+ activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans)
+ activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity)
+ activity.resultRecyclerView!!.adapter = activity.deviceListAdapter
+ activity.deviceListAdapter.setOnItemClickListener(object :
+ DeviceListAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val deviceCode = activity.dataBeans[position].devcode.toString()
+ if (deviceCode.isBlank()) {
+ "设备编号异常,无法查看历史数据".show()
+ return
+ }
+ activity.navigatePageTo(
+ DeviceDataDetailActivity::class.java, deviceCode
+ )
+ }
+ })
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
index 853b311..142be88 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
@@ -28,12 +28,13 @@
*/
class SearchRecordActivity : BaseActivity() {
- private val kTag = "SearchRecordActivity"
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var areaViewModel: AreaViewModel
private var authenticatedType: MutableList = ArrayList()
private var deviceTypeValue = ""
+ private var deptId = ""
+ private var deviceState = "0"
private var areaId = ""
override fun initLayoutView(): Int = R.layout.activity_search_record
@@ -85,7 +86,7 @@
})
ownerShipView.setOnClickListener {
- authenticateViewModel.obtainOwnerShip("")
+ authenticateViewModel.obtainOwnerShip("03")
}
authenticateViewModel.resultModel.observe(this, {
if (it.code == 200) {
@@ -99,8 +100,9 @@
sheetBuilder.addItem(model.name)
}
sheetBuilder.setGravityCenter(true)
- .setOnSheetItemClickListener { dialog, _, _, tag ->
+ .setOnSheetItemClickListener { dialog, _, position, tag ->
ownerShipView.text = tag
+ this.deptId = ownerShipModel[position].id.toString()
dialog.dismiss()
}.build().show()
@@ -115,6 +117,11 @@
.setGravityCenter(true)
.setOnSheetItemClickListener { dialog, _, _, tag ->
deviceStateView.text = tag
+ this.deviceState = if (tag == "在线") {
+ "1"
+ } else {
+ "0"
+ }
dialog.dismiss()
}.build().show()
@@ -158,8 +165,8 @@
DeviceSearchResultActivity::class.java, addAll(
wellCodeView.text.toString().trim(),
deviceTypeValue,
- "权属单位",
- "在线情况",
+ deptId,
+ deviceState,
areaId
)
)
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
deleted file mode 100644
index 1ae3407..0000000
--- a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.casic.qd.smartwell.vm
-
-import android.util.Log
-import androidx.lifecycle.MutableLiveData
-import com.casic.qd.smartwell.base.BaseViewModel
-import com.casic.qd.smartwell.extensions.launch
-import com.casic.qd.smartwell.extensions.separateResponseCode
-import com.casic.qd.smartwell.extensions.show
-import com.casic.qd.smartwell.extensions.toErrorMessage
-import com.casic.qd.smartwell.model.AlarmListModel
-import com.casic.qd.smartwell.utils.LoadState
-import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
-import com.google.gson.Gson
-import com.google.gson.reflect.TypeToken
-
-class SearchAlarmViewModel : BaseViewModel() {
-
- private val kTag = "SearchAlarmViewModel"
- private val gson = Gson()
- val listModel = MutableLiveData()
-
- fun obtainSearchResult(
- keywords: String?,
- alarmType: String?,
- areaId: String?,
- alarmContentType: String?,
- beginTime: String?,
- endTime: String?,
- status: String?,
- page: Int
- ) = launch({
- loadState.value = LoadState.Loading
- val response = RetrofitServiceManager.obtainSearchResult(
- keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
- )
- val responseCode = response.separateResponseCode()
- if (responseCode == 200) {
- loadState.value = LoadState.Success
- listModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
- )
- } else {
- loadState.value = LoadState.Fail
- response.toErrorMessage().show()
- }
- }, {
- loadState.value = LoadState.Fail
- Log.e(kTag, it.toString(), it)
- "服务器异常".show()
- })
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
new file mode 100644
index 0000000..f915e14
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
@@ -0,0 +1,81 @@
+package com.casic.qd.smartwell.vm
+
+import android.util.Log
+import androidx.lifecycle.MutableLiveData
+import com.casic.qd.smartwell.base.BaseViewModel
+import com.casic.qd.smartwell.extensions.launch
+import com.casic.qd.smartwell.extensions.separateResponseCode
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.toErrorMessage
+import com.casic.qd.smartwell.model.AlarmListModel
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+
+class SearchResultViewModel : BaseViewModel() {
+
+ private val kTag = "SearchResultViewModel"
+ private val gson = Gson()
+ val alarmResultModel = MutableLiveData()
+ val deviceResultModel = MutableLiveData()
+
+ fun obtainAlarmResult(
+ keywords: String?,
+ alarmType: String?,
+ areaId: String?,
+ alarmContentType: String?,
+ beginTime: String?,
+ endTime: String?,
+ status: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainAlarmResult(
+ keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ alarmResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+
+ fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainDeviceResult(
+ keywords, deviceType, deptId, isOnline, areaId, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ deviceResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
index 9496bf4..c5bf469 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
@@ -123,7 +123,7 @@
* 查询告警
* */
@GET("/alarm/list")
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
@Header("token") token: String,
@Query("keywords") keywords: String?,
@Query("alarmType") alarmType: String?,
@@ -187,4 +187,19 @@
@Header("token") token: String,
@Query("deptType") deptType: String
): String
+
+ /**
+ * 查询设备列表
+ * */
+ @GET("/device/list")
+ suspend fun obtainDeviceResult(
+ @Header("token") token: String,
+ @Query("keywords") keywords: String?,
+ @Query("deviceType") deviceType: String?,
+ @Query("deptid") deptid: String?,
+ @Query("isOnline") isOnline: String?,
+ @Query("areaId") areaId: String?,
+ @Query("offset") offset: Int,
+ @Query("limit") limit: Int
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
index 575b2a9..6f728e0 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -116,7 +116,7 @@
/**
* 查询告警
*/
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
keywords: String?,
alarmType: String?,
areaId: String?,
@@ -126,7 +126,7 @@
status: String?,
page: Int
): String {
- return api.obtainSearchResult(
+ return api.obtainAlarmResult(
AuthenticationHelper.token!!,
keywords,
alarmType,
@@ -181,4 +181,27 @@
suspend fun obtainOwnerShip(deptType: String): String {
return api.obtainOwnerShip(AuthenticationHelper.token!!, deptType)
}
+
+ /**
+ * 查询设备列表
+ */
+ suspend fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ): String {
+ return api.obtainDeviceResult(
+ AuthenticationHelper.token!!,
+ keywords,
+ deviceType,
+ deptId,
+ isOnline,
+ areaId,
+ page,
+ Constant.PAGE_LIMIT
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
index 61c68ab..b909fa1 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
@@ -21,7 +21,7 @@
import com.casic.qd.smartwell.utils.DialogHelper
import com.casic.qd.smartwell.utils.LoadState
import com.casic.qd.smartwell.vm.AlarmViewModel
-import com.casic.qd.smartwell.vm.SearchAlarmViewModel
+import com.casic.qd.smartwell.vm.SearchResultViewModel
import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_alarm_search_result.*
import kotlinx.android.synthetic.main.include_base_title.*
@@ -31,7 +31,7 @@
class AlarmSearchResultActivity : BaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var searchAlarmViewModel: SearchAlarmViewModel
+ private lateinit var searchAlarmViewModel: SearchResultViewModel
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var args: ArrayList
private lateinit var alarmListAdapter: AlarmListAdapter
@@ -49,7 +49,7 @@
override fun initData() {
args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
weakReferenceHandler = WeakReferenceHandler(this)
- searchAlarmViewModel = ViewModelProvider(this).get(SearchAlarmViewModel::class.java)
+ searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java)
//注册广播接收者
BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION,
@@ -65,7 +65,7 @@
override fun initEvent() {
obtainSearchResult(args, pageIndex)
- searchAlarmViewModel.listModel.observe(this, {
+ searchAlarmViewModel.alarmResultModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
@@ -90,6 +90,7 @@
weakReferenceHandler.sendEmptyMessage(2022041501)
}
})
+
searchAlarmViewModel.loadState.observe(this, {
when (it) {
is LoadState.Loading -> {
@@ -100,6 +101,7 @@
}
}
})
+
resultRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
@@ -133,7 +135,7 @@
}
private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
- searchAlarmViewModel.obtainSearchResult(
+ searchAlarmViewModel.obtainAlarmResult(
args[0], args[1], args[2], args[3], args[4], args[5], "1", pageIndex
)
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
new file mode 100644
index 0000000..08c5ecc
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
@@ -0,0 +1,21 @@
+package com.casic.qd.smartwell.view
+
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+
+class DeviceDataDetailActivity : BaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_device_detail
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
index cfc25d2..c70e4c6 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
@@ -1,21 +1,143 @@
package com.casic.qd.smartwell.view
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.adapter.DeviceListAdapter
import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.navigatePageTo
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.showEmptyPage
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.utils.DialogHelper
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.vm.SearchResultViewModel
+import kotlinx.android.synthetic.main.activity_device_search_result.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import java.lang.ref.WeakReference
class DeviceSearchResultActivity : BaseActivity() {
+ private lateinit var args: ArrayList
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchDeviceViewModel: SearchResultViewModel
+ private lateinit var deviceListAdapter: DeviceListAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
override fun initLayoutView(): Int = R.layout.activity_device_search_result
override fun setupTopBarLayout() {
-
+ titleView.text = "查询结果"
}
override fun initData() {
-
+ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
+ weakReferenceHandler = WeakReferenceHandler(this)
+ searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
}
override fun initEvent() {
+ obtainSearchResult(args, pageIndex)
+ searchDeviceViewModel.deviceResultModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ resultRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show()
+ }
+ dataBeans.addAll(dataRows!!)
+ resultRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022042001)
+ }
+ })
+ searchDeviceViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
+ }
+ })
+
+ resultRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainSearchResult(args, pageIndex)
+ }
+ resultRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainSearchResult(args, pageIndex)
+ }
+ }
+
+ private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
+ searchDeviceViewModel.obtainDeviceResult(
+ args[0], args[1], args[2], args[3], args[4], pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: DeviceSearchResultActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.deviceListAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.showEmptyPage {
+ activity.obtainSearchResult(activity.args, activity.pageIndex)
+ }
+ } else {
+ activity.emptyView!!.hide()
+ activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans)
+ activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity)
+ activity.resultRecyclerView!!.adapter = activity.deviceListAdapter
+ activity.deviceListAdapter.setOnItemClickListener(object :
+ DeviceListAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val deviceCode = activity.dataBeans[position].devcode.toString()
+ if (deviceCode.isBlank()) {
+ "设备编号异常,无法查看历史数据".show()
+ return
+ }
+ activity.navigatePageTo(
+ DeviceDataDetailActivity::class.java, deviceCode
+ )
+ }
+ })
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
index 853b311..142be88 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
@@ -28,12 +28,13 @@
*/
class SearchRecordActivity : BaseActivity() {
- private val kTag = "SearchRecordActivity"
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var areaViewModel: AreaViewModel
private var authenticatedType: MutableList = ArrayList()
private var deviceTypeValue = ""
+ private var deptId = ""
+ private var deviceState = "0"
private var areaId = ""
override fun initLayoutView(): Int = R.layout.activity_search_record
@@ -85,7 +86,7 @@
})
ownerShipView.setOnClickListener {
- authenticateViewModel.obtainOwnerShip("")
+ authenticateViewModel.obtainOwnerShip("03")
}
authenticateViewModel.resultModel.observe(this, {
if (it.code == 200) {
@@ -99,8 +100,9 @@
sheetBuilder.addItem(model.name)
}
sheetBuilder.setGravityCenter(true)
- .setOnSheetItemClickListener { dialog, _, _, tag ->
+ .setOnSheetItemClickListener { dialog, _, position, tag ->
ownerShipView.text = tag
+ this.deptId = ownerShipModel[position].id.toString()
dialog.dismiss()
}.build().show()
@@ -115,6 +117,11 @@
.setGravityCenter(true)
.setOnSheetItemClickListener { dialog, _, _, tag ->
deviceStateView.text = tag
+ this.deviceState = if (tag == "在线") {
+ "1"
+ } else {
+ "0"
+ }
dialog.dismiss()
}.build().show()
@@ -158,8 +165,8 @@
DeviceSearchResultActivity::class.java, addAll(
wellCodeView.text.toString().trim(),
deviceTypeValue,
- "权属单位",
- "在线情况",
+ deptId,
+ deviceState,
areaId
)
)
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
deleted file mode 100644
index 1ae3407..0000000
--- a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.casic.qd.smartwell.vm
-
-import android.util.Log
-import androidx.lifecycle.MutableLiveData
-import com.casic.qd.smartwell.base.BaseViewModel
-import com.casic.qd.smartwell.extensions.launch
-import com.casic.qd.smartwell.extensions.separateResponseCode
-import com.casic.qd.smartwell.extensions.show
-import com.casic.qd.smartwell.extensions.toErrorMessage
-import com.casic.qd.smartwell.model.AlarmListModel
-import com.casic.qd.smartwell.utils.LoadState
-import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
-import com.google.gson.Gson
-import com.google.gson.reflect.TypeToken
-
-class SearchAlarmViewModel : BaseViewModel() {
-
- private val kTag = "SearchAlarmViewModel"
- private val gson = Gson()
- val listModel = MutableLiveData()
-
- fun obtainSearchResult(
- keywords: String?,
- alarmType: String?,
- areaId: String?,
- alarmContentType: String?,
- beginTime: String?,
- endTime: String?,
- status: String?,
- page: Int
- ) = launch({
- loadState.value = LoadState.Loading
- val response = RetrofitServiceManager.obtainSearchResult(
- keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
- )
- val responseCode = response.separateResponseCode()
- if (responseCode == 200) {
- loadState.value = LoadState.Success
- listModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
- )
- } else {
- loadState.value = LoadState.Fail
- response.toErrorMessage().show()
- }
- }, {
- loadState.value = LoadState.Fail
- Log.e(kTag, it.toString(), it)
- "服务器异常".show()
- })
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
new file mode 100644
index 0000000..f915e14
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
@@ -0,0 +1,81 @@
+package com.casic.qd.smartwell.vm
+
+import android.util.Log
+import androidx.lifecycle.MutableLiveData
+import com.casic.qd.smartwell.base.BaseViewModel
+import com.casic.qd.smartwell.extensions.launch
+import com.casic.qd.smartwell.extensions.separateResponseCode
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.toErrorMessage
+import com.casic.qd.smartwell.model.AlarmListModel
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+
+class SearchResultViewModel : BaseViewModel() {
+
+ private val kTag = "SearchResultViewModel"
+ private val gson = Gson()
+ val alarmResultModel = MutableLiveData()
+ val deviceResultModel = MutableLiveData()
+
+ fun obtainAlarmResult(
+ keywords: String?,
+ alarmType: String?,
+ areaId: String?,
+ alarmContentType: String?,
+ beginTime: String?,
+ endTime: String?,
+ status: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainAlarmResult(
+ keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ alarmResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+
+ fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainDeviceResult(
+ keywords, deviceType, deptId, isOnline, areaId, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ deviceResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_solid_layout_green.xml b/app/src/main/res/drawable/bg_solid_layout_green.xml
index f600a12..cba83af 100644
--- a/app/src/main/res/drawable/bg_solid_layout_green.xml
+++ b/app/src/main/res/drawable/bg_solid_layout_green.xml
@@ -5,7 +5,7 @@
+ android:startColor="#00A000" />
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
index 9496bf4..c5bf469 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
@@ -123,7 +123,7 @@
* 查询告警
* */
@GET("/alarm/list")
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
@Header("token") token: String,
@Query("keywords") keywords: String?,
@Query("alarmType") alarmType: String?,
@@ -187,4 +187,19 @@
@Header("token") token: String,
@Query("deptType") deptType: String
): String
+
+ /**
+ * 查询设备列表
+ * */
+ @GET("/device/list")
+ suspend fun obtainDeviceResult(
+ @Header("token") token: String,
+ @Query("keywords") keywords: String?,
+ @Query("deviceType") deviceType: String?,
+ @Query("deptid") deptid: String?,
+ @Query("isOnline") isOnline: String?,
+ @Query("areaId") areaId: String?,
+ @Query("offset") offset: Int,
+ @Query("limit") limit: Int
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
index 575b2a9..6f728e0 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -116,7 +116,7 @@
/**
* 查询告警
*/
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
keywords: String?,
alarmType: String?,
areaId: String?,
@@ -126,7 +126,7 @@
status: String?,
page: Int
): String {
- return api.obtainSearchResult(
+ return api.obtainAlarmResult(
AuthenticationHelper.token!!,
keywords,
alarmType,
@@ -181,4 +181,27 @@
suspend fun obtainOwnerShip(deptType: String): String {
return api.obtainOwnerShip(AuthenticationHelper.token!!, deptType)
}
+
+ /**
+ * 查询设备列表
+ */
+ suspend fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ): String {
+ return api.obtainDeviceResult(
+ AuthenticationHelper.token!!,
+ keywords,
+ deviceType,
+ deptId,
+ isOnline,
+ areaId,
+ page,
+ Constant.PAGE_LIMIT
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
index 61c68ab..b909fa1 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
@@ -21,7 +21,7 @@
import com.casic.qd.smartwell.utils.DialogHelper
import com.casic.qd.smartwell.utils.LoadState
import com.casic.qd.smartwell.vm.AlarmViewModel
-import com.casic.qd.smartwell.vm.SearchAlarmViewModel
+import com.casic.qd.smartwell.vm.SearchResultViewModel
import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_alarm_search_result.*
import kotlinx.android.synthetic.main.include_base_title.*
@@ -31,7 +31,7 @@
class AlarmSearchResultActivity : BaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var searchAlarmViewModel: SearchAlarmViewModel
+ private lateinit var searchAlarmViewModel: SearchResultViewModel
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var args: ArrayList
private lateinit var alarmListAdapter: AlarmListAdapter
@@ -49,7 +49,7 @@
override fun initData() {
args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
weakReferenceHandler = WeakReferenceHandler(this)
- searchAlarmViewModel = ViewModelProvider(this).get(SearchAlarmViewModel::class.java)
+ searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java)
//注册广播接收者
BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION,
@@ -65,7 +65,7 @@
override fun initEvent() {
obtainSearchResult(args, pageIndex)
- searchAlarmViewModel.listModel.observe(this, {
+ searchAlarmViewModel.alarmResultModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
@@ -90,6 +90,7 @@
weakReferenceHandler.sendEmptyMessage(2022041501)
}
})
+
searchAlarmViewModel.loadState.observe(this, {
when (it) {
is LoadState.Loading -> {
@@ -100,6 +101,7 @@
}
}
})
+
resultRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
@@ -133,7 +135,7 @@
}
private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
- searchAlarmViewModel.obtainSearchResult(
+ searchAlarmViewModel.obtainAlarmResult(
args[0], args[1], args[2], args[3], args[4], args[5], "1", pageIndex
)
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
new file mode 100644
index 0000000..08c5ecc
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
@@ -0,0 +1,21 @@
+package com.casic.qd.smartwell.view
+
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+
+class DeviceDataDetailActivity : BaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_device_detail
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
index cfc25d2..c70e4c6 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
@@ -1,21 +1,143 @@
package com.casic.qd.smartwell.view
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.adapter.DeviceListAdapter
import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.navigatePageTo
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.showEmptyPage
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.utils.DialogHelper
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.vm.SearchResultViewModel
+import kotlinx.android.synthetic.main.activity_device_search_result.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import java.lang.ref.WeakReference
class DeviceSearchResultActivity : BaseActivity() {
+ private lateinit var args: ArrayList
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchDeviceViewModel: SearchResultViewModel
+ private lateinit var deviceListAdapter: DeviceListAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
override fun initLayoutView(): Int = R.layout.activity_device_search_result
override fun setupTopBarLayout() {
-
+ titleView.text = "查询结果"
}
override fun initData() {
-
+ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
+ weakReferenceHandler = WeakReferenceHandler(this)
+ searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
}
override fun initEvent() {
+ obtainSearchResult(args, pageIndex)
+ searchDeviceViewModel.deviceResultModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ resultRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show()
+ }
+ dataBeans.addAll(dataRows!!)
+ resultRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022042001)
+ }
+ })
+ searchDeviceViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
+ }
+ })
+
+ resultRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainSearchResult(args, pageIndex)
+ }
+ resultRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainSearchResult(args, pageIndex)
+ }
+ }
+
+ private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
+ searchDeviceViewModel.obtainDeviceResult(
+ args[0], args[1], args[2], args[3], args[4], pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: DeviceSearchResultActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.deviceListAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.showEmptyPage {
+ activity.obtainSearchResult(activity.args, activity.pageIndex)
+ }
+ } else {
+ activity.emptyView!!.hide()
+ activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans)
+ activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity)
+ activity.resultRecyclerView!!.adapter = activity.deviceListAdapter
+ activity.deviceListAdapter.setOnItemClickListener(object :
+ DeviceListAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val deviceCode = activity.dataBeans[position].devcode.toString()
+ if (deviceCode.isBlank()) {
+ "设备编号异常,无法查看历史数据".show()
+ return
+ }
+ activity.navigatePageTo(
+ DeviceDataDetailActivity::class.java, deviceCode
+ )
+ }
+ })
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
index 853b311..142be88 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
@@ -28,12 +28,13 @@
*/
class SearchRecordActivity : BaseActivity() {
- private val kTag = "SearchRecordActivity"
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var areaViewModel: AreaViewModel
private var authenticatedType: MutableList = ArrayList()
private var deviceTypeValue = ""
+ private var deptId = ""
+ private var deviceState = "0"
private var areaId = ""
override fun initLayoutView(): Int = R.layout.activity_search_record
@@ -85,7 +86,7 @@
})
ownerShipView.setOnClickListener {
- authenticateViewModel.obtainOwnerShip("")
+ authenticateViewModel.obtainOwnerShip("03")
}
authenticateViewModel.resultModel.observe(this, {
if (it.code == 200) {
@@ -99,8 +100,9 @@
sheetBuilder.addItem(model.name)
}
sheetBuilder.setGravityCenter(true)
- .setOnSheetItemClickListener { dialog, _, _, tag ->
+ .setOnSheetItemClickListener { dialog, _, position, tag ->
ownerShipView.text = tag
+ this.deptId = ownerShipModel[position].id.toString()
dialog.dismiss()
}.build().show()
@@ -115,6 +117,11 @@
.setGravityCenter(true)
.setOnSheetItemClickListener { dialog, _, _, tag ->
deviceStateView.text = tag
+ this.deviceState = if (tag == "在线") {
+ "1"
+ } else {
+ "0"
+ }
dialog.dismiss()
}.build().show()
@@ -158,8 +165,8 @@
DeviceSearchResultActivity::class.java, addAll(
wellCodeView.text.toString().trim(),
deviceTypeValue,
- "权属单位",
- "在线情况",
+ deptId,
+ deviceState,
areaId
)
)
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
deleted file mode 100644
index 1ae3407..0000000
--- a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.casic.qd.smartwell.vm
-
-import android.util.Log
-import androidx.lifecycle.MutableLiveData
-import com.casic.qd.smartwell.base.BaseViewModel
-import com.casic.qd.smartwell.extensions.launch
-import com.casic.qd.smartwell.extensions.separateResponseCode
-import com.casic.qd.smartwell.extensions.show
-import com.casic.qd.smartwell.extensions.toErrorMessage
-import com.casic.qd.smartwell.model.AlarmListModel
-import com.casic.qd.smartwell.utils.LoadState
-import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
-import com.google.gson.Gson
-import com.google.gson.reflect.TypeToken
-
-class SearchAlarmViewModel : BaseViewModel() {
-
- private val kTag = "SearchAlarmViewModel"
- private val gson = Gson()
- val listModel = MutableLiveData()
-
- fun obtainSearchResult(
- keywords: String?,
- alarmType: String?,
- areaId: String?,
- alarmContentType: String?,
- beginTime: String?,
- endTime: String?,
- status: String?,
- page: Int
- ) = launch({
- loadState.value = LoadState.Loading
- val response = RetrofitServiceManager.obtainSearchResult(
- keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
- )
- val responseCode = response.separateResponseCode()
- if (responseCode == 200) {
- loadState.value = LoadState.Success
- listModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
- )
- } else {
- loadState.value = LoadState.Fail
- response.toErrorMessage().show()
- }
- }, {
- loadState.value = LoadState.Fail
- Log.e(kTag, it.toString(), it)
- "服务器异常".show()
- })
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
new file mode 100644
index 0000000..f915e14
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
@@ -0,0 +1,81 @@
+package com.casic.qd.smartwell.vm
+
+import android.util.Log
+import androidx.lifecycle.MutableLiveData
+import com.casic.qd.smartwell.base.BaseViewModel
+import com.casic.qd.smartwell.extensions.launch
+import com.casic.qd.smartwell.extensions.separateResponseCode
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.toErrorMessage
+import com.casic.qd.smartwell.model.AlarmListModel
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+
+class SearchResultViewModel : BaseViewModel() {
+
+ private val kTag = "SearchResultViewModel"
+ private val gson = Gson()
+ val alarmResultModel = MutableLiveData()
+ val deviceResultModel = MutableLiveData()
+
+ fun obtainAlarmResult(
+ keywords: String?,
+ alarmType: String?,
+ areaId: String?,
+ alarmContentType: String?,
+ beginTime: String?,
+ endTime: String?,
+ status: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainAlarmResult(
+ keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ alarmResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+
+ fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainDeviceResult(
+ keywords, deviceType, deptId, isOnline, areaId, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ deviceResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_solid_layout_green.xml b/app/src/main/res/drawable/bg_solid_layout_green.xml
index f600a12..cba83af 100644
--- a/app/src/main/res/drawable/bg_solid_layout_green.xml
+++ b/app/src/main/res/drawable/bg_solid_layout_green.xml
@@ -5,7 +5,7 @@
+ android:startColor="#00A000" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_view_gray.xml b/app/src/main/res/drawable/bg_view_gray.xml
new file mode 100644
index 0000000..4f54c88
--- /dev/null
+++ b/app/src/main/res/drawable/bg_view_gray.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
index 9496bf4..c5bf469 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
@@ -123,7 +123,7 @@
* 查询告警
* */
@GET("/alarm/list")
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
@Header("token") token: String,
@Query("keywords") keywords: String?,
@Query("alarmType") alarmType: String?,
@@ -187,4 +187,19 @@
@Header("token") token: String,
@Query("deptType") deptType: String
): String
+
+ /**
+ * 查询设备列表
+ * */
+ @GET("/device/list")
+ suspend fun obtainDeviceResult(
+ @Header("token") token: String,
+ @Query("keywords") keywords: String?,
+ @Query("deviceType") deviceType: String?,
+ @Query("deptid") deptid: String?,
+ @Query("isOnline") isOnline: String?,
+ @Query("areaId") areaId: String?,
+ @Query("offset") offset: Int,
+ @Query("limit") limit: Int
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
index 575b2a9..6f728e0 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -116,7 +116,7 @@
/**
* 查询告警
*/
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
keywords: String?,
alarmType: String?,
areaId: String?,
@@ -126,7 +126,7 @@
status: String?,
page: Int
): String {
- return api.obtainSearchResult(
+ return api.obtainAlarmResult(
AuthenticationHelper.token!!,
keywords,
alarmType,
@@ -181,4 +181,27 @@
suspend fun obtainOwnerShip(deptType: String): String {
return api.obtainOwnerShip(AuthenticationHelper.token!!, deptType)
}
+
+ /**
+ * 查询设备列表
+ */
+ suspend fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ): String {
+ return api.obtainDeviceResult(
+ AuthenticationHelper.token!!,
+ keywords,
+ deviceType,
+ deptId,
+ isOnline,
+ areaId,
+ page,
+ Constant.PAGE_LIMIT
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
index 61c68ab..b909fa1 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
@@ -21,7 +21,7 @@
import com.casic.qd.smartwell.utils.DialogHelper
import com.casic.qd.smartwell.utils.LoadState
import com.casic.qd.smartwell.vm.AlarmViewModel
-import com.casic.qd.smartwell.vm.SearchAlarmViewModel
+import com.casic.qd.smartwell.vm.SearchResultViewModel
import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_alarm_search_result.*
import kotlinx.android.synthetic.main.include_base_title.*
@@ -31,7 +31,7 @@
class AlarmSearchResultActivity : BaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var searchAlarmViewModel: SearchAlarmViewModel
+ private lateinit var searchAlarmViewModel: SearchResultViewModel
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var args: ArrayList
private lateinit var alarmListAdapter: AlarmListAdapter
@@ -49,7 +49,7 @@
override fun initData() {
args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
weakReferenceHandler = WeakReferenceHandler(this)
- searchAlarmViewModel = ViewModelProvider(this).get(SearchAlarmViewModel::class.java)
+ searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java)
//注册广播接收者
BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION,
@@ -65,7 +65,7 @@
override fun initEvent() {
obtainSearchResult(args, pageIndex)
- searchAlarmViewModel.listModel.observe(this, {
+ searchAlarmViewModel.alarmResultModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
@@ -90,6 +90,7 @@
weakReferenceHandler.sendEmptyMessage(2022041501)
}
})
+
searchAlarmViewModel.loadState.observe(this, {
when (it) {
is LoadState.Loading -> {
@@ -100,6 +101,7 @@
}
}
})
+
resultRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
@@ -133,7 +135,7 @@
}
private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
- searchAlarmViewModel.obtainSearchResult(
+ searchAlarmViewModel.obtainAlarmResult(
args[0], args[1], args[2], args[3], args[4], args[5], "1", pageIndex
)
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
new file mode 100644
index 0000000..08c5ecc
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
@@ -0,0 +1,21 @@
+package com.casic.qd.smartwell.view
+
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+
+class DeviceDataDetailActivity : BaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_device_detail
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
index cfc25d2..c70e4c6 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
@@ -1,21 +1,143 @@
package com.casic.qd.smartwell.view
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.adapter.DeviceListAdapter
import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.navigatePageTo
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.showEmptyPage
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.utils.DialogHelper
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.vm.SearchResultViewModel
+import kotlinx.android.synthetic.main.activity_device_search_result.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import java.lang.ref.WeakReference
class DeviceSearchResultActivity : BaseActivity() {
+ private lateinit var args: ArrayList
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchDeviceViewModel: SearchResultViewModel
+ private lateinit var deviceListAdapter: DeviceListAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
override fun initLayoutView(): Int = R.layout.activity_device_search_result
override fun setupTopBarLayout() {
-
+ titleView.text = "查询结果"
}
override fun initData() {
-
+ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
+ weakReferenceHandler = WeakReferenceHandler(this)
+ searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
}
override fun initEvent() {
+ obtainSearchResult(args, pageIndex)
+ searchDeviceViewModel.deviceResultModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ resultRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show()
+ }
+ dataBeans.addAll(dataRows!!)
+ resultRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022042001)
+ }
+ })
+ searchDeviceViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
+ }
+ })
+
+ resultRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainSearchResult(args, pageIndex)
+ }
+ resultRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainSearchResult(args, pageIndex)
+ }
+ }
+
+ private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
+ searchDeviceViewModel.obtainDeviceResult(
+ args[0], args[1], args[2], args[3], args[4], pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: DeviceSearchResultActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.deviceListAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.showEmptyPage {
+ activity.obtainSearchResult(activity.args, activity.pageIndex)
+ }
+ } else {
+ activity.emptyView!!.hide()
+ activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans)
+ activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity)
+ activity.resultRecyclerView!!.adapter = activity.deviceListAdapter
+ activity.deviceListAdapter.setOnItemClickListener(object :
+ DeviceListAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val deviceCode = activity.dataBeans[position].devcode.toString()
+ if (deviceCode.isBlank()) {
+ "设备编号异常,无法查看历史数据".show()
+ return
+ }
+ activity.navigatePageTo(
+ DeviceDataDetailActivity::class.java, deviceCode
+ )
+ }
+ })
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
index 853b311..142be88 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
@@ -28,12 +28,13 @@
*/
class SearchRecordActivity : BaseActivity() {
- private val kTag = "SearchRecordActivity"
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var areaViewModel: AreaViewModel
private var authenticatedType: MutableList = ArrayList()
private var deviceTypeValue = ""
+ private var deptId = ""
+ private var deviceState = "0"
private var areaId = ""
override fun initLayoutView(): Int = R.layout.activity_search_record
@@ -85,7 +86,7 @@
})
ownerShipView.setOnClickListener {
- authenticateViewModel.obtainOwnerShip("")
+ authenticateViewModel.obtainOwnerShip("03")
}
authenticateViewModel.resultModel.observe(this, {
if (it.code == 200) {
@@ -99,8 +100,9 @@
sheetBuilder.addItem(model.name)
}
sheetBuilder.setGravityCenter(true)
- .setOnSheetItemClickListener { dialog, _, _, tag ->
+ .setOnSheetItemClickListener { dialog, _, position, tag ->
ownerShipView.text = tag
+ this.deptId = ownerShipModel[position].id.toString()
dialog.dismiss()
}.build().show()
@@ -115,6 +117,11 @@
.setGravityCenter(true)
.setOnSheetItemClickListener { dialog, _, _, tag ->
deviceStateView.text = tag
+ this.deviceState = if (tag == "在线") {
+ "1"
+ } else {
+ "0"
+ }
dialog.dismiss()
}.build().show()
@@ -158,8 +165,8 @@
DeviceSearchResultActivity::class.java, addAll(
wellCodeView.text.toString().trim(),
deviceTypeValue,
- "权属单位",
- "在线情况",
+ deptId,
+ deviceState,
areaId
)
)
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
deleted file mode 100644
index 1ae3407..0000000
--- a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.casic.qd.smartwell.vm
-
-import android.util.Log
-import androidx.lifecycle.MutableLiveData
-import com.casic.qd.smartwell.base.BaseViewModel
-import com.casic.qd.smartwell.extensions.launch
-import com.casic.qd.smartwell.extensions.separateResponseCode
-import com.casic.qd.smartwell.extensions.show
-import com.casic.qd.smartwell.extensions.toErrorMessage
-import com.casic.qd.smartwell.model.AlarmListModel
-import com.casic.qd.smartwell.utils.LoadState
-import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
-import com.google.gson.Gson
-import com.google.gson.reflect.TypeToken
-
-class SearchAlarmViewModel : BaseViewModel() {
-
- private val kTag = "SearchAlarmViewModel"
- private val gson = Gson()
- val listModel = MutableLiveData()
-
- fun obtainSearchResult(
- keywords: String?,
- alarmType: String?,
- areaId: String?,
- alarmContentType: String?,
- beginTime: String?,
- endTime: String?,
- status: String?,
- page: Int
- ) = launch({
- loadState.value = LoadState.Loading
- val response = RetrofitServiceManager.obtainSearchResult(
- keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
- )
- val responseCode = response.separateResponseCode()
- if (responseCode == 200) {
- loadState.value = LoadState.Success
- listModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
- )
- } else {
- loadState.value = LoadState.Fail
- response.toErrorMessage().show()
- }
- }, {
- loadState.value = LoadState.Fail
- Log.e(kTag, it.toString(), it)
- "服务器异常".show()
- })
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
new file mode 100644
index 0000000..f915e14
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
@@ -0,0 +1,81 @@
+package com.casic.qd.smartwell.vm
+
+import android.util.Log
+import androidx.lifecycle.MutableLiveData
+import com.casic.qd.smartwell.base.BaseViewModel
+import com.casic.qd.smartwell.extensions.launch
+import com.casic.qd.smartwell.extensions.separateResponseCode
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.toErrorMessage
+import com.casic.qd.smartwell.model.AlarmListModel
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+
+class SearchResultViewModel : BaseViewModel() {
+
+ private val kTag = "SearchResultViewModel"
+ private val gson = Gson()
+ val alarmResultModel = MutableLiveData()
+ val deviceResultModel = MutableLiveData()
+
+ fun obtainAlarmResult(
+ keywords: String?,
+ alarmType: String?,
+ areaId: String?,
+ alarmContentType: String?,
+ beginTime: String?,
+ endTime: String?,
+ status: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainAlarmResult(
+ keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ alarmResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+
+ fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainDeviceResult(
+ keywords, deviceType, deptId, isOnline, areaId, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ deviceResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_solid_layout_green.xml b/app/src/main/res/drawable/bg_solid_layout_green.xml
index f600a12..cba83af 100644
--- a/app/src/main/res/drawable/bg_solid_layout_green.xml
+++ b/app/src/main/res/drawable/bg_solid_layout_green.xml
@@ -5,7 +5,7 @@
+ android:startColor="#00A000" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_view_gray.xml b/app/src/main/res/drawable/bg_view_gray.xml
new file mode 100644
index 0000000..4f54c88
--- /dev/null
+++ b/app/src/main/res/drawable/bg_view_gray.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_view_green.xml b/app/src/main/res/drawable/bg_view_green.xml
new file mode 100644
index 0000000..db18d54
--- /dev/null
+++ b/app/src/main/res/drawable/bg_view_green.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
index 9496bf4..c5bf469 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
@@ -123,7 +123,7 @@
* 查询告警
* */
@GET("/alarm/list")
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
@Header("token") token: String,
@Query("keywords") keywords: String?,
@Query("alarmType") alarmType: String?,
@@ -187,4 +187,19 @@
@Header("token") token: String,
@Query("deptType") deptType: String
): String
+
+ /**
+ * 查询设备列表
+ * */
+ @GET("/device/list")
+ suspend fun obtainDeviceResult(
+ @Header("token") token: String,
+ @Query("keywords") keywords: String?,
+ @Query("deviceType") deviceType: String?,
+ @Query("deptid") deptid: String?,
+ @Query("isOnline") isOnline: String?,
+ @Query("areaId") areaId: String?,
+ @Query("offset") offset: Int,
+ @Query("limit") limit: Int
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
index 575b2a9..6f728e0 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -116,7 +116,7 @@
/**
* 查询告警
*/
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
keywords: String?,
alarmType: String?,
areaId: String?,
@@ -126,7 +126,7 @@
status: String?,
page: Int
): String {
- return api.obtainSearchResult(
+ return api.obtainAlarmResult(
AuthenticationHelper.token!!,
keywords,
alarmType,
@@ -181,4 +181,27 @@
suspend fun obtainOwnerShip(deptType: String): String {
return api.obtainOwnerShip(AuthenticationHelper.token!!, deptType)
}
+
+ /**
+ * 查询设备列表
+ */
+ suspend fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ): String {
+ return api.obtainDeviceResult(
+ AuthenticationHelper.token!!,
+ keywords,
+ deviceType,
+ deptId,
+ isOnline,
+ areaId,
+ page,
+ Constant.PAGE_LIMIT
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
index 61c68ab..b909fa1 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
@@ -21,7 +21,7 @@
import com.casic.qd.smartwell.utils.DialogHelper
import com.casic.qd.smartwell.utils.LoadState
import com.casic.qd.smartwell.vm.AlarmViewModel
-import com.casic.qd.smartwell.vm.SearchAlarmViewModel
+import com.casic.qd.smartwell.vm.SearchResultViewModel
import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_alarm_search_result.*
import kotlinx.android.synthetic.main.include_base_title.*
@@ -31,7 +31,7 @@
class AlarmSearchResultActivity : BaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var searchAlarmViewModel: SearchAlarmViewModel
+ private lateinit var searchAlarmViewModel: SearchResultViewModel
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var args: ArrayList
private lateinit var alarmListAdapter: AlarmListAdapter
@@ -49,7 +49,7 @@
override fun initData() {
args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
weakReferenceHandler = WeakReferenceHandler(this)
- searchAlarmViewModel = ViewModelProvider(this).get(SearchAlarmViewModel::class.java)
+ searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java)
//注册广播接收者
BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION,
@@ -65,7 +65,7 @@
override fun initEvent() {
obtainSearchResult(args, pageIndex)
- searchAlarmViewModel.listModel.observe(this, {
+ searchAlarmViewModel.alarmResultModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
@@ -90,6 +90,7 @@
weakReferenceHandler.sendEmptyMessage(2022041501)
}
})
+
searchAlarmViewModel.loadState.observe(this, {
when (it) {
is LoadState.Loading -> {
@@ -100,6 +101,7 @@
}
}
})
+
resultRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
@@ -133,7 +135,7 @@
}
private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
- searchAlarmViewModel.obtainSearchResult(
+ searchAlarmViewModel.obtainAlarmResult(
args[0], args[1], args[2], args[3], args[4], args[5], "1", pageIndex
)
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
new file mode 100644
index 0000000..08c5ecc
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
@@ -0,0 +1,21 @@
+package com.casic.qd.smartwell.view
+
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+
+class DeviceDataDetailActivity : BaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_device_detail
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
index cfc25d2..c70e4c6 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
@@ -1,21 +1,143 @@
package com.casic.qd.smartwell.view
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.adapter.DeviceListAdapter
import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.navigatePageTo
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.showEmptyPage
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.utils.DialogHelper
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.vm.SearchResultViewModel
+import kotlinx.android.synthetic.main.activity_device_search_result.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import java.lang.ref.WeakReference
class DeviceSearchResultActivity : BaseActivity() {
+ private lateinit var args: ArrayList
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchDeviceViewModel: SearchResultViewModel
+ private lateinit var deviceListAdapter: DeviceListAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
override fun initLayoutView(): Int = R.layout.activity_device_search_result
override fun setupTopBarLayout() {
-
+ titleView.text = "查询结果"
}
override fun initData() {
-
+ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
+ weakReferenceHandler = WeakReferenceHandler(this)
+ searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
}
override fun initEvent() {
+ obtainSearchResult(args, pageIndex)
+ searchDeviceViewModel.deviceResultModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ resultRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show()
+ }
+ dataBeans.addAll(dataRows!!)
+ resultRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022042001)
+ }
+ })
+ searchDeviceViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
+ }
+ })
+
+ resultRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainSearchResult(args, pageIndex)
+ }
+ resultRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainSearchResult(args, pageIndex)
+ }
+ }
+
+ private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
+ searchDeviceViewModel.obtainDeviceResult(
+ args[0], args[1], args[2], args[3], args[4], pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: DeviceSearchResultActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.deviceListAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.showEmptyPage {
+ activity.obtainSearchResult(activity.args, activity.pageIndex)
+ }
+ } else {
+ activity.emptyView!!.hide()
+ activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans)
+ activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity)
+ activity.resultRecyclerView!!.adapter = activity.deviceListAdapter
+ activity.deviceListAdapter.setOnItemClickListener(object :
+ DeviceListAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val deviceCode = activity.dataBeans[position].devcode.toString()
+ if (deviceCode.isBlank()) {
+ "设备编号异常,无法查看历史数据".show()
+ return
+ }
+ activity.navigatePageTo(
+ DeviceDataDetailActivity::class.java, deviceCode
+ )
+ }
+ })
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
index 853b311..142be88 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
@@ -28,12 +28,13 @@
*/
class SearchRecordActivity : BaseActivity() {
- private val kTag = "SearchRecordActivity"
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var areaViewModel: AreaViewModel
private var authenticatedType: MutableList = ArrayList()
private var deviceTypeValue = ""
+ private var deptId = ""
+ private var deviceState = "0"
private var areaId = ""
override fun initLayoutView(): Int = R.layout.activity_search_record
@@ -85,7 +86,7 @@
})
ownerShipView.setOnClickListener {
- authenticateViewModel.obtainOwnerShip("")
+ authenticateViewModel.obtainOwnerShip("03")
}
authenticateViewModel.resultModel.observe(this, {
if (it.code == 200) {
@@ -99,8 +100,9 @@
sheetBuilder.addItem(model.name)
}
sheetBuilder.setGravityCenter(true)
- .setOnSheetItemClickListener { dialog, _, _, tag ->
+ .setOnSheetItemClickListener { dialog, _, position, tag ->
ownerShipView.text = tag
+ this.deptId = ownerShipModel[position].id.toString()
dialog.dismiss()
}.build().show()
@@ -115,6 +117,11 @@
.setGravityCenter(true)
.setOnSheetItemClickListener { dialog, _, _, tag ->
deviceStateView.text = tag
+ this.deviceState = if (tag == "在线") {
+ "1"
+ } else {
+ "0"
+ }
dialog.dismiss()
}.build().show()
@@ -158,8 +165,8 @@
DeviceSearchResultActivity::class.java, addAll(
wellCodeView.text.toString().trim(),
deviceTypeValue,
- "权属单位",
- "在线情况",
+ deptId,
+ deviceState,
areaId
)
)
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
deleted file mode 100644
index 1ae3407..0000000
--- a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.casic.qd.smartwell.vm
-
-import android.util.Log
-import androidx.lifecycle.MutableLiveData
-import com.casic.qd.smartwell.base.BaseViewModel
-import com.casic.qd.smartwell.extensions.launch
-import com.casic.qd.smartwell.extensions.separateResponseCode
-import com.casic.qd.smartwell.extensions.show
-import com.casic.qd.smartwell.extensions.toErrorMessage
-import com.casic.qd.smartwell.model.AlarmListModel
-import com.casic.qd.smartwell.utils.LoadState
-import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
-import com.google.gson.Gson
-import com.google.gson.reflect.TypeToken
-
-class SearchAlarmViewModel : BaseViewModel() {
-
- private val kTag = "SearchAlarmViewModel"
- private val gson = Gson()
- val listModel = MutableLiveData()
-
- fun obtainSearchResult(
- keywords: String?,
- alarmType: String?,
- areaId: String?,
- alarmContentType: String?,
- beginTime: String?,
- endTime: String?,
- status: String?,
- page: Int
- ) = launch({
- loadState.value = LoadState.Loading
- val response = RetrofitServiceManager.obtainSearchResult(
- keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
- )
- val responseCode = response.separateResponseCode()
- if (responseCode == 200) {
- loadState.value = LoadState.Success
- listModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
- )
- } else {
- loadState.value = LoadState.Fail
- response.toErrorMessage().show()
- }
- }, {
- loadState.value = LoadState.Fail
- Log.e(kTag, it.toString(), it)
- "服务器异常".show()
- })
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
new file mode 100644
index 0000000..f915e14
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
@@ -0,0 +1,81 @@
+package com.casic.qd.smartwell.vm
+
+import android.util.Log
+import androidx.lifecycle.MutableLiveData
+import com.casic.qd.smartwell.base.BaseViewModel
+import com.casic.qd.smartwell.extensions.launch
+import com.casic.qd.smartwell.extensions.separateResponseCode
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.toErrorMessage
+import com.casic.qd.smartwell.model.AlarmListModel
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+
+class SearchResultViewModel : BaseViewModel() {
+
+ private val kTag = "SearchResultViewModel"
+ private val gson = Gson()
+ val alarmResultModel = MutableLiveData()
+ val deviceResultModel = MutableLiveData()
+
+ fun obtainAlarmResult(
+ keywords: String?,
+ alarmType: String?,
+ areaId: String?,
+ alarmContentType: String?,
+ beginTime: String?,
+ endTime: String?,
+ status: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainAlarmResult(
+ keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ alarmResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+
+ fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainDeviceResult(
+ keywords, deviceType, deptId, isOnline, areaId, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ deviceResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_solid_layout_green.xml b/app/src/main/res/drawable/bg_solid_layout_green.xml
index f600a12..cba83af 100644
--- a/app/src/main/res/drawable/bg_solid_layout_green.xml
+++ b/app/src/main/res/drawable/bg_solid_layout_green.xml
@@ -5,7 +5,7 @@
+ android:startColor="#00A000" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_view_gray.xml b/app/src/main/res/drawable/bg_view_gray.xml
new file mode 100644
index 0000000..4f54c88
--- /dev/null
+++ b/app/src/main/res/drawable/bg_view_gray.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_view_green.xml b/app/src/main/res/drawable/bg_view_green.xml
new file mode 100644
index 0000000..db18d54
--- /dev/null
+++ b/app/src/main/res/drawable/bg_view_green.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_device_detail.xml b/app/src/main/res/layout/activity_device_detail.xml
new file mode 100644
index 0000000..77d9ef6
--- /dev/null
+++ b/app/src/main/res/layout/activity_device_detail.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
index 9496bf4..c5bf469 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
@@ -123,7 +123,7 @@
* 查询告警
* */
@GET("/alarm/list")
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
@Header("token") token: String,
@Query("keywords") keywords: String?,
@Query("alarmType") alarmType: String?,
@@ -187,4 +187,19 @@
@Header("token") token: String,
@Query("deptType") deptType: String
): String
+
+ /**
+ * 查询设备列表
+ * */
+ @GET("/device/list")
+ suspend fun obtainDeviceResult(
+ @Header("token") token: String,
+ @Query("keywords") keywords: String?,
+ @Query("deviceType") deviceType: String?,
+ @Query("deptid") deptid: String?,
+ @Query("isOnline") isOnline: String?,
+ @Query("areaId") areaId: String?,
+ @Query("offset") offset: Int,
+ @Query("limit") limit: Int
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
index 575b2a9..6f728e0 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -116,7 +116,7 @@
/**
* 查询告警
*/
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
keywords: String?,
alarmType: String?,
areaId: String?,
@@ -126,7 +126,7 @@
status: String?,
page: Int
): String {
- return api.obtainSearchResult(
+ return api.obtainAlarmResult(
AuthenticationHelper.token!!,
keywords,
alarmType,
@@ -181,4 +181,27 @@
suspend fun obtainOwnerShip(deptType: String): String {
return api.obtainOwnerShip(AuthenticationHelper.token!!, deptType)
}
+
+ /**
+ * 查询设备列表
+ */
+ suspend fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ): String {
+ return api.obtainDeviceResult(
+ AuthenticationHelper.token!!,
+ keywords,
+ deviceType,
+ deptId,
+ isOnline,
+ areaId,
+ page,
+ Constant.PAGE_LIMIT
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
index 61c68ab..b909fa1 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
@@ -21,7 +21,7 @@
import com.casic.qd.smartwell.utils.DialogHelper
import com.casic.qd.smartwell.utils.LoadState
import com.casic.qd.smartwell.vm.AlarmViewModel
-import com.casic.qd.smartwell.vm.SearchAlarmViewModel
+import com.casic.qd.smartwell.vm.SearchResultViewModel
import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_alarm_search_result.*
import kotlinx.android.synthetic.main.include_base_title.*
@@ -31,7 +31,7 @@
class AlarmSearchResultActivity : BaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var searchAlarmViewModel: SearchAlarmViewModel
+ private lateinit var searchAlarmViewModel: SearchResultViewModel
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var args: ArrayList
private lateinit var alarmListAdapter: AlarmListAdapter
@@ -49,7 +49,7 @@
override fun initData() {
args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
weakReferenceHandler = WeakReferenceHandler(this)
- searchAlarmViewModel = ViewModelProvider(this).get(SearchAlarmViewModel::class.java)
+ searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java)
//注册广播接收者
BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION,
@@ -65,7 +65,7 @@
override fun initEvent() {
obtainSearchResult(args, pageIndex)
- searchAlarmViewModel.listModel.observe(this, {
+ searchAlarmViewModel.alarmResultModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
@@ -90,6 +90,7 @@
weakReferenceHandler.sendEmptyMessage(2022041501)
}
})
+
searchAlarmViewModel.loadState.observe(this, {
when (it) {
is LoadState.Loading -> {
@@ -100,6 +101,7 @@
}
}
})
+
resultRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
@@ -133,7 +135,7 @@
}
private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
- searchAlarmViewModel.obtainSearchResult(
+ searchAlarmViewModel.obtainAlarmResult(
args[0], args[1], args[2], args[3], args[4], args[5], "1", pageIndex
)
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
new file mode 100644
index 0000000..08c5ecc
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
@@ -0,0 +1,21 @@
+package com.casic.qd.smartwell.view
+
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+
+class DeviceDataDetailActivity : BaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_device_detail
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
index cfc25d2..c70e4c6 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
@@ -1,21 +1,143 @@
package com.casic.qd.smartwell.view
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.adapter.DeviceListAdapter
import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.navigatePageTo
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.showEmptyPage
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.utils.DialogHelper
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.vm.SearchResultViewModel
+import kotlinx.android.synthetic.main.activity_device_search_result.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import java.lang.ref.WeakReference
class DeviceSearchResultActivity : BaseActivity() {
+ private lateinit var args: ArrayList
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchDeviceViewModel: SearchResultViewModel
+ private lateinit var deviceListAdapter: DeviceListAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
override fun initLayoutView(): Int = R.layout.activity_device_search_result
override fun setupTopBarLayout() {
-
+ titleView.text = "查询结果"
}
override fun initData() {
-
+ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
+ weakReferenceHandler = WeakReferenceHandler(this)
+ searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
}
override fun initEvent() {
+ obtainSearchResult(args, pageIndex)
+ searchDeviceViewModel.deviceResultModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ resultRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show()
+ }
+ dataBeans.addAll(dataRows!!)
+ resultRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022042001)
+ }
+ })
+ searchDeviceViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
+ }
+ })
+
+ resultRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainSearchResult(args, pageIndex)
+ }
+ resultRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainSearchResult(args, pageIndex)
+ }
+ }
+
+ private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
+ searchDeviceViewModel.obtainDeviceResult(
+ args[0], args[1], args[2], args[3], args[4], pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: DeviceSearchResultActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.deviceListAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.showEmptyPage {
+ activity.obtainSearchResult(activity.args, activity.pageIndex)
+ }
+ } else {
+ activity.emptyView!!.hide()
+ activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans)
+ activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity)
+ activity.resultRecyclerView!!.adapter = activity.deviceListAdapter
+ activity.deviceListAdapter.setOnItemClickListener(object :
+ DeviceListAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val deviceCode = activity.dataBeans[position].devcode.toString()
+ if (deviceCode.isBlank()) {
+ "设备编号异常,无法查看历史数据".show()
+ return
+ }
+ activity.navigatePageTo(
+ DeviceDataDetailActivity::class.java, deviceCode
+ )
+ }
+ })
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
index 853b311..142be88 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
@@ -28,12 +28,13 @@
*/
class SearchRecordActivity : BaseActivity() {
- private val kTag = "SearchRecordActivity"
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var areaViewModel: AreaViewModel
private var authenticatedType: MutableList = ArrayList()
private var deviceTypeValue = ""
+ private var deptId = ""
+ private var deviceState = "0"
private var areaId = ""
override fun initLayoutView(): Int = R.layout.activity_search_record
@@ -85,7 +86,7 @@
})
ownerShipView.setOnClickListener {
- authenticateViewModel.obtainOwnerShip("")
+ authenticateViewModel.obtainOwnerShip("03")
}
authenticateViewModel.resultModel.observe(this, {
if (it.code == 200) {
@@ -99,8 +100,9 @@
sheetBuilder.addItem(model.name)
}
sheetBuilder.setGravityCenter(true)
- .setOnSheetItemClickListener { dialog, _, _, tag ->
+ .setOnSheetItemClickListener { dialog, _, position, tag ->
ownerShipView.text = tag
+ this.deptId = ownerShipModel[position].id.toString()
dialog.dismiss()
}.build().show()
@@ -115,6 +117,11 @@
.setGravityCenter(true)
.setOnSheetItemClickListener { dialog, _, _, tag ->
deviceStateView.text = tag
+ this.deviceState = if (tag == "在线") {
+ "1"
+ } else {
+ "0"
+ }
dialog.dismiss()
}.build().show()
@@ -158,8 +165,8 @@
DeviceSearchResultActivity::class.java, addAll(
wellCodeView.text.toString().trim(),
deviceTypeValue,
- "权属单位",
- "在线情况",
+ deptId,
+ deviceState,
areaId
)
)
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
deleted file mode 100644
index 1ae3407..0000000
--- a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.casic.qd.smartwell.vm
-
-import android.util.Log
-import androidx.lifecycle.MutableLiveData
-import com.casic.qd.smartwell.base.BaseViewModel
-import com.casic.qd.smartwell.extensions.launch
-import com.casic.qd.smartwell.extensions.separateResponseCode
-import com.casic.qd.smartwell.extensions.show
-import com.casic.qd.smartwell.extensions.toErrorMessage
-import com.casic.qd.smartwell.model.AlarmListModel
-import com.casic.qd.smartwell.utils.LoadState
-import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
-import com.google.gson.Gson
-import com.google.gson.reflect.TypeToken
-
-class SearchAlarmViewModel : BaseViewModel() {
-
- private val kTag = "SearchAlarmViewModel"
- private val gson = Gson()
- val listModel = MutableLiveData()
-
- fun obtainSearchResult(
- keywords: String?,
- alarmType: String?,
- areaId: String?,
- alarmContentType: String?,
- beginTime: String?,
- endTime: String?,
- status: String?,
- page: Int
- ) = launch({
- loadState.value = LoadState.Loading
- val response = RetrofitServiceManager.obtainSearchResult(
- keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
- )
- val responseCode = response.separateResponseCode()
- if (responseCode == 200) {
- loadState.value = LoadState.Success
- listModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
- )
- } else {
- loadState.value = LoadState.Fail
- response.toErrorMessage().show()
- }
- }, {
- loadState.value = LoadState.Fail
- Log.e(kTag, it.toString(), it)
- "服务器异常".show()
- })
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
new file mode 100644
index 0000000..f915e14
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
@@ -0,0 +1,81 @@
+package com.casic.qd.smartwell.vm
+
+import android.util.Log
+import androidx.lifecycle.MutableLiveData
+import com.casic.qd.smartwell.base.BaseViewModel
+import com.casic.qd.smartwell.extensions.launch
+import com.casic.qd.smartwell.extensions.separateResponseCode
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.toErrorMessage
+import com.casic.qd.smartwell.model.AlarmListModel
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+
+class SearchResultViewModel : BaseViewModel() {
+
+ private val kTag = "SearchResultViewModel"
+ private val gson = Gson()
+ val alarmResultModel = MutableLiveData()
+ val deviceResultModel = MutableLiveData()
+
+ fun obtainAlarmResult(
+ keywords: String?,
+ alarmType: String?,
+ areaId: String?,
+ alarmContentType: String?,
+ beginTime: String?,
+ endTime: String?,
+ status: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainAlarmResult(
+ keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ alarmResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+
+ fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainDeviceResult(
+ keywords, deviceType, deptId, isOnline, areaId, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ deviceResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_solid_layout_green.xml b/app/src/main/res/drawable/bg_solid_layout_green.xml
index f600a12..cba83af 100644
--- a/app/src/main/res/drawable/bg_solid_layout_green.xml
+++ b/app/src/main/res/drawable/bg_solid_layout_green.xml
@@ -5,7 +5,7 @@
+ android:startColor="#00A000" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_view_gray.xml b/app/src/main/res/drawable/bg_view_gray.xml
new file mode 100644
index 0000000..4f54c88
--- /dev/null
+++ b/app/src/main/res/drawable/bg_view_gray.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_view_green.xml b/app/src/main/res/drawable/bg_view_green.xml
new file mode 100644
index 0000000..db18d54
--- /dev/null
+++ b/app/src/main/res/drawable/bg_view_green.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_device_detail.xml b/app/src/main/res/layout/activity_device_detail.xml
new file mode 100644
index 0000000..77d9ef6
--- /dev/null
+++ b/app/src/main/res/layout/activity_device_detail.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_device_search_result.xml b/app/src/main/res/layout/activity_device_search_result.xml
index 77d9ef6..a71ad17 100644
--- a/app/src/main/res/layout/activity_device_search_result.xml
+++ b/app/src/main/res/layout/activity_device_search_result.xml
@@ -1,6 +1,41 @@
-
+ android:layout_height="match_parent"
+ android:background="@color/mainBackColor"
+ android:orientation="vertical"
+ tools:context=".view.DeviceSearchResultActivity">
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
index 9496bf4..c5bf469 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
@@ -123,7 +123,7 @@
* 查询告警
* */
@GET("/alarm/list")
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
@Header("token") token: String,
@Query("keywords") keywords: String?,
@Query("alarmType") alarmType: String?,
@@ -187,4 +187,19 @@
@Header("token") token: String,
@Query("deptType") deptType: String
): String
+
+ /**
+ * 查询设备列表
+ * */
+ @GET("/device/list")
+ suspend fun obtainDeviceResult(
+ @Header("token") token: String,
+ @Query("keywords") keywords: String?,
+ @Query("deviceType") deviceType: String?,
+ @Query("deptid") deptid: String?,
+ @Query("isOnline") isOnline: String?,
+ @Query("areaId") areaId: String?,
+ @Query("offset") offset: Int,
+ @Query("limit") limit: Int
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
index 575b2a9..6f728e0 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -116,7 +116,7 @@
/**
* 查询告警
*/
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
keywords: String?,
alarmType: String?,
areaId: String?,
@@ -126,7 +126,7 @@
status: String?,
page: Int
): String {
- return api.obtainSearchResult(
+ return api.obtainAlarmResult(
AuthenticationHelper.token!!,
keywords,
alarmType,
@@ -181,4 +181,27 @@
suspend fun obtainOwnerShip(deptType: String): String {
return api.obtainOwnerShip(AuthenticationHelper.token!!, deptType)
}
+
+ /**
+ * 查询设备列表
+ */
+ suspend fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ): String {
+ return api.obtainDeviceResult(
+ AuthenticationHelper.token!!,
+ keywords,
+ deviceType,
+ deptId,
+ isOnline,
+ areaId,
+ page,
+ Constant.PAGE_LIMIT
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
index 61c68ab..b909fa1 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
@@ -21,7 +21,7 @@
import com.casic.qd.smartwell.utils.DialogHelper
import com.casic.qd.smartwell.utils.LoadState
import com.casic.qd.smartwell.vm.AlarmViewModel
-import com.casic.qd.smartwell.vm.SearchAlarmViewModel
+import com.casic.qd.smartwell.vm.SearchResultViewModel
import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_alarm_search_result.*
import kotlinx.android.synthetic.main.include_base_title.*
@@ -31,7 +31,7 @@
class AlarmSearchResultActivity : BaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var searchAlarmViewModel: SearchAlarmViewModel
+ private lateinit var searchAlarmViewModel: SearchResultViewModel
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var args: ArrayList
private lateinit var alarmListAdapter: AlarmListAdapter
@@ -49,7 +49,7 @@
override fun initData() {
args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
weakReferenceHandler = WeakReferenceHandler(this)
- searchAlarmViewModel = ViewModelProvider(this).get(SearchAlarmViewModel::class.java)
+ searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java)
//注册广播接收者
BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION,
@@ -65,7 +65,7 @@
override fun initEvent() {
obtainSearchResult(args, pageIndex)
- searchAlarmViewModel.listModel.observe(this, {
+ searchAlarmViewModel.alarmResultModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
@@ -90,6 +90,7 @@
weakReferenceHandler.sendEmptyMessage(2022041501)
}
})
+
searchAlarmViewModel.loadState.observe(this, {
when (it) {
is LoadState.Loading -> {
@@ -100,6 +101,7 @@
}
}
})
+
resultRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
@@ -133,7 +135,7 @@
}
private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
- searchAlarmViewModel.obtainSearchResult(
+ searchAlarmViewModel.obtainAlarmResult(
args[0], args[1], args[2], args[3], args[4], args[5], "1", pageIndex
)
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
new file mode 100644
index 0000000..08c5ecc
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
@@ -0,0 +1,21 @@
+package com.casic.qd.smartwell.view
+
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+
+class DeviceDataDetailActivity : BaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_device_detail
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
index cfc25d2..c70e4c6 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
@@ -1,21 +1,143 @@
package com.casic.qd.smartwell.view
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.adapter.DeviceListAdapter
import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.navigatePageTo
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.showEmptyPage
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.utils.DialogHelper
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.vm.SearchResultViewModel
+import kotlinx.android.synthetic.main.activity_device_search_result.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import java.lang.ref.WeakReference
class DeviceSearchResultActivity : BaseActivity() {
+ private lateinit var args: ArrayList
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchDeviceViewModel: SearchResultViewModel
+ private lateinit var deviceListAdapter: DeviceListAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
override fun initLayoutView(): Int = R.layout.activity_device_search_result
override fun setupTopBarLayout() {
-
+ titleView.text = "查询结果"
}
override fun initData() {
-
+ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
+ weakReferenceHandler = WeakReferenceHandler(this)
+ searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
}
override fun initEvent() {
+ obtainSearchResult(args, pageIndex)
+ searchDeviceViewModel.deviceResultModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ resultRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show()
+ }
+ dataBeans.addAll(dataRows!!)
+ resultRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022042001)
+ }
+ })
+ searchDeviceViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
+ }
+ })
+
+ resultRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainSearchResult(args, pageIndex)
+ }
+ resultRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainSearchResult(args, pageIndex)
+ }
+ }
+
+ private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
+ searchDeviceViewModel.obtainDeviceResult(
+ args[0], args[1], args[2], args[3], args[4], pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: DeviceSearchResultActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.deviceListAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.showEmptyPage {
+ activity.obtainSearchResult(activity.args, activity.pageIndex)
+ }
+ } else {
+ activity.emptyView!!.hide()
+ activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans)
+ activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity)
+ activity.resultRecyclerView!!.adapter = activity.deviceListAdapter
+ activity.deviceListAdapter.setOnItemClickListener(object :
+ DeviceListAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val deviceCode = activity.dataBeans[position].devcode.toString()
+ if (deviceCode.isBlank()) {
+ "设备编号异常,无法查看历史数据".show()
+ return
+ }
+ activity.navigatePageTo(
+ DeviceDataDetailActivity::class.java, deviceCode
+ )
+ }
+ })
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
index 853b311..142be88 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
@@ -28,12 +28,13 @@
*/
class SearchRecordActivity : BaseActivity() {
- private val kTag = "SearchRecordActivity"
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var areaViewModel: AreaViewModel
private var authenticatedType: MutableList = ArrayList()
private var deviceTypeValue = ""
+ private var deptId = ""
+ private var deviceState = "0"
private var areaId = ""
override fun initLayoutView(): Int = R.layout.activity_search_record
@@ -85,7 +86,7 @@
})
ownerShipView.setOnClickListener {
- authenticateViewModel.obtainOwnerShip("")
+ authenticateViewModel.obtainOwnerShip("03")
}
authenticateViewModel.resultModel.observe(this, {
if (it.code == 200) {
@@ -99,8 +100,9 @@
sheetBuilder.addItem(model.name)
}
sheetBuilder.setGravityCenter(true)
- .setOnSheetItemClickListener { dialog, _, _, tag ->
+ .setOnSheetItemClickListener { dialog, _, position, tag ->
ownerShipView.text = tag
+ this.deptId = ownerShipModel[position].id.toString()
dialog.dismiss()
}.build().show()
@@ -115,6 +117,11 @@
.setGravityCenter(true)
.setOnSheetItemClickListener { dialog, _, _, tag ->
deviceStateView.text = tag
+ this.deviceState = if (tag == "在线") {
+ "1"
+ } else {
+ "0"
+ }
dialog.dismiss()
}.build().show()
@@ -158,8 +165,8 @@
DeviceSearchResultActivity::class.java, addAll(
wellCodeView.text.toString().trim(),
deviceTypeValue,
- "权属单位",
- "在线情况",
+ deptId,
+ deviceState,
areaId
)
)
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
deleted file mode 100644
index 1ae3407..0000000
--- a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.casic.qd.smartwell.vm
-
-import android.util.Log
-import androidx.lifecycle.MutableLiveData
-import com.casic.qd.smartwell.base.BaseViewModel
-import com.casic.qd.smartwell.extensions.launch
-import com.casic.qd.smartwell.extensions.separateResponseCode
-import com.casic.qd.smartwell.extensions.show
-import com.casic.qd.smartwell.extensions.toErrorMessage
-import com.casic.qd.smartwell.model.AlarmListModel
-import com.casic.qd.smartwell.utils.LoadState
-import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
-import com.google.gson.Gson
-import com.google.gson.reflect.TypeToken
-
-class SearchAlarmViewModel : BaseViewModel() {
-
- private val kTag = "SearchAlarmViewModel"
- private val gson = Gson()
- val listModel = MutableLiveData()
-
- fun obtainSearchResult(
- keywords: String?,
- alarmType: String?,
- areaId: String?,
- alarmContentType: String?,
- beginTime: String?,
- endTime: String?,
- status: String?,
- page: Int
- ) = launch({
- loadState.value = LoadState.Loading
- val response = RetrofitServiceManager.obtainSearchResult(
- keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
- )
- val responseCode = response.separateResponseCode()
- if (responseCode == 200) {
- loadState.value = LoadState.Success
- listModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
- )
- } else {
- loadState.value = LoadState.Fail
- response.toErrorMessage().show()
- }
- }, {
- loadState.value = LoadState.Fail
- Log.e(kTag, it.toString(), it)
- "服务器异常".show()
- })
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
new file mode 100644
index 0000000..f915e14
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
@@ -0,0 +1,81 @@
+package com.casic.qd.smartwell.vm
+
+import android.util.Log
+import androidx.lifecycle.MutableLiveData
+import com.casic.qd.smartwell.base.BaseViewModel
+import com.casic.qd.smartwell.extensions.launch
+import com.casic.qd.smartwell.extensions.separateResponseCode
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.toErrorMessage
+import com.casic.qd.smartwell.model.AlarmListModel
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+
+class SearchResultViewModel : BaseViewModel() {
+
+ private val kTag = "SearchResultViewModel"
+ private val gson = Gson()
+ val alarmResultModel = MutableLiveData()
+ val deviceResultModel = MutableLiveData()
+
+ fun obtainAlarmResult(
+ keywords: String?,
+ alarmType: String?,
+ areaId: String?,
+ alarmContentType: String?,
+ beginTime: String?,
+ endTime: String?,
+ status: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainAlarmResult(
+ keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ alarmResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+
+ fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainDeviceResult(
+ keywords, deviceType, deptId, isOnline, areaId, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ deviceResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_solid_layout_green.xml b/app/src/main/res/drawable/bg_solid_layout_green.xml
index f600a12..cba83af 100644
--- a/app/src/main/res/drawable/bg_solid_layout_green.xml
+++ b/app/src/main/res/drawable/bg_solid_layout_green.xml
@@ -5,7 +5,7 @@
+ android:startColor="#00A000" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_view_gray.xml b/app/src/main/res/drawable/bg_view_gray.xml
new file mode 100644
index 0000000..4f54c88
--- /dev/null
+++ b/app/src/main/res/drawable/bg_view_gray.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_view_green.xml b/app/src/main/res/drawable/bg_view_green.xml
new file mode 100644
index 0000000..db18d54
--- /dev/null
+++ b/app/src/main/res/drawable/bg_view_green.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_device_detail.xml b/app/src/main/res/layout/activity_device_detail.xml
new file mode 100644
index 0000000..77d9ef6
--- /dev/null
+++ b/app/src/main/res/layout/activity_device_detail.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_device_search_result.xml b/app/src/main/res/layout/activity_device_search_result.xml
index 77d9ef6..a71ad17 100644
--- a/app/src/main/res/layout/activity_device_search_result.xml
+++ b/app/src/main/res/layout/activity_device_search_result.xml
@@ -1,6 +1,41 @@
-
+ android:layout_height="match_parent"
+ android:background="@color/mainBackColor"
+ android:orientation="vertical"
+ tools:context=".view.DeviceSearchResultActivity">
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_device_recycleview.xml b/app/src/main/res/layout/item_device_recycleview.xml
new file mode 100644
index 0000000..a68ac1d
--- /dev/null
+++ b/app/src/main/res/layout/item_device_recycleview.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f11ea34..82386c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,7 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
new file mode 100644
index 0000000..be20872
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/adapter/DeviceListAdapter.kt
@@ -0,0 +1,69 @@
+package com.casic.qd.smartwell.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+
+class DeviceListAdapter(
+ context: Context, private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup, viewType: Int
+ ): DeviceListAdapter.ItemViewHolder {
+ return ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_device_recycleview, parent, false)
+ )
+ }
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.deviceTypeView.text = rowsBean.deviceTypeName
+ holder.deviceCodeView.text = rowsBean.devcode
+ holder.wellCodeView.text = String.format("井编号:${rowsBean.wellCode}")
+ if (rowsBean.onlineState == "1") {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_green)
+ } else {
+ holder.deviceStateView.setBackgroundResource(R.drawable.bg_view_gray)
+ }
+ holder.devLocationView.text = rowsBean.position
+ holder.devInstallTimeView.text = String.format("安装日期:${rowsBean.installDate}")
+ //绑定事件
+ if (listener != null) {
+ holder.itemView.setOnClickListener {
+ listener!!.onClicked(position)
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var deviceTypeView: QMUIRoundButton = view.findViewById(R.id.deviceTypeView)
+ var deviceCodeView: TextView = view.findViewById(R.id.deviceCodeView)
+ var deviceStateView: ImageView = view.findViewById(R.id.deviceStateView)
+ var wellCodeView: TextView = view.findViewById(R.id.wellCodeView)
+ var devLocationView: TextView = view.findViewById(R.id.devLocationView)
+ var devInstallTimeView: TextView = view.findViewById(R.id.devInstallTimeView)
+ }
+
+ private var listener: OnItemClickListener? = null
+
+ interface OnItemClickListener {
+ fun onClicked(position: Int)
+ }
+
+ fun setOnItemClickListener(onClickListener: OnItemClickListener?) {
+ this.listener = onClickListener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
new file mode 100644
index 0000000..955a38e
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/model/DeviceListModel.kt
@@ -0,0 +1,49 @@
+package com.casic.qd.smartwell.model
+
+class DeviceListModel {
+ var code = 0
+ var data: DataBean? = null
+ var message: String? = null
+ var isSuccess = false
+
+ class DataBean {
+ var rows: MutableList? = null
+ var total = 0
+
+ class RowsBean {
+ var area: String? = null
+ var areaFullName: String? = null
+ var bfzt: String? = null
+ var bfztName: String? = null
+ var communication: String? = null
+ var concenCode: String? = null
+ var concenId: String? = null
+ var dayCount: String? = null
+ var deptName: String? = null
+ var deptid: String? = null
+ var devcode: String? = null
+ var deviceName: String? = null
+ var deviceType: String? = null
+ var deviceTypeName: String? = null
+ var id: String? = null
+ var installDate: String? = null
+ var latitude: String? = null
+ var longitude: String? = null
+ var modelId: String? = null
+ var modelName: String? = null
+ var monthCount: String? = null
+ var onlineState: String? = null
+ var onlineStateName: String? = null
+ var position: String? = null
+ var statusName: String? = null
+ var totalCount: String? = null
+ var ts: String? = null
+ var uptime: String? = null
+ var valid: String? = null
+ var watchNum: String? = null
+ var watchType: String? = null
+ var wellCode: String? = null
+ var wellId: String? = null
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
index 9496bf4..c5bf469 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitService.kt
@@ -123,7 +123,7 @@
* 查询告警
* */
@GET("/alarm/list")
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
@Header("token") token: String,
@Query("keywords") keywords: String?,
@Query("alarmType") alarmType: String?,
@@ -187,4 +187,19 @@
@Header("token") token: String,
@Query("deptType") deptType: String
): String
+
+ /**
+ * 查询设备列表
+ * */
+ @GET("/device/list")
+ suspend fun obtainDeviceResult(
+ @Header("token") token: String,
+ @Query("keywords") keywords: String?,
+ @Query("deviceType") deviceType: String?,
+ @Query("deptid") deptid: String?,
+ @Query("isOnline") isOnline: String?,
+ @Query("areaId") areaId: String?,
+ @Query("offset") offset: Int,
+ @Query("limit") limit: Int
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
index 575b2a9..6f728e0 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/retrofit/RetrofitServiceManager.kt
@@ -116,7 +116,7 @@
/**
* 查询告警
*/
- suspend fun obtainSearchResult(
+ suspend fun obtainAlarmResult(
keywords: String?,
alarmType: String?,
areaId: String?,
@@ -126,7 +126,7 @@
status: String?,
page: Int
): String {
- return api.obtainSearchResult(
+ return api.obtainAlarmResult(
AuthenticationHelper.token!!,
keywords,
alarmType,
@@ -181,4 +181,27 @@
suspend fun obtainOwnerShip(deptType: String): String {
return api.obtainOwnerShip(AuthenticationHelper.token!!, deptType)
}
+
+ /**
+ * 查询设备列表
+ */
+ suspend fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ): String {
+ return api.obtainDeviceResult(
+ AuthenticationHelper.token!!,
+ keywords,
+ deviceType,
+ deptId,
+ isOnline,
+ areaId,
+ page,
+ Constant.PAGE_LIMIT
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
index 61c68ab..b909fa1 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/AlarmSearchResultActivity.kt
@@ -21,7 +21,7 @@
import com.casic.qd.smartwell.utils.DialogHelper
import com.casic.qd.smartwell.utils.LoadState
import com.casic.qd.smartwell.vm.AlarmViewModel
-import com.casic.qd.smartwell.vm.SearchAlarmViewModel
+import com.casic.qd.smartwell.vm.SearchResultViewModel
import com.pengxh.app.multilib.widget.dialog.AlertControlDialog
import kotlinx.android.synthetic.main.activity_alarm_search_result.*
import kotlinx.android.synthetic.main.include_base_title.*
@@ -31,7 +31,7 @@
class AlarmSearchResultActivity : BaseActivity() {
private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var searchAlarmViewModel: SearchAlarmViewModel
+ private lateinit var searchAlarmViewModel: SearchResultViewModel
private lateinit var alarmViewModel: AlarmViewModel
private lateinit var args: ArrayList
private lateinit var alarmListAdapter: AlarmListAdapter
@@ -49,7 +49,7 @@
override fun initData() {
args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
weakReferenceHandler = WeakReferenceHandler(this)
- searchAlarmViewModel = ViewModelProvider(this).get(SearchAlarmViewModel::class.java)
+ searchAlarmViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java)
//注册广播接收者
BroadcastReceiverManager.instance.addAction(Constant.CANCEL_ALARM_ACTION,
@@ -65,7 +65,7 @@
override fun initEvent() {
obtainSearchResult(args, pageIndex)
- searchAlarmViewModel.listModel.observe(this, {
+ searchAlarmViewModel.alarmResultModel.observe(this, {
if (it.code == 200) {
val dataRows = it.data?.rows
when {
@@ -90,6 +90,7 @@
weakReferenceHandler.sendEmptyMessage(2022041501)
}
})
+
searchAlarmViewModel.loadState.observe(this, {
when (it) {
is LoadState.Loading -> {
@@ -100,6 +101,7 @@
}
}
})
+
resultRefreshLayout.setOnRefreshListener {
isRefresh = true
//刷新之后页码重置
@@ -133,7 +135,7 @@
}
private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
- searchAlarmViewModel.obtainSearchResult(
+ searchAlarmViewModel.obtainAlarmResult(
args[0], args[1], args[2], args[3], args[4], args[5], "1", pageIndex
)
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
new file mode 100644
index 0000000..08c5ecc
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceDataDetailActivity.kt
@@ -0,0 +1,21 @@
+package com.casic.qd.smartwell.view
+
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+
+class DeviceDataDetailActivity : BaseActivity() {
+
+ override fun initLayoutView(): Int = R.layout.activity_device_detail
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
index cfc25d2..c70e4c6 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/DeviceSearchResultActivity.kt
@@ -1,21 +1,143 @@
package com.casic.qd.smartwell.view
+import android.annotation.SuppressLint
+import android.os.Handler
+import android.os.Looper
+import android.os.Message
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.adapter.DeviceListAdapter
import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.navigatePageTo
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.showEmptyPage
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.utils.DialogHelper
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.vm.SearchResultViewModel
+import kotlinx.android.synthetic.main.activity_device_search_result.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import java.lang.ref.WeakReference
class DeviceSearchResultActivity : BaseActivity() {
+ private lateinit var args: ArrayList
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchDeviceViewModel: SearchResultViewModel
+ private lateinit var deviceListAdapter: DeviceListAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
override fun initLayoutView(): Int = R.layout.activity_device_search_result
override fun setupTopBarLayout() {
-
+ titleView.text = "查询结果"
}
override fun initData() {
-
+ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!!
+ weakReferenceHandler = WeakReferenceHandler(this)
+ searchDeviceViewModel = ViewModelProvider(this).get(SearchResultViewModel::class.java)
}
override fun initEvent() {
+ obtainSearchResult(args, pageIndex)
+ searchDeviceViewModel.deviceResultModel.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows!!
+ resultRefreshLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows?.size == 0) {
+ "到底了,别拉了".show()
+ }
+ dataBeans.addAll(dataRows!!)
+ resultRefreshLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows!!
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2022042001)
+ }
+ })
+ searchDeviceViewModel.loadState.observe(this, {
+ when (it) {
+ is LoadState.Loading -> {
+ DialogHelper.showLoadingDialog(this, "数据加载中,请稍后")
+ }
+ else -> {
+ DialogHelper.dismissLoadingDialog()
+ }
+ }
+ })
+
+ resultRefreshLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ obtainSearchResult(args, pageIndex)
+ }
+ resultRefreshLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ obtainSearchResult(args, pageIndex)
+ }
+ }
+
+ private fun obtainSearchResult(args: ArrayList, pageIndex: Int) {
+ searchDeviceViewModel.obtainDeviceResult(
+ args[0], args[1], args[2], args[3], args[4], pageIndex
+ )
+ }
+
+ private class WeakReferenceHandler(activity: DeviceSearchResultActivity) :
+ Handler(Looper.getMainLooper()) {
+ private val reference: WeakReference = WeakReference(activity)
+
+ @SuppressLint("NotifyDataSetChanged")
+ override fun handleMessage(msg: Message) {
+ super.handleMessage(msg)
+ val activity = reference.get()!!
+ if (activity.isRefresh || activity.isLoadMore) {
+ activity.deviceListAdapter.notifyDataSetChanged()
+ } else { //首次加载数据
+ if (activity.dataBeans.size == 0) {
+ activity.emptyView!!.showEmptyPage {
+ activity.obtainSearchResult(activity.args, activity.pageIndex)
+ }
+ } else {
+ activity.emptyView!!.hide()
+ activity.deviceListAdapter = DeviceListAdapter(activity, activity.dataBeans)
+ activity.resultRecyclerView!!.layoutManager = LinearLayoutManager(activity)
+ activity.resultRecyclerView!!.adapter = activity.deviceListAdapter
+ activity.deviceListAdapter.setOnItemClickListener(object :
+ DeviceListAdapter.OnItemClickListener {
+ override fun onClicked(position: Int) {
+ val deviceCode = activity.dataBeans[position].devcode.toString()
+ if (deviceCode.isBlank()) {
+ "设备编号异常,无法查看历史数据".show()
+ return
+ }
+ activity.navigatePageTo(
+ DeviceDataDetailActivity::class.java, deviceCode
+ )
+ }
+ })
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
index 853b311..142be88 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/SearchRecordActivity.kt
@@ -28,12 +28,13 @@
*/
class SearchRecordActivity : BaseActivity() {
- private val kTag = "SearchRecordActivity"
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var authenticateViewModel: AuthenticateViewModel
private lateinit var areaViewModel: AreaViewModel
private var authenticatedType: MutableList = ArrayList()
private var deviceTypeValue = ""
+ private var deptId = ""
+ private var deviceState = "0"
private var areaId = ""
override fun initLayoutView(): Int = R.layout.activity_search_record
@@ -85,7 +86,7 @@
})
ownerShipView.setOnClickListener {
- authenticateViewModel.obtainOwnerShip("")
+ authenticateViewModel.obtainOwnerShip("03")
}
authenticateViewModel.resultModel.observe(this, {
if (it.code == 200) {
@@ -99,8 +100,9 @@
sheetBuilder.addItem(model.name)
}
sheetBuilder.setGravityCenter(true)
- .setOnSheetItemClickListener { dialog, _, _, tag ->
+ .setOnSheetItemClickListener { dialog, _, position, tag ->
ownerShipView.text = tag
+ this.deptId = ownerShipModel[position].id.toString()
dialog.dismiss()
}.build().show()
@@ -115,6 +117,11 @@
.setGravityCenter(true)
.setOnSheetItemClickListener { dialog, _, _, tag ->
deviceStateView.text = tag
+ this.deviceState = if (tag == "在线") {
+ "1"
+ } else {
+ "0"
+ }
dialog.dismiss()
}.build().show()
@@ -158,8 +165,8 @@
DeviceSearchResultActivity::class.java, addAll(
wellCodeView.text.toString().trim(),
deviceTypeValue,
- "权属单位",
- "在线情况",
+ deptId,
+ deviceState,
areaId
)
)
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
deleted file mode 100644
index 1ae3407..0000000
--- a/app/src/main/java/com/casic/qd/smartwell/vm/SearchAlarmViewModel.kt
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.casic.qd.smartwell.vm
-
-import android.util.Log
-import androidx.lifecycle.MutableLiveData
-import com.casic.qd.smartwell.base.BaseViewModel
-import com.casic.qd.smartwell.extensions.launch
-import com.casic.qd.smartwell.extensions.separateResponseCode
-import com.casic.qd.smartwell.extensions.show
-import com.casic.qd.smartwell.extensions.toErrorMessage
-import com.casic.qd.smartwell.model.AlarmListModel
-import com.casic.qd.smartwell.utils.LoadState
-import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
-import com.google.gson.Gson
-import com.google.gson.reflect.TypeToken
-
-class SearchAlarmViewModel : BaseViewModel() {
-
- private val kTag = "SearchAlarmViewModel"
- private val gson = Gson()
- val listModel = MutableLiveData()
-
- fun obtainSearchResult(
- keywords: String?,
- alarmType: String?,
- areaId: String?,
- alarmContentType: String?,
- beginTime: String?,
- endTime: String?,
- status: String?,
- page: Int
- ) = launch({
- loadState.value = LoadState.Loading
- val response = RetrofitServiceManager.obtainSearchResult(
- keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
- )
- val responseCode = response.separateResponseCode()
- if (responseCode == 200) {
- loadState.value = LoadState.Success
- listModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
- )
- } else {
- loadState.value = LoadState.Fail
- response.toErrorMessage().show()
- }
- }, {
- loadState.value = LoadState.Fail
- Log.e(kTag, it.toString(), it)
- "服务器异常".show()
- })
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
new file mode 100644
index 0000000..f915e14
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/vm/SearchResultViewModel.kt
@@ -0,0 +1,81 @@
+package com.casic.qd.smartwell.vm
+
+import android.util.Log
+import androidx.lifecycle.MutableLiveData
+import com.casic.qd.smartwell.base.BaseViewModel
+import com.casic.qd.smartwell.extensions.launch
+import com.casic.qd.smartwell.extensions.separateResponseCode
+import com.casic.qd.smartwell.extensions.show
+import com.casic.qd.smartwell.extensions.toErrorMessage
+import com.casic.qd.smartwell.model.AlarmListModel
+import com.casic.qd.smartwell.model.DeviceListModel
+import com.casic.qd.smartwell.utils.LoadState
+import com.casic.qd.smartwell.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+
+class SearchResultViewModel : BaseViewModel() {
+
+ private val kTag = "SearchResultViewModel"
+ private val gson = Gson()
+ val alarmResultModel = MutableLiveData()
+ val deviceResultModel = MutableLiveData()
+
+ fun obtainAlarmResult(
+ keywords: String?,
+ alarmType: String?,
+ areaId: String?,
+ alarmContentType: String?,
+ beginTime: String?,
+ endTime: String?,
+ status: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainAlarmResult(
+ keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ alarmResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+
+ fun obtainDeviceResult(
+ keywords: String?,
+ deviceType: String?,
+ deptId: String?,
+ isOnline: String?,
+ areaId: String?,
+ page: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.obtainDeviceResult(
+ keywords, deviceType, deptId, isOnline, areaId, page
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ deviceResultModel.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show()
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ Log.e(kTag, it.toString(), it)
+ "服务器异常".show()
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_solid_layout_green.xml b/app/src/main/res/drawable/bg_solid_layout_green.xml
index f600a12..cba83af 100644
--- a/app/src/main/res/drawable/bg_solid_layout_green.xml
+++ b/app/src/main/res/drawable/bg_solid_layout_green.xml
@@ -5,7 +5,7 @@
+ android:startColor="#00A000" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_view_gray.xml b/app/src/main/res/drawable/bg_view_gray.xml
new file mode 100644
index 0000000..4f54c88
--- /dev/null
+++ b/app/src/main/res/drawable/bg_view_gray.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_view_green.xml b/app/src/main/res/drawable/bg_view_green.xml
new file mode 100644
index 0000000..db18d54
--- /dev/null
+++ b/app/src/main/res/drawable/bg_view_green.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_device_detail.xml b/app/src/main/res/layout/activity_device_detail.xml
new file mode 100644
index 0000000..77d9ef6
--- /dev/null
+++ b/app/src/main/res/layout/activity_device_detail.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_device_search_result.xml b/app/src/main/res/layout/activity_device_search_result.xml
index 77d9ef6..a71ad17 100644
--- a/app/src/main/res/layout/activity_device_search_result.xml
+++ b/app/src/main/res/layout/activity_device_search_result.xml
@@ -1,6 +1,41 @@
-
+ android:layout_height="match_parent"
+ android:background="@color/mainBackColor"
+ android:orientation="vertical"
+ tools:context=".view.DeviceSearchResultActivity">
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_device_recycleview.xml b/app/src/main/res/layout/item_device_recycleview.xml
new file mode 100644
index 0000000..a68ac1d
--- /dev/null
+++ b/app/src/main/res/layout/item_device_recycleview.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 3c5147c..9e09837 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -6,7 +6,6 @@
#F7F7FA
#CCCCCC
#DDDDDD
- #00A000
#FF0000
#FF6600
#96E9B5