diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e72465c..a7e6f01 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,6 +43,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e72465c..a7e6f01 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,6 +43,7 @@ + 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 new file mode 100644 index 0000000..91ad645 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -0,0 +1,100 @@ +package com.casic.app.smartwell.model + +class WorkOrderDetailModel { + /** + * code : 200 + * message : success + * data : {"id":1,"wellId":1,"wellCode":"N51F131","wellName":"闸井名称","deep":32,"devcode":"41201802100","position":"宋郎路","coordinateX":"39.899999999","coordinateY":"116.70000000","latBaidu":"39.901694","lngBaidu":"116.709315","latGaode":"","lngGaode":"","alarmId":"1","alarmType":"1","alarmTypeName":"数据异常","alarmContent":"1","alarmContentName":"液位超限","deptid":"1","deptName":"一分公司","jobCode":"201902340484","jobStatus":"0","jobStatusName":"待处理","createTime":"2018-12-27 00:00:00","getJobPerson":"1321321","getJobTime":"2018-12-27 00:00:00","firstState":"现场情况描述","firstStatePhotos":"现场情况图片","confirmJobPerson":"1321321","confirmJobTime":"2018-12-27 00:00:00","handleJobPerson":"1321321","handleJobTime":"2018-12-27 00:00:00","handleMessage":"维护情况描述","handlePhotos":"维护图片","flow":[{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}],"editable":"1"} + */ + var code = 0 + var message: String? = null + var data: DataBean? = null + + class DataBean { + /** + * id : 1 + * wellId : 1 + * wellCode : N51F131 + * wellName : 闸井名称 + * deep : 32 + * devcode : 41201802100 + * position : 宋郎路 + * coordinateX : 39.899999999 + * coordinateY : 116.70000000 + * latBaidu : 39.901694 + * lngBaidu : 116.709315 + * latGaode : + * lngGaode : + * alarmId : 1 + * alarmType : 1 + * alarmTypeName : 数据异常 + * alarmContent : 1 + * alarmContentName : 液位超限 + * deptid : 1 + * deptName : 一分公司 + * jobCode : 201902340484 + * jobStatus : 0 + * jobStatusName : 待处理 + * createTime : 2018-12-27 00:00:00 + * getJobPerson : 1321321 + * getJobTime : 2018-12-27 00:00:00 + * firstState : 现场情况描述 + * firstStatePhotos : 现场情况图片 + * confirmJobPerson : 1321321 + * confirmJobTime : 2018-12-27 00:00:00 + * handleJobPerson : 1321321 + * handleJobTime : 2018-12-27 00:00:00 + * handleMessage : 维护情况描述 + * handlePhotos : 维护图片 + * flow : [{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}] + * editable : 1 + */ + var id = 0 + var wellId = 0 + var wellCode: String? = null + var wellName: String? = null + var deep = 0 + var devcode: String? = null + var position: String? = null + var coordinateX: String? = null + var coordinateY: String? = null + var latBaidu: String? = null + var lngBaidu: String? = null + var latGaode: String? = null + var lngGaode: String? = null + var alarmId: String? = null + var alarmType: String? = null + var alarmTypeName: String? = null + var alarmContent: String? = null + var alarmContentName: String? = null + var deptid: String? = null + var deptName: String? = null + var jobCode: String? = null + var jobStatus: String? = null + var jobStatusName: String? = null + var createTime: String? = null + var getJobPerson: String? = null + var getJobTime: String? = null + var firstState: String? = null + var firstStatePhotos: String? = null + var confirmJobPerson: String? = null + var confirmJobTime: String? = null + var handleJobPerson: String? = null + var handleJobTime: String? = null + var handleMessage: String? = null + var handlePhotos: String? = null + var editable: String? = null + var flow: List? = null + + class FlowBean { + /** + * from : 张三 + * to : 李四 + * time : 2019-02-22-12:00:00 + */ + var from: String? = null + var to: String? = null + var time: String? = null + } + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e72465c..a7e6f01 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,6 +43,7 @@ + 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 new file mode 100644 index 0000000..91ad645 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -0,0 +1,100 @@ +package com.casic.app.smartwell.model + +class WorkOrderDetailModel { + /** + * code : 200 + * message : success + * data : {"id":1,"wellId":1,"wellCode":"N51F131","wellName":"闸井名称","deep":32,"devcode":"41201802100","position":"宋郎路","coordinateX":"39.899999999","coordinateY":"116.70000000","latBaidu":"39.901694","lngBaidu":"116.709315","latGaode":"","lngGaode":"","alarmId":"1","alarmType":"1","alarmTypeName":"数据异常","alarmContent":"1","alarmContentName":"液位超限","deptid":"1","deptName":"一分公司","jobCode":"201902340484","jobStatus":"0","jobStatusName":"待处理","createTime":"2018-12-27 00:00:00","getJobPerson":"1321321","getJobTime":"2018-12-27 00:00:00","firstState":"现场情况描述","firstStatePhotos":"现场情况图片","confirmJobPerson":"1321321","confirmJobTime":"2018-12-27 00:00:00","handleJobPerson":"1321321","handleJobTime":"2018-12-27 00:00:00","handleMessage":"维护情况描述","handlePhotos":"维护图片","flow":[{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}],"editable":"1"} + */ + var code = 0 + var message: String? = null + var data: DataBean? = null + + class DataBean { + /** + * id : 1 + * wellId : 1 + * wellCode : N51F131 + * wellName : 闸井名称 + * deep : 32 + * devcode : 41201802100 + * position : 宋郎路 + * coordinateX : 39.899999999 + * coordinateY : 116.70000000 + * latBaidu : 39.901694 + * lngBaidu : 116.709315 + * latGaode : + * lngGaode : + * alarmId : 1 + * alarmType : 1 + * alarmTypeName : 数据异常 + * alarmContent : 1 + * alarmContentName : 液位超限 + * deptid : 1 + * deptName : 一分公司 + * jobCode : 201902340484 + * jobStatus : 0 + * jobStatusName : 待处理 + * createTime : 2018-12-27 00:00:00 + * getJobPerson : 1321321 + * getJobTime : 2018-12-27 00:00:00 + * firstState : 现场情况描述 + * firstStatePhotos : 现场情况图片 + * confirmJobPerson : 1321321 + * confirmJobTime : 2018-12-27 00:00:00 + * handleJobPerson : 1321321 + * handleJobTime : 2018-12-27 00:00:00 + * handleMessage : 维护情况描述 + * handlePhotos : 维护图片 + * flow : [{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}] + * editable : 1 + */ + var id = 0 + var wellId = 0 + var wellCode: String? = null + var wellName: String? = null + var deep = 0 + var devcode: String? = null + var position: String? = null + var coordinateX: String? = null + var coordinateY: String? = null + var latBaidu: String? = null + var lngBaidu: String? = null + var latGaode: String? = null + var lngGaode: String? = null + var alarmId: String? = null + var alarmType: String? = null + var alarmTypeName: String? = null + var alarmContent: String? = null + var alarmContentName: String? = null + var deptid: String? = null + var deptName: String? = null + var jobCode: String? = null + var jobStatus: String? = null + var jobStatusName: String? = null + var createTime: String? = null + var getJobPerson: String? = null + var getJobTime: String? = null + var firstState: String? = null + var firstStatePhotos: String? = null + var confirmJobPerson: String? = null + var confirmJobTime: String? = null + var handleJobPerson: String? = null + var handleJobTime: String? = null + var handleMessage: String? = null + var handlePhotos: String? = null + var editable: String? = null + var flow: List? = null + + class FlowBean { + /** + * from : 张三 + * to : 李四 + * time : 2019-02-22-12:00:00 + */ + 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/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt index 75a6bd4..7cf9d3e 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt @@ -98,6 +98,15 @@ ): WorkOrderListModel /** + * 获取工单详情 + */ + @GET("/job/info") + suspend fun obtainWorkOrderDetail( + @Header("token") token: String, + @Query("id") id: Long + ): WorkOrderDetailModel + + /** * 获取用户信息 */ @GET("/user/info") diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e72465c..a7e6f01 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,6 +43,7 @@ + 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 new file mode 100644 index 0000000..91ad645 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -0,0 +1,100 @@ +package com.casic.app.smartwell.model + +class WorkOrderDetailModel { + /** + * code : 200 + * message : success + * data : {"id":1,"wellId":1,"wellCode":"N51F131","wellName":"闸井名称","deep":32,"devcode":"41201802100","position":"宋郎路","coordinateX":"39.899999999","coordinateY":"116.70000000","latBaidu":"39.901694","lngBaidu":"116.709315","latGaode":"","lngGaode":"","alarmId":"1","alarmType":"1","alarmTypeName":"数据异常","alarmContent":"1","alarmContentName":"液位超限","deptid":"1","deptName":"一分公司","jobCode":"201902340484","jobStatus":"0","jobStatusName":"待处理","createTime":"2018-12-27 00:00:00","getJobPerson":"1321321","getJobTime":"2018-12-27 00:00:00","firstState":"现场情况描述","firstStatePhotos":"现场情况图片","confirmJobPerson":"1321321","confirmJobTime":"2018-12-27 00:00:00","handleJobPerson":"1321321","handleJobTime":"2018-12-27 00:00:00","handleMessage":"维护情况描述","handlePhotos":"维护图片","flow":[{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}],"editable":"1"} + */ + var code = 0 + var message: String? = null + var data: DataBean? = null + + class DataBean { + /** + * id : 1 + * wellId : 1 + * wellCode : N51F131 + * wellName : 闸井名称 + * deep : 32 + * devcode : 41201802100 + * position : 宋郎路 + * coordinateX : 39.899999999 + * coordinateY : 116.70000000 + * latBaidu : 39.901694 + * lngBaidu : 116.709315 + * latGaode : + * lngGaode : + * alarmId : 1 + * alarmType : 1 + * alarmTypeName : 数据异常 + * alarmContent : 1 + * alarmContentName : 液位超限 + * deptid : 1 + * deptName : 一分公司 + * jobCode : 201902340484 + * jobStatus : 0 + * jobStatusName : 待处理 + * createTime : 2018-12-27 00:00:00 + * getJobPerson : 1321321 + * getJobTime : 2018-12-27 00:00:00 + * firstState : 现场情况描述 + * firstStatePhotos : 现场情况图片 + * confirmJobPerson : 1321321 + * confirmJobTime : 2018-12-27 00:00:00 + * handleJobPerson : 1321321 + * handleJobTime : 2018-12-27 00:00:00 + * handleMessage : 维护情况描述 + * handlePhotos : 维护图片 + * flow : [{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}] + * editable : 1 + */ + var id = 0 + var wellId = 0 + var wellCode: String? = null + var wellName: String? = null + var deep = 0 + var devcode: String? = null + var position: String? = null + var coordinateX: String? = null + var coordinateY: String? = null + var latBaidu: String? = null + var lngBaidu: String? = null + var latGaode: String? = null + var lngGaode: String? = null + var alarmId: String? = null + var alarmType: String? = null + var alarmTypeName: String? = null + var alarmContent: String? = null + var alarmContentName: String? = null + var deptid: String? = null + var deptName: String? = null + var jobCode: String? = null + var jobStatus: String? = null + var jobStatusName: String? = null + var createTime: String? = null + var getJobPerson: String? = null + var getJobTime: String? = null + var firstState: String? = null + var firstStatePhotos: String? = null + var confirmJobPerson: String? = null + var confirmJobTime: String? = null + var handleJobPerson: String? = null + var handleJobTime: String? = null + var handleMessage: String? = null + var handlePhotos: String? = null + var editable: String? = null + var flow: List? = null + + class FlowBean { + /** + * from : 张三 + * to : 李四 + * time : 2019-02-22-12:00:00 + */ + 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/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt index 75a6bd4..7cf9d3e 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt @@ -98,6 +98,15 @@ ): WorkOrderListModel /** + * 获取工单详情 + */ + @GET("/job/info") + suspend fun obtainWorkOrderDetail( + @Header("token") token: String, + @Query("id") id: Long + ): WorkOrderDetailModel + + /** * 获取用户信息 */ @GET("/user/info") diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt index 790fb72..5199e89 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt @@ -96,6 +96,13 @@ } /** + * 获取工单详情 + */ + suspend fun obtainWorkOrderDetail(id: Long): WorkOrderDetailModel { + return api.obtainWorkOrderDetail(AuthenticationHelper.token!!, id) + } + + /** * 获取用户信息 */ suspend fun obtainUserDetail(): UserDetailModel { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e72465c..a7e6f01 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,6 +43,7 @@ + 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 new file mode 100644 index 0000000..91ad645 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -0,0 +1,100 @@ +package com.casic.app.smartwell.model + +class WorkOrderDetailModel { + /** + * code : 200 + * message : success + * data : {"id":1,"wellId":1,"wellCode":"N51F131","wellName":"闸井名称","deep":32,"devcode":"41201802100","position":"宋郎路","coordinateX":"39.899999999","coordinateY":"116.70000000","latBaidu":"39.901694","lngBaidu":"116.709315","latGaode":"","lngGaode":"","alarmId":"1","alarmType":"1","alarmTypeName":"数据异常","alarmContent":"1","alarmContentName":"液位超限","deptid":"1","deptName":"一分公司","jobCode":"201902340484","jobStatus":"0","jobStatusName":"待处理","createTime":"2018-12-27 00:00:00","getJobPerson":"1321321","getJobTime":"2018-12-27 00:00:00","firstState":"现场情况描述","firstStatePhotos":"现场情况图片","confirmJobPerson":"1321321","confirmJobTime":"2018-12-27 00:00:00","handleJobPerson":"1321321","handleJobTime":"2018-12-27 00:00:00","handleMessage":"维护情况描述","handlePhotos":"维护图片","flow":[{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}],"editable":"1"} + */ + var code = 0 + var message: String? = null + var data: DataBean? = null + + class DataBean { + /** + * id : 1 + * wellId : 1 + * wellCode : N51F131 + * wellName : 闸井名称 + * deep : 32 + * devcode : 41201802100 + * position : 宋郎路 + * coordinateX : 39.899999999 + * coordinateY : 116.70000000 + * latBaidu : 39.901694 + * lngBaidu : 116.709315 + * latGaode : + * lngGaode : + * alarmId : 1 + * alarmType : 1 + * alarmTypeName : 数据异常 + * alarmContent : 1 + * alarmContentName : 液位超限 + * deptid : 1 + * deptName : 一分公司 + * jobCode : 201902340484 + * jobStatus : 0 + * jobStatusName : 待处理 + * createTime : 2018-12-27 00:00:00 + * getJobPerson : 1321321 + * getJobTime : 2018-12-27 00:00:00 + * firstState : 现场情况描述 + * firstStatePhotos : 现场情况图片 + * confirmJobPerson : 1321321 + * confirmJobTime : 2018-12-27 00:00:00 + * handleJobPerson : 1321321 + * handleJobTime : 2018-12-27 00:00:00 + * handleMessage : 维护情况描述 + * handlePhotos : 维护图片 + * flow : [{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}] + * editable : 1 + */ + var id = 0 + var wellId = 0 + var wellCode: String? = null + var wellName: String? = null + var deep = 0 + var devcode: String? = null + var position: String? = null + var coordinateX: String? = null + var coordinateY: String? = null + var latBaidu: String? = null + var lngBaidu: String? = null + var latGaode: String? = null + var lngGaode: String? = null + var alarmId: String? = null + var alarmType: String? = null + var alarmTypeName: String? = null + var alarmContent: String? = null + var alarmContentName: String? = null + var deptid: String? = null + var deptName: String? = null + var jobCode: String? = null + var jobStatus: String? = null + var jobStatusName: String? = null + var createTime: String? = null + var getJobPerson: String? = null + var getJobTime: String? = null + var firstState: String? = null + var firstStatePhotos: String? = null + var confirmJobPerson: String? = null + var confirmJobTime: String? = null + var handleJobPerson: String? = null + var handleJobTime: String? = null + var handleMessage: String? = null + var handlePhotos: String? = null + var editable: String? = null + var flow: List? = null + + class FlowBean { + /** + * from : 张三 + * to : 李四 + * time : 2019-02-22-12:00:00 + */ + 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/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt index 75a6bd4..7cf9d3e 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt @@ -98,6 +98,15 @@ ): WorkOrderListModel /** + * 获取工单详情 + */ + @GET("/job/info") + suspend fun obtainWorkOrderDetail( + @Header("token") token: String, + @Query("id") id: Long + ): WorkOrderDetailModel + + /** * 获取用户信息 */ @GET("/user/info") diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt index 790fb72..5199e89 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt @@ -96,6 +96,13 @@ } /** + * 获取工单详情 + */ + suspend fun obtainWorkOrderDetail(id: Long): WorkOrderDetailModel { + return api.obtainWorkOrderDetail(AuthenticationHelper.token!!, id) + } + + /** * 获取用户信息 */ suspend fun obtainUserDetail(): UserDetailModel { diff --git a/app/src/main/java/com/casic/app/smartwell/view/WorkOrderDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WorkOrderDetailActivity.kt new file mode 100644 index 0000000..65c6b8e --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/view/WorkOrderDetailActivity.kt @@ -0,0 +1,87 @@ +package com.casic.app.smartwell.view + +import androidx.lifecycle.ViewModelProvider +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi +import com.casic.app.smartwell.R +import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.show +import com.casic.app.smartwell.extensions.showRouteOnMap +import com.casic.app.smartwell.extensions.valueToType +import com.casic.app.smartwell.utils.Constant +import com.casic.app.smartwell.utils.DialogHelper +import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import kotlinx.android.synthetic.main.activity_order_detail.* + +class WorkOrderDetailActivity : BaseActivity() { + + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel + + override fun initLayoutView(): Int = R.layout.activity_order_detail + + override fun setupTopBarLayout() { + + } + + override fun initData() { + val jobId = intent.getStringExtra(Constant.INTENT_PARAM)!! + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) + workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId.toLong()) + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val wellDetail = it.data!! + alarmTypeView.text = wellDetail.alarmContentName + wellCodeView.text = wellDetail.wellCode + wellNameView.text = wellDetail.wellName + wellTypeView.text = wellDetail.wellId.valueToType() +// wellStateView.text = wellDetail.bfztName + installDateView.text = wellDetail.createTime + val depth = wellDetail.deep.toString() + if (depth == "") { + wellDepthView.text = resources.getString(R.string.unknown) + } else { + wellDepthView.text = depth + } + //绑定窨井位置 + val wellPosition = wellDetail.position.toString() + wellLocationView.text = wellPosition + + //转单 + operationButton.setChangeAlphaWhenPress(true) + operationButton.setOnClickListener { + + } + + //导航 + navigationButton.setChangeAlphaWhenPress(true) + navigationButton.setOnClickListener { + val lat = wellDetail.latGaode.toString() + val lng = wellDetail.lngGaode.toString() + if (lat == "" || lng == "") { + "窨井经纬度异常,无法开启导航".show(this) + return@setOnClickListener + } + Poi( + wellDetail.position, + LatLng(lat.toDouble(), lng.toDouble()), + "" + ).showRouteOnMap(this) + } + } + }) + } + + override fun initEvent() { + workOrderDetailViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "数据加载中,请稍后") + } + else -> { + DialogHelper.dismissLoadingDialog() + } + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e72465c..a7e6f01 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,6 +43,7 @@ + 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 new file mode 100644 index 0000000..91ad645 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -0,0 +1,100 @@ +package com.casic.app.smartwell.model + +class WorkOrderDetailModel { + /** + * code : 200 + * message : success + * data : {"id":1,"wellId":1,"wellCode":"N51F131","wellName":"闸井名称","deep":32,"devcode":"41201802100","position":"宋郎路","coordinateX":"39.899999999","coordinateY":"116.70000000","latBaidu":"39.901694","lngBaidu":"116.709315","latGaode":"","lngGaode":"","alarmId":"1","alarmType":"1","alarmTypeName":"数据异常","alarmContent":"1","alarmContentName":"液位超限","deptid":"1","deptName":"一分公司","jobCode":"201902340484","jobStatus":"0","jobStatusName":"待处理","createTime":"2018-12-27 00:00:00","getJobPerson":"1321321","getJobTime":"2018-12-27 00:00:00","firstState":"现场情况描述","firstStatePhotos":"现场情况图片","confirmJobPerson":"1321321","confirmJobTime":"2018-12-27 00:00:00","handleJobPerson":"1321321","handleJobTime":"2018-12-27 00:00:00","handleMessage":"维护情况描述","handlePhotos":"维护图片","flow":[{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}],"editable":"1"} + */ + var code = 0 + var message: String? = null + var data: DataBean? = null + + class DataBean { + /** + * id : 1 + * wellId : 1 + * wellCode : N51F131 + * wellName : 闸井名称 + * deep : 32 + * devcode : 41201802100 + * position : 宋郎路 + * coordinateX : 39.899999999 + * coordinateY : 116.70000000 + * latBaidu : 39.901694 + * lngBaidu : 116.709315 + * latGaode : + * lngGaode : + * alarmId : 1 + * alarmType : 1 + * alarmTypeName : 数据异常 + * alarmContent : 1 + * alarmContentName : 液位超限 + * deptid : 1 + * deptName : 一分公司 + * jobCode : 201902340484 + * jobStatus : 0 + * jobStatusName : 待处理 + * createTime : 2018-12-27 00:00:00 + * getJobPerson : 1321321 + * getJobTime : 2018-12-27 00:00:00 + * firstState : 现场情况描述 + * firstStatePhotos : 现场情况图片 + * confirmJobPerson : 1321321 + * confirmJobTime : 2018-12-27 00:00:00 + * handleJobPerson : 1321321 + * handleJobTime : 2018-12-27 00:00:00 + * handleMessage : 维护情况描述 + * handlePhotos : 维护图片 + * flow : [{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}] + * editable : 1 + */ + var id = 0 + var wellId = 0 + var wellCode: String? = null + var wellName: String? = null + var deep = 0 + var devcode: String? = null + var position: String? = null + var coordinateX: String? = null + var coordinateY: String? = null + var latBaidu: String? = null + var lngBaidu: String? = null + var latGaode: String? = null + var lngGaode: String? = null + var alarmId: String? = null + var alarmType: String? = null + var alarmTypeName: String? = null + var alarmContent: String? = null + var alarmContentName: String? = null + var deptid: String? = null + var deptName: String? = null + var jobCode: String? = null + var jobStatus: String? = null + var jobStatusName: String? = null + var createTime: String? = null + var getJobPerson: String? = null + var getJobTime: String? = null + var firstState: String? = null + var firstStatePhotos: String? = null + var confirmJobPerson: String? = null + var confirmJobTime: String? = null + var handleJobPerson: String? = null + var handleJobTime: String? = null + var handleMessage: String? = null + var handlePhotos: String? = null + var editable: String? = null + var flow: List? = null + + class FlowBean { + /** + * from : 张三 + * to : 李四 + * time : 2019-02-22-12:00:00 + */ + 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/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt index 75a6bd4..7cf9d3e 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt @@ -98,6 +98,15 @@ ): WorkOrderListModel /** + * 获取工单详情 + */ + @GET("/job/info") + suspend fun obtainWorkOrderDetail( + @Header("token") token: String, + @Query("id") id: Long + ): WorkOrderDetailModel + + /** * 获取用户信息 */ @GET("/user/info") diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt index 790fb72..5199e89 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt @@ -96,6 +96,13 @@ } /** + * 获取工单详情 + */ + suspend fun obtainWorkOrderDetail(id: Long): WorkOrderDetailModel { + return api.obtainWorkOrderDetail(AuthenticationHelper.token!!, id) + } + + /** * 获取用户信息 */ suspend fun obtainUserDetail(): UserDetailModel { diff --git a/app/src/main/java/com/casic/app/smartwell/view/WorkOrderDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WorkOrderDetailActivity.kt new file mode 100644 index 0000000..65c6b8e --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/view/WorkOrderDetailActivity.kt @@ -0,0 +1,87 @@ +package com.casic.app.smartwell.view + +import androidx.lifecycle.ViewModelProvider +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi +import com.casic.app.smartwell.R +import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.show +import com.casic.app.smartwell.extensions.showRouteOnMap +import com.casic.app.smartwell.extensions.valueToType +import com.casic.app.smartwell.utils.Constant +import com.casic.app.smartwell.utils.DialogHelper +import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import kotlinx.android.synthetic.main.activity_order_detail.* + +class WorkOrderDetailActivity : BaseActivity() { + + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel + + override fun initLayoutView(): Int = R.layout.activity_order_detail + + override fun setupTopBarLayout() { + + } + + override fun initData() { + val jobId = intent.getStringExtra(Constant.INTENT_PARAM)!! + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) + workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId.toLong()) + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val wellDetail = it.data!! + alarmTypeView.text = wellDetail.alarmContentName + wellCodeView.text = wellDetail.wellCode + wellNameView.text = wellDetail.wellName + wellTypeView.text = wellDetail.wellId.valueToType() +// wellStateView.text = wellDetail.bfztName + installDateView.text = wellDetail.createTime + val depth = wellDetail.deep.toString() + if (depth == "") { + wellDepthView.text = resources.getString(R.string.unknown) + } else { + wellDepthView.text = depth + } + //绑定窨井位置 + val wellPosition = wellDetail.position.toString() + wellLocationView.text = wellPosition + + //转单 + operationButton.setChangeAlphaWhenPress(true) + operationButton.setOnClickListener { + + } + + //导航 + navigationButton.setChangeAlphaWhenPress(true) + navigationButton.setOnClickListener { + val lat = wellDetail.latGaode.toString() + val lng = wellDetail.lngGaode.toString() + if (lat == "" || lng == "") { + "窨井经纬度异常,无法开启导航".show(this) + return@setOnClickListener + } + Poi( + wellDetail.position, + LatLng(lat.toDouble(), lng.toDouble()), + "" + ).showRouteOnMap(this) + } + } + }) + } + + override fun initEvent() { + workOrderDetailViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "数据加载中,请稍后") + } + else -> { + DialogHelper.dismissLoadingDialog() + } + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt index 9faf71d..60e552a 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt @@ -8,8 +8,10 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.TodoWorkOrderListAdapter +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.model.WorkOrderListModel +import com.casic.app.smartwell.view.WorkOrderDetailActivity import com.casic.app.smartwell.vm.WorkOrderListViewModel import com.pengxh.app.multilib.base.BaseFragment import kotlinx.android.synthetic.main.fragment_order_todo.* @@ -100,7 +102,13 @@ fragment.workOrderListAdapter.setOnItemClickListener(object : TodoWorkOrderListAdapter.OnItemClickListener { override fun onClicked(position: Int) { - + val jobId = fragment.dataBeans[position].jobId.toString() + if (jobId == "") { + "工单编号异常,无法查看详情".show(fragment.requireContext()) + return + } + fragment.requireContext() + .navigatePageTo(WorkOrderDetailActivity::class.java, jobId) } override fun onOperationClicked(position: Int) { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e72465c..a7e6f01 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,6 +43,7 @@ + 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 new file mode 100644 index 0000000..91ad645 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -0,0 +1,100 @@ +package com.casic.app.smartwell.model + +class WorkOrderDetailModel { + /** + * code : 200 + * message : success + * data : {"id":1,"wellId":1,"wellCode":"N51F131","wellName":"闸井名称","deep":32,"devcode":"41201802100","position":"宋郎路","coordinateX":"39.899999999","coordinateY":"116.70000000","latBaidu":"39.901694","lngBaidu":"116.709315","latGaode":"","lngGaode":"","alarmId":"1","alarmType":"1","alarmTypeName":"数据异常","alarmContent":"1","alarmContentName":"液位超限","deptid":"1","deptName":"一分公司","jobCode":"201902340484","jobStatus":"0","jobStatusName":"待处理","createTime":"2018-12-27 00:00:00","getJobPerson":"1321321","getJobTime":"2018-12-27 00:00:00","firstState":"现场情况描述","firstStatePhotos":"现场情况图片","confirmJobPerson":"1321321","confirmJobTime":"2018-12-27 00:00:00","handleJobPerson":"1321321","handleJobTime":"2018-12-27 00:00:00","handleMessage":"维护情况描述","handlePhotos":"维护图片","flow":[{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}],"editable":"1"} + */ + var code = 0 + var message: String? = null + var data: DataBean? = null + + class DataBean { + /** + * id : 1 + * wellId : 1 + * wellCode : N51F131 + * wellName : 闸井名称 + * deep : 32 + * devcode : 41201802100 + * position : 宋郎路 + * coordinateX : 39.899999999 + * coordinateY : 116.70000000 + * latBaidu : 39.901694 + * lngBaidu : 116.709315 + * latGaode : + * lngGaode : + * alarmId : 1 + * alarmType : 1 + * alarmTypeName : 数据异常 + * alarmContent : 1 + * alarmContentName : 液位超限 + * deptid : 1 + * deptName : 一分公司 + * jobCode : 201902340484 + * jobStatus : 0 + * jobStatusName : 待处理 + * createTime : 2018-12-27 00:00:00 + * getJobPerson : 1321321 + * getJobTime : 2018-12-27 00:00:00 + * firstState : 现场情况描述 + * firstStatePhotos : 现场情况图片 + * confirmJobPerson : 1321321 + * confirmJobTime : 2018-12-27 00:00:00 + * handleJobPerson : 1321321 + * handleJobTime : 2018-12-27 00:00:00 + * handleMessage : 维护情况描述 + * handlePhotos : 维护图片 + * flow : [{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}] + * editable : 1 + */ + var id = 0 + var wellId = 0 + var wellCode: String? = null + var wellName: String? = null + var deep = 0 + var devcode: String? = null + var position: String? = null + var coordinateX: String? = null + var coordinateY: String? = null + var latBaidu: String? = null + var lngBaidu: String? = null + var latGaode: String? = null + var lngGaode: String? = null + var alarmId: String? = null + var alarmType: String? = null + var alarmTypeName: String? = null + var alarmContent: String? = null + var alarmContentName: String? = null + var deptid: String? = null + var deptName: String? = null + var jobCode: String? = null + var jobStatus: String? = null + var jobStatusName: String? = null + var createTime: String? = null + var getJobPerson: String? = null + var getJobTime: String? = null + var firstState: String? = null + var firstStatePhotos: String? = null + var confirmJobPerson: String? = null + var confirmJobTime: String? = null + var handleJobPerson: String? = null + var handleJobTime: String? = null + var handleMessage: String? = null + var handlePhotos: String? = null + var editable: String? = null + var flow: List? = null + + class FlowBean { + /** + * from : 张三 + * to : 李四 + * time : 2019-02-22-12:00:00 + */ + 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/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt index 75a6bd4..7cf9d3e 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt @@ -98,6 +98,15 @@ ): WorkOrderListModel /** + * 获取工单详情 + */ + @GET("/job/info") + suspend fun obtainWorkOrderDetail( + @Header("token") token: String, + @Query("id") id: Long + ): WorkOrderDetailModel + + /** * 获取用户信息 */ @GET("/user/info") diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt index 790fb72..5199e89 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt @@ -96,6 +96,13 @@ } /** + * 获取工单详情 + */ + suspend fun obtainWorkOrderDetail(id: Long): WorkOrderDetailModel { + return api.obtainWorkOrderDetail(AuthenticationHelper.token!!, id) + } + + /** * 获取用户信息 */ suspend fun obtainUserDetail(): UserDetailModel { diff --git a/app/src/main/java/com/casic/app/smartwell/view/WorkOrderDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WorkOrderDetailActivity.kt new file mode 100644 index 0000000..65c6b8e --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/view/WorkOrderDetailActivity.kt @@ -0,0 +1,87 @@ +package com.casic.app.smartwell.view + +import androidx.lifecycle.ViewModelProvider +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi +import com.casic.app.smartwell.R +import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.show +import com.casic.app.smartwell.extensions.showRouteOnMap +import com.casic.app.smartwell.extensions.valueToType +import com.casic.app.smartwell.utils.Constant +import com.casic.app.smartwell.utils.DialogHelper +import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import kotlinx.android.synthetic.main.activity_order_detail.* + +class WorkOrderDetailActivity : BaseActivity() { + + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel + + override fun initLayoutView(): Int = R.layout.activity_order_detail + + override fun setupTopBarLayout() { + + } + + override fun initData() { + val jobId = intent.getStringExtra(Constant.INTENT_PARAM)!! + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) + workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId.toLong()) + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val wellDetail = it.data!! + alarmTypeView.text = wellDetail.alarmContentName + wellCodeView.text = wellDetail.wellCode + wellNameView.text = wellDetail.wellName + wellTypeView.text = wellDetail.wellId.valueToType() +// wellStateView.text = wellDetail.bfztName + installDateView.text = wellDetail.createTime + val depth = wellDetail.deep.toString() + if (depth == "") { + wellDepthView.text = resources.getString(R.string.unknown) + } else { + wellDepthView.text = depth + } + //绑定窨井位置 + val wellPosition = wellDetail.position.toString() + wellLocationView.text = wellPosition + + //转单 + operationButton.setChangeAlphaWhenPress(true) + operationButton.setOnClickListener { + + } + + //导航 + navigationButton.setChangeAlphaWhenPress(true) + navigationButton.setOnClickListener { + val lat = wellDetail.latGaode.toString() + val lng = wellDetail.lngGaode.toString() + if (lat == "" || lng == "") { + "窨井经纬度异常,无法开启导航".show(this) + return@setOnClickListener + } + Poi( + wellDetail.position, + LatLng(lat.toDouble(), lng.toDouble()), + "" + ).showRouteOnMap(this) + } + } + }) + } + + override fun initEvent() { + workOrderDetailViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "数据加载中,请稍后") + } + else -> { + DialogHelper.dismissLoadingDialog() + } + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt index 9faf71d..60e552a 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt @@ -8,8 +8,10 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.TodoWorkOrderListAdapter +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.model.WorkOrderListModel +import com.casic.app.smartwell.view.WorkOrderDetailActivity import com.casic.app.smartwell.vm.WorkOrderListViewModel import com.pengxh.app.multilib.base.BaseFragment import kotlinx.android.synthetic.main.fragment_order_todo.* @@ -100,7 +102,13 @@ fragment.workOrderListAdapter.setOnItemClickListener(object : TodoWorkOrderListAdapter.OnItemClickListener { override fun onClicked(position: Int) { - + val jobId = fragment.dataBeans[position].jobId.toString() + if (jobId == "") { + "工单编号异常,无法查看详情".show(fragment.requireContext()) + return + } + fragment.requireContext() + .navigatePageTo(WorkOrderDetailActivity::class.java, jobId) } override fun onOperationClicked(position: Int) { diff --git a/app/src/main/java/com/casic/app/smartwell/vm/WorkOrderDetailViewModel.kt b/app/src/main/java/com/casic/app/smartwell/vm/WorkOrderDetailViewModel.kt new file mode 100644 index 0000000..74f8188 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/vm/WorkOrderDetailViewModel.kt @@ -0,0 +1,21 @@ +package com.casic.app.smartwell.vm + +import androidx.lifecycle.MutableLiveData +import com.casic.app.smartwell.base.BaseViewModel +import com.casic.app.smartwell.extensions.launch +import com.casic.app.smartwell.model.WorkOrderDetailModel +import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.utils.retrofit.RetrofitServiceManager + +class WorkOrderDetailViewModel : BaseViewModel() { + + val detailModel = MutableLiveData() + + fun obtainWorkOrderDetail(id: Long) = launch({ + loadState.value = LoadState.Loading + detailModel.value = RetrofitServiceManager.obtainWorkOrderDetail(id) + loadState.value = LoadState.Success + }, { + loadState.value = LoadState.Fail + }) +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e72465c..a7e6f01 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,6 +43,7 @@ + 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 new file mode 100644 index 0000000..91ad645 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -0,0 +1,100 @@ +package com.casic.app.smartwell.model + +class WorkOrderDetailModel { + /** + * code : 200 + * message : success + * data : {"id":1,"wellId":1,"wellCode":"N51F131","wellName":"闸井名称","deep":32,"devcode":"41201802100","position":"宋郎路","coordinateX":"39.899999999","coordinateY":"116.70000000","latBaidu":"39.901694","lngBaidu":"116.709315","latGaode":"","lngGaode":"","alarmId":"1","alarmType":"1","alarmTypeName":"数据异常","alarmContent":"1","alarmContentName":"液位超限","deptid":"1","deptName":"一分公司","jobCode":"201902340484","jobStatus":"0","jobStatusName":"待处理","createTime":"2018-12-27 00:00:00","getJobPerson":"1321321","getJobTime":"2018-12-27 00:00:00","firstState":"现场情况描述","firstStatePhotos":"现场情况图片","confirmJobPerson":"1321321","confirmJobTime":"2018-12-27 00:00:00","handleJobPerson":"1321321","handleJobTime":"2018-12-27 00:00:00","handleMessage":"维护情况描述","handlePhotos":"维护图片","flow":[{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}],"editable":"1"} + */ + var code = 0 + var message: String? = null + var data: DataBean? = null + + class DataBean { + /** + * id : 1 + * wellId : 1 + * wellCode : N51F131 + * wellName : 闸井名称 + * deep : 32 + * devcode : 41201802100 + * position : 宋郎路 + * coordinateX : 39.899999999 + * coordinateY : 116.70000000 + * latBaidu : 39.901694 + * lngBaidu : 116.709315 + * latGaode : + * lngGaode : + * alarmId : 1 + * alarmType : 1 + * alarmTypeName : 数据异常 + * alarmContent : 1 + * alarmContentName : 液位超限 + * deptid : 1 + * deptName : 一分公司 + * jobCode : 201902340484 + * jobStatus : 0 + * jobStatusName : 待处理 + * createTime : 2018-12-27 00:00:00 + * getJobPerson : 1321321 + * getJobTime : 2018-12-27 00:00:00 + * firstState : 现场情况描述 + * firstStatePhotos : 现场情况图片 + * confirmJobPerson : 1321321 + * confirmJobTime : 2018-12-27 00:00:00 + * handleJobPerson : 1321321 + * handleJobTime : 2018-12-27 00:00:00 + * handleMessage : 维护情况描述 + * handlePhotos : 维护图片 + * flow : [{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}] + * editable : 1 + */ + var id = 0 + var wellId = 0 + var wellCode: String? = null + var wellName: String? = null + var deep = 0 + var devcode: String? = null + var position: String? = null + var coordinateX: String? = null + var coordinateY: String? = null + var latBaidu: String? = null + var lngBaidu: String? = null + var latGaode: String? = null + var lngGaode: String? = null + var alarmId: String? = null + var alarmType: String? = null + var alarmTypeName: String? = null + var alarmContent: String? = null + var alarmContentName: String? = null + var deptid: String? = null + var deptName: String? = null + var jobCode: String? = null + var jobStatus: String? = null + var jobStatusName: String? = null + var createTime: String? = null + var getJobPerson: String? = null + var getJobTime: String? = null + var firstState: String? = null + var firstStatePhotos: String? = null + var confirmJobPerson: String? = null + var confirmJobTime: String? = null + var handleJobPerson: String? = null + var handleJobTime: String? = null + var handleMessage: String? = null + var handlePhotos: String? = null + var editable: String? = null + var flow: List? = null + + class FlowBean { + /** + * from : 张三 + * to : 李四 + * time : 2019-02-22-12:00:00 + */ + 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/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt index 75a6bd4..7cf9d3e 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt @@ -98,6 +98,15 @@ ): WorkOrderListModel /** + * 获取工单详情 + */ + @GET("/job/info") + suspend fun obtainWorkOrderDetail( + @Header("token") token: String, + @Query("id") id: Long + ): WorkOrderDetailModel + + /** * 获取用户信息 */ @GET("/user/info") diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt index 790fb72..5199e89 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt @@ -96,6 +96,13 @@ } /** + * 获取工单详情 + */ + suspend fun obtainWorkOrderDetail(id: Long): WorkOrderDetailModel { + return api.obtainWorkOrderDetail(AuthenticationHelper.token!!, id) + } + + /** * 获取用户信息 */ suspend fun obtainUserDetail(): UserDetailModel { diff --git a/app/src/main/java/com/casic/app/smartwell/view/WorkOrderDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WorkOrderDetailActivity.kt new file mode 100644 index 0000000..65c6b8e --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/view/WorkOrderDetailActivity.kt @@ -0,0 +1,87 @@ +package com.casic.app.smartwell.view + +import androidx.lifecycle.ViewModelProvider +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi +import com.casic.app.smartwell.R +import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.show +import com.casic.app.smartwell.extensions.showRouteOnMap +import com.casic.app.smartwell.extensions.valueToType +import com.casic.app.smartwell.utils.Constant +import com.casic.app.smartwell.utils.DialogHelper +import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import kotlinx.android.synthetic.main.activity_order_detail.* + +class WorkOrderDetailActivity : BaseActivity() { + + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel + + override fun initLayoutView(): Int = R.layout.activity_order_detail + + override fun setupTopBarLayout() { + + } + + override fun initData() { + val jobId = intent.getStringExtra(Constant.INTENT_PARAM)!! + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) + workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId.toLong()) + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val wellDetail = it.data!! + alarmTypeView.text = wellDetail.alarmContentName + wellCodeView.text = wellDetail.wellCode + wellNameView.text = wellDetail.wellName + wellTypeView.text = wellDetail.wellId.valueToType() +// wellStateView.text = wellDetail.bfztName + installDateView.text = wellDetail.createTime + val depth = wellDetail.deep.toString() + if (depth == "") { + wellDepthView.text = resources.getString(R.string.unknown) + } else { + wellDepthView.text = depth + } + //绑定窨井位置 + val wellPosition = wellDetail.position.toString() + wellLocationView.text = wellPosition + + //转单 + operationButton.setChangeAlphaWhenPress(true) + operationButton.setOnClickListener { + + } + + //导航 + navigationButton.setChangeAlphaWhenPress(true) + navigationButton.setOnClickListener { + val lat = wellDetail.latGaode.toString() + val lng = wellDetail.lngGaode.toString() + if (lat == "" || lng == "") { + "窨井经纬度异常,无法开启导航".show(this) + return@setOnClickListener + } + Poi( + wellDetail.position, + LatLng(lat.toDouble(), lng.toDouble()), + "" + ).showRouteOnMap(this) + } + } + }) + } + + override fun initEvent() { + workOrderDetailViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "数据加载中,请稍后") + } + else -> { + DialogHelper.dismissLoadingDialog() + } + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt index 9faf71d..60e552a 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt @@ -8,8 +8,10 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.TodoWorkOrderListAdapter +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.model.WorkOrderListModel +import com.casic.app.smartwell.view.WorkOrderDetailActivity import com.casic.app.smartwell.vm.WorkOrderListViewModel import com.pengxh.app.multilib.base.BaseFragment import kotlinx.android.synthetic.main.fragment_order_todo.* @@ -100,7 +102,13 @@ fragment.workOrderListAdapter.setOnItemClickListener(object : TodoWorkOrderListAdapter.OnItemClickListener { override fun onClicked(position: Int) { - + val jobId = fragment.dataBeans[position].jobId.toString() + if (jobId == "") { + "工单编号异常,无法查看详情".show(fragment.requireContext()) + return + } + fragment.requireContext() + .navigatePageTo(WorkOrderDetailActivity::class.java, jobId) } override fun onOperationClicked(position: Int) { diff --git a/app/src/main/java/com/casic/app/smartwell/vm/WorkOrderDetailViewModel.kt b/app/src/main/java/com/casic/app/smartwell/vm/WorkOrderDetailViewModel.kt new file mode 100644 index 0000000..74f8188 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/vm/WorkOrderDetailViewModel.kt @@ -0,0 +1,21 @@ +package com.casic.app.smartwell.vm + +import androidx.lifecycle.MutableLiveData +import com.casic.app.smartwell.base.BaseViewModel +import com.casic.app.smartwell.extensions.launch +import com.casic.app.smartwell.model.WorkOrderDetailModel +import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.utils.retrofit.RetrofitServiceManager + +class WorkOrderDetailViewModel : BaseViewModel() { + + val detailModel = MutableLiveData() + + fun obtainWorkOrderDetail(id: Long) = launch({ + loadState.value = LoadState.Loading + detailModel.value = RetrofitServiceManager.obtainWorkOrderDetail(id) + loadState.value = LoadState.Success + }, { + loadState.value = LoadState.Fail + }) +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_order_detail.xml b/app/src/main/res/layout/activity_order_detail.xml new file mode 100644 index 0000000..ba0b02b --- /dev/null +++ b/app/src/main/res/layout/activity_order_detail.xml @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e72465c..a7e6f01 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,6 +43,7 @@ + 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 new file mode 100644 index 0000000..91ad645 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/model/WorkOrderDetailModel.kt @@ -0,0 +1,100 @@ +package com.casic.app.smartwell.model + +class WorkOrderDetailModel { + /** + * code : 200 + * message : success + * data : {"id":1,"wellId":1,"wellCode":"N51F131","wellName":"闸井名称","deep":32,"devcode":"41201802100","position":"宋郎路","coordinateX":"39.899999999","coordinateY":"116.70000000","latBaidu":"39.901694","lngBaidu":"116.709315","latGaode":"","lngGaode":"","alarmId":"1","alarmType":"1","alarmTypeName":"数据异常","alarmContent":"1","alarmContentName":"液位超限","deptid":"1","deptName":"一分公司","jobCode":"201902340484","jobStatus":"0","jobStatusName":"待处理","createTime":"2018-12-27 00:00:00","getJobPerson":"1321321","getJobTime":"2018-12-27 00:00:00","firstState":"现场情况描述","firstStatePhotos":"现场情况图片","confirmJobPerson":"1321321","confirmJobTime":"2018-12-27 00:00:00","handleJobPerson":"1321321","handleJobTime":"2018-12-27 00:00:00","handleMessage":"维护情况描述","handlePhotos":"维护图片","flow":[{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}],"editable":"1"} + */ + var code = 0 + var message: String? = null + var data: DataBean? = null + + class DataBean { + /** + * id : 1 + * wellId : 1 + * wellCode : N51F131 + * wellName : 闸井名称 + * deep : 32 + * devcode : 41201802100 + * position : 宋郎路 + * coordinateX : 39.899999999 + * coordinateY : 116.70000000 + * latBaidu : 39.901694 + * lngBaidu : 116.709315 + * latGaode : + * lngGaode : + * alarmId : 1 + * alarmType : 1 + * alarmTypeName : 数据异常 + * alarmContent : 1 + * alarmContentName : 液位超限 + * deptid : 1 + * deptName : 一分公司 + * jobCode : 201902340484 + * jobStatus : 0 + * jobStatusName : 待处理 + * createTime : 2018-12-27 00:00:00 + * getJobPerson : 1321321 + * getJobTime : 2018-12-27 00:00:00 + * firstState : 现场情况描述 + * firstStatePhotos : 现场情况图片 + * confirmJobPerson : 1321321 + * confirmJobTime : 2018-12-27 00:00:00 + * handleJobPerson : 1321321 + * handleJobTime : 2018-12-27 00:00:00 + * handleMessage : 维护情况描述 + * handlePhotos : 维护图片 + * flow : [{"from":"张三","to":"李四","time":"2019-02-22-12:00:00"}] + * editable : 1 + */ + var id = 0 + var wellId = 0 + var wellCode: String? = null + var wellName: String? = null + var deep = 0 + var devcode: String? = null + var position: String? = null + var coordinateX: String? = null + var coordinateY: String? = null + var latBaidu: String? = null + var lngBaidu: String? = null + var latGaode: String? = null + var lngGaode: String? = null + var alarmId: String? = null + var alarmType: String? = null + var alarmTypeName: String? = null + var alarmContent: String? = null + var alarmContentName: String? = null + var deptid: String? = null + var deptName: String? = null + var jobCode: String? = null + var jobStatus: String? = null + var jobStatusName: String? = null + var createTime: String? = null + var getJobPerson: String? = null + var getJobTime: String? = null + var firstState: String? = null + var firstStatePhotos: String? = null + var confirmJobPerson: String? = null + var confirmJobTime: String? = null + var handleJobPerson: String? = null + var handleJobTime: String? = null + var handleMessage: String? = null + var handlePhotos: String? = null + var editable: String? = null + var flow: List? = null + + class FlowBean { + /** + * from : 张三 + * to : 李四 + * time : 2019-02-22-12:00:00 + */ + 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/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt index 75a6bd4..7cf9d3e 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitService.kt @@ -98,6 +98,15 @@ ): WorkOrderListModel /** + * 获取工单详情 + */ + @GET("/job/info") + suspend fun obtainWorkOrderDetail( + @Header("token") token: String, + @Query("id") id: Long + ): WorkOrderDetailModel + + /** * 获取用户信息 */ @GET("/user/info") diff --git a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt index 790fb72..5199e89 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/retrofit/RetrofitServiceManager.kt @@ -96,6 +96,13 @@ } /** + * 获取工单详情 + */ + suspend fun obtainWorkOrderDetail(id: Long): WorkOrderDetailModel { + return api.obtainWorkOrderDetail(AuthenticationHelper.token!!, id) + } + + /** * 获取用户信息 */ suspend fun obtainUserDetail(): UserDetailModel { diff --git a/app/src/main/java/com/casic/app/smartwell/view/WorkOrderDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/WorkOrderDetailActivity.kt new file mode 100644 index 0000000..65c6b8e --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/view/WorkOrderDetailActivity.kt @@ -0,0 +1,87 @@ +package com.casic.app.smartwell.view + +import androidx.lifecycle.ViewModelProvider +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi +import com.casic.app.smartwell.R +import com.casic.app.smartwell.base.BaseActivity +import com.casic.app.smartwell.extensions.show +import com.casic.app.smartwell.extensions.showRouteOnMap +import com.casic.app.smartwell.extensions.valueToType +import com.casic.app.smartwell.utils.Constant +import com.casic.app.smartwell.utils.DialogHelper +import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import kotlinx.android.synthetic.main.activity_order_detail.* + +class WorkOrderDetailActivity : BaseActivity() { + + private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel + + override fun initLayoutView(): Int = R.layout.activity_order_detail + + override fun setupTopBarLayout() { + + } + + override fun initData() { + val jobId = intent.getStringExtra(Constant.INTENT_PARAM)!! + workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) + workOrderDetailViewModel.obtainWorkOrderDetail(id = jobId.toLong()) + workOrderDetailViewModel.detailModel.observe(this, { + if (it.code == 200) { + val wellDetail = it.data!! + alarmTypeView.text = wellDetail.alarmContentName + wellCodeView.text = wellDetail.wellCode + wellNameView.text = wellDetail.wellName + wellTypeView.text = wellDetail.wellId.valueToType() +// wellStateView.text = wellDetail.bfztName + installDateView.text = wellDetail.createTime + val depth = wellDetail.deep.toString() + if (depth == "") { + wellDepthView.text = resources.getString(R.string.unknown) + } else { + wellDepthView.text = depth + } + //绑定窨井位置 + val wellPosition = wellDetail.position.toString() + wellLocationView.text = wellPosition + + //转单 + operationButton.setChangeAlphaWhenPress(true) + operationButton.setOnClickListener { + + } + + //导航 + navigationButton.setChangeAlphaWhenPress(true) + navigationButton.setOnClickListener { + val lat = wellDetail.latGaode.toString() + val lng = wellDetail.lngGaode.toString() + if (lat == "" || lng == "") { + "窨井经纬度异常,无法开启导航".show(this) + return@setOnClickListener + } + Poi( + wellDetail.position, + LatLng(lat.toDouble(), lng.toDouble()), + "" + ).showRouteOnMap(this) + } + } + }) + } + + override fun initEvent() { + workOrderDetailViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "数据加载中,请稍后") + } + else -> { + DialogHelper.dismissLoadingDialog() + } + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt b/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt index 9faf71d..60e552a 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/fragment/TodoOrderFragment.kt @@ -8,8 +8,10 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.casic.app.smartwell.R import com.casic.app.smartwell.adapter.TodoWorkOrderListAdapter +import com.casic.app.smartwell.extensions.navigatePageTo import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.model.WorkOrderListModel +import com.casic.app.smartwell.view.WorkOrderDetailActivity import com.casic.app.smartwell.vm.WorkOrderListViewModel import com.pengxh.app.multilib.base.BaseFragment import kotlinx.android.synthetic.main.fragment_order_todo.* @@ -100,7 +102,13 @@ fragment.workOrderListAdapter.setOnItemClickListener(object : TodoWorkOrderListAdapter.OnItemClickListener { override fun onClicked(position: Int) { - + val jobId = fragment.dataBeans[position].jobId.toString() + if (jobId == "") { + "工单编号异常,无法查看详情".show(fragment.requireContext()) + return + } + fragment.requireContext() + .navigatePageTo(WorkOrderDetailActivity::class.java, jobId) } override fun onOperationClicked(position: Int) { diff --git a/app/src/main/java/com/casic/app/smartwell/vm/WorkOrderDetailViewModel.kt b/app/src/main/java/com/casic/app/smartwell/vm/WorkOrderDetailViewModel.kt new file mode 100644 index 0000000..74f8188 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/vm/WorkOrderDetailViewModel.kt @@ -0,0 +1,21 @@ +package com.casic.app.smartwell.vm + +import androidx.lifecycle.MutableLiveData +import com.casic.app.smartwell.base.BaseViewModel +import com.casic.app.smartwell.extensions.launch +import com.casic.app.smartwell.model.WorkOrderDetailModel +import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.utils.retrofit.RetrofitServiceManager + +class WorkOrderDetailViewModel : BaseViewModel() { + + val detailModel = MutableLiveData() + + fun obtainWorkOrderDetail(id: Long) = launch({ + loadState.value = LoadState.Loading + detailModel.value = RetrofitServiceManager.obtainWorkOrderDetail(id) + loadState.value = LoadState.Success + }, { + loadState.value = LoadState.Fail + }) +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_order_detail.xml b/app/src/main/res/layout/activity_order_detail.xml new file mode 100644 index 0000000..ba0b02b --- /dev/null +++ b/app/src/main/res/layout/activity_order_detail.xml @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_well_detail.xml b/app/src/main/res/layout/activity_well_detail.xml index 8dcc7c3..2090bfe 100644 --- a/app/src/main/res/layout/activity_well_detail.xml +++ b/app/src/main/res/layout/activity_well_detail.xml @@ -37,7 +37,7 @@ style="@style/textViewStyle" android:layout_alignParentEnd="true" android:text="@string/unknown" - android:textColor="#2255C6" + android:textColor="@color/mainThemeColor" android:textSize="@dimen/menuFontSize" />