[sweeper-cloud]模拟云控大任务状态流转处理

This commit is contained in:
bxb
2023-05-17 15:26:06 +08:00
parent 07212a55aa
commit d1e4df16d1
2 changed files with 21 additions and 26 deletions

View File

@@ -53,7 +53,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
private var mSubTaskType: TaskModel = TaskModel.DEFAULT_MODEL //1:自动驾驶子任务 2人工驾驶子任务 -1:未知任务类型
private var mCurrentSubTaskInfo: SubTaskInfo? = null//当前正在执行的子任务
private val mLoadingDialog: SweeperCloudLoadingDialog by lazy { SweeperCloudLoadingDialog(requireContext()) }
private var mDialog:SweeperCloudDialog?=null
private var mDialog: SweeperCloudDialog? = null
override fun getTagName(): String {
return "SweepersFragment"
@@ -111,7 +111,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
getCurrentView().getAutoBtn().setOnClickListener {
//前置条件 (1)必须处于人工驾驶状态 2必须有正在执行的子任务且子任务类型为自动驾驶子任务 才能请求云端进入自驾
mCurrentSubTaskInfo?.let {
if (mPresenter?.autopilotState == STATUS_AUTOPILOT_ENABLE&&it.taskModel==TaskModel.AUTO) {
if (mPresenter?.autopilotState == STATUS_AUTOPILOT_ENABLE && it.taskModel == TaskModel.AUTO) {
mLoadingDialog.showLoading()
mPresenter?.sendSweeperAutopilotBootable(mTaskInfo?.taskId, it.subTaskId, it.lineId.toLong())
}
@@ -243,7 +243,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
}
val timeout: String = getTimeSpent(it.taskEndTime)
//数据重复导致连续弹窗
if (mDialog!=null&& mDialog!!.isShowing){
if (mDialog != null && mDialog!!.isShowing) {
return
}
if (stopTaskType == SweeperTaskStop.StopTaskType.NORMAL) {
@@ -253,19 +253,19 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
override fun onConfirm() {
mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.MANUAL_CONFIRM)
mLoadingDialog.showLoading()
ToastUtils.showLong("确认")
//ToastUtils.showLong("确认")
}
override fun onRefuseOrEnd() {
mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.MANUAL_REFUSE)
mLoadingDialog.showLoading()
ToastUtils.showLong("拒绝")
//ToastUtils.showLong("拒绝")
}
override fun onCountDownStop() {
mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.OVER_TIME)
mLoadingDialog.showLoading()
ToastUtils.showLong("倒计时")
//ToastUtils.showLong("倒计时")
}
override fun onNext() {
@@ -315,19 +315,14 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
if (it.taskId != taskId) {
return
}
//大任务正常结束
if (subTaskStatus == SweeperBigTaskStatus.BigTaskStatus.FINISHED) {
//大任务处于取消状态 异常状态pad端都显示无任务列表
if (subTaskStatus == SweeperBigTaskStatus.BigTaskStatus.CANCLE || subTaskStatus == SweeperBigTaskStatus.BigTaskStatus.ABNORMAL || subTaskStatus == SweeperBigTaskStatus.BigTaskStatus.FINISHED) {
//数据重复导致连续弹窗
if (mDialog!=null&& mDialog!!.isShowing){
if (mDialog != null && mDialog!!.isShowing) {
return
}
mDialog=sweeperCloudTaskNormalEndDialog()
mDialog = sweeperCloudTaskNormalEndDialog()
mDialog?.show()
return
}
//大任务处于取消状态 异常状态pad端都显示无任务列表
if (subTaskStatus == SweeperBigTaskStatus.BigTaskStatus.CANCLE || subTaskStatus == SweeperBigTaskStatus.BigTaskStatus.ABNORMAL) {
resetTaskInfoPanel()
}
}
}
@@ -338,9 +333,9 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
fun onSweeperCloudAutopilotBootable(taskId: String, subTaskId: String, isBootableResp: SweeperBootable.IsBootableResp) {
mLoadingDialog.hideLoading()
if (isBootableResp.code == SweeperCommon.Code.SUCCEED) {
ToastUtils.showLong("请求成功")
ToastUtils.showLong("上报云控成功")
} else {
ToastUtils.showLong("请求失败")
ToastUtils.showLong("上报云控失败")
}
}
@@ -432,30 +427,30 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
val subInfo = bySubTaskIdFindSubTaskInfo(subTaskId)
subInfo?.let {
//数据重复导致连续弹窗
if (mDialog!=null&& mDialog!!.isShowing){
if (mDialog != null && mDialog!!.isShowing) {
return
}
mDialog = createConfirmStartSubTaskDialog(context, object : SweeperCloudDialogClickListener {
override fun onConfirm() {
ToastUtils.showLong("确认")
//ToastUtils.showLong("确认")
mPresenter?.sendSweeperTaskConfirmResp(taskId, subTaskId, SweeperTaskConfirm.TaskConfirmCode.MANUAL_CONFIRM)
mLoadingDialog.showLoading()
}
override fun onRefuseOrEnd() {
ToastUtils.showLong("结束")
//ToastUtils.showLong("结束")
mPresenter?.sendSweeperTaskConfirmResp(taskId, subTaskId, SweeperTaskConfirm.TaskConfirmCode.MANUAL_REFUSE_ALL)
mLoadingDialog.showLoading()
}
override fun onCountDownStop() {
ToastUtils.showLong("倒计时结束")
//ToastUtils.showLong("倒计时结束")
mPresenter?.sendSweeperTaskConfirmResp(taskId, subTaskId, SweeperTaskConfirm.TaskConfirmCode.OVER_TIME)
mLoadingDialog.showLoading()
}
override fun onNext() {
ToastUtils.showLong("下一个")
//ToastUtils.showLong("下一个")
mPresenter?.sendSweeperTaskConfirmResp(taskId, subTaskId, SweeperTaskConfirm.TaskConfirmCode.MANUAL_REFUSE_SINGLE)
mLoadingDialog.showLoading()
}
@@ -472,7 +467,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
mTaskInfo?.let {
mPresenter?.sendSweeperStartTaskResp(it.taskId, SweeperTask.StartTaskCode.RECEIVED)
//数据重复导致连续弹窗
if (mDialog!=null&& mDialog!!.isShowing){
if (mDialog != null && mDialog!!.isShowing) {
return
}
mDialog = createReceivedTaskInfoDialog(context, object : SweeperCloudDialogClickListener {
@@ -487,14 +482,14 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
override fun onRefuseOrEnd() {
//ToastUtils.showLong("拒绝")
setShowCurrentTaskPanelView(false)
mPresenter?.sendSweeperStartTaskResp(it.taskId, SweeperTask.StartTaskCode.MANUAL_REFUSE)
mLoadingDialog.showLoading()
resetTaskInfoPanel()
}
override fun onCountDownStop() {
//ToastUtils.showLong("倒计时结束")
setShowCurrentTaskPanelView(false)
resetTaskInfoPanel()
mPresenter?.sendSweeperStartTaskResp(it.taskId, SweeperTask.StartTaskCode.OVER_TIME)
mLoadingDialog.showLoading()
}

View File

@@ -202,7 +202,7 @@ object SweeperCloudTaskUtils {
val builder = SweeperBigTaskStatus.BigTaskStatusPush.newBuilder()
builder.sn = getDriverSn()
builder.taskId = "10"
builder.taskStatus = BigTaskStatus.RUNNING
builder.taskStatus = BigTaskStatus.FINISHED
builder.systemTime = System.currentTimeMillis()
SweeperTaskModel.getInstance().onSweeperFutianCloudBigTaskStatus(
MessageType.CloudPushBigTaskStatus, "${System.currentTimeMillis()}",