From 18decbccb9f8d48036cd0fd4ba378c5f8bbcbfb8 Mon Sep 17 00:00:00 2001 From: FT577-Server Date: Thu, 29 Oct 2026 10:51:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=B7=E9=81=93=E5=8F=A3=E8=BE=93=E9=80=81?= =?UTF-8?q?=E6=9C=BA=E4=B8=8B=E5=8F=91=E6=A0=A1=E9=AA=8C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/common/ConvType.java | 9 ++ .../scheduleTask/ssj/RoadConvThread.java | 114 ++++++++++-------- 2 files changed, 71 insertions(+), 52 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/common/ConvType.java b/ruoyi-admin/src/main/java/com/ruoyi/common/ConvType.java index 2a5ce80..29263a4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/common/ConvType.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/common/ConvType.java @@ -95,5 +95,14 @@ public class ConvType { entry("L1008", "011100001") )); + /** + * 巷道对应堆垛机设备编号 + */ + public static final Map CONV_ROAD_STACKER = new HashMap<>(Map.ofEntries( + entry("1", 1), + entry("2", 2), + entry("3", 2) + )); + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/RoadConvThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/RoadConvThread.java index ea8607e..79904ca 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/RoadConvThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/RoadConvThread.java @@ -600,62 +600,72 @@ public class RoadConvThread implements Runnable { * @param roadSsjDevice */ private void sendStackerIn(DeviceSsj roadSsjDevice){ -//---------------------------出库任务--------------------------- +//---------------------------入库任务--------------------------- - //检查是否有入库任务 - MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Long.valueOf(roadSsjDevice.getTaskNo())); - if (ObjUtil.isNotNull(mydoJob)) { + //可能是下位没有接收到任务号或wcs没有正常写入任务号 + if (roadSsjDevice.getTaskNo() < 1000){ + //获取已经更新过【任务状态】和【执行阶段】的任务 + List jobs = mydoJobService.selectMydoJobList( + new MydoJob().builder().status(TASK_STATUS_RUNNING).executionPhase(TASK_EP_ROADWAY_SSJ).entranceId(roadSsjDevice.getDeviceCode()) .build()); + if (!jobs.isEmpty()){ - //检查执行阶段 - if (!mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ)) return; + log.info("【巷道口入库】巷道口输送机:{}入库到位,输送机任务号:{},可能是没有正常写入任务或接收失败,尝试重新向输送机下发...", roadSsjDevice.getDeviceCode(), roadSsjDevice.getTaskNo()); - //如果有入库任务 - 检查货位编码是否合法 - BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId()); - - int devId = 1; - if (!basCargoSpace.getRoadwayId().equals("1")){ - devId = 2; - } - - if (ObjUtil.isNull(basCargoSpace)) { - log.error("【任务异常】货位不存在 cargoSpaceId{}", mydoJob.getCargoSpaceId()); - } else { - //生成队列 - List list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueList( - new DdjDeviceExecutionQueue().builder().devId(Convert.toInt(mydoJob.getRoadwayId())).build() - ); - List pclList = roadwayMap.get(roadSsjDevice.getDeviceCode()); - if (CollUtil.isEmpty(list) && CollUtil.isNotEmpty(pclList)) { - DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue(); - ddjDeviceExecutionQueue.setUuid(IdUtil.simpleUUID()); - ddjDeviceExecutionQueue.setRwh(Convert.toLong(mydoJob.getTaskNo())); - ddjDeviceExecutionQueue.setDevName("ddj" + devId); - ddjDeviceExecutionQueue.setDevId(devId); - ddjDeviceExecutionQueue.setRwzt(0); - ddjDeviceExecutionQueue.setYph(pclList.get(0)); - ddjDeviceExecutionQueue.setYlh(pclList.get(1)); - ddjDeviceExecutionQueue.setYch(pclList.get(2)); - ddjDeviceExecutionQueue.setMbph(Convert.toInt(basCargoSpace.getThePlatoon())); - ddjDeviceExecutionQueue.setMblh(Convert.toInt(basCargoSpace.getTheColumn())); - ddjDeviceExecutionQueue.setMbch(Convert.toInt(basCargoSpace.getTheFloor())); - ddjDeviceExecutionQueue.setDdjxf("0"); - ddjDeviceExecutionQueue.setMlfs(5); -// ddjDeviceExecutionQueue.setSpare1(mydoJob.getTraySize().toString());//货物高度 - ddjDeviceExecutionQueue.setScsj(DateUtil.formatDateTime(DateUtil.date())); -// ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_2); - ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue); - //修改作业状态 - mydoJob.setStatus(TASK_STATUS_RUNNING); - mydoJob.setExecutionPhase(TASK_EP_DDJ); - mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date())); - mydoJobService.updateMydoJob(mydoJob); - - log.info("【巷道口入库】输送机:{}入库到位,更新任务状态,等待堆垛机执行,任务号:{}", roadSsjDevice.getDeviceCode(), mydoJob.getTaskNo()); - } - } - }else{ -// log.info("【出库警告】当前出口"+ exitId +"存在入库任务,无法出库!"); + jobs.get(0).setStatus(TASK_STATUS_CREATED); + mydoJobService.updateMydoJob(jobs.get(0)); } + } + + //检查是否有入库任务 + MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Long.valueOf(roadSsjDevice.getTaskNo())); + if (ObjUtil.isNotNull(mydoJob)) { + //检查执行阶段 + if (!mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ)) return; + //如果有入库任务 - 检查货位编码是否合法 + BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId()); +// int devId = 1; +// if (!basCargoSpace.getRoadwayId().equals("1")){ +// devId = 2; +// } + int devId = ConvType.CONV_ROAD_STACKER.get(basCargoSpace.getRoadwayId()); + if (ObjUtil.isNull(basCargoSpace)) { + log.error("【任务异常】不存在该货位:{}", mydoJob.getCargoSpaceId()); + } else { + //生成队列 + List list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueList( + new DdjDeviceExecutionQueue().builder().devId(Convert.toInt(mydoJob.getRoadwayId())).build() + ); + List pclList = roadwayMap.get(roadSsjDevice.getDeviceCode()); + if (CollUtil.isEmpty(list) && CollUtil.isNotEmpty(pclList)) { + DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue(); + ddjDeviceExecutionQueue.setUuid(IdUtil.simpleUUID()); + ddjDeviceExecutionQueue.setRwh(Convert.toLong(mydoJob.getTaskNo())); + ddjDeviceExecutionQueue.setDevName("ddj" + devId); + ddjDeviceExecutionQueue.setDevId(devId); + ddjDeviceExecutionQueue.setRwzt(0); + ddjDeviceExecutionQueue.setYph(pclList.get(0)); + ddjDeviceExecutionQueue.setYlh(pclList.get(1)); + ddjDeviceExecutionQueue.setYch(pclList.get(2)); + ddjDeviceExecutionQueue.setMbph(Convert.toInt(basCargoSpace.getThePlatoon())); + ddjDeviceExecutionQueue.setMblh(Convert.toInt(basCargoSpace.getTheColumn())); + ddjDeviceExecutionQueue.setMbch(Convert.toInt(basCargoSpace.getTheFloor())); + ddjDeviceExecutionQueue.setDdjxf("0"); + ddjDeviceExecutionQueue.setMlfs(5); +// ddjDeviceExecutionQueue.setSpare1(mydoJob.getTraySize().toString());//货物高度 + ddjDeviceExecutionQueue.setScsj(DateUtil.formatDateTime(DateUtil.date())); +// ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_2); + ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue); + //修改作业状态 + mydoJob.setStatus(TASK_STATUS_RUNNING); + mydoJob.setExecutionPhase(TASK_EP_DDJ); + mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date())); + mydoJobService.updateMydoJob(mydoJob); + log.info("【巷道口入库】输送机:{}入库到位,任务状态更新为<执行中>,等待堆垛机取货,任务号:{}", roadSsjDevice.getDeviceCode(), mydoJob.getTaskNo()); + } + } + }else{ +// log.info("【出库警告】当前出口"+ exitId +"存在入库任务,无法出库!"); + } }