| | |
| | | ); |
| | | } |
| | | String carRequest = plcParameterObject.getPlcParameter("CarRequest").getValue(); |
| | | log.info("大车当前玻璃id{}",glassIdsCar); |
| | | log.info("大车当前玻璃id{}", glassIdsCar); |
| | | log.info("卧转立1玻璃id{}", glassIds1); |
| | | log.info("卧转立2玻璃id{}", glassIds2); |
| | | if (CollectionUtils.isNotEmpty(glassIdsCar) && REQUEST_WORD.equals(carRequest)) { |
| | | List<BigStorageCageFeedTask> bigStorageCageFeedTasks = bigStorageCageFeedTaskService.list( |
| | | new LambdaQueryWrapper<BigStorageCageFeedTask>() |
| | |
| | | .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP) |
| | | .eq(BigStorageCageFeedTask::getTargetSlot, 0) |
| | | ); |
| | | computeTargetByLineCar(bigStorageCageFeedTasks.get(0).getLine()); |
| | | if(CollectionUtils.isNotEmpty(bigStorageCageFeedTasks)){ |
| | | log.info("获取到的进片任务信息{}", bigStorageCageFeedTasks); |
| | | computeTargetByLineCar(bigStorageCageFeedTasks.get(0).getLine(), glassIdsCar); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | /** |
| | | * 计算任务表进片线路的目标格子,并启动任务 |
| | | */ |
| | | public boolean computeTargetByLineCar(Integer line) { |
| | | public boolean computeTargetByLineCar(Integer line, List<String> carGlassId) { |
| | | //1、获取任务表中的所有玻璃(指定线路且已经进卧转立完成) |
| | | List<BigStorageCageFeedTask> taskList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>() |
| | | .eq(BigStorageCageFeedTask::getLine, line) |
| | | .and(e -> e.isNull(BigStorageCageFeedTask::getTargetSlot).or().eq(BigStorageCageFeedTask::getTargetSlot, Const.OUT_TARGET_POSITION_ZERO)) |
| | | .in(BigStorageCageFeedTask::getGlassId, carGlassId) |
| | | .and(e -> e.isNull(BigStorageCageFeedTask::getTargetSlot).or() |
| | | .eq(BigStorageCageFeedTask::getTargetSlot, Const.OUT_TARGET_POSITION_ZERO)) |
| | | .in(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP_ALL) |
| | | .orderByAsc(BigStorageCageFeedTask::getId)); |
| | | //2、去笼子内查找是否可以继续存放的笼子 |
| | |
| | | if (info == null) { |
| | | continue; |
| | | } |
| | | if(info.getSlot()==null){ |
| | | computeSlot(info.getGlassId()); |
| | | info=glassInfoService.getOne( |
| | | new LambdaQueryWrapper<GlassInfo>() |
| | | .eq(GlassInfo::getGlassId,info.getGlassId()) |
| | | ); |
| | | } |
| | | BigStorageCageDetails cageDetails = new BigStorageCageDetails(); |
| | | BeanUtils.copyProperties(info, cageDetails); |
| | | //2、获取目标格子信息 |