zhoushihao
2024-09-23 f00e9e5848711cbf735bf8d56be2a93cb7e850bf
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -130,25 +130,30 @@
    public List<DownWorkstation> queryWorkStationIsFull() {
        //查询可以落架的玻璃信息且已绑定流程卡的工位信息
        List<DownWorkstation> list = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getEnableState, Const.SLOT_ON)
                .isNotNull(DownWorkstation::getFlowCardId).ne(DownWorkstation::getFlowCardId, ""));
        List<DownWorkstation> workstationFull = new ArrayList<>();
        if (CollectionUtils.isNotEmpty(list)) {
            //都有玻璃的工位信息(包括绑定流程卡)
            List<Integer> workstationList = list.stream().map(DownWorkstation::getWorkstationId).collect(Collectors.toList());
            //按照符合条件的工位获取未落架的流程卡玻璃,如果返回为空,则表明所有都已落架完成
            List<DownGlassInfoDTO> downGlassInfoDTOList = queryWorkStationIsIn(workstationList, Boolean.FALSE);
            //获取工位上的未满的流程卡及层数
            List<String> flowCardIdList = downGlassInfoDTOList.stream().map(item -> item.getFlowCardId() + ":" + item.getLayer()).collect(Collectors.toList());
            //可以落架的玻璃信息且已绑定流程卡的所有的工位 - 玻璃未满流程卡及层数的工位  =  已满工位
            workstationFull = list.stream().filter(item -> !flowCardIdList.contains(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList());
            //是否需要将已满的工位置为不可落架
//            if (CollectionUtils.isNotEmpty(workstationFull)) {
//                List<Integer> workstationIds = workstationFull.stream().map(DownWorkstation::getWorkstationId).collect(Collectors.toList());
//                downWorkstationService.update(new LambdaUpdateWrapper<DownWorkstation>().set(DownWorkstation::getEnableState, Const.SLOT_OFF)
//                        .in(DownWorkstation::getWorkstationId, workstationIds));
//        List<DownWorkstation> list = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getEnableState, Const.SLOT_ON)
//                .isNotNull(DownWorkstation::getFlowCardId).ne(DownWorkstation::getFlowCardId, ""));
//        List<DownWorkstation> workstationFull = new ArrayList<>();
//        if (CollectionUtils.isNotEmpty(list)) {
//            //都有玻璃的工位信息(包括绑定流程卡)
//            List<Integer> workstationList = list.stream().map(DownWorkstation::getWorkstationId).collect(Collectors.toList());
//            //按照符合条件的工位获取未落架的流程卡玻璃,如果返回为空,则表明所有都已落架完成
//            List<DownGlassInfoDTO> downGlassInfoDTOList = queryWorkStationIsIn(workstationList, Boolean.FALSE);
//            //获取工位上的未满的流程卡及层数
//            List<String> flowCardIdList = downGlassInfoDTOList.stream().map(item -> item.getFlowCardId() + ":" + item.getLayer()).collect(Collectors.toList());
//            //可以落架的玻璃信息且已绑定流程卡的所有的工位 - 玻璃未满流程卡及层数的工位  =  已满工位
//            workstationFull = list.stream().filter(item -> !flowCardIdList.contains(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList());
//            //是否需要将已满的工位置为不可落架
////            if (CollectionUtils.isNotEmpty(workstationFull)) {
////                List<Integer> workstationIds = workstationFull.stream().map(DownWorkstation::getWorkstationId).collect(Collectors.toList());
////                downWorkstationService.update(new LambdaUpdateWrapper<DownWorkstation>().set(DownWorkstation::getEnableState, Const.SLOT_OFF)
////                        .in(DownWorkstation::getWorkstationId, workstationIds));
////            }
//            }
        }
        List<DownWorkstation> workstationFull = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
                .eq(DownWorkstation::getEnableState, Const.SLOT_ON)
                .isNotNull(DownWorkstation::getFlowCardId)
                .ne(DownWorkstation::getFlowCardId, "")
                .apply("total_quantity = racks_number + other_number"));
        return workstationFull;
    }