ZengTao
2025-01-02 3633e4fac369d00b8da0c2fd4f867df097fa083a
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -134,6 +134,34 @@
            log.info("两条线卧转立均在执行任务,结束本次扫描进卧转立任务");
            return;
        }
//        if (REQUEST_WORD.equals(d01ToMES)) {
//            List<BigStorageCageFeedTask> bigStorageCageFeedTasks = bigStorageCageFeedTaskService.list(
//                    new LambdaQueryWrapper<BigStorageCageFeedTask>()
//                            .gt(BigStorageCageFeedTask::getTargetSlot, 0)
//                            .eq(BigStorageCageFeedTask::getLine, Const.A09_OUT_TARGET_POSITION)
//                            .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_NEW)
//                            .eq(BigStorageCageFeedTask::getGlassId, d01Id)
//            );
//            if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks)) {
//                S7object.getinstance().plccontrol.writeWord(mesD01Address, 1);
//            }
//            log.info("{}线再次发送进片启动", Const.A09_OUT_TARGET_POSITION);
//            return;
//        }
//        if (REQUEST_WORD.equals(d04ToMES)) {
//            List<BigStorageCageFeedTask> bigStorageCageFeedTasks = bigStorageCageFeedTaskService.list(
//                    new LambdaQueryWrapper<BigStorageCageFeedTask>()
//                            .gt(BigStorageCageFeedTask::getTargetSlot, 0)
//                            .eq(BigStorageCageFeedTask::getLine, Const.A10_OUT_TARGET_POSITION)
//                            .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_NEW)
//                            .eq(BigStorageCageFeedTask::getGlassId, d01Id)
//            );
//            if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks)) {
//                S7object.getinstance().plccontrol.writeWord(mesD04Address, 1);
//            }
//            log.info("{}线再次发送进片启动", Const.A10_OUT_TARGET_POSITION);
//            return;
//        }
        //按照线路及玻璃id获取相邻两块玻璃 卧转立上的玻璃:  状态为0不操作(D01送片,0不操作,1允许送片),请求字为1, (02玻璃id为空或者卧转立未启动)
        if (!REQUEST_WORD.equals(mesD01Value) && REQUEST_WORD.equals(d01ToMES) && (StringUtils.isBlank(d02State) || !REQUEST_WORD.equals(d03State))) {
            List<BigStorageCageFeedTask> bigStorageCageFeedTasks = bigStorageCageFeedTaskService.list(
@@ -270,7 +298,8 @@
        //两条先均可执行进片任务,判断两条线是否进片请求是否都为空
        if (StringUtils.isBlank(d01Id) && StringUtils.isBlank(d04Id)) {
            //比较最早一片任务的版图id及版序 求出卧转立的线路
            Integer line = getStartLine();
//            Integer line = getStartLine();
            Integer line = lineList.get(0);
            //计算任务表进片格子 发送进片任务
            computeTargetByLine(line);
            Date endDate = new Date();
@@ -406,7 +435,7 @@
                        List<BigStorageCageDetails> overSizeGlass = bigStorageCageDetailsList.stream().filter(
                                t -> Math.min(t.getWidth(), t.getHeight()) > 2500
                        ).collect(Collectors.toList());
                        if(CollectionUtils.isEmpty(overSizeGlass)){
                        if (CollectionUtils.isEmpty(overSizeGlass)) {
                            //当一格玻璃都到齐时
                            if (bigStorageCageDetailsList.size() == valueList.size()) {
                                long distinctSlotCount = bigStorageCageDetailsList.stream()
@@ -752,7 +781,7 @@
        }
        if (CollectionUtils.isEmpty(glassIds1)) {
            S7object.getinstance().plccontrol.writeWord(mesD03Address, 0);
            log.info("{}线修改玻璃状态为3", Const.A09_OUT_TARGET_POSITION);
            log.info("{}线修改玻璃{}状态为3", Const.A09_OUT_TARGET_POSITION, glassIds1);
            bigStorageCageFeedTaskService.update(
                    new LambdaUpdateWrapper<BigStorageCageFeedTask>()
                            .eq(BigStorageCageFeedTask::getLine, Const.A09_OUT_TARGET_POSITION)
@@ -764,7 +793,7 @@
        }
        if (CollectionUtils.isEmpty(glassIds2)) {
            S7object.getinstance().plccontrol.writeWord(mesD05Address, 0);
            log.info("{}线修改玻璃状态为3", Const.A10_OUT_TARGET_POSITION);
            log.info("{}线修改玻璃{}状态为3", Const.A10_OUT_TARGET_POSITION, glassIds2);
            bigStorageCageFeedTaskService.update(
                    new LambdaUpdateWrapper<BigStorageCageFeedTask>()
                            .eq(BigStorageCageFeedTask::getLine, Const.A10_OUT_TARGET_POSITION)
@@ -1365,7 +1394,7 @@
                .eq(GlassInfo::getEngineerId, glassInfo.getEngineerId())
                .eq(GlassInfo::getMarkIcon, glassInfo.getMarkIcon())
                .notInSql(GlassInfo::getGlassId, "select distinct glass_id from big_storage_cage_details " +
                        "where state!=101 and engineer_id = '" + glassInfo.getEngineerId() + "' and width = " + glassInfo.getWidth() + " and height = " + glassInfo.getHeight())
                        "where engineer_id = '" + glassInfo.getEngineerId() + "' and width = " + glassInfo.getWidth() + " and height = " + glassInfo.getHeight())
                .orderByAsc(GlassInfo::getTemperingLayoutId)
                .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence)
                .last("Limit 1");