diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/srgv/service/IWcsSrgvQueueService.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/srgv/service/IWcsSrgvQueueService.java index 235d1a2..da7cd2a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/queue/srgv/service/IWcsSrgvQueueService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/srgv/service/IWcsSrgvQueueService.java @@ -25,6 +25,8 @@ public interface IWcsSrgvQueueService public WcsSrgvQueue selectWcsSrgvQueueByAgvId(String agvId); + + /** * 查询四向小车任务队列列表 * diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java index d5552cb..0a4b666 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java @@ -199,29 +199,26 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface { MydoJob mydoJob1 = mydoJobs.get(0); // 查询是否有已下发的该任务号队列 WcsSrgvQueue wcsSrgvQueue1 = wcsSagvQueueMapper.selectWcsSrgvQueueByTaskNo(mydoJob1.getTaskNo()); + + if (wcsSrgvQueue1 == null) { ConcurrentHashMap deviceSrgvMap = PlcSrgvRead.deviceSrgvMap; - List deviceSrgvList = deviceSrgvMap.values().stream().filter(deviceSrgv -> deviceSrgv.getStatus() == 1 && deviceSrgv.getWorkMode() == 4).collect(Collectors.toList()); + List deviceSrgvList = deviceSrgvMap.values().stream().filter(deviceSrgv -> deviceSrgv.getWorkMode() == 4).collect(Collectors.toList()); if (!deviceSrgvList.isEmpty()) { DeviceSrgv deviceSrgv =null; for (DeviceSrgv deviceSrgv1 : deviceSrgvList) { - WcsSrgvQueue wcsSrgvQueue = wcsSagvQueueMapper.selectWcsSrgvQueueByAgvId(deviceSrgv1.getDeviceId().toString()); - if (wcsSrgvQueue == null) { - //如果有currFloor等于mydoJob1的theFloor的就选择,如果没有选择deviceSrgvList中currFloor最小的 if (deviceSrgv1.getCurrFloor().toString().equals(mydoJob1.getTheFloor())) { deviceSrgv = deviceSrgv1; break; // 找到了相同楼层的直接选它 } else if (deviceSrgv == null || deviceSrgv1.getCurrFloor() < deviceSrgv.getCurrFloor()) { deviceSrgv = deviceSrgv1; // 更新为更小楼层的小车 } - - }else{ - return; - } } + WcsSrgvQueue wcsSrgvQueue2 = wcsSagvQueueMapper.selectWcsSrgvQueueByAgvId(deviceSrgv.getDeviceId().toString()); + if (wcsSrgvQueue2 == null && deviceSrgv.getStatus()==1) { - //查询1楼是否有空闲联机自动的小车,且1楼小车不在入库站点 + //查询小车是否为1楼,且1楼小车不在入库站点 String endSite = ""; WcsSrgvMap wcsSrgvMap = new WcsSrgvMap(); wcsSrgvMap.setRemark(mydoJob1.getEntranceId()); @@ -264,6 +261,7 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface { wcsSagvQueueMapper.insertWcsSrgvQueue(wcsSrgvQueue); } + } } } @@ -516,22 +514,9 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface { * 1、不处理终点是提升机站点的四向车 * 2、处理终点不是提升机站点的 * */ - boolean taskFinishFlag = finishTaskByQueue(deviceSrgv.getCurrSite(), wcsSrgvQueue); - if (taskFinishFlag) { - String spare2 = deviceSrgv.getSpare2(); - if ("-".equals(spare2)) { - //换层 不删除队列 - wcsSrgvQueue.setExecutionStatus("2"); - wcsSagvQueueMapper.updateWcsSrgvQueue(wcsSrgvQueue); - } else { - WcsSrgvQueueFinish wcsSrgvQueueFinish = new WcsSrgvQueueFinish(); - BeanUtil.copyProperties(wcsSrgvQueue, wcsSrgvQueueFinish); - wcsSrgvQueueFinish.setFinishDate(DateUtil.now()); - wcsSagvQueueFinishMapper.insertWcsSrgvQueueFinish(wcsSrgvQueueFinish); - wcsSagvQueueMapper.deleteWcsSrgvQueueByGuid(wcsSrgvQueue.getGuid()); - } - } + finishTaskByQueue(deviceSrgv.getCurrSite(), wcsSrgvQueue); + } } } @@ -602,16 +587,18 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface { //请求wms生成库存 break; - case "7"://移库,变动库存,删除队列,插入历史表 - + case "7"://移库,变动库存 break; default: break; } - + //删除队列,插入历史表 + wcsSagvQueueMapper.insertHistory(wcsSrgvQueue.getTaskNo()); + wcsSagvQueueMapper.deleteWcsSrgvQueueByGuid(wcsSrgvQueue.getGuid()); } else { + //充电之类得 不知道用不用 }