refactor(ReviewActivity): 优化提交流程的时间间隔控制逻辑
- 添加常量 PUSH_TO_NEXT_MIN_INTERVAL_MS 定义最小间隔时间为 1100 毫秒 - 将 firstPushToNextAt 重命名为 firstPushToNextSuccessAt 并初始化为 0L - 在成功响应后记录首次推送成功时间戳 - 使用新的成功时间戳计算延迟间隔 - 将硬编码的 600 毫秒替换为常量 PUSH_TO_NEXT_MIN_INTERVAL_MS
这个提交包含在:
父节点
97394226fb
当前提交
292a4352ac
@ -29,6 +29,10 @@ import io.reactivex.schedulers.Schedulers
|
|||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
class ReviewActivity : BaseListFormLayoutNormalActivity<ItemItem, ItemListVM, ActivityReviewBinding>() {
|
class ReviewActivity : BaseListFormLayoutNormalActivity<ItemItem, ItemListVM, ActivityReviewBinding>() {
|
||||||
|
private companion object {
|
||||||
|
const val PUSH_TO_NEXT_MIN_INTERVAL_MS = 1100L
|
||||||
|
}
|
||||||
|
|
||||||
override fun getLayoutId(): Int = R.layout.activity_review
|
override fun getLayoutId(): Int = R.layout.activity_review
|
||||||
override fun fullscreen(): Boolean = true
|
override fun fullscreen(): Boolean = true
|
||||||
|
|
||||||
@ -101,7 +105,7 @@ class ReviewActivity : BaseListFormLayoutNormalActivity<ItemItem, ItemListVM, Ac
|
|||||||
isSubmitting = true
|
isSubmitting = true
|
||||||
submitDisposable?.dispose()
|
submitDisposable?.dispose()
|
||||||
val service = HttpManager.getApi(Service::class.java)
|
val service = HttpManager.getApi(Service::class.java)
|
||||||
val firstPushToNextAt = System.currentTimeMillis()
|
var firstPushToNextSuccessAt = 0L
|
||||||
submitDisposable = service.pushToNext(
|
submitDisposable = service.pushToNext(
|
||||||
PushToNextRequest(
|
PushToNextRequest(
|
||||||
workProcessInstanceId = workProcessInstanceId,
|
workProcessInstanceId = workProcessInstanceId,
|
||||||
@ -115,6 +119,7 @@ class ReviewActivity : BaseListFormLayoutNormalActivity<ItemItem, ItemListVM, Ac
|
|||||||
IllegalStateException(if (response.msg.isBlank()) "同意失败" else response.msg)
|
IllegalStateException(if (response.msg.isBlank()) "同意失败" else response.msg)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
firstPushToNextSuccessAt = System.currentTimeMillis()
|
||||||
val needHandlerActivityIds = response.data.result.orEmpty().mapNotNull { it.activityId }.distinct()
|
val needHandlerActivityIds = response.data.result.orEmpty().mapNotNull { it.activityId }.distinct()
|
||||||
if (needHandlerActivityIds.isEmpty()) {
|
if (needHandlerActivityIds.isEmpty()) {
|
||||||
Observable.just(emptyList())
|
Observable.just(emptyList())
|
||||||
@ -136,8 +141,8 @@ class ReviewActivity : BaseListFormLayoutNormalActivity<ItemItem, ItemListVM, Ac
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.flatMap { selectedHandler ->
|
}.flatMap { selectedHandler ->
|
||||||
val elapsed = System.currentTimeMillis() - firstPushToNextAt
|
val elapsed = System.currentTimeMillis() - firstPushToNextSuccessAt
|
||||||
val remainingDelayMs = (600L - elapsed).coerceAtLeast(0L)
|
val remainingDelayMs = (PUSH_TO_NEXT_MIN_INTERVAL_MS - elapsed).coerceAtLeast(0L)
|
||||||
Observable.timer(remainingDelayMs, TimeUnit.MILLISECONDS)
|
Observable.timer(remainingDelayMs, TimeUnit.MILLISECONDS)
|
||||||
.flatMap {
|
.flatMap {
|
||||||
service.pushToNext(
|
service.pushToNext(
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户