| | |
| | | private BasConveyorPathService basConveyorPathService; |
| | | @Autowired |
| | | private BasLedService basLedService; |
| | | @Autowired |
| | | private DeviceBarcodeService deviceBarcodeService; |
| | | |
| | | /** |
| | | * 组托 |
| | |
| | | // 解析入库工作档 |
| | | public synchronized void analyzeInBoundTask() { |
| | | for (Task task : taskService.selectWaitAnalyzeInBoundTask()) { |
| | | BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>().eq(BasConveyorSta::getSiteNo, task.getDestSite())); |
| | | if (basConveyorSta == null) { |
| | | continue; |
| | | } |
| | | BasConveyor basConveyor = basConveyorService.getById(basConveyorSta.getConveyorId()); |
| | | if (basConveyor == null) { |
| | | continue; |
| | | } |
| | | DeviceBarcode deviceBarcode = deviceBarcodeService.getById(basConveyorSta.getBarcodeId()); |
| | | if (deviceBarcode == null) { |
| | | continue; |
| | | } |
| | | BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, Integer.parseInt(deviceBarcode.getDeviceId())); |
| | | if (barcodeThread == null) { |
| | | continue; |
| | | } |
| | | if (!barcodeThread.getBarcode().equals(task.getZpallet())) { |
| | | continue; |
| | | } |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue()); |
| | | if (devpThread == null) { |
| | | continue; |
| | | } |
| | | StaProtocol staProtocol = devpThread.getStation().get(basConveyorSta.getSiteNo()); |
| | | if (staProtocol == null) { |
| | | continue; |
| | | } |
| | | if (!(staProtocol.isAutoing() |
| | | && staProtocol.isLoading() |
| | | && staProtocol.isInEnable())) { |
| | | continue; |
| | | } |
| | | |
| | | |
| | | if (Cools.isEmpty(task.getShuttleNo())) { |
| | | //分配小车 |
| | | //搜索空闲车 |
| | |
| | | } |
| | | } |
| | | |
| | | // 解析小车载货移动工作档 |
| | | public synchronized void analyzeLadenMoveTask() { |
| | | for (Task task : taskService.selectWaitAnalyzeLadenMoveTask()) { |
| | | if (Cools.isEmpty(task.getShuttleNo())) { |
| | | //分配小车 |
| | | //搜索空闲车 |
| | | ShuttleThread shuttleThread = shuttleDispatcher.searchIdleShuttle(task); |
| | | if (shuttleThread == null) { |
| | | News.info("{}任务未找到空闲穿梭车", task.getTaskNo()); |
| | | continue; |
| | | } |
| | | |
| | | task.setShuttleNo(Integer.valueOf(shuttleThread.getDevice().getDeviceNo()));//保存穿梭车号 |
| | | task.setUpdateTime(new Date()); |
| | | if (!taskService.updateById(task)) { |
| | | News.info("{}任务更新穿梭车号失败", task.getTaskNo()); |
| | | } |
| | | continue; |
| | | } |
| | | |
| | | // generate motion list |
| | | List<Motion> motionList = analyzeService.generateShuttleLadenMoveMotion(task); |
| | | if (motionList.isEmpty()) { |
| | | continue; |
| | | } |
| | | motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId()); |
| | | |
| | | // 更新工作主档 |
| | | task.setTaskSts(TaskStsType.ANALYZE_LADEN_MOVE.sts); // 工作状态 |
| | | task.setUpdateTime(new Date()); |
| | | if (!taskService.updateById(task)) { |
| | | News.error("更新工作档失败!!! [工作号:{}]", task.getTaskNo()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 四向穿梭车电量检测 ===>> 发起充电 |
| | | */ |