|
|
|
@ -261,40 +261,42 @@ public abstract class PtrAgvItem extends ExecutorItem { |
|
|
|
oldDirection, direction); |
|
|
|
} |
|
|
|
|
|
|
|
boolean needCompute = false; |
|
|
|
// 从 runningDeviceTaskList 里面,找到完成到什么阶段
|
|
|
|
// 比如 (1,2) -> (2,2) -> (3,2) , 如果 updatePosition=3,2 ,那么前2个任务都要完成
|
|
|
|
int finishTargetIndex = -1; |
|
|
|
for (int i = 0; i < runningDeviceTaskList.size(); i++) { |
|
|
|
PtrAgvDeviceTask task = runningDeviceTaskList.get(i); |
|
|
|
if (task.checkLogicX == logicX && task.checkLogicY == logicY) { |
|
|
|
finishTargetIndex = i; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
boolean needCompute = false; |
|
|
|
|
|
|
|
if (finishTargetIndex > 0) { |
|
|
|
needCompute = true; |
|
|
|
// 标记前面的任务都完成了
|
|
|
|
for (int i = 0; i < finishTargetIndex; i++) { |
|
|
|
if (this.runningDeviceTaskList != null && !this.runningDeviceTaskList.isEmpty() && |
|
|
|
this.planTaskSequence != null && !this.planTaskSequence.isEmpty()) { |
|
|
|
int finishTargetIndex = -1; |
|
|
|
for (int i = 0; i < runningDeviceTaskList.size(); i++) { |
|
|
|
PtrAgvDeviceTask task = runningDeviceTaskList.get(i); |
|
|
|
|
|
|
|
task.taskStatus = 4; // 标记为完成
|
|
|
|
task.taskGroupStatus = 4; // 标记为任务组完成
|
|
|
|
fireEvent(AgvEventType.DEVICE_TASK_COMPLETE, this, task); |
|
|
|
|
|
|
|
// 更新计划任务
|
|
|
|
RcsTaskPlan planTask = planTaskSequence.getByPlanTaskId(task.planTaskId); |
|
|
|
if (planTask != null) { |
|
|
|
planTask.setPlanTaskStatus(PlanTaskStatus.FINISHED.toString()); |
|
|
|
planTaskSequence.savePlanTask(planTask); |
|
|
|
if (task.checkLogicX == logicX && task.checkLogicY == logicY) { |
|
|
|
finishTargetIndex = i; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (planTaskSequence.isAllCompleted()) { |
|
|
|
fireEvent(AgvEventType.PLAN_COMPLETE, this); |
|
|
|
planTaskSequence = null; |
|
|
|
if (finishTargetIndex > 0) { |
|
|
|
needCompute = true; |
|
|
|
// 标记前面的任务都完成了
|
|
|
|
for (int i = 0; i < finishTargetIndex; i++) { |
|
|
|
PtrAgvDeviceTask task = runningDeviceTaskList.get(i); |
|
|
|
|
|
|
|
task.taskStatus = 4; // 标记为完成
|
|
|
|
task.taskGroupStatus = 4; // 标记为任务组完成
|
|
|
|
fireEvent(AgvEventType.DEVICE_TASK_COMPLETE, this, task); |
|
|
|
|
|
|
|
// 更新计划任务
|
|
|
|
RcsTaskPlan planTask = planTaskSequence.getByPlanTaskId(task.planTaskId); |
|
|
|
if (planTask != null) { |
|
|
|
planTask.setPlanTaskStatus(PlanTaskStatus.FINISHED.toString()); |
|
|
|
planTaskSequence.savePlanTask(planTask); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (planTaskSequence.isAllCompleted()) { |
|
|
|
fireEvent(AgvEventType.PLAN_COMPLETE, this); |
|
|
|
planTaskSequence = null; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|