fix:限制下发堆垛机有出入库路线相同的任务

This commit is contained in:
2024-03-28 17:29:14 +08:00
parent 60d26e40bc
commit de2bdefb24
4 changed files with 33 additions and 2 deletions

View File

@@ -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 {

View File

@@ -388,6 +388,15 @@ public interface TaskService extends CommonService<Task> {
*/
TaskDto findByStartCodeAndReady(String device_code);
/**
* 根据起点设备编号查询当前是否有执行中任务
*
* @param start_code
* @param next_code
* @return
*/
TaskDto findByCodeAndExcute(String start_code,String next_code);
/**
* 根据终点设备编号查询当前是否有就绪任务

View File

@@ -516,7 +516,7 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
public List<TaskDto> findByTaskStatus(String status) {
List<TaskDto> taskDtoList = new ArrayList<>();
Iterator<TaskDto> 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<TaskMapper, Task> 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) {

View File

@@ -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)) {