From dfce161aa32a8e234087b2beda4b097287169642 Mon Sep 17 00:00:00 2001 From: gengby <858962040@qq.com> Date: Fri, 3 Feb 2023 07:24:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auto/run/OneNDCSocketConnectionAutoRun.java | 8 ++++++++ .../agv/ndcone/AgvNdcOneDeviceDriver.java | 3 +++ .../service/impl/InstructionServiceImpl.java | 14 ++++++++++++-- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java b/acs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java index e8d2c827e..6eb984a81 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java @@ -11,6 +11,7 @@ import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.instruction.service.impl.InstructionServiceImpl; +import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.modules.system.service.ParamService; @@ -74,6 +75,7 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable { NDCAgvService NDCAgvService = SpringContextHolder.getBean(NDCAgvService.class); DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class); DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class); + DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class); ip = paramService.findByCode(AcsConfig.AGVURL).getValue(); port = Integer.parseInt(paramService.findByCode(AcsConfig.AGVPORT).getValue()); @@ -129,6 +131,9 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable { } if (ikey != 0) { inst = instructionService.findByCodeFromCache(String.valueOf(ikey)); + if (ObjectUtil.isEmpty(inst)){ + inst = instructionService.findByCode(String.valueOf(ikey)); + } } if (!ObjectUtil.isEmpty(link_inst)) { link_flag = true; @@ -209,6 +214,9 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable { } catch (Exception e) { System.out.println("OneAgv链接异常"); log.info("OneAgv链接异常"); + log.error("agv连接出现异常:{}", e); + logServer.deviceExecuteLog("1","","","agv异常"+e.getMessage()); + logServer.deviceExecuteLog("1","","","agv异常" + e); if(ObjectUtil.isNotEmpty(s)){ s.close(); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java index d201b6924..7db1b27aa 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java @@ -90,6 +90,9 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic } if (ikey != 0) { inst = instructionService.findByCodeFromCache(String.valueOf(ikey)); + if (ObjectUtil.isEmpty(inst)){ + inst = instructionService.findByCode(String.valueOf(ikey)); + } } if (!ObjectUtil.isEmpty(link_inst)) { link_flag = true; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java index 17a677161..2aa8540e3 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java @@ -228,6 +228,9 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu public Instruction findByCode(String code) { WQLObject wo = WQLObject.getWQLObject("acs_instruction"); JSONObject json = wo.query("instruction_code ='" + code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(json)){ + return null; + } final Instruction obj = json.toJavaObject(Instruction.class); return obj; } @@ -1191,8 +1194,15 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu @Override public Instruction findByDeviceCodeFromCache(String devicecode) { - for (int i = 0; i < this.instructions.size(); i++) { - Instruction inst = instructions.get(i); + List instructionList = instructions; + Collections.sort(instructionList, new Comparator() { + @Override + public int compare(Instruction o1, Instruction o2) { + return o1.getCreate_time().compareTo(o2.getCreate_time()); + } + }); + for (int i = 0; i < instructionList.size(); i++) { + Instruction inst = instructionList.get(i); if (StrUtil.equals(devicecode, inst.getStart_device_code()) && inst.getInstruction_status().equals("0")) { return inst; }