From 06b231328c72e2de8e4d3ecaffb31aae7fa99041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=97=AD=E6=98=8E=5C73939?= <739390650@QQ.COM> Date: Mon, 20 Oct 2025 10:17:56 +0800 Subject: [PATCH] =?UTF-8?q?opt:=E8=BE=93=E9=80=81=E7=BA=BF=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agv/ndctwo/AgvNdcTwoDeviceDriver.java | 1 + .../BeltConveyorDeviceDriver.java | 7 +- .../service/impl/InstructionServiceImpl.java | 113 ++++++++++++++++++ .../task/service/impl/TaskServiceImpl.java | 3 +- .../service/quartz/task/AutoCreateInst.java | 38 ------ 5 files changed, 122 insertions(+), 40 deletions(-) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java index 56e6023..4683e7c 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java @@ -479,6 +479,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic Map map1 = new HashMap(); map1.put("code", "to_command"); map1.put("value", "2"); + list.add(map1); Map map2 = new HashMap(); map2.put("code", "to_target");//目标楼层从wms下发的参数字段取 map2.put("value", task.getFloor_code()); 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 db120e6..acf8625 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 @@ -345,6 +345,11 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements Map map2 = new HashMap(); map2.put("code", "to_taskNum");//下发出库数 map2.put("value", result); + list1.add(map2); + Map map3 = new HashMap(); + map3.put("code", "to_target");//下发出库楼层 + map3.put("value", "0"); + list1.add(map); this.writing(list1); // 只有成功后才设置标记 @@ -552,7 +557,7 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements } return this.outbound_task_num; } - + /** * 统一更新出库任务数的方法,确保数据一致性 * @param num 任务数 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java index 648932e..a936b1f 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java @@ -30,6 +30,7 @@ import org.nl.acs.device.enums.DeviceType; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device.service.impl.DeviceServiceImpl; import org.nl.acs.device_driver.DeviceDriverDefination; +import org.nl.acs.device_driver.conveyor.belt_conveyor.BeltConveyorDeviceDriver; import org.nl.acs.ext.wms.liKuData.*; import org.nl.acs.ext.wms.service.AcsToLiKuService; import org.nl.acs.instruction.domain.InstructionMybatis; @@ -121,6 +122,9 @@ public class InstructionServiceImpl extends CommonServiceImpl instructions = new CopyOnWriteArrayList(); @@ -391,6 +395,18 @@ public class InstructionServiceImpl extends CommonServiceImpl instructionMybatis = instructionMapper.selectList(Wrappers.lambdaQuery(InstructionMybatis.class) @@ -477,6 +493,33 @@ public class InstructionServiceImpl extends CommonServiceImpl instructionMybatis = instructionMapper.selectList(Wrappers.lambdaQuery(InstructionMybatis.class) @@ -626,6 +681,34 @@ public class InstructionServiceImpl extends CommonServiceImpl impleme @Override public TaskDto findByContainer(String container_code) { Optional optionalTask = tasks.stream() - .filter(task -> StrUtil.equals(task.getVehicle_code(), container_code)) + .filter(task -> StrUtil.equals(task.getVehicle_code(), container_code) + && (TaskStatusEnum.BUSY.getIndex().equals(task.getTask_status()) || TaskStatusEnum.READY.getIndex().equals(task.getTask_status()))) .findFirst(); return optionalTask.orElse(null); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java index 7cd04de..dc6b22f 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java @@ -132,24 +132,12 @@ public class AutoCreateInst { } next_device_code = pathlist.get(index); - Device nextdevice = appService.findDeviceByCode(next_device_code); if (StrUtil.equals(appService.findDeviceTypeByCode(next_device_code), "storage")) { next_point_code = next_device_code + "-" + acsTask.getTo_y() + "-" + acsTask.getTo_z(); } else { next_point_code = next_device_code; } - BeltConveyorDeviceDriver beltConveyorDeviceDriver; - if (nextdevice.getDeviceDriver() instanceof BeltConveyorDeviceDriver) { - beltConveyorDeviceDriver = (BeltConveyorDeviceDriver) nextdevice.getDeviceDriver(); - if (beltConveyorDeviceDriver.getType() != 2) { - beltConveyorDeviceDriver.writing("to_command","7"); - log.info("当前输送线出入库信号不为出库"); - continue; - } - } - - Instruction instdto = new Instruction(); instdto.setInstruction_type(task_type); instdto.setInstruction_id(IdUtil.simpleUUID()); @@ -198,32 +186,6 @@ public class AutoCreateInst { try { instructionService.create(instdto); - if (nextdevice.getDeviceDriver() instanceof BeltConveyorDeviceDriver) { - beltConveyorDeviceDriver = (BeltConveyorDeviceDriver) nextdevice.getDeviceDriver(); - //满足出库,查询当前出库任务,+1后返回给 - if (beltConveyorDeviceDriver.getAction() == 2 && beltConveyorDeviceDriver.getMode() == 2 - && beltConveyorDeviceDriver.getError() == 0 && beltConveyorDeviceDriver.getMove() == 0) { - // 使用同步块确保操作原子性 - synchronized (beltConveyorDeviceDriver) { - try { - // 因为已经创建成功 - int count = instructionService.queryInstructionCount(next_device_code); - // 使用统一更新方法,不同步数据库(由BeltConveyorDeviceDriver内部处理) - beltConveyorDeviceDriver.updateAndSyncOutboundTaskNum(count, false, false); - beltConveyorDeviceDriver.writing("to_taskNum", count + ""); - // 确保nextdevice也被更新 - nextdevice.setOutbound_task_num(count); - } catch (Exception e) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code("更新出库任务数失败") - .content("设备: " + nextdevice.getDevice_code() + ", 错误: " + e.getMessage()) - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - } - } - } } catch (Exception e) { acsTask.setRemark(e.getMessage()); taskserver.updateByCodeFromCache(acsTask);