Browse Source

业务状态问题

master
修宁 6 months ago
parent
commit
a6b4ba0730
  1. 4
      servo/src/main/java/com/galaxis/rcs/plan/PlanTaskSequence.java
  2. 58
      servo/src/main/java/com/yvan/logisticsModel/PtrAgvItem.java

4
servo/src/main/java/com/galaxis/rcs/plan/PlanTaskSequence.java

@ -188,4 +188,8 @@ public class PlanTaskSequence {
// log.info("3-Received message: " + json);
BannerUtils.printConfig(log, "保存业务任务 planTask", ar);
}
public boolean isEmpty() {
return this.taskList.isEmpty();
}
}

58
servo/src/main/java/com/yvan/logisticsModel/PtrAgvItem.java

@ -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;
}
}
}

Loading…
Cancel
Save