[fea]
[添加订单过滤条件]
This commit is contained in:
yangyakun
2024-06-26 16:03:39 +08:00
parent 6b2e3b0022
commit db00859cd8
7 changed files with 145 additions and 22 deletions

View File

@@ -11,6 +11,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerReceiveReceivedAckListe
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager
import com.zhjt.mogo.adas.common.MessageType import com.zhjt.mogo.adas.common.MessageType
import com.zhjt.mogo.adas.data.bean.ReceivedAck import com.zhjt.mogo.adas.data.bean.ReceivedAck
@@ -26,8 +27,12 @@ object OchAutoPilotManager : IMoGoReceiveReceivedAckListener {
@JvmStatic @JvmStatic
fun canStartAutoPilot(lineId: Number?): String { fun canStartAutoPilot(lineId: Number?): String {
return TrajectoryAndDistanceManager.canStartAutopilot(lineId).apply { return TrajectoryAndDistanceManager.canStartAutopilot(lineId).apply {
if(!isNullOrBlank()){ if (!isNullOrBlank()) {
// 去启动绘制高精地图上的轨迹 // 去启动绘制高精地图上的轨迹
val drawGlobalTrajectory = LineManager.drawGlobalTrajectory()
if (!drawGlobalTrajectory.first) {
ToastUtils.showLong(drawGlobalTrajectory.second)
}
} }
} }
} }

View File

@@ -0,0 +1,9 @@
package com.mogo.och.common.module.manager.autopilot.line;
public interface ILineCallback {
default void clearLineSuccess(){}
default void drawLineSuccess(){}
default void drawLineFail(){}
}

View File

@@ -1,21 +1,29 @@
package com.mogo.och.common.module.manager.autopilot.line package com.mogo.och.common.module.manager.autopilot.line
object LineManager { import com.mogo.eagle.core.function.call.map.CallerMapGlobalTrajectoryDrawManager
import com.mogo.och.common.module.utils.CallerBase
/**
* 订单中
*/
object LineManager : CallerBase<ILineCallback>() {
private var lineId: Int = -1 private var lineId: Int = -1
@JvmStatic @JvmStatic
fun setLineId(value: Int) { fun setLineId(value: Int) {
if (value < 0) { lineId = if (value < 0) {
lineId = -1 clearGlobalTrajectory()
-1
} else { } else {
lineId = value value
} }
} }
@JvmStatic @JvmStatic
fun setLineId(value: Long) { fun setLineId(value: Long) {
if (value < 0) { lineId = if (value < 0) {
lineId = -1 clearGlobalTrajectory()
-1
} else { } else {
lineId = value.toInt() value.toInt()
} }
} }
@@ -24,8 +32,44 @@ object LineManager {
return lineId return lineId
} }
fun haveLine(): Boolean { override fun doSomeAfterAddListener(tag: String, listener: ILineCallback) {
return lineId > 0 super.doSomeAfterAddListener(tag, listener)
if (hasDrawnGlobalTrajectory()) {
listener.drawLineSuccess()
}else{
listener.drawLineFail()
}
} }
fun hasDrawnGlobalTrajectory(): Boolean {
return CallerMapGlobalTrajectoryDrawManager.hasDrawnGlobalTrajectory()
}
fun clearGlobalTrajectory() {
CallerMapGlobalTrajectoryDrawManager.clearGlobalTrajectory()
if (!hasDrawnGlobalTrajectory()){
M_LISTENERS.forEach {
it.value.clearLineSuccess()
}
}
}
fun drawGlobalTrajectory(): Pair<Boolean, String> {
if(lineId<0){
return Pair(false,"请设置正确线路或订单")
}
return CallerMapGlobalTrajectoryDrawManager.drawGlobalTrajectory().apply {
if(first){
M_LISTENERS.forEach {
it.value.drawLineSuccess()
}
}else{
M_LISTENERS.forEach {
it.value.drawLineFail()
}
}
}
}
} }

View File

