diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt index 45af48a..fc0596e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt @@ -51,7 +51,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -92,7 +92,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -100,7 +100,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt index 45af48a..fc0596e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt @@ -51,7 +51,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -92,7 +92,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -100,7 +100,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt index 36075bd..1235bc6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt @@ -101,7 +101,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -170,7 +170,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -192,7 +192,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -281,12 +281,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt index 45af48a..fc0596e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt @@ -51,7 +51,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -92,7 +92,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -100,7 +100,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt index 36075bd..1235bc6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt @@ -101,7 +101,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -170,7 +170,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -192,7 +192,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -281,12 +281,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt index 97e1f59..69529f3 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt @@ -114,7 +114,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -155,7 +155,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -163,7 +163,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -220,7 +220,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -242,7 +242,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -318,12 +318,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt index 45af48a..fc0596e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt @@ -51,7 +51,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -92,7 +92,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -100,7 +100,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt index 36075bd..1235bc6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt @@ -101,7 +101,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -170,7 +170,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -192,7 +192,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -281,12 +281,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt index 97e1f59..69529f3 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt @@ -114,7 +114,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -155,7 +155,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -163,7 +163,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -220,7 +220,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -242,7 +242,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -318,12 +318,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt index 8228673..fda9277 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt @@ -1,19 +1,27 @@ package com.casic.app.smartwell.view +import android.annotation.SuppressLint import android.os.Handler import android.os.Looper import android.os.Message import android.view.View import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R +import com.casic.app.smartwell.adapter.SearchResultAdapter import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.extensions.showEmptyPage import com.casic.app.smartwell.model.SearchResultModel import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.AcceptOrderViewModel import com.casic.app.smartwell.vm.SearchOrderViewModel +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import com.casic.app.smartwell.widgets.TimeLineBottomSheet +import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_order_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,7 +30,10 @@ class SearchResultActivity : BaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var searchOrderViewModel: SearchOrderViewModel + private lateinit var acceptOrderViewModel: AcceptOrderViewModel + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel private lateinit var args: ArrayList + private lateinit var searchResultAdapter: SearchResultAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -40,6 +51,8 @@ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! weakReferenceHandler = WeakReferenceHandler(this) searchOrderViewModel = ViewModelProvider(this).get(SearchOrderViewModel::class.java) + acceptOrderViewModel = ViewModelProvider(this).get(AcceptOrderViewModel::class.java) + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) } override fun initEvent() { @@ -90,6 +103,38 @@ pageIndex++ obtainSearchResult(args, pageIndex) } + + //接单状态处理 + acceptOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "接单中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "接单成功".show(this) + //通知列表刷行数据 + weakReferenceHandler.sendEmptyMessage(2022040102) + } + else -> { + DialogHelper.dismissLoadingDialog() + "接单失败".show(this) + } + } + }) + + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val orderDetail = it.data!![0] + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + TimeLineBottomSheet.Builder().setContext(this) + .setFlowItems(orderFlow).build().show() + } else { + "抱歉,无法查到该工单的流转记录".show(this) + } + } + }) } private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { @@ -108,19 +153,87 @@ Handler(Looper.getMainLooper()) { private val reference: WeakReference = WeakReference(activity) + @SuppressLint("NotifyDataSetChanged") override fun handleMessage(msg: Message) { super.handleMessage(msg) val activity = reference.get()!! - if (msg.what == 2022040101) { - if (activity.isRefresh || activity.isLoadMore) { -// activity.wellOperationAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) + when (msg.what) { + 2022040102 -> { + activity.isRefresh = true + activity.pageIndex = 1 + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + 2022040101 -> { + if (activity.isRefresh || activity.isLoadMore) { + activity.searchResultAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (activity.dataBeans.size == 0) { + activity.emptyView!!.showEmptyPage { + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + } else { + activity.emptyView!!.hide() + activity.searchResultAdapter = + SearchResultAdapter(activity, activity.dataBeans) + activity.resultRecyclerView!!.layoutManager = + LinearLayoutManager(activity) + activity.resultRecyclerView!!.adapter = activity.searchResultAdapter + activity.searchResultAdapter.setOnItemClickListener(object : + SearchResultAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show(activity) + return + } + if (activity.dataBeans[position].jobStatus == "0") { + activity.navigatePageTo( + TodoDetailActivity::class.java, + jobId + ) + } else { + activity.navigatePageTo( + DetermineDetailActivity::class.java, + jobId + ) + } + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(activity) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val jobId = + activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单ID异常,无法接单".show(activity) + return + } + activity.acceptOrderViewModel.acceptWorkOrder(id = jobId) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + override fun onTransferViewClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看工单流转记录".show(activity) + return + } + activity.workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId) + } + }) } - } else { - activity.emptyView!!.hide() } } } diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt index 45af48a..fc0596e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt @@ -51,7 +51,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -92,7 +92,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -100,7 +100,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt index 36075bd..1235bc6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt @@ -101,7 +101,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -170,7 +170,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -192,7 +192,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -281,12 +281,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt index 97e1f59..69529f3 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt @@ -114,7 +114,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -155,7 +155,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -163,7 +163,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -220,7 +220,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -242,7 +242,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -318,12 +318,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt index 8228673..fda9277 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt @@ -1,19 +1,27 @@ package com.casic.app.smartwell.view +import android.annotation.SuppressLint import android.os.Handler import android.os.Looper import android.os.Message import android.view.View import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R +import com.casic.app.smartwell.adapter.SearchResultAdapter import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.extensions.showEmptyPage import com.casic.app.smartwell.model.SearchResultModel import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.AcceptOrderViewModel import com.casic.app.smartwell.vm.SearchOrderViewModel +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import com.casic.app.smartwell.widgets.TimeLineBottomSheet +import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_order_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,7 +30,10 @@ class SearchResultActivity : BaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var searchOrderViewModel: SearchOrderViewModel + private lateinit var acceptOrderViewModel: AcceptOrderViewModel + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel private lateinit var args: ArrayList + private lateinit var searchResultAdapter: SearchResultAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -40,6 +51,8 @@ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! weakReferenceHandler = WeakReferenceHandler(this) searchOrderViewModel = ViewModelProvider(this).get(SearchOrderViewModel::class.java) + acceptOrderViewModel = ViewModelProvider(this).get(AcceptOrderViewModel::class.java) + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) } override fun initEvent() { @@ -90,6 +103,38 @@ pageIndex++ obtainSearchResult(args, pageIndex) } + + //接单状态处理 + acceptOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "接单中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "接单成功".show(this) + //通知列表刷行数据 + weakReferenceHandler.sendEmptyMessage(2022040102) + } + else -> { + DialogHelper.dismissLoadingDialog() + "接单失败".show(this) + } + } + }) + + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val orderDetail = it.data!![0] + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + TimeLineBottomSheet.Builder().setContext(this) + .setFlowItems(orderFlow).build().show() + } else { + "抱歉,无法查到该工单的流转记录".show(this) + } + } + }) } private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { @@ -108,19 +153,87 @@ Handler(Looper.getMainLooper()) { private val reference: WeakReference = WeakReference(activity) + @SuppressLint("NotifyDataSetChanged") override fun handleMessage(msg: Message) { super.handleMessage(msg) val activity = reference.get()!! - if (msg.what == 2022040101) { - if (activity.isRefresh || activity.isLoadMore) { -// activity.wellOperationAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) + when (msg.what) { + 2022040102 -> { + activity.isRefresh = true + activity.pageIndex = 1 + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + 2022040101 -> { + if (activity.isRefresh || activity.isLoadMore) { + activity.searchResultAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (activity.dataBeans.size == 0) { + activity.emptyView!!.showEmptyPage { + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + } else { + activity.emptyView!!.hide() + activity.searchResultAdapter = + SearchResultAdapter(activity, activity.dataBeans) + activity.resultRecyclerView!!.layoutManager = + LinearLayoutManager(activity) + activity.resultRecyclerView!!.adapter = activity.searchResultAdapter + activity.searchResultAdapter.setOnItemClickListener(object : + SearchResultAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show(activity) + return + } + if (activity.dataBeans[position].jobStatus == "0") { + activity.navigatePageTo( + TodoDetailActivity::class.java, + jobId + ) + } else { + activity.navigatePageTo( + DetermineDetailActivity::class.java, + jobId + ) + } + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(activity) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val jobId = + activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单ID异常,无法接单".show(activity) + return + } + activity.acceptOrderViewModel.acceptWorkOrder(id = jobId) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + override fun onTransferViewClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看工单流转记录".show(activity) + return + } + activity.workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId) + } + }) } - } else { - activity.emptyView!!.hide() } } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt index dc68caa..a7d1e3d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt @@ -188,15 +188,10 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { - val wellCode = wellCodeView.text.toString().trim() - if (wellCode.isBlank()) { - "请输入窨井编号".show(this) - return@setOnClickListener - } //页面跳转,将查询参数传过去 navigatePageTo( SearchResultActivity::class.java, addAll( - wellCode, + wellCodeView.text.toString().trim(), alarmContentType, alarmLevel, orderState, diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt index 45af48a..fc0596e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt @@ -51,7 +51,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -92,7 +92,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -100,7 +100,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt index 36075bd..1235bc6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt @@ -101,7 +101,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -170,7 +170,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -192,7 +192,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -281,12 +281,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt index 97e1f59..69529f3 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt @@ -114,7 +114,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -155,7 +155,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -163,7 +163,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -220,7 +220,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -242,7 +242,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -318,12 +318,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt index 8228673..fda9277 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt @@ -1,19 +1,27 @@ package com.casic.app.smartwell.view +import android.annotation.SuppressLint import android.os.Handler import android.os.Looper import android.os.Message import android.view.View import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R +import com.casic.app.smartwell.adapter.SearchResultAdapter import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.extensions.showEmptyPage import com.casic.app.smartwell.model.SearchResultModel import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.AcceptOrderViewModel import com.casic.app.smartwell.vm.SearchOrderViewModel +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import com.casic.app.smartwell.widgets.TimeLineBottomSheet +import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_order_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,7 +30,10 @@ class SearchResultActivity : BaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var searchOrderViewModel: SearchOrderViewModel + private lateinit var acceptOrderViewModel: AcceptOrderViewModel + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel private lateinit var args: ArrayList + private lateinit var searchResultAdapter: SearchResultAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -40,6 +51,8 @@ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! weakReferenceHandler = WeakReferenceHandler(this) searchOrderViewModel = ViewModelProvider(this).get(SearchOrderViewModel::class.java) + acceptOrderViewModel = ViewModelProvider(this).get(AcceptOrderViewModel::class.java) + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) } override fun initEvent() { @@ -90,6 +103,38 @@ pageIndex++ obtainSearchResult(args, pageIndex) } + + //接单状态处理 + acceptOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "接单中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "接单成功".show(this) + //通知列表刷行数据 + weakReferenceHandler.sendEmptyMessage(2022040102) + } + else -> { + DialogHelper.dismissLoadingDialog() + "接单失败".show(this) + } + } + }) + + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val orderDetail = it.data!![0] + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + TimeLineBottomSheet.Builder().setContext(this) + .setFlowItems(orderFlow).build().show() + } else { + "抱歉,无法查到该工单的流转记录".show(this) + } + } + }) } private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { @@ -108,19 +153,87 @@ Handler(Looper.getMainLooper()) { private val reference: WeakReference = WeakReference(activity) + @SuppressLint("NotifyDataSetChanged") override fun handleMessage(msg: Message) { super.handleMessage(msg) val activity = reference.get()!! - if (msg.what == 2022040101) { - if (activity.isRefresh || activity.isLoadMore) { -// activity.wellOperationAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) + when (msg.what) { + 2022040102 -> { + activity.isRefresh = true + activity.pageIndex = 1 + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + 2022040101 -> { + if (activity.isRefresh || activity.isLoadMore) { + activity.searchResultAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (activity.dataBeans.size == 0) { + activity.emptyView!!.showEmptyPage { + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + } else { + activity.emptyView!!.hide() + activity.searchResultAdapter = + SearchResultAdapter(activity, activity.dataBeans) + activity.resultRecyclerView!!.layoutManager = + LinearLayoutManager(activity) + activity.resultRecyclerView!!.adapter = activity.searchResultAdapter + activity.searchResultAdapter.setOnItemClickListener(object : + SearchResultAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show(activity) + return + } + if (activity.dataBeans[position].jobStatus == "0") { + activity.navigatePageTo( + TodoDetailActivity::class.java, + jobId + ) + } else { + activity.navigatePageTo( + DetermineDetailActivity::class.java, + jobId + ) + } + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(activity) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val jobId = + activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单ID异常,无法接单".show(activity) + return + } + activity.acceptOrderViewModel.acceptWorkOrder(id = jobId) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + override fun onTransferViewClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看工单流转记录".show(activity) + return + } + activity.workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId) + } + }) } - } else { - activity.emptyView!!.hide() } } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt index dc68caa..a7d1e3d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt @@ -188,15 +188,10 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { - val wellCode = wellCodeView.text.toString().trim() - if (wellCode.isBlank()) { - "请输入窨井编号".show(this) - return@setOnClickListener - } //页面跳转,将查询参数传过去 navigatePageTo( SearchResultActivity::class.java, addAll( - wellCode, + wellCodeView.text.toString().trim(), alarmContentType, alarmLevel, orderState, diff --git a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt index 50cb728..828ae17 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt @@ -58,7 +58,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -96,7 +96,7 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + if (orderDetail.jobId.toString().isBlank()) { "工单ID异常,无法接单".show(context) return } @@ -113,7 +113,7 @@ navigationButton.setChangeAlphaWhenPress(true) navigationButton.setOnClickListener { val wellId = orderDetail.wellId.toString() - if (wellId == "") { + if (wellId.isBlank()) { "窨井ID异常,无法导航".show(context) return@setOnClickListener } @@ -124,7 +124,7 @@ val wellDetail = well.data!! val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) } else { Poi( diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt index 45af48a..fc0596e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt @@ -51,7 +51,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -92,7 +92,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -100,7 +100,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt index 36075bd..1235bc6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt @@ -101,7 +101,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -170,7 +170,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -192,7 +192,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -281,12 +281,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt index 97e1f59..69529f3 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt @@ -114,7 +114,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -155,7 +155,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -163,7 +163,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -220,7 +220,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -242,7 +242,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -318,12 +318,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt index 8228673..fda9277 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt @@ -1,19 +1,27 @@ package com.casic.app.smartwell.view +import android.annotation.SuppressLint import android.os.Handler import android.os.Looper import android.os.Message import android.view.View import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R +import com.casic.app.smartwell.adapter.SearchResultAdapter import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.extensions.showEmptyPage import com.casic.app.smartwell.model.SearchResultModel import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.AcceptOrderViewModel import com.casic.app.smartwell.vm.SearchOrderViewModel +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import com.casic.app.smartwell.widgets.TimeLineBottomSheet +import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_order_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,7 +30,10 @@ class SearchResultActivity : BaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var searchOrderViewModel: SearchOrderViewModel + private lateinit var acceptOrderViewModel: AcceptOrderViewModel + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel private lateinit var args: ArrayList + private lateinit var searchResultAdapter: SearchResultAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -40,6 +51,8 @@ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! weakReferenceHandler = WeakReferenceHandler(this) searchOrderViewModel = ViewModelProvider(this).get(SearchOrderViewModel::class.java) + acceptOrderViewModel = ViewModelProvider(this).get(AcceptOrderViewModel::class.java) + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) } override fun initEvent() { @@ -90,6 +103,38 @@ pageIndex++ obtainSearchResult(args, pageIndex) } + + //接单状态处理 + acceptOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "接单中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "接单成功".show(this) + //通知列表刷行数据 + weakReferenceHandler.sendEmptyMessage(2022040102) + } + else -> { + DialogHelper.dismissLoadingDialog() + "接单失败".show(this) + } + } + }) + + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val orderDetail = it.data!![0] + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + TimeLineBottomSheet.Builder().setContext(this) + .setFlowItems(orderFlow).build().show() + } else { + "抱歉,无法查到该工单的流转记录".show(this) + } + } + }) } private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { @@ -108,19 +153,87 @@ Handler(Looper.getMainLooper()) { private val reference: WeakReference = WeakReference(activity) + @SuppressLint("NotifyDataSetChanged") override fun handleMessage(msg: Message) { super.handleMessage(msg) val activity = reference.get()!! - if (msg.what == 2022040101) { - if (activity.isRefresh || activity.isLoadMore) { -// activity.wellOperationAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) + when (msg.what) { + 2022040102 -> { + activity.isRefresh = true + activity.pageIndex = 1 + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + 2022040101 -> { + if (activity.isRefresh || activity.isLoadMore) { + activity.searchResultAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (activity.dataBeans.size == 0) { + activity.emptyView!!.showEmptyPage { + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + } else { + activity.emptyView!!.hide() + activity.searchResultAdapter = + SearchResultAdapter(activity, activity.dataBeans) + activity.resultRecyclerView!!.layoutManager = + LinearLayoutManager(activity) + activity.resultRecyclerView!!.adapter = activity.searchResultAdapter + activity.searchResultAdapter.setOnItemClickListener(object : + SearchResultAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show(activity) + return + } + if (activity.dataBeans[position].jobStatus == "0") { + activity.navigatePageTo( + TodoDetailActivity::class.java, + jobId + ) + } else { + activity.navigatePageTo( + DetermineDetailActivity::class.java, + jobId + ) + } + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(activity) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val jobId = + activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单ID异常,无法接单".show(activity) + return + } + activity.acceptOrderViewModel.acceptWorkOrder(id = jobId) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + override fun onTransferViewClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看工单流转记录".show(activity) + return + } + activity.workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId) + } + }) } - } else { - activity.emptyView!!.hide() } } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt index dc68caa..a7d1e3d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt @@ -188,15 +188,10 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { - val wellCode = wellCodeView.text.toString().trim() - if (wellCode.isBlank()) { - "请输入窨井编号".show(this) - return@setOnClickListener - } //页面跳转,将查询参数传过去 navigatePageTo( SearchResultActivity::class.java, addAll( - wellCode, + wellCodeView.text.toString().trim(), alarmContentType, alarmLevel, orderState, diff --git a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt index 50cb728..828ae17 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt @@ -58,7 +58,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -96,7 +96,7 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + if (orderDetail.jobId.toString().isBlank()) { "工单ID异常,无法接单".show(context) return } @@ -113,7 +113,7 @@ navigationButton.setChangeAlphaWhenPress(true) navigationButton.setOnClickListener { val wellId = orderDetail.wellId.toString() - if (wellId == "") { + if (wellId.isBlank()) { "窨井ID异常,无法导航".show(context) return@setOnClickListener } @@ -124,7 +124,7 @@ val wellDetail = well.data!! val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) } else { Poi( diff --git a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt index c944cd1..8a19ea8 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt @@ -34,7 +34,7 @@ override fun initData() { val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { + if (userDetailJson.isNotBlank()) { userDataModel = gson.fromJson( userDetailJson, object : TypeToken() {}.type diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt index 45af48a..fc0596e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt @@ -51,7 +51,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -92,7 +92,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -100,7 +100,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt index 36075bd..1235bc6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt @@ -101,7 +101,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -170,7 +170,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -192,7 +192,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -281,12 +281,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt index 97e1f59..69529f3 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt @@ -114,7 +114,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -155,7 +155,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -163,7 +163,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -220,7 +220,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -242,7 +242,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -318,12 +318,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt index 8228673..fda9277 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt @@ -1,19 +1,27 @@ package com.casic.app.smartwell.view +import android.annotation.SuppressLint import android.os.Handler import android.os.Looper import android.os.Message import android.view.View import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R +import com.casic.app.smartwell.adapter.SearchResultAdapter import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.extensions.showEmptyPage import com.casic.app.smartwell.model.SearchResultModel import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.AcceptOrderViewModel import com.casic.app.smartwell.vm.SearchOrderViewModel +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import com.casic.app.smartwell.widgets.TimeLineBottomSheet +import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_order_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,7 +30,10 @@ class SearchResultActivity : BaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var searchOrderViewModel: SearchOrderViewModel + private lateinit var acceptOrderViewModel: AcceptOrderViewModel + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel private lateinit var args: ArrayList + private lateinit var searchResultAdapter: SearchResultAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -40,6 +51,8 @@ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! weakReferenceHandler = WeakReferenceHandler(this) searchOrderViewModel = ViewModelProvider(this).get(SearchOrderViewModel::class.java) + acceptOrderViewModel = ViewModelProvider(this).get(AcceptOrderViewModel::class.java) + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) } override fun initEvent() { @@ -90,6 +103,38 @@ pageIndex++ obtainSearchResult(args, pageIndex) } + + //接单状态处理 + acceptOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "接单中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "接单成功".show(this) + //通知列表刷行数据 + weakReferenceHandler.sendEmptyMessage(2022040102) + } + else -> { + DialogHelper.dismissLoadingDialog() + "接单失败".show(this) + } + } + }) + + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val orderDetail = it.data!![0] + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + TimeLineBottomSheet.Builder().setContext(this) + .setFlowItems(orderFlow).build().show() + } else { + "抱歉,无法查到该工单的流转记录".show(this) + } + } + }) } private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { @@ -108,19 +153,87 @@ Handler(Looper.getMainLooper()) { private val reference: WeakReference = WeakReference(activity) + @SuppressLint("NotifyDataSetChanged") override fun handleMessage(msg: Message) { super.handleMessage(msg) val activity = reference.get()!! - if (msg.what == 2022040101) { - if (activity.isRefresh || activity.isLoadMore) { -// activity.wellOperationAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) + when (msg.what) { + 2022040102 -> { + activity.isRefresh = true + activity.pageIndex = 1 + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + 2022040101 -> { + if (activity.isRefresh || activity.isLoadMore) { + activity.searchResultAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (activity.dataBeans.size == 0) { + activity.emptyView!!.showEmptyPage { + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + } else { + activity.emptyView!!.hide() + activity.searchResultAdapter = + SearchResultAdapter(activity, activity.dataBeans) + activity.resultRecyclerView!!.layoutManager = + LinearLayoutManager(activity) + activity.resultRecyclerView!!.adapter = activity.searchResultAdapter + activity.searchResultAdapter.setOnItemClickListener(object : + SearchResultAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show(activity) + return + } + if (activity.dataBeans[position].jobStatus == "0") { + activity.navigatePageTo( + TodoDetailActivity::class.java, + jobId + ) + } else { + activity.navigatePageTo( + DetermineDetailActivity::class.java, + jobId + ) + } + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(activity) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val jobId = + activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单ID异常,无法接单".show(activity) + return + } + activity.acceptOrderViewModel.acceptWorkOrder(id = jobId) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + override fun onTransferViewClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看工单流转记录".show(activity) + return + } + activity.workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId) + } + }) } - } else { - activity.emptyView!!.hide() } } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt index dc68caa..a7d1e3d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt @@ -188,15 +188,10 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { - val wellCode = wellCodeView.text.toString().trim() - if (wellCode.isBlank()) { - "请输入窨井编号".show(this) - return@setOnClickListener - } //页面跳转,将查询参数传过去 navigatePageTo( SearchResultActivity::class.java, addAll( - wellCode, + wellCodeView.text.toString().trim(), alarmContentType, alarmLevel, orderState, diff --git a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt index 50cb728..828ae17 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt @@ -58,7 +58,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -96,7 +96,7 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + if (orderDetail.jobId.toString().isBlank()) { "工单ID异常,无法接单".show(context) return } @@ -113,7 +113,7 @@ navigationButton.setChangeAlphaWhenPress(true) navigationButton.setOnClickListener { val wellId = orderDetail.wellId.toString() - if (wellId == "") { + if (wellId.isBlank()) { "窨井ID异常,无法导航".show(context) return@setOnClickListener } @@ -124,7 +124,7 @@ val wellDetail = well.data!! val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) } else { Poi( diff --git a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt index c944cd1..8a19ea8 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt @@ -34,7 +34,7 @@ override fun initData() { val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { + if (userDetailJson.isNotBlank()) { userDataModel = gson.fromJson( userDetailJson, object : TypeToken() {}.type diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt index cc1642e..bca3b97 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt @@ -56,7 +56,7 @@ wellTypeView.text = wellDetail.wellTypeName wellStateView.text = wellDetail.bfztName val depth = wellDetail.deep.toString() - if (depth == "") { + if (depth.isBlank()) { wellDepthView.text = resources.getString(R.string.unknown) } else { wellDepthView.text = depth @@ -79,7 +79,7 @@ } //绑定窨井图片 - if (wellDetail.photos == "") { + if (wellDetail.photos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -87,7 +87,7 @@ val urls: ArrayList = ArrayList() val imageArray = wellDetail.photos.toString().split(";") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -110,7 +110,7 @@ navigationButton.setOnClickListener { val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) return@setOnClickListener } diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt index 45af48a..fc0596e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt @@ -51,7 +51,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -92,7 +92,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -100,7 +100,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt index 36075bd..1235bc6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt @@ -101,7 +101,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -170,7 +170,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -192,7 +192,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -281,12 +281,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt index 97e1f59..69529f3 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt @@ -114,7 +114,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -155,7 +155,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -163,7 +163,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -220,7 +220,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -242,7 +242,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -318,12 +318,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt index 8228673..fda9277 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt @@ -1,19 +1,27 @@ package com.casic.app.smartwell.view +import android.annotation.SuppressLint import android.os.Handler import android.os.Looper import android.os.Message import android.view.View import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R +import com.casic.app.smartwell.adapter.SearchResultAdapter import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.extensions.showEmptyPage import com.casic.app.smartwell.model.SearchResultModel import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.AcceptOrderViewModel import com.casic.app.smartwell.vm.SearchOrderViewModel +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import com.casic.app.smartwell.widgets.TimeLineBottomSheet +import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_order_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,7 +30,10 @@ class SearchResultActivity : BaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var searchOrderViewModel: SearchOrderViewModel + private lateinit var acceptOrderViewModel: AcceptOrderViewModel + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel private lateinit var args: ArrayList + private lateinit var searchResultAdapter: SearchResultAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -40,6 +51,8 @@ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! weakReferenceHandler = WeakReferenceHandler(this) searchOrderViewModel = ViewModelProvider(this).get(SearchOrderViewModel::class.java) + acceptOrderViewModel = ViewModelProvider(this).get(AcceptOrderViewModel::class.java) + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) } override fun initEvent() { @@ -90,6 +103,38 @@ pageIndex++ obtainSearchResult(args, pageIndex) } + + //接单状态处理 + acceptOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "接单中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "接单成功".show(this) + //通知列表刷行数据 + weakReferenceHandler.sendEmptyMessage(2022040102) + } + else -> { + DialogHelper.dismissLoadingDialog() + "接单失败".show(this) + } + } + }) + + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val orderDetail = it.data!![0] + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + TimeLineBottomSheet.Builder().setContext(this) + .setFlowItems(orderFlow).build().show() + } else { + "抱歉,无法查到该工单的流转记录".show(this) + } + } + }) } private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { @@ -108,19 +153,87 @@ Handler(Looper.getMainLooper()) { private val reference: WeakReference = WeakReference(activity) + @SuppressLint("NotifyDataSetChanged") override fun handleMessage(msg: Message) { super.handleMessage(msg) val activity = reference.get()!! - if (msg.what == 2022040101) { - if (activity.isRefresh || activity.isLoadMore) { -// activity.wellOperationAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) + when (msg.what) { + 2022040102 -> { + activity.isRefresh = true + activity.pageIndex = 1 + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + 2022040101 -> { + if (activity.isRefresh || activity.isLoadMore) { + activity.searchResultAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (activity.dataBeans.size == 0) { + activity.emptyView!!.showEmptyPage { + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + } else { + activity.emptyView!!.hide() + activity.searchResultAdapter = + SearchResultAdapter(activity, activity.dataBeans) + activity.resultRecyclerView!!.layoutManager = + LinearLayoutManager(activity) + activity.resultRecyclerView!!.adapter = activity.searchResultAdapter + activity.searchResultAdapter.setOnItemClickListener(object : + SearchResultAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show(activity) + return + } + if (activity.dataBeans[position].jobStatus == "0") { + activity.navigatePageTo( + TodoDetailActivity::class.java, + jobId + ) + } else { + activity.navigatePageTo( + DetermineDetailActivity::class.java, + jobId + ) + } + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(activity) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val jobId = + activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单ID异常,无法接单".show(activity) + return + } + activity.acceptOrderViewModel.acceptWorkOrder(id = jobId) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + override fun onTransferViewClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看工单流转记录".show(activity) + return + } + activity.workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId) + } + }) } - } else { - activity.emptyView!!.hide() } } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt index dc68caa..a7d1e3d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt @@ -188,15 +188,10 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { - val wellCode = wellCodeView.text.toString().trim() - if (wellCode.isBlank()) { - "请输入窨井编号".show(this) - return@setOnClickListener - } //页面跳转,将查询参数传过去 navigatePageTo( SearchResultActivity::class.java, addAll( - wellCode, + wellCodeView.text.toString().trim(), alarmContentType, alarmLevel, orderState, diff --git a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt index 50cb728..828ae17 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt @@ -58,7 +58,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -96,7 +96,7 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + if (orderDetail.jobId.toString().isBlank()) { "工单ID异常,无法接单".show(context) return } @@ -113,7 +113,7 @@ navigationButton.setChangeAlphaWhenPress(true) navigationButton.setOnClickListener { val wellId = orderDetail.wellId.toString() - if (wellId == "") { + if (wellId.isBlank()) { "窨井ID异常,无法导航".show(context) return@setOnClickListener } @@ -124,7 +124,7 @@ val wellDetail = well.data!! val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) } else { Poi( diff --git a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt index c944cd1..8a19ea8 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt @@ -34,7 +34,7 @@ override fun initData() { val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { + if (userDetailJson.isNotBlank()) { userDataModel = gson.fromJson( userDetailJson, object : TypeToken() {}.type diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt index cc1642e..bca3b97 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt @@ -56,7 +56,7 @@ wellTypeView.text = wellDetail.wellTypeName wellStateView.text = wellDetail.bfztName val depth = wellDetail.deep.toString() - if (depth == "") { + if (depth.isBlank()) { wellDepthView.text = resources.getString(R.string.unknown) } else { wellDepthView.text = depth @@ -79,7 +79,7 @@ } //绑定窨井图片 - if (wellDetail.photos == "") { + if (wellDetail.photos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -87,7 +87,7 @@ val urls: ArrayList = ArrayList() val imageArray = wellDetail.photos.toString().split(";") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -110,7 +110,7 @@ navigationButton.setOnClickListener { val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) return@setOnClickListener } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt index e0cc32f..b8f589c 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt @@ -186,7 +186,7 @@ WellListAdapter.OnItemClickListener { override fun onClicked(position: Int) { val wellId = activity.dataBeans[position].id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -197,7 +197,7 @@ val wellDetail = activity.dataBeans[position] val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(activity) return } diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt index 45af48a..fc0596e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt @@ -51,7 +51,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -92,7 +92,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -100,7 +100,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt index 36075bd..1235bc6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt @@ -101,7 +101,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -170,7 +170,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -192,7 +192,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -281,12 +281,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt index 97e1f59..69529f3 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt @@ -114,7 +114,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -155,7 +155,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -163,7 +163,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -220,7 +220,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -242,7 +242,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -318,12 +318,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt index 8228673..fda9277 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt @@ -1,19 +1,27 @@ package com.casic.app.smartwell.view +import android.annotation.SuppressLint import android.os.Handler import android.os.Looper import android.os.Message import android.view.View import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R +import com.casic.app.smartwell.adapter.SearchResultAdapter import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.extensions.showEmptyPage import com.casic.app.smartwell.model.SearchResultModel import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.AcceptOrderViewModel import com.casic.app.smartwell.vm.SearchOrderViewModel +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import com.casic.app.smartwell.widgets.TimeLineBottomSheet +import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_order_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,7 +30,10 @@ class SearchResultActivity : BaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var searchOrderViewModel: SearchOrderViewModel + private lateinit var acceptOrderViewModel: AcceptOrderViewModel + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel private lateinit var args: ArrayList + private lateinit var searchResultAdapter: SearchResultAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -40,6 +51,8 @@ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! weakReferenceHandler = WeakReferenceHandler(this) searchOrderViewModel = ViewModelProvider(this).get(SearchOrderViewModel::class.java) + acceptOrderViewModel = ViewModelProvider(this).get(AcceptOrderViewModel::class.java) + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) } override fun initEvent() { @@ -90,6 +103,38 @@ pageIndex++ obtainSearchResult(args, pageIndex) } + + //接单状态处理 + acceptOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "接单中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "接单成功".show(this) + //通知列表刷行数据 + weakReferenceHandler.sendEmptyMessage(2022040102) + } + else -> { + DialogHelper.dismissLoadingDialog() + "接单失败".show(this) + } + } + }) + + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val orderDetail = it.data!![0] + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + TimeLineBottomSheet.Builder().setContext(this) + .setFlowItems(orderFlow).build().show() + } else { + "抱歉,无法查到该工单的流转记录".show(this) + } + } + }) } private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { @@ -108,19 +153,87 @@ Handler(Looper.getMainLooper()) { private val reference: WeakReference = WeakReference(activity) + @SuppressLint("NotifyDataSetChanged") override fun handleMessage(msg: Message) { super.handleMessage(msg) val activity = reference.get()!! - if (msg.what == 2022040101) { - if (activity.isRefresh || activity.isLoadMore) { -// activity.wellOperationAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) + when (msg.what) { + 2022040102 -> { + activity.isRefresh = true + activity.pageIndex = 1 + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + 2022040101 -> { + if (activity.isRefresh || activity.isLoadMore) { + activity.searchResultAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (activity.dataBeans.size == 0) { + activity.emptyView!!.showEmptyPage { + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + } else { + activity.emptyView!!.hide() + activity.searchResultAdapter = + SearchResultAdapter(activity, activity.dataBeans) + activity.resultRecyclerView!!.layoutManager = + LinearLayoutManager(activity) + activity.resultRecyclerView!!.adapter = activity.searchResultAdapter + activity.searchResultAdapter.setOnItemClickListener(object : + SearchResultAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show(activity) + return + } + if (activity.dataBeans[position].jobStatus == "0") { + activity.navigatePageTo( + TodoDetailActivity::class.java, + jobId + ) + } else { + activity.navigatePageTo( + DetermineDetailActivity::class.java, + jobId + ) + } + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(activity) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val jobId = + activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单ID异常,无法接单".show(activity) + return + } + activity.acceptOrderViewModel.acceptWorkOrder(id = jobId) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + override fun onTransferViewClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看工单流转记录".show(activity) + return + } + activity.workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId) + } + }) } - } else { - activity.emptyView!!.hide() } } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt index dc68caa..a7d1e3d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt @@ -188,15 +188,10 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { - val wellCode = wellCodeView.text.toString().trim() - if (wellCode.isBlank()) { - "请输入窨井编号".show(this) - return@setOnClickListener - } //页面跳转,将查询参数传过去 navigatePageTo( SearchResultActivity::class.java, addAll( - wellCode, + wellCodeView.text.toString().trim(), alarmContentType, alarmLevel, orderState, diff --git a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt index 50cb728..828ae17 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt @@ -58,7 +58,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -96,7 +96,7 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + if (orderDetail.jobId.toString().isBlank()) { "工单ID异常,无法接单".show(context) return } @@ -113,7 +113,7 @@ navigationButton.setChangeAlphaWhenPress(true) navigationButton.setOnClickListener { val wellId = orderDetail.wellId.toString() - if (wellId == "") { + if (wellId.isBlank()) { "窨井ID异常,无法导航".show(context) return@setOnClickListener } @@ -124,7 +124,7 @@ val wellDetail = well.data!! val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) } else { Poi( diff --git a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt index c944cd1..8a19ea8 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt @@ -34,7 +34,7 @@ override fun initData() { val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { + if (userDetailJson.isNotBlank()) { userDataModel = gson.fromJson( userDetailJson, object : TypeToken() {}.type diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt index cc1642e..bca3b97 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt @@ -56,7 +56,7 @@ wellTypeView.text = wellDetail.wellTypeName wellStateView.text = wellDetail.bfztName val depth = wellDetail.deep.toString() - if (depth == "") { + if (depth.isBlank()) { wellDepthView.text = resources.getString(R.string.unknown) } else { wellDepthView.text = depth @@ -79,7 +79,7 @@ } //绑定窨井图片 - if (wellDetail.photos == "") { + if (wellDetail.photos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -87,7 +87,7 @@ val urls: ArrayList = ArrayList() val imageArray = wellDetail.photos.toString().split(";") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -110,7 +110,7 @@ navigationButton.setOnClickListener { val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) return@setOnClickListener } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt index e0cc32f..b8f589c 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt @@ -186,7 +186,7 @@ WellListAdapter.OnItemClickListener { override fun onClicked(position: Int) { val wellId = activity.dataBeans[position].id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -197,7 +197,7 @@ val wellDetail = activity.dataBeans[position] val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(activity) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt index 0121426..0a4b8ad 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt @@ -223,7 +223,7 @@ WellOperationAdapter.OnItemClickListener { override fun onClicked(position: Int) { val wellId = activity.dataBeans[position].id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -236,7 +236,7 @@ val detailModel = activity.dataBeans[position] val wellId = detailModel.id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -274,7 +274,7 @@ val wellDetail = activity.dataBeans[position] val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(activity) return } diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt index 45af48a..fc0596e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt @@ -51,7 +51,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -92,7 +92,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -100,7 +100,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt index 36075bd..1235bc6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt @@ -101,7 +101,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -170,7 +170,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -192,7 +192,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -281,12 +281,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt index 97e1f59..69529f3 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt @@ -114,7 +114,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -155,7 +155,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -163,7 +163,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -220,7 +220,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -242,7 +242,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -318,12 +318,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt index 8228673..fda9277 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt @@ -1,19 +1,27 @@ package com.casic.app.smartwell.view +import android.annotation.SuppressLint import android.os.Handler import android.os.Looper import android.os.Message import android.view.View import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R +import com.casic.app.smartwell.adapter.SearchResultAdapter import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.extensions.showEmptyPage import com.casic.app.smartwell.model.SearchResultModel import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.AcceptOrderViewModel import com.casic.app.smartwell.vm.SearchOrderViewModel +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import com.casic.app.smartwell.widgets.TimeLineBottomSheet +import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_order_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,7 +30,10 @@ class SearchResultActivity : BaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var searchOrderViewModel: SearchOrderViewModel + private lateinit var acceptOrderViewModel: AcceptOrderViewModel + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel private lateinit var args: ArrayList + private lateinit var searchResultAdapter: SearchResultAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -40,6 +51,8 @@ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! weakReferenceHandler = WeakReferenceHandler(this) searchOrderViewModel = ViewModelProvider(this).get(SearchOrderViewModel::class.java) + acceptOrderViewModel = ViewModelProvider(this).get(AcceptOrderViewModel::class.java) + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) } override fun initEvent() { @@ -90,6 +103,38 @@ pageIndex++ obtainSearchResult(args, pageIndex) } + + //接单状态处理 + acceptOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "接单中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "接单成功".show(this) + //通知列表刷行数据 + weakReferenceHandler.sendEmptyMessage(2022040102) + } + else -> { + DialogHelper.dismissLoadingDialog() + "接单失败".show(this) + } + } + }) + + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val orderDetail = it.data!![0] + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + TimeLineBottomSheet.Builder().setContext(this) + .setFlowItems(orderFlow).build().show() + } else { + "抱歉,无法查到该工单的流转记录".show(this) + } + } + }) } private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { @@ -108,19 +153,87 @@ Handler(Looper.getMainLooper()) { private val reference: WeakReference = WeakReference(activity) + @SuppressLint("NotifyDataSetChanged") override fun handleMessage(msg: Message) { super.handleMessage(msg) val activity = reference.get()!! - if (msg.what == 2022040101) { - if (activity.isRefresh || activity.isLoadMore) { -// activity.wellOperationAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) + when (msg.what) { + 2022040102 -> { + activity.isRefresh = true + activity.pageIndex = 1 + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + 2022040101 -> { + if (activity.isRefresh || activity.isLoadMore) { + activity.searchResultAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (activity.dataBeans.size == 0) { + activity.emptyView!!.showEmptyPage { + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + } else { + activity.emptyView!!.hide() + activity.searchResultAdapter = + SearchResultAdapter(activity, activity.dataBeans) + activity.resultRecyclerView!!.layoutManager = + LinearLayoutManager(activity) + activity.resultRecyclerView!!.adapter = activity.searchResultAdapter + activity.searchResultAdapter.setOnItemClickListener(object : + SearchResultAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show(activity) + return + } + if (activity.dataBeans[position].jobStatus == "0") { + activity.navigatePageTo( + TodoDetailActivity::class.java, + jobId + ) + } else { + activity.navigatePageTo( + DetermineDetailActivity::class.java, + jobId + ) + } + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(activity) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val jobId = + activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单ID异常,无法接单".show(activity) + return + } + activity.acceptOrderViewModel.acceptWorkOrder(id = jobId) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + override fun onTransferViewClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看工单流转记录".show(activity) + return + } + activity.workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId) + } + }) } - } else { - activity.emptyView!!.hide() } } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt index dc68caa..a7d1e3d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt @@ -188,15 +188,10 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { - val wellCode = wellCodeView.text.toString().trim() - if (wellCode.isBlank()) { - "请输入窨井编号".show(this) - return@setOnClickListener - } //页面跳转,将查询参数传过去 navigatePageTo( SearchResultActivity::class.java, addAll( - wellCode, + wellCodeView.text.toString().trim(), alarmContentType, alarmLevel, orderState, diff --git a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt index 50cb728..828ae17 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt @@ -58,7 +58,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -96,7 +96,7 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + if (orderDetail.jobId.toString().isBlank()) { "工单ID异常,无法接单".show(context) return } @@ -113,7 +113,7 @@ navigationButton.setChangeAlphaWhenPress(true) navigationButton.setOnClickListener { val wellId = orderDetail.wellId.toString() - if (wellId == "") { + if (wellId.isBlank()) { "窨井ID异常,无法导航".show(context) return@setOnClickListener } @@ -124,7 +124,7 @@ val wellDetail = well.data!! val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) } else { Poi( diff --git a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt index c944cd1..8a19ea8 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt @@ -34,7 +34,7 @@ override fun initData() { val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { + if (userDetailJson.isNotBlank()) { userDataModel = gson.fromJson( userDetailJson, object : TypeToken() {}.type diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt index cc1642e..bca3b97 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt @@ -56,7 +56,7 @@ wellTypeView.text = wellDetail.wellTypeName wellStateView.text = wellDetail.bfztName val depth = wellDetail.deep.toString() - if (depth == "") { + if (depth.isBlank()) { wellDepthView.text = resources.getString(R.string.unknown) } else { wellDepthView.text = depth @@ -79,7 +79,7 @@ } //绑定窨井图片 - if (wellDetail.photos == "") { + if (wellDetail.photos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -87,7 +87,7 @@ val urls: ArrayList = ArrayList() val imageArray = wellDetail.photos.toString().split(";") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -110,7 +110,7 @@ navigationButton.setOnClickListener { val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) return@setOnClickListener } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt index e0cc32f..b8f589c 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt @@ -186,7 +186,7 @@ WellListAdapter.OnItemClickListener { override fun onClicked(position: Int) { val wellId = activity.dataBeans[position].id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -197,7 +197,7 @@ val wellDetail = activity.dataBeans[position] val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(activity) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt index 0121426..0a4b8ad 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt @@ -223,7 +223,7 @@ WellOperationAdapter.OnItemClickListener { override fun onClicked(position: Int) { val wellId = activity.dataBeans[position].id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -236,7 +236,7 @@ val detailModel = activity.dataBeans[position] val wellId = detailModel.id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -274,7 +274,7 @@ val wellDetail = activity.dataBeans[position] val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(activity) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt index d7d8269..2ea01e7 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt @@ -144,7 +144,7 @@ CompletedOrderAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看详情".show(fragment.requireContext()) return } @@ -155,7 +155,7 @@ override fun onTransferViewClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看工单流转记录".show(fragment.requireContext()) return } diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt index 45af48a..fc0596e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt @@ -51,7 +51,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -92,7 +92,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -100,7 +100,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt index 36075bd..1235bc6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt @@ -101,7 +101,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -170,7 +170,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -192,7 +192,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -281,12 +281,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt index 97e1f59..69529f3 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt @@ -114,7 +114,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -155,7 +155,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -163,7 +163,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -220,7 +220,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -242,7 +242,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -318,12 +318,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt index 8228673..fda9277 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt @@ -1,19 +1,27 @@ package com.casic.app.smartwell.view +import android.annotation.SuppressLint import android.os.Handler import android.os.Looper import android.os.Message import android.view.View import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R +import com.casic.app.smartwell.adapter.SearchResultAdapter import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.extensions.showEmptyPage import com.casic.app.smartwell.model.SearchResultModel import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.AcceptOrderViewModel import com.casic.app.smartwell.vm.SearchOrderViewModel +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import com.casic.app.smartwell.widgets.TimeLineBottomSheet +import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_order_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,7 +30,10 @@ class SearchResultActivity : BaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var searchOrderViewModel: SearchOrderViewModel + private lateinit var acceptOrderViewModel: AcceptOrderViewModel + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel private lateinit var args: ArrayList + private lateinit var searchResultAdapter: SearchResultAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -40,6 +51,8 @@ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! weakReferenceHandler = WeakReferenceHandler(this) searchOrderViewModel = ViewModelProvider(this).get(SearchOrderViewModel::class.java) + acceptOrderViewModel = ViewModelProvider(this).get(AcceptOrderViewModel::class.java) + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) } override fun initEvent() { @@ -90,6 +103,38 @@ pageIndex++ obtainSearchResult(args, pageIndex) } + + //接单状态处理 + acceptOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "接单中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "接单成功".show(this) + //通知列表刷行数据 + weakReferenceHandler.sendEmptyMessage(2022040102) + } + else -> { + DialogHelper.dismissLoadingDialog() + "接单失败".show(this) + } + } + }) + + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val orderDetail = it.data!![0] + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + TimeLineBottomSheet.Builder().setContext(this) + .setFlowItems(orderFlow).build().show() + } else { + "抱歉,无法查到该工单的流转记录".show(this) + } + } + }) } private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { @@ -108,19 +153,87 @@ Handler(Looper.getMainLooper()) { private val reference: WeakReference = WeakReference(activity) + @SuppressLint("NotifyDataSetChanged") override fun handleMessage(msg: Message) { super.handleMessage(msg) val activity = reference.get()!! - if (msg.what == 2022040101) { - if (activity.isRefresh || activity.isLoadMore) { -// activity.wellOperationAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) + when (msg.what) { + 2022040102 -> { + activity.isRefresh = true + activity.pageIndex = 1 + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + 2022040101 -> { + if (activity.isRefresh || activity.isLoadMore) { + activity.searchResultAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (activity.dataBeans.size == 0) { + activity.emptyView!!.showEmptyPage { + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + } else { + activity.emptyView!!.hide() + activity.searchResultAdapter = + SearchResultAdapter(activity, activity.dataBeans) + activity.resultRecyclerView!!.layoutManager = + LinearLayoutManager(activity) + activity.resultRecyclerView!!.adapter = activity.searchResultAdapter + activity.searchResultAdapter.setOnItemClickListener(object : + SearchResultAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show(activity) + return + } + if (activity.dataBeans[position].jobStatus == "0") { + activity.navigatePageTo( + TodoDetailActivity::class.java, + jobId + ) + } else { + activity.navigatePageTo( + DetermineDetailActivity::class.java, + jobId + ) + } + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(activity) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val jobId = + activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单ID异常,无法接单".show(activity) + return + } + activity.acceptOrderViewModel.acceptWorkOrder(id = jobId) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + override fun onTransferViewClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看工单流转记录".show(activity) + return + } + activity.workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId) + } + }) } - } else { - activity.emptyView!!.hide() } } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt index dc68caa..a7d1e3d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt @@ -188,15 +188,10 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { - val wellCode = wellCodeView.text.toString().trim() - if (wellCode.isBlank()) { - "请输入窨井编号".show(this) - return@setOnClickListener - } //页面跳转,将查询参数传过去 navigatePageTo( SearchResultActivity::class.java, addAll( - wellCode, + wellCodeView.text.toString().trim(), alarmContentType, alarmLevel, orderState, diff --git a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt index 50cb728..828ae17 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt @@ -58,7 +58,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -96,7 +96,7 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + if (orderDetail.jobId.toString().isBlank()) { "工单ID异常,无法接单".show(context) return } @@ -113,7 +113,7 @@ navigationButton.setChangeAlphaWhenPress(true) navigationButton.setOnClickListener { val wellId = orderDetail.wellId.toString() - if (wellId == "") { + if (wellId.isBlank()) { "窨井ID异常,无法导航".show(context) return@setOnClickListener } @@ -124,7 +124,7 @@ val wellDetail = well.data!! val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) } else { Poi( diff --git a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt index c944cd1..8a19ea8 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt @@ -34,7 +34,7 @@ override fun initData() { val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { + if (userDetailJson.isNotBlank()) { userDataModel = gson.fromJson( userDetailJson, object : TypeToken() {}.type diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt index cc1642e..bca3b97 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt @@ -56,7 +56,7 @@ wellTypeView.text = wellDetail.wellTypeName wellStateView.text = wellDetail.bfztName val depth = wellDetail.deep.toString() - if (depth == "") { + if (depth.isBlank()) { wellDepthView.text = resources.getString(R.string.unknown) } else { wellDepthView.text = depth @@ -79,7 +79,7 @@ } //绑定窨井图片 - if (wellDetail.photos == "") { + if (wellDetail.photos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -87,7 +87,7 @@ val urls: ArrayList = ArrayList() val imageArray = wellDetail.photos.toString().split(";") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -110,7 +110,7 @@ navigationButton.setOnClickListener { val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) return@setOnClickListener } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt index e0cc32f..b8f589c 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt @@ -186,7 +186,7 @@ WellListAdapter.OnItemClickListener { override fun onClicked(position: Int) { val wellId = activity.dataBeans[position].id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -197,7 +197,7 @@ val wellDetail = activity.dataBeans[position] val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(activity) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt index 0121426..0a4b8ad 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt @@ -223,7 +223,7 @@ WellOperationAdapter.OnItemClickListener { override fun onClicked(position: Int) { val wellId = activity.dataBeans[position].id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -236,7 +236,7 @@ val detailModel = activity.dataBeans[position] val wellId = detailModel.id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -274,7 +274,7 @@ val wellDetail = activity.dataBeans[position] val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(activity) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt index d7d8269..2ea01e7 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt @@ -144,7 +144,7 @@ CompletedOrderAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看详情".show(fragment.requireContext()) return } @@ -155,7 +155,7 @@ override fun onTransferViewClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看工单流转记录".show(fragment.requireContext()) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt index cafc40f..bcc747f 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt @@ -144,7 +144,7 @@ InHandleOrderAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看详情".show(fragment.requireContext()) return } @@ -155,7 +155,7 @@ override fun onTransferViewClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看工单流转记录".show(fragment.requireContext()) return } diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt index 45af48a..fc0596e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt @@ -51,7 +51,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -92,7 +92,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -100,7 +100,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt index 36075bd..1235bc6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt @@ -101,7 +101,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -170,7 +170,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -192,7 +192,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -281,12 +281,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt index 97e1f59..69529f3 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt @@ -114,7 +114,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -155,7 +155,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -163,7 +163,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -220,7 +220,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -242,7 +242,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -318,12 +318,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt index 8228673..fda9277 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt @@ -1,19 +1,27 @@ package com.casic.app.smartwell.view +import android.annotation.SuppressLint import android.os.Handler import android.os.Looper import android.os.Message import android.view.View import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R +import com.casic.app.smartwell.adapter.SearchResultAdapter import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.extensions.showEmptyPage import com.casic.app.smartwell.model.SearchResultModel import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.AcceptOrderViewModel import com.casic.app.smartwell.vm.SearchOrderViewModel +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import com.casic.app.smartwell.widgets.TimeLineBottomSheet +import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_order_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,7 +30,10 @@ class SearchResultActivity : BaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var searchOrderViewModel: SearchOrderViewModel + private lateinit var acceptOrderViewModel: AcceptOrderViewModel + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel private lateinit var args: ArrayList + private lateinit var searchResultAdapter: SearchResultAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -40,6 +51,8 @@ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! weakReferenceHandler = WeakReferenceHandler(this) searchOrderViewModel = ViewModelProvider(this).get(SearchOrderViewModel::class.java) + acceptOrderViewModel = ViewModelProvider(this).get(AcceptOrderViewModel::class.java) + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) } override fun initEvent() { @@ -90,6 +103,38 @@ pageIndex++ obtainSearchResult(args, pageIndex) } + + //接单状态处理 + acceptOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "接单中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "接单成功".show(this) + //通知列表刷行数据 + weakReferenceHandler.sendEmptyMessage(2022040102) + } + else -> { + DialogHelper.dismissLoadingDialog() + "接单失败".show(this) + } + } + }) + + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val orderDetail = it.data!![0] + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + TimeLineBottomSheet.Builder().setContext(this) + .setFlowItems(orderFlow).build().show() + } else { + "抱歉,无法查到该工单的流转记录".show(this) + } + } + }) } private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { @@ -108,19 +153,87 @@ Handler(Looper.getMainLooper()) { private val reference: WeakReference = WeakReference(activity) + @SuppressLint("NotifyDataSetChanged") override fun handleMessage(msg: Message) { super.handleMessage(msg) val activity = reference.get()!! - if (msg.what == 2022040101) { - if (activity.isRefresh || activity.isLoadMore) { -// activity.wellOperationAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) + when (msg.what) { + 2022040102 -> { + activity.isRefresh = true + activity.pageIndex = 1 + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + 2022040101 -> { + if (activity.isRefresh || activity.isLoadMore) { + activity.searchResultAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (activity.dataBeans.size == 0) { + activity.emptyView!!.showEmptyPage { + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + } else { + activity.emptyView!!.hide() + activity.searchResultAdapter = + SearchResultAdapter(activity, activity.dataBeans) + activity.resultRecyclerView!!.layoutManager = + LinearLayoutManager(activity) + activity.resultRecyclerView!!.adapter = activity.searchResultAdapter + activity.searchResultAdapter.setOnItemClickListener(object : + SearchResultAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show(activity) + return + } + if (activity.dataBeans[position].jobStatus == "0") { + activity.navigatePageTo( + TodoDetailActivity::class.java, + jobId + ) + } else { + activity.navigatePageTo( + DetermineDetailActivity::class.java, + jobId + ) + } + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(activity) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val jobId = + activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单ID异常,无法接单".show(activity) + return + } + activity.acceptOrderViewModel.acceptWorkOrder(id = jobId) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + override fun onTransferViewClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看工单流转记录".show(activity) + return + } + activity.workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId) + } + }) } - } else { - activity.emptyView!!.hide() } } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt index dc68caa..a7d1e3d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt @@ -188,15 +188,10 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { - val wellCode = wellCodeView.text.toString().trim() - if (wellCode.isBlank()) { - "请输入窨井编号".show(this) - return@setOnClickListener - } //页面跳转,将查询参数传过去 navigatePageTo( SearchResultActivity::class.java, addAll( - wellCode, + wellCodeView.text.toString().trim(), alarmContentType, alarmLevel, orderState, diff --git a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt index 50cb728..828ae17 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt @@ -58,7 +58,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -96,7 +96,7 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + if (orderDetail.jobId.toString().isBlank()) { "工单ID异常,无法接单".show(context) return } @@ -113,7 +113,7 @@ navigationButton.setChangeAlphaWhenPress(true) navigationButton.setOnClickListener { val wellId = orderDetail.wellId.toString() - if (wellId == "") { + if (wellId.isBlank()) { "窨井ID异常,无法导航".show(context) return@setOnClickListener } @@ -124,7 +124,7 @@ val wellDetail = well.data!! val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) } else { Poi( diff --git a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt index c944cd1..8a19ea8 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt @@ -34,7 +34,7 @@ override fun initData() { val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { + if (userDetailJson.isNotBlank()) { userDataModel = gson.fromJson( userDetailJson, object : TypeToken() {}.type diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt index cc1642e..bca3b97 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt @@ -56,7 +56,7 @@ wellTypeView.text = wellDetail.wellTypeName wellStateView.text = wellDetail.bfztName val depth = wellDetail.deep.toString() - if (depth == "") { + if (depth.isBlank()) { wellDepthView.text = resources.getString(R.string.unknown) } else { wellDepthView.text = depth @@ -79,7 +79,7 @@ } //绑定窨井图片 - if (wellDetail.photos == "") { + if (wellDetail.photos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -87,7 +87,7 @@ val urls: ArrayList = ArrayList() val imageArray = wellDetail.photos.toString().split(";") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -110,7 +110,7 @@ navigationButton.setOnClickListener { val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) return@setOnClickListener } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt index e0cc32f..b8f589c 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt @@ -186,7 +186,7 @@ WellListAdapter.OnItemClickListener { override fun onClicked(position: Int) { val wellId = activity.dataBeans[position].id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -197,7 +197,7 @@ val wellDetail = activity.dataBeans[position] val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(activity) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt index 0121426..0a4b8ad 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt @@ -223,7 +223,7 @@ WellOperationAdapter.OnItemClickListener { override fun onClicked(position: Int) { val wellId = activity.dataBeans[position].id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -236,7 +236,7 @@ val detailModel = activity.dataBeans[position] val wellId = detailModel.id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -274,7 +274,7 @@ val wellDetail = activity.dataBeans[position] val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(activity) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt index d7d8269..2ea01e7 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt @@ -144,7 +144,7 @@ CompletedOrderAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看详情".show(fragment.requireContext()) return } @@ -155,7 +155,7 @@ override fun onTransferViewClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看工单流转记录".show(fragment.requireContext()) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt index cafc40f..bcc747f 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt @@ -144,7 +144,7 @@ InHandleOrderAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看详情".show(fragment.requireContext()) return } @@ -155,7 +155,7 @@ override fun onTransferViewClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看工单流转记录".show(fragment.requireContext()) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt index 47a4c9a..7932e6a 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt @@ -153,7 +153,7 @@ TodoWorkOrderListAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看详情".show(fragment.requireContext()) return } @@ -173,7 +173,7 @@ override fun onConfirmClick() { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单ID异常,无法接单".show(fragment.requireContext()) return } diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt index 45af48a..fc0596e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt @@ -51,7 +51,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -92,7 +92,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -100,7 +100,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt index 36075bd..1235bc6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt @@ -101,7 +101,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -170,7 +170,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -192,7 +192,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -281,12 +281,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt index 97e1f59..69529f3 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt @@ -114,7 +114,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -155,7 +155,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -163,7 +163,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -220,7 +220,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -242,7 +242,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -318,12 +318,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt index 8228673..fda9277 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt @@ -1,19 +1,27 @@ package com.casic.app.smartwell.view +import android.annotation.SuppressLint import android.os.Handler import android.os.Looper import android.os.Message import android.view.View import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R +import com.casic.app.smartwell.adapter.SearchResultAdapter import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.extensions.showEmptyPage import com.casic.app.smartwell.model.SearchResultModel import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.AcceptOrderViewModel import com.casic.app.smartwell.vm.SearchOrderViewModel +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import com.casic.app.smartwell.widgets.TimeLineBottomSheet +import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_order_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,7 +30,10 @@ class SearchResultActivity : BaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var searchOrderViewModel: SearchOrderViewModel + private lateinit var acceptOrderViewModel: AcceptOrderViewModel + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel private lateinit var args: ArrayList + private lateinit var searchResultAdapter: SearchResultAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -40,6 +51,8 @@ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! weakReferenceHandler = WeakReferenceHandler(this) searchOrderViewModel = ViewModelProvider(this).get(SearchOrderViewModel::class.java) + acceptOrderViewModel = ViewModelProvider(this).get(AcceptOrderViewModel::class.java) + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) } override fun initEvent() { @@ -90,6 +103,38 @@ pageIndex++ obtainSearchResult(args, pageIndex) } + + //接单状态处理 + acceptOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "接单中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "接单成功".show(this) + //通知列表刷行数据 + weakReferenceHandler.sendEmptyMessage(2022040102) + } + else -> { + DialogHelper.dismissLoadingDialog() + "接单失败".show(this) + } + } + }) + + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val orderDetail = it.data!![0] + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + TimeLineBottomSheet.Builder().setContext(this) + .setFlowItems(orderFlow).build().show() + } else { + "抱歉,无法查到该工单的流转记录".show(this) + } + } + }) } private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { @@ -108,19 +153,87 @@ Handler(Looper.getMainLooper()) { private val reference: WeakReference = WeakReference(activity) + @SuppressLint("NotifyDataSetChanged") override fun handleMessage(msg: Message) { super.handleMessage(msg) val activity = reference.get()!! - if (msg.what == 2022040101) { - if (activity.isRefresh || activity.isLoadMore) { -// activity.wellOperationAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) + when (msg.what) { + 2022040102 -> { + activity.isRefresh = true + activity.pageIndex = 1 + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + 2022040101 -> { + if (activity.isRefresh || activity.isLoadMore) { + activity.searchResultAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (activity.dataBeans.size == 0) { + activity.emptyView!!.showEmptyPage { + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + } else { + activity.emptyView!!.hide() + activity.searchResultAdapter = + SearchResultAdapter(activity, activity.dataBeans) + activity.resultRecyclerView!!.layoutManager = + LinearLayoutManager(activity) + activity.resultRecyclerView!!.adapter = activity.searchResultAdapter + activity.searchResultAdapter.setOnItemClickListener(object : + SearchResultAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show(activity) + return + } + if (activity.dataBeans[position].jobStatus == "0") { + activity.navigatePageTo( + TodoDetailActivity::class.java, + jobId + ) + } else { + activity.navigatePageTo( + DetermineDetailActivity::class.java, + jobId + ) + } + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(activity) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val jobId = + activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单ID异常,无法接单".show(activity) + return + } + activity.acceptOrderViewModel.acceptWorkOrder(id = jobId) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + override fun onTransferViewClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看工单流转记录".show(activity) + return + } + activity.workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId) + } + }) } - } else { - activity.emptyView!!.hide() } } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt index dc68caa..a7d1e3d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt @@ -188,15 +188,10 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { - val wellCode = wellCodeView.text.toString().trim() - if (wellCode.isBlank()) { - "请输入窨井编号".show(this) - return@setOnClickListener - } //页面跳转,将查询参数传过去 navigatePageTo( SearchResultActivity::class.java, addAll( - wellCode, + wellCodeView.text.toString().trim(), alarmContentType, alarmLevel, orderState, diff --git a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt index 50cb728..828ae17 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt @@ -58,7 +58,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -96,7 +96,7 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + if (orderDetail.jobId.toString().isBlank()) { "工单ID异常,无法接单".show(context) return } @@ -113,7 +113,7 @@ navigationButton.setChangeAlphaWhenPress(true) navigationButton.setOnClickListener { val wellId = orderDetail.wellId.toString() - if (wellId == "") { + if (wellId.isBlank()) { "窨井ID异常,无法导航".show(context) return@setOnClickListener } @@ -124,7 +124,7 @@ val wellDetail = well.data!! val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) } else { Poi( diff --git a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt index c944cd1..8a19ea8 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt @@ -34,7 +34,7 @@ override fun initData() { val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { + if (userDetailJson.isNotBlank()) { userDataModel = gson.fromJson( userDetailJson, object : TypeToken() {}.type diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt index cc1642e..bca3b97 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt @@ -56,7 +56,7 @@ wellTypeView.text = wellDetail.wellTypeName wellStateView.text = wellDetail.bfztName val depth = wellDetail.deep.toString() - if (depth == "") { + if (depth.isBlank()) { wellDepthView.text = resources.getString(R.string.unknown) } else { wellDepthView.text = depth @@ -79,7 +79,7 @@ } //绑定窨井图片 - if (wellDetail.photos == "") { + if (wellDetail.photos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -87,7 +87,7 @@ val urls: ArrayList = ArrayList() val imageArray = wellDetail.photos.toString().split(";") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -110,7 +110,7 @@ navigationButton.setOnClickListener { val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) return@setOnClickListener } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt index e0cc32f..b8f589c 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt @@ -186,7 +186,7 @@ WellListAdapter.OnItemClickListener { override fun onClicked(position: Int) { val wellId = activity.dataBeans[position].id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -197,7 +197,7 @@ val wellDetail = activity.dataBeans[position] val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(activity) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt index 0121426..0a4b8ad 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt @@ -223,7 +223,7 @@ WellOperationAdapter.OnItemClickListener { override fun onClicked(position: Int) { val wellId = activity.dataBeans[position].id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -236,7 +236,7 @@ val detailModel = activity.dataBeans[position] val wellId = detailModel.id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -274,7 +274,7 @@ val wellDetail = activity.dataBeans[position] val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(activity) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt index d7d8269..2ea01e7 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt @@ -144,7 +144,7 @@ CompletedOrderAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看详情".show(fragment.requireContext()) return } @@ -155,7 +155,7 @@ override fun onTransferViewClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看工单流转记录".show(fragment.requireContext()) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt index cafc40f..bcc747f 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt @@ -144,7 +144,7 @@ InHandleOrderAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看详情".show(fragment.requireContext()) return } @@ -155,7 +155,7 @@ override fun onTransferViewClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看工单流转记录".show(fragment.requireContext()) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt index 47a4c9a..7932e6a 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt @@ -153,7 +153,7 @@ TodoWorkOrderListAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看详情".show(fragment.requireContext()) return } @@ -173,7 +173,7 @@ override fun onConfirmClick() { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单ID异常,无法接单".show(fragment.requireContext()) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/UndeterminedOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/UndeterminedOrderFragment.kt index a8560d5..9cbd4de 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/UndeterminedOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/UndeterminedOrderFragment.kt @@ -144,7 +144,7 @@ UndeterminedOrderAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看详情".show(fragment.requireContext()) return } @@ -155,7 +155,7 @@ override fun onTransferViewClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看工单流转记录".show(fragment.requireContext()) return } diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt new file mode 100644 index 0000000..78d6a53 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SearchResultAdapter.kt @@ -0,0 +1,107 @@ +package com.casic.app.smartwell.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.SearchResultModel +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class SearchResultAdapter( + context: Context, private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): SearchResultAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_search_result_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = dataRows.size + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder( + holder: SearchResultAdapter.ItemViewHolder, + position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue == "") { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + if (rowsBean.jobStatus == "0") { + //待处理订单需要显示接单按钮,隐藏流转记录 + holder.operationLayout.visibility = View.VISIBLE + holder.transferLayout.visibility = View.GONE + if (listener != null) { + holder.operationButton.setChangeAlphaWhenPress(true) + holder.operationButton.setOnClickListener { + listener!!.onOperationClicked(position) + } + } + } else { + holder.operationLayout.visibility = View.GONE + holder.transferLayout.visibility = View.VISIBLE + //transferLayout下属UI + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在确认工单..." + if (listener != null) { + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + //item普通点击事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var operationLayout: RelativeLayout = view.findViewById(R.id.operationLayout) + var operationButton: QMUIRoundButton = view.findViewById(R.id.operationButton) + var transferLayout: LinearLayout = view.findViewById(R.id.transferLayout) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onOperationClicked(position: Int) + + fun onTransferViewClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt index 45af48a..fc0596e 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/CompletedDetailActivity.kt @@ -51,7 +51,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -92,7 +92,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -100,7 +100,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt index 36075bd..1235bc6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/DetermineDetailActivity.kt @@ -101,7 +101,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -170,7 +170,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -192,7 +192,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -281,12 +281,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt index 97e1f59..69529f3 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/InHandleDetailActivity.kt @@ -114,7 +114,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -155,7 +155,7 @@ } //绑定窨井图片 - if (orderDetail.firstStatePhotos == "") { + if (orderDetail.firstStatePhotos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -163,7 +163,7 @@ val urls: ArrayList = ArrayList() val imageArray = orderDetail.firstStatePhotos.toString().split(",") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -220,7 +220,7 @@ AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法转单".show(context) return } @@ -242,7 +242,7 @@ submitButton.setChangeAlphaWhenPress(true) submitButton.setOnClickListener { val orderId = orderDetail.jobId.toString() - if (orderId == "") { + if (orderId.isBlank()) { "工单ID异常,无法确认工单".show(this) return@setOnClickListener } @@ -318,12 +318,10 @@ if (it.code == 200) { val sumItemCount: Int = imageAdapter.itemCount + 1 //每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 4) { - //let函数处理需要针对一个可null的对象统一做判空处理。 - it.data.let { url -> - if (url != "") { - imagePaths.add(url!!) - realPaths.add(url.combineImagePath()) - } + val url = it.data.toString() + if (url.isNotBlank()) { + imagePaths.add(url) + realPaths.add(url.combineImagePath()) } imageAdapter.setupImage(images = realPaths) } else { diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt index 8228673..fda9277 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchResultActivity.kt @@ -1,19 +1,27 @@ package com.casic.app.smartwell.view +import android.annotation.SuppressLint import android.os.Handler import android.os.Looper import android.os.Message import android.view.View import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R +import com.casic.app.smartwell.adapter.SearchResultAdapter import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.extensions.showEmptyPage import com.casic.app.smartwell.model.SearchResultModel import com.casic.app.smartwell.utils.Constant import com.casic.app.smartwell.utils.DialogHelper import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.AcceptOrderViewModel import com.casic.app.smartwell.vm.SearchOrderViewModel +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import com.casic.app.smartwell.widgets.TimeLineBottomSheet +import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_order_search_result.* import kotlinx.android.synthetic.main.include_base_title.* import kotlinx.android.synthetic.main.include_empty_view.* @@ -22,7 +30,10 @@ class SearchResultActivity : BaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var searchOrderViewModel: SearchOrderViewModel + private lateinit var acceptOrderViewModel: AcceptOrderViewModel + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel private lateinit var args: ArrayList + private lateinit var searchResultAdapter: SearchResultAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -40,6 +51,8 @@ args = intent.getStringArrayListExtra(Constant.INTENT_PARAM)!! weakReferenceHandler = WeakReferenceHandler(this) searchOrderViewModel = ViewModelProvider(this).get(SearchOrderViewModel::class.java) + acceptOrderViewModel = ViewModelProvider(this).get(AcceptOrderViewModel::class.java) + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) } override fun initEvent() { @@ -90,6 +103,38 @@ pageIndex++ obtainSearchResult(args, pageIndex) } + + //接单状态处理 + acceptOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "接单中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "接单成功".show(this) + //通知列表刷行数据 + weakReferenceHandler.sendEmptyMessage(2022040102) + } + else -> { + DialogHelper.dismissLoadingDialog() + "接单失败".show(this) + } + } + }) + + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val orderDetail = it.data!![0] + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + TimeLineBottomSheet.Builder().setContext(this) + .setFlowItems(orderFlow).build().show() + } else { + "抱歉,无法查到该工单的流转记录".show(this) + } + } + }) } private fun obtainSearchResult(args: ArrayList, pageIndex: Int) { @@ -108,19 +153,87 @@ Handler(Looper.getMainLooper()) { private val reference: WeakReference = WeakReference(activity) + @SuppressLint("NotifyDataSetChanged") override fun handleMessage(msg: Message) { super.handleMessage(msg) val activity = reference.get()!! - if (msg.what == 2022040101) { - if (activity.isRefresh || activity.isLoadMore) { -// activity.wellOperationAdapter.notifyDataSetChanged() - } else { //首次加载数据 - if (activity.dataBeans.size == 0) { - activity.emptyView!!.showEmptyPage { - activity.obtainSearchResult(activity.args, activity.pageIndex) + when (msg.what) { + 2022040102 -> { + activity.isRefresh = true + activity.pageIndex = 1 + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + 2022040101 -> { + if (activity.isRefresh || activity.isLoadMore) { + activity.searchResultAdapter.notifyDataSetChanged() + } else { //首次加载数据 + if (activity.dataBeans.size == 0) { + activity.emptyView!!.showEmptyPage { + activity.obtainSearchResult(activity.args, activity.pageIndex) + } + } else { + activity.emptyView!!.hide() + activity.searchResultAdapter = + SearchResultAdapter(activity, activity.dataBeans) + activity.resultRecyclerView!!.layoutManager = + LinearLayoutManager(activity) + activity.resultRecyclerView!!.adapter = activity.searchResultAdapter + activity.searchResultAdapter.setOnItemClickListener(object : + SearchResultAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show(activity) + return + } + if (activity.dataBeans[position].jobStatus == "0") { + activity.navigatePageTo( + TodoDetailActivity::class.java, + jobId + ) + } else { + activity.navigatePageTo( + DetermineDetailActivity::class.java, + jobId + ) + } + } + + override fun onOperationClicked(position: Int) { + AlertControlDialog.Builder() + .setContext(activity) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + val jobId = + activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单ID异常,无法接单".show(activity) + return + } + activity.acceptOrderViewModel.acceptWorkOrder(id = jobId) + } + + override fun onCancelClick() { + + } + }).build().show() + } + + override fun onTransferViewClicked(position: Int) { + val jobId = activity.dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看工单流转记录".show(activity) + return + } + activity.workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId) + } + }) } - } else { - activity.emptyView!!.hide() } } } diff --git a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt index dc68caa..a7d1e3d 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/SearchWorkOrderActivity.kt @@ -188,15 +188,10 @@ searchButton.setChangeAlphaWhenPress(true) searchButton.setOnClickListener { - val wellCode = wellCodeView.text.toString().trim() - if (wellCode.isBlank()) { - "请输入窨井编号".show(this) - return@setOnClickListener - } //页面跳转,将查询参数传过去 navigatePageTo( SearchResultActivity::class.java, addAll( - wellCode, + wellCodeView.text.toString().trim(), alarmContentType, alarmLevel, orderState, diff --git a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt index 50cb728..828ae17 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/TodoDetailActivity.kt @@ -58,7 +58,7 @@ wellCodeView.text = orderDetail.wellCode devCodeView.text = orderDetail.devcode val level = orderDetail.alarmLevel.toString() - if (level == "") { + if (level.isBlank()) { alarmLevelView.text = "未知" alarmLevelView.setTextColor(R.color.mainTextColor.convertColor(this)) } else { @@ -96,7 +96,7 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + if (orderDetail.jobId.toString().isBlank()) { "工单ID异常,无法接单".show(context) return } @@ -113,7 +113,7 @@ navigationButton.setChangeAlphaWhenPress(true) navigationButton.setOnClickListener { val wellId = orderDetail.wellId.toString() - if (wellId == "") { + if (wellId.isBlank()) { "窨井ID异常,无法导航".show(context) return@setOnClickListener } @@ -124,7 +124,7 @@ val wellDetail = well.data!! val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) } else { Poi( diff --git a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt index c944cd1..8a19ea8 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/UserDetailActivity.kt @@ -34,7 +34,7 @@ override fun initData() { val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { + if (userDetailJson.isNotBlank()) { userDataModel = gson.fromJson( userDetailJson, object : TypeToken() {}.type diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt index cc1642e..bca3b97 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellDetailActivity.kt @@ -56,7 +56,7 @@ wellTypeView.text = wellDetail.wellTypeName wellStateView.text = wellDetail.bfztName val depth = wellDetail.deep.toString() - if (depth == "") { + if (depth.isBlank()) { wellDepthView.text = resources.getString(R.string.unknown) } else { wellDepthView.text = depth @@ -79,7 +79,7 @@ } //绑定窨井图片 - if (wellDetail.photos == "") { + if (wellDetail.photos.toString().isBlank()) { imageRecyclerView.visibility = View.GONE } else { imageRecyclerView.visibility = View.VISIBLE @@ -87,7 +87,7 @@ val urls: ArrayList = ArrayList() val imageArray = wellDetail.photos.toString().split(";") imageArray.forEach { path -> - if (path != "") { + if (path.isNotBlank()) { urls.add(path.combineImagePath()) } } @@ -110,7 +110,7 @@ navigationButton.setOnClickListener { val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(this) return@setOnClickListener } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt index e0cc32f..b8f589c 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellManagementActivity.kt @@ -186,7 +186,7 @@ WellListAdapter.OnItemClickListener { override fun onClicked(position: Int) { val wellId = activity.dataBeans[position].id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -197,7 +197,7 @@ val wellDetail = activity.dataBeans[position] val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(activity) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt index 0121426..0a4b8ad 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/WellOperationActivity.kt @@ -223,7 +223,7 @@ WellOperationAdapter.OnItemClickListener { override fun onClicked(position: Int) { val wellId = activity.dataBeans[position].id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -236,7 +236,7 @@ val detailModel = activity.dataBeans[position] val wellId = detailModel.id.toString() - if (wellId == "") { + if (wellId.isBlank()) { "井编号异常,无法查看详情".show(activity) return } @@ -274,7 +274,7 @@ val wellDetail = activity.dataBeans[position] val lat = wellDetail.latGaode.toString() val lng = wellDetail.lngGaode.toString() - if (lat == "" || lng == "") { + if (lat.isBlank() || lng.isBlank()) { "窨井经纬度异常,无法开启导航".show(activity) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt index d7d8269..2ea01e7 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/CompletedOrderFragment.kt @@ -144,7 +144,7 @@ CompletedOrderAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看详情".show(fragment.requireContext()) return } @@ -155,7 +155,7 @@ override fun onTransferViewClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看工单流转记录".show(fragment.requireContext()) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt index cafc40f..bcc747f 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/InHandleOrderFragment.kt @@ -144,7 +144,7 @@ InHandleOrderAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看详情".show(fragment.requireContext()) return } @@ -155,7 +155,7 @@ override fun onTransferViewClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看工单流转记录".show(fragment.requireContext()) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt index 47a4c9a..7932e6a 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt @@ -153,7 +153,7 @@ TodoWorkOrderListAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看详情".show(fragment.requireContext()) return } @@ -173,7 +173,7 @@ override fun onConfirmClick() { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单ID异常,无法接单".show(fragment.requireContext()) return } diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/UndeterminedOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/UndeterminedOrderFragment.kt index a8560d5..9cbd4de 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/UndeterminedOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/UndeterminedOrderFragment.kt @@ -144,7 +144,7 @@ UndeterminedOrderAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看详情".show(fragment.requireContext()) return } @@ -155,7 +155,7 @@ override fun onTransferViewClicked(position: Int) { val jobId = fragment.dataBeans[position].jobId.toString() - if (jobId == "") { + if (jobId.isBlank()) { "工单编号异常,无法查看工单流转记录".show(fragment.requireContext()) return } diff --git a/app/src/main/res/layout/item_search_result_recycleview.xml b/app/src/main/res/layout/item_search_result_recycleview.xml new file mode 100644 index 0000000..8cff283 --- /dev/null +++ b/app/src/main/res/layout/item_search_result_recycleview.xml @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file