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 b1ca3bb..d5ac370 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 @@ -141,6 +141,17 @@ ): SubordinateModel /** + * 转单 + */ + @FormUrlEncoded + @POST("/job/transferJob") + suspend fun transferWorkOrder( + @Header("token") token: String, + @Field("id") id: String, + @Field("transferPerson") transferPerson: String + ): CommonResultModel + + /** * 告警内容列表 * */ @GET("/alarm/contentType") 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 b1ca3bb..d5ac370 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 @@ -141,6 +141,17 @@ ): SubordinateModel /** + * 转单 + */ + @FormUrlEncoded + @POST("/job/transferJob") + suspend fun transferWorkOrder( + @Header("token") token: String, + @Field("id") id: String, + @Field("transferPerson") transferPerson: String + ): CommonResultModel + + /** * 告警内容列表 * */ @GET("/alarm/contentType") 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 047d931..3ae7ee7 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 @@ -130,6 +130,13 @@ } /** + * 转单 + */ + suspend fun transferWorkOrder(id: String, userId: String): CommonResultModel { + return api.transferWorkOrder(AuthenticationHelper.token!!, id, userId) + } + + /** * 告警内容列表 */ suspend fun obtainAlarmContentType(): 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 b1ca3bb..d5ac370 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 @@ -141,6 +141,17 @@ ): SubordinateModel /** + * 转单 + */ + @FormUrlEncoded + @POST("/job/transferJob") + suspend fun transferWorkOrder( + @Header("token") token: String, + @Field("id") id: String, + @Field("transferPerson") transferPerson: String + ): CommonResultModel + + /** * 告警内容列表 * */ @GET("/alarm/contentType") 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 047d931..3ae7ee7 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 @@ -130,6 +130,13 @@ } /** + * 转单 + */ + suspend fun transferWorkOrder(id: String, userId: String): CommonResultModel { + return api.transferWorkOrder(AuthenticationHelper.token!!, id, userId) + } + + /** * 告警内容列表 */ suspend fun obtainAlarmContentType(): AlarmContentTypeModel { diff --git a/app/src/main/java/com/casic/app/smartwell/view/OrderDetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/OrderDetermineDetailActivity.kt index 0375107..7e528e6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/OrderDetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/OrderDetermineDetailActivity.kt @@ -14,13 +14,16 @@ import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.extensions.toChinese import com.casic.app.smartwell.utils.* +import com.casic.app.smartwell.view.fragment.UndeterminedFragment 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.widgets.SingleChoiceDialog import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureMimeType +import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import com.pengxh.app.multilib.widget.dialog.AlertMessageDialog import com.pengxh.app.multilib.widget.dialog.BottomActionSheet import com.qmuiteam.qmui.widget.dialog.QMUITipDialog @@ -45,6 +48,7 @@ private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel private lateinit var uploadImageViewModel: UploadImageViewModel private lateinit var subordinateViewModel: SubordinateViewModel + private lateinit var transferOrderViewModel: TransferOrderViewModel private lateinit var imageAdapter: NineGridImageAdapter private lateinit var jobId: String private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集 @@ -68,6 +72,7 @@ workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) subordinateViewModel = ViewModelProvider(this).get(SubordinateViewModel::class.java) + transferOrderViewModel = ViewModelProvider(this).get(TransferOrderViewModel::class.java) } override fun initEvent() { @@ -126,7 +131,31 @@ .setOnSingleChoiceClickListener(object : SingleChoiceDialog.OnSingleChoiceClickListener { override fun onItemClick(position: Int) { + val personBean = subordinate.data!![position] + AlertControlDialog.Builder() + .setContext(this@OrderDetermineDetailActivity) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + if (orderDetail.jobId.toString() == "") { + "工单ID异常,无法接单".show(this@OrderDetermineDetailActivity) + return + } + transferOrderViewModel.transferWorkOrder( + id = orderDetail.jobId!!, + userId = personBean.id!! + ) + } + override fun onCancelClick() { + + } + }) + .build().show() } }).build().show() } @@ -174,9 +203,30 @@ imageAdapter.deleteImage(position) } }) + uploadImageViewModel.loadState.observe(this, { dismissLoadingDialog() }) + + //转单状态处理 + transferOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "转单中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "转单成功".show(this) + //通知列表刷新数据 + UndeterminedFragment.sendEmptyMessage(Constant.ORDER_DETERMINED_OK) + 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 b1ca3bb..d5ac370 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 @@ -141,6 +141,17 @@ ): SubordinateModel /** + * 转单 + */ + @FormUrlEncoded + @POST("/job/transferJob") + suspend fun transferWorkOrder( + @Header("token") token: String, + @Field("id") id: String, + @Field("transferPerson") transferPerson: String + ): CommonResultModel + + /** * 告警内容列表 * */ @GET("/alarm/contentType") 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 047d931..3ae7ee7 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 @@ -130,6 +130,13 @@ } /** + * 转单 + */ + suspend fun transferWorkOrder(id: String, userId: String): CommonResultModel { + return api.transferWorkOrder(AuthenticationHelper.token!!, id, userId) + } + + /** * 告警内容列表 */ suspend fun obtainAlarmContentType(): AlarmContentTypeModel { diff --git a/app/src/main/java/com/casic/app/smartwell/view/OrderDetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/OrderDetermineDetailActivity.kt index 0375107..7e528e6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/OrderDetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/OrderDetermineDetailActivity.kt @@ -14,13 +14,16 @@ import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.extensions.toChinese import com.casic.app.smartwell.utils.* +import com.casic.app.smartwell.view.fragment.UndeterminedFragment 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.widgets.SingleChoiceDialog import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureMimeType +import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import com.pengxh.app.multilib.widget.dialog.AlertMessageDialog import com.pengxh.app.multilib.widget.dialog.BottomActionSheet import com.qmuiteam.qmui.widget.dialog.QMUITipDialog @@ -45,6 +48,7 @@ private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel private lateinit var uploadImageViewModel: UploadImageViewModel private lateinit var subordinateViewModel: SubordinateViewModel + private lateinit var transferOrderViewModel: TransferOrderViewModel private lateinit var imageAdapter: NineGridImageAdapter private lateinit var jobId: String private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集 @@ -68,6 +72,7 @@ workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) subordinateViewModel = ViewModelProvider(this).get(SubordinateViewModel::class.java) + transferOrderViewModel = ViewModelProvider(this).get(TransferOrderViewModel::class.java) } override fun initEvent() { @@ -126,7 +131,31 @@ .setOnSingleChoiceClickListener(object : SingleChoiceDialog.OnSingleChoiceClickListener { override fun onItemClick(position: Int) { + val personBean = subordinate.data!![position] + AlertControlDialog.Builder() + .setContext(this@OrderDetermineDetailActivity) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + if (orderDetail.jobId.toString() == "") { + "工单ID异常,无法接单".show(this@OrderDetermineDetailActivity) + return + } + transferOrderViewModel.transferWorkOrder( + id = orderDetail.jobId!!, + userId = personBean.id!! + ) + } + override fun onCancelClick() { + + } + }) + .build().show() } }).build().show() } @@ -174,9 +203,30 @@ imageAdapter.deleteImage(position) } }) + uploadImageViewModel.loadState.observe(this, { dismissLoadingDialog() }) + + //转单状态处理 + transferOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "转单中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "转单成功".show(this) + //通知列表刷新数据 + UndeterminedFragment.sendEmptyMessage(Constant.ORDER_DETERMINED_OK) + this.finish() + } + else -> { + DialogHelper.dismissLoadingDialog() + "转单失败".show(this) + } + } + }) } private fun selectPicture() { diff --git a/app/src/main/java/com/casic/app/smartwell/vm/TransferOrderViewModel.kt b/app/src/main/java/com/casic/app/smartwell/vm/TransferOrderViewModel.kt new file mode 100644 index 0000000..052c560 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/vm/TransferOrderViewModel.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 TransferOrderViewModel : BaseViewModel() { + + fun transferWorkOrder(id: String, userId: String) = launch({ + loadState.value = LoadState.Loading + RetrofitServiceManager.transferWorkOrder(id, userId) + loadState.value = LoadState.Success + }, { + loadState.value = LoadState.Fail + }) +} \ 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 b1ca3bb..d5ac370 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 @@ -141,6 +141,17 @@ ): SubordinateModel /** + * 转单 + */ + @FormUrlEncoded + @POST("/job/transferJob") + suspend fun transferWorkOrder( + @Header("token") token: String, + @Field("id") id: String, + @Field("transferPerson") transferPerson: String + ): CommonResultModel + + /** * 告警内容列表 * */ @GET("/alarm/contentType") 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 047d931..3ae7ee7 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 @@ -130,6 +130,13 @@ } /** + * 转单 + */ + suspend fun transferWorkOrder(id: String, userId: String): CommonResultModel { + return api.transferWorkOrder(AuthenticationHelper.token!!, id, userId) + } + + /** * 告警内容列表 */ suspend fun obtainAlarmContentType(): AlarmContentTypeModel { diff --git a/app/src/main/java/com/casic/app/smartwell/view/OrderDetermineDetailActivity.kt b/app/src/main/java/com/casic/app/smartwell/view/OrderDetermineDetailActivity.kt index 0375107..7e528e6 100644 --- a/app/src/main/java/com/casic/app/smartwell/view/OrderDetermineDetailActivity.kt +++ b/app/src/main/java/com/casic/app/smartwell/view/OrderDetermineDetailActivity.kt @@ -14,13 +14,16 @@ import com.casic.app.smartwell.extensions.show import com.casic.app.smartwell.extensions.toChinese import com.casic.app.smartwell.utils.* +import com.casic.app.smartwell.view.fragment.UndeterminedFragment 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.widgets.SingleChoiceDialog import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureMimeType +import com.pengxh.app.multilib.widget.dialog.AlertControlDialog import com.pengxh.app.multilib.widget.dialog.AlertMessageDialog import com.pengxh.app.multilib.widget.dialog.BottomActionSheet import com.qmuiteam.qmui.widget.dialog.QMUITipDialog @@ -45,6 +48,7 @@ private lateinit var workOrderDetailViewModel: WorkOrderDetailViewModel private lateinit var uploadImageViewModel: UploadImageViewModel private lateinit var subordinateViewModel: SubordinateViewModel + private lateinit var transferOrderViewModel: TransferOrderViewModel private lateinit var imageAdapter: NineGridImageAdapter private lateinit var jobId: String private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集 @@ -68,6 +72,7 @@ workOrderDetailViewModel = ViewModelProvider(this).get(WorkOrderDetailViewModel::class.java) uploadImageViewModel = ViewModelProvider(this).get(UploadImageViewModel::class.java) subordinateViewModel = ViewModelProvider(this).get(SubordinateViewModel::class.java) + transferOrderViewModel = ViewModelProvider(this).get(TransferOrderViewModel::class.java) } override fun initEvent() { @@ -126,7 +131,31 @@ .setOnSingleChoiceClickListener(object : SingleChoiceDialog.OnSingleChoiceClickListener { override fun onItemClick(position: Int) { + val personBean = subordinate.data!![position] + AlertControlDialog.Builder() + .setContext(this@OrderDetermineDetailActivity) + .setTitle("操作提示") + .setMessage("确定要接单吗") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(object : + AlertControlDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + if (orderDetail.jobId.toString() == "") { + "工单ID异常,无法接单".show(this@OrderDetermineDetailActivity) + return + } + transferOrderViewModel.transferWorkOrder( + id = orderDetail.jobId!!, + userId = personBean.id!! + ) + } + override fun onCancelClick() { + + } + }) + .build().show() } }).build().show() } @@ -174,9 +203,30 @@ imageAdapter.deleteImage(position) } }) + uploadImageViewModel.loadState.observe(this, { dismissLoadingDialog() }) + + //转单状态处理 + transferOrderViewModel.loadState.observe(this, { + when (it) { + is LoadState.Loading -> { + DialogHelper.showLoadingDialog(this, "转单中,请稍后") + } + is LoadState.Success -> { + DialogHelper.dismissLoadingDialog() + "转单成功".show(this) + //通知列表刷新数据 + UndeterminedFragment.sendEmptyMessage(Constant.ORDER_DETERMINED_OK) + this.finish() + } + else -> { + DialogHelper.dismissLoadingDialog() + "转单失败".show(this) + } + } + }) } private fun selectPicture() { diff --git a/app/src/main/java/com/casic/app/smartwell/vm/TransferOrderViewModel.kt b/app/src/main/java/com/casic/app/smartwell/vm/TransferOrderViewModel.kt new file mode 100644 index 0000000..052c560 --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/vm/TransferOrderViewModel.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 TransferOrderViewModel : BaseViewModel() { + + fun transferWorkOrder(id: String, userId: String) = launch({ + loadState.value = LoadState.Loading + RetrofitServiceManager.transferWorkOrder(id, userId) + loadState.value = LoadState.Success + }, { + loadState.value = LoadState.Fail + }) +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/widgets/SingleChoiceDialog.kt b/app/src/main/java/com/casic/app/smartwell/widgets/SingleChoiceDialog.kt index 3eca8e0..8ab08c6 100644 --- a/app/src/main/java/com/casic/app/smartwell/widgets/SingleChoiceDialog.kt +++ b/app/src/main/java/com/casic/app/smartwell/widgets/SingleChoiceDialog.kt @@ -46,8 +46,8 @@ super.onCreate(savedInstanceState) configDialogLayout() setContentView(R.layout.dialog_single_choice) - setCancelable(false) - setCanceledOnTouchOutside(false) + setCancelable(true) + setCanceledOnTouchOutside(true) val itemListView = findViewById(R.id.itemListView) itemListView.adapter = ItemListAdapter() itemListView.onItemClickListener = AdapterView.OnItemClickListener { _, _, position, _ ->