diff --git a/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt b/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt index 27b6bab..4d41ff1 100644 --- a/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt +++ b/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt @@ -42,13 +42,15 @@ private var dataBeans: MutableList = ArrayList() private var selectedItems: MutableList = ArrayList() private var batchDeletePositions: MutableList = ArrayList() - private var singleDeletePosition = -1 + private var selectedPosition = -1 private var page = 1 private var isRefresh = false private var isLoadMore = false private var startTime = "" private var endTime = "" private var deviceId = "" + private var editTask = false + private var newTaskName = "" override fun initViewBinding( inflater: LayoutInflater, @@ -151,7 +153,7 @@ super.onClickAction(swipeAction, selected, action) //标题已经把position=0占用,但是size+1,所以需要数据绑定实际position-1 val adapterPosition = selected!!.bindingAdapterPosition - 1 - singleDeletePosition = adapterPosition + selectedPosition = adapterPosition val rowsModel = dataBeans[adapterPosition] if (action?.text == "删除") { AlertControlDialog.Builder() @@ -167,6 +169,7 @@ } override fun onConfirmClick() { + editTask = false swipeAction?.clear() taskViewModel.deleteTask(arrayOf(rowsModel.id)) } @@ -184,7 +187,10 @@ .setOnDialogButtonClickListener(object : AlertInputDialog.OnDialogButtonClickListener { override fun onConfirmClick(value: String) { - "编辑${rowsModel.taskCode}".show(requireContext()) + editTask = true + newTaskName = value + swipeAction?.clear() + taskViewModel.editTask(rowsModel.id, newTaskName) } override fun onCancelClick() {} @@ -262,6 +268,7 @@ ids.add(task.id) } + editTask = false taskViewModel.deleteTask(ids.toTypedArray()) } @@ -335,30 +342,49 @@ taskViewModel.loadState.observe(this) { when (it) { - LoadState.Loading -> LoadingDialogHub.show( - requireActivity(), "删除中,请稍后..." - ) + LoadState.Loading -> { + val message = if (editTask) { + "任务修改中,请稍后..." + } else { + "删除中,请稍后..." + } + LoadingDialogHub.show(requireActivity(), message) + } LoadState.Success -> { LoadingDialogHub.dismiss() - if (batchDeletePositions.isEmpty()) { - dataBeans.remove(dataBeans[singleDeletePosition]) - taskAdapter.notifyItemRemoved(singleDeletePosition) + if (editTask) { + dataBeans[selectedPosition].taskName = newTaskName + taskAdapter.notifyItemChanged(selectedPosition) taskAdapter.notifyItemRangeChanged( - singleDeletePosition, dataBeans.size - singleDeletePosition + selectedPosition, + dataBeans.size - selectedPosition ) + "修改成功".show(requireActivity()) } else { - batchDeletePositions.forEach { index -> - dataBeans.remove(dataBeans[index]) + if (batchDeletePositions.isEmpty()) { + dataBeans.remove(dataBeans[selectedPosition]) + taskAdapter.notifyItemRemoved(selectedPosition) + taskAdapter.notifyItemRangeChanged( + selectedPosition, dataBeans.size - selectedPosition + ) + } else { + batchDeletePositions.forEach { index -> + dataBeans.remove(dataBeans[index]) + } + taskAdapter.notifyDataSetChanged() } - taskAdapter.notifyDataSetChanged() + "删除成功".show(requireActivity()) } - "删除成功".show(requireActivity()) } else -> { LoadingDialogHub.dismiss() - "删除失败,请重试".show(requireActivity()) + if (editTask) { + "修改失败,请重试".show(requireActivity()) + } else { + "删除失败,请重试".show(requireActivity()) + } } } } diff --git a/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt b/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt index 27b6bab..4d41ff1 100644 --- a/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt +++ b/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt @@ -42,13 +42,15 @@ private var dataBeans: MutableList = ArrayList() private var selectedItems: MutableList = ArrayList() private var batchDeletePositions: MutableList = ArrayList() - private var singleDeletePosition = -1 + private var selectedPosition = -1 private var page = 1 private var isRefresh = false private var isLoadMore = false private var startTime = "" private var endTime = "" private var deviceId = "" + private var editTask = false + private var newTaskName = "" override fun initViewBinding( inflater: LayoutInflater, @@ -151,7 +153,7 @@ super.onClickAction(swipeAction, selected, action) //标题已经把position=0占用,但是size+1,所以需要数据绑定实际position-1 val adapterPosition = selected!!.bindingAdapterPosition - 1 - singleDeletePosition = adapterPosition + selectedPosition = adapterPosition val rowsModel = dataBeans[adapterPosition] if (action?.text == "删除") { AlertControlDialog.Builder() @@ -167,6 +169,7 @@ } override fun onConfirmClick() { + editTask = false swipeAction?.clear() taskViewModel.deleteTask(arrayOf(rowsModel.id)) } @@ -184,7 +187,10 @@ .setOnDialogButtonClickListener(object : AlertInputDialog.OnDialogButtonClickListener { override fun onConfirmClick(value: String) { - "编辑${rowsModel.taskCode}".show(requireContext()) + editTask = true + newTaskName = value + swipeAction?.clear() + taskViewModel.editTask(rowsModel.id, newTaskName) } override fun onCancelClick() {} @@ -262,6 +268,7 @@ ids.add(task.id) } + editTask = false taskViewModel.deleteTask(ids.toTypedArray()) } @@ -335,30 +342,49 @@ taskViewModel.loadState.observe(this) { when (it) { - LoadState.Loading -> LoadingDialogHub.show( - requireActivity(), "删除中,请稍后..." - ) + LoadState.Loading -> { + val message = if (editTask) { + "任务修改中,请稍后..." + } else { + "删除中,请稍后..." + } + LoadingDialogHub.show(requireActivity(), message) + } LoadState.Success -> { LoadingDialogHub.dismiss() - if (batchDeletePositions.isEmpty()) { - dataBeans.remove(dataBeans[singleDeletePosition]) - taskAdapter.notifyItemRemoved(singleDeletePosition) + if (editTask) { + dataBeans[selectedPosition].taskName = newTaskName + taskAdapter.notifyItemChanged(selectedPosition) taskAdapter.notifyItemRangeChanged( - singleDeletePosition, dataBeans.size - singleDeletePosition + selectedPosition, + dataBeans.size - selectedPosition ) + "修改成功".show(requireActivity()) } else { - batchDeletePositions.forEach { index -> - dataBeans.remove(dataBeans[index]) + if (batchDeletePositions.isEmpty()) { + dataBeans.remove(dataBeans[selectedPosition]) + taskAdapter.notifyItemRemoved(selectedPosition) + taskAdapter.notifyItemRangeChanged( + selectedPosition, dataBeans.size - selectedPosition + ) + } else { + batchDeletePositions.forEach { index -> + dataBeans.remove(dataBeans[index]) + } + taskAdapter.notifyDataSetChanged() } - taskAdapter.notifyDataSetChanged() + "删除成功".show(requireActivity()) } - "删除成功".show(requireActivity()) } else -> { LoadingDialogHub.dismiss() - "删除失败,请重试".show(requireActivity()) + if (editTask) { + "修改失败,请重试".show(requireActivity()) + } else { + "删除失败,请重试".show(requireActivity()) + } } } } diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt index 8fa87a2..82bbba7 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt @@ -89,10 +89,19 @@ ): String /** - * 任务详情 + * 编辑任务 + */ + @POST("/system/busPatrolTask/edit") + suspend fun editTask( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 任务轨迹 */ @POST("/system/busPatrolTrack/listPage") - suspend fun getTaskDetail( + suspend fun getTaskRoute( @Header("token") token: String, @Body requestBody: RequestBody, @QueryMap limit: Map, diff --git a/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt b/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt index 27b6bab..4d41ff1 100644 --- a/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt +++ b/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt @@ -42,13 +42,15 @@ private var dataBeans: MutableList = ArrayList() private var selectedItems: MutableList = ArrayList() private var batchDeletePositions: MutableList = ArrayList() - private var singleDeletePosition = -1 + private var selectedPosition = -1 private var page = 1 private var isRefresh = false private var isLoadMore = false private var startTime = "" private var endTime = "" private var deviceId = "" + private var editTask = false + private var newTaskName = "" override fun initViewBinding( inflater: LayoutInflater, @@ -151,7 +153,7 @@ super.onClickAction(swipeAction, selected, action) //标题已经把position=0占用,但是size+1,所以需要数据绑定实际position-1 val adapterPosition = selected!!.bindingAdapterPosition - 1 - singleDeletePosition = adapterPosition + selectedPosition = adapterPosition val rowsModel = dataBeans[adapterPosition] if (action?.text == "删除") { AlertControlDialog.Builder() @@ -167,6 +169,7 @@ } override fun onConfirmClick() { + editTask = false swipeAction?.clear() taskViewModel.deleteTask(arrayOf(rowsModel.id)) } @@ -184,7 +187,10 @@ .setOnDialogButtonClickListener(object : AlertInputDialog.OnDialogButtonClickListener { override fun onConfirmClick(value: String) { - "编辑${rowsModel.taskCode}".show(requireContext()) + editTask = true + newTaskName = value + swipeAction?.clear() + taskViewModel.editTask(rowsModel.id, newTaskName) } override fun onCancelClick() {} @@ -262,6 +268,7 @@ ids.add(task.id) } + editTask = false taskViewModel.deleteTask(ids.toTypedArray()) } @@ -335,30 +342,49 @@ taskViewModel.loadState.observe(this) { when (it) { - LoadState.Loading -> LoadingDialogHub.show( - requireActivity(), "删除中,请稍后..." - ) + LoadState.Loading -> { + val message = if (editTask) { + "任务修改中,请稍后..." + } else { + "删除中,请稍后..." + } + LoadingDialogHub.show(requireActivity(), message) + } LoadState.Success -> { LoadingDialogHub.dismiss() - if (batchDeletePositions.isEmpty()) { - dataBeans.remove(dataBeans[singleDeletePosition]) - taskAdapter.notifyItemRemoved(singleDeletePosition) + if (editTask) { + dataBeans[selectedPosition].taskName = newTaskName + taskAdapter.notifyItemChanged(selectedPosition) taskAdapter.notifyItemRangeChanged( - singleDeletePosition, dataBeans.size - singleDeletePosition + selectedPosition, + dataBeans.size - selectedPosition ) + "修改成功".show(requireActivity()) } else { - batchDeletePositions.forEach { index -> - dataBeans.remove(dataBeans[index]) + if (batchDeletePositions.isEmpty()) { + dataBeans.remove(dataBeans[selectedPosition]) + taskAdapter.notifyItemRemoved(selectedPosition) + taskAdapter.notifyItemRangeChanged( + selectedPosition, dataBeans.size - selectedPosition + ) + } else { + batchDeletePositions.forEach { index -> + dataBeans.remove(dataBeans[index]) + } + taskAdapter.notifyDataSetChanged() } - taskAdapter.notifyDataSetChanged() + "删除成功".show(requireActivity()) } - "删除成功".show(requireActivity()) } else -> { LoadingDialogHub.dismiss() - "删除失败,请重试".show(requireActivity()) + if (editTask) { + "修改失败,请重试".show(requireActivity()) + } else { + "删除失败,请重试".show(requireActivity()) + } } } } diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt index 8fa87a2..82bbba7 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt @@ -89,10 +89,19 @@ ): String /** - * 任务详情 + * 编辑任务 + */ + @POST("/system/busPatrolTask/edit") + suspend fun editTask( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 任务轨迹 */ @POST("/system/busPatrolTrack/listPage") - suspend fun getTaskDetail( + suspend fun getTaskRoute( @Header("token") token: String, @Body requestBody: RequestBody, @QueryMap limit: Map, diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt index 6aa7556..6753b5c 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt @@ -138,7 +138,7 @@ /** * 任务详情 */ - suspend fun getTaskDetail( + suspend fun getTaskRoute( taskId: String, beginDate: String, endDate: String, @@ -166,7 +166,7 @@ val offsetMap = HashMap() offsetMap["offset"] = offset - return api.getTaskDetail(AuthenticationHelper.token, requestBody, limitMap, offsetMap) + return api.getTaskRoute(AuthenticationHelper.token, requestBody, limitMap, offsetMap) } /** @@ -197,6 +197,19 @@ } /** + * 编辑任务 + * */ + suspend fun editTask(id: String, value: String): String { + val param = JsonObject() + param.addProperty("id", id) + param.addProperty("taskName", value) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.editTask(AuthenticationHelper.token, requestBody) + } + + /** * 获取巡检车列表 */ suspend fun getVehicles(): String { diff --git a/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt b/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt index 27b6bab..4d41ff1 100644 --- a/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt +++ b/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt @@ -42,13 +42,15 @@ private var dataBeans: MutableList = ArrayList() private var selectedItems: MutableList = ArrayList() private var batchDeletePositions: MutableList = ArrayList() - private var singleDeletePosition = -1 + private var selectedPosition = -1 private var page = 1 private var isRefresh = false private var isLoadMore = false private var startTime = "" private var endTime = "" private var deviceId = "" + private var editTask = false + private var newTaskName = "" override fun initViewBinding( inflater: LayoutInflater, @@ -151,7 +153,7 @@ super.onClickAction(swipeAction, selected, action) //标题已经把position=0占用,但是size+1,所以需要数据绑定实际position-1 val adapterPosition = selected!!.bindingAdapterPosition - 1 - singleDeletePosition = adapterPosition + selectedPosition = adapterPosition val rowsModel = dataBeans[adapterPosition] if (action?.text == "删除") { AlertControlDialog.Builder() @@ -167,6 +169,7 @@ } override fun onConfirmClick() { + editTask = false swipeAction?.clear() taskViewModel.deleteTask(arrayOf(rowsModel.id)) } @@ -184,7 +187,10 @@ .setOnDialogButtonClickListener(object : AlertInputDialog.OnDialogButtonClickListener { override fun onConfirmClick(value: String) { - "编辑${rowsModel.taskCode}".show(requireContext()) + editTask = true + newTaskName = value + swipeAction?.clear() + taskViewModel.editTask(rowsModel.id, newTaskName) } override fun onCancelClick() {} @@ -262,6 +268,7 @@ ids.add(task.id) } + editTask = false taskViewModel.deleteTask(ids.toTypedArray()) } @@ -335,30 +342,49 @@ taskViewModel.loadState.observe(this) { when (it) { - LoadState.Loading -> LoadingDialogHub.show( - requireActivity(), "删除中,请稍后..." - ) + LoadState.Loading -> { + val message = if (editTask) { + "任务修改中,请稍后..." + } else { + "删除中,请稍后..." + } + LoadingDialogHub.show(requireActivity(), message) + } LoadState.Success -> { LoadingDialogHub.dismiss() - if (batchDeletePositions.isEmpty()) { - dataBeans.remove(dataBeans[singleDeletePosition]) - taskAdapter.notifyItemRemoved(singleDeletePosition) + if (editTask) { + dataBeans[selectedPosition].taskName = newTaskName + taskAdapter.notifyItemChanged(selectedPosition) taskAdapter.notifyItemRangeChanged( - singleDeletePosition, dataBeans.size - singleDeletePosition + selectedPosition, + dataBeans.size - selectedPosition ) + "修改成功".show(requireActivity()) } else { - batchDeletePositions.forEach { index -> - dataBeans.remove(dataBeans[index]) + if (batchDeletePositions.isEmpty()) { + dataBeans.remove(dataBeans[selectedPosition]) + taskAdapter.notifyItemRemoved(selectedPosition) + taskAdapter.notifyItemRangeChanged( + selectedPosition, dataBeans.size - selectedPosition + ) + } else { + batchDeletePositions.forEach { index -> + dataBeans.remove(dataBeans[index]) + } + taskAdapter.notifyDataSetChanged() } - taskAdapter.notifyDataSetChanged() + "删除成功".show(requireActivity()) } - "删除成功".show(requireActivity()) } else -> { LoadingDialogHub.dismiss() - "删除失败,请重试".show(requireActivity()) + if (editTask) { + "修改失败,请重试".show(requireActivity()) + } else { + "删除失败,请重试".show(requireActivity()) + } } } } diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt index 8fa87a2..82bbba7 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt @@ -89,10 +89,19 @@ ): String /** - * 任务详情 + * 编辑任务 + */ + @POST("/system/busPatrolTask/edit") + suspend fun editTask( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 任务轨迹 */ @POST("/system/busPatrolTrack/listPage") - suspend fun getTaskDetail( + suspend fun getTaskRoute( @Header("token") token: String, @Body requestBody: RequestBody, @QueryMap limit: Map, diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt index 6aa7556..6753b5c 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt @@ -138,7 +138,7 @@ /** * 任务详情 */ - suspend fun getTaskDetail( + suspend fun getTaskRoute( taskId: String, beginDate: String, endDate: String, @@ -166,7 +166,7 @@ val offsetMap = HashMap() offsetMap["offset"] = offset - return api.getTaskDetail(AuthenticationHelper.token, requestBody, limitMap, offsetMap) + return api.getTaskRoute(AuthenticationHelper.token, requestBody, limitMap, offsetMap) } /** @@ -197,6 +197,19 @@ } /** + * 编辑任务 + * */ + suspend fun editTask(id: String, value: String): String { + val param = JsonObject() + param.addProperty("id", id) + param.addProperty("taskName", value) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.editTask(AuthenticationHelper.token, requestBody) + } + + /** * 获取巡检车列表 */ suspend fun getVehicles(): String { diff --git a/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt b/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt index e3e0756..e90c1ee 100644 --- a/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt @@ -54,7 +54,7 @@ binding.selectedDateView.text = "$startDate ~ $endDate" page = 1 - getTaskDetailByPage() + getTaskRouteByPage() } }).build().show() } @@ -63,7 +63,7 @@ binding.maxValueView.setOnEditorActionListener { _, arg, _ -> if (arg == EditorInfo.IME_ACTION_SEARCH) { page = 1 - getTaskDetailByPage() + getTaskRouteByPage() } false } @@ -80,7 +80,7 @@ } page = 1 - getTaskDetailByPage() + getTaskRouteByPage() } override fun onNothingSelected(p0: AdapterView<*>?) { @@ -92,7 +92,7 @@ binding.taskLocationView.setOnEditorActionListener { _, arg, _ -> if (arg == EditorInfo.IME_ACTION_SEARCH) { page = 1 - getTaskDetailByPage() + getTaskRouteByPage() } false } @@ -106,20 +106,20 @@ binding.taskLocationView.setText("") page = 1 - getTaskDetailByPage() + getTaskRouteByPage() } binding.taskDetailLayout.setOnRefreshListener { isRefresh = true //刷新之后页码重置 page = 1 - getTaskDetailByPage() + getTaskRouteByPage() } binding.taskDetailLayout.setOnLoadMoreListener { isLoadMore = true page++ - getTaskDetailByPage() + getTaskRouteByPage() } } @@ -187,11 +187,11 @@ override fun onResume() { super.onResume() swipeAction.clear() - getTaskDetailByPage() + getTaskRouteByPage() } - private fun getTaskDetailByPage() { - taskViewModel.getTaskDetail( + private fun getTaskRouteByPage() { + taskViewModel.getTaskRoute( taskId, startTime, endTime, diff --git a/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt b/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt index 27b6bab..4d41ff1 100644 --- a/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt +++ b/app/src/main/java/com/casic/br/ktd/fragment/TaskPageFragment.kt @@ -42,13 +42,15 @@ private var dataBeans: MutableList = ArrayList() private var selectedItems: MutableList = ArrayList() private var batchDeletePositions: MutableList = ArrayList() - private var singleDeletePosition = -1 + private var selectedPosition = -1 private var page = 1 private var isRefresh = false private var isLoadMore = false private var startTime = "" private var endTime = "" private var deviceId = "" + private var editTask = false + private var newTaskName = "" override fun initViewBinding( inflater: LayoutInflater, @@ -151,7 +153,7 @@ super.onClickAction(swipeAction, selected, action) //标题已经把position=0占用,但是size+1,所以需要数据绑定实际position-1 val adapterPosition = selected!!.bindingAdapterPosition - 1 - singleDeletePosition = adapterPosition + selectedPosition = adapterPosition val rowsModel = dataBeans[adapterPosition] if (action?.text == "删除") { AlertControlDialog.Builder() @@ -167,6 +169,7 @@ } override fun onConfirmClick() { + editTask = false swipeAction?.clear() taskViewModel.deleteTask(arrayOf(rowsModel.id)) } @@ -184,7 +187,10 @@ .setOnDialogButtonClickListener(object : AlertInputDialog.OnDialogButtonClickListener { override fun onConfirmClick(value: String) { - "编辑${rowsModel.taskCode}".show(requireContext()) + editTask = true + newTaskName = value + swipeAction?.clear() + taskViewModel.editTask(rowsModel.id, newTaskName) } override fun onCancelClick() {} @@ -262,6 +268,7 @@ ids.add(task.id) } + editTask = false taskViewModel.deleteTask(ids.toTypedArray()) } @@ -335,30 +342,49 @@ taskViewModel.loadState.observe(this) { when (it) { - LoadState.Loading -> LoadingDialogHub.show( - requireActivity(), "删除中,请稍后..." - ) + LoadState.Loading -> { + val message = if (editTask) { + "任务修改中,请稍后..." + } else { + "删除中,请稍后..." + } + LoadingDialogHub.show(requireActivity(), message) + } LoadState.Success -> { LoadingDialogHub.dismiss() - if (batchDeletePositions.isEmpty()) { - dataBeans.remove(dataBeans[singleDeletePosition]) - taskAdapter.notifyItemRemoved(singleDeletePosition) + if (editTask) { + dataBeans[selectedPosition].taskName = newTaskName + taskAdapter.notifyItemChanged(selectedPosition) taskAdapter.notifyItemRangeChanged( - singleDeletePosition, dataBeans.size - singleDeletePosition + selectedPosition, + dataBeans.size - selectedPosition ) + "修改成功".show(requireActivity()) } else { - batchDeletePositions.forEach { index -> - dataBeans.remove(dataBeans[index]) + if (batchDeletePositions.isEmpty()) { + dataBeans.remove(dataBeans[selectedPosition]) + taskAdapter.notifyItemRemoved(selectedPosition) + taskAdapter.notifyItemRangeChanged( + selectedPosition, dataBeans.size - selectedPosition + ) + } else { + batchDeletePositions.forEach { index -> + dataBeans.remove(dataBeans[index]) + } + taskAdapter.notifyDataSetChanged() } - taskAdapter.notifyDataSetChanged() + "删除成功".show(requireActivity()) } - "删除成功".show(requireActivity()) } else -> { LoadingDialogHub.dismiss() - "删除失败,请重试".show(requireActivity()) + if (editTask) { + "修改失败,请重试".show(requireActivity()) + } else { + "删除失败,请重试".show(requireActivity()) + } } } } diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt index 8fa87a2..82bbba7 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitService.kt @@ -89,10 +89,19 @@ ): String /** - * 任务详情 + * 编辑任务 + */ + @POST("/system/busPatrolTask/edit") + suspend fun editTask( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** + * 任务轨迹 */ @POST("/system/busPatrolTrack/listPage") - suspend fun getTaskDetail( + suspend fun getTaskRoute( @Header("token") token: String, @Body requestBody: RequestBody, @QueryMap limit: Map, diff --git a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt index 6aa7556..6753b5c 100644 --- a/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/ktd/retrofit/RetrofitServiceManager.kt @@ -138,7 +138,7 @@ /** * 任务详情 */ - suspend fun getTaskDetail( + suspend fun getTaskRoute( taskId: String, beginDate: String, endDate: String, @@ -166,7 +166,7 @@ val offsetMap = HashMap() offsetMap["offset"] = offset - return api.getTaskDetail(AuthenticationHelper.token, requestBody, limitMap, offsetMap) + return api.getTaskRoute(AuthenticationHelper.token, requestBody, limitMap, offsetMap) } /** @@ -197,6 +197,19 @@ } /** + * 编辑任务 + * */ + suspend fun editTask(id: String, value: String): String { + val param = JsonObject() + param.addProperty("id", id) + param.addProperty("taskName", value) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.editTask(AuthenticationHelper.token, requestBody) + } + + /** * 获取巡检车列表 */ suspend fun getVehicles(): String { diff --git a/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt b/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt index e3e0756..e90c1ee 100644 --- a/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt +++ b/app/src/main/java/com/casic/br/ktd/view/TaskDetailActivity.kt @@ -54,7 +54,7 @@ binding.selectedDateView.text = "$startDate ~ $endDate" page = 1 - getTaskDetailByPage() + getTaskRouteByPage() } }).build().show() } @@ -63,7 +63,7 @@ binding.maxValueView.setOnEditorActionListener { _, arg, _ -> if (arg == EditorInfo.IME_ACTION_SEARCH) { page = 1 - getTaskDetailByPage() + getTaskRouteByPage() } false } @@ -80,7 +80,7 @@ } page = 1 - getTaskDetailByPage() + getTaskRouteByPage() } override fun onNothingSelected(p0: AdapterView<*>?) { @@ -92,7 +92,7 @@ binding.taskLocationView.setOnEditorActionListener { _, arg, _ -> if (arg == EditorInfo.IME_ACTION_SEARCH) { page = 1 - getTaskDetailByPage() + getTaskRouteByPage() } false } @@ -106,20 +106,20 @@ binding.taskLocationView.setText("") page = 1 - getTaskDetailByPage() + getTaskRouteByPage() } binding.taskDetailLayout.setOnRefreshListener { isRefresh = true //刷新之后页码重置 page = 1 - getTaskDetailByPage() + getTaskRouteByPage() } binding.taskDetailLayout.setOnLoadMoreListener { isLoadMore = true page++ - getTaskDetailByPage() + getTaskRouteByPage() } } @@ -187,11 +187,11 @@ override fun onResume() { super.onResume() swipeAction.clear() - getTaskDetailByPage() + getTaskRouteByPage() } - private fun getTaskDetailByPage() { - taskViewModel.getTaskDetail( + private fun getTaskRouteByPage() { + taskViewModel.getTaskRoute( taskId, startTime, endTime, diff --git a/app/src/main/java/com/casic/br/ktd/vm/TaskViewModel.kt b/app/src/main/java/com/casic/br/ktd/vm/TaskViewModel.kt index 9d146f4..84568f5 100644 --- a/app/src/main/java/com/casic/br/ktd/vm/TaskViewModel.kt +++ b/app/src/main/java/com/casic/br/ktd/vm/TaskViewModel.kt @@ -66,7 +66,7 @@ RetrofitServiceManager.updateTask(id, latitude, longitude, updateTime) }) - fun getTaskDetail( + fun getTaskRoute( taskId: String, beginDate: String, endDate: String, @@ -76,7 +76,7 @@ position: String, offset: Int ) = launch({ - val response = RetrofitServiceManager.getTaskDetail( + val response = RetrofitServiceManager.getTaskRoute( taskId, beginDate, endDate, gas1, gas2, isAlarm, position, offset ) val responseCode = response.separateResponseCode() @@ -121,6 +121,20 @@ loadState.value = LoadState.Fail }) + fun editTask(id: String, value: String) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.editTask(id, value) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + loadState.value = LoadState.Success + } else { + loadState.value = LoadState.Fail + } + }, { + it.printStackTrace() + loadState.value = LoadState.Fail + }) + fun getTaskCount(beginDate: String, endDate: String, type: DateType) = launch({ val response = RetrofitServiceManager.getTaskCount(beginDate, endDate) val responseCode = response.separateResponseCode()