From 0b5d4c1df634067247710be5b84df920c53e4802 Mon Sep 17 00:00:00 2001 From: ls <1793460677@qq.com> Date: Mon, 9 Feb 2026 14:25:12 +0800 Subject: [PATCH] =?UTF-8?q?add=20:=E5=A0=86=E5=9E=9B=E6=9C=BA=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5=E4=BD=8Dbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../belt_conveyor/BeltConveyorDeviceDriver.java | 17 +++++++++++++++-- .../instruction/service/InstructionService.java | 8 ++++++++ .../service/impl/InstructionServiceImpl.java | 9 +++++++++ 3 files changed, 32 insertions(+), 2 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 deeef59fa..f10d7b83c 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 @@ -510,7 +510,12 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements } else { this.instruction_require_time = date; //查找有没有对应的指令 - Instruction inst = instructionService.findByStartCodeAndReady(this.device_code); + Instruction inst; + if ("RK1032".equals(this.device_code)||"RK1034".equals(this.device_code)||"RK1035".equals(this.device_code)){ + inst = instructionService.findByStartCodeAndReady2(this.device_code); + }else { + inst = instructionService.findByStartCodeAndReady(this.device_code); + } if (ObjectUtil.isNotNull(inst)) { List routeLineDtos = routeLineService.selectDeviceCodeList(this.device_code); if (routeLineDtos.size() < 1) { @@ -796,7 +801,15 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements List list = new ArrayList(); writeData(next_addr, list, instdto, containerType); // led_message = getLedMessage(instdto); - requireSucess = true; + //写完信号to_task写成功后更新指令为执行中 + inst = checkInst(); + to_task = this.itemProtocol.getTo_task(); + if (Integer.parseInt(to_task)>0 && to_task.equals(inst.getInstruction_code())) { + inst.setInstruction_status(CommonFinalParam.ONE); + inst.setExecute_device_code(this.device_code); + instructionService.update(inst); + requireSucess = true; + } return true; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/InstructionService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/InstructionService.java index 75a9c70fc..8b9a5a302 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/InstructionService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/InstructionService.java @@ -348,6 +348,14 @@ public interface InstructionService extends CommonService { */ Instruction findByStartCodeAndReady(String device_code); + + /** + * 找最新的指令 + * @param device_code + * @return + */ + Instruction findByStartCodeAndReady2(String device_code); + /** * 根据起点设备编号查询当前是否有运行的指令 * 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 a3f0b1228..b6f6acec0 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 @@ -1935,6 +1935,15 @@ public class InstructionServiceImpl extends CommonServiceImpl optionalInstruction = instructions.stream() + .filter(instruction -> StrUtil.equals(instruction.getStart_device_code(), device_code) + && StrUtil.equals(instruction.getInstruction_status(), InstructionStatusEnum.READY.getIndex()) && !instruction.getInstruction_type().equals(TaskTypeEnum.Mxddhj_Task.getIndex())).max(Comparator.comparing(Instruction::getCreate_time)); + return optionalInstruction.orElse(null); + } + @Override public List findByDeviceCodes(Instruction instruction1, Boolean flay) { List instructionList = new ArrayList<>();