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 be269f9..9c34038 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 @@ -200,6 +200,22 @@ ): CommonResultModel /** + * 完成工单 + * + * @param id 工单id + * @param handleMessage 现场情况描述 + * @param handlePhotos 现场情况照片路径集合 + */ + @FormUrlEncoded + @POST("/job/overJob") + suspend fun completeWorkOrder( + @Header("token") token: String, + @Field("id") id: String, + @Field("handleMessage") handleMessage: String, + @Field("handlePhotos") handlePhotos: String + ): CommonResultModel + + /** * 告警内容列表 * @param alarmType 告警类型 * */ 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 be269f9..9c34038 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 @@ -200,6 +200,22 @@ ): CommonResultModel /** + * 完成工单 + * + * @param id 工单id + * @param handleMessage 现场情况描述 + * @param handlePhotos 现场情况照片路径集合 + */ + @FormUrlEncoded + @POST("/job/overJob") + suspend fun completeWorkOrder( + @Header("token") token: String, + @Field("id") id: String, + @Field("handleMessage") handleMessage: String, + @Field("handlePhotos") handlePhotos: String + ): CommonResultModel + + /** * 告警内容列表 * @param alarmType 告警类型 * */ 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 c6cf6b9..a7106b5 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 @@ -150,6 +150,17 @@ } /** + * 完成工单 + */ + suspend fun completeWorkOrder( + id: String, handleMessage: String, handlePhotos: String + ): CommonResultModel { + return api.completeWorkOrder( + AuthenticationHelper.token!!, id, handleMessage, handlePhotos + ) + } + + /** * 告警内容列表 */ suspend fun obtainAlarmContentType(alarmType: String): AlarmContentTypeModel { 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 be269f9..9c34038 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 @@ -200,6 +200,22 @@ ): CommonResultModel /** + * 完成工单 + * + * @param id 工单id + * @param handleMessage 现场情况描述 + * @param handlePhotos 现场情况照片路径集合 + */ + @FormUrlEncoded + @POST("/job/overJob") + suspend fun completeWorkOrder( + @Header("token") token: String, + @Field("id") id: String, + @Field("handleMessage") handleMessage: String, + @Field("handlePhotos") handlePhotos: String + ): CommonResultModel + + /** * 告警内容列表 * @param alarmType 告警类型 * */ 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 c6cf6b9..a7106b5 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 @@ -150,6 +150,17 @@ } /** + * 完成工单 + */ + suspend fun completeWorkOrder( + id: String, handleMessage: String, handlePhotos: String + ): CommonResultModel { + return api.completeWorkOrder( + AuthenticationHelper.token!!, id, handleMessage, handlePhotos + ) + } + + /** * 告警内容列表 */ suspend fun obtainAlarmContentType(alarmType: String): AlarmContentTypeModel { 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 a7fa455..b7a51ce 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 @@ -15,11 +15,9 @@ import com.casic.app.smartwell.base.BaseActivity import com.casic.app.smartwell.extensions.* import com.casic.app.smartwell.utils.* +import com.casic.app.smartwell.view.fragment.CompletedOrderFragment import com.casic.app.smartwell.view.fragment.InHandleOrderFragment -import com.casic.app.smartwell.vm.SubordinateViewModel -import com.casic.app.smartwell.vm.TransferOrderViewModel -import com.casic.app.smartwell.vm.UploadImageViewModel -import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import com.casic.app.smartwell.vm.* import com.casic.app.smartwell.widgets.SingleChoiceDialog import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig @@ -42,6 +40,7 @@ import kotlinx.android.synthetic.main.activity_order_inhandle_detail.inputLengthView import kotlinx.android.synthetic.main.activity_order_inhandle_detail.orderCodeView import kotlinx.android.synthetic.main.activity_order_inhandle_detail.sceneEditView +import kotlinx.android.synthetic.main.activity_order_inhandle_detail.submitButton import kotlinx.android.synthetic.main.activity_order_inhandle_detail.transferOrderButton import kotlinx.android.synthetic.main.activity_order_inhandle_detail.wellCodeView import kotlinx.android.synthetic.main.activity_order_inhandle_detail.wellLocationView @@ -54,6 +53,7 @@ private lateinit var uploadImageViewModel: UploadImageViewModel private lateinit var subordinateViewModel: SubordinateViewModel private lateinit var transferOrderViewModel: TransferOrderViewModel + private lateinit var completeOrderViewModel: CompleteOrderViewModel private lateinit var imageAdapter: NineGridImageAdapter private lateinit var jobId: String private val context: Context = this@InHandleDetailActivity @@ -78,6 +78,7 @@ uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) subordinateViewModel = ViewModelProvider(this).get(SubordinateViewModel::class.java) transferOrderViewModel = ViewModelProvider(this).get(TransferOrderViewModel::class.java) + completeOrderViewModel = ViewModelProvider(this).get(CompleteOrderViewModel::class.java) } override fun initEvent() { @@ -236,6 +237,50 @@ }).build().show() } }) + + //提交工单处理 + submitButton.setChangeAlphaWhenPress(true) + submitButton.setOnClickListener { + val orderId = orderDetail.jobId.toString() + if (orderId == "") { + "工单ID异常,无法确认工单".show(this) + return@setOnClickListener + } + val state = sceneEditView.text.toString().trim() + if (state == "") { + "请输入维护情况".show(this) + return@setOnClickListener + } + if (state.length > 100) { + "请输入少于100个字".show(this) + return@setOnClickListener + } + if (imagePaths.size == 0) { + "请上传维护图片".show(this) + return@setOnClickListener + } + //弹窗提示用户 + AlertControlDialog.Builder() + .setContext(this) + .setTitle("操作提示") + .setMessage("确定要提交吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + completeOrderViewModel.completeWorkOrder( + id = orderId, + handleMessage = state, + handlePhotos = imagePaths.reformat() + ) + } + + override fun onCancelClick() { + + } + }).build().show() + } } }) @@ -309,6 +354,27 @@ } } }) + + //处理完成工单状态处理 + completeOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "处理中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "工单处理成功".show(this) + //通知列表刷新数据 + InHandleOrderFragment.sendEmptyMessage(Constant.ORDER_IN_HANDLE) + CompletedOrderFragment.sendEmptyMessage(Constant.ORDER_COMPLETED) + this.finish() + } + else -> { + DialogHelper.dismissLoadingDialog() + "工单处理失败".show(this) + } + } + }) } private fun selectPicture() { 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 be269f9..9c34038 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 @@ -200,6 +200,22 @@ ): CommonResultModel /** + * 完成工单 + * + * @param id 工单id + * @param handleMessage 现场情况描述 + * @param handlePhotos 现场情况照片路径集合 + */ + @FormUrlEncoded + @POST("/job/overJob") + suspend fun completeWorkOrder( + @Header("token") token: String, + @Field("id") id: String, + @Field("handleMessage") handleMessage: String, + @Field("handlePhotos") handlePhotos: String + ): CommonResultModel + + /** * 告警内容列表 * @param alarmType 告警类型 * */ 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 c6cf6b9..a7106b5 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 @@ -150,6 +150,17 @@ } /** + * 完成工单 + */ + suspend fun completeWorkOrder( + id: String, handleMessage: String, handlePhotos: String + ): CommonResultModel { + return api.completeWorkOrder( + AuthenticationHelper.token!!, id, handleMessage, handlePhotos + ) + } + + /** * 告警内容列表 */ suspend fun obtainAlarmContentType(alarmType: String): AlarmContentTypeModel { 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 a7fa455..b7a51ce 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 @@ -15,11 +15,9 @@ import com.casic.app.smartwell.base.BaseActivity import com.casic.app.smartwell.extensions.* import com.casic.app.smartwell.utils.* +import com.casic.app.smartwell.view.fragment.CompletedOrderFragment import com.casic.app.smartwell.view.fragment.InHandleOrderFragment -import com.casic.app.smartwell.vm.SubordinateViewModel -import com.casic.app.smartwell.vm.TransferOrderViewModel -import com.casic.app.smartwell.vm.UploadImageViewModel -import com.casic.app.smartwell.vm.WorkOrderDetailViewModel +import com.casic.app.smartwell.vm.* import com.casic.app.smartwell.widgets.SingleChoiceDialog import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig @@ -42,6 +40,7 @@ import kotlinx.android.synthetic.main.activity_order_inhandle_detail.inputLengthView import kotlinx.android.synthetic.main.activity_order_inhandle_detail.orderCodeView import kotlinx.android.synthetic.main.activity_order_inhandle_detail.sceneEditView +import kotlinx.android.synthetic.main.activity_order_inhandle_detail.submitButton import kotlinx.android.synthetic.main.activity_order_inhandle_detail.transferOrderButton import kotlinx.android.synthetic.main.activity_order_inhandle_detail.wellCodeView import kotlinx.android.synthetic.main.activity_order_inhandle_detail.wellLocationView @@ -54,6 +53,7 @@ private lateinit var uploadImageViewModel: UploadImageViewModel private lateinit var subordinateViewModel: SubordinateViewModel private lateinit var transferOrderViewModel: TransferOrderViewModel + private lateinit var completeOrderViewModel: CompleteOrderViewModel private lateinit var imageAdapter: NineGridImageAdapter private lateinit var jobId: String private val context: Context = this@InHandleDetailActivity @@ -78,6 +78,7 @@ uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) subordinateViewModel = ViewModelProvider(this).get(SubordinateViewModel::class.java) transferOrderViewModel = ViewModelProvider(this).get(TransferOrderViewModel::class.java) + completeOrderViewModel = ViewModelProvider(this).get(CompleteOrderViewModel::class.java) } override fun initEvent() { @@ -236,6 +237,50 @@ }).build().show() } }) + + //提交工单处理 + submitButton.setChangeAlphaWhenPress(true) + submitButton.setOnClickListener { + val orderId = orderDetail.jobId.toString() + if (orderId == "") { + "工单ID异常,无法确认工单".show(this) + return@setOnClickListener + } + val state = sceneEditView.text.toString().trim() + if (state == "") { + "请输入维护情况".show(this) + return@setOnClickListener + } + if (state.length > 100) { + "请输入少于100个字".show(this) + return@setOnClickListener + } + if (imagePaths.size == 0) { + "请上传维护图片".show(this) + return@setOnClickListener + } + //弹窗提示用户 + AlertControlDialog.Builder() + .setContext(this) + .setTitle("操作提示") + .setMessage("确定要提交吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + completeOrderViewModel.completeWorkOrder( + id = orderId, + handleMessage = state, + handlePhotos = imagePaths.reformat() + ) + } + + override fun onCancelClick() { + + } + }).build().show() + } } }) @@ -309,6 +354,27 @@ } } }) + + //处理完成工单状态处理 + completeOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "处理中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "工单处理成功".show(this) + //通知列表刷新数据 + InHandleOrderFragment.sendEmptyMessage(Constant.ORDER_IN_HANDLE) + CompletedOrderFragment.sendEmptyMessage(Constant.ORDER_COMPLETED) + this.finish() + } + else -> { + DialogHelper.dismissLoadingDialog() + "工单处理失败".show(this) + } + } + }) } private fun selectPicture() { diff --git a/app/src/main/java/com/casic/app/smartwell/vm/CompleteOrderViewModel.kt b/app/src/main/java/com/casic/app/smartwell/vm/CompleteOrderViewModel.kt new file mode 100644 index 0000000..6de21ce --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/vm/CompleteOrderViewModel.kt @@ -0,0 +1,17 @@ +package com.casic.app.smartwell.vm + +import com.casic.app.smartwell.base.BaseViewModel +import com.casic.app.smartwell.extensions.launch +import com.casic.app.smartwell.utils.LoadState +import com.casic.app.smartwell.utils.retrofit.RetrofitServiceManager + +class CompleteOrderViewModel : BaseViewModel() { + + fun completeWorkOrder(id: String, handleMessage: String, handlePhotos: String) = launch({ + loadState.value = LoadState.Loading + RetrofitServiceManager.completeWorkOrder(id, handleMessage, handlePhotos) + loadState.value = LoadState.Success + }, { + loadState.value = LoadState.Fail + }) +} \ No newline at end of file