wu
2024-06-24 09a010c5dc11c68a866a6075a74bd1bbefb4a9a8
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
@@ -162,23 +162,39 @@
//
//    }
  //  @Override
//    public List<GlassInfo>  DirectConnection(){
//        LambdaQueryWrapper<GlassInfo> queryWrapper2 = Wrappers.lambdaQuery();
//        queryWrapper2.select(GlassInfo::getFlowCardId,
//                GlassInfo::getGlassId,
//                GlassInfo::getTemperingLayoutId,
//                GlassInfo::getTemperingFeedSequence)
//                .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info")
//                .orderByAsc(GlassInfo::getTemperingLayoutId)
//                .orderByDesc(GlassInfo::getTemperingFeedSequence)
//                .last("LIMIT 1");
//
//        // 查询 GlassInfo 表
//        log.info("直通查询");
//        return glassInfoMapper.selectList(queryWrapper2);
//
//    };
    @Override
    public List<GlassInfo>  DirectConnection(){
        LambdaQueryWrapper<GlassInfo> queryWrapper2 = Wrappers.lambdaQuery();
        queryWrapper2.select(GlassInfo::getFlowCardId,
                GlassInfo::getGlassId,
                GlassInfo::getTemperingLayoutId,
                GlassInfo::getTemperingFeedSequence)
    public boolean DirectConnection(GlassInfo glassInfo) {
        LambdaQueryWrapper<GlassInfo> queryWrapper = Wrappers.lambdaQuery();
        queryWrapper.eq(GlassInfo::getGlassId, glassInfo.getGlassId())
                .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info")
                .orderByAsc(GlassInfo::getTemperingLayoutId)
                .orderByDesc(GlassInfo::getTemperingFeedSequence)
                .orderByDesc(GlassInfo::getGlassType)
                .groupBy(GlassInfo::getFlowCardId)
                .last("LIMIT 1");
        // 查询 GlassInfo 表
        log.info("直通查询");
        return glassInfoMapper.selectList(queryWrapper2);
        // 查询符合条件的 GlassInfo 记录数量
        int count = glassInfoMapper.selectCount(queryWrapper);
    };
        return count > 0;
    }
@@ -188,12 +204,15 @@
    public List<DownStorageCageDetails> CacheOut1(int start, int end) {
        List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(null);
        // 创建一个 LambdaQueryWrapper 实例
        LambdaQueryWrapper<DownStorageCageDetails> lambdaQueryWrapper = new LambdaQueryWrapper<>();
// 条件 state=100
        lambdaQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
        List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(lambdaQueryWrapper);
        // Step 5: 判断 down_storage_cage_details 结果数量是否为9,如果是,则执行另外一个查询
        if (cageDetails.size() == 9) {
            log.info("1、笼子满了的时候,按照笼内版图id 版图片序出");
            List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
            List<String> flowCardIds = new ArrayList<>();
            for (DownWorkstation workstation : workstationList) {
@@ -217,12 +236,10 @@
            // Step 1: 查询 DownWorkstation 表获取对应 workstation_id 的 flow_card_id
            List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
            List<String> flowCardIds = new ArrayList<>();
            for (DownWorkstation workstation : workstationList) {
                flowCardIds.add(workstation.getFlowCardId());
            }
            if (flowCardIds.isEmpty()) {
                log.error("2、未找到对应的 flow_card_id");
                return Collections.emptyList(); // 返回空列表或者抛出异常,视情况而定
@@ -250,7 +267,6 @@
            cageDetailsQueryWrapper.in(DownStorageCageDetails::getGlassId, glassIds);
            cageDetailsQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
            cageDetailsQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
            log.info("按照流程卡的版图id 版图片序出");
            // Step 4: 查询 down_storage_cage_details 表并返回结果
            return downStorageCageDetailsMapper.selectList(cageDetailsQueryWrapper);
@@ -260,4 +276,78 @@
    }
        @Override
        public List<DownStorageCageDetails> CacheOut2(int start, int end) {
            // 创建一个 LambdaQueryWrapper 实例
            LambdaQueryWrapper<DownStorageCageDetails> lambdaQueryWrapper = new LambdaQueryWrapper<>();
// 条件 state=100
            lambdaQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
            List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(lambdaQueryWrapper);
            // Step 5: 判断 down_storage_cage_details 结果数量是否为9,如果是,则执行另外一个查询
            if (cageDetails.size() == 9) {
                log.info("1、笼子满了的时候,按照笼内流程卡顺序出 GlassType目前是流程卡中的顺序");
                List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
                List<String> flowCardIds = new ArrayList<>();
                for (DownWorkstation workstation : workstationList) {
                    flowCardIds.add(workstation.getFlowCardId());
                }
                if (flowCardIds.isEmpty()) {
                    log.error("未找到对应的 flow_card_id");
                    return Collections.emptyList(); // 返回空列表或者抛出异常,视情况而定
                }
                LambdaQueryWrapper<DownStorageCageDetails> anotherQueryWrapper = Wrappers.lambdaQuery();
                anotherQueryWrapper.orderByAsc(DownStorageCageDetails::getGlassType);
                anotherQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
                anotherQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
                anotherQueryWrapper.last("LIMIT 1");
                return downStorageCageDetailsMapper.selectList(anotherQueryWrapper);
            } else {
                // Step 1: 查询 DownWorkstation 表获取对应 workstation_id 的 flow_card_id
                List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
                List<String> flowCardIds = new ArrayList<>();
                for (DownWorkstation workstation : workstationList) {
                    flowCardIds.add(workstation.getFlowCardId());
                }
                if (flowCardIds.isEmpty()) {
                    log.error("2、未找到对应的 flow_card_id");
                    return Collections.emptyList(); // 返回空列表或者抛出异常,视情况而定
                }
                log.info("流程卡:{}", flowCardIds);
                LambdaQueryWrapper<GlassInfo> queryWrapper2 = Wrappers.lambdaQuery();
                queryWrapper2.select(GlassInfo::getFlowCardId,
                        GlassInfo::getGlassId)
                        .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info")
                        .orderByAsc(GlassInfo::getGlassType)
                        .last("LIMIT 1");
                // 查询 GlassInfo 表
                List<GlassInfo> glassInfos = glassInfoMapper.selectList(queryWrapper2);
                if (glassInfos.isEmpty()) {
                    log.error("未找到对应的玻璃信息");
                    return Collections.emptyList(); // 返回空列表或者抛出异常,视情况而定
                }
                // Step 3: 构造查询 down_storage_cage_details 表的条件
                List<String> glassIds = glassInfos.stream().map(GlassInfo::getGlassId).collect(Collectors.toList());
                LambdaQueryWrapper<DownStorageCageDetails> cageDetailsQueryWrapper = Wrappers.lambdaQuery();
                cageDetailsQueryWrapper.in(DownStorageCageDetails::getGlassId, glassIds);
                cageDetailsQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
                cageDetailsQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
                log.info("按照流程卡的顺序出");
                // Step 4: 查询 down_storage_cage_details 表并返回结果
                return downStorageCageDetailsMapper.selectList(cageDetailsQueryWrapper);
            }
    }
}