From 53b6d91c3fea2350c906ca9392d6940e25f93f29 Mon Sep 17 00:00:00 2001 From: LENOVO <1793460677@qq.com> Date: Fri, 19 Apr 2024 14:08:30 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A0=86=E5=9E=9B=E6=9C=BA=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5=E4=BD=8D=E5=88=B0=E8=B4=A7=E6=9E=B6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BeltConveyorDeviceDriver.java | 121 +++++++++--------- .../StandardStorageDefination.java | 2 + 2 files changed, 63 insertions(+), 60 deletions(-) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java index c7734a86d..df1db553e 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java @@ -1,5 +1,6 @@ package org.nl.acs.device_driver.conveyor.belt_conveyor; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; @@ -463,65 +464,66 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements requireSucess = true; return true; } else { - //判断是否有相同起点的,任务状态就绪的任务 - TaskDto taskdto = taskserver.findByStartCodeAndReady(device_code); - if (ObjectUtil.isNull(taskdto)) { - //补码生成堆垛机对接位到货架的指令 - if (StrUtil.isNotEmpty(hand_barcode)) { - TaskDto taskDtoHandCode = taskserver.findByVehicleCodeCodeAndReady(hand_barcode); - if (Objects.nonNull(taskDtoHandCode)) { - String taskid = taskDtoHandCode.getTask_id(); - String taskcode = taskDtoHandCode.getTask_code(); - String priority = taskDtoHandCode.getPriority(); - String start_point_code = taskDtoHandCode.getStart_point_code(); - String start_device_code = ""; - String route_plan_code = taskDtoHandCode.getRoute_plan_code(); - String next_device_code = taskDtoHandCode.getNext_device_code(); - String interactionJson = taskDtoHandCode.getInteraction_json(); - String containerType = ""; - if (StrUtil.isNotEmpty(interactionJson)) { - InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); - containerType = interactionJsonDTO.getContainerType(); - } - List shortPathsList = routeLineService.getShortPathLines(taskDtoHandCode.getStart_device_code(), next_device_code, route_plan_code); - RouteLineDto routeLineDto = shortPathsList.get(0); - String path = routeLineDto.getPath(); - String[] str = path.split("->"); - List pathlist = Arrays.asList(str); - int index = 0; - for (int m = 0; m < pathlist.size(); m++) { - if (pathlist.get(m).equals(next_device_code)) { - index = m - 2; - break; - } - } - start_device_code = pathlist.get(index); - //校验路由关系 - List shortPathsList2 = routeLineService.getShortPathLines(start_device_code, next_device_code, route_plan_code); - if (ObjectUtils.isEmpty(shortPathsList2) || shortPathsList2.size() < 1) { - throw new RuntimeException("路由不通!"); - } - Device nextdevice = deviceAppservice.findDeviceByCode(next_device_code); - String next_point_code; - if (StrUtil.equals(deviceAppservice.findDeviceTypeByCode(next_device_code), "storage")) { - next_point_code = taskDtoHandCode.getTo_x() + "-" + taskDtoHandCode.getTo_y() + "-" + taskDtoHandCode.getTo_z(); - Instruction instdto = new Instruction(); - packageData(instdto, route_plan_code, taskDtoHandCode, taskid, taskcode, start_device_code, next_device_code, start_point_code, next_point_code, priority, containerType); - try { - instructionService.create(instdto); - } catch (Exception e) { - e.printStackTrace(); - log.error("指令创建失败!,{}", e.getMessage()); - return false; - } - return updateTask(taskDtoHandCode, nextdevice, instdto); - } - } else { - return false; + //补码生成堆垛机对接位到货架的指令 + if (StrUtil.isNotEmpty(hand_barcode)) { + TaskDto taskDtoHandCode = taskserver.findByVehicleCodeCodeAndReady(hand_barcode); + if (Objects.nonNull(taskDtoHandCode)) { + String taskid = taskDtoHandCode.getTask_id(); + String taskcode = taskDtoHandCode.getTask_code(); + String priority = taskDtoHandCode.getPriority(); + String start_point_code = taskDtoHandCode.getStart_point_code(); + String start_device_code = ""; + String route_plan_code = taskDtoHandCode.getRoute_plan_code(); + String next_device_code = taskDtoHandCode.getNext_device_code(); + String interactionJson = taskDtoHandCode.getInteraction_json(); + String containerType = ""; + if (StrUtil.isNotEmpty(interactionJson)) { + InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); + containerType = interactionJsonDTO.getContainerType(); } + List shortPathsList = routeLineService.getShortPathLines(taskDtoHandCode.getStart_device_code(), next_device_code, route_plan_code); + RouteLineDto routeLineDto = shortPathsList.get(0); + String path = routeLineDto.getPath(); + String[] str = path.split("->"); + List pathlist = Arrays.asList(str); + int index = 0; + for (int m = 0; m < pathlist.size(); m++) { + if (pathlist.get(m).equals(start_device_code)) { + index = m + 2; + break; + } + } + start_device_code = pathlist.get(index); + //校验路由关系 + List shortPathsList2 = routeLineService.getShortPathLines(start_device_code, next_device_code, route_plan_code); + if (ObjectUtils.isEmpty(shortPathsList2) || shortPathsList2.size() < 1) { + throw new RuntimeException("路由不通!"); + } + Device nextdevice = deviceAppservice.findDeviceByCode(next_device_code); + String next_point_code; + if (StrUtil.equals(deviceAppservice.findDeviceTypeByCode(next_device_code), "storage")) { + next_point_code = next_device_code + "-" + taskDtoHandCode.getTo_y() + "-" + taskDtoHandCode.getTo_z(); + Instruction instdto = new Instruction(); + packageData(instdto, route_plan_code, taskDtoHandCode, taskid, taskcode, start_device_code, next_device_code, start_point_code, next_point_code, priority, containerType); + try { + instructionService.create(instdto); + } catch (Exception e) { + e.printStackTrace(); + log.error("指令创建失败!,{}", e.getMessage()); + return false; + } + return updateTask(taskDtoHandCode, nextdevice, instdto); + } + } else { + return false; } - return false; } + /** + * 目前没有从标准输送线为起点的任务 + */ + //判断是否有相同起点的,任务状态就绪的任务 + /** + TaskDto taskdto = taskserver.findByStartCodeAndReady(device_code); if (ObjectUtil.isNotNull(taskdto)) { //判断指令的起点和当前的设备号相同 if (!taskdto.getStart_device_code().equals(device_code)) { @@ -541,9 +543,7 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements InteractionJsonDTO interactionJsonDTO = JSON.parseObject(interactionJson, InteractionJsonDTO.class); containerType = interactionJsonDTO.getContainerType(); } - /** - * 开始平均分配 - */ + String this_coevice_code = taskserver.queryAssignedByDevice(device_code, taskdto.getNext_device_code()); if (StrUtil.isEmpty(this_coevice_code)) { List shortPathsList = routeLineService.getShortPathLines(start_device_code, taskdto.getNext_device_code(), route_plan_code); @@ -590,6 +590,7 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements } return updateTask(taskdto, nextdevice, instdto); } + **/ } return false; @@ -602,7 +603,7 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements requireSucess = true; String next_addr = nextdevice.getExtraValue().get("address").toString(); List list = new ArrayList(); - writeData(next_addr, list, instdto); +// writeData(next_addr, list, instdto); // led_message = getLedMessage(instdto); requireSucess = true; return true; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/storage/standard_storage/StandardStorageDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/storage/standard_storage/StandardStorageDefination.java index f400fe9bc..1d459d91b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/storage/standard_storage/StandardStorageDefination.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/storage/standard_storage/StandardStorageDefination.java @@ -1,9 +1,11 @@ package org.nl.acs.device_driver.storage.standard_storage; +import org.nl.acs.device.device_driver.standard_inspect.ItemDto; import org.nl.acs.device.domain.Device; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.DeviceDriverDefination; import org.nl.acs.device.enums.DeviceType; +import org.nl.acs.device_driver.defination.OpcDeviceDriverDefination; import org.springframework.stereotype.Service; import java.util.LinkedList;