diff --git a/app/src/main/assets/svg/delete.svg b/app/src/main/assets/svg/delete.svg new file mode 100644 index 0000000..593ceb4 --- /dev/null +++ b/app/src/main/assets/svg/delete.svg @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/svg/delete.svg b/app/src/main/assets/svg/delete.svg new file mode 100644 index 0000000..593ceb4 --- /dev/null +++ b/app/src/main/assets/svg/delete.svg @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt index a60a2ca..e831e68 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt @@ -8,10 +8,11 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellMonitorModel class SensorListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -27,6 +28,11 @@ //绑定数据 val rowsBean = dataRows[position] holder.wellCodeView.text = rowsBean.devcode + if (rowsBean.onlineState == "0") { + holder.wellStateView.setTextColor(R.color.redTextColor.covertColor(context)) + } else { + holder.wellStateView.setTextColor(R.color.greenTextColor.covertColor(context)) + } holder.wellStateView.text = rowsBean.onlineStateName val value = rowsBean.data.toString() if (value == "") { diff --git a/app/src/main/assets/svg/delete.svg b/app/src/main/assets/svg/delete.svg new file mode 100644 index 0000000..593ceb4 --- /dev/null +++ b/app/src/main/assets/svg/delete.svg @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt index a60a2ca..e831e68 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt @@ -8,10 +8,11 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellMonitorModel class SensorListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -27,6 +28,11 @@ //绑定数据 val rowsBean = dataRows[position] holder.wellCodeView.text = rowsBean.devcode + if (rowsBean.onlineState == "0") { + holder.wellStateView.setTextColor(R.color.redTextColor.covertColor(context)) + } else { + holder.wellStateView.setTextColor(R.color.greenTextColor.covertColor(context)) + } holder.wellStateView.text = rowsBean.onlineStateName val value = rowsBean.data.toString() if (value == "") { diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt index d1f9f4b..f68cef4 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt @@ -11,21 +11,14 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R -import com.casic.app.smartwell.model.UserDetailModel import com.casic.app.smartwell.model.WorkOrderListModel -import com.casic.app.smartwell.utils.Constant -import com.casic.app.smartwell.utils.SaveKeyValues -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken class UndeterminedOrderAdapter( private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { - private lateinit var userDataModel: UserDetailModel.DataBean private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - private val gson = Gson() override fun onCreateViewHolder( parent: ViewGroup, @@ -56,14 +49,7 @@ } holder.wellLocationView.text = rowsBean.position - val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { - userDataModel = gson.fromJson( - userDetailJson, - object : TypeToken() {}.type - ) - holder.currentStateView.text = "${userDataModel.name}正在现场确认中..." - } + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在现场确认中..." //绑定事件 if (listener != null) { diff --git a/app/src/main/assets/svg/delete.svg b/app/src/main/assets/svg/delete.svg new file mode 100644 index 0000000..593ceb4 --- /dev/null +++ b/app/src/main/assets/svg/delete.svg @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt index a60a2ca..e831e68 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt @@ -8,10 +8,11 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellMonitorModel class SensorListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -27,6 +28,11 @@ //绑定数据 val rowsBean = dataRows[position] holder.wellCodeView.text = rowsBean.devcode + if (rowsBean.onlineState == "0") { + holder.wellStateView.setTextColor(R.color.redTextColor.covertColor(context)) + } else { + holder.wellStateView.setTextColor(R.color.greenTextColor.covertColor(context)) + } holder.wellStateView.text = rowsBean.onlineStateName val value = rowsBean.data.toString() if (value == "") { diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt index d1f9f4b..f68cef4 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt @@ -11,21 +11,14 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R -import com.casic.app.smartwell.model.UserDetailModel import com.casic.app.smartwell.model.WorkOrderListModel -import com.casic.app.smartwell.utils.Constant -import com.casic.app.smartwell.utils.SaveKeyValues -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken class UndeterminedOrderAdapter( private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { - private lateinit var userDataModel: UserDetailModel.DataBean private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - private val gson = Gson() override fun onCreateViewHolder( parent: ViewGroup, @@ -56,14 +49,7 @@ } holder.wellLocationView.text = rowsBean.position - val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { - userDataModel = gson.fromJson( - userDetailJson, - object : TypeToken() {}.type - ) - holder.currentStateView.text = "${userDataModel.name}正在现场确认中..." - } + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在现场确认中..." //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt index 682801a..09af7b1 100644 --- a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -1,61 +1,12 @@ package com.casic.app.smartwell.model class WorkOrderDetailModel { - /** - * code : 200 - * data : [{"firstState":"","alarmContent":22,"deptName":"燃气集团总公司","jobStatus":"0","handleJobPerson":"","alarmContentName":"噪声超限","shouldGetTime":"","firstStatePhotos":"","wellCode":"test001","deptid":"24","alarmTypeName":"数据异常","jobCode":"ZSCX202009070001","jobBelongTo":"","jobFlag":"","confirmJobPerson":"","confirmJobTime":"","jobStatusName":"待处理","alarmValue":"4000.86","alarmId":"11243","alarmLevel":0,"handleJobTime":"","tel":"","id":"1232178","wellId":"4453","jobType":"1","flow":[],"editable":1,"alarmTime":"2019-10-17 14:22:00","handleMessage":"","alarmMessage":"噪声超限","staff":"吴甘牛","handlePhotos":"","getJobTime":"","getJobPerson":"","shouldHandleTime":"","jobId":"1232178","alarmType":"1","alarmStatus":"1","devcode":"212020000a","createTime":"2020-09-07 09:30:18","position":"test001位置"}] - * message : 请求成功 - * success : true - */ var code = 0 - var message: String? = null - var success = false var data: List? = null + var message: String? = null + var isSuccess = false class DataBean { - /** - * firstState : - * alarmContent : 22 - * deptName : 燃气集团总公司 - * jobStatus : 0 - * handleJobPerson : - * alarmContentName : 噪声超限 - * shouldGetTime : - * firstStatePhotos : - * wellCode : test001 - * deptid : 24 - * alarmTypeName : 数据异常 - * jobCode : ZSCX202009070001 - * jobBelongTo : - * jobFlag : - * confirmJobPerson : - * confirmJobTime : - * jobStatusName : 待处理 - * alarmValue : 4000.86 - * alarmId : 11243 - * alarmLevel : 0 - * handleJobTime : - * tel : - * id : 1232178 - * wellId : 4453 - * jobType : 1 - * flow : [] - * editable : 1 - * alarmTime : 2019-10-17 14:22:00 - * handleMessage : - * alarmMessage : 噪声超限 - * staff : 吴甘牛 - * handlePhotos : - * getJobTime : - * getJobPerson : - * shouldHandleTime : - * jobId : 1232178 - * alarmType : 1 - * alarmStatus : 1 - * devcode : 212020000a - * createTime : 2020-09-07 09:30:18 - * position : test001位置 - */ var firstState: String? = null var alarmContent = 0 var deptName: String? = null @@ -81,6 +32,7 @@ var id: String? = null var wellId: String? = null var jobType: String? = null + var flow: MutableList? = null var editable = 0 var alarmTime: String? = null var handleMessage: String? = null @@ -96,6 +48,11 @@ var devcode: String? = null var createTime: String? = null var position: String? = null - var flow: List<*>? = null + + class FlowBean { + var from: String? = null + var to: String? = null + var time: String? = null + } } } \ No newline at end of file diff --git a/app/src/main/assets/svg/delete.svg b/app/src/main/assets/svg/delete.svg new file mode 100644 index 0000000..593ceb4 --- /dev/null +++ b/app/src/main/assets/svg/delete.svg @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt index a60a2ca..e831e68 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt @@ -8,10 +8,11 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellMonitorModel class SensorListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -27,6 +28,11 @@ //绑定数据 val rowsBean = dataRows[position] holder.wellCodeView.text = rowsBean.devcode + if (rowsBean.onlineState == "0") { + holder.wellStateView.setTextColor(R.color.redTextColor.covertColor(context)) + } else { + holder.wellStateView.setTextColor(R.color.greenTextColor.covertColor(context)) + } holder.wellStateView.text = rowsBean.onlineStateName val value = rowsBean.data.toString() if (value == "") { diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt index d1f9f4b..f68cef4 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt @@ -11,21 +11,14 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R -import com.casic.app.smartwell.model.UserDetailModel import com.casic.app.smartwell.model.WorkOrderListModel -import com.casic.app.smartwell.utils.Constant -import com.casic.app.smartwell.utils.SaveKeyValues -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken class UndeterminedOrderAdapter( private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { - private lateinit var userDataModel: UserDetailModel.DataBean private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - private val gson = Gson() override fun onCreateViewHolder( parent: ViewGroup, @@ -56,14 +49,7 @@ } holder.wellLocationView.text = rowsBean.position - val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { - userDataModel = gson.fromJson( - userDetailJson, - object : TypeToken() {}.type - ) - holder.currentStateView.text = "${userDataModel.name}正在现场确认中..." - } + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在现场确认中..." //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt index 682801a..09af7b1 100644 --- a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -1,61 +1,12 @@ package com.casic.app.smartwell.model class WorkOrderDetailModel { - /** - * code : 200 - * data : [{"firstState":"","alarmContent":22,"deptName":"燃气集团总公司","jobStatus":"0","handleJobPerson":"","alarmContentName":"噪声超限","shouldGetTime":"","firstStatePhotos":"","wellCode":"test001","deptid":"24","alarmTypeName":"数据异常","jobCode":"ZSCX202009070001","jobBelongTo":"","jobFlag":"","confirmJobPerson":"","confirmJobTime":"","jobStatusName":"待处理","alarmValue":"4000.86","alarmId":"11243","alarmLevel":0,"handleJobTime":"","tel":"","id":"1232178","wellId":"4453","jobType":"1","flow":[],"editable":1,"alarmTime":"2019-10-17 14:22:00","handleMessage":"","alarmMessage":"噪声超限","staff":"吴甘牛","handlePhotos":"","getJobTime":"","getJobPerson":"","shouldHandleTime":"","jobId":"1232178","alarmType":"1","alarmStatus":"1","devcode":"212020000a","createTime":"2020-09-07 09:30:18","position":"test001位置"}] - * message : 请求成功 - * success : true - */ var code = 0 - var message: String? = null - var success = false var data: List? = null + var message: String? = null + var isSuccess = false class DataBean { - /** - * firstState : - * alarmContent : 22 - * deptName : 燃气集团总公司 - * jobStatus : 0 - * handleJobPerson : - * alarmContentName : 噪声超限 - * shouldGetTime : - * firstStatePhotos : - * wellCode : test001 - * deptid : 24 - * alarmTypeName : 数据异常 - * jobCode : ZSCX202009070001 - * jobBelongTo : - * jobFlag : - * confirmJobPerson : - * confirmJobTime : - * jobStatusName : 待处理 - * alarmValue : 4000.86 - * alarmId : 11243 - * alarmLevel : 0 - * handleJobTime : - * tel : - * id : 1232178 - * wellId : 4453 - * jobType : 1 - * flow : [] - * editable : 1 - * alarmTime : 2019-10-17 14:22:00 - * handleMessage : - * alarmMessage : 噪声超限 - * staff : 吴甘牛 - * handlePhotos : - * getJobTime : - * getJobPerson : - * shouldHandleTime : - * jobId : 1232178 - * alarmType : 1 - * alarmStatus : 1 - * devcode : 212020000a - * createTime : 2020-09-07 09:30:18 - * position : test001位置 - */ var firstState: String? = null var alarmContent = 0 var deptName: String? = null @@ -81,6 +32,7 @@ var id: String? = null var wellId: String? = null var jobType: String? = null + var flow: MutableList? = null var editable = 0 var alarmTime: String? = null var handleMessage: String? = null @@ -96,6 +48,11 @@ var devcode: String? = null var createTime: String? = null var position: String? = null - var flow: List<*>? = null + + class FlowBean { + var from: String? = null + var to: String? = null + var time: String? = null + } } } \ No newline at end of file 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 7cfc0cb..a1b889f 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 @@ -16,6 +16,7 @@ import com.casic.app.smartwell.view.fragment.UndeterminedOrderFragment import com.casic.app.smartwell.vm.* import com.casic.app.smartwell.widgets.SingleChoiceDialog +import com.casic.app.smartwell.widgets.TimeLineBottomSheet import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureMimeType @@ -24,6 +25,7 @@ import com.pengxh.app.multilib.widget.dialog.BottomActionSheet import com.qmuiteam.qmui.widget.dialog.QMUITipDialog import kotlinx.android.synthetic.main.activity_order_determine_detail.* +import kotlinx.android.synthetic.main.activity_well_management.* import kotlinx.android.synthetic.main.include_base_title.* import java.io.File @@ -98,6 +100,19 @@ tipsImageView.visibility = View.GONE } + //工单流转细节 + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + transferTipsView.visibility = View.VISIBLE + transferTipsView.setOnClickListener { + TimeLineBottomSheet.Builder() + .setContext(this) + .setFlowItems(orderFlow) + .build().show() + } + } else { + transferTipsView.visibility = View.GONE + } acceptDateView.text = orderDetail.getJobTime dispatchDateView.text = orderDetail.createTime completedDateView.text = orderDetail.handleJobTime @@ -123,19 +138,19 @@ AlertControlDialog.Builder() .setContext(context) .setTitle("操作提示") - .setMessage("确定要接单吗") + .setMessage("确定要转单吗") .setNegativeButton("取消") .setPositiveButton("确定") .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { - "工单ID异常,无法接单".show(context) + val orderId = orderDetail.jobId.toString() + if (orderId == "") { + "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } diff --git a/app/src/main/assets/svg/delete.svg b/app/src/main/assets/svg/delete.svg new file mode 100644 index 0000000..593ceb4 --- /dev/null +++ b/app/src/main/assets/svg/delete.svg @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt index a60a2ca..e831e68 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt @@ -8,10 +8,11 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellMonitorModel class SensorListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -27,6 +28,11 @@ //绑定数据 val rowsBean = dataRows[position] holder.wellCodeView.text = rowsBean.devcode + if (rowsBean.onlineState == "0") { + holder.wellStateView.setTextColor(R.color.redTextColor.covertColor(context)) + } else { + holder.wellStateView.setTextColor(R.color.greenTextColor.covertColor(context)) + } holder.wellStateView.text = rowsBean.onlineStateName val value = rowsBean.data.toString() if (value == "") { diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt index d1f9f4b..f68cef4 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt @@ -11,21 +11,14 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R -import com.casic.app.smartwell.model.UserDetailModel import com.casic.app.smartwell.model.WorkOrderListModel -import com.casic.app.smartwell.utils.Constant -import com.casic.app.smartwell.utils.SaveKeyValues -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken class UndeterminedOrderAdapter( private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { - private lateinit var userDataModel: UserDetailModel.DataBean private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - private val gson = Gson() override fun onCreateViewHolder( parent: ViewGroup, @@ -56,14 +49,7 @@ } holder.wellLocationView.text = rowsBean.position - val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { - userDataModel = gson.fromJson( - userDetailJson, - object : TypeToken() {}.type - ) - holder.currentStateView.text = "${userDataModel.name}正在现场确认中..." - } + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在现场确认中..." //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt index 682801a..09af7b1 100644 --- a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -1,61 +1,12 @@ package com.casic.app.smartwell.model class WorkOrderDetailModel { - /** - * code : 200 - * data : [{"firstState":"","alarmContent":22,"deptName":"燃气集团总公司","jobStatus":"0","handleJobPerson":"","alarmContentName":"噪声超限","shouldGetTime":"","firstStatePhotos":"","wellCode":"test001","deptid":"24","alarmTypeName":"数据异常","jobCode":"ZSCX202009070001","jobBelongTo":"","jobFlag":"","confirmJobPerson":"","confirmJobTime":"","jobStatusName":"待处理","alarmValue":"4000.86","alarmId":"11243","alarmLevel":0,"handleJobTime":"","tel":"","id":"1232178","wellId":"4453","jobType":"1","flow":[],"editable":1,"alarmTime":"2019-10-17 14:22:00","handleMessage":"","alarmMessage":"噪声超限","staff":"吴甘牛","handlePhotos":"","getJobTime":"","getJobPerson":"","shouldHandleTime":"","jobId":"1232178","alarmType":"1","alarmStatus":"1","devcode":"212020000a","createTime":"2020-09-07 09:30:18","position":"test001位置"}] - * message : 请求成功 - * success : true - */ var code = 0 - var message: String? = null - var success = false var data: List? = null + var message: String? = null + var isSuccess = false class DataBean { - /** - * firstState : - * alarmContent : 22 - * deptName : 燃气集团总公司 - * jobStatus : 0 - * handleJobPerson : - * alarmContentName : 噪声超限 - * shouldGetTime : - * firstStatePhotos : - * wellCode : test001 - * deptid : 24 - * alarmTypeName : 数据异常 - * jobCode : ZSCX202009070001 - * jobBelongTo : - * jobFlag : - * confirmJobPerson : - * confirmJobTime : - * jobStatusName : 待处理 - * alarmValue : 4000.86 - * alarmId : 11243 - * alarmLevel : 0 - * handleJobTime : - * tel : - * id : 1232178 - * wellId : 4453 - * jobType : 1 - * flow : [] - * editable : 1 - * alarmTime : 2019-10-17 14:22:00 - * handleMessage : - * alarmMessage : 噪声超限 - * staff : 吴甘牛 - * handlePhotos : - * getJobTime : - * getJobPerson : - * shouldHandleTime : - * jobId : 1232178 - * alarmType : 1 - * alarmStatus : 1 - * devcode : 212020000a - * createTime : 2020-09-07 09:30:18 - * position : test001位置 - */ var firstState: String? = null var alarmContent = 0 var deptName: String? = null @@ -81,6 +32,7 @@ var id: String? = null var wellId: String? = null var jobType: String? = null + var flow: MutableList? = null var editable = 0 var alarmTime: String? = null var handleMessage: String? = null @@ -96,6 +48,11 @@ var devcode: String? = null var createTime: String? = null var position: String? = null - var flow: List<*>? = null + + class FlowBean { + var from: String? = null + var to: String? = null + var time: String? = null + } } } \ No newline at end of file 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 7cfc0cb..a1b889f 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 @@ -16,6 +16,7 @@ import com.casic.app.smartwell.view.fragment.UndeterminedOrderFragment import com.casic.app.smartwell.vm.* import com.casic.app.smartwell.widgets.SingleChoiceDialog +import com.casic.app.smartwell.widgets.TimeLineBottomSheet import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureMimeType @@ -24,6 +25,7 @@ import com.pengxh.app.multilib.widget.dialog.BottomActionSheet import com.qmuiteam.qmui.widget.dialog.QMUITipDialog import kotlinx.android.synthetic.main.activity_order_determine_detail.* +import kotlinx.android.synthetic.main.activity_well_management.* import kotlinx.android.synthetic.main.include_base_title.* import java.io.File @@ -98,6 +100,19 @@ tipsImageView.visibility = View.GONE } + //工单流转细节 + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + transferTipsView.visibility = View.VISIBLE + transferTipsView.setOnClickListener { + TimeLineBottomSheet.Builder() + .setContext(this) + .setFlowItems(orderFlow) + .build().show() + } + } else { + transferTipsView.visibility = View.GONE + } acceptDateView.text = orderDetail.getJobTime dispatchDateView.text = orderDetail.createTime completedDateView.text = orderDetail.handleJobTime @@ -123,19 +138,19 @@ AlertControlDialog.Builder() .setContext(context) .setTitle("操作提示") - .setMessage("确定要接单吗") + .setMessage("确定要转单吗") .setNegativeButton("取消") .setPositiveButton("确定") .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { - "工单ID异常,无法接单".show(context) + val orderId = orderDetail.jobId.toString() + if (orderId == "") { + "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } 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 72d715b..b5fdc10 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 @@ -192,13 +192,13 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + val orderId = orderDetail.jobId.toString() + if (orderId == "") { "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } diff --git a/app/src/main/assets/svg/delete.svg b/app/src/main/assets/svg/delete.svg new file mode 100644 index 0000000..593ceb4 --- /dev/null +++ b/app/src/main/assets/svg/delete.svg @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt index a60a2ca..e831e68 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt @@ -8,10 +8,11 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellMonitorModel class SensorListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -27,6 +28,11 @@ //绑定数据 val rowsBean = dataRows[position] holder.wellCodeView.text = rowsBean.devcode + if (rowsBean.onlineState == "0") { + holder.wellStateView.setTextColor(R.color.redTextColor.covertColor(context)) + } else { + holder.wellStateView.setTextColor(R.color.greenTextColor.covertColor(context)) + } holder.wellStateView.text = rowsBean.onlineStateName val value = rowsBean.data.toString() if (value == "") { diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt index d1f9f4b..f68cef4 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt @@ -11,21 +11,14 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R -import com.casic.app.smartwell.model.UserDetailModel import com.casic.app.smartwell.model.WorkOrderListModel -import com.casic.app.smartwell.utils.Constant -import com.casic.app.smartwell.utils.SaveKeyValues -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken class UndeterminedOrderAdapter( private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { - private lateinit var userDataModel: UserDetailModel.DataBean private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - private val gson = Gson() override fun onCreateViewHolder( parent: ViewGroup, @@ -56,14 +49,7 @@ } holder.wellLocationView.text = rowsBean.position - val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { - userDataModel = gson.fromJson( - userDetailJson, - object : TypeToken() {}.type - ) - holder.currentStateView.text = "${userDataModel.name}正在现场确认中..." - } + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在现场确认中..." //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt index 682801a..09af7b1 100644 --- a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -1,61 +1,12 @@ package com.casic.app.smartwell.model class WorkOrderDetailModel { - /** - * code : 200 - * data : [{"firstState":"","alarmContent":22,"deptName":"燃气集团总公司","jobStatus":"0","handleJobPerson":"","alarmContentName":"噪声超限","shouldGetTime":"","firstStatePhotos":"","wellCode":"test001","deptid":"24","alarmTypeName":"数据异常","jobCode":"ZSCX202009070001","jobBelongTo":"","jobFlag":"","confirmJobPerson":"","confirmJobTime":"","jobStatusName":"待处理","alarmValue":"4000.86","alarmId":"11243","alarmLevel":0,"handleJobTime":"","tel":"","id":"1232178","wellId":"4453","jobType":"1","flow":[],"editable":1,"alarmTime":"2019-10-17 14:22:00","handleMessage":"","alarmMessage":"噪声超限","staff":"吴甘牛","handlePhotos":"","getJobTime":"","getJobPerson":"","shouldHandleTime":"","jobId":"1232178","alarmType":"1","alarmStatus":"1","devcode":"212020000a","createTime":"2020-09-07 09:30:18","position":"test001位置"}] - * message : 请求成功 - * success : true - */ var code = 0 - var message: String? = null - var success = false var data: List? = null + var message: String? = null + var isSuccess = false class DataBean { - /** - * firstState : - * alarmContent : 22 - * deptName : 燃气集团总公司 - * jobStatus : 0 - * handleJobPerson : - * alarmContentName : 噪声超限 - * shouldGetTime : - * firstStatePhotos : - * wellCode : test001 - * deptid : 24 - * alarmTypeName : 数据异常 - * jobCode : ZSCX202009070001 - * jobBelongTo : - * jobFlag : - * confirmJobPerson : - * confirmJobTime : - * jobStatusName : 待处理 - * alarmValue : 4000.86 - * alarmId : 11243 - * alarmLevel : 0 - * handleJobTime : - * tel : - * id : 1232178 - * wellId : 4453 - * jobType : 1 - * flow : [] - * editable : 1 - * alarmTime : 2019-10-17 14:22:00 - * handleMessage : - * alarmMessage : 噪声超限 - * staff : 吴甘牛 - * handlePhotos : - * getJobTime : - * getJobPerson : - * shouldHandleTime : - * jobId : 1232178 - * alarmType : 1 - * alarmStatus : 1 - * devcode : 212020000a - * createTime : 2020-09-07 09:30:18 - * position : test001位置 - */ var firstState: String? = null var alarmContent = 0 var deptName: String? = null @@ -81,6 +32,7 @@ var id: String? = null var wellId: String? = null var jobType: String? = null + var flow: MutableList? = null var editable = 0 var alarmTime: String? = null var handleMessage: String? = null @@ -96,6 +48,11 @@ var devcode: String? = null var createTime: String? = null var position: String? = null - var flow: List<*>? = null + + class FlowBean { + var from: String? = null + var to: String? = null + var time: String? = null + } } } \ No newline at end of file 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 7cfc0cb..a1b889f 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 @@ -16,6 +16,7 @@ import com.casic.app.smartwell.view.fragment.UndeterminedOrderFragment import com.casic.app.smartwell.vm.* import com.casic.app.smartwell.widgets.SingleChoiceDialog +import com.casic.app.smartwell.widgets.TimeLineBottomSheet import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureMimeType @@ -24,6 +25,7 @@ import com.pengxh.app.multilib.widget.dialog.BottomActionSheet import com.qmuiteam.qmui.widget.dialog.QMUITipDialog import kotlinx.android.synthetic.main.activity_order_determine_detail.* +import kotlinx.android.synthetic.main.activity_well_management.* import kotlinx.android.synthetic.main.include_base_title.* import java.io.File @@ -98,6 +100,19 @@ tipsImageView.visibility = View.GONE } + //工单流转细节 + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + transferTipsView.visibility = View.VISIBLE + transferTipsView.setOnClickListener { + TimeLineBottomSheet.Builder() + .setContext(this) + .setFlowItems(orderFlow) + .build().show() + } + } else { + transferTipsView.visibility = View.GONE + } acceptDateView.text = orderDetail.getJobTime dispatchDateView.text = orderDetail.createTime completedDateView.text = orderDetail.handleJobTime @@ -123,19 +138,19 @@ AlertControlDialog.Builder() .setContext(context) .setTitle("操作提示") - .setMessage("确定要接单吗") + .setMessage("确定要转单吗") .setNegativeButton("取消") .setPositiveButton("确定") .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { - "工单ID异常,无法接单".show(context) + val orderId = orderDetail.jobId.toString() + if (orderId == "") { + "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } 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 72d715b..b5fdc10 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 @@ -192,13 +192,13 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + val orderId = orderDetail.jobId.toString() + if (orderId == "") { "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } diff --git a/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt new file mode 100644 index 0000000..138f9cf --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt @@ -0,0 +1,110 @@ +package com.casic.app.smartwell.widgets + +import android.app.Dialog +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.os.Bundle +import android.view.* +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.WorkOrderDetailModel +import com.pengxh.app.multilib.utils.SizeUtil + +class TimeLineBottomSheet private constructor(builder: Builder) : Dialog( + builder.context!!, R.style.BottomSheetStyle +) { + private val ctx: Context = builder.context!! + private val items: MutableList = builder.items!! + + class Builder { + var context: Context? = null + var items: MutableList? = null + + fun setContext(context: Context?): Builder { + this.context = context + return this + } + + fun setFlowItems(flowItems: MutableList?): Builder { + this.items = flowItems + return this + } + + fun build(): TimeLineBottomSheet { + return TimeLineBottomSheet(this) + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + configDialogLayout() + setContentView(R.layout.dialog_bottom_sheet) + setCancelable(true) + setCanceledOnTouchOutside(true) + //绑定流程进展数据 + val orderFlowRecyclerView = findViewById(R.id.orderFlowRecyclerView) + orderFlowRecyclerView.layoutManager = LinearLayoutManager(ctx) + orderFlowRecyclerView.adapter = OrderFlowAdapter() + + val dismissView = findViewById(R.id.dismissView) + dismissView.setOnClickListener { + this.dismiss() + } + } + + private fun configDialogLayout() { + val window = window ?: return + window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.BottomSheetAnimation) + val params = window.attributes + params.width = SizeUtil.getScreenWidth(ctx) + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + } + + internal inner class OrderFlowAdapter : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(ctx) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): OrderFlowAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_order_flow_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = items.size + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = items[position] + holder.fromPersonView.text = rowsBean.from + holder.toPersonView.text = rowsBean.to + holder.transferDateView.text = rowsBean.time + when (position) { + 0 -> { + + } + items.size - 1 -> { + + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var fromPersonView: TextView = view.findViewById(R.id.fromPersonView) + var toPersonView: TextView = view.findViewById(R.id.toPersonView) + var transferDateView: TextView = view.findViewById(R.id.transferDateView) + } + } +} \ No newline at end of file diff --git a/app/src/main/assets/svg/delete.svg b/app/src/main/assets/svg/delete.svg new file mode 100644 index 0000000..593ceb4 --- /dev/null +++ b/app/src/main/assets/svg/delete.svg @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt index a60a2ca..e831e68 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt @@ -8,10 +8,11 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellMonitorModel class SensorListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -27,6 +28,11 @@ //绑定数据 val rowsBean = dataRows[position] holder.wellCodeView.text = rowsBean.devcode + if (rowsBean.onlineState == "0") { + holder.wellStateView.setTextColor(R.color.redTextColor.covertColor(context)) + } else { + holder.wellStateView.setTextColor(R.color.greenTextColor.covertColor(context)) + } holder.wellStateView.text = rowsBean.onlineStateName val value = rowsBean.data.toString() if (value == "") { diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt index d1f9f4b..f68cef4 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt @@ -11,21 +11,14 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R -import com.casic.app.smartwell.model.UserDetailModel import com.casic.app.smartwell.model.WorkOrderListModel -import com.casic.app.smartwell.utils.Constant -import com.casic.app.smartwell.utils.SaveKeyValues -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken class UndeterminedOrderAdapter( private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { - private lateinit var userDataModel: UserDetailModel.DataBean private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - private val gson = Gson() override fun onCreateViewHolder( parent: ViewGroup, @@ -56,14 +49,7 @@ } holder.wellLocationView.text = rowsBean.position - val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { - userDataModel = gson.fromJson( - userDetailJson, - object : TypeToken() {}.type - ) - holder.currentStateView.text = "${userDataModel.name}正在现场确认中..." - } + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在现场确认中..." //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt index 682801a..09af7b1 100644 --- a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -1,61 +1,12 @@ package com.casic.app.smartwell.model class WorkOrderDetailModel { - /** - * code : 200 - * data : [{"firstState":"","alarmContent":22,"deptName":"燃气集团总公司","jobStatus":"0","handleJobPerson":"","alarmContentName":"噪声超限","shouldGetTime":"","firstStatePhotos":"","wellCode":"test001","deptid":"24","alarmTypeName":"数据异常","jobCode":"ZSCX202009070001","jobBelongTo":"","jobFlag":"","confirmJobPerson":"","confirmJobTime":"","jobStatusName":"待处理","alarmValue":"4000.86","alarmId":"11243","alarmLevel":0,"handleJobTime":"","tel":"","id":"1232178","wellId":"4453","jobType":"1","flow":[],"editable":1,"alarmTime":"2019-10-17 14:22:00","handleMessage":"","alarmMessage":"噪声超限","staff":"吴甘牛","handlePhotos":"","getJobTime":"","getJobPerson":"","shouldHandleTime":"","jobId":"1232178","alarmType":"1","alarmStatus":"1","devcode":"212020000a","createTime":"2020-09-07 09:30:18","position":"test001位置"}] - * message : 请求成功 - * success : true - */ var code = 0 - var message: String? = null - var success = false var data: List? = null + var message: String? = null + var isSuccess = false class DataBean { - /** - * firstState : - * alarmContent : 22 - * deptName : 燃气集团总公司 - * jobStatus : 0 - * handleJobPerson : - * alarmContentName : 噪声超限 - * shouldGetTime : - * firstStatePhotos : - * wellCode : test001 - * deptid : 24 - * alarmTypeName : 数据异常 - * jobCode : ZSCX202009070001 - * jobBelongTo : - * jobFlag : - * confirmJobPerson : - * confirmJobTime : - * jobStatusName : 待处理 - * alarmValue : 4000.86 - * alarmId : 11243 - * alarmLevel : 0 - * handleJobTime : - * tel : - * id : 1232178 - * wellId : 4453 - * jobType : 1 - * flow : [] - * editable : 1 - * alarmTime : 2019-10-17 14:22:00 - * handleMessage : - * alarmMessage : 噪声超限 - * staff : 吴甘牛 - * handlePhotos : - * getJobTime : - * getJobPerson : - * shouldHandleTime : - * jobId : 1232178 - * alarmType : 1 - * alarmStatus : 1 - * devcode : 212020000a - * createTime : 2020-09-07 09:30:18 - * position : test001位置 - */ var firstState: String? = null var alarmContent = 0 var deptName: String? = null @@ -81,6 +32,7 @@ var id: String? = null var wellId: String? = null var jobType: String? = null + var flow: MutableList? = null var editable = 0 var alarmTime: String? = null var handleMessage: String? = null @@ -96,6 +48,11 @@ var devcode: String? = null var createTime: String? = null var position: String? = null - var flow: List<*>? = null + + class FlowBean { + var from: String? = null + var to: String? = null + var time: String? = null + } } } \ No newline at end of file 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 7cfc0cb..a1b889f 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 @@ -16,6 +16,7 @@ import com.casic.app.smartwell.view.fragment.UndeterminedOrderFragment import com.casic.app.smartwell.vm.* import com.casic.app.smartwell.widgets.SingleChoiceDialog +import com.casic.app.smartwell.widgets.TimeLineBottomSheet import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureMimeType @@ -24,6 +25,7 @@ import com.pengxh.app.multilib.widget.dialog.BottomActionSheet import com.qmuiteam.qmui.widget.dialog.QMUITipDialog import kotlinx.android.synthetic.main.activity_order_determine_detail.* +import kotlinx.android.synthetic.main.activity_well_management.* import kotlinx.android.synthetic.main.include_base_title.* import java.io.File @@ -98,6 +100,19 @@ tipsImageView.visibility = View.GONE } + //工单流转细节 + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + transferTipsView.visibility = View.VISIBLE + transferTipsView.setOnClickListener { + TimeLineBottomSheet.Builder() + .setContext(this) + .setFlowItems(orderFlow) + .build().show() + } + } else { + transferTipsView.visibility = View.GONE + } acceptDateView.text = orderDetail.getJobTime dispatchDateView.text = orderDetail.createTime completedDateView.text = orderDetail.handleJobTime @@ -123,19 +138,19 @@ AlertControlDialog.Builder() .setContext(context) .setTitle("操作提示") - .setMessage("确定要接单吗") + .setMessage("确定要转单吗") .setNegativeButton("取消") .setPositiveButton("确定") .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { - "工单ID异常,无法接单".show(context) + val orderId = orderDetail.jobId.toString() + if (orderId == "") { + "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } 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 72d715b..b5fdc10 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 @@ -192,13 +192,13 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + val orderId = orderDetail.jobId.toString() + if (orderId == "") { "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } diff --git a/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt new file mode 100644 index 0000000..138f9cf --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt @@ -0,0 +1,110 @@ +package com.casic.app.smartwell.widgets + +import android.app.Dialog +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.os.Bundle +import android.view.* +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.WorkOrderDetailModel +import com.pengxh.app.multilib.utils.SizeUtil + +class TimeLineBottomSheet private constructor(builder: Builder) : Dialog( + builder.context!!, R.style.BottomSheetStyle +) { + private val ctx: Context = builder.context!! + private val items: MutableList = builder.items!! + + class Builder { + var context: Context? = null + var items: MutableList? = null + + fun setContext(context: Context?): Builder { + this.context = context + return this + } + + fun setFlowItems(flowItems: MutableList?): Builder { + this.items = flowItems + return this + } + + fun build(): TimeLineBottomSheet { + return TimeLineBottomSheet(this) + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + configDialogLayout() + setContentView(R.layout.dialog_bottom_sheet) + setCancelable(true) + setCanceledOnTouchOutside(true) + //绑定流程进展数据 + val orderFlowRecyclerView = findViewById(R.id.orderFlowRecyclerView) + orderFlowRecyclerView.layoutManager = LinearLayoutManager(ctx) + orderFlowRecyclerView.adapter = OrderFlowAdapter() + + val dismissView = findViewById(R.id.dismissView) + dismissView.setOnClickListener { + this.dismiss() + } + } + + private fun configDialogLayout() { + val window = window ?: return + window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.BottomSheetAnimation) + val params = window.attributes + params.width = SizeUtil.getScreenWidth(ctx) + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + } + + internal inner class OrderFlowAdapter : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(ctx) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): OrderFlowAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_order_flow_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = items.size + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = items[position] + holder.fromPersonView.text = rowsBean.from + holder.toPersonView.text = rowsBean.to + holder.transferDateView.text = rowsBean.time + when (position) { + 0 -> { + + } + items.size - 1 -> { + + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var fromPersonView: TextView = view.findViewById(R.id.fromPersonView) + var toPersonView: TextView = view.findViewById(R.id.toPersonView) + var transferDateView: TextView = view.findViewById(R.id.transferDateView) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_in.xml b/app/src/main/res/anim/bottom_sheet_in.xml new file mode 100644 index 0000000..276184e --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_in.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/assets/svg/delete.svg b/app/src/main/assets/svg/delete.svg new file mode 100644 index 0000000..593ceb4 --- /dev/null +++ b/app/src/main/assets/svg/delete.svg @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt index a60a2ca..e831e68 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt @@ -8,10 +8,11 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellMonitorModel class SensorListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -27,6 +28,11 @@ //绑定数据 val rowsBean = dataRows[position] holder.wellCodeView.text = rowsBean.devcode + if (rowsBean.onlineState == "0") { + holder.wellStateView.setTextColor(R.color.redTextColor.covertColor(context)) + } else { + holder.wellStateView.setTextColor(R.color.greenTextColor.covertColor(context)) + } holder.wellStateView.text = rowsBean.onlineStateName val value = rowsBean.data.toString() if (value == "") { diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt index d1f9f4b..f68cef4 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt @@ -11,21 +11,14 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R -import com.casic.app.smartwell.model.UserDetailModel import com.casic.app.smartwell.model.WorkOrderListModel -import com.casic.app.smartwell.utils.Constant -import com.casic.app.smartwell.utils.SaveKeyValues -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken class UndeterminedOrderAdapter( private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { - private lateinit var userDataModel: UserDetailModel.DataBean private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - private val gson = Gson() override fun onCreateViewHolder( parent: ViewGroup, @@ -56,14 +49,7 @@ } holder.wellLocationView.text = rowsBean.position - val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { - userDataModel = gson.fromJson( - userDetailJson, - object : TypeToken() {}.type - ) - holder.currentStateView.text = "${userDataModel.name}正在现场确认中..." - } + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在现场确认中..." //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt index 682801a..09af7b1 100644 --- a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -1,61 +1,12 @@ package com.casic.app.smartwell.model class WorkOrderDetailModel { - /** - * code : 200 - * data : [{"firstState":"","alarmContent":22,"deptName":"燃气集团总公司","jobStatus":"0","handleJobPerson":"","alarmContentName":"噪声超限","shouldGetTime":"","firstStatePhotos":"","wellCode":"test001","deptid":"24","alarmTypeName":"数据异常","jobCode":"ZSCX202009070001","jobBelongTo":"","jobFlag":"","confirmJobPerson":"","confirmJobTime":"","jobStatusName":"待处理","alarmValue":"4000.86","alarmId":"11243","alarmLevel":0,"handleJobTime":"","tel":"","id":"1232178","wellId":"4453","jobType":"1","flow":[],"editable":1,"alarmTime":"2019-10-17 14:22:00","handleMessage":"","alarmMessage":"噪声超限","staff":"吴甘牛","handlePhotos":"","getJobTime":"","getJobPerson":"","shouldHandleTime":"","jobId":"1232178","alarmType":"1","alarmStatus":"1","devcode":"212020000a","createTime":"2020-09-07 09:30:18","position":"test001位置"}] - * message : 请求成功 - * success : true - */ var code = 0 - var message: String? = null - var success = false var data: List? = null + var message: String? = null + var isSuccess = false class DataBean { - /** - * firstState : - * alarmContent : 22 - * deptName : 燃气集团总公司 - * jobStatus : 0 - * handleJobPerson : - * alarmContentName : 噪声超限 - * shouldGetTime : - * firstStatePhotos : - * wellCode : test001 - * deptid : 24 - * alarmTypeName : 数据异常 - * jobCode : ZSCX202009070001 - * jobBelongTo : - * jobFlag : - * confirmJobPerson : - * confirmJobTime : - * jobStatusName : 待处理 - * alarmValue : 4000.86 - * alarmId : 11243 - * alarmLevel : 0 - * handleJobTime : - * tel : - * id : 1232178 - * wellId : 4453 - * jobType : 1 - * flow : [] - * editable : 1 - * alarmTime : 2019-10-17 14:22:00 - * handleMessage : - * alarmMessage : 噪声超限 - * staff : 吴甘牛 - * handlePhotos : - * getJobTime : - * getJobPerson : - * shouldHandleTime : - * jobId : 1232178 - * alarmType : 1 - * alarmStatus : 1 - * devcode : 212020000a - * createTime : 2020-09-07 09:30:18 - * position : test001位置 - */ var firstState: String? = null var alarmContent = 0 var deptName: String? = null @@ -81,6 +32,7 @@ var id: String? = null var wellId: String? = null var jobType: String? = null + var flow: MutableList? = null var editable = 0 var alarmTime: String? = null var handleMessage: String? = null @@ -96,6 +48,11 @@ var devcode: String? = null var createTime: String? = null var position: String? = null - var flow: List<*>? = null + + class FlowBean { + var from: String? = null + var to: String? = null + var time: String? = null + } } } \ No newline at end of file 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 7cfc0cb..a1b889f 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 @@ -16,6 +16,7 @@ import com.casic.app.smartwell.view.fragment.UndeterminedOrderFragment import com.casic.app.smartwell.vm.* import com.casic.app.smartwell.widgets.SingleChoiceDialog +import com.casic.app.smartwell.widgets.TimeLineBottomSheet import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureMimeType @@ -24,6 +25,7 @@ import com.pengxh.app.multilib.widget.dialog.BottomActionSheet import com.qmuiteam.qmui.widget.dialog.QMUITipDialog import kotlinx.android.synthetic.main.activity_order_determine_detail.* +import kotlinx.android.synthetic.main.activity_well_management.* import kotlinx.android.synthetic.main.include_base_title.* import java.io.File @@ -98,6 +100,19 @@ tipsImageView.visibility = View.GONE } + //工单流转细节 + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + transferTipsView.visibility = View.VISIBLE + transferTipsView.setOnClickListener { + TimeLineBottomSheet.Builder() + .setContext(this) + .setFlowItems(orderFlow) + .build().show() + } + } else { + transferTipsView.visibility = View.GONE + } acceptDateView.text = orderDetail.getJobTime dispatchDateView.text = orderDetail.createTime completedDateView.text = orderDetail.handleJobTime @@ -123,19 +138,19 @@ AlertControlDialog.Builder() .setContext(context) .setTitle("操作提示") - .setMessage("确定要接单吗") + .setMessage("确定要转单吗") .setNegativeButton("取消") .setPositiveButton("确定") .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { - "工单ID异常,无法接单".show(context) + val orderId = orderDetail.jobId.toString() + if (orderId == "") { + "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } 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 72d715b..b5fdc10 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 @@ -192,13 +192,13 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + val orderId = orderDetail.jobId.toString() + if (orderId == "") { "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } diff --git a/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt new file mode 100644 index 0000000..138f9cf --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt @@ -0,0 +1,110 @@ +package com.casic.app.smartwell.widgets + +import android.app.Dialog +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.os.Bundle +import android.view.* +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.WorkOrderDetailModel +import com.pengxh.app.multilib.utils.SizeUtil + +class TimeLineBottomSheet private constructor(builder: Builder) : Dialog( + builder.context!!, R.style.BottomSheetStyle +) { + private val ctx: Context = builder.context!! + private val items: MutableList = builder.items!! + + class Builder { + var context: Context? = null + var items: MutableList? = null + + fun setContext(context: Context?): Builder { + this.context = context + return this + } + + fun setFlowItems(flowItems: MutableList?): Builder { + this.items = flowItems + return this + } + + fun build(): TimeLineBottomSheet { + return TimeLineBottomSheet(this) + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + configDialogLayout() + setContentView(R.layout.dialog_bottom_sheet) + setCancelable(true) + setCanceledOnTouchOutside(true) + //绑定流程进展数据 + val orderFlowRecyclerView = findViewById(R.id.orderFlowRecyclerView) + orderFlowRecyclerView.layoutManager = LinearLayoutManager(ctx) + orderFlowRecyclerView.adapter = OrderFlowAdapter() + + val dismissView = findViewById(R.id.dismissView) + dismissView.setOnClickListener { + this.dismiss() + } + } + + private fun configDialogLayout() { + val window = window ?: return + window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.BottomSheetAnimation) + val params = window.attributes + params.width = SizeUtil.getScreenWidth(ctx) + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + } + + internal inner class OrderFlowAdapter : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(ctx) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): OrderFlowAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_order_flow_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = items.size + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = items[position] + holder.fromPersonView.text = rowsBean.from + holder.toPersonView.text = rowsBean.to + holder.transferDateView.text = rowsBean.time + when (position) { + 0 -> { + + } + items.size - 1 -> { + + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var fromPersonView: TextView = view.findViewById(R.id.fromPersonView) + var toPersonView: TextView = view.findViewById(R.id.toPersonView) + var transferDateView: TextView = view.findViewById(R.id.transferDateView) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_in.xml b/app/src/main/res/anim/bottom_sheet_in.xml new file mode 100644 index 0000000..276184e --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_in.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_out.xml b/app/src/main/res/anim/bottom_sheet_out.xml new file mode 100644 index 0000000..62be752 --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_out.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/assets/svg/delete.svg b/app/src/main/assets/svg/delete.svg new file mode 100644 index 0000000..593ceb4 --- /dev/null +++ b/app/src/main/assets/svg/delete.svg @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt index a60a2ca..e831e68 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt @@ -8,10 +8,11 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellMonitorModel class SensorListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -27,6 +28,11 @@ //绑定数据 val rowsBean = dataRows[position] holder.wellCodeView.text = rowsBean.devcode + if (rowsBean.onlineState == "0") { + holder.wellStateView.setTextColor(R.color.redTextColor.covertColor(context)) + } else { + holder.wellStateView.setTextColor(R.color.greenTextColor.covertColor(context)) + } holder.wellStateView.text = rowsBean.onlineStateName val value = rowsBean.data.toString() if (value == "") { diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt index d1f9f4b..f68cef4 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt @@ -11,21 +11,14 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R -import com.casic.app.smartwell.model.UserDetailModel import com.casic.app.smartwell.model.WorkOrderListModel -import com.casic.app.smartwell.utils.Constant -import com.casic.app.smartwell.utils.SaveKeyValues -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken class UndeterminedOrderAdapter( private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { - private lateinit var userDataModel: UserDetailModel.DataBean private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - private val gson = Gson() override fun onCreateViewHolder( parent: ViewGroup, @@ -56,14 +49,7 @@ } holder.wellLocationView.text = rowsBean.position - val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { - userDataModel = gson.fromJson( - userDetailJson, - object : TypeToken() {}.type - ) - holder.currentStateView.text = "${userDataModel.name}正在现场确认中..." - } + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在现场确认中..." //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt index 682801a..09af7b1 100644 --- a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -1,61 +1,12 @@ package com.casic.app.smartwell.model class WorkOrderDetailModel { - /** - * code : 200 - * data : [{"firstState":"","alarmContent":22,"deptName":"燃气集团总公司","jobStatus":"0","handleJobPerson":"","alarmContentName":"噪声超限","shouldGetTime":"","firstStatePhotos":"","wellCode":"test001","deptid":"24","alarmTypeName":"数据异常","jobCode":"ZSCX202009070001","jobBelongTo":"","jobFlag":"","confirmJobPerson":"","confirmJobTime":"","jobStatusName":"待处理","alarmValue":"4000.86","alarmId":"11243","alarmLevel":0,"handleJobTime":"","tel":"","id":"1232178","wellId":"4453","jobType":"1","flow":[],"editable":1,"alarmTime":"2019-10-17 14:22:00","handleMessage":"","alarmMessage":"噪声超限","staff":"吴甘牛","handlePhotos":"","getJobTime":"","getJobPerson":"","shouldHandleTime":"","jobId":"1232178","alarmType":"1","alarmStatus":"1","devcode":"212020000a","createTime":"2020-09-07 09:30:18","position":"test001位置"}] - * message : 请求成功 - * success : true - */ var code = 0 - var message: String? = null - var success = false var data: List? = null + var message: String? = null + var isSuccess = false class DataBean { - /** - * firstState : - * alarmContent : 22 - * deptName : 燃气集团总公司 - * jobStatus : 0 - * handleJobPerson : - * alarmContentName : 噪声超限 - * shouldGetTime : - * firstStatePhotos : - * wellCode : test001 - * deptid : 24 - * alarmTypeName : 数据异常 - * jobCode : ZSCX202009070001 - * jobBelongTo : - * jobFlag : - * confirmJobPerson : - * confirmJobTime : - * jobStatusName : 待处理 - * alarmValue : 4000.86 - * alarmId : 11243 - * alarmLevel : 0 - * handleJobTime : - * tel : - * id : 1232178 - * wellId : 4453 - * jobType : 1 - * flow : [] - * editable : 1 - * alarmTime : 2019-10-17 14:22:00 - * handleMessage : - * alarmMessage : 噪声超限 - * staff : 吴甘牛 - * handlePhotos : - * getJobTime : - * getJobPerson : - * shouldHandleTime : - * jobId : 1232178 - * alarmType : 1 - * alarmStatus : 1 - * devcode : 212020000a - * createTime : 2020-09-07 09:30:18 - * position : test001位置 - */ var firstState: String? = null var alarmContent = 0 var deptName: String? = null @@ -81,6 +32,7 @@ var id: String? = null var wellId: String? = null var jobType: String? = null + var flow: MutableList? = null var editable = 0 var alarmTime: String? = null var handleMessage: String? = null @@ -96,6 +48,11 @@ var devcode: String? = null var createTime: String? = null var position: String? = null - var flow: List<*>? = null + + class FlowBean { + var from: String? = null + var to: String? = null + var time: String? = null + } } } \ No newline at end of file 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 7cfc0cb..a1b889f 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 @@ -16,6 +16,7 @@ import com.casic.app.smartwell.view.fragment.UndeterminedOrderFragment import com.casic.app.smartwell.vm.* import com.casic.app.smartwell.widgets.SingleChoiceDialog +import com.casic.app.smartwell.widgets.TimeLineBottomSheet import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureMimeType @@ -24,6 +25,7 @@ import com.pengxh.app.multilib.widget.dialog.BottomActionSheet import com.qmuiteam.qmui.widget.dialog.QMUITipDialog import kotlinx.android.synthetic.main.activity_order_determine_detail.* +import kotlinx.android.synthetic.main.activity_well_management.* import kotlinx.android.synthetic.main.include_base_title.* import java.io.File @@ -98,6 +100,19 @@ tipsImageView.visibility = View.GONE } + //工单流转细节 + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + transferTipsView.visibility = View.VISIBLE + transferTipsView.setOnClickListener { + TimeLineBottomSheet.Builder() + .setContext(this) + .setFlowItems(orderFlow) + .build().show() + } + } else { + transferTipsView.visibility = View.GONE + } acceptDateView.text = orderDetail.getJobTime dispatchDateView.text = orderDetail.createTime completedDateView.text = orderDetail.handleJobTime @@ -123,19 +138,19 @@ AlertControlDialog.Builder() .setContext(context) .setTitle("操作提示") - .setMessage("确定要接单吗") + .setMessage("确定要转单吗") .setNegativeButton("取消") .setPositiveButton("确定") .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { - "工单ID异常,无法接单".show(context) + val orderId = orderDetail.jobId.toString() + if (orderId == "") { + "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } 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 72d715b..b5fdc10 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 @@ -192,13 +192,13 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + val orderId = orderDetail.jobId.toString() + if (orderId == "") { "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } diff --git a/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt new file mode 100644 index 0000000..138f9cf --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt @@ -0,0 +1,110 @@ +package com.casic.app.smartwell.widgets + +import android.app.Dialog +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.os.Bundle +import android.view.* +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.WorkOrderDetailModel +import com.pengxh.app.multilib.utils.SizeUtil + +class TimeLineBottomSheet private constructor(builder: Builder) : Dialog( + builder.context!!, R.style.BottomSheetStyle +) { + private val ctx: Context = builder.context!! + private val items: MutableList = builder.items!! + + class Builder { + var context: Context? = null + var items: MutableList? = null + + fun setContext(context: Context?): Builder { + this.context = context + return this + } + + fun setFlowItems(flowItems: MutableList?): Builder { + this.items = flowItems + return this + } + + fun build(): TimeLineBottomSheet { + return TimeLineBottomSheet(this) + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + configDialogLayout() + setContentView(R.layout.dialog_bottom_sheet) + setCancelable(true) + setCanceledOnTouchOutside(true) + //绑定流程进展数据 + val orderFlowRecyclerView = findViewById(R.id.orderFlowRecyclerView) + orderFlowRecyclerView.layoutManager = LinearLayoutManager(ctx) + orderFlowRecyclerView.adapter = OrderFlowAdapter() + + val dismissView = findViewById(R.id.dismissView) + dismissView.setOnClickListener { + this.dismiss() + } + } + + private fun configDialogLayout() { + val window = window ?: return + window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.BottomSheetAnimation) + val params = window.attributes + params.width = SizeUtil.getScreenWidth(ctx) + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + } + + internal inner class OrderFlowAdapter : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(ctx) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): OrderFlowAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_order_flow_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = items.size + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = items[position] + holder.fromPersonView.text = rowsBean.from + holder.toPersonView.text = rowsBean.to + holder.transferDateView.text = rowsBean.time + when (position) { + 0 -> { + + } + items.size - 1 -> { + + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var fromPersonView: TextView = view.findViewById(R.id.fromPersonView) + var toPersonView: TextView = view.findViewById(R.id.toPersonView) + var transferDateView: TextView = view.findViewById(R.id.transferDateView) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_in.xml b/app/src/main/res/anim/bottom_sheet_in.xml new file mode 100644 index 0000000..276184e --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_in.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_out.xml b/app/src/main/res/anim/bottom_sheet_out.xml new file mode 100644 index 0000000..62be752 --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_out.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_delete.xml b/app/src/main/res/drawable/ic_delete.xml new file mode 100644 index 0000000..6894a13 --- /dev/null +++ b/app/src/main/res/drawable/ic_delete.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/assets/svg/delete.svg b/app/src/main/assets/svg/delete.svg new file mode 100644 index 0000000..593ceb4 --- /dev/null +++ b/app/src/main/assets/svg/delete.svg @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt index a60a2ca..e831e68 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt @@ -8,10 +8,11 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellMonitorModel class SensorListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -27,6 +28,11 @@ //绑定数据 val rowsBean = dataRows[position] holder.wellCodeView.text = rowsBean.devcode + if (rowsBean.onlineState == "0") { + holder.wellStateView.setTextColor(R.color.redTextColor.covertColor(context)) + } else { + holder.wellStateView.setTextColor(R.color.greenTextColor.covertColor(context)) + } holder.wellStateView.text = rowsBean.onlineStateName val value = rowsBean.data.toString() if (value == "") { diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt index d1f9f4b..f68cef4 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt @@ -11,21 +11,14 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R -import com.casic.app.smartwell.model.UserDetailModel import com.casic.app.smartwell.model.WorkOrderListModel -import com.casic.app.smartwell.utils.Constant -import com.casic.app.smartwell.utils.SaveKeyValues -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken class UndeterminedOrderAdapter( private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { - private lateinit var userDataModel: UserDetailModel.DataBean private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - private val gson = Gson() override fun onCreateViewHolder( parent: ViewGroup, @@ -56,14 +49,7 @@ } holder.wellLocationView.text = rowsBean.position - val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { - userDataModel = gson.fromJson( - userDetailJson, - object : TypeToken() {}.type - ) - holder.currentStateView.text = "${userDataModel.name}正在现场确认中..." - } + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在现场确认中..." //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt index 682801a..09af7b1 100644 --- a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -1,61 +1,12 @@ package com.casic.app.smartwell.model class WorkOrderDetailModel { - /** - * code : 200 - * data : [{"firstState":"","alarmContent":22,"deptName":"燃气集团总公司","jobStatus":"0","handleJobPerson":"","alarmContentName":"噪声超限","shouldGetTime":"","firstStatePhotos":"","wellCode":"test001","deptid":"24","alarmTypeName":"数据异常","jobCode":"ZSCX202009070001","jobBelongTo":"","jobFlag":"","confirmJobPerson":"","confirmJobTime":"","jobStatusName":"待处理","alarmValue":"4000.86","alarmId":"11243","alarmLevel":0,"handleJobTime":"","tel":"","id":"1232178","wellId":"4453","jobType":"1","flow":[],"editable":1,"alarmTime":"2019-10-17 14:22:00","handleMessage":"","alarmMessage":"噪声超限","staff":"吴甘牛","handlePhotos":"","getJobTime":"","getJobPerson":"","shouldHandleTime":"","jobId":"1232178","alarmType":"1","alarmStatus":"1","devcode":"212020000a","createTime":"2020-09-07 09:30:18","position":"test001位置"}] - * message : 请求成功 - * success : true - */ var code = 0 - var message: String? = null - var success = false var data: List? = null + var message: String? = null + var isSuccess = false class DataBean { - /** - * firstState : - * alarmContent : 22 - * deptName : 燃气集团总公司 - * jobStatus : 0 - * handleJobPerson : - * alarmContentName : 噪声超限 - * shouldGetTime : - * firstStatePhotos : - * wellCode : test001 - * deptid : 24 - * alarmTypeName : 数据异常 - * jobCode : ZSCX202009070001 - * jobBelongTo : - * jobFlag : - * confirmJobPerson : - * confirmJobTime : - * jobStatusName : 待处理 - * alarmValue : 4000.86 - * alarmId : 11243 - * alarmLevel : 0 - * handleJobTime : - * tel : - * id : 1232178 - * wellId : 4453 - * jobType : 1 - * flow : [] - * editable : 1 - * alarmTime : 2019-10-17 14:22:00 - * handleMessage : - * alarmMessage : 噪声超限 - * staff : 吴甘牛 - * handlePhotos : - * getJobTime : - * getJobPerson : - * shouldHandleTime : - * jobId : 1232178 - * alarmType : 1 - * alarmStatus : 1 - * devcode : 212020000a - * createTime : 2020-09-07 09:30:18 - * position : test001位置 - */ var firstState: String? = null var alarmContent = 0 var deptName: String? = null @@ -81,6 +32,7 @@ var id: String? = null var wellId: String? = null var jobType: String? = null + var flow: MutableList? = null var editable = 0 var alarmTime: String? = null var handleMessage: String? = null @@ -96,6 +48,11 @@ var devcode: String? = null var createTime: String? = null var position: String? = null - var flow: List<*>? = null + + class FlowBean { + var from: String? = null + var to: String? = null + var time: String? = null + } } } \ No newline at end of file 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 7cfc0cb..a1b889f 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 @@ -16,6 +16,7 @@ import com.casic.app.smartwell.view.fragment.UndeterminedOrderFragment import com.casic.app.smartwell.vm.* import com.casic.app.smartwell.widgets.SingleChoiceDialog +import com.casic.app.smartwell.widgets.TimeLineBottomSheet import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureMimeType @@ -24,6 +25,7 @@ import com.pengxh.app.multilib.widget.dialog.BottomActionSheet import com.qmuiteam.qmui.widget.dialog.QMUITipDialog import kotlinx.android.synthetic.main.activity_order_determine_detail.* +import kotlinx.android.synthetic.main.activity_well_management.* import kotlinx.android.synthetic.main.include_base_title.* import java.io.File @@ -98,6 +100,19 @@ tipsImageView.visibility = View.GONE } + //工单流转细节 + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + transferTipsView.visibility = View.VISIBLE + transferTipsView.setOnClickListener { + TimeLineBottomSheet.Builder() + .setContext(this) + .setFlowItems(orderFlow) + .build().show() + } + } else { + transferTipsView.visibility = View.GONE + } acceptDateView.text = orderDetail.getJobTime dispatchDateView.text = orderDetail.createTime completedDateView.text = orderDetail.handleJobTime @@ -123,19 +138,19 @@ AlertControlDialog.Builder() .setContext(context) .setTitle("操作提示") - .setMessage("确定要接单吗") + .setMessage("确定要转单吗") .setNegativeButton("取消") .setPositiveButton("确定") .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { - "工单ID异常,无法接单".show(context) + val orderId = orderDetail.jobId.toString() + if (orderId == "") { + "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } 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 72d715b..b5fdc10 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 @@ -192,13 +192,13 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + val orderId = orderDetail.jobId.toString() + if (orderId == "") { "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } diff --git a/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt new file mode 100644 index 0000000..138f9cf --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt @@ -0,0 +1,110 @@ +package com.casic.app.smartwell.widgets + +import android.app.Dialog +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.os.Bundle +import android.view.* +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.WorkOrderDetailModel +import com.pengxh.app.multilib.utils.SizeUtil + +class TimeLineBottomSheet private constructor(builder: Builder) : Dialog( + builder.context!!, R.style.BottomSheetStyle +) { + private val ctx: Context = builder.context!! + private val items: MutableList = builder.items!! + + class Builder { + var context: Context? = null + var items: MutableList? = null + + fun setContext(context: Context?): Builder { + this.context = context + return this + } + + fun setFlowItems(flowItems: MutableList?): Builder { + this.items = flowItems + return this + } + + fun build(): TimeLineBottomSheet { + return TimeLineBottomSheet(this) + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + configDialogLayout() + setContentView(R.layout.dialog_bottom_sheet) + setCancelable(true) + setCanceledOnTouchOutside(true) + //绑定流程进展数据 + val orderFlowRecyclerView = findViewById(R.id.orderFlowRecyclerView) + orderFlowRecyclerView.layoutManager = LinearLayoutManager(ctx) + orderFlowRecyclerView.adapter = OrderFlowAdapter() + + val dismissView = findViewById(R.id.dismissView) + dismissView.setOnClickListener { + this.dismiss() + } + } + + private fun configDialogLayout() { + val window = window ?: return + window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.BottomSheetAnimation) + val params = window.attributes + params.width = SizeUtil.getScreenWidth(ctx) + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + } + + internal inner class OrderFlowAdapter : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(ctx) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): OrderFlowAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_order_flow_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = items.size + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = items[position] + holder.fromPersonView.text = rowsBean.from + holder.toPersonView.text = rowsBean.to + holder.transferDateView.text = rowsBean.time + when (position) { + 0 -> { + + } + items.size - 1 -> { + + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var fromPersonView: TextView = view.findViewById(R.id.fromPersonView) + var toPersonView: TextView = view.findViewById(R.id.toPersonView) + var transferDateView: TextView = view.findViewById(R.id.transferDateView) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_in.xml b/app/src/main/res/anim/bottom_sheet_in.xml new file mode 100644 index 0000000..276184e --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_in.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_out.xml b/app/src/main/res/anim/bottom_sheet_out.xml new file mode 100644 index 0000000..62be752 --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_out.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_delete.xml b/app/src/main/res/drawable/ic_delete.xml new file mode 100644 index 0000000..6894a13 --- /dev/null +++ b/app/src/main/res/drawable/ic_delete.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/activity_order_determine_detail.xml b/app/src/main/res/layout/activity_order_determine_detail.xml index bfb10c2..0ed21df 100644 --- a/app/src/main/res/layout/activity_order_determine_detail.xml +++ b/app/src/main/res/layout/activity_order_determine_detail.xml @@ -276,9 +276,27 @@ - + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt index a60a2ca..e831e68 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt @@ -8,10 +8,11 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellMonitorModel class SensorListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -27,6 +28,11 @@ //绑定数据 val rowsBean = dataRows[position] holder.wellCodeView.text = rowsBean.devcode + if (rowsBean.onlineState == "0") { + holder.wellStateView.setTextColor(R.color.redTextColor.covertColor(context)) + } else { + holder.wellStateView.setTextColor(R.color.greenTextColor.covertColor(context)) + } holder.wellStateView.text = rowsBean.onlineStateName val value = rowsBean.data.toString() if (value == "") { diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt index d1f9f4b..f68cef4 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt @@ -11,21 +11,14 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R -import com.casic.app.smartwell.model.UserDetailModel import com.casic.app.smartwell.model.WorkOrderListModel -import com.casic.app.smartwell.utils.Constant -import com.casic.app.smartwell.utils.SaveKeyValues -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken class UndeterminedOrderAdapter( private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { - private lateinit var userDataModel: UserDetailModel.DataBean private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - private val gson = Gson() override fun onCreateViewHolder( parent: ViewGroup, @@ -56,14 +49,7 @@ } holder.wellLocationView.text = rowsBean.position - val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { - userDataModel = gson.fromJson( - userDetailJson, - object : TypeToken() {}.type - ) - holder.currentStateView.text = "${userDataModel.name}正在现场确认中..." - } + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在现场确认中..." //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt index 682801a..09af7b1 100644 --- a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -1,61 +1,12 @@ package com.casic.app.smartwell.model class WorkOrderDetailModel { - /** - * code : 200 - * data : [{"firstState":"","alarmContent":22,"deptName":"燃气集团总公司","jobStatus":"0","handleJobPerson":"","alarmContentName":"噪声超限","shouldGetTime":"","firstStatePhotos":"","wellCode":"test001","deptid":"24","alarmTypeName":"数据异常","jobCode":"ZSCX202009070001","jobBelongTo":"","jobFlag":"","confirmJobPerson":"","confirmJobTime":"","jobStatusName":"待处理","alarmValue":"4000.86","alarmId":"11243","alarmLevel":0,"handleJobTime":"","tel":"","id":"1232178","wellId":"4453","jobType":"1","flow":[],"editable":1,"alarmTime":"2019-10-17 14:22:00","handleMessage":"","alarmMessage":"噪声超限","staff":"吴甘牛","handlePhotos":"","getJobTime":"","getJobPerson":"","shouldHandleTime":"","jobId":"1232178","alarmType":"1","alarmStatus":"1","devcode":"212020000a","createTime":"2020-09-07 09:30:18","position":"test001位置"}] - * message : 请求成功 - * success : true - */ var code = 0 - var message: String? = null - var success = false var data: List? = null + var message: String? = null + var isSuccess = false class DataBean { - /** - * firstState : - * alarmContent : 22 - * deptName : 燃气集团总公司 - * jobStatus : 0 - * handleJobPerson : - * alarmContentName : 噪声超限 - * shouldGetTime : - * firstStatePhotos : - * wellCode : test001 - * deptid : 24 - * alarmTypeName : 数据异常 - * jobCode : ZSCX202009070001 - * jobBelongTo : - * jobFlag : - * confirmJobPerson : - * confirmJobTime : - * jobStatusName : 待处理 - * alarmValue : 4000.86 - * alarmId : 11243 - * alarmLevel : 0 - * handleJobTime : - * tel : - * id : 1232178 - * wellId : 4453 - * jobType : 1 - * flow : [] - * editable : 1 - * alarmTime : 2019-10-17 14:22:00 - * handleMessage : - * alarmMessage : 噪声超限 - * staff : 吴甘牛 - * handlePhotos : - * getJobTime : - * getJobPerson : - * shouldHandleTime : - * jobId : 1232178 - * alarmType : 1 - * alarmStatus : 1 - * devcode : 212020000a - * createTime : 2020-09-07 09:30:18 - * position : test001位置 - */ var firstState: String? = null var alarmContent = 0 var deptName: String? = null @@ -81,6 +32,7 @@ var id: String? = null var wellId: String? = null var jobType: String? = null + var flow: MutableList? = null var editable = 0 var alarmTime: String? = null var handleMessage: String? = null @@ -96,6 +48,11 @@ var devcode: String? = null var createTime: String? = null var position: String? = null - var flow: List<*>? = null + + class FlowBean { + var from: String? = null + var to: String? = null + var time: String? = null + } } } \ No newline at end of file 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 7cfc0cb..a1b889f 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 @@ -16,6 +16,7 @@ import com.casic.app.smartwell.view.fragment.UndeterminedOrderFragment import com.casic.app.smartwell.vm.* import com.casic.app.smartwell.widgets.SingleChoiceDialog +import com.casic.app.smartwell.widgets.TimeLineBottomSheet import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureMimeType @@ -24,6 +25,7 @@ import com.pengxh.app.multilib.widget.dialog.BottomActionSheet import com.qmuiteam.qmui.widget.dialog.QMUITipDialog import kotlinx.android.synthetic.main.activity_order_determine_detail.* +import kotlinx.android.synthetic.main.activity_well_management.* import kotlinx.android.synthetic.main.include_base_title.* import java.io.File @@ -98,6 +100,19 @@ tipsImageView.visibility = View.GONE } + //工单流转细节 + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + transferTipsView.visibility = View.VISIBLE + transferTipsView.setOnClickListener { + TimeLineBottomSheet.Builder() + .setContext(this) + .setFlowItems(orderFlow) + .build().show() + } + } else { + transferTipsView.visibility = View.GONE + } acceptDateView.text = orderDetail.getJobTime dispatchDateView.text = orderDetail.createTime completedDateView.text = orderDetail.handleJobTime @@ -123,19 +138,19 @@ AlertControlDialog.Builder() .setContext(context) .setTitle("操作提示") - .setMessage("确定要接单吗") + .setMessage("确定要转单吗") .setNegativeButton("取消") .setPositiveButton("确定") .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { - "工单ID异常,无法接单".show(context) + val orderId = orderDetail.jobId.toString() + if (orderId == "") { + "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } 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 72d715b..b5fdc10 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 @@ -192,13 +192,13 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + val orderId = orderDetail.jobId.toString() + if (orderId == "") { "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } diff --git a/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt new file mode 100644 index 0000000..138f9cf --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt @@ -0,0 +1,110 @@ +package com.casic.app.smartwell.widgets + +import android.app.Dialog +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.os.Bundle +import android.view.* +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.WorkOrderDetailModel +import com.pengxh.app.multilib.utils.SizeUtil + +class TimeLineBottomSheet private constructor(builder: Builder) : Dialog( + builder.context!!, R.style.BottomSheetStyle +) { + private val ctx: Context = builder.context!! + private val items: MutableList = builder.items!! + + class Builder { + var context: Context? = null + var items: MutableList? = null + + fun setContext(context: Context?): Builder { + this.context = context + return this + } + + fun setFlowItems(flowItems: MutableList?): Builder { + this.items = flowItems + return this + } + + fun build(): TimeLineBottomSheet { + return TimeLineBottomSheet(this) + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + configDialogLayout() + setContentView(R.layout.dialog_bottom_sheet) + setCancelable(true) + setCanceledOnTouchOutside(true) + //绑定流程进展数据 + val orderFlowRecyclerView = findViewById(R.id.orderFlowRecyclerView) + orderFlowRecyclerView.layoutManager = LinearLayoutManager(ctx) + orderFlowRecyclerView.adapter = OrderFlowAdapter() + + val dismissView = findViewById(R.id.dismissView) + dismissView.setOnClickListener { + this.dismiss() + } + } + + private fun configDialogLayout() { + val window = window ?: return + window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.BottomSheetAnimation) + val params = window.attributes + params.width = SizeUtil.getScreenWidth(ctx) + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + } + + internal inner class OrderFlowAdapter : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(ctx) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): OrderFlowAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_order_flow_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = items.size + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = items[position] + holder.fromPersonView.text = rowsBean.from + holder.toPersonView.text = rowsBean.to + holder.transferDateView.text = rowsBean.time + when (position) { + 0 -> { + + } + items.size - 1 -> { + + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var fromPersonView: TextView = view.findViewById(R.id.fromPersonView) + var toPersonView: TextView = view.findViewById(R.id.toPersonView) + var transferDateView: TextView = view.findViewById(R.id.transferDateView) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_in.xml b/app/src/main/res/anim/bottom_sheet_in.xml new file mode 100644 index 0000000..276184e --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_in.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_out.xml b/app/src/main/res/anim/bottom_sheet_out.xml new file mode 100644 index 0000000..62be752 --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_out.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_delete.xml b/app/src/main/res/drawable/ic_delete.xml new file mode 100644 index 0000000..6894a13 --- /dev/null +++ b/app/src/main/res/drawable/ic_delete.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/activity_order_determine_detail.xml b/app/src/main/res/layout/activity_order_determine_detail.xml index bfb10c2..0ed21df 100644 --- a/app/src/main/res/layout/activity_order_determine_detail.xml +++ b/app/src/main/res/layout/activity_order_determine_detail.xml @@ -276,9 +276,27 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/assets/svg/delete.svg b/app/src/main/assets/svg/delete.svg new file mode 100644 index 0000000..593ceb4 --- /dev/null +++ b/app/src/main/assets/svg/delete.svg @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt index a60a2ca..e831e68 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt @@ -8,10 +8,11 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellMonitorModel class SensorListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -27,6 +28,11 @@ //绑定数据 val rowsBean = dataRows[position] holder.wellCodeView.text = rowsBean.devcode + if (rowsBean.onlineState == "0") { + holder.wellStateView.setTextColor(R.color.redTextColor.covertColor(context)) + } else { + holder.wellStateView.setTextColor(R.color.greenTextColor.covertColor(context)) + } holder.wellStateView.text = rowsBean.onlineStateName val value = rowsBean.data.toString() if (value == "") { diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt index d1f9f4b..f68cef4 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt @@ -11,21 +11,14 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R -import com.casic.app.smartwell.model.UserDetailModel import com.casic.app.smartwell.model.WorkOrderListModel -import com.casic.app.smartwell.utils.Constant -import com.casic.app.smartwell.utils.SaveKeyValues -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken class UndeterminedOrderAdapter( private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { - private lateinit var userDataModel: UserDetailModel.DataBean private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - private val gson = Gson() override fun onCreateViewHolder( parent: ViewGroup, @@ -56,14 +49,7 @@ } holder.wellLocationView.text = rowsBean.position - val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { - userDataModel = gson.fromJson( - userDetailJson, - object : TypeToken() {}.type - ) - holder.currentStateView.text = "${userDataModel.name}正在现场确认中..." - } + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在现场确认中..." //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt index 682801a..09af7b1 100644 --- a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -1,61 +1,12 @@ package com.casic.app.smartwell.model class WorkOrderDetailModel { - /** - * code : 200 - * data : [{"firstState":"","alarmContent":22,"deptName":"燃气集团总公司","jobStatus":"0","handleJobPerson":"","alarmContentName":"噪声超限","shouldGetTime":"","firstStatePhotos":"","wellCode":"test001","deptid":"24","alarmTypeName":"数据异常","jobCode":"ZSCX202009070001","jobBelongTo":"","jobFlag":"","confirmJobPerson":"","confirmJobTime":"","jobStatusName":"待处理","alarmValue":"4000.86","alarmId":"11243","alarmLevel":0,"handleJobTime":"","tel":"","id":"1232178","wellId":"4453","jobType":"1","flow":[],"editable":1,"alarmTime":"2019-10-17 14:22:00","handleMessage":"","alarmMessage":"噪声超限","staff":"吴甘牛","handlePhotos":"","getJobTime":"","getJobPerson":"","shouldHandleTime":"","jobId":"1232178","alarmType":"1","alarmStatus":"1","devcode":"212020000a","createTime":"2020-09-07 09:30:18","position":"test001位置"}] - * message : 请求成功 - * success : true - */ var code = 0 - var message: String? = null - var success = false var data: List? = null + var message: String? = null + var isSuccess = false class DataBean { - /** - * firstState : - * alarmContent : 22 - * deptName : 燃气集团总公司 - * jobStatus : 0 - * handleJobPerson : - * alarmContentName : 噪声超限 - * shouldGetTime : - * firstStatePhotos : - * wellCode : test001 - * deptid : 24 - * alarmTypeName : 数据异常 - * jobCode : ZSCX202009070001 - * jobBelongTo : - * jobFlag : - * confirmJobPerson : - * confirmJobTime : - * jobStatusName : 待处理 - * alarmValue : 4000.86 - * alarmId : 11243 - * alarmLevel : 0 - * handleJobTime : - * tel : - * id : 1232178 - * wellId : 4453 - * jobType : 1 - * flow : [] - * editable : 1 - * alarmTime : 2019-10-17 14:22:00 - * handleMessage : - * alarmMessage : 噪声超限 - * staff : 吴甘牛 - * handlePhotos : - * getJobTime : - * getJobPerson : - * shouldHandleTime : - * jobId : 1232178 - * alarmType : 1 - * alarmStatus : 1 - * devcode : 212020000a - * createTime : 2020-09-07 09:30:18 - * position : test001位置 - */ var firstState: String? = null var alarmContent = 0 var deptName: String? = null @@ -81,6 +32,7 @@ var id: String? = null var wellId: String? = null var jobType: String? = null + var flow: MutableList? = null var editable = 0 var alarmTime: String? = null var handleMessage: String? = null @@ -96,6 +48,11 @@ var devcode: String? = null var createTime: String? = null var position: String? = null - var flow: List<*>? = null + + class FlowBean { + var from: String? = null + var to: String? = null + var time: String? = null + } } } \ No newline at end of file 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 7cfc0cb..a1b889f 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 @@ -16,6 +16,7 @@ import com.casic.app.smartwell.view.fragment.UndeterminedOrderFragment import com.casic.app.smartwell.vm.* import com.casic.app.smartwell.widgets.SingleChoiceDialog +import com.casic.app.smartwell.widgets.TimeLineBottomSheet import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureMimeType @@ -24,6 +25,7 @@ import com.pengxh.app.multilib.widget.dialog.BottomActionSheet import com.qmuiteam.qmui.widget.dialog.QMUITipDialog import kotlinx.android.synthetic.main.activity_order_determine_detail.* +import kotlinx.android.synthetic.main.activity_well_management.* import kotlinx.android.synthetic.main.include_base_title.* import java.io.File @@ -98,6 +100,19 @@ tipsImageView.visibility = View.GONE } + //工单流转细节 + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + transferTipsView.visibility = View.VISIBLE + transferTipsView.setOnClickListener { + TimeLineBottomSheet.Builder() + .setContext(this) + .setFlowItems(orderFlow) + .build().show() + } + } else { + transferTipsView.visibility = View.GONE + } acceptDateView.text = orderDetail.getJobTime dispatchDateView.text = orderDetail.createTime completedDateView.text = orderDetail.handleJobTime @@ -123,19 +138,19 @@ AlertControlDialog.Builder() .setContext(context) .setTitle("操作提示") - .setMessage("确定要接单吗") + .setMessage("确定要转单吗") .setNegativeButton("取消") .setPositiveButton("确定") .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { - "工单ID异常,无法接单".show(context) + val orderId = orderDetail.jobId.toString() + if (orderId == "") { + "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } 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 72d715b..b5fdc10 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 @@ -192,13 +192,13 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + val orderId = orderDetail.jobId.toString() + if (orderId == "") { "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } diff --git a/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt new file mode 100644 index 0000000..138f9cf --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt @@ -0,0 +1,110 @@ +package com.casic.app.smartwell.widgets + +import android.app.Dialog +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.os.Bundle +import android.view.* +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.WorkOrderDetailModel +import com.pengxh.app.multilib.utils.SizeUtil + +class TimeLineBottomSheet private constructor(builder: Builder) : Dialog( + builder.context!!, R.style.BottomSheetStyle +) { + private val ctx: Context = builder.context!! + private val items: MutableList = builder.items!! + + class Builder { + var context: Context? = null + var items: MutableList? = null + + fun setContext(context: Context?): Builder { + this.context = context + return this + } + + fun setFlowItems(flowItems: MutableList?): Builder { + this.items = flowItems + return this + } + + fun build(): TimeLineBottomSheet { + return TimeLineBottomSheet(this) + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + configDialogLayout() + setContentView(R.layout.dialog_bottom_sheet) + setCancelable(true) + setCanceledOnTouchOutside(true) + //绑定流程进展数据 + val orderFlowRecyclerView = findViewById(R.id.orderFlowRecyclerView) + orderFlowRecyclerView.layoutManager = LinearLayoutManager(ctx) + orderFlowRecyclerView.adapter = OrderFlowAdapter() + + val dismissView = findViewById(R.id.dismissView) + dismissView.setOnClickListener { + this.dismiss() + } + } + + private fun configDialogLayout() { + val window = window ?: return + window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.BottomSheetAnimation) + val params = window.attributes + params.width = SizeUtil.getScreenWidth(ctx) + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + } + + internal inner class OrderFlowAdapter : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(ctx) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): OrderFlowAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_order_flow_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = items.size + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = items[position] + holder.fromPersonView.text = rowsBean.from + holder.toPersonView.text = rowsBean.to + holder.transferDateView.text = rowsBean.time + when (position) { + 0 -> { + + } + items.size - 1 -> { + + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var fromPersonView: TextView = view.findViewById(R.id.fromPersonView) + var toPersonView: TextView = view.findViewById(R.id.toPersonView) + var transferDateView: TextView = view.findViewById(R.id.transferDateView) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_in.xml b/app/src/main/res/anim/bottom_sheet_in.xml new file mode 100644 index 0000000..276184e --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_in.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_out.xml b/app/src/main/res/anim/bottom_sheet_out.xml new file mode 100644 index 0000000..62be752 --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_out.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_delete.xml b/app/src/main/res/drawable/ic_delete.xml new file mode 100644 index 0000000..6894a13 --- /dev/null +++ b/app/src/main/res/drawable/ic_delete.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/activity_order_determine_detail.xml b/app/src/main/res/layout/activity_order_determine_detail.xml index bfb10c2..0ed21df 100644 --- a/app/src/main/res/layout/activity_order_determine_detail.xml +++ b/app/src/main/res/layout/activity_order_determine_detail.xml @@ -276,9 +276,27 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_order_flow_recycleview.xml b/app/src/main/res/layout/item_order_flow_recycleview.xml new file mode 100644 index 0000000..b65a22e --- /dev/null +++ b/app/src/main/res/layout/item_order_flow_recycleview.xml @@ -0,0 +1,37 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/svg/delete.svg b/app/src/main/assets/svg/delete.svg new file mode 100644 index 0000000..593ceb4 --- /dev/null +++ b/app/src/main/assets/svg/delete.svg @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt index a60a2ca..e831e68 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt @@ -8,10 +8,11 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellMonitorModel class SensorListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -27,6 +28,11 @@ //绑定数据 val rowsBean = dataRows[position] holder.wellCodeView.text = rowsBean.devcode + if (rowsBean.onlineState == "0") { + holder.wellStateView.setTextColor(R.color.redTextColor.covertColor(context)) + } else { + holder.wellStateView.setTextColor(R.color.greenTextColor.covertColor(context)) + } holder.wellStateView.text = rowsBean.onlineStateName val value = rowsBean.data.toString() if (value == "") { diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt index d1f9f4b..f68cef4 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt @@ -11,21 +11,14 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R -import com.casic.app.smartwell.model.UserDetailModel import com.casic.app.smartwell.model.WorkOrderListModel -import com.casic.app.smartwell.utils.Constant -import com.casic.app.smartwell.utils.SaveKeyValues -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken class UndeterminedOrderAdapter( private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { - private lateinit var userDataModel: UserDetailModel.DataBean private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - private val gson = Gson() override fun onCreateViewHolder( parent: ViewGroup, @@ -56,14 +49,7 @@ } holder.wellLocationView.text = rowsBean.position - val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { - userDataModel = gson.fromJson( - userDetailJson, - object : TypeToken() {}.type - ) - holder.currentStateView.text = "${userDataModel.name}正在现场确认中..." - } + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在现场确认中..." //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt index 682801a..09af7b1 100644 --- a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -1,61 +1,12 @@ package com.casic.app.smartwell.model class WorkOrderDetailModel { - /** - * code : 200 - * data : [{"firstState":"","alarmContent":22,"deptName":"燃气集团总公司","jobStatus":"0","handleJobPerson":"","alarmContentName":"噪声超限","shouldGetTime":"","firstStatePhotos":"","wellCode":"test001","deptid":"24","alarmTypeName":"数据异常","jobCode":"ZSCX202009070001","jobBelongTo":"","jobFlag":"","confirmJobPerson":"","confirmJobTime":"","jobStatusName":"待处理","alarmValue":"4000.86","alarmId":"11243","alarmLevel":0,"handleJobTime":"","tel":"","id":"1232178","wellId":"4453","jobType":"1","flow":[],"editable":1,"alarmTime":"2019-10-17 14:22:00","handleMessage":"","alarmMessage":"噪声超限","staff":"吴甘牛","handlePhotos":"","getJobTime":"","getJobPerson":"","shouldHandleTime":"","jobId":"1232178","alarmType":"1","alarmStatus":"1","devcode":"212020000a","createTime":"2020-09-07 09:30:18","position":"test001位置"}] - * message : 请求成功 - * success : true - */ var code = 0 - var message: String? = null - var success = false var data: List? = null + var message: String? = null + var isSuccess = false class DataBean { - /** - * firstState : - * alarmContent : 22 - * deptName : 燃气集团总公司 - * jobStatus : 0 - * handleJobPerson : - * alarmContentName : 噪声超限 - * shouldGetTime : - * firstStatePhotos : - * wellCode : test001 - * deptid : 24 - * alarmTypeName : 数据异常 - * jobCode : ZSCX202009070001 - * jobBelongTo : - * jobFlag : - * confirmJobPerson : - * confirmJobTime : - * jobStatusName : 待处理 - * alarmValue : 4000.86 - * alarmId : 11243 - * alarmLevel : 0 - * handleJobTime : - * tel : - * id : 1232178 - * wellId : 4453 - * jobType : 1 - * flow : [] - * editable : 1 - * alarmTime : 2019-10-17 14:22:00 - * handleMessage : - * alarmMessage : 噪声超限 - * staff : 吴甘牛 - * handlePhotos : - * getJobTime : - * getJobPerson : - * shouldHandleTime : - * jobId : 1232178 - * alarmType : 1 - * alarmStatus : 1 - * devcode : 212020000a - * createTime : 2020-09-07 09:30:18 - * position : test001位置 - */ var firstState: String? = null var alarmContent = 0 var deptName: String? = null @@ -81,6 +32,7 @@ var id: String? = null var wellId: String? = null var jobType: String? = null + var flow: MutableList? = null var editable = 0 var alarmTime: String? = null var handleMessage: String? = null @@ -96,6 +48,11 @@ var devcode: String? = null var createTime: String? = null var position: String? = null - var flow: List<*>? = null + + class FlowBean { + var from: String? = null + var to: String? = null + var time: String? = null + } } } \ No newline at end of file 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 7cfc0cb..a1b889f 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 @@ -16,6 +16,7 @@ import com.casic.app.smartwell.view.fragment.UndeterminedOrderFragment import com.casic.app.smartwell.vm.* import com.casic.app.smartwell.widgets.SingleChoiceDialog +import com.casic.app.smartwell.widgets.TimeLineBottomSheet import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureMimeType @@ -24,6 +25,7 @@ import com.pengxh.app.multilib.widget.dialog.BottomActionSheet import com.qmuiteam.qmui.widget.dialog.QMUITipDialog import kotlinx.android.synthetic.main.activity_order_determine_detail.* +import kotlinx.android.synthetic.main.activity_well_management.* import kotlinx.android.synthetic.main.include_base_title.* import java.io.File @@ -98,6 +100,19 @@ tipsImageView.visibility = View.GONE } + //工单流转细节 + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + transferTipsView.visibility = View.VISIBLE + transferTipsView.setOnClickListener { + TimeLineBottomSheet.Builder() + .setContext(this) + .setFlowItems(orderFlow) + .build().show() + } + } else { + transferTipsView.visibility = View.GONE + } acceptDateView.text = orderDetail.getJobTime dispatchDateView.text = orderDetail.createTime completedDateView.text = orderDetail.handleJobTime @@ -123,19 +138,19 @@ AlertControlDialog.Builder() .setContext(context) .setTitle("操作提示") - .setMessage("确定要接单吗") + .setMessage("确定要转单吗") .setNegativeButton("取消") .setPositiveButton("确定") .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { - "工单ID异常,无法接单".show(context) + val orderId = orderDetail.jobId.toString() + if (orderId == "") { + "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } 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 72d715b..b5fdc10 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 @@ -192,13 +192,13 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + val orderId = orderDetail.jobId.toString() + if (orderId == "") { "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } diff --git a/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt new file mode 100644 index 0000000..138f9cf --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt @@ -0,0 +1,110 @@ +package com.casic.app.smartwell.widgets + +import android.app.Dialog +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.os.Bundle +import android.view.* +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.WorkOrderDetailModel +import com.pengxh.app.multilib.utils.SizeUtil + +class TimeLineBottomSheet private constructor(builder: Builder) : Dialog( + builder.context!!, R.style.BottomSheetStyle +) { + private val ctx: Context = builder.context!! + private val items: MutableList = builder.items!! + + class Builder { + var context: Context? = null + var items: MutableList? = null + + fun setContext(context: Context?): Builder { + this.context = context + return this + } + + fun setFlowItems(flowItems: MutableList?): Builder { + this.items = flowItems + return this + } + + fun build(): TimeLineBottomSheet { + return TimeLineBottomSheet(this) + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + configDialogLayout() + setContentView(R.layout.dialog_bottom_sheet) + setCancelable(true) + setCanceledOnTouchOutside(true) + //绑定流程进展数据 + val orderFlowRecyclerView = findViewById(R.id.orderFlowRecyclerView) + orderFlowRecyclerView.layoutManager = LinearLayoutManager(ctx) + orderFlowRecyclerView.adapter = OrderFlowAdapter() + + val dismissView = findViewById(R.id.dismissView) + dismissView.setOnClickListener { + this.dismiss() + } + } + + private fun configDialogLayout() { + val window = window ?: return + window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.BottomSheetAnimation) + val params = window.attributes + params.width = SizeUtil.getScreenWidth(ctx) + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + } + + internal inner class OrderFlowAdapter : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(ctx) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): OrderFlowAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_order_flow_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = items.size + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = items[position] + holder.fromPersonView.text = rowsBean.from + holder.toPersonView.text = rowsBean.to + holder.transferDateView.text = rowsBean.time + when (position) { + 0 -> { + + } + items.size - 1 -> { + + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var fromPersonView: TextView = view.findViewById(R.id.fromPersonView) + var toPersonView: TextView = view.findViewById(R.id.toPersonView) + var transferDateView: TextView = view.findViewById(R.id.transferDateView) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_in.xml b/app/src/main/res/anim/bottom_sheet_in.xml new file mode 100644 index 0000000..276184e --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_in.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_out.xml b/app/src/main/res/anim/bottom_sheet_out.xml new file mode 100644 index 0000000..62be752 --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_out.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_delete.xml b/app/src/main/res/drawable/ic_delete.xml new file mode 100644 index 0000000..6894a13 --- /dev/null +++ b/app/src/main/res/drawable/ic_delete.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/activity_order_determine_detail.xml b/app/src/main/res/layout/activity_order_determine_detail.xml index bfb10c2..0ed21df 100644 --- a/app/src/main/res/layout/activity_order_determine_detail.xml +++ b/app/src/main/res/layout/activity_order_determine_detail.xml @@ -276,9 +276,27 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_order_flow_recycleview.xml b/app/src/main/res/layout/item_order_flow_recycleview.xml new file mode 100644 index 0000000..b65a22e --- /dev/null +++ b/app/src/main/res/layout/item_order_flow_recycleview.xml @@ -0,0 +1,37 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_sensor_recycleview.xml b/app/src/main/res/layout/item_sensor_recycleview.xml index 0eb7acd..47a0b04 100644 --- a/app/src/main/res/layout/item_sensor_recycleview.xml +++ b/app/src/main/res/layout/item_sensor_recycleview.xml @@ -1,61 +1,60 @@ - + android:background="@drawable/bg_layout" + android:padding="@dimen/dp_10"> - + android:layout_height="wrap_content" + android:layout_toStartOf="@id/wellStateView" + android:fontFamily="sans-serif-black" + android:text="412021160186" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/titleFontSize" /> - + - + - + - - - - - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/assets/svg/delete.svg b/app/src/main/assets/svg/delete.svg new file mode 100644 index 0000000..593ceb4 --- /dev/null +++ b/app/src/main/assets/svg/delete.svg @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt index a60a2ca..e831e68 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/SensorListAdapter.kt @@ -8,10 +8,11 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R +import com.casic.app.smartwell.extensions.covertColor import com.casic.app.smartwell.model.WellMonitorModel class SensorListAdapter( - context: Context, private val dataRows: MutableList + private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -27,6 +28,11 @@ //绑定数据 val rowsBean = dataRows[position] holder.wellCodeView.text = rowsBean.devcode + if (rowsBean.onlineState == "0") { + holder.wellStateView.setTextColor(R.color.redTextColor.covertColor(context)) + } else { + holder.wellStateView.setTextColor(R.color.greenTextColor.covertColor(context)) + } holder.wellStateView.text = rowsBean.onlineStateName val value = rowsBean.data.toString() if (value == "") { diff --git a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt index d1f9f4b..f68cef4 100644 --- a/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt +++ b/app/src/main/java/com/casic/app/smartwell/adapter/UndeterminedOrderAdapter.kt @@ -11,21 +11,14 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.casic.app.smartwell.R -import com.casic.app.smartwell.model.UserDetailModel import com.casic.app.smartwell.model.WorkOrderListModel -import com.casic.app.smartwell.utils.Constant -import com.casic.app.smartwell.utils.SaveKeyValues -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken class UndeterminedOrderAdapter( private val context: Context, private val dataRows: MutableList ) : RecyclerView.Adapter() { - private lateinit var userDataModel: UserDetailModel.DataBean private var layoutInflater: LayoutInflater = LayoutInflater.from(context) - private val gson = Gson() override fun onCreateViewHolder( parent: ViewGroup, @@ -56,14 +49,7 @@ } holder.wellLocationView.text = rowsBean.position - val userDetailJson = SaveKeyValues.getValue(Constant.USER_DETAIL_MODEL, "") as String - if (userDetailJson != "") { - userDataModel = gson.fromJson( - userDetailJson, - object : TypeToken() {}.type - ) - holder.currentStateView.text = "${userDataModel.name}正在现场确认中..." - } + holder.currentStateView.text = "${rowsBean.jobBelongTo}正在现场确认中..." //绑定事件 if (listener != null) { diff --git a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt index 682801a..09af7b1 100644 --- a/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -1,61 +1,12 @@ package com.casic.app.smartwell.model class WorkOrderDetailModel { - /** - * code : 200 - * data : [{"firstState":"","alarmContent":22,"deptName":"燃气集团总公司","jobStatus":"0","handleJobPerson":"","alarmContentName":"噪声超限","shouldGetTime":"","firstStatePhotos":"","wellCode":"test001","deptid":"24","alarmTypeName":"数据异常","jobCode":"ZSCX202009070001","jobBelongTo":"","jobFlag":"","confirmJobPerson":"","confirmJobTime":"","jobStatusName":"待处理","alarmValue":"4000.86","alarmId":"11243","alarmLevel":0,"handleJobTime":"","tel":"","id":"1232178","wellId":"4453","jobType":"1","flow":[],"editable":1,"alarmTime":"2019-10-17 14:22:00","handleMessage":"","alarmMessage":"噪声超限","staff":"吴甘牛","handlePhotos":"","getJobTime":"","getJobPerson":"","shouldHandleTime":"","jobId":"1232178","alarmType":"1","alarmStatus":"1","devcode":"212020000a","createTime":"2020-09-07 09:30:18","position":"test001位置"}] - * message : 请求成功 - * success : true - */ var code = 0 - var message: String? = null - var success = false var data: List? = null + var message: String? = null + var isSuccess = false class DataBean { - /** - * firstState : - * alarmContent : 22 - * deptName : 燃气集团总公司 - * jobStatus : 0 - * handleJobPerson : - * alarmContentName : 噪声超限 - * shouldGetTime : - * firstStatePhotos : - * wellCode : test001 - * deptid : 24 - * alarmTypeName : 数据异常 - * jobCode : ZSCX202009070001 - * jobBelongTo : - * jobFlag : - * confirmJobPerson : - * confirmJobTime : - * jobStatusName : 待处理 - * alarmValue : 4000.86 - * alarmId : 11243 - * alarmLevel : 0 - * handleJobTime : - * tel : - * id : 1232178 - * wellId : 4453 - * jobType : 1 - * flow : [] - * editable : 1 - * alarmTime : 2019-10-17 14:22:00 - * handleMessage : - * alarmMessage : 噪声超限 - * staff : 吴甘牛 - * handlePhotos : - * getJobTime : - * getJobPerson : - * shouldHandleTime : - * jobId : 1232178 - * alarmType : 1 - * alarmStatus : 1 - * devcode : 212020000a - * createTime : 2020-09-07 09:30:18 - * position : test001位置 - */ var firstState: String? = null var alarmContent = 0 var deptName: String? = null @@ -81,6 +32,7 @@ var id: String? = null var wellId: String? = null var jobType: String? = null + var flow: MutableList? = null var editable = 0 var alarmTime: String? = null var handleMessage: String? = null @@ -96,6 +48,11 @@ var devcode: String? = null var createTime: String? = null var position: String? = null - var flow: List<*>? = null + + class FlowBean { + var from: String? = null + var to: String? = null + var time: String? = null + } } } \ No newline at end of file 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 7cfc0cb..a1b889f 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 @@ -16,6 +16,7 @@ import com.casic.app.smartwell.view.fragment.UndeterminedOrderFragment import com.casic.app.smartwell.vm.* import com.casic.app.smartwell.widgets.SingleChoiceDialog +import com.casic.app.smartwell.widgets.TimeLineBottomSheet import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureMimeType @@ -24,6 +25,7 @@ import com.pengxh.app.multilib.widget.dialog.BottomActionSheet import com.qmuiteam.qmui.widget.dialog.QMUITipDialog import kotlinx.android.synthetic.main.activity_order_determine_detail.* +import kotlinx.android.synthetic.main.activity_well_management.* import kotlinx.android.synthetic.main.include_base_title.* import java.io.File @@ -98,6 +100,19 @@ tipsImageView.visibility = View.GONE } + //工单流转细节 + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + transferTipsView.visibility = View.VISIBLE + transferTipsView.setOnClickListener { + TimeLineBottomSheet.Builder() + .setContext(this) + .setFlowItems(orderFlow) + .build().show() + } + } else { + transferTipsView.visibility = View.GONE + } acceptDateView.text = orderDetail.getJobTime dispatchDateView.text = orderDetail.createTime completedDateView.text = orderDetail.handleJobTime @@ -123,19 +138,19 @@ AlertControlDialog.Builder() .setContext(context) .setTitle("操作提示") - .setMessage("确定要接单吗") + .setMessage("确定要转单吗") .setNegativeButton("取消") .setPositiveButton("确定") .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { - "工单ID异常,无法接单".show(context) + val orderId = orderDetail.jobId.toString() + if (orderId == "") { + "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } 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 72d715b..b5fdc10 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 @@ -192,13 +192,13 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - if (orderDetail.jobId.toString() == "") { + val orderId = orderDetail.jobId.toString() + if (orderId == "") { "工单ID异常,无法转单".show(context) return } transferOrderViewModel.transferWorkOrder( - id = orderDetail.jobId!!, - userId = personBean.id!! + id = orderId, userId = personBean.id!! ) } diff --git a/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt new file mode 100644 index 0000000..138f9cf --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/widgets/TimeLineBottomSheet.kt @@ -0,0 +1,110 @@ +package com.casic.app.smartwell.widgets + +import android.app.Dialog +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.os.Bundle +import android.view.* +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.casic.app.smartwell.R +import com.casic.app.smartwell.model.WorkOrderDetailModel +import com.pengxh.app.multilib.utils.SizeUtil + +class TimeLineBottomSheet private constructor(builder: Builder) : Dialog( + builder.context!!, R.style.BottomSheetStyle +) { + private val ctx: Context = builder.context!! + private val items: MutableList = builder.items!! + + class Builder { + var context: Context? = null + var items: MutableList? = null + + fun setContext(context: Context?): Builder { + this.context = context + return this + } + + fun setFlowItems(flowItems: MutableList?): Builder { + this.items = flowItems + return this + } + + fun build(): TimeLineBottomSheet { + return TimeLineBottomSheet(this) + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + configDialogLayout() + setContentView(R.layout.dialog_bottom_sheet) + setCancelable(true) + setCanceledOnTouchOutside(true) + //绑定流程进展数据 + val orderFlowRecyclerView = findViewById(R.id.orderFlowRecyclerView) + orderFlowRecyclerView.layoutManager = LinearLayoutManager(ctx) + orderFlowRecyclerView.adapter = OrderFlowAdapter() + + val dismissView = findViewById(R.id.dismissView) + dismissView.setOnClickListener { + this.dismiss() + } + } + + private fun configDialogLayout() { + val window = window ?: return + window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + window.decorView.setBackgroundColor(Color.TRANSPARENT) + window.setGravity(Gravity.BOTTOM) + //设置Dialog出现的动画 + window.setWindowAnimations(R.style.BottomSheetAnimation) + val params = window.attributes + params.width = SizeUtil.getScreenWidth(ctx) + params.height = WindowManager.LayoutParams.WRAP_CONTENT + window.attributes = params + } + + internal inner class OrderFlowAdapter : + RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(ctx) + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): OrderFlowAdapter.ItemViewHolder { + val view: View = + layoutInflater.inflate(R.layout.item_order_flow_recycleview, parent, false) + return ItemViewHolder(view) + } + + override fun getItemCount(): Int = items.size + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + //绑定数据 + val rowsBean = items[position] + holder.fromPersonView.text = rowsBean.from + holder.toPersonView.text = rowsBean.to + holder.transferDateView.text = rowsBean.time + when (position) { + 0 -> { + + } + items.size - 1 -> { + + } + } + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var fromPersonView: TextView = view.findViewById(R.id.fromPersonView) + var toPersonView: TextView = view.findViewById(R.id.toPersonView) + var transferDateView: TextView = view.findViewById(R.id.transferDateView) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_in.xml b/app/src/main/res/anim/bottom_sheet_in.xml new file mode 100644 index 0000000..276184e --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_in.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_out.xml b/app/src/main/res/anim/bottom_sheet_out.xml new file mode 100644 index 0000000..62be752 --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_out.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_delete.xml b/app/src/main/res/drawable/ic_delete.xml new file mode 100644 index 0000000..6894a13 --- /dev/null +++ b/app/src/main/res/drawable/ic_delete.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/activity_order_determine_detail.xml b/app/src/main/res/layout/activity_order_determine_detail.xml index bfb10c2..0ed21df 100644 --- a/app/src/main/res/layout/activity_order_determine_detail.xml +++ b/app/src/main/res/layout/activity_order_determine_detail.xml @@ -276,9 +276,27 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_order_flow_recycleview.xml b/app/src/main/res/layout/item_order_flow_recycleview.xml new file mode 100644 index 0000000..b65a22e --- /dev/null +++ b/app/src/main/res/layout/item_order_flow_recycleview.xml @@ -0,0 +1,37 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_sensor_recycleview.xml b/app/src/main/res/layout/item_sensor_recycleview.xml index 0eb7acd..47a0b04 100644 --- a/app/src/main/res/layout/item_sensor_recycleview.xml +++ b/app/src/main/res/layout/item_sensor_recycleview.xml @@ -1,61 +1,60 @@ - + android:background="@drawable/bg_layout" + android:padding="@dimen/dp_10"> - + android:layout_height="wrap_content" + android:layout_toStartOf="@id/wellStateView" + android:fontFamily="sans-serif-black" + android:text="412021160186" + android:textColor="@color/mainTextColor" + android:textSize="@dimen/titleFontSize" /> - + - + - + - - - - - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index bef4fcd..d5843d1 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -139,4 +139,25 @@ @anim/action_dialog_show @anim/action_dialog_hide + + + +