@@ -1,17 +1,21 @@
package com.mogo.och.common.module.wigets.map.drawline package com.mogo.och.common.module.wigets.map.drawline
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatImageView
import com.mogo.eagle.core.function.call.map.CallerMapGlobalTrajectoryDrawManager import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.R import com.mogo.och.common.module.R
import com.mogo.och.common.module.manager.autopilot.line.LineManager
/** /**
* *
*/ */
class LineView : AppCompatImageView{ class LineView : AppCompatImageView, LineViewModel.ILineViewCallback {
private val TAG = "VisualView" private val TAG = "LineView"
constructor(context: Context) : super(context) constructor(context: Context) : super(context)
@@ -31,19 +35,21 @@ class LineView : AppCompatImageView{
super.onAttachedToWindow() super.onAttachedToWindow()
onClick { onClick {
if (CallerMapGlobalTrajectoryDrawManager.hasDrawnGlobalTrajectory()) { if (LineManager.hasDrawnGlobalTrajectory()) {
CallerMapGlobalTrajectoryDrawManager.clearGlobalTrajectory() LineManager.clearGlobalTrajectory()
setImageResource(R.drawable.common_map_line_close) } else {
}else{ val drawGlobalTrajectory = LineManager.drawGlobalTrajectory()
val drawGlobalTrajectory = CallerMapGlobalTrajectoryDrawManager.drawGlobalTrajectory() if (!drawGlobalTrajectory.first) {
if(drawGlobalTrajectory.first){
setImageResource(R.drawable.common_map_line_open)
}else{
setImageResource(R.drawable.common_map_line_close)
ToastUtils.showLong(drawGlobalTrajectory.second) ToastUtils.showLong(drawGlobalTrajectory.second)
} }
} }
} }
val viewModel = findViewTreeViewModelStoreOwner()?.let {
ViewModelProvider(it).get(LineViewModel::class.java)
}
viewModel?.setDistanceCallback(this)
} }
@@ -55,6 +61,9 @@ class LineView : AppCompatImageView{
} }
} }
override fun setImageViewResource(name: Int) {
setImageResource(name)
}
} }

View File

@@ -0,0 +1,46 @@
package com.mogo.och.common.module.wigets.map.drawline
import androidx.annotation.DrawableRes
import androidx.lifecycle.ViewModel
import com.mogo.och.common.module.R
import com.mogo.och.common.module.manager.autopilot.line.ILineCallback
import com.mogo.och.common.module.manager.autopilot.line.LineManager
class LineViewModel : ViewModel(), ILineCallback {
private val TAG = LineViewModel::class.java.simpleName
private var viewCallback: ILineViewCallback? = null
init {
}
override fun onCleared() {
super.onCleared()
LineManager.removeListener(TAG)
this.viewCallback = null
}
fun setDistanceCallback(viewCallback: ILineViewCallback) {
LineManager.addListener(TAG,this)
this.viewCallback = viewCallback
}
override fun clearLineSuccess() {
this.viewCallback?.setImageViewResource(R.drawable.common_map_line_close)
}
override fun drawLineSuccess() {
this.viewCallback?.setImageViewResource(R.drawable.common_map_line_open)
}
override fun drawLineFail() {
this.viewCallback?.setImageViewResource(R.drawable.common_map_line_close)
}
interface ILineViewCallback {
fun setImageViewResource(@DrawableRes name: Int)
}
}

View File

@@ -792,4 +792,9 @@ public class SweeperCloudTaskModel implements IMoGoSweeperFutianCloudTaskListene
public void onAutopilotTrajectoryDownloadReq(@NonNull AutopilotControlParameters.AutoPilotLine autoPilotLine, int downloadType) { public void onAutopilotTrajectoryDownloadReq(@NonNull AutopilotControlParameters.AutoPilotLine autoPilotLine, int downloadType) {
} }
@Override
public void onFsmReceiveTimeout(boolean isTimeout) {
}
} }

View File

@@ -469,4 +469,9 @@ public class SweeperOperatePresenter extends Presenter<SweeperOperateFragment>
@Override @Override
public void onAutopilotTrajectoryDownloadReq(@NonNull AutopilotControlParameters.AutoPilotLine autoPilotLine, int downloadType) { public void onAutopilotTrajectoryDownloadReq(@NonNull AutopilotControlParameters.AutoPilotLine autoPilotLine, int downloadType) {
} }
@Override
public void onFsmReceiveTimeout(boolean isTimeout) {
}
} }