ZengTao
2024-12-09 36d59c25121e2b7f270d980463be5b455e372d2b
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -858,6 +858,8 @@
        }
        String carRequest = plcParameterObject.getPlcParameter("CarRequest").getValue();
        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>()
@@ -865,7 +867,10 @@
                            .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);
            }
        }
@@ -1081,11 +1086,13 @@
    /**
     * 计算任务表进片线路的目标格子,并启动任务
     */
    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、去笼子内查找是否可以继续存放的笼子
@@ -1116,6 +1123,13 @@
            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、获取目标格子信息