no message
parent
6a6af5f0d9
commit
595af06b36
|
|
@ -191,4 +191,12 @@ public interface AgvTaskService {
|
||||||
*/
|
*/
|
||||||
boolean isEndPointAvailable(String endPointCode, String type, String jobType);
|
boolean isEndPointAvailable(String endPointCode, String type, String jobType);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证容器是否有任务
|
||||||
|
*
|
||||||
|
* @param stockCode 终点点位代码
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
boolean isStockAvailable(String stockCode, String type, String jobType);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -234,6 +234,18 @@ public class AgvTaskServiceImpl implements AgvTaskService {
|
||||||
return findByEndSlotCode(endPointCode, type, jobType);
|
return findByEndSlotCode(endPointCode, type, jobType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isStockAvailable(String stockCode, String type, String jobType) {
|
||||||
|
String hql = " from AgvTask agv " +
|
||||||
|
" where agv.stockCode='" + stockCode + "' " +
|
||||||
|
" and agv.type='" + type + "' " +
|
||||||
|
" and agv.jobType='" + jobType + "' " +
|
||||||
|
" and agv.status in ('OPEN','ATCALL','UP_CONTAINER') ";
|
||||||
|
Query query = entityMapper.createQuery(hql);
|
||||||
|
List<AgvTask> agvTaskList = query.getResultList();
|
||||||
|
return agvTaskList.isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean isSrcPointAvailable(String startSlotCode, String type, String jobType) {
|
public boolean isSrcPointAvailable(String startSlotCode, String type, String jobType) {
|
||||||
return findByStartSlotCode(startSlotCode, type, jobType);
|
return findByStartSlotCode(startSlotCode, type, jobType);
|
||||||
|
|
|
||||||
|
|
@ -275,29 +275,22 @@ public class TaskServiceImpl implements TaskService {
|
||||||
Map<String, Point> pointMap = pointService.findByCodes(endPointList);
|
Map<String, Point> pointMap = pointService.findByCodes(endPointList);
|
||||||
|
|
||||||
List<String> endPoints = getValuesFromMap(endPointList, pointMap);
|
List<String> endPoints = getValuesFromMap(endPointList, pointMap);
|
||||||
int taskCount = 0;
|
|
||||||
for (Task task : taskList) {
|
for (Task task : taskList) {
|
||||||
|
boolean isStockAvailable = agvTaskService.isStockAvailable(task.getDstStockCode(), BizStatus.CALL_PICK, "RACK_MOVE");
|
||||||
|
if (isStockAvailable) {
|
||||||
for (String endPointCode : endPoints) {
|
for (String endPointCode : endPoints) {
|
||||||
if (agvTaskService.isEndPointAvailable(endPointCode, BizStatus.CALL_PICK, "RACK_MOVE")) {
|
if (agvTaskService.findByEndSlotCode(endPointCode, BizStatus.CALL_PICK, "RACK_MOVE")) {
|
||||||
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.CALL_PICK, task.getDstStock(), task.getDstPointCode(), endPointCode, "RACK_MOVE");
|
AgvTask agvTask = agvTaskService.createAgvTask(BizStatus.CALL_PICK, task.getDstStock(), task.getDstPointCode(), endPointCode, "RACK_MOVE");
|
||||||
agvTask.setLineSlotCode(pick.getCode());
|
agvTask.setLineSlotCode(pick.getCode());
|
||||||
agvTaskService.update(agvTask);
|
agvTaskService.update(agvTask);
|
||||||
task.setCallAgvTaskId(agvTask.getId());
|
task.setCallAgvTaskId(agvTask.getId());
|
||||||
taskRepository.save(task);
|
taskRepository.save(task);
|
||||||
}
|
}
|
||||||
taskCount++;
|
|
||||||
if (taskCount >= taskList.size()) {
|
|
||||||
break; // 当处理的任务数量达到 taskList 的长度时,跳出内层循环
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (taskCount >= taskList.size()) {
|
|
||||||
break; // 当处理的任务数量达到 taskList 的长度时,跳出外层循环
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static List<String> getValuesFromMap(Set<String> endPointList, Map<String, Point> map) {
|
public static List<String> getValuesFromMap(Set<String> endPointList, Map<String, Point> map) {
|
||||||
List<String> values = new ArrayList<>();
|
List<String> values = new ArrayList<>();
|
||||||
int count = endPointList.size();
|
int count = endPointList.size();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue