| | |
| | | .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; |
| | | } |
| | | } |
| | | } |
| | |
| | | damageService.deleteByGlassId(glassId); |
| | | Damage damage = new Damage(); |
| | | damage.setGlassId(glassId); |
| | | damage.setWorkingProcedure("钢化"); |
| | | damage.setWorkingProcedure("磨边"); |
| | | damage.setLine(line); |
| | | damage.setType(1); |
| | | damage.setRemark("进大理片"); |
| | |
| | | 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) { |