ZengTao
2025-01-02 3633e4fac369d00b8da0c2fd4f867df097fa083a
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -289,7 +289,7 @@
                .eq(BigStorageCageDetails::getEngineerId, glassInfo.getEngineerId())
                .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
                .gt(BigStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight()))
                .lt(BigStorageCage::getSlotHeight, Math.min(glassInfo.getWidth(), glassInfo.getHeight()))
                .gt(BigStorageCage::getSlotHeight, Math.min(glassInfo.getWidth(), glassInfo.getHeight()))
                .in(BigStorageCageDetails::getGlassId, glassIds)
                .last("limit 1");
        if (glassInfo.getTemperingLayoutId() == 0) {
@@ -326,8 +326,8 @@
        }
        //获取玻璃的厚度:重新选笼子需要按照笼子可放玻璃厚度进行选择 因为子查询排序对主sql无影响,所以先执行子查询获取顺序,然后一次去查询
        List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness(),Math.min(glassInfo.getWidth(),glassInfo.getHeight()));
        List<Integer> deviceUseds = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness(),Math.min(glassInfo.getWidth(),glassInfo.getHeight()));
        List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness(), Math.min(glassInfo.getWidth(), glassInfo.getHeight()));
        List<Integer> deviceUseds = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness(), Math.min(glassInfo.getWidth(), glassInfo.getHeight()));
        List<BigStorageCageDetails> engineerCount1 = baseMapper.selectList(
                new LambdaQueryWrapper<BigStorageCageDetails>()
                        .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
@@ -528,7 +528,29 @@
        }
        long startSlotCount = bigStorageCageOutTasks.stream().map(BigStorageCageOutTask::getStartSlot).distinct().count();
        long endSlotCount = bigStorageCageOutTasks.stream().map(BigStorageCageOutTask::getEndSlot).distinct().count();
        long time = (startSlotCount * 20 + endSlotCount * 20) / 60;
        long time = (startSlotCount * 30 + endSlotCount * 20) / 60;
        return time;
    }
    @Override
    public void cancelOutTask() {
        List<BigStorageCageOutTask> bigStorageCageOutTasks = bigStorageCageOutTaskService.list(
                new LambdaQueryWrapper<BigStorageCageOutTask>()
                        .in(BigStorageCageOutTask::getEndSlot, Const.OUT_TARGET_POSITION_ALL)
                        .eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_NEW)
        );
        List<String> outGlassId = bigStorageCageOutTasks.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
        temperingGlassInfoService.remove(
                new LambdaUpdateWrapper<TemperingGlassInfo>()
                        .in(TemperingGlassInfo::getGlassId, outGlassId)
        );
        bigStorageCageDetailsService.update(
                new LambdaUpdateWrapper<BigStorageCageDetails>()
                        .set(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
                        .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING)
                        .in(BigStorageCageDetails::getGlassId, outGlassId)
        );
        bigStorageCageOutTaskService.deleteTask(bigStorageCageOutTasks);
    }
}