ZengTao
2024-12-25 34f862e50eda729da5ed06073fc127682d651495
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -403,33 +403,38 @@
                                        .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
                                        .orderBy(Boolean.TRUE, sequenceOrder, BigStorageCageDetails::getTemperingFeedSequence)
                        );
                        //当一格玻璃都到齐时
                        if (bigStorageCageDetailsList.size() == valueList.size()) {
                            long distinctSlotCount = bigStorageCageDetailsList.stream()
                                    .map(BigStorageCageDetails::getSlot)
                                    .distinct()
                                    .count();
                            //当玻璃不在同一格时
                            if (distinctSlotCount > 1) {
                                BigStorageCageDetails maxSequenceDetail = bigStorageCageDetailsList.stream()
                                        .max(Comparator.comparingInt(BigStorageCageDetails::getTemperingFeedSequence))
                                        .orElse(null);  // 如果没有元素,返回 null
                                int maxSlot = maxSequenceDetail.getSlot();
                                int serialNumber = 1;
                                for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList
                                ) {
                                    if (bigStorageCageDetails.getSlot() != maxSlot) {
                                        bigStorageCageOutTaskService.save(new BigStorageCageOutTask(bigStorageCageDetails.getGlassId(), bigStorageCageDetails.getSlot(), maxSlot,
                                                bigStorageCageDetails.getWidth() * 10, bigStorageCageDetails.getHeight() * 10, 1, serialNumber++, Const.BIG_STORAGE_OUT_NEW, new Date()));
                        List<BigStorageCageDetails> overSizeGlass = bigStorageCageDetailsList.stream().filter(
                                t -> Math.min(t.getWidth(), t.getHeight()) > 2500
                        ).collect(Collectors.toList());
                        if(CollectionUtils.isEmpty(overSizeGlass)){
                            //当一格玻璃都到齐时
                            if (bigStorageCageDetailsList.size() == valueList.size()) {
                                long distinctSlotCount = bigStorageCageDetailsList.stream()
                                        .map(BigStorageCageDetails::getSlot)
                                        .distinct()
                                        .count();
                                //当玻璃不在同一格时
                                if (distinctSlotCount > 1) {
                                    BigStorageCageDetails maxSequenceDetail = bigStorageCageDetailsList.stream()
                                            .max(Comparator.comparingInt(BigStorageCageDetails::getTemperingFeedSequence))
                                            .orElse(null);  // 如果没有元素,返回 null
                                    int maxSlot = maxSequenceDetail.getSlot();
                                    int serialNumber = 1;
                                    for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList
                                    ) {
                                        if (bigStorageCageDetails.getSlot() != maxSlot) {
                                            bigStorageCageOutTaskService.save(new BigStorageCageOutTask(bigStorageCageDetails.getGlassId(), bigStorageCageDetails.getSlot(), maxSlot,
                                                    bigStorageCageDetails.getWidth() * 10, bigStorageCageDetails.getHeight() * 10, 1, serialNumber++, Const.BIG_STORAGE_OUT_NEW, new Date()));
                                        bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>().set(BigStorageCageDetails::getState, Const.GLASS_STATE_SCHEDULE_ING)
                                                .set(BigStorageCageBaseInfo::getSlot, maxSlot).eq(BigStorageCageDetails::getGlassId, bigStorageCageDetails.getGlassId())
                                                .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT));
                                        //两次更新笼子的剩余尺寸:第一次防止有玻璃继续进调度后的笼子,第二次更新:计算格子的实际尺寸
                                        // 仅更新调度后的格子信息:起始格子完成后更新:防止调度出片过程中有新玻璃进入,
                                            bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>().set(BigStorageCageDetails::getState, Const.GLASS_STATE_SCHEDULE_ING)
                                                    .set(BigStorageCageBaseInfo::getSlot, maxSlot).eq(BigStorageCageDetails::getGlassId, bigStorageCageDetails.getGlassId())
                                                    .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT));
                                            //两次更新笼子的剩余尺寸:第一次防止有玻璃继续进调度后的笼子,第二次更新:计算格子的实际尺寸
                                            // 仅更新调度后的格子信息:起始格子完成后更新:防止调度出片过程中有新玻璃进入,
                                        }
                                    }
                                    break loop;
                                }
                                break loop;
                            }
                        }
                    }
@@ -971,7 +976,7 @@
        damageService.deleteByGlassId(glassId);
        Damage damage = new Damage();
        damage.setGlassId(glassId);
        damage.setWorkingProcedure("钢化");
        damage.setWorkingProcedure("磨边");
        damage.setLine(line);
        damage.setType(1);
        damage.setRemark("进大理片");
@@ -1329,9 +1334,21 @@
        if (sitToUpRemainWidth.getGlassCount() == 0) {
            return Boolean.FALSE;
        }
        List<Integer> lineList = bigStorageCageFeedTaskService.querySitToUpGlass();
        if (CollectionUtils.isNotEmpty(lineList)) {
            Integer lineFirst = lineList.get(0);
            if (line == lineFirst) {
                return Boolean.TRUE;
            } else {
                return Boolean.FALSE;
            }
        } else {
            return Boolean.FALSE;
        }
        //获取玻璃信息
        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
        return sitToUpRemainWidth.getWidth() < Math.max(glassInfo.getWidth(), glassInfo.getHeight());
//        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
//        return sitToUpRemainWidth.getWidth() < Math.max(glassInfo.getWidth(), glassInfo.getHeight());
    }
    public String queryAndChangeGlass(String glassId) {