diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java index 4551aedf0..d49edd4bb 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java @@ -485,6 +485,12 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv Integer start = 0; String start_device_code = pathlist.get(start); String next_device_code = pathlist.get(start+1); + //判断有无出入库任务是相同路线 + TaskDto dto = taskserver.findByCodeAndExcute(taskdto.getNext_device_code(), taskdto.getStart_device_code()); + if (ObjectUtil.isNotEmpty(dto)){ + requireSucess = false; + return false; + } packageInstrcutData(instdto, taskdto, taskid, taskcode, vehiclecode, priority,start_device_code,next_device_code); }else { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java index ce84c9005..8860df2ef 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/TaskService.java @@ -388,6 +388,15 @@ public interface TaskService extends CommonService { */ TaskDto findByStartCodeAndReady(String device_code); + /** + * 根据起点设备编号查询当前是否有执行中任务 + * + * @param start_code + * @param next_code + * @return + */ + TaskDto findByCodeAndExcute(String start_code,String next_code); + /** * 根据终点设备编号查询当前是否有就绪任务 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index 586a00b55..9a60e55ce 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -516,7 +516,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme public List findByTaskStatus(String status) { List taskDtoList = new ArrayList<>(); Iterator iterator = tasks.iterator(); - if (iterator.hasNext()) { + while (iterator.hasNext()) { TaskDto task = iterator.next(); if (StrUtil.equals(task.getTask_status(), status)) { taskDtoList.add(task); @@ -1077,6 +1077,17 @@ public class TaskServiceImpl extends CommonServiceImpl impleme return optionalTask.orElse(null); } + @Override + public TaskDto findByCodeAndExcute(String start_code, String next_code) { + Task task = this.lambdaQuery() + .eq(Task::getStart_device_code, start_code) + .eq(Task::getNext_device_code, next_code) + .eq(Task::getTask_status, TaskStatusEnum.BUSY.getIndex()) + .one(); + TaskDto taskDto = BeanUtil.copyProperties(task, TaskDto.class); + return taskDto; + } + @Override public TaskDto findByEndCodeAndReady(String device_code) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/CreateDDJInst.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/CreateDDJInst.java index 109c37d4d..63809dbb7 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/CreateDDJInst.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/CreateDDJInst.java @@ -3,6 +3,7 @@ package org.nl.system.service.quartz.task; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; @@ -55,10 +56,14 @@ public class CreateDDJInst { Device startDevice = appService.findDeviceByCode(start_device_code); String next_device_code = taskDto.getNext_device_code(); Device nextDevice = appService.findDeviceByCode(next_device_code); + //判断有无出入库任务是相同路线 + TaskDto dto = taskserver.findByCodeAndExcute(next_device_code, start_device_code); + if (ObjectUtil.isNotEmpty(dto)){ + return; + } if (startDevice.getDevice_type().equals(DeviceType.storage.name()) && (nextDevice.getDevice_type().equals(DeviceType.conveyor.name()) || nextDevice.getDevice_type().equals(DeviceType.storage.name()))) { taskDtoList.add(taskDto); - } } if (CollUtil.isNotEmpty(taskDtoList)) {