| | |
| | | |
| | | // 同堆垛机没有需要参与当前调度判断的出库任务时,优先直接到当前入库任务取货位等待。 |
| | | if (!hasBlockingOutboundTask(crnNo)) { |
| | | boolean dispatched = crnOperateProcessUtils.dispatchCrnMove(crnNo, inboundPickupLocNo); |
| | | boolean dispatched = crnOperateProcessUtils.dispatchCrnMove(crnNo, inboundPickupLocNo, true); |
| | | if (dispatched) { |
| | | News.info("检测到仅有入库任务,已触发堆垛机直接移动到入库任务取货位等待,工作号={},堆垛机号={},取货位={}", |
| | | wrkMast.getWrkNo(), crnNo, inboundPickupLocNo); |
| | |
| | | |
| | | //调度堆垛机移动 |
| | | public synchronized boolean dispatchCrnMove(Integer crnNo, String targetLocNo) { |
| | | return dispatchCrnMove(crnNo, targetLocNo, false); |
| | | } |
| | | |
| | | public synchronized boolean dispatchCrnMove(Integer crnNo, String targetLocNo, boolean allowQueueWhenBusy) { |
| | | if (crnNo == null || Cools.isEmpty(targetLocNo)) { |
| | | return false; |
| | | } |
| | |
| | | return false; |
| | | } |
| | | |
| | | if (!allowQueueWhenBusy) { |
| | | long runningCount = wrkMastService.count(new QueryWrapper<WrkMast>() |
| | | .eq("crn_no", crnNo) |
| | | .in("wrk_sts", |
| | |
| | | News.info("堆垛机:{} 存在执行中的任务,暂不生成移动任务", crnNo); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | WrkMast activeTask = wrkMastService.getOne(new QueryWrapper<WrkMast>() |
| | | .eq("crn_no", crnNo) |