| | |
| | | @Autowired |
| | | private BasDevpOptService basDevpOptService; |
| | | @Autowired |
| | | private BasRgvOptService basRgvOptService; |
| | | @Autowired |
| | | private MatService matService; |
| | | |
| | | @Value("${wms.url}") |
| | |
| | | |
| | | } |
| | | |
| | | if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE && |
| | | rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk() |
| | | && rgvThread.isPaking() && basRgv.getPakAll().equals("1")){ |
| | | RgvThread rgvThread1 = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); |
| | | RgvProtocol rgvProtocol1 = rgvThread.getRgvProtocol(); |
| | | if (rgvProtocol1 == null) { |
| | | continue; |
| | | } |
| | | if(rgvProtocol1.getStatusType1() == RgvStatusType.IDLE && |
| | | rgvProtocol1.getModeType() == RgvModeType.AUTO && rgvThread1.isPakMk() |
| | | && rgvThread1.isPaking() && basRgv.getPakAll().equals("1")){ |
| | | if(basRgv.getPakOut().equals("1") && basRgv.getPakIn().equals("1")){ |
| | | rgvPreSchedulingIn(rgv, rgvProtocol);//若暂无下发任务预调度提前到取货点 |
| | | if (rgvProtocol.getLastIo().equals("I")) { |
| | |
| | | System.out.println("小车下发命令时间:" + |
| | | new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(now)); |
| | | } |
| | | EntityWrapper<BasRgvOpt> entityWrapper = new EntityWrapper<>(); |
| | | entityWrapper.eq("rgv_no", rgvId) |
| | | .orderBy("send_time"); // 按 send_time 降序排列 |
| | | BasRgvOpt basRgvOpt = basRgvOptService.selectOne(entityWrapper); |
| | | // 防止重复下发命令 |
| | | if (basRgvOpt != null) { |
| | | // 获取最新记录的 mode 对应的任务类型 |
| | | RgvTaskStatusType latestTaskStatus = RgvTaskStatusType.valueOf(basRgvOpt.getMode()); |
| | | // 判断当前命令与最新记录是否相同 |
| | | if (latestTaskStatus != null && latestTaskStatus == type && basRgvOpt.getPosSta().equals(wrkMastSta.getWorkSta())) { |
| | | // 如果最新记录的 mode 和 posSta 与当前命令相同,认为是重复命令 |
| | | log.error("命令重复下发,当前命令与最新记录相同,任务不下发!"); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | rgvCommand.setTaskNo(Math.toIntExact(wrkMastSta.getWrkNo())); // 工位工作号 |
| | | rgvCommand.setTaskStatus(type); // 工位任务模式: 取货 |