wu
2024-12-23 164cb74e2c471321caf9c4870de846cf08ca5f6c
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -427,102 +427,12 @@
                                                .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT));
                                        //两次更新笼子的剩余尺寸:第一次防止有玻璃继续进调度后的笼子,第二次更新:计算格子的实际尺寸
                                        // 仅更新调度后的格子信息:起始格子完成后更新:防止调度出片过程中有新玻璃进入,
//                                        List<Integer> updateSlots = new ArrayList<>();
//                                        updateSlots.add(bigStorageCageDetails.getSlot());
//                                        updateSlotRemainBySlots(updateSlots);
                                    }
                                }
                                break loop;
                            }
                        }
                    }
//                    List<GlassInfo> glassInfoList = glassInfoService.list(
//                            new LambdaQueryWrapper<GlassInfo>()
//                                    .eq(GlassInfo::getTemperingLayoutId, temperingOccupySlot.getTemperingLayoutId())
//                                    .eq(GlassInfo::getEngineerId, temperingOccupySlot.getEngineerId())
//                                    .notInSql(GlassInfo::getGlassId, "select glass_id from damage where type=8 and engineer_id='"
//                                            + temperingOccupySlot.getEngineerId() + "' and tempering_layout_id = '" + temperingOccupySlot.getTemperingLayoutId() + "'")
//                    );
//                    List<BigStorageCageDetails> glassInfoLists = new ArrayList<>();
//                    glassInfoList.forEach(glassInfo -> {
//                        BigStorageCageDetails details = new BigStorageCageDetails();
//                        BeanUtils.copyProperties(glassInfo, details);
//                        details.setSlot(1);
//                        glassInfoLists.add(details);
//                    });
//                    List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsService.list(
//                            new LambdaQueryWrapper<BigStorageCageDetails>()
//                                    .eq(BigStorageCageDetails::getEngineerId, temperingOccupySlot.getEngineerId())
//                                    .eq(BigStorageCageDetails::getTemperingLayoutId, temperingOccupySlot.getTemperingLayoutId())
//                                    .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
//                                    .orderBy(Boolean.TRUE, sequenceOrder, BigStorageCageDetails::getTemperingFeedSequence)
//                    );
////                    if (glassInfoLists.size() == bigStorageCageDetailsList.size()) {
//                    computeOutMoreGlassInfo(glassInfoLists, Boolean.TRUE, 2);
//                    computeOutMoreGlassInfo(bigStorageCageDetailsList, Boolean.TRUE, 3);
//                    int allTrainNumber = allTask.stream()
//                            .map(BigStorageCageOutTask::getTrainNumber)
//                            .collect(Collectors.toSet())
//                            .size();
//                    int allTrainSlot = allTask.stream()
//                            .map(BigStorageCageOutTask::getStartSlot)
//                            .collect(Collectors.toSet())
//                            .size();
//                    int notallTrainNumber = notAllTask.stream()
//                            .map(BigStorageCageOutTask::getTrainNumber)
//                            .collect(Collectors.toSet())
//                            .size();
//                    int notallTrainSlot = notAllTask.stream()
//                            .map(BigStorageCageOutTask::getStartSlot)
//                            .collect(Collectors.toSet())
//                            .size();
////                        if (allTrainNumber < notallTrainNumber || (allTrainNumber == notallTrainNumber && allTrainSlot < notallTrainSlot)) {
//                    List<SlotSequenceDTO> slotSequenceList = bigStorageCageDetailsService.queryGlassMaxAndMin(temperingOccupySlot.getEngineerId(), temperingOccupySlot.getTemperingLayoutId());
//                    for (int i = 0; i < slotSequenceList.size() - 1; i++) {
//                        SlotSequenceDTO first = slotSequenceList.get(i);
//                        SlotSequenceDTO second = slotSequenceList.get(i + 1);
//                        int slotWidth = first.getRemainWidth() - glassGap;
//                        List<BigStorageCageDetails> list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
//                                .eq(BigStorageCageDetails::getSlot, second.getSlot()).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
//                                .orderBy(Boolean.TRUE, !sequenceOrder, BigStorageCageDetails::getTemperingFeedSequence));
//                        if (CollectionUtils.isNotEmpty(list)) {
//                            List<BigStorageCageOutTask> outTasks = new ArrayList<>();
//                            int serialNumber = 1;
//                            for (BigStorageCageDetails item : list) {
//                                int maxlength = (int) Math.max(item.getWidth(), item.getHeight());
//                                if (slotWidth > maxlength) {
//                                    slotWidth = slotWidth - maxlength - glassGap;
//                                    outTasks.add(new BigStorageCageOutTask(item.getGlassId(), second.getSlot(), first.getSlot(),
//                                            item.getWidth() * 10, item.getHeight() * 10, 1, serialNumber++, Const.BIG_STORAGE_OUT_NEW, new Date()));
//                                } else {
//                                    outTasks.add(new BigStorageCageOutTask(item.getGlassId(), second.getSlot(), second.getSlot(),
//                                            item.getWidth() * 10, item.getHeight() * 10, 1, serialNumber++, Const.BIG_STORAGE_OUT_NEW, new Date()));
//                                }
//                            }
//                            List<String> glassList = outTasks.stream()
//                                    .filter(item -> !item.getStartSlot().equals(item.getEndSlot()))
//                                    .map(BigStorageCageOutTask::getGlassId)
//                                    .collect(Collectors.toList());
//                            if (glassList.size() > 0) {
//                                //新增调度任务
//                                bigStorageCageOutTaskService.saveBatch(outTasks);
//                                //更新理片笼详情表调度的后的玻璃位置信息:生成任务后先将玻璃格子位置进行调整,玻璃状态改为调度中,新增调度完成任务,处理调度完成后玻璃状态改为100.
////                                    List<String> glassList = list.stream().map(BigStorageCageDetails::getGlassId).collect(Collectors.toList());
//
//                                bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>().set(BigStorageCageDetails::getState, Const.GLASS_STATE_SCHEDULE_ING)
//                                        .set(BigStorageCageBaseInfo::getSlot, first.getSlot()).in(BigStorageCageDetails::getGlassId, glassList)
//                                        .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT));
//
//                                //两次更新笼子的剩余尺寸:第一次防止有玻璃继续进调度后的笼子,第二次更新:计算格子的实际尺寸
//                                // 仅更新调度后的格子信息:起始格子完成后更新:防止调度出片过程中有新玻璃进入,
//                                updateSlotRemainBySlots(Arrays.asList(second.getSlot()));
//                                break loop;
//                            }
//
//                        }
//                    }
//                        }
//                    }
                }
//            //向plc写入确认字
//            int returnData = 0;
@@ -894,8 +804,8 @@
     * 按照玻璃id判断玻璃状态及卧转立是否可直接启动
     */
    public Boolean judgeGlassTypeStatus(String glassId, Integer line, String mesAddress) {
        //预排格子
        computeSlot(glassId);
//        预排格子
//        computeSlot(glassId);
        //判断此玻璃是在笼内或已生成进片任务
        BigStorageCageFeedTask bigStorageCageFeedTask = bigStorageCageFeedTaskService.getOne(
                new LambdaQueryWrapper<BigStorageCageFeedTask>